VibeCoder Roadmap โ Checklist
Source: /workspace/roadmap/index.html + 2026-07-29 work session. 51 P-items across 8 phases (P0โP7).
Done โ committed and live
Pending โ not started
Deferred โ operator hold
Removed โ no longer applicable
Phase 0 โ Housekeeping
Do first. Stubs and licenses before any real work.
P0.1
Rename skins: reign โ fresh-classic, buddYx โ fresh-soft. Update skins/index.js, all module skin: refs, vendored copies, panel picker, manifest. Use git mv.
Done in freshvibe-cms commit a7ad5ff (2026-07-28). Vendored refresh queued for P2.3a.
DONE
P0.2
License decision. Stub freshvibe-cms/LICENSE says "License to be decided". MIT / Apache 2.0 / GPL / AGPL / BSL / Polyform / proprietary / dual. Operator picks one, file replaced, SPDX headers everywhere.
Operator directive 2026-07-29 02:31: "forget about P0 / license for now". Stub stays. No push.
DEFERRED
Phase 1 โ Build pipeline
3 minutes from prompt to live. Make the build fast, visible, resumable.
P1.1
Parallelize file generation in build_freshvibe_app (Promise.all). 5min โ 1-2min.
Built as /workspace/vc-deploy/cli.py (660 lines) with 8-worker SFTP pool. Parallel deploy wired; build-time parallelism is partial (file-writes parallel, LLM stream serial). Commit uncommitted; pending push to vc-deploy repo.
PARTIAL
P1.2
Auto-verify after build โ GET /api/agent/verify?app=NAME curls the live URL, returns status + content checks.
Implemented as vc-deploy verify subcommand: hashes deployed main-*.js against local, 200 PASS / 502 FAIL in 0.6s. Idempotent smoke test.
DONE
P1.3
Build metrics โ wall time, token count, cost in the chat message.
vc-deploy status shows last build wall time + file count. Token/cost metrics require P1.7 (spend tracking) to be real first.
PARTIAL
P1.4
Build cache โ in-memory map intent-hash โ files[]. Second build of same intent = free.
Build cache layer implemented in vc-deploy cli.py (.last-build.json status file, 5-min cache). LLM cache not implemented (every prompt hits Z.AI fresh).
PARTIAL
P1.5
Build resumption โ checkpoint after each file, resume from file N.
Not started.
PENDING
P1.6
Stream preview โ show each file as it's written (FileTree component).
Not started. Needs FileTree UI + streaming build protocol.
PENDING
P1.7
Spend tracking โ capture Z.AI usage.total_tokens โ PB spend_log โ panel "Today's spend" card.
Listed as Tier 2 / #32 in STUB-REGISTRY. ~4h. Blocks P5.5/5.6, blocks #13/14/15 STUB entries.
PENDING
Phase 2 โ Fv CMS integration
Port Fv CMS into VibeCoder. Three sub-phases: vendor the runtime, wire content types, build the editor.
P2.0
Fv CMS updates for VibeCoder's needs. PB-aware inspector fields, PB save adapter, realtime channel. ~3-5 small changes in freshvibe-cms/, not bridge code.
PRs in freshvibe-cms/, not VibeCoder code. Cross-repo work. Tracked separately.
PENDING
P2.1
Wire FES Plan B Layer B โ register /content-types/batch + /content-types/resolve endpoints.
3 endpoints live: GET /api/agent/content-types/batch?names=A,B,C, /resolve?intent=..., /cache/refresh. 5-min TTL in-memory cache. Deployed to /opt/vibecoder-bridge. Bridge changes (not vc-source). Tested live 200.
DONE
P2.2
Frontend spec-enrichment โ batch fetch content types, inject schemas into LLM prompt.
Not started. Needs frontend decision: do we add a new provider layer in ChatPanel that calls /batch before each LLM call, or do we surface this in the spec-building phase only?
PENDING
P2.3
Wire the 6 editor fragments + 30 runtime files into VibeCoder panel. editor-shell.js (316) IS the panel. cms-panel.js (441) IS the UI shell. region-editor.js (169) IS click-to-edit. Just import and call.
P2.3a DONE: 44 files vendored to src/freshvibe-cms/ with FV-CMS-VENDORED markers. P2.3b DEFERRED: editor fragments need app-preview infrastructure (VibeCoder doesn't render v8 modules yet). Commit 901505e.
PARTIAL
P2.4
Edit-in-place โ VibeCoder contributes TWO things: (a) vendor freshvibe-cms/ into the app's directory. (b) wire the editor's "save" to POST to PB instead of writing to the file.
Not started. Hardest item in Phase 2. 6-8h. Blocked on app-preview + P2.3b.
PENDING
P2.5
Plan validation โ LLM plan must reference real field names. Use the existing content-types.js (632 lines).
Not started. ~40 lines, 1h. Needs P2.1 endpoints in place (done).
PENDING
P2.6
CRUD UI for content types โ use the existing content-admin.js (374 lines) + content-api-client.js (67 lines). Just expose it in the panel.
Not started. Just a panel tab that calls /content-types endpoints.
PENDING
P2.7
Region-to-content-type wiring at render time โ annotation region: { contentRef: "BlogPost.list" } โ use existing query.js (126) + content-api-client.js to fetch from PB.
Not started. 3h. Needs P3.1 (PB adapter) + P2.0 (PB-aware Fv CMS updates).
PENDING
Phase 3 โ Backend adapters
One interface, many backends. Annotation declares backend.type, runtime picks the right adapter.
P3.0
Backend adapter framework โ one interface { read, write, list, query, auth?, realtime? } in freshvibe-cms/runtime/adapters/. Each backend one file, ~50-200 lines.
Not started. Foundational โ must precede P3.1-P3.6.
PENDING
P3.1
First adapter: PocketBase. Auto-create collections from annotation.contentTypes[].
Not started. ~100 lines, 3h. Adapter lives in freshvibe-cms/.
PENDING
P3.2
Second adapter: IndexedDB. Default fallback. No server, no credentials, "just works" for personal tools.
Not started.
PENDING
P3.3
Third adapter: GitHub Gist. git-history = audit log, matches FVW doctrine.
Not started.
PENDING
P3.4
Fourth adapter: Supabase. Operators ask for it.
Not started.
PENDING
P3.5
Fifth adapter: Google Sheets. Operator UX for non-technical users is unbeatable.
Not started.
PENDING
P3.6
Sixth adapter: Cloudflare D1. Edge, fast, free.
Not started.
PENDING
P3.7
"Pick your backend" wizard on first run โ annotation has backend.type: "?", runtime shows a card with all 12 options, each with "what you need to do".
Not started. UX-only, ~2h once P3.0 is done.
PENDING
P3.8
.env.example generated per-backend โ operator sees exactly which keys to set.
Not started. Trivial once P3.0-P3.6 are done.
PENDING
P3.9
Adapter capability matrix in the doc โ "Supabase has realtime, JSONBin doesn't, IndexedDB has BroadcastChannel" โ runtime degrades gracefully.
Not started.
PENDING
Phase 4 โ Module library
17 โ 30 modules, 2 โ 6 skins, validation, security defaults, picker.
P4.1
Module lib 17 โ 30. Add: form-field (date-picker, color-picker, rating, file-upload, select, checkbox, radio, textarea as sub-types), map, chart, audio, table, tabs, modal, search, social-share, gallery, slideshow, callout, comparison, stats, embed.
Not started. Largest single item in Phase 4.
PENDING
P4.2
Skins 2 โ 6. fresh-classic + fresh-soft + add: fresh-modern-dark, fresh-pastel, fresh-newspaper, fresh-brutalist.
Not started.
PENDING
P4.3
Module-level validation at write time โ reject out-of-palette colors. Use existing skin.cssTokens.
Not started.
PENDING
P4.4
Region size budget โ warn at 30 modules, block at 50. Use existing region-scanner.js (235 lines).
Not started. Trivial: scanner exists, just needs the threshold logic.
PENDING
P4.5
Security defaults โ _headers (CSP, X-Frame-Options), _env.example, SECURITY.md, RATE_LIMIT.md.
Not started. _headers already deployed for /vibechat/, just needs to be portable to user apps.
PENDING
P4.6
Style presets โ annotation declares skin: "fresh-modern-dark", every module inherits the right tokens via skin.js loader (98 lines). No new code โ just make it pickable in the panel.
Not started. Trivial โ just a panel skin picker that writes the skin ref to the annotation.
PENDING
P4.7
Module picker โ operator adds a module to a region without re-running the build. Uses existing modules/index.js registry.
Not started. UX-only.
PENDING
Phase 5 โ Deploy + Ops
Make the operator's life boring. One click, auto-verify, health, rate limit, error log.
P5.1
One-click deploy โ panel button โ bridge โ live.
Implemented in vc-deploy deploy. Bridge SFTP upload + restart + verify pipeline. One command, idempotent. Also exposed as panel "Deploy" button (manual).
DONE
P5.2
Auto-verify on every deploy + periodic heartbeat (alert if any app 5xx or 404).
vc-deploy verify does post-deploy verify. Heartbeat not implemented.
PARTIAL
P5.3
Versioned runtime โ annotation declares fvwRuntimeVersion, runtime enforces.
Not started.
PENDING
P5.4
Bridge health check โ systemd service, /healthz, panel shows status.
Bridge runs under systemd (vibecoder-bridge.service). /healthz not exposed yet โ bridge returns 200 on root.
PARTIAL
P5.5
Rate limit โ operator configures per-day LLM token budget.
Not started. Blocked on P1.7 (spend tracking) โ need to know how much you've spent before you can cap it.
PENDING
P5.6
Spend tracking dashboard โ daily, weekly, monthly, per-app.
Not started. Blocked on P1.7.
PENDING
P5.7
Error log on bridge โ every failed LLM call logged with context, queryable in panel.
Bridge has stderr logging. Structured error log + panel query not implemented.
PENDING
Phase 6 โ Scale
From one app to many. Git-as-deploy, templates, multi-tenant, public spec.
P6.1
Git-as-deploy โ every successful build โ commit, every app has git remote, rollback.
Not started. Operator's existing apps live in /var/www/freshvibeapps/clients/ โ could init git in each on first build.
PENDING
P6.2
Template gallery โ operator's apps can be cloned as templates, list in panel.
Not started.
PENDING
P6.3
Multi-stack doctrine โ FVW for Android (Kotlin + Compose), Windows (WinUI 3), CLI (Python). Same doctrine, different stack. Written doctrine, not code.
Not started. Doc-only.
PENDING
P6.4
Staging subdomains โ wales-blog-staging.freshvibeapps.com per app, promote-to-prod button.
Not started. Caddy allowlist is already in place, just need the deploy target.
PENDING
P6.5
Performance budgets โ file size cap, region size cap, annotation size cap, warn at 80%, block at 100%.
Not started. Mostly thresholds + warnings.
PENDING
P6.6
App heartbeat / error reporting โ apps POST to bridge on errors, panel shows health.
Not started.
PENDING
P6.7
Multi-tenant isolation โ multiple VPS users, each with their own apps.
Not started.
PENDING
P6.8
Annotation clone โ "use this app as a starting point" button in panel.
Not started.
PENDING
P6.9
Public FVW v8 spec โ annotation schema as .schema.json with docs, hosted at fvw.freshvibeapps.com.
Not started.
PENDING
Phase 7 โ FVS alignment (wait and see)
Operator directive 2026-07-29: "we wait and see about Fvs. fvs chrome chips etc may be different as a result of what we do here." Don't pre-commit.
P7.1
Chip system in the Backstage panel โ settings / users / backups / services as navigable chips instead of stacked sections. ~2-3 days. Reference: FVS chip grammar (Coder, Blueprint, Flow).
Operator directive 2026-07-29 02:31: "ignore chip system for now". Pushed. No work until operator says otherwise.
DEFERRED
P7.2
Other FVS bits: dock-on-left, command palette, 5 layouts. None of these are commitments โ they happen if they help, not because the Pact says so.
Not started. Same hold as P7.1.
DEFERRED
Phase 8 โ STUB-REGISTRY clearance
Cross-phase. Each item: STUB-REGISTRY #3 #13/14/15 #22 #23 #24 #29 #30 #32. Phase 0-7 work unblocks these. Tier 1 = empty (just cleared).
#3
Compact mode CSS โ add rules for .vc-bubble, .vc-messages, .vc-input-bar, .vc-settings-card. ~30 min.
Tier 3 polish.
PENDING
#13/14/15
Daily/Weekly limit + Alert threshold โ become useful once #32 (real spend tracking) lands.
Blocked on P1.7.
PENDING
#22
About version โ env vars VITE_BUILD_VERSION + VITE_BUILD_SHA in vite.config.ts. ~15 min.
Tier 3 polish.
PENDING
#23
Per-message save โ new POST /api/agent/save_template endpoint, button on each bubble. ~2h.
Tier 3.
PENDING
#24
/remit real โ show actual budget once #32 lands. ~1h.
Blocked on P1.7.
PENDING
#29
Provider failover โ test Groq + Anthropic. ~1h.
Tier 3 polish.
PENDING
#30
App lifecycle in PB โ new vibechat_apps collection with thread_id, name, url, built_at. ~4h.
Tier 3.
PENDING
#32
Real spend tracking โ bridge captures Z.AI usage.total_tokens, writes to PB, exposes /api/agent/spend/today. ~4h.
Tier 2. The big one. Unblocks #13/14/15/24 + P5.5/5.6.
PENDING
Work this session (2026-07-29 01:46โ02:54):
ยท Mobile drawer blur bug (commits 09dd80e, d46adc9, 04c0272)
ยท P1.1-P1.4 (parallel build CLI at /workspace/vc-deploy/cli.py) โ P1.2 fully done, P1.1/P1.3/P1.4 partial
ยท P2.1 (3 new bridge endpoints, live) โ fully done
ยท P2.3a (44 files vendored with markers) โ partial
ยท Tier 1 STUB-REGISTRY: 6 stubs (#4 #7 #8 #10 #11 #17) wired and live โ STUB-REGISTRY updated
ยท STUB-REGISTRY registry marked Tier 1 cleared (commit ecb3f0e)