Re-Review: New page: Gear (jersey photos from MinIO)

review-409-2026-03-25-r2 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Re-review after refinements posted in comments on westside-app#94. Two of three original issues resolved. One new issue surfaced from comment #3 (toggle dependency).

Previous Issues — Resolution Status

  • [RESOLVED] Repo mismatch: Issue body says forgejo_admin/westside-playground but is filed on westside-app. Verified all sibling issues (#92, #93, #95) follow the same convention — issues tracked on the main app repo, ### Repo field directs agents to the playground repo. Intentional pattern. No action needed.
  • [RESOLVED] Ambiguous image approach: Refinement explicitly decides local assets — copy jersey photos from MinIO to assets/images/gear/. Same pattern as coach photos in assets/images/. Clear, unambiguous direction.
  • [PARTIALLY RESOLVED] Nav scope: Refinement narrows scope to public .site-nav pages only, which is correct. However, the explicit page list includes about.html which does not exist — "About" is an anchor (index.html#about), not a standalone page. Additionally, tryouts.html and teams.html don't exist yet (created by #92 and #93). Since #94 depends on #92, those pages should exist by execution time, but the refinement should not list about.html as a file target.

Template Completeness

  • [x] Lineage — present
  • [x] Repo — present (convention verified)
  • [x] User Story — present, well-formed
  • [x] Context — present
  • [x] File Targets — present (refined in comments)
  • [x] Acceptance Criteria — present but incomplete (see below)
  • [x] Test Expectations — present
  • [x] Constraints — present
  • [x] Checklist — present
  • [x] Related — present

File Targets

  • [x] gear.html — to create. Correct, does not exist yet.
  • [x] shared/style.css — verified exists at westside-playground/shared/style.css
  • [x] shared/app.js — verified exists. No initKQToggle() yet — will be created by #92.
  • [x] assets/images/gear/ — directory to create. assets/images/ exists with 12 branding/coach images. Correct pattern.
  • [x] index.html — verified: has .site-nav
  • [x] staff.html — verified: has .site-nav
  • [x] sponsors.html — verified: has .site-nav
  • [x] schedule.html — verified: has .site-nav
  • [x] register.html — verified: has .site-nav
  • [x] success.html — verified: has .site-nav
  • [ ] about.html — ISSUE: does not exist. "About" is index.html#about. Remove from nav target list.
  • [x] tryouts.html — will exist after #92 lands (dependency tracked)
  • [x] teams.html — will exist after #93 lands (sibling ticket)

Repo Placement

OK. Convention verified across all sibling issues. Issues filed on westside-app, ### Repo field points to westside-playground. Agents read the Repo field, not the issue URL.

Dependencies

  • #92 (Tryouts + Kings/Queens toggle foundation): Board item #407, column todo. Comment #3 on this issue declares #94 depends on #92 for initKQToggle(). Board item #409 has depends:ws-92 label. Dependency properly tracked.
  • #93 (Teams page): Board item #408, column todo. Creates teams.html which is in the nav target list. Can execute in parallel with #94 after #92 lands.
  • #95 (Schedule toggle): Board item #410, column todo. Sibling, no dependency.

Acceptance Criteria

  • [x] "gear.html exists with jersey photos displayed" — testable
  • [x] "Photos load correctly" — now unambiguous (local assets decided)
  • [x] "Nav updated on ALL pages to include Gear" — refinement narrows to site-nav pages. Issue body should be updated to match.
  • [x] "Clean gallery layout on mobile" — testable at 390px
  • [ ] MISSING: Kings/Queens toggle. Comment #3 adds toggle requirement but no acceptance criterion. Need: "Kings/Queens toggle switches between Kings gear and Queens gear" and "Toggle state persists via localStorage."
  • [ ] MISSING: Toggle dependency noted in issue body. Comment #3 declares dependency, but issue body has no ### Dependencies or note about #92.

Blast Radius

  • Nav copy-paste: Same pattern as before — 6+ public pages with identical nav blocks. Adding Gear link is mechanical. Low risk.
  • No downstream consumer impact: New page addition only.
  • Toggle pattern reuse: Once #92 establishes initKQToggle(), #94 reuses it. Pattern is consistent across #93, #94, #95. No blast radius concern.

Recommendation

Two items need refinement before this ticket is READY:
  • Remove about.html from nav target list. It does not exist. "About" is an anchor on index.html, not a file to modify. Correct the refinement comment or update the issue body.
  • Update issue body to include toggle scope from comment #3. The Kings/Queens toggle requirement, the initKQToggle() dependency on #92, and corresponding acceptance criteria ("toggle switches gear", "localStorage persistence") are only in a comment — not in the spec the agent will read. Either edit the issue body or add a consolidated "Final Spec" comment that supersedes the original body.
Both are minor edits. No structural or architectural issues remain.