Review: Subscription UI — Apple delinquency gate (#66) verified

review-1611-2026-06-27-verified Review

review approved

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.