vaweGitHub

Let an agent write the video.

A Vawe film is one HTML page: CSS, Web Animations, SVG, canvas or three.js. An agent already writes all of that well, so it never learns a private format and never guesses at a schema. If something it would naturally write fails, that is a bug in the engine, not in the agent.

One command, one loop.

bin/vawe runs everything. new starts a film from a template, dev renders a half-size, silent draft and checks it, critique lays out the frames to look at, and ship renders the final at 60fps with motion blur and audio. A wrong flag exits with the list of valid ones, so an agent corrects itself in one step instead of reading source.

bin/vawe --help · harness/cli/verbs.mjs
the loop
bin/vawe new launch          # page.html + brief.md
bin/vawe dev films/launch/page.html
bin/vawe critique films/launch/page.html
bin/vawe ship films/launch/page.html

The writer never grades its own film.

A critique runs in a session that did not write the page, and bin/vawe judge prepares the key frames and the rubric for a fresh session to score. A pass is never self-recorded. The agent that wrote the film fixes only the seconds the critique named and renders those seconds again, not the whole film.

AGENTS.md · skills/vawe-critique

Skills teach the parts that are not defaults.

The repo ships skills an agent loads on demand: vawe-brief turns a request into a brief, vawe-page writes the page, vawe-critique looks at a render as a fresh session, and vawe-reference matches a reference video. AGENTS.md holds only what an agent would get wrong on its own: the page contract, the motion rules that are not its defaults, and the first-draft habits it should not ship.

skills/ · AGENTS.md

Wire it into an agent.

Clone the repo, install, and let bin/vawe doctor name any missing tool with the install line for your system. Then point the agent at AGENTS.md and ask for a film.

README.md
install
npm install
bin/vawe doctor      # names each missing tool
bin/vawe new hello

Why the draft matches the final.

The page runs under a virtual clock, so a moment the agent approves in a draft is the same moment in the final.