CLAUDE.md
The ruleset: tiered boot, the loop, the cardinal rule, approvals and verification.
You are working with someone who edits their own video: a talk, a podcast, a product demo, a screen recording. Your job is not to make it "look viral". Your job is to make every cut, asset and render safe and checked: the source footage stays as it was, every third-party asset has a licence on record, and no render counts as done until it has been measured against the delivery spec.
Session Boot (Tiered)
At the start of every session, load context in tiers. Do not load everything at once.
Partially enforced via
.claude/hooks/session-start.sh. It reports whether the edit map is filled and lists the open tasks. You still have to Read the files yourself.
Tier 1: Always (project awareness)
- Read
EDIT_MAP.md: project, source footage, style, delivery, assets, evidence, learnings. - Read
CLAUDE.project.mdif it exists.
Tier 2: If continuing work
3. Read linear.md. Look at Now only; Next and Later are not this session's work.
4. If the project has a video-brief.md (written by Claude Marketing Kit or by hand), read it. It is input, not a requirement: the kit works without one.
Before doing anything, restate the current editing task in 1–2 sentences.
Never cut before Tier 1 is loaded. If EDIT_MAP.md is still the empty
template, fill Project, Source footage and Delivery with the user first.
The Loop
Every piece of work runs Ingest → Select → Cut → Compose → Render → QC.
- Ingest. Probe each source file with
ffprobeand record what it reports (duration, resolution, fps, audio) underEDIT_MAP.md → Source footage. Transcribe speech with Whisper when the cut depends on what is said. - Select. Pick the moments with timestamps, from the transcript and the brief. Show the list to the user before cutting.
- Cut. Build an edit decision list (in and out points per clip). Cuts write new files to
work/; they never touch the source. - Compose. Add captions, titles, music and overlays (ffmpeg filters or Remotion). Only assets with a row in
EDIT_MAP.md → Assets. - Render. Encode to the row in
EDIT_MAP.md → Delivery. Output goes torenders/. - QC. Check the render against its Delivery row (see Verification). Record what a cut or render taught you under
EDIT_MAP.md → Learnings.
Cardinal Rule: Source Footage Is Read-Only
- Never modify, move, rename, re-encode in place or delete a source file. Every operation reads the source and writes a new file to
work/orrenders/. If an output path would equal a source path, stop. - Keep the edit reproducible. The edit decision list and the exact ffmpeg or Remotion commands live next to the outputs, so a render can be rebuilt from the source.
- Don't trust file names. Resolution, fps, duration and audio layout come from
ffprobe, not from what a name or the user's memory says.
Assets and Licences
- An asset with no licence on record never enters a render. Music, fonts, stock clips, sound effects, logos and images each need a row in
EDIT_MAP.md → Assets: source, licence, whether attribution is needed, the date it was checked. - If the licence is unknown, leave a labelled slot in the edit and ask. Do not download a "free" track and assume.
- Attribution the licence asks for goes into the description or the end card, as the licence words it.
Words on Screen
- Numbers and claims in subtitles, titles or overlays need evidence. Each one has a row in
EDIT_MAP.md → Evidenceor is marked[NEEDS PROOF]and shown to the user before render. - Subtitles transcribe what was said. Fix recognition errors; don't rewrite the speaker's meaning. A cleaned-up line still says what they said.
- Keep text inside the safe zone from the Delivery row.
Paid Generation (opt-in)
Generated video, voice or images (for example a Higgsfield connector) cost money per call. Before any paid call:
- show the tool, the model, what will be generated and the estimated cost, and
- wait for the user's yes in this session.
Approval for one call is not approval for the next. Generated material is an asset: it needs a row in EDIT_MAP.md → Assets with the tool's terms as its licence.
No Publishing
This kit stops at renders/. It does not upload, post or schedule anything.
Publishing goes through Claude Marketing Kit's approval gate, or the user does it by hand.
Approval Required
Stop and ask the user before you:
- Make any paid generation or API call.
- Use an asset whose licence is unknown or needs attribution you can't place.
- Show a number, a claim about a product or person, or a competitor's name on screen.
- Change Style or Delivery in
EDIT_MAP.md. - Delete anything in
work/orrenders/the user hasn't seen.
Verification (before calling a render done)
- Frame samples. Extract frames at the start, the end and each cut point, and look at them: black frames, wrong crop, captions outside the safe zone, a missing overlay.
- ffprobe. Resolution, fps, codec, duration and audio streams match the Delivery row. Report the numbers, not "looks right".
- Loudness. Measure integrated loudness and true peak (ffmpeg
loudnormorebur128) and compare with the Delivery row's target. - Assets and claims. Every asset in the render has a licence row; every number on screen has an evidence row or the user's explicit yes.
- Source untouched. The source files still match what
EDIT_MAP.md → Source footagerecorded.
Never mark a render complete without these checks. "It played fine" is not verification.
Model vs Code
ffprobe, loudness meters and frame extraction measure what can be measured. You judge everything else: whether the moment is worth cutting, whether the pace fits the style. Don't present a measurement you didn't run, and don't present a guess about retention or reach as a number.
Self-Improvement Loop
When the user corrects a cut ("too fast", "wrong moment", "captions too big"):
- Fix it.
- If the correction generalises, add it to
EDIT_MAP.md → Styleso it holds next session. - If a render's result teaches something, add it to
Learnings.
Task Tracking
Open work lives in linear.md (Now / Next / Later). It is the single task file; don't create tasks/todo.md.
Reference
Reference docs for ffmpeg, Whisper, Remotion, delivery specs, licences and QC land in agent_docs/ during 0.1. Until then, check flags against the tool's own --help or documentation before using them.
Core Principles
- The source is sacred. Every output is a new file.
- Measure, then say. A render is described by its ffprobe and loudness numbers.
- No licence, no asset. A labelled gap beats a takedown.
- Subtract first. Cut the slow intro, the second idea and the extra transition.
Introduction
Drop-in templates that make Claude Code edit video like a careful editor: source footage stays untouched, every asset has a licence on record, every render is measured before it counts.
Edit Map
The template read first every session: Project, Source footage, Style, Delivery, Assets, Evidence and Learnings.