prod-by-claude
Skill155 starsChanged 3 months agoApache-2.0View on GitHub
Use when an agent needs to make a HyperFrames video of a Strudel live-coding track, where the code itself is the picture and every token lights up on the note it plays. Trigger on: "strudel video", "live coding video", "show my code playing", "make a video of this track with the code", "prod by claude". Covers composing the track, recording it offline from pinned Strudel, and building the 1080x1080 video (typed opener, parts powering on, real Strudel theme switches, graffiti ASCII drops, typed sign-off).
In this repository7 other files it gives its agents.
- camera-3d-captionsSkill
- day-in-my-lifeSkill
- duoSkill
- p5-paint-animationSkill
- session-storySkill
- vox-explainerSkill
- x-posting-licenseSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Not for other audio or DAW projects, talking-head videos, or visualizers of an existing audio file with no Strudel code (use the …
- Very specific: line 41
Create the project (plain file copies): node <skill>/scripts/new-project.mjs <project-dir> [track.strudel.js]
- Very specific: line 61
If the track changes, repeat steps 5-7.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
prod-by-claude
Turn a Strudel track into a live-coding video. The music is rendered offline from the code, and the video is driven by Strudel's own note events, so every highlight lands on its note.
When to use
- The user wants a video of Strudel code playing: "make a video of this Strudel track", "show the code lighting up", "live-coding video", or a track the agent composed for them.
- Not for other audio or DAW projects, talking-head videos, or visualizers of an existing audio file with no Strudel code (use the HyperFrames music workflow for those).
Inputs
- A Strudel track (
.strudel.js), or a brief to compose one. Compose with references/composing.md. With no track, start from assets/example/track.strudel.js (synth-only, no samples). - The arrangement: length in bars, and which bars are builds and drops.
Tools and dependencies
- Node 22 or newer, npm, and the HyperFrames CLI pinned to
hyperframes@0.8.70(run throughnpx --yes). tools/package.jsonpins everything else:@strudel/web1.3.0 (AGPL-3.0, installed from npm, not bundled here),puppeteer-core25.12.0,@puppeteer/browsers3.2.3, and the OFL fonts@fontsource/jetbrains-mono5.3.0 and@fontsource/rubik-mono-one5.3.0.- Chrome for Testing 149.0.7827.22 for recording, or any Chrome given as
CHROME=<path>. - No credentials.
Workflow
- Create the project (plain file copies):
node <skill>/scripts/new-project.mjs <project-dir> [track.strudel.js] - Edit
<project-dir>/video.json:bars,builds,drops,themes,stormparts,signoff(references/video.md, references/themes.md). The template already matches the example track, so skip this step when using it. - From
<project-dir>/tools, install the pinned tools:npm install - From
<project-dir>/tools, ifCHROMEis not set, fetch Chrome for Testing:npx --yes @puppeteer/browsers@3.2.3 install chrome@149.0.7827.22 --path .chrome - From
<project-dir>/tools, record:node record.mjs ..It takes about 5-7 minutes for 32 bars (give it a 10 minute timeout), prints levels per 4 bars and warns on clipping. Fix the track and record again until the drops peak at or below -2 dBFS with no clipped samples. - From
<project-dir>/tools, build the video data:node build-data.mjs ..It prints the snapshot command for step 7. - From
<project-dir>, runnpx --yes hyperframes@0.8.70 check ., then the printed snapshot command, and look at every frame (what to look for: references/video.md). - From
<project-dir>, render locally when the user asks for the video:npx --yes hyperframes@0.8.70 render . -o renders/video.mp4HyperFrames cloud render (npx --yes hyperframes@0.8.70 cloud render .) spends credits on the user's account: use it only after the user explicitly agrees.
If the track changes, repeat steps 5-7. If video.json changes, repeat steps 6-7.
Outputs
assets/bgm.wav(the mix),assets/stem-<part>.wav(the scope part),data/events.json(every note with its code locations),data/events.js(what the composition reads).renders/video.mp4, 1080×1080, 30 fps, aboutpre + bars × 240 / bpm + 4.6seconds with a sign-off.
Side effects
- Files: writes only inside
<project-dir>.build-data.mjsrewrites thedata-durationand audiodata-startattributes inindex.html. - Network:
npm install(npm registry), the Chrome for Testing download (about 150 MB from Google's storage), and GSAP from cdn.jsdelivr.net when the composition loads.snapshotuploads frames to a hosted captioning model unless given--describe false, so always pass it. Recording runs on 127.0.0.1 only and fetches nothing unless the track itself loads samples (then from the sample URLs the track names). - Audio: recording is headless and muted; nothing plays out loud.
- Cost: none, unless the user approves a cloud render.
Verify
record.mjsexits 0, lists every part, and reports no clipping.checkpasses with 0 errors.canvas_overflowinfo notes for code lines below the frame are expected.- In the snapshots: line 1 typing at 0.6 s, the first part blooming and highlighted after
pre, graffiti in each drop, the decode after each drop, the sign-off at the end. - In the render: the first sound lands at
preseconds, and the video ends in black.
Rights
The music written in Strudel belongs to its author; Strudel's AGPL covers the software, not the tracks. Built-in synths need no clearance. Samples loaded by a track are other people's recordings: use only sounds the user owns or has cleared.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

