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

review-409-2026-03-25 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] Lineage — present (parent note: westside-playground-overhaul)
  • [x] Repo — present (forgejo_admin/westside-playground) BUT see Repo Placement below
  • [x] User Story — present, well-formed
  • [x] Context — present, includes MinIO path and image filenames
  • [x] File Targets — present (gear.html to create, nav on all pages to modify)
  • [x] Acceptance Criteria — present (4 items)
  • [x] Test Expectations — present (2 items)
  • [x] Constraints — present (shared/style.css, component doc, mobile-first)
  • [x] Checklist — present
  • [x] Related — present

File Targets

  • [x] gear.html — does not yet exist (correct, file to create)
  • [x] shared/style.css — verified exists at westside-playground/shared/style.css
  • [x] MinIO path westside/jerseys/ — ticket references 3 images (2574801714458281987.jpeg, IMG_4164.jpeg, IMG_4165.jpeg), not filesystem-verified but plausible
  • [ ] assets/images/gear/ — ISSUE: directory does not exist. Only assets/images/ exists with branding assets. Needs creation if local copy approach chosen.
  • [ ] "Nav on ALL pages" — ISSUE: imprecise. Only 6 pages use the public site-nav (index.html, staff.html, sponsors.html, schedule.html, register.html, success.html). The 14 authenticated pages (admin, coach, parent, etc.) use a separate bottom-nav and should NOT be touched. Ticket should specify "all 6 public site-nav pages."

Repo Placement

MISMATCH: The issue body says Repo: forgejo_admin/westside-playground (correct target for the work), but the Forgejo issue is filed on forgejo_admin/westside-app (issue #94). The westside-playground repo exists as a separate Forgejo repo. The issue should be migrated or re-created on forgejo_admin/westside-playground.

Dependencies

  • Sibling nav collision: Board items #406 (About), #407 (Tryouts), #408 (Teams) are all todo items that add new public pages with nav updates to the same 6 files. If executed independently, each ticket will add its own nav link — risking merge conflicts or inconsistent nav states. Consider: (a) a single nav-update ticket that all page tickets depend on, or (b) explicit ordering so each successive ticket includes prior nav additions.
  • #356 (travel schedule page) is in next_up and also touches public site nav.
  • #132 (Phase 15: Production Port) is in_progress — any playground page created now will need porting to SvelteKit. Not a blocker, but should be documented as downstream work.
  • No blocking dependencies — this ticket can proceed independently of other new-page tickets.

Acceptance Criteria

  • [x] "gear.html exists with jersey photos displayed" — testable, agent can verify file exists and contains img tags
  • [ ] "Photos load correctly (from assets or MinIO CDN)" — ISSUE: ambiguous. Agent needs a decision: local copy or CDN URL? Both are mentioned as options. Recommend picking one approach. CDN pattern exists in authenticated pages (admin.html uses minio-api.tail5b443a.ts.net/assets/westside/...).
  • [x] "Nav updated on ALL pages to include Gear" — testable but scope needs narrowing (see File Targets)
  • [x] "Clean gallery layout on mobile" — testable at 390px viewport
  • [x] "Photos render on 390px" — testable
  • [x] "All nav links resolve" — testable

Blast Radius

  • Nav duplication: The public site-nav is copy-pasted into 6 HTML files. Adding a Gear link means modifying all 6 files identically. This is the existing pattern (no shared component), so blast radius is contained but tedious.
  • Constraint mismatch: "Component doc at top" is listed as a constraint, but zero existing playground pages have component docs. This convention either does not exist yet or was abandoned. Agent will be confused.
  • No downstream consumer impact: This is a new page addition, not a modification to existing functionality.

Recommendation

Three items need refinement before this ticket is READY:
  • Re-file on correct repo: Close westside-app#94 and re-create on forgejo_admin/westside-playground.
  • Decide image approach: Specify either local copy to assets/images/gear/ OR MinIO CDN URLs (pattern: minio-api.tail5b443a.ts.net/assets/westside/jerseys/...). Remove the "or" ambiguity.
  • Narrow nav scope: Replace "Nav on ALL pages" with "Nav on all 6 public site-nav pages (index, staff, sponsors, schedule, register, success) + gear.html itself." Explicitly exclude authenticated pages.
Optional improvements:
  • Remove or clarify "Component doc at top" constraint — no existing pages follow this pattern.
  • Document sibling ticket nav coordination strategy to prevent merge conflicts with #406, #407, #408.