Validation: westside-contracts#37 (Data-Driven Contract Rendering)

validation-37-2026-04-05 Doc

validation pass

Ticket

Board item #777 | westside-contracts#37 | PR#45, PR#46, PR#47
Contract page renders fees, tournaments, and schedule from data.config instead of hardcoded values.

Environment

Production: https://westside-contracts.tail5b443a.ts.net (Tailscale funnel) + cloned repo

Checks

# Criterion How to Verify Result Evidence
1 Page uses data.config for rendering <code>grep 'data.config' +page.svelte</code> PASS 5 references found: <code>data.config?.variant</code>, <code>data.config.monthly_fee</code>, <code>data.config.practices.length</code>, <code>data.config.tournaments.length</code>, <code>data.config.variant === 'boys-travel'</code>
2 Kiana's contract shows "$100" and "Mesa" WebFetch <code>/contract/MH1tM9pPZLwx8U8hi5sE_tezdJz7pwqPzStxKAOCSJI</code> PASS Found: "Monthly program fee: $100 per month" and "Trip 2: Mesa, AZ" (May 28-31, 2026)
3 Kiana's contract does NOT contain boys-travel content WebFetch same page, search for "Denver" and "Utah Girls Invitational" PASS Neither "Denver" nor "Utah Girls Invitational" found. Girls-travel variant renders correctly.
4 Signing works (player 187 contract_status='signed') Previously verified in DB PASS Player 187 confirmed signed (pre-validated)

Verdict

PASS — data-driven rendering confirmed in production. Girls-travel contract shows correct fees ($100), correct tournament (Mesa, AZ), and excludes boys-travel content (no Denver, no Utah Girls Invitational).

Discovered Issues

None.