Review: Admin nav: add Schedule link
Verdict: APPROVED
Template Completeness
- [x] Type — Feature
- [x] Lineage — follow-up from #166 (admin schedule view, merged)
- [x] Repo — forgejo_admin/westside-landing
- [x] User Story — As an admin, I want a Schedule link in the bottom nav so I can access the schedule view without typing the URL
- [x] Context — clear background explaining the admin schedule page is live but not linked from nav
- [x] File Targets — specific file path with pattern reference and exclusions
- [x] Acceptance Criteria — 4 testable conditions
- [x] Test Expectations — visual verification + npm run build
- [x] Constraints — follow existing nav link pattern, match icon style
- [x] Checklist — PR opened, no unrelated changes, mobile tested
- [x] Related — links to parent issue #166 and project
Traceability
- [x] story:WS-S13 — present on board item
- [x] arch:westside-app — present on board item
- [x] Forgejo issue — forgejo_admin/westside-landing#171, open
File Targets
- [x]
src/routes/(app)/+layout.svelte— verified: admin bottom nav at lines 106-123. Current items: Dashboard (/admin), CRM (/admin/players), Teams (/admin/teams), Sign Out. Usesclass:active={currentPath === '/admin/...'}pattern for highlighting. - [x]
src/routes/(app)/admin/schedule/+page.svelte— verified: target page exists (reference only, not to modify)
Repo Placement
OK. Issue filed on
forgejo_admin/westside-landing, fix is in the same repo. Single-repo, single-file change. No cross-repo concerns.Dependencies
- [x] #639 (Admin schedule view, read-only) — satisfied, done, merged as PR #168. Created the page being linked.
- [x] #630 (Schedule API endpoints) — satisfied, done, merged as PR #236. API consumed by the schedule page.
- [x] #629 (Schedule data model + migration) — satisfied, done, merged as PR #234.
No unresolved dependencies. Full stack (model, API, page) is already live.
Acceptance Criteria
- "Admin bottom nav shows: Dashboard, CRM, Teams, Schedule, Sign Out" — testable: read modified file, verify order of
<a>elements - "Schedule link navigates to /admin/schedule" — testable: verify href attribute
- "Active state highlights correctly when on /admin/schedule" — testable: verify
class:active={currentPath === '/admin/schedule'}matches existing pattern - "No visual regression on other admin pages" — testable: npm run build + screenshot comparison at 390px
All 4 criteria are specific and agent-verifiable. No ambiguity.
Blast Radius
Minimal. Single
<a> element added to the admin-only <nav class="bottom-nav"> block (lines 106-123). Coach nav (lines 125-138) and parent nav (lines 139-153) are separate conditional blocks — zero cross-contamination risk. No shared components, no CSS changes, no API changes. Rollback is trivial (revert one line).Decomposition Assessment
No decomposition needed.
- 1 file target — well under 3-file threshold
- 4 acceptance criteria — under the 5 AC threshold
- Estimated agent time: <2 minutes — well within the 5-minute rule
- No independent subtasks to parallelize — this is atomic work
Recommendation
No action needed.