================================================================================
RATING_SORTER_ROUTE_MAP_5_12_26.txt
CollabORhythm / Collabtunes — Implementation Layer
Generated: 5.12.26 | Asian Claude
PURPOSE: Complete rating gate routing logic for all 34 album pages + utility.
         Ready for Mixed Claude coding phase. Verified against existing gates.
================================================================================

RATING SYSTEM (5 levels):
  gpg   = G/PG — All audiences, family safe
  pg13  = PG-13 — Mature themes, strong emotion
  r     = R — Adult content, profanity, intense subject matter
  nc17  = NC-17 — Explicit 18+ only
  x     = X / No Limits — Full catalog, all content

GATE MECHANISM:
  Written by: Front Door Bouncer (FRONT_DOOR_BOUNCER_FIXED_COLOR_V2)
  Read by: JS gate snippet at bottom of each gated page body
  Storage: localStorage.getItem('collabtunes_selected_rating')
  Fail behavior: redirect to https://collabtunes.com

================================================================================
ROUTING TABLE — ALL 34 ALBUM PAGES
================================================================================

SONG LISTS (10 total) — ALL PG-13 MINIMUM (confirmed canon)

  SL1  — The Last Man Singing         gate: ['pg13','r','nc17','x']  STATUS: BUILT
  SL2  — Sheila Tequila               gate: ['pg13','r','nc17','x']  STATUS: BUILT
  SL3  — A Day at the Office          gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT
  SL4  — A Traveler in the Distance   gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT
  SL5  — Love Without a Doubt         gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT
  SL6  — Undertows and Afterglows     gate: ['pg13','r','nc17','x']  STATUS: BUILT
  SL7  — High Tides and Landslides    gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT
  SL8  — A Knight for a Lady          gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT
  SL9  — Between Us and Love          gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT
  SL10 — One Piece Missing            gate: ['pg13','r','nc17','x']  STATUS: NOT BUILT

SET LISTS (24 total) — RATINGS CONFIRMED OR ESTIMATED

CONFIRMED RATINGS:
  SetList7  — Train Off the Tracks       gate: ['r','nc17','x']        STATUS: BUILT ✅
  SetList8  — Boss Logic                  gate: ['r','nc17','x']        STATUS: NOT BUILT
                                          NOTE: R confirmed in canon
  HOW I GOT HERE (full dirty)            gate: ['x']                   STATUS: EXISTS LIVE (ungated — live blocker)
  HOW I GOT HERE (full Claude AI talk)   gate: ['x']                   STATUS: EXISTS LIVE (ungated — live blocker)

ESTIMATED RATINGS (mood_settings file needed to confirm):
  SetList1  — Glass Half Something        gate est: ['pg13','r','nc17','x']
  SetList2  — Plurality                   gate est: ['pg13','r','nc17','x']
  SetList3  — Self in the Mirror          gate est: ['pg13','r','nc17','x']  STATUS: BUILT (estimated rating)
  SetList4  — Partnered to the Crime      gate est: ['pg13','r','nc17','x']
  SetList5  — Living a la Mode            gate est: ['pg13','r','nc17','x']  STATUS: BUILT (estimated rating)
  SetList6  — Definitely NOT Love         gate est: ['pg13','r','nc17','x']  STATUS: BUILT (estimated rating)
  SetList9  — Thralls of the Flame        gate est: ['r','nc17','x']        (R suspected — needs confirm)
  SetList10 — Go Ask Gramm               gate est: ['pg13','r','nc17','x']
  SetList11 — Noise, Lies and Longing    gate est: ['pg13','r','nc17','x']
  SetList12 — Wounded Masculinity        gate est: ['pg13','r','nc17','x']
  SetList13 — Power Shields              gate est: ['pg13','r','nc17','x']
  SetList14 — 6,000KM to DK             gate est: ['pg13','r','nc17','x']
  SetList15 — Liminal State              gate est: ['pg13','r','nc17','x']
  SetList16 — Kneel, Heal and Rise       gate est: ['pg13','r','nc17','x']
  SetList17 — Smirks, Swears, Moans/Cries gate est: ['r','nc17','x']       (R suspected)
  SetList18 — Corrugation Row            gate est: ['pg13','r','nc17','x']
  SetList19 — Della of Troy              gate est: ['pg13','r','nc17','x']
  SetList20 — The Cost of Light          gate est: ['pg13','r','nc17','x']
  SetList21 — A Cold Plate               gate est: ['pg13','r','nc17','x']
  SetList22 — Inherent Absence           gate est: ['pg13','r','nc17','x']
  SetList23 — Zionation                  BLOCKED — do not generate
  SetList24 — Bi Ride or Die             BLOCKED — do not generate

================================================================================
ROUTING TABLE — UTILITY PAGES
================================================================================

PAGE                                    | GATE          | STATUS
----------------------------------------|---------------|---------------------------
Front Door Bouncer                      | None (IS gate)| TOM REVIEW PENDING
PDF Landing Page                        | None (G rated)| TOM REVIEW PENDING
Website Mission Statement               | None (G rated)| TOM REVIEW PENDING
G/PG Quick Guide                        | None (G rated)| NOT STARTED (verify live)
NC-17 Quick Guide                       | ['nc17','x']  | NOT BUILT (Decision 02 needed)
X Quick Guide                           | ['x']         | NOT BUILT (Decision 02 needed)
Full Texts of Lyrics                    | ['pg13','r','nc17','x'] | NOT BUILT (Decision 03)
Switchboard Quicklinks                  | None          | LIVE (no HTML prototype)
128-Section Nav                         | None          | LIVE (no changes pending)
HOW I GOT HERE (dirty)                  | ['x']         | LIVE UNGATED — blocker
HOW I GOT HERE (Claude AI talk)         | ['x']         | LIVE UNGATED — blocker

================================================================================
GATE PRECEDENCE RULES
================================================================================

1. Bouncer must be live and verified BEFORE any gated page is deployed.
2. Lower gates must be confirmed working BEFORE deploying higher gates.
   Order: PG-13 gate → R gate → NC-17 gate → X gate

3. An X visitor can reach ALL pages (all gates pass for 'x').
4. A gpg visitor can reach ZERO gated pages (redirected everywhere).
5. Gate failure = explicit content surfaces without consent = immediate rollback.

GATE LOGIC PSEUDOCODE:
  on page load:
    sel = localStorage.getItem('collabtunes_selected_rating')
    if sel is null OR sel is not in page's allowed array:
      redirect to https://collabtunes.com
    else:
      show page normally

NO SPLASH SCREENS — no warning modals. Gate is hard redirect only.
NO PARTIAL DISPLAY — page never partly shows before gate check.
NO COOKIE FALLBACK — localStorage only.

================================================================================
GX CONFLICT PAGES (display issue — not a gate issue)
================================================================================

These 6 pages have a delta:1 GX score conflict (source vs. calculated).
Do not display a GX score without the conflict note on these pages.
Do not resolve the conflict without Tom's answer.

  SL1  — source GX: 21      | calculated: 20 | SHOW: conflict note
  SL3  — source GX: unknown | calculated: ?  | SHOW: conflict note
  SL6  — source GX: unknown | calculated: ?  | SHOW: conflict note
  SL7  — source GX: unknown | calculated: ?  | SHOW: conflict note
  SL8  — source GX: unknown | calculated: ?  | SHOW: conflict note
  SL10 — source GX: unknown | calculated: ?  | SHOW: conflict note

All other pages: display GX score when source-pulled and confirmed.

================================================================================
END RATING_SORTER_ROUTE_MAP_5_12_26.txt
================================================================================
