Review: Admin nav: add Schedule link

review-648-2026-03-28 Review

review approved

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. Uses class: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.