Docs/Skills and code/skill video-beat-prepare

.claude/skills/video-beat-prepare/SKILL.md

Markdown36 lines3.5 KBSkill: video-beat-prepare

What the file says about itself

Stage 1 of the video beat pipeline (mechanical, long-running, run on HAIKU only). For one beat of the Moser Baer video: align the voice-over to the script with Groq Whisper, write the brief, scaffold the beat sheet.

Skill header (frontmatter)

name: video-beat-prepare
description: Stage 1 of the video beat pipeline (mechanical, long-running, run on HAIKU only). For one beat of the Moser Baer video: align the voice-over to the script with Groq Whisper, write the brief, scaffold the beat sheet. Use via the video-beats-orchestrate skill or the video-beat-prepare agent; never on a stronger model.

Prepare one beat (Haiku)

Model rule. This stage is mechanical. It must run on Haiku: launch it as Agent(subagent_type: "video-beat-prepare", model: "haiku", prompt: "Prepare beat B3"), or model: "haiku" with a prompt that tells the agent to read this file. Do not do it on Sonnet or a larger model; it is the cheap part.

You work on one beat named in your prompt (below: B#). Work from the repo root <home>/OneDrive/Desktop/ecosystem-generic. Git Bash or PowerShell; forward slashes.

Steps (run exactly these, in order)

  1. node .claude/skills/video-visual-production/scripts/align-beat.js --beat B#
    • Sends the beat's audio to Groq's hosted Whisper (the user installed and asked for this skill) and aligns it with the script. Expected last lines: N words, M measured (X%) ... and words file: research/the-fall-of-moser-baer/video/timing/words-B#.json.
    • If it prints FAIL: only X% of words matched or any other FAIL: stop, write nothing else, and report the exact message. Do not retry more than once (a retry is fine for a network error).
  2. node .claude/skills/video-visual-production/scripts/brief-beat.js --beat B#
    • Expected: brief: N sentences, K spoken numerals, J candidate ledger rows -> .../brief-B#.md.
  3. Scaffold the beat sheet. Use the slug and paths of Moser Baer v7 Hinglish and find the wav file name with ls research/the-fall-of-moser-baer/script/audio/gemini-v7-hinglish/beats | grep ^B#-: `` node .claude/skills/video-visual-production/scripts/new-beat.js --beat B# --title "<title from the brief>" --slug moser-baer-v7-hinglish --audio research/the-fall-of-moser-baer/script/audio/gemini-v7-hinglish/beats/<file>.wav --words research/the-fall-of-moser-baer/video/timing/words-B#.json --local --dir research/the-fall-of-moser-baer/video ` It refuses to overwrite an existing beat-sheet-B#.json; if it refuses, report that and stop. The title is the beat title in research/video-production/05-moser-baer-plan.md` section 1 (for example B2 "The cocktail party").
  4. node .claude/skills/video-visual-production/scripts/beatsheet-lint.js --sheet research/the-fall-of-moser-baer/video/beat-sheet-B#.json. A scaffold may have a few hard failures (a text held too briefly): that is expected and the storyboarder fixes it. Do not edit anything to fix them.

Report (your final message, plain text, under 15 lines)

Beat, audio file, words measured / total and percent, number of sentences, spoken numerals, the lint line (Hard gates failing: N. Warnings: M), and the paths of the files you created: words-B#.json, brief-B#.md, beat-sheet-B#.json, ledger-B#.json. Nothing else. Say plainly if anything failed.

Rules (all parallel roles)

Show the raw text
---
name: video-beat-prepare
description: Stage 1 of the video beat pipeline (mechanical, long-running, run on HAIKU only). For one beat of the Moser Baer video: align the voice-over to the script with Groq Whisper, write the brief, scaffold the beat sheet. Use via the video-beats-orchestrate skill or the video-beat-prepare agent; never on a stronger model.
---

# Prepare one beat (Haiku)

**Model rule.** This stage is mechanical. It must run on **Haiku**: launch it as `Agent(subagent_type: "video-beat-prepare", model: "haiku", prompt: "Prepare beat B3")`, or `model: "haiku"` with a prompt that tells the agent to read this file. Do not do it on Sonnet or a larger model; it is the cheap part.

You work on **one beat** named in your prompt (below: `B#`). Work from the repo root `<home>/OneDrive/Desktop/ecosystem-generic`. Git Bash or PowerShell; forward slashes.

## Steps (run exactly these, in order)

1. `node .claude/skills/video-visual-production/scripts/align-beat.js --beat B#`
   - Sends the beat's audio to Groq's hosted Whisper (the user installed and asked for this skill) and aligns it with the script. Expected last lines: `N words, M measured (X%) ...` and `words file: research/the-fall-of-moser-baer/video/timing/words-B#.json`.
   - If it prints `FAIL: only X% of words matched` or any other `FAIL`: **stop**, write nothing else, and report the exact message. Do not retry more than once (a retry is fine for a network error).
2. `node .claude/skills/video-visual-production/scripts/brief-beat.js --beat B#`
   - Expected: `brief: N sentences, K spoken numerals, J candidate ledger rows -> .../brief-B#.md`.
3. Scaffold the beat sheet. Use the slug and paths of Moser Baer v7 Hinglish and find the wav file name with `ls research/the-fall-of-moser-baer/script/audio/gemini-v7-hinglish/beats | grep ^B#-`:
   ```
   node .claude/skills/video-visual-production/scripts/new-beat.js --beat B# --title "<title from the brief>" --slug moser-baer-v7-hinglish --audio research/the-fall-of-moser-baer/script/audio/gemini-v7-hinglish/beats/<file>.wav --words research/the-fall-of-moser-baer/video/timing/words-B#.json --local --dir research/the-fall-of-moser-baer/video
   ```
   It refuses to overwrite an existing `beat-sheet-B#.json`; if it refuses, report that and stop. The title is the beat title in `research/video-production/05-moser-baer-plan.md` section 1 (for example B2 "The cocktail party").
4. `node .claude/skills/video-visual-production/scripts/beatsheet-lint.js --sheet research/the-fall-of-moser-baer/video/beat-sheet-B#.json`. A scaffold may have a few hard failures (a text held too briefly): that is expected and the storyboarder fixes it. Do not edit anything to fix them.

## Report (your final message, plain text, under 15 lines)

Beat, audio file, words measured / total and percent, number of sentences, spoken numerals, the lint line (`Hard gates failing: N. Warnings: M`), and the paths of the files you created: `words-B#.json`, `brief-B#.md`, `beat-sheet-B#.json`, `ledger-B#.json`. Nothing else. Say plainly if anything failed.

## Rules (all parallel roles)

- Touch only files of your own beat (`*-B#.*`) and `C:/video-build/moser-baer-v7-hinglish/B#/`. Never edit `render/*.js`, `scripts/*.js`, any `SKILL.md`, `tools.md`, `CLAUDE.md`, memory files or another beat's files.
- Never commit, push, deploy or send anything anywhere except the Groq call in step 1.
- Never print or copy the Groq key.
- If a command fails twice, stop and report; do not improvise a workaround.

Shown as it is in the repository at build time (2026-11-03); the home directory appears as <home>. If this page and the file differ, the file is right. Back to the catalogue.