================================================================================
COLLABTUNES LIVE SITE QA EXECUTION WORKFLOW
Version: 1.0 | Date: 5_13_26 | Status: AUTHORITATIVE
Owner: Mixed Claude / Tom
Purpose: Operational execution checklist for live site QA.
         Run after every SGC-1 capture and before every deployment.
         Each section = one pass. Complete passes in order.
================================================================================

QA SESSION METADATA
────────────────────
Session ID:           ___________________
Date:                 ___________________
QA operator:          ___________________
SGC-1 Run ID:         ___________________
Browser used:         ___________________  (note: test in at least 2 browsers)
Mobile tested:        [ ] YES  [ ] NO — Device: ___________________
Site URL:             https://collabtunes.com

================================================================================
PASS 1 — ANCHOR QA
================================================================================
Tools: SGC-1 body parser output + manual browser verification
Goal:  Every anchor that should exist exists. No duplicates. No dead refs.

────────────────────────────────────────────────────────────────────────────────
1.1  REQUIRED ANCHORS — verify on each key page
────────────────────────────────────────────────────────────────────────────────

For each page listed, open in browser, check that id="top", id="mid",
id="bot" are present (use browser developer tools > Elements > search for id=).

Page                              | top  | mid  | bot  | PASS/FAIL
----------------------------------|------|------|------|----------
Homepage / front door             |      |      |      |
128-section navigator             |      |      |      |
Switchboard                       |      |      |      |
Song List 1 (AIO sample)          |      |      |      |
Set List 3 (AIO sample)           |      |      |      |
Chapter 6 or 7 (Quick Guide)      |      |      |      |

────────────────────────────────────────────────────────────────────────────────
1.2  FAST-SCROLL SYSTEM — anchor jump test
────────────────────────────────────────────────────────────────────────────────

On each page with fast-scroll enabled, click every jump button and verify:
  - Page scrolls to correct position (not a no-op)
  - Page does not throw JavaScript error
  - Scroll position is correct on both desktop and mobile

Page                              | ↑top  | ↕mid  | ↓bot  | PASS/FAIL
----------------------------------|-------|-------|-------|----------
Homepage                          |       |       |       |
128-nav                           |       |       |       |
Switchboard                       |       |       |       |
Song List 1                       |       |       |       |
Set List 3                        |       |       |       |

────────────────────────────────────────────────────────────────────────────────
1.3  128-SECTION NAVIGATOR — section anchor check
────────────────────────────────────────────────────────────────────────────────
Method: Open 128-nav page. Spot-check 10 section anchor IDs.
        No two section IDs should be identical.

Sample check (pick 10 across the page):
  Section anchor tested          | ID value confirmed unique? | PASS/FAIL
  -------------------------------|---------------------------|----------
                                 |                           |
                                 |                           |
                                 |                           |
                                 |                           |
                                 |                           |

Duplicate anchor check:
  [ ] No duplicate id= attributes found on 128-nav page
  [ ] All section IDs follow naming standard (see GENERATOR_INPUT_REQUIREMENTS)

────────────────────────────────────────────────────────────────────────────────
1.4  BACK BUTTON / NAV CONSISTENCY
────────────────────────────────────────────────────────────────────────────────

Inner pages must have a back navigation element.
Check at least one of each page type:

Page type       | Page URL tested     | Back nav present? | Works?
----------------|---------------------|-------------------|--------
ALBUM_AIO       |                     |                   |
SONGBOOK        |                     |                   |
QUICKGUIDE      |                     |                   |
HGIH            |                     |                   |

PASS 1 VERDICT:  [ ] PASS  [ ] FAIL — failing items: ___________________

================================================================================
PASS 2 — SWITCHBOARD + QUICKLINK QA
================================================================================
Tools: Browser + SGC-1 nav crossref output
Goal:  Every switchboard link resolves to a live page. No dead quicklinks.

────────────────────────────────────────────────────────────────────────────────
2.1  SWITCHBOARD LINK VERIFICATION
────────────────────────────────────────────────────────────────────────────────
Method: Open switchboard page. Click every major navigation link.
        Confirm HTTP 200 (no 404, no redirect loops).

Primary nav links to check:
  [ ] All Song List links (10 total) — all resolve to live AIO pages
  [ ] All Set List links (24 total) — all resolve to live AIO pages
  [ ] Chapter nav links — resolve to Songbook chapters
  [ ] Quick Guide links — resolve to Quick Guide pages
  [ ] Mood/settings links — resolve correctly
  [ ] Download/PDF links — resolve or are correctly labeled as coming soon

Count of dead links found: ___
List dead links: ________________________________________________________________

────────────────────────────────────────────────────────────────────────────────
2.2  QUICKLINKS PANEL
────────────────────────────────────────────────────────────────────────────────
  [ ] Quicklinks panel renders correctly
  [ ] All quicklinks resolve to live pages (no 404)
  [ ] Quicklinks are in expected order
  [ ] No duplicate quicklinks to same destination
  [ ] Quicklinks function on mobile (not obscured, tappable)

────────────────────────────────────────────────────────────────────────────────
2.3  HOMEPAGE NAV LINKS
────────────────────────────────────────────────────────────────────────────────
  [ ] All homepage nav sections tested
  [ ] Internal links: all resolve
  [ ] External links (if any): all resolve or correctly labeled
  [ ] No nav links pointing to placeholder pages labeled as live

PASS 2 VERDICT:  [ ] PASS  [ ] FAIL — dead link count: ___

================================================================================
PASS 3 — GATE LOGIC QA (MANDATORY — cannot be CONDITIONAL)
================================================================================
Tools: Browser + SGC-1 routing_classifier output
Goal:  Every R+ page is behind a working gate. Zero exceptions.

THIS PASS BLOCKS DEPLOYMENT IF ANY ITEM FAILS.

────────────────────────────────────────────────────────────────────────────────
3.1  GATE PRESENCE CHECK
────────────────────────────────────────────────────────────────────────────────

For each R+ rated page, verify the gate is active:
  - Visit the page URL directly without any session/cookie
  - A gate/prompt should appear BEFORE the content is visible
  - Gate should not be bypassable by pressing Back or refreshing

R+ PAGES TO CHECK:
Page URL                              | Rating | Gate visible? | Gate works? | PASS/FAIL
--------------------------------------|--------|--------------|-------------|----------
                                      |        |              |             |
                                      |        |              |             |
                                      |        |              |             |

(Populate from SGC-1 JSON: items where rating = R, NC-17, or X)

────────────────────────────────────────────────────────────────────────────────
3.2  GATE BYPASS TEST
────────────────────────────────────────────────────────────────────────────────
For each X-rated page (highest risk):
  [ ] Direct URL access shows gate (not content)
  [ ] Pressing browser Back from gate and forward does not bypass
  [ ] Clearing cookies and re-visiting shows gate again
  [ ] No content is visible before gate is passed (no text, no images)

────────────────────────────────────────────────────────────────────────────────
3.3  GATE MISMATCH CHECK
────────────────────────────────────────────────────────────────────────────────
From SGC-1 output, GATE_MISSING flag count: ___
Expected: 0 for R, NC-17, X pages

If count > 0:
  [ ] Each flagged page entered as CRITICAL blocker in registry
  [ ] Deployment halted until all gates implemented

────────────────────────────────────────────────────────────────────────────────
3.4  PG-13 GATE CHECK
────────────────────────────────────────────────────────────────────────────────
PG-13 pages require a softer gate (age acknowledgment or scroll-to-confirm).
  [ ] At least one PG-13 page tested — gate present
  [ ] PG-13 gate behavior is distinct from R gate
  [ ] G/PG pages have NO gate (do not block users unnecessarily)

PASS 3 VERDICT:  [ ] PASS  [ ] FAIL (BLOCKS DEPLOYMENT)
GATE_MISSING count on R+ pages: ___ (must be 0 to PASS)

================================================================================
PASS 4 — RATINGS DISPLAY QA
================================================================================
Tools: Browser + MASTER_CONTENT_RATINGS_INDEX
Goal:  Every AIO page displays the correct rating badge. No mismatches.

────────────────────────────────────────────────────────────────────────────────
4.1  RATING BADGE PRESENCE
────────────────────────────────────────────────────────────────────────────────
Sample: Check at least one AIO page per rating tier (G, PG, PG-13, R).

Page URL                              | Expected Rating | Badge shows | Matches | PASS/FAIL
--------------------------------------|-----------------|-------------|---------|----------
                                      | G               |             |         |
                                      | PG              |             |         |
                                      | PG-13           |             |         |
                                      | R               |             |         |

────────────────────────────────────────────────────────────────────────────────
4.2  RATING CONSISTENCY
────────────────────────────────────────────────────────────────────────────────
For each page tested above:
  Compare: badge shown on page vs rating in MASTER_CONTENT_RATINGS_INDEX
  [ ] All tested pages match registry rating
  [ ] No page shows "PENDING" as a visible badge to users
  [ ] No page shows no badge when rating exists in registry

────────────────────────────────────────────────────────────────────────────────
4.3  MOOD SETTINGS RATING CROSS-CHECK
────────────────────────────────────────────────────────────────────────────────
  [ ] At least 5 collections spot-checked: mood_settings rating = page badge = index rating
  [ ] If mood_settings says R and page badge says PG-13: CRITICAL conflict, log it

PASS 4 VERDICT:  [ ] PASS  [ ] FAIL — mismatch count: ___

================================================================================
PASS 5 — DEAD LINKS + ORPHAN SECTIONS
================================================================================
Tools: SGC-1 JSON (http_status, nav_sources, flags)
Goal:  No live-expected pages returning errors. No unregistered orphan pages.

────────────────────────────────────────────────────────────────────────────────
5.1  DEAD LINK INVENTORY
────────────────────────────────────────────────────────────────────────────────
From SGC-1 JSON: all items where http_status ≠ 200 AND expected_status = LIVE

Count: ___
List:
  URL                                   | http_status | expected_status
  --------------------------------------|-------------|------------------
                                        |             |
                                        |             |

For each: create blocker entry or confirm is known/accepted.

────────────────────────────────────────────────────────────────────────────────
5.2  ORPHAN SECTION AUDIT
────────────────────────────────────────────────────────────────────────────────
From SGC-1 JSON: all items where nav_sources = [] AND http_status = 200
AND page_type NOT IN [PLACEHOLDER, DEV]

These pages are live but unreachable via navigation.

Count: ___
List:
  URL                                   | page_type  | Intentional?
  --------------------------------------|------------|-------------
                                        |            |
                                        |            |

For each:
  Intentional (admin/tool page): mark ACCEPTED_RISK in registry
  Unintentional: add to nav OR mark for removal

────────────────────────────────────────────────────────────────────────────────
5.3  REDIRECT CHAIN CHECK
────────────────────────────────────────────────────────────────────────────────
From SGC-1 JSON: items where redirect_url is not None

Count: ___
For each redirect:
  [ ] Destination URL is the correct canonical page
  [ ] Redirect is intentional (not an accidental redirect loop)
  [ ] Registry updated to reflect canonical destination

PASS 5 VERDICT:  [ ] PASS  [ ] FAIL — dead link count: ___ | orphan count: ___

================================================================================
PASS 6 — MOBILE RENDERING QA
================================================================================
Tools: Browser developer tools (responsive mode) or actual mobile device
Goal:  Site renders correctly on mobile. No broken layouts, no obscured gates.

────────────────────────────────────────────────────────────────────────────────
6.1  LAYOUT CHECK — key pages on mobile
────────────────────────────────────────────────────────────────────────────────
Viewport: 375px width (iPhone) and 390px (iPhone 14 Pro)

Page                     | Layout OK? | Nav visible? | Gate visible? | Fast-scroll OK?
-------------------------|------------|--------------|---------------|----------------
Homepage                 |            |              |               |
128-nav                  |            |              |               |
Switchboard              |            |              |               |
One AIO page             |            |              |               |
One Quick Guide          |            |              |               |

────────────────────────────────────────────────────────────────────────────────
6.2  GATE MOBILE CHECK
────────────────────────────────────────────────────────────────────────────────
Gates must be fully visible and functional on mobile.
  [ ] R-rated page gate is visible without scrolling on mobile
  [ ] Gate button/prompt is tappable (not too small)
  [ ] Gate does not overlap content incorrectly on small screen

────────────────────────────────────────────────────────────────────────────────
6.3  FAST-SCROLL ON MOBILE
────────────────────────────────────────────────────────────────────────────────
  [ ] Fast-scroll buttons are tappable on mobile (minimum 44x44px tap target)
  [ ] Scroll to top/mid/bot works on mobile
  [ ] Buttons not obscured by browser chrome

PASS 6 VERDICT:  [ ] PASS  [ ] FAIL  [ ] PARTIAL — issues: ___________________

================================================================================
QA SESSION SUMMARY
================================================================================

Pass 1 — Anchor QA:            [ ] PASS  [ ] FAIL
Pass 2 — Switchboard/Quicklinks:[ ] PASS  [ ] FAIL
Pass 3 — Gate Logic:           [ ] PASS  [ ] FAIL  ← MUST PASS
Pass 4 — Ratings Display:      [ ] PASS  [ ] FAIL
Pass 5 — Dead Links/Orphans:   [ ] PASS  [ ] FAIL
Pass 6 — Mobile Rendering:     [ ] PASS  [ ] FAIL  [ ] PARTIAL

New blockers raised this session:  ___
Total CRITICAL blockers open:      ___

GATE_MISSING on R+ pages:  ___  (must be 0 for deployment clearance)

QA VERDICT:
[ ] CLEAR — all passes PASS, GATE_MISSING = 0
[ ] CONDITIONAL — non-critical failures, Pass 3 = PASS
[ ] BLOCKED — Pass 3 FAIL or GATE_MISSING > 0

Operator sign-off: _________________________ Date: ___________
Tom review:        _________________________ Date: ___________

================================================================================
APPENDIX — COMMON FAILURE PATTERNS + QUICK FIXES
================================================================================

SYMPTOM: Fast-scroll buttons do nothing on click
  Cause:  Missing id="top"/id="mid"/id="bot" on page
  Fix:    Add required anchor IDs to page HTML

SYMPTOM: Gate not appearing on R-rated page
  Cause:  Gate JS not loaded, or JS condition evaluating incorrectly
  Fix:    Check gate script is included, check has_js_gate logic
  Severity: CRITICAL — create BLOCK-L entry immediately

SYMPTOM: Switchboard link goes to 404
  Cause:  URL changed, page deleted, or slug in switchboard is old
  Fix:    Update switchboard link to current canonical slug

SYMPTOM: Rating badge shows "PENDING" on live page
  Cause:  Rating not confirmed in ratings index
  Fix:    Confirm rating in MASTER_CONTENT_RATINGS_INDEX, new VOL

SYMPTOM: Chapter drift in 128-nav (wrong number shown)
  Cause:  Nav label not updated when slug was changed (or vice versa)
  Fix:    Tom decision: update label or update slug (BLOCK-H02 type)

SYMPTOM: Page visible in nav but returns 404
  Cause:  Page deleted or URL changed without nav update
  Fix:    Update nav to correct URL, or restore page

SYMPTOM: Gate visible but content also visible behind it
  Cause:  Gate CSS z-index too low, or gate loads after content
  Fix:    Fix gate CSS or load order

================================================================================
END COLLABTUNES LIVE SITE QA EXECUTION WORKFLOW
================================================================================
