The spec-driven AI Dev Suite for Vue — built on VoidZero / Vite+.
You describe your app as a tree of vows (promises) in app/<slug>.vow.md; vow generates a type-safe Vue app that you own — and proves it kept the promise. Operable by a human and an LLM.
Foundation phase. The core mechanism works end-to-end (entity · view · bind · primitives · scenario-coverage · local-state CRUD · layout). The surface — more field types, the primitive ladder, patterns, routing, persistence, and an MCP server — grows slowly, element by element. See the roadmap.
One file — app/task.vow.md:
---
id: vow_task
fulfills: emit entity
---
# A task someone must do
## fields
- title: text, required
- done: boolean
- status: select(todo|doing|done)→ vow generates the Task type, a validating factory, and derived tests (into .generated/, never edited) — a model, type-safe and proven. Put it on a page and a view's list: task renders its CRUD list. You write the intent; vow keeps the promise.
- Free — read one
llms.txtand write.vow.mddirectly; the core (parse · gate · tsgo) keeps errors at zero. - MCP (planned) — a typed toolbox for token-efficient, direct work.
vow develops itself through vow agent — a CLI that turns GitHub issues into gated, isolated work. Open an issue; vow agent run <n> creates a worktree, dispatches an LLM (Claude Code today, provider-neutral), verifies the gates (format · lint · typecheck · tests), and opens a PR. Red gates → draft; green → ready. Run vow agent run-all to dispatch several at once. See the agent guide for the full loop.
Vite+ · Vitest · Rolldown · Oxc · tsgo (VoidZero) · Vue 3 · Cloudflare (target backend). vow is the intent layer on top — it doesn't reinvent the toolchain, it builds on it.
pnpm install
vp dev apps/starter # the starter app
vp check # format · lint · typecheck
pnpm -r test # tests (per package)
vp dev apps/docs # the docsThe full guide lives in docs/ — what vow is, the Vow primitive, app structure, emit/bind/proof, primitives, and the roadmap.
See CONTRIBUTING.md. vow is built slowly, element by element; every change ships green (vp check + pnpm -r test) with its own doc page.