Review: Validate coach login and read-only roster E2E
Verdict: NEEDS_REFINEMENT
Template Completeness
- [x] Type — present ("Feature")
- [x] Lineage — present (discovered during girls roster session 2026-03-28)
- [x] Repo — present (forgejo_admin/westside-app)
- [x] User Story — present (WS-S13: coach views team roster with player photos)
- [x] Context — present, thorough (references merged PRs #132, #133, coach Keycloak accounts, temp passwords)
- [x] File Targets — present ("No code changes expected. This is a validation-only ticket.")
- [x] Acceptance Criteria — present (6 criteria)
- [x] Test Expectations — present (Chrome devtools validation, screenshot evidence)
- [x] Constraints — present (no emails, no code changes, validate deployed version)
- [x] Checklist — present (4 items)
- [x] Related — present (project-westside-basketball, #131, #129)
All Feature template sections present. However, "Feature" is the wrong type for a validation-only ticket — see Recommendation.
Traceability
- [x] story:WS-S13 — label present on board item. User story inline: "As a coach, I want to view my team roster with player photos so that I know my players on sight"
- [x] arch:westside-app — label present on board item. Validates the deployed westside-app.
- [x] Forgejo issue — forgejo_admin/westside-app#142, open
- [ ] Story note — story-westside-roster-view does not exist in pal-e-docs (404). Label is present and user story text is inline, but no backing story note exists.
File Targets
No file targets — "No code changes expected. This is a validation-only ticket." Appropriate for a validation task. No files to verify.
Repo Placement
OK. Issue filed on forgejo_admin/westside-app. Validates the deployed westside-app coach experience. Correct repo.
Dependencies
- [x] PR #132 (admin route guard + coach read-only) — merged, deployed. Prerequisite satisfied.
- [x] PR #133 (division filter) — merged, deployed. Prerequisite satisfied.
- [x] Board item #531 (issue #131, "Verify coach read-only view of team rosters") — done. Prior validation pass completed.
- [x] Coach Keycloak accounts with correct roles — stated as existing with temp passwords set.
- [ ] Board item #529 (issue #129, "Validate: girls draft board + coach login access") — in_progress. Parent validation ticket. Overlap concern: #129 also validates coach login access. Relationship between #142 and #129 is unclear — is #142 a focused sub-task of #129, or does it duplicate scope?
Acceptance Criteria
6 criteria, all browser-verifiable via Chrome DevTools MCP:
- Coach login via /signin -> Keycloak -> redirect to /coach (not /admin) — testable, specific
- Coach sees team roster with player names and photos — testable, specific
- Coach CANNOT see assign/move/delete/create buttons — testable, specific
- Coach CANNOT access /admin routes (redirected to /coach) — testable, specific
- Mobile viewport (390px) renders correctly — testable, specific
- Both Queens coaches validated — testable (Abbie and Manny credentials provided)
All criteria are concrete and agent-verifiable. No ambiguous language. No missing criteria detected.
Blast Radius
None. Validation-only ticket with no code changes. No files modified, no deployments triggered. No downstream effects. Rollback not applicable.
Decomposition Assessment
Three-thing limit: 1 discrete task (browser validation of 2 coach accounts in the same flow). Under limit.
Five-minute rule: Estimated 3-5 minutes for browser automation — login both coaches, check pages, capture screenshots. At the boundary but a single coherent flow.
No independent subtasks that need parallelization. No decomposition needed.
Recommendation
[BODY]Change### Typefrom "Feature" to "Task" — this is a validation/QA task with no code changes, not a new feature implementation. Task type uses the base template (template-issue) which fits better since there are no file targets to verify.[LABEL]Change board item label fromtype:featuretotype:taskto match corrected type.[SCOPE]Clarify relationship with #129 — issue #129 ("Validate: girls draft board + coach login access") is in_progress and overlaps with this ticket's coach login validation scope. If #142 is specifically the "credential send gate" (validate before emailing coaches), that distinction should be made explicit in the Lineage section. If #129 already covers this, #142 may be redundant.