Review: Add age-based team reassignment clause to Queens contracts
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- "Discovered during girls roster assignment 2026-03-28"
- [x] Repo -- forgejo_admin/westside-contracts
- [x] User Story -- present but missing "So that ___" clause
- [x] Context -- adequate background on roster structure
- [ ] File Targets -- ISSUE: no specific file paths listed, only "Contract template file(s) that generate the Queens program agreement"
- [x] Acceptance Criteria -- 3 criteria, clear and testable
- [ ] Test Expectations -- ISSUE: "Run command: review contract output" is not a real command
- [x] Constraints -- present and reasonable
- [x] Checklist -- present
- [x] Related -- project-westside-basketball
Traceability
- [ ] story:X label -- missing. Should reference a user story for contract customization or roster management
- [ ] arch:X label -- missing. Should be
arch:contract-flow(matching sibling issues on this board) - [x] Forgejo issue -- forgejo_admin/westside-contracts#29, open
- [ ] Board item -- ISSUE: no board item exists yet for this Forgejo issue. Must be created on board-westside-basketball in backlog column
File Targets
- [ ] "Contract template file(s)" -- ISSUE: vague. The actual targets are:
- [x]
src/routes/contract/[token]/+page.server.ts-- already passesteam_nameto the frontend via the player object (line 38). No changes needed here unless a dedicatedisQueensboolean is desired for cleanliness. - [x]
src/routes/contract/[token]/sign/+server.ts-- no changes needed. The clause is display-only, not a contract version change.
Repo Placement
OK. Issue filed on westside-contracts, fix belongs in westside-contracts. Single-repo change. No multi-repo concerns.
Dependencies
- [x] Phase 14 (Billing Tiers and Contracts) -- in_progress on board-westside-basketball. This issue logically falls under that phase but is not formally linked.
- [x] Queens teams exist in basketball-api database -- satisfied. The
team_namefield containing "Queens" is already available in the contract page data. - [x] No blocking dependencies. The change is purely additive frontend content.
Acceptance Criteria
- [x] "Queens contracts include a clause stating the organization reserves the right to reassign younger players" -- testable: load a Queens player contract URL and verify clause appears
- [ ] "Language is professional and clear" -- subjective, requires human review. Not programmatically testable by an agent.
- [x] "Clause only appears on Queens contracts, not Kings" -- testable: load a Kings player contract URL and verify clause is absent
- [ ] Missing: no real test command specified. Should be: "Deploy to dev namespace, load a Queens contract token URL, verify clause visible. Load a Kings contract token URL, verify clause absent."
Blast Radius
- Low blast radius. The change is additive -- a conditional clause rendered only when
team_namecontains "Queens". - The existing
isLocalbranching pattern (line 201) is a proven template for this kind of conditional content. - No sibling services affected. The clause is display-only in the contract page.
- The sign endpoint does NOT need changes -- the clause is part of the agreement text, not a separate data field.
- Rollback is trivial -- revert the single file change.
Decomposition Assessment
No decomposition needed.
- 1 file target (
src/routes/contract/[token]/+page.svelte) - 3 acceptance criteria
- Estimated agent time well under 5 minutes
- No independent subtasks to parallelize -- this is a single conditional block addition
Recommendation
[BODY]Replace vague File Targets with specific paths:src/routes/contract/[token]/+page.svelte-- add Queens-specific conditional clause usingplayer.team_name?.includes('Queens')pattern, after the Commitment section. Add "Files the agent should NOT touch" section listing+page.server.tsandsign/+server.ts.[BODY]Fix Test Expectations: replace "Run command: review contract output" with "Deploy to dev namespace, load a Queens contract token URL, verify clause visible; load a Kings contract token URL, verify clause absent."[BODY]Complete User Story: add "So that younger players can be moved to age-appropriate teams without contract disputes."[LABEL]Addarch:contract-flowlabel to the board item (matching sibling contract issues).[LABEL]Add a story label or explicitly document as standalone/discovered scope.[SCOPE]Create a board item on board-westside-basketball in backlog for this Forgejo issue.