Review: Subscription UI — Apple delinquency gate (#66) verified
Verdict: APPROVED
Scope simplified after two review rounds. Architectural decision confirmed by project owner: Stripe code is dead scaffolding (never connected to real payments), replace with Apple subscription tracking. No decomposition needed — one focused feature.
Template Completeness
- [x] Type — Feature
- [x] Lineage — depends on #65
- [x] Repo — ldraney/westside-basketball
- [x] User Story — admin sees Apple subscription status
- [x] Context — delinquency gate focus, Stripe is dead code
- [x] File Targets — 7 files listed
- [x] Acceptance Criteria — 5 ACs, all verifiable
- [x] Test Expectations — model + view tests
- [x] Constraints — Apple states, reversible migration
- [x] Checklist — standard
- [x] Related — #65 dependency, project page
Traceability
- [x] Forgejo issue — westside-basketball#66, open
- [x] Board item — #1611, sprint:6
File Targets
7 files in 1 repo. Player model, migration, 2 views, helper, webhooks controller, routes. All in westside-basketball.
Repo Placement
Correct. Single-repo Rails change.
Dependencies
Depends on #65 (webhook infrastructure). #65 is in next_up, reviewed and approved.
Acceptance Criteria
5 ACs: Stripe removal, Apple enum, detail badge, list badge, no-subscription state. All agent-verifiable.
Blast Radius
Stripe code is unused scaffolding. Removing it has no production impact. Any test files referencing Stripe enum values will need updating — agent will find these via test failures.
Decomposition Assessment
No decomposition. Previous review recommended split but was treating dead scaffolding as a production system. Project owner confirmed: just delete and replace.
Recommendation
Ready for implementation. Prior review concerns resolved by architectural decision.