Review: Remove cash payment option from registration form
Verdict: READY
Template Completeness
- [x] Type — Feature
- [x] Lineage — Standalone, discovered during registration flow review
- [x] Repo — forgejo_admin/westside-landing
- [x] User Story — clear parent registration flow story
- [x] Context — sufficient background on cash operational overhead
- [x] File Targets — 2 files to modify, 1 file explicitly excluded
- [x] Acceptance Criteria — 4 testable conditions
- [x] Test Expectations — manual browser verification
- [x] Constraints — do-not-touch list, companion API ticket noted
- [x] Checklist — PR, tests, no unrelated changes
- [x] Related — project and companion repo identified
Traceability
- [x] story:WS-S17 label — "As a parent, I want to register my child online (info + photo + payment + waiver) so that signup is one seamless flow"
- [x] story note verified — found in project-westside-basketball user-stories section (Parent list)
- [x] arch:westside-app label — westside SvelteKit frontend
- [ ] arch note MISSING — [SCOPE] Create architecture note arch-westside-app for component westside-app
- [x] Forgejo issue — forgejo_admin/westside-landing#223, open
File Targets
- [x]
src/routes/(app)/register/+page.svelte— verified: cash radio button at L479-481, cash conditional note at L486-488, cash branch in getSubmitText() at L79 - [x]
src/app.css— verified: .cash-note rule at L2106, .info-value-cash rule at L3584-3586 - [x]
src/routes/(app)/players/[id]/+page.svelte(DO NOT TOUCH) — verified: "Mark Paid (Cash)" button at L647, handleMarkPaid() at L279
Repo Placement
OK. Issue filed on forgejo_admin/westside-landing, which is the correct repo for the westside SvelteKit frontend. Companion API ticket identified (board item #860 on basketball-api) for removing cash from API validation — correctly scoped as a separate ticket in a separate repo.
Dependencies
- [x] Board item #860 ("Remove cash from registration payment method validation") — independent. Frontend removal can deploy first; the API still accepts cash but no UI path will offer it. Not a blocker.
- [x] No items in in_progress that block this work.
Acceptance Criteria
4 criteria, all manually testable via browser verification. Clear before/after behavior defined. Card and promo flows are existing functionality (regression only). The "Mark Paid (Cash)" admin button criterion ensures the do-not-touch constraint is verified. No ambiguous language.
Blast Radius
.info-value-cashCSS class is dead code — defined in app.css at L3584 but never referenced in any Svelte component. Safe to remove.- No other components reference the cash payment method outside the registration form and the player profile admin button (explicitly excluded).
- basketball-api still accepts "cash" as a valid payment_method at routes/register.py:1182 — companion ticket #860 handles that separately.
- Rollback is straightforward: revert a single PR on one repo.
Decomposition Assessment
2 files to modify (register page + app.css), 4 acceptance criteria, single repo. 3 discrete code changes (remove radio button + conditional, remove getSubmitText cash branch, remove 2 CSS rules). Fits within both the three-thing limit and the five-minute rule. No decomposition needed.
Recommendation
- [SCOPE] Create architecture note arch-westside-app for the westside SvelteKit frontend component. This is a platform-wide gap, not specific to this ticket — does not block dispatch.
No other action needed. Ticket is dispatch-ready.