Workspaces · Checkout v2 · Development

Checkout v2

2 live
MCPNARSK◇◇
Checkpoints4
Wallet refactor Live PR #214 draft
Today
PN
Priya Nair09:41
Splitting the wallet module before we touch retry logic. Proposal: extract BalanceStore behind the existing interface so the cart flow never sees the change.
Decision · balance-store extraction
◇
dev-agentAI09:44
Extraction done across 11 files. Interface unchanged; two call-sites in checkout/session.ts now route through the store. Tests green.
Thinking
The wallet module couples balance reads to reservation writes. Extracting a store behind the existing WalletBalance interface means no call-site outside wallet/ changes shape — the cart flow keeps its contract. Risk is the two direct call-sites in checkout/session.ts; route them through the store and let the interface hide the change.
Actions
Read 14 files in wallet/ and checkout/
Edited 11 files · extracted BalanceStore
Ran wallet + checkout suites · 148 passed
Pushed to draft PR #214
wallet/balance-store.ts +182 −64
+ export class BalanceStore implements WalletBalance
+ async reserve(amount: Money): Promise<Hold>
− function reserveBalance(w: Wallet, amt: number)
MC
Maya Chen09:52
Watching from the spec side — does the hold-expiry behaviour here match what we agreed in Define? Who owns confirming the 15-min TTL with payments?
Open question · owner: Alex R
◇
spec-agentAI09:53
Reconciled against the living spec: §4.2 says holds expire at 15 minutes; the current implementation uses 10. Flagged as a drift — one of the two must change before QA.
Actions
Read spec §4 · payment holds & expiry
Compared 3 call-sites setting hold TTL
Flag
wallet/holds.ts:41 · TTL_MS = 10 * 60_000 vs spec §4.2 = 15 min
Build at a glance
Pending for you1
Spec drift on hold-expiry TTL — approve 15 min or amend the spec.
People & agents
PNPriya Nairdriving
MCMaya Chenobserving
ARAlex Riveraaway
◇dev-agentrunning
◇spec-agentidle
Observer mode
BrainstormAI-guided
◇
concept-agentMay 12
One question at a time. First: what breaks in the current checkout that made this a priority now?
MC
Maya Chen
Drop-off doubled on the payment step after we added wallet top-ups — two systems, two spinners, no shared state.
◇
concept-agent
Noted, folded into the document → Problem. Next: should saved payment methods survive a wallet failure, or is degrading to card-only acceptable?
Concept documentLiving

Concept · Checkout v2

Shaped over 3 sessions · 2 contributors · last edit 4m ago

Problem

Payment-step drop-off doubled after wallet top-ups shipped. Wallet and card rails run as separate flows with separate failure modes; users see two spinners and no single source of payment state.

Proposal

One checkout session object owning payment state across rails. Wallet degrades gracefully to card-only; holds and retries become visible, testable behaviours.

Success criteria

  • Payment-step completion back above 91%
  • p95 wallet-fallback under 400 ms
  • Zero orphaned holds after 15 min

Open questions

  • Hold-expiry TTL — payments team to confirm (owner: Alex R)
AI Broke the approved concept into 3 epics · 14 stories. Review, edit, and accept — accepted cards form this board.
Backlog6
Retry ladder for wallet timeouts
ResilienceAR
Hold-expiry sweep job
ResiliencePN
Analytics: funnel events v2
MeasureMC
In progress3
Unified checkout session object
SessionPN
BalanceStore extraction
SessionPN
Review2
Card-only degradation path
ResilienceAR
Done3
Cart state machine
SessionPN
Spike: wallet API limits
ResilienceAR
AI This Workspace permits Northwind DS 2.1. Prototypes below are generated on it — or start a new system (needs admin approval).
Prototype artifacts
Checkout flow v3Approved
Wallet fallback statesIn review
Hold-expiry countdownDraft
AI Grok session over northwind/checkout + northwind/wallet complete — HLD drafted from 214 files, pending Alex's review.
High-level design · Checkout session service
Checkout UI Session service Wallet rail Card rail

Single writer for payment state. Rails are adapters behind one interface; holds live in the session, not the rail — that's what makes fallback testable.

Awaiting review HLD v2 · sequence diagrams + failure matrix
AI Test plan generated from the living spec — 31 checks, including the two behaviours decided in-chat this week.
GapSeverityFound byStatus
Double-charge on rapid retry tapCriticalSam K + qa-agentFixing · Priya
Hold survives past 15-min TTLMajorqa-agentOpen
Fallback banner copy truncates on small screensMinorSam KRegression passed
Ship checklist
Concept approved · all open questions closed14 decisions
All stories done · board cleared14 / 14
Regression green · zero critical gaps31 checks
Spec ↔ code drift: nonelast reconciled 1h ago
Receipts — the auditable trail
6 weeks · 3 humans · 3 agents · 14 decisions · 8 PRs · every step witnessable

My Work

Everything waiting on you, across every Workspace
Open questions I own · 2
Confirm 15-min hold TTL with paymentsasked by Maya · 2h ago Checkout v2 · Development
Should search index include archived listings?asked by concept-agent · yesterday Search relevance · Concept
Reviews pending · 2
HLD v2 — checkout session servicespec-agent flagged 1 drift Checkout v2 · Design · System
Prototype: wallet fallback statesDana requested UX review Onboarding revamp · Design · UX
Assigned to me · 1
Analytics: funnel events v2story · Measure epic Checkout v2 · Define

AI Chat

Org-aware assistant · not tied to any Workspace
MC
You
What did we decide about hold expiry across any workspace?
◇
assistantAI
One decision found — Checkout v2, May 20: "holds expire at 15 minutes" (spec §4.2, decided by Maya, confirmed by payments pending Alex). A drift flag is open where code uses 10 min. Want the thread?

Studio

Your solo space — incubate here, promote when it's ready for the team
Concepts
Loyalty points at checkout
Brainstorm 60% done · 2 open questions
Vendor-payout dashboard
Draft · last touched 3d ago
Solo projects
Internal: churn heatmap
Development · personal repo

Library

Org knowledge — research, templates, and every decision ever marked
Decisions archive · searchable "why"
Holds expire at 15 minutesMaya · May 20 · from chat, reconciled to spec §4.2 Checkout v2
Onboarding uses progressive disclosure, not a tourDana · May 8 · 3 alternatives recorded Onboarding revamp
Research & templates
Competitive · checkout UX teardown
Research · uploaded by Maya
Gartner · AI in product delivery '26
Research · org-wide
HLD template · services
Template · used 12×

Skills

Reusable AI playbooks — build your own, contribute to the team
Team library
brainstormingCore
Question-series → concept doc · used 84×
spec-reconcileCore
Chat ↔ spec drift detection · used 156×
qa-from-spec
Living spec → test plan · used 31×
Mine
payments-context
Private · rail quirks + gateway limits

Connections

MCP connections and model keys — bring your own
Connected
GitHub12 repos scoped
Jiraimport only · token expiring
Confluence2 spaces
Figmaimport as shaping artifacts
Model keys · BYOK
Workspace key · Anthropicorg-wide · usage billed to your account Active

Admin

Workflows, members, and what each Workspace may touch
Default workflow · applies to new Workspaces
⠿Concept
⠿Define
⠿Design · UX
⠿Design · System
⠿Development
⠿QA
⠿Ready for Prod
Workspace access · Checkout v2
ResourceScope
Reposnorthwind/checkout · northwind/wallet
Design systemsNorthwind DS 2.1 only
SkillsCore set + payments-context
ArtifactsMembers + org observers