
Voiceover
Write the voice-over, demo script first, voiceover instead of PRD, voiceover-first...
Install
npx skills add Devin-AXIS/iPolloWork --skill voiceover -g -a claude-code -y- Repository
- Devin-AXIS/iPolloWork7.3k
- Category
- Git and review
- Updated
- 3d ago
- License
- See repository
- Context cost
- Lightabout 772 tokens
- Runs scripts
- No, instructions only
What it does
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.
Skill: voiceover
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.
Phase 1, Align on words (no code)
- Take the feature in a sentence. Ask only what you need to narrate a demo of it.
- Draft the script. Write the voice-over end to end, one numbered paragraph per frame, 4, 8 frames for most features. Spoken style, present tense, the end user as protagonist. Describe what the viewer sees and why it matters, never implementation. If a frame is hard to narrate, the feature (or the frame) is wrong, say so and reshape it.
- Iterate on words, not code. State the script back and revise with the user until they would actually record it. This conversation is the review that used to happen on a PRD.
Phase 2, Start clean (fresh worktree)
On approval, set up an isolated workspace so the user's checkout stays untouched:
git fetch origin dev
git worktree add ../_worktrees/ipollowork-<flow-id> -b feat/<flow-id> origin/dev
Then, inside the worktree:
- Land the script at
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. - Scaffold the flow.
pnpm fraimz scaffold <flow-id>generatesevals/flows/<flow-id>.flow.mjswith onectx.provestub per paragraph, narration pre-wired vialoadVoiceoverParagraphs. Do not renumber or reword paragraphs after this without re-approval.

