roadmap // the boring plan · the one umbrella
agent-pmf-beta
Time-boxed, invite-gated, agent-only Solana beta on playSKPK play money. One question: does anyone want to build & train AI agents to play poker instead of playing themselves? Ship → outreach → analyze → go/no-go.
▶ loop live on staging◆ next: measure the funnelgo-live = flip a flag, not a deployreal money = prepared, prod-OFF
✅ shipped ▶ in progress ◆ next up ○ planned ⛔ gated (a flag flip / the go-no-go)
the ask
Run in parallel — right now
Six independent lanes a separate agent can own concurrently today. None block each other; each is chain-light or staging-only. The convergence (prod infra → mainnet cutover → go-live) comes after these land — see the waves below.
posthog-integration · Ph 3–5
Measure the funnel
Instrument the activation funnel per step (connect→build→seat→inspect→republish) so drop-off is visible. This IS the PMF signal — we built the funnel, now measure it.
ohh-frame-projector (+ verified-done)
Stability, layer 2
The client-choreography engine + hand-replay feature, on the stamped/contract-checked substrate felt-liveness just landed. verified-done (small, config) runs alongside.
real-play-money-split
Real economy, prepped
Per-table money_kind, cage teller = USDC→SKPK buy, dual-balance header. Built on staging (skpk_enabled ON), ships prod-OFF. Owned by another agent.
mainnet-solana-deploy · planning
Start the long pole
The one irreversible step. Mimics devnet-solana-deploy (just rehearsed). Start planning + the key-custody decision (Squads multisig vs hardware key) now — the deploy itself gates go-live.
public-presence
The shopfront
Frontpage always-on demo table (watch agents think) + an agent-only slice of launch-docs (“how to build & train an agent”). What outreach lands people on.
merges + close-outs
Land the loose ends
chip-claim-board close-out (falsify/cleanup/retro + deferred Solana tests when validator's free) · agent-full-transcript merge + smoke · invite attribution (channel→user).
What blocks what
The two flips (claim_board_enabled = play-money go-live; skpk_enabled = real-money) are the only release acts. Everything before them deploys dark. The parallel lanes feed the two convergence points.
rendering the graph…
The five tracks
Chain + prod infraT1
- playskpk-tokenmint + idempotent grant + chip-mint parameterization
- solana-test-stackSolana e2e test profile (host validator + cage)
- devnet-solana-deploystaging on the full playSKPK fund path
- env-topology-decisionADR accepted → Fly disposition impl
- platform-migrationPh3–6 · prod deploy
- mainnet-solana-deploythe ONE irreversible step · key-custody decision
- go-livere-scope to agent-only
PMF loop + economyT2
- chip-claim-boardengine + funnel + Ph9 sequential ladder + 5 triggers · close-out rituals pending
- beta-economy-uicage teller + coffee/caffeine + new-user starter draft
- onboarding-walkthrough≈ subsumed by Ph9 triggers + widget — confirm/close
- posthog-integrationPh3–5 · the activation-funnel signal
- agent-full-transcriptmerge + staging smoke
- invite attributionchannel→user (folds into invite-faucet-admin / posthog)
Outreach shopfrontT3
- public-presencefrontpage always-on demo table
- launch-docs (agent slice)how to build & train an agent
Stability + safety netT4
- ui-stability › felt-liveness-contractlayer 1 · the freeze-class fix (D1+D2) · just merged
- ui-stability › verified-doneD4 · honest-verification workflow · small, parallel
- ui-stability › ohh-frame-projectorlayer 2 · client choreography + replay (D3+D5)
- bulletproof-launch-finishPh1 + Ph5
- backend-otel-bootstrap-hotfixretrospective
Real-money prepT5
- real-play-money-splitdraft (other agent) · per-table money_kind · USDC-backed SKPK · staging ON, prod OFF · amends D4
- real-money launchflip skpk_enabled in prod + mainnet USDC on-ramp · after the go/no-go
- playskpk-full-migrationreconcile with the split (coexistence becomes first-class)
The waves
Wave 0done
playSKPK chain + earn-to-play loop live on staging — token, test-stack, devnet-deploy, chip-claim-board funnel, beta-economy-ui, felt-liveness. The thing to validate now exists.
Wave 1now · parallel
Six lanes concurrently — posthog (measure) · ohh-frame-projector + verified-done (stability L2) · real-play-money-split · mainnet-deploy planning · public-presence · merges/close-outs. No cross-blocks.
Wave 2converge
Prod infra + safety net — platform-migration prod · env-topology · bulletproof-launch-finish · go-live re-scope → then mainnet-solana-deploy (the irreversible cutover).
Wave 3release
flip claim_board_enabledplay-money beta opens → Week-2 outreach (channel-coded invites, ~100) → Week-3 analyze → write the go/no-go.
Wave 4post-beta · if go
flip skpk_enabledreal-money launch — real-play-money-split made prod ready; add the mainnet USDC on-ramp. Then playskpk-full-migration reconcile.
for linear
Import mapping
Initiative = agent-pmf-beta. Projects = the five tracks (T1–T5). Issues = the plans below. The blocks column becomes Linear dependencies — anything not blocked is parallel-startable.
| Project | Issue | Status | Blocked by → gates |
|---|
| T2 · PMF loop | posthog-integration Ph3–5 | ◆ next | — → play-money go-live |
| T4 · Stability | ohh-frame-projector (+ verified-done) | ◆ next / ▶ | felt-liveness (done) → prod infra |
| T5 · Real-money | real-play-money-split | ▶ draft | loop (done) → real-money launch |
| T1 · Chain | mainnet-solana-deploy (+ key custody) | ○ planned | prod infra → go-live & real launch |
| T3 · Outreach | public-presence (+ launch-docs) | ○ planned | — → outreach |
| T2 · PMF loop | merges: agent-full-transcript · invite attribution · chip-claim-board close-out | ○ cleanup | — (some need validator) |
| T1 · Chain | platform-migration · env-topology-decision · go-live re-scope | ○ planned | → mainnet cutover |
| T4 · Stability | bulletproof-launch-finish Ph1+5 · otel-hotfix retro | ○ planned | → before real users |
| — | GATE: flip claim_board_enabled (play-money go-live) | ⛔ gate | posthog · prod infra · mainnet · shopfront |
| — | GATE: flip skpk_enabled (real-money launch) | ⛔ gate | real-play-money-split · mainnet · go/no-go |
Live plan — it moves. Order is driven by what’s ready, not by dates, so “next” and “later” trade places as things land. Statuses reflect the workbench planning tree.