write-the-rules-page-for-the-new-v3-ui-517 #521
No reviewers
Labels
No labels
Kestra
bug
enhancement
someday
subtask
☁️ api
🎛️ infrastructure
🐞 sentry
📆 2025 Season
📝 pages
allpicks
📝 pages
picks
📝 pages
standings
🚀 performance
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
johnsturgeon/tgfp-web!521
Loading…
Reference in a new issue
No description provided.
Delete branch "write-the-rules-page-for-the-new-v3-ui-517"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This is a well-scoped, content-only PR: a new v3 rules page template, a regenerated Tailwind CSS bundle to cover the new utility classes it uses, and the accompanying minor version bump. I verified the scoring simulator's twelve outcome tables against the described rules and against the actual autopick behavior in
app/picks.py, and they're all correct.Summary
The rules page renders through the existing
v3_rulesroute (app/routers/v3.py:134) and the CSS/version changes are consistent with it. The only thing I'd flag is a small markup slip; everything functional checks out.Nits
app/templates/v3/rules.html:257— the first<p>in the "Autopick explained" section is never closed before the next<p>opens on line 259. Browsers auto-close it so it renders acceptably, but it's malformed markup and worth tidying: Add the closing</p>after the span.Notes (non-blocking, verified fine)
group-has-[...]result tables (rules.html:139-253) against the stated rules — mandatory lock (+1/−1), optional upset (+1/no penalty), straight-up win. Every Win/Loss/Bonus/Total combination is consistent, including the lock-and-upset compound cases._append_auto_picksdefaults togame.home_team_id(app/picks.py:137), and the underdog-only upset restriction is reflected by giving the favored-team (49ers) upset select a "None"-only list.name="scenario"on the two<details>elements makes them a mutually-exclusive accordion, which is the intended behavior — good.uv.lockupdate follows the per-PR versioning convention in CLAUDE.md.Looks good to merge once the stray
<p>is closed.