Review: Spike: Stripe Checkout + webhook + payout (re-review)
Verdict: READY
Re-review after issue body re-scoped and all backing notes created. Previous review:
review-787-2026-04-03.Template Completeness
Validated against
template-issue-spike (spikes have no File Targets or Test Expectations):- [x] Type -- Spike
- [x] Lineage -- Standalone, validates payment architecture
- [x] Repo -- forgejo_admin/twitch-2k-wager
- [x] Question -- Clear three-part question (buy-in collection, winner payout, revenue split)
- [x] What to Explore -- 5 detailed exploration areas with specific experiments
- [x] Success Criteria -- 5 verifiable criteria
- [x] Time-box -- 2 hours, with clear rationale ("Payment collection is straightforward. Payout mechanics are the unknown.")
- [x] Related -- 7 items (project page, 2 arch notes, 2 story notes, 2 sibling issues)
All required sections present per
template-issue-spike. No missing fields.Traceability
- [x] story:challenger-pay label -- "Secure Buy-In Payment" (
story-twitch-2k-wager-challenger-pay) - [x] story note verified -- found in project-twitch-2k-wager user-stories table (key: challenger-pay)
- [x] story:winner-payout label -- "Winner Payout and Receipt" (
story-twitch-2k-wager-winner-payout) - [x] story note verified -- found in project-twitch-2k-wager user-stories table (key: winner-payout)
- [ ] arch:stripe-api label -- NO BACKING NOTE.
arch-stripe-apidoes not exist in pal-e-docs (404). The issue body correctly referencesarch-domain-twitch-2k-wagerandarch-dataflow-twitch-2k-wager, which both exist. [LABEL] Replacearch:stripe-apiwitharch:domain-twitch-2k-wager,arch:dataflow-twitch-2k-wager. - [x] arch-domain-twitch-2k-wager -- verified, exists (Domain Model with Mermaid ER diagram, Payment/Payout/RevenueSplit entities)
- [x] arch-dataflow-twitch-2k-wager -- verified, exists (Data Flow with Mermaid sequence diagram, Stripe Checkout flow)
- [x] Forgejo issue -- forgejo_admin/twitch-2k-wager#2, state: open
File Targets
N/A -- Spike type. No file targets expected per
template-issue-spike. Reference to ~/secrets/stripe/test-secret-key verified: file exists with valid Stripe test key.Repo Placement
OK. Issue filed on
forgejo_admin/twitch-2k-wager, Repo field matches. Spike investigates Stripe integration for this repo. Single-repo scope. No cross-repo concerns.Dependencies
Board has 5 items, all in backlog. No blocking dependencies for this spike:
- [x] #786 Service onboarding (Keycloak + CNPG) -- logical prerequisite for deployed testing, but NOT a blocker (Stripe CLI provides local webhook testing)
- [x] #788 Kustomize overlay -- sibling infra, not blocking
- [x] #789 Landing page prototype -- downstream consumer of spike findings, not blocking
- [x] #792 Monitoring -- unrelated at spike stage
Spike can proceed independently. Stripe test mode + CLI provides full local testing without deployed infrastructure.
Acceptance Criteria
5 success criteria, all verifiable by an agent:
- [x] "Working Stripe Checkout test flow" -- verifiable: create session via API, receive webhook via Stripe CLI
- [x] "Payout mechanism decided with evidence" -- verifiable: documented comparison matrix (Connect vs manual vs hybrid)
- [x] "Revenue split tracking approach decided" -- verifiable: documented decision (DB fields vs Stripe metadata)
- [x] "Tiered pricing validated" -- verifiable: test sessions at $15/$30/$45 amounts
- [x] "Follow-up feature tickets created" -- verifiable: check Forgejo for new issues post-spike
All criteria are concrete and agent-testable. No ambiguous language. No missing criteria.
Blast Radius
Spike produces knowledge, not code changes. Stripe test mode is fully isolated from live keys. No downstream systems affected. Zero risk.
Decomposition Assessment
Apply the three-thing limit and five-minute rule:
- File targets: 0 (spike, not implementation)
- Success criteria: 5 (within bounds for investigation work)
- Repos touched: 1
- Time-box: 2 hours (spike-appropriate, not agent-implementation scope)
- Independent subtasks: No -- exploration areas are sequential (buy-in informs payout which informs revenue split)
No decomposition needed. Single agent session can complete this spike.
Recommendation
[LABEL]Replace board item labelarch:stripe-apiwitharch:domain-twitch-2k-wager,arch:dataflow-twitch-2k-wager-- the actual architecture notes referenced in the issue body. The current label has no backing note in pal-e-docs.
This is a minor label correction. The scope itself is solid -- all backing notes exist, traceability is complete in substance, the template is fully populated, and the spike is well-scoped for a single agent pass. Once the label is corrected, this ticket is fully READY.