================================================================================
GENERATOR RISK AUDIT — VOL 1
GENERATOR_RISK_AUDIT_VOL1.txt
================================================================================
Generated: May 9, 2026 | Mixed Claude 3 — Final Session Sweep
Purpose: Every technical and operational risk that could cause the generator
         to silently fail, produce wrong output, or deploy incorrectly.
         White Claude 2 must address all CRITICAL and HIGH items before
         building the generator. MEDIUM and LOW items before first deployment.
Total risks identified: 21 across 4 severity levels.
================================================================================

================================================================================
CRITICAL RISKS — Generator must refuse to build these until resolved
================================================================================

[BLOCK-1] SET LIST 4 — NO CONFIRMED TITLE
  Risk: Generator cannot name the page, set the Block 2 title, or create
        a URL slug for Set List 4 without a confirmed collection title.
  Impact: If generator runs without title, it produces a nameless or
          incorrectly named AIO page.
  Resolution: Tom selects title (Decision A1 in Tom Quick Answer Sheet).
  Generator instruction: Hardcode a pre-flight check — if Set List 4 title
    field = "[PENDING]", abort generation for that collection and log:
    "Set List 4 generation halted — title unresolved. See Tom Decision Document."

[BLOCK-2] SET LIST 23 — GX IRRECONCILABLE + TRACK ORDER CONFLICT
  Risk 1: GX total cannot be verified — source says 28, calculated 32, delta 4.
          Any GX figure embedded would be wrong.
  Risk 2: Tracks 5 and 6 are in different order across quick guide and full text.
          Generator cannot determine correct track sequence without Tom input.
  Impact: AIO page would contain incorrect GX and possibly wrong track order.
  Resolution: Tom resolves Decisions A2 + A3 in Tom Quick Answer Sheet.
  Generator instruction: Pre-flight check — if Set List 23 GX status = "BLOCKED"
    or track order = "UNRESOLVED", abort and log both flags.

================================================================================
HIGH RISKS — Must be resolved before any AIO pages are generated
================================================================================

[UNIQ-1] SET LIST 4 TRACK 4 — TITLE DISAMBIGUATION
  Risk: Track 4 within Set List 4 is named "Downward Spiral" — the same as
        one of the three competing Set List 4 collection titles.
  If Tom selects "Downward Spiral" as the collection title:
    The collection and its own Track 4 share identical names.
    Navigation, search, URL slugs, and Fast Buttons (Block 14) could
    reference the same string for two different things.
  Resolution: Tom selects collection title (Decision A1).
    If "Downward Spiral" is selected: add Track 4 disambiguation in Block 14
    (e.g., "Downward Spiral [Track 4]" or an index number prefix).
    If any other title is selected: no action needed.
  Generator instruction: Flag if collection title == any track title within
    that collection. Log warning and add disambiguation prefix to Fast Button.

[PARTIAL-1] EIGHT PARTIAL LYRIC TRACKS — MUST FLAG, NOT SILENTLY TRUNCATE
  Risk: Generator reads lyrics from source and outputs them. If partial
        tracks are not explicitly identified in the data layer, the generator
        will output whatever lyrics exist and present them as complete.
  Impact: Readers see truncated lyrics with no indication they are incomplete.
  Resolution: All 8 partial tracks must be flagged in the generator data layer
    BEFORE the generator runs. See Partial Lyrics Status Tracker Vol 1.
  Confirmed partial tracks and their notation:
    Set List 1  Track 8  Rain              — first two stanzas
    Set List 6  Track 1  Expired           — beginning part
    Set List 7  Track 12 Either Way        — first Part
    Set List 9  Track 12 Believe Me        — first three stanzas
    Set List 11 Track 7  Thick Skin        — first two stanzas
    Set List 14 Track 12 Riding a Wave     — first part
    Set List 15 Track 6  Other Times       — first part
    Set List 18 Track 2  War Leonard 19    — first two stanzas
  Generator instruction: Block 7 for each must prepend:
    "[LYRICS — PARTIAL: {notation from source}. Full version pending Tom.]"
    before displaying whatever lyrics exist.

[CROSS-1] NIGHT LIGHT — CROSS-COLLECTION METADATA MUST NOT BLEED
  Risk: Night Light appears in Set List 3 (Track 5) and Set List 14 (Track 5).
        If generator stores track metadata by title alone, Set List 14's
        "Night Light" page entry could inherit Set List 3's summary and vice versa.
  Correct per-collection metadata:
    Set List 3:  "Beacon through the void" | PG
    Set List 14: "cry tears of joy"        | PG
  Generator instruction: Track metadata must be keyed by COLLECTION + TRACK TITLE
    (not track title alone). Two entries required in data layer:
    {"collection": "Set List 3",  "track": "Night Light", "summary": "Beacon through the void"}
    {"collection": "Set List 14", "track": "Night Light", "summary": "cry tears of joy"}

[CROSS-2] DANCE FLOOR — CROSS-COLLECTION METADATA MUST NOT BLEED
  Risk: Dance Floor appears in Set List 3 (Track 7) and Set List 11 (Track 13).
  Correct per-collection metadata:
    Set List 3:  "Lose yourself completely"   | PG-13
    Set List 11: "find peace in movement"     | PG-13
  Generator instruction: Same as CROSS-1 — two separate keyed entries required.

[CROSS-3] LEARN FROM THE MASTERS — CROSS-COLLECTION METADATA MUST NOT BLEED
  Risk: Learn From the Masters appears in Set List 16 (Track 12) and
        Set List 20 (Track 12). Both are Track 12, same rating (PG-13).
        Only the four-word summary differs.
  Correct per-collection metadata:
    Set List 16: "Fight you with pen"      | PG-13
    Set List 20: "Paper cuts never heal"   | PG-13
  Generator instruction: Same as CROSS-1 — two separate keyed entries required.

[ISO-1] MONASTERY ISOLATION — ZERO OUTBOUND LINKS
  Risk: This is the single most commonly violated rule in web development.
        Any template, framework, or boilerplate the generator uses will likely
        include navigation links, breadcrumbs, footer links, or header links.
        Every one of these must be stripped from AIO pages.
  Rule: AIO pages contain ZERO links to any other page on or off the site.
        Exception: Social share buttons in Block 1 (they push content outward,
        they do not navigate the user away).
  Generator instruction: AIO page template must have:
    - No site navigation header
    - No site navigation footer
    - No breadcrumb trail
    - No "Back to" links
    - No related content links
    - No category links
    - Social Block 1 share buttons only (outbound sharing, not navigation)
  Test: Load any generated AIO page. Right-click "Inspect." Search for <a href.
        The only <a> tags permitted are social share embeds in Block 1.

[CONT-1] SET LIST 6 BLOCK 10 — CONTAMINATED ROLLING STONE REVIEW
  Risk: The source K11 Rolling Stone section contains a review labeled for
        Set List 6 that references Set List 5 tracks. If the generator
        auto-populates Block 10 from the K11 section by collection label,
        it will insert the wrong review into Set List 6.
  Resolution: Tom supplies corrected Set List 6 RS review.
  Generator instruction: Set List 6 Block 10 must be hardcoded as placeholder:
    "[BLOCK 10 — Rolling Stone review for Set List 6 requires correction.
     Current source review references Set List 5 tracks.
     Corrected review pending from Tom. Do not auto-populate from source K11.]"
  Do NOT pull from source K11 for Set List 6 under any circumstances.

================================================================================
MEDIUM RISKS — Resolve before first deployment
================================================================================

[ENCODING-1] SET LIST 5 TITLE — à CHARACTER (U+00E0)
  Risk: "Living à la Mode" contains a non-ASCII character.
        If Yola's HTML template does not declare UTF-8 charset or if the
        generator's data layer stores the title as ASCII, the à will render
        as a box, question mark, or garbled character sequence.
  Test: Generate Set List 5 AIO page. View source. Confirm:
        <meta charset="UTF-8"> is present in <head>
        Title displays as "Living à la Mode" not "Living ? la Mode"
  Generator instruction: Ensure all data files are UTF-8 encoded.
        Ensure Yola page template includes <meta charset="UTF-8">.
        Store title as: Living \u00E0 la Mode in any JSON data layers.

[COMMA-4] SET LIST 17 TITLE — DOUBLE COMMA IN DATA LAYERS
  Risk: "Smirks, Swears, Moans and Cries" contains two commas.
        In any CSV, TSV, or unquoted string data format, this will split
        into three fields instead of one.
  All titles with commas (must be double-quoted in any delimited format):
    Set List 11: "Noise, Lies and Longing"
    Set List 14: "6,000 km to Denmark"
    Set List 16: "Kneel, Heal and Rise"
    Set List 17: "Smirks, Swears, Moans and Cries"
  Generator instruction: If using JSON, all titles are naturally safe.
        If using CSV, all four above must be wrapped in double quotes.
        If using any other delimited format, same rule applies.

[SUMM-2] "F THE W" FOUR-WORD SUMMARY — EXPLICIT CONTENT IN METADATA FIELD
  Risk: The four-word summary for Set List 3 Track 2 ("F the W") is:
        "Fuck the world, let's get high"
        This explicit word appears in the structured metadata field (Block 6/9)
        not just in the lyrics. Some platforms and content filters may flag
        or block metadata fields containing explicit language even if the
        lyric content itself is permitted.
  Resolution: Tom confirms whether to use explicit form or sanitize
    (Decision E6 in Tom Quick Answer Sheet).
  Generator instruction: Hold this summary as conditional:
        If Tom confirms explicit: use "Fuck the world, let's get high"
        If Tom sanitizes: replace with Tom's supplied alternative.
        Do not assume either direction — wait for Tom's answer.

[ADULT-1] X-RATED TRACK TAGGING — ALL THREE BLOCKS
  Risk: Generator might apply [X] flag in one block but miss the others.
  Rule: Every X-rated track must carry [X — ADULTS ONLY] in ALL THREE of:
        Block 6 (track list row), Block 9 (quick guide row), Block 14 (fast button)
  Collections with X tracks: Set List 5 (3 tracks), Set List 21 (1+),
        Set List 22 (3), Set List 24 (13 of 16)
  Generator instruction: Adult rating flag logic must be applied at the
        track-rating level, not the page level. Every track rated X triggers
        the flag in all three blocks automatically.
  Test: Generate Set List 24. Verify all 13 X-rated buttons in Block 14
        display [X] tag. If any are missing, the flag logic is incomplete.

[ADULT-2] NC-17 TRACK TAGGING — ALL THREE BLOCKS
  Risk: Same as ADULT-1 but for NC-17 tracks.
  Rule: Every NC-17 track must carry [NC-17] in Blocks 6, 9, and 14.
  Collections with NC-17 tracks (confirmed): Set List 7 (multiple),
        Set List 12 (Clinical Depression), Set List 18 (Wave My Hands),
        Set List 21, Set List 22, Set List 23
  Generator instruction: Same trigger-by-rating logic as X-rated.

[ADULT-3] PG-13+ INDEX TAGGING — SET LIST 5 FIRST
  Risk: If the PG-13+ index is not active before Set List 5 deploys, adult
        content will be accessible without appropriate routing.
  Resolution: Confirm PG-13+ index system is live before Set List 5 deploys.
  Generator instruction: Set List 5 AIO page must include a flag or metadata
        tag that registers it with the adult content index.
        Deployment order: confirm PG-13+ index before Set List 5 goes live.

================================================================================
LOW RISKS — Address during build, test before deployment
================================================================================

[ENCODING-2] ELLIPSIS CHARACTERS IN TRACK 4 TITLE — SET LIST 14
  "Aum... What She Said... Um/Om" — ellipsis (...) characters.
  Standard HTML ellipsis: use &hellip; or three literal periods (...).
  Both render correctly in modern browsers. Low risk. Test to confirm.

[COMMA-1,2,3] SET LIST 11, 14, 16 — SINGLE COMMA IN TITLE
  Same CSV quoting requirement as COMMA-4 above but lower risk (single comma).
  JSON data layers are immune. CSV layers must quote these titles.

[APOST-1] APOSTROPHES IN TRACK TITLES — 14+ TRACKS AFFECTED
  Tracks like "It Doesn't Matter," "Sniper's Song," "Time's Up,"
  "Valentine's Woes," "Tom's Psalm," etc.
  In HTML: apostrophes in text content render fine. In HTML attributes
  (e.g., title="It Doesn't Matter"), must use &apos; or &quot; wrapping.
  Low risk if generator uses standard HTML text content for titles.
  Risk only if titles appear in HTML attributes without escaping.

[SUMM-1] OVER-LENGTH FOUR-WORD SUMMARIES — 6 TRACKS
  Six tracks have 6-word summaries instead of 4:
    Set List 3  Track 2  — F the W: "Fuck the world, let's get high" (6 words)
    Set List 17 Track 3  — That's That: "Sexy young thing and you're you" (6 words)
    Set List 17 Track 7  — Times Up: "Jump when you should have ducked" (6 words)
    Set List 17 Track 9  — Behave: "Magellan in me needs to explore" (6 words)
    Set List 17 Track 11 — Tired: "Pretended her dad was her uncle" (6 words)
    Set List 17 Track 12 — Actress: "Wrong writer so why choose me" (6 words)
  Additional 5-word summaries exist throughout the catalog.
  These are NOT errors — the "four-word" label is a convention, not a hard limit.
  Generator instruction: Block 6 and Block 9 summary fields must accommodate
        variable-length strings. Do not truncate to 4 words. Display as-is.

================================================================================
PRE-GENERATION TEST PROTOCOL
================================================================================

Before generating any AIO page beyond the first five test collections:

TEST 1 — ENCODING:
  Generate Set List 5. Verify à renders correctly in page title and Block 2.
  If failed: fix charset declaration before continuing.

TEST 2 — MONASTERY ISOLATION:
  Generate any AIO page. Count all <a href> tags in output HTML.
  Expected: Only social share links in Block 1 area.
  If any navigation links found: strip them from template before continuing.

TEST 3 — PARTIAL LYRIC FLAG:
  Generate Set List 1. Verify Rain (Track 8) in Block 7 shows [PARTIAL] flag.
  If no flag: fix Block 7 partial detection logic before continuing.

TEST 4 — ADULT CONTENT TAGGING:
  Generate Set List 12. Verify Clinical Depression in Block 14 shows [NC-17].
  If no tag: fix adult rating trigger logic before continuing.

TEST 5 — CROSS-COLLECTION METADATA:
  Generate Set List 3. Verify Night Light summary = "Beacon through the void."
  Generate Set List 14. Verify Night Light summary = "cry tears of joy."
  If either is wrong: fix collection-keyed metadata lookup before continuing.

TEST 6 — BLOCKED COLLECTION REFUSAL:
  Attempt to generate Set List 4. Generator should abort with logged message.
  Attempt to generate Set List 23. Generator should abort with logged message.
  If either generates: add pre-flight blocker check before continuing.

TEST 7 — ROLLING STONE CONTAMINATION CHECK:
  Generate Set List 6. Verify Block 10 shows placeholder, not the source review.
  If source review appears: hardcode Block 10 override for Set List 6.

All 7 tests must pass before production generation begins.

================================================================================
ADDITIONAL CONFIRMED FACTS FOR GENERATOR DATA LAYER
================================================================================

SOLE R-RATED TRACK IN CATALOG:
  Timebomb — Set List 2 Track 11 — R rating — 3 points
  No other R-rated track exists anywhere in the 434-track catalog.
  Generator data layer note: The R rating tier (3 points) is used by exactly
  one track. Do not remove R from the rating scale — it has one occupant.

TRACK SUMMARIES ARE "FOUR-WORD" BY CONVENTION ONLY:
  The field is called "four-word summary" but the actual data varies:
  Minimum confirmed: 3 words ("B-Real with yourself")
  Maximum confirmed: 6 words ("Fuck the world, let's get high")
  Typical: 4–5 words
  Generator must display full summary string without truncating.

SONG LISTS HAVE NO ROLLING STONE REVIEWS — STRUCTURAL FACT:
  This is not missing data. Rolling Stone-style reviews do not exist in source
  for any of the 10 Song Lists. Block 10 for all 10 Song Lists = placeholder.
  Generator must not search for Song List RS reviews — they will not be found.

================================================================================
END OF GENERATOR RISK AUDIT — VOL 1
GENERATOR_RISK_AUDIT_VOL1.txt
================================================================================
Mixed Claude 3 | Final Session Sweep | May 9, 2026
21 risks. 2 critical. 7 high. 6 medium. 6 low.
7 pre-generation tests. All must pass before production run.
================================================================================
