VibeCoder-Standalone Refinement Plan

Premise (corrected from pact, not from old guesses): VibeCoder is a sovereign workspace (one of 4: Origin, VibeCoder, VibeScope, FreshCards). Two layouts: Vibe (Stencil + Preview + Inspector) and Coder (code editor + VSIL execution + Logs). Co-equal, not 'main + sidekick'. Centre pane IS the Monaco code editor per the pact. Externalize it for build size, do NOT replace it.

Plan composed 2026-07-29 18:24 BST. 9 steps. 12-13h total. 9 deploys.

Step 1 — Build foundation

Externalize monaco-editor (one vite config line + CDN script tag), add prebuild hash-stamp hook, wire MAVIS_BYPASS_TOKEN lookup. 30 min. Zero risk.

Step 2 — Pact corrections

Rename right surface per layout (Vibe -> Inspector, Coder -> Logs), add DNA + lineage hooks, finish ⌘K command palette, enforce 3-tab Inner Card limit toast. 1.5h. Medium risk.

Step 3 — Parked: dynamic daily-notes date

Replace hardcoded date string with new Date().toLocaleDateString('en', {dateStyle:'full'}). 15 min. Zero risk.

Step 4 — Parked: file-tree filter/sort/search

Search input + sort dropdown (name/modified/type) for FileTreeRail. Spec'd in vibe-card-variant.md §2 but never implemented. 45 min. Low risk.

Step 5 — Parked: responsive inspector / mobile collapse

Breakpoint ~768px, right rail -> slide-out drawer, left rail -> hamburger. 1.5h. Low risk.

Step 6 — Parked: property editor for workspace settings

Modal: theme (light/dark/auto), default layout (1/2/3-col/stacked/quad-grid), surface visibility toggles. Reads/writes perWorkspaceState from StudioContext. 2h. Medium risk.

Step 7 — Parked: replace simple-git stub with real git (project clone)

"Clone from URL" action in file tree context menu (per vibe-card-variant §2). Real simple-git on desktop, stub fallback on web. 2h. Medium risk.

Step 8 — Parked: real TypeScript LSP for editor (Coder Layout only)

Wire typescript-language-server real adapter. Coder Layout only (Vibe Layout has no code). go-to-def, hover, autocomplete. 2-3h. Medium risk (proven in FVS Phase 4.4).

Step 9 — Final: invariant sweep + drift-check + screenshot

Drift-check, Playwright screenshot at 1440x900 + 375x667 (mobile), commit MAVIS-WORKFLOW.md, update memory. 1h. Zero risk.

Decisions needed from operator

  1. Step 1 (build foundation) - go ahead? Pure config, zero risk.
  2. Step 2 (pact corrections) - is the layout naming right? "Vibe Layout" and "Coder Layout" as the two co-equal layouts?
  3. All 8 in sequence, or pick which to do first?
  4. Real AI integration (Vibe Layout Stencil + chat) - in scope for standalone, or is Vibe Layout just inspector + preview with no AI?
  5. Vibe Chat (Studio-level per §24) - does the standalone need it? Or pure VibeCoder with no Vibe Chat?