write the voice-over, demo script first, voiceover instead of PRD, voiceover-first development, align on the demo, script the demo, ship a feature demo-first. The whole demo-driven journey — approve the narration BEFORE any code, then build on a fresh worktree until the demo holds and open the PR with the proof on it. Use when a feature request arrives, or when the user runs /voiceover.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
The voice-over is the spec. Instead of a PRD, a feature starts as the demo narration the user would record if the feature had already shipped. This skill owns the whole journey: script → worktree → build → fraimz → PR.
The contract: no code until the script is approved.
On approval, set up an isolated workspace so the user's checkout stays untouched:
git fetch origin dev
git worktree add ../_worktrees/openwork-<flow-id> -b feat/<flow-id> origin/devThen, inside the worktree:
evals/voiceovers/<flow-id>.md: a title, optional
context prose, then the numbered frame paragraphs. From this point the file
is what the code gets held to — the runner fails any flow whose narration
drifts from it.pnpm fraimz scaffold <flow-id> generates
evals/flows/<flow-id>.flow.mjs with one ctx.prove stub per paragraph,
narration pre-wired via loadVoiceoverParagraphs. Do not renumber or
reword paragraphs after this without re-approval.executor subagent; the fraimz loop (see the fraimz
skill) is how the orchestrator verifies each round — drive the demo
against the real app, repair, and re-run until every frame passes.git push -u origin feat/<flow-id>
gh pr create --base dev --fill
pnpm fraimz --flow <flow-id> --pr # posts the frame-by-frame proof as a PR commentThe PR review is the demo review: verdict, claims, voiceovers, and assertions, frame by frame.
# <flow-id> — <one-line claim>
Optional context prose (not narrated).
1. First frame narration, one or two spoken sentences.
2. Second frame narration.Only numbered paragraphs become frames. Keep each to one or two sentences a human could speak over the screen while it shows exactly that state.
evals/runner/voiceover.mjs — parser, drift check, scaffolder.evals/voiceovers/voiceover-first-dx.md — the reference script (this
workflow demoing itself, worktree and PR included).fraimz skill — the validate/repair/verdict loop inside Phase 3.1345d51
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.