================================================================================
MANUAL_QA_VERIFICATION_WORKFLOW_5_12_26.txt
CollabORhythm / Collabtunes — Production Implementation Phase
Generated: 5.12.26 | Production Claude
PURPOSE: Human verification checklist — every check that cannot be automated.
         Run this on every page before Tom review and before deployment.
FORMAT: Grouped by check type. Each item is a discrete pass/fail test.
        Mark: ✅ PASS | ❌ FAIL | ⚠️ FLAG (needs judgment) | N/A
================================================================================

INSTRUCTIONS:
  Print or copy this file for each page being QA'd.
  Fill in page name and date at the top of each run.
  A page with any ❌ FAIL must be fixed before proceeding.
  A page with any ⚠️ FLAG must be reviewed with Tom before proceeding.
  All N/A items must have a reason noted.

PAGE BEING TESTED: _______________________________________________
DATE OF TEST:      _______________________________________________
TESTER:            _______________________________________________
TEMPLATE VERSION:  _______________________________________________

================================================================================
SECTION 1 — NAVIGATION CHECKS
================================================================================

1.1  Back to Switchboard button present and functional
     Expected: Visible near top and bottom. Links to /switchboard-quicklinks/
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

1.2  Breadcrumb trail correct and all links functional
     Expected: Home → Switchboard → [Page Name]
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

1.3  Fast scroll buttons present and all anchors reachable
     Expected: Top / mid-section / lower-section / bottom at minimum
     Test: Click each button. Confirm page scrolls to correct position.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

1.4  Fast scroll works on mobile landscape
     Expected: Buttons visible, tappable, scroll correctly
     Test: Rotate phone or use browser dev tools mobile view
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

1.5  No nav links point to /practice-head/ (broken Revenue Streams URL)
     Test: Scan all href values for /practice-head/
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

1.6  No nav links point to conflict URLs
     Test: Check for both Lady Weaver URLs simultaneously, both ch.18 URLs
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

1.7  All linked pages actually exist (no 404s)
     Test: Click every internal link. Confirm each loads a real page.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A
     Note any 404s found: _______________________________________________

================================================================================
SECTION 2 — RATING GATE CHECKS
================================================================================

2.1  Bouncer default state loads at G/PG
     Test: Clear localStorage. Open bouncer. Confirm G/PG is selected.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A
     How to clear: Browser DevTools → Application → Local Storage → Clear

2.2  G/PG visitor cannot reach PG-13 pages
     Test: Set rating = gpg in localStorage. Navigate to a PG-13 page.
     Expected: Redirected to homepage.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.3  PG-13 visitor can reach PG-13 pages
     Test: Set rating = pg13 in localStorage. Navigate to a PG-13 page.
     Expected: Page loads normally.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.4  G/PG visitor cannot reach R, NC-17, or X pages
     Test: Set rating = gpg. Attempt to navigate to R, NC-17, X pages.
     Expected: Redirected each time.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.5  R visitor can reach R pages but not NC-17 or X
     Test: Set rating = r. Confirm R loads. Confirm NC-17 and X redirect.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.6  NC-17 visitor can reach NC-17 pages but not X
     Test: Set rating = nc17. Confirm NC-17 loads. Confirm X redirects.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.7  X visitor can reach all content
     Test: Set rating = x. Confirm all gated pages load.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.8  No session (fresh browser) cannot reach any gated page
     Test: Clear all localStorage. Attempt any gated page directly.
     Expected: Redirected to homepage.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.9  Gate tested in Chrome
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.10 Gate tested in Firefox
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.11 Gate tested on mobile browser (iOS or Android)
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

2.12 No JS console errors on page load
     Test: Open browser DevTools → Console. Load page. Check for errors.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A
     Note any errors: _______________________________________________

================================================================================
SECTION 3 — PROFANITY LEAK CHECKS
================================================================================

3.1  No profanity visible in page body to a G/PG visitor
     Test: Set rating = gpg. Scroll through entire page.
     Check: No explicit words, no X-rated album titles visible.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

3.2  Bouncer subtitle contains no profanity before rating is selected
     Test: Clear localStorage. Open bouncer. Read default subtitle.
     Expected: Neutral copy. No explicit language.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

3.3  Bouncer "NO LIMITS" label only shows full detail after selection
     Test: Open bouncer. Confirm NO LIMITS row does not show explicit
           detail until that button is clicked.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

3.4  No X-rated nav labels visible without appropriate rating
     Test: Set rating = gpg. Check homepage nav and 128-nav.
     Expected: No labels reading "Rated X" or explicit content warnings.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

3.5  Page title in browser tab contains no profanity
     Test: Check <title> tag in browser tab.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

================================================================================
SECTION 4 — PLACEHOLDER VISIBILITY CHECKS
================================================================================

4.1  All SOURCE_PULL_REQUIRED text renders as styled badge (not raw text)
     Test: Scroll through all blocks. Confirm yellow badge renders correctly.
     Fail condition: Any [BRACKET TEXT] visible as plain text in page body.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

4.2  No empty block sections (every block has content or a badge)
     Test: Scroll all 15 blocks. Confirm none are blank.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

4.3  STAGING BANNER visible at top of page
     Expected for staging pages: Red banner at very top reading
     "STAGING ONLY — NOT FOR PUBLIC DEPLOYMENT"
     Result: [ ] PASS  [ ] FAIL  [ ] N/A (N/A if production page)

4.4  _STAGING present in filename for staging pages
     Test: Check filename. Staging pages must have _STAGING suffix.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

4.5  Canon notes block (Block 14) populated with real flags
     Test: Scroll to Block 14. Confirm it shows ✅/⚠️/❌ markers.
     Fail condition: Block 14 is empty or entirely SOURCE_PULL badges.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

4.6  Reconstruction status block (Block 15) populated
     Test: Scroll to Block 15. Confirm status grid shows real statuses.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

================================================================================
SECTION 5 — MOBILE CHECKS
================================================================================

5.1  "Turn phone sideways" message appears on narrow mobile portrait view
     Test: Reduce browser window to ~375px width. Confirm message shows.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

5.2  Page is usable on mobile landscape (no horizontal scroll)
     Test: Rotate phone or set browser to mobile landscape (~667px wide).
     Expected: No horizontal scrollbar. Content fits.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

5.3  Rating badges readable on small screen
     Test: View on mobile. Confirm badge text is legible.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

5.4  Fast scroll buttons accessible on mobile (if not hidden)
     Test: On mobile landscape, confirm scroll buttons visible and tappable.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

5.5  Text is readable (not too small) on mobile
     Test: Confirm body text (--text-main) is at minimum ~14px on mobile.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

5.6  Download button (PDF page only) tappable on mobile
     Test: On PDF landing page, confirm download button is easy to tap.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A (N/A if not PDF page)

================================================================================
SECTION 6 — BROKEN LINK CHECKS
================================================================================

6.1  All Switchboard links resolve
     Test: Click Switchboard link. Confirm /switchboard-quicklinks/ loads.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

6.2  All Song List links resolve (/song-list-1/ through /song-list-10/)
     Test: Sample at least 3. Confirm they load.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

6.3  All Set List links resolve
     Test: Sample at least 3 including SL22–24 (title-in-slug format).
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

6.4  PDF download link resolves and file downloads
     Test: Click PDF download. Confirm file opens or downloads.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A (N/A if not PDF page)

6.5  No links point to pages marked ❌ BROKEN in URL_AUTHORITY_REGISTRY
     Test: Cross-check any ambiguous links against registry.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

6.6  Social bar links all open (even if placeholder #)
     Test: Confirm social bar links do not throw JS errors.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

================================================================================
SECTION 7 — SOURCE-PULL MARKER CHECKS
================================================================================

7.1  Every pending block has a styled badge — not raw bracket text
     Test: Inspect all SOURCE_PULL sections.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

7.2  No track title has been invented or guessed
     Test: For any unknown track title slots, confirm they show pending
           badges — not invented names.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

7.3  No rating has been invented for an unconfirmed collection
     Test: Check rating badges. Unconfirmed collections must show
           PENDING badge — not an invented rating.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

7.4  No GX score displayed for a delta-conflict collection without note
     Test: For SL1, SL3, SL6, SL7, SL8, SL10 — confirm GX conflict
           note is present if GX is displayed at all.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

7.5  No editorial content generated for blocks requiring source pull
     Test: Review Block 6 (RS Review). Confirm it shows a SOURCE_PULL
           badge rather than invented editorial text.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

================================================================================
SECTION 8 — CANON CONFLICT CHECKS
================================================================================

8.1  Album title matches FINAL_CANON_AUTHORITY_REGISTRY exactly
     Test: Cross-check page <title> and Block 1 heading against registry.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A
     Title on page: _______________________________________________
     Title in registry: _______________________________________________

8.2  SL1 track count shown as 13 (not 12)
     Test: Count track list items on SL1. Confirm 13 rows.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A (N/A if not SL1)

8.3  SL1 Track 8 "Rain" marked as partial (two stanzas only)
     Test: Find Track 8 on SL1. Confirm partial flag is present.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A (N/A if not SL1)

8.4  LadyWeaver credited on SL1 Track 1 "Knowing the Know"
     Test: Find Track 1 on SL1. Confirm credit is present.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A (N/A if not SL1)

8.5  No Lady Weaver crosslink injected before URL conflict is resolved
     Test: Search page source for /20-35-the-lady-weaver/ and /36-35-lady-weaver/
     Expected: Neither URL is used as a link until Tom resolves conflict.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

8.6  No chapter links use drifted chapter numbers
     Test: Check any chapter crosslinks. Confirm they use confirmed
           URL slugs from MASTER_URL_AUTHORITY_REGISTRY — not nav labels.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

================================================================================
SECTION 9 — VISUAL / PALETTE CHECKS
================================================================================

9.1  No pure white (#ffffff) used as reading text anywhere
     Test: Visually scan body text. No stark white text.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

9.2  Page background is dark navy (#070911 or approved panels)
     Test: Confirm background is dark — not light, not white.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

9.3  No green matrix colors anywhere
     Test: Visually scan. No bright green (#00ff00 family) visible.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

9.4  No red lava or RGB gamer colors anywhere
     Test: Visually scan. No gradient effects using red/lava palette.
           Accent danger (#ff3131) is acceptable for warnings only.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

9.5  Source-pull badges render as gold-on-dark (not plain text)
     Test: Visually confirm badges appear styled in gold (#ffd21f).
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

9.6  Rating badge styled correctly (bordered, gold, readable)
     Test: Confirm rating badge appears near page title.
     Result: [ ] PASS  [ ] FAIL  [ ] N/A

================================================================================
QA SIGN-OFF
================================================================================

TOTAL CHECKS RUN:         ______ of 48
PASS:                     ______
FAIL:                     ______
FLAG (needs Tom):         ______
N/A:                      ______

FAILS FOUND (list each):
  _______________________________________________
  _______________________________________________
  _______________________________________________

FLAGS FOR TOM (list each):
  _______________________________________________
  _______________________________________________

OVERALL RESULT:
  [ ] PASS — ready for Tom review
  [ ] FAIL — fix before Tom review
  [ ] PARTIAL PASS — flagged items need Tom judgment before proceeding

TESTER SIGN-OFF: _______________________________________________
DATE:            _______________________________________________

================================================================================
END MANUAL_QA_VERIFICATION_WORKFLOW_5_12_26.txt
================================================================================
