01 / 16
01 / 16

// the 2-week plan

plyk. v0

// two weeks to first customer.

Today

Thu 2026-05-21 · D-0

Target

Thu 2026-06-04 · D+14

02 / 16

// the bet

By June 4, a stranger on the internet can sign up at plyk.ai, mint an API key, POST a JSON webhook, and watch a Claude turn process it — backed by a per-turn audit row.

// if we cannot demo that flow end-to-end on launch day, we slip.

03 / 16

// D-0 surface area

What is already done.

Brand

Plyk — canonical icon, palette, typography

✓ shipped

Repo

apps/api · apps/web · apps/site · infra

✓ shipped

Hosting

Firebase Hosting wired (plyk-site, plyk-admin)

✓ shipped

Schema

agents · models · accounts · account_keys

✓ shipped

Observability

structlog JSON · /healthz · /health

✓ shipped

Auth

passwords · API keys · JWT · /login · /me

✓ shipped

Tests

73 passing · ruff clean

✓ shipped

Commits today

9 on origin/main

✓ shipped

04 / 16

// the MVP customer journey

From plyk.ai to audit row.

  1. 01 Lands on plyk.ai
  2. 02 Clicks Sign up → admin.plyk.ai
  3. 03 Signs up with email + password
  4. 04 Creates an agent (Claude Sonnet 4.6 + persona + prompt)
  5. 05 Mints an API key, copies it
  6. 06 POSTs JSON to api.plyk.ai/webhooks/generic
  7. 07 Watches the event flow through + reads the audit row
$ curl -X POST https://api.plyk.ai/webhooks/generic \
    -H "Authorization: Bearer plyk_live_..." \
    -d '{"event": "lead.created", "subject_id": "42"}'
05 / 16

// scope discipline

What we are not building for v0.

  • × OAuth / Google SSO
  • × Email verification
  • × Billing / Stripe
  • × MD360 adapter
  • × Imagen / Cartesia / second plugin
  • × Realtime WS fan-out (SPA polls instead)
  • × arq deployment FIFO queue
  • × TEE retries (stop-on-error v0)
  • × Multi-tenant isolation hardening
  • × Skills page in admin

// if we are behind, the next thing to cut is the realtime SPA monitor. customers refresh to update.

06 / 16

// May 22 – 29

Week 1 — runtime.

D+1
Fri 05-22
/auth/signup, /auth/logout, require_role, SPA login/signup pages
6h
D+2
Sat 05-23
agent_event_queue table + migration
4h
D+3
Sun 05-24
rest
D+4
Mon 05-25
Dispatcher poller + worker loop
8h
D+5
Tue 05-26
Turn + execution (TEE) + prompt composer
8h
D+6
Wed 05-27
Anthropic plugin + Claude Sonnet model seed
6h
D+7
Thu 05-28
Generic webhook adapter + /webhooks/generic route
6h
D+8
Fri 05-29
End-to-end backend smoke + bug bash
6h

// total ≈ 44h (rest day included)

07 / 16

// May 30 – Jun 5

Week 2 — admin · deploy · launch.

D+9
Sat 05-30
Admin SPA layout + auth context
4h
D+10
Sun 05-31
rest
D+11
Mon 06-01
ModelsPage + AgentsPage (port + rebrand)
8h
D+12
Tue 06-02
Minimal hand-rolled AgentEditor + API key UI
6h
D+13
Wed 06-03
Deploy to GCP (Cloud Run, Cloud SQL, Memorystore, DNS)
8h
D+14
Thu 06-04
Marketing site v0 + end-to-end smoke
6h
D+15
Fri 06-05
Buffer + launch announcement

// total ≈ 32h · grand total ≈ 76h vs 80h budget · 4h buffer

08 / 16

// the cut

Architecture for v0.

                                            ┌──────────────────────────┐
plyk.ai           ───────────────────────►  │  Firebase Hosting        │
admin.plyk.ai     ───────────────────────►  │  apps/site, apps/web     │
                                            └──────────────────────────┘
                                                       │
                                                       ▼
api.plyk.ai       ───────────────────────►  ┌──────────────────────────┐
                                            │  Cloud Run: API/WS       │
                                            │  FastAPI                 │
                                            └──────────┬───────────────┘
                                                       │
                            ┌──────────────────────────┼───────────────────────────┐
                            ▼                          ▼                           ▼
                  ┌──────────────────┐    ┌────────────────────────┐  ┌──────────────────────┐
                  │  Cloud SQL Pg    │    │  Cloud Run: dispatcher │  │  Memorystore Redis   │
                  │  agents · events │    │  poller · workers      │  │  pub/sub · queue     │
                  └──────────────────┘    └──────────┬─────────────┘  └──────────────────────┘
                                                     │
                                                     ▼
                                          ┌──────────────────────────┐
                                          │  Anthropic API           │
                                          │  claude-sonnet-4-6       │
                                          └──────────────────────────┘

// single FastAPI app · two Cloud Run services off the same image.

09 / 16

// where the time goes

Scope budget — 80 hours.

Dispatcher port 32h
Admin SPA (cut to v0) 20h
Auth completion 6h
Generic webhook adapter 6h
Deploy to GCP 8h
Marketing site v0 4h
End-to-end + buffer 4h

// burns the 4h buffer if any estimate is off by more than 20%. plan B sets the cut order.

10 / 16

// what could go wrong

Risk register.

Dispatcher port runs long
High
High
Time-box D+4–D+5 to 16h hard; ship stop-on-error v0
GCP deploy slips into D+13 evening
High
High
Stand up Cloud Run dev env on D+2
Anthropic rate limit hits launch day
Med
Med
Per-tenant rate limit middleware
Admin SPA port pulls in too much
Med
High
Only Models + Agents + minimal Editor
Casey burnout
Med
High
Sat 5/24 + Sun 5/31 no-code; paused flag exists
11 / 16

// if we are behind

Plan B — cut order.

  1. 01 Marketing site v0 → single hero + signup CTA, skip docs
  2. 02 AgentEditor → API-only; admin SPA shows list + JSON field
  3. 03 Admin SPA monitor → punt; customers curl /api/v1/events
  4. 04 Custom domains → launch on *.web.app, wire DNS post-launch
  5. 05 TEE retries (already cut for v0 — this is the floor)
  6. 06 The launch itself → slip 3 days to Mon 2026-06-08
12 / 16

// the gates · D+14 · 2026-06-04

Launch checklist.

  • plyk.ai serves the marketing site (HTTPS, OG image, sitemap)
  • admin.plyk.ai serves the SPA (signup → dashboard)
  • api.plyk.ai serves the API + /healthz returns 200
  • Signup against prod Cloud SQL works
  • POST /webhooks/generic with a real key fires a real Claude turn
  • Audit row appears in agent_event_queue with reasoning + action
  • structlog JSON shows up in Cloud Logging
  • ToS + Privacy Policy linked from the footer
  • One paying customer (Casey is customer-zero)
  • gh release create v0.1.0 cut and tagged
13 / 16

// distribution

First 10 customers.

  1. 01 ASC / Dr. Liu — existing client relationship
  2. 02 Dan Luo — MD360 maintainer, owns the existing CRM install base
  3. 03 n8n community — overlap with the deterministic-agent crowd
  4. 04 Show HN — "Plyk — adapters in, plugins out, every turn audited"
  5. 05 Engineering blog posts on plyk.ai/blog (deferred to D+21 if needed)
  6. 06 5 friendly testers via direct outreach before public launch
  7. 07 Twitter / X soft launch
  8. 08 The first cold-email reply

// bet is alive if we hit 3 real signups by D+17 (Sun 6/7).

14 / 16

// open items · tonight 21:53

Decisions for the board.

decision · 01

Approve this plan as written?

default → Approve with Sat/Sun no-code days

decision · 02

JWT TTL: 60 min, or 15 min + refresh tokens?

default → Keep 60 min for v0

decision · 03

Cron-schedule the daily chief-mode meetings?

default → No — Casey paces manually

decision · 04

Pricing on launch?

default → Free early access (~50 users)

15 / 16

// D+1 · Fri 2026-05-22

Tomorrow we ship /auth/signup.

// pydantic email + password rules · argon2id hash · 201 + JWT · /auth/logout · require_role() dep · admin SPA login + signup pages.

ETA 6 hours. suite at ~85 passing by EOD.

16 / 16

// let us ship

plyk.

adapters in · plugins out · every turn audited

plan source · github.com/heyflynn/agent-ai/docs/plan/2026-05-21-v0-2-week.md