Start
Paths:
means the folder containing this SKILL.md, and
the plugin folder two levels above it.
Read
${CLAUDE_PLUGIN_ROOT}/PRINCIPLES.md
first: the rules every video follows (where, asking, looking real, motion, story, privacy, cost).
Every question goes in the question box: the AskUserQuestion tool (2-4 options, recommended first). Only in an agent without it, ask numbered questions in text.
in an answer: Read each first.
The user's whole job: drop a video, answer a few questions, approve the cut, approve the stills, both on
the review page. Everything else is this skill's job.
P="${CLAUDE_PLUGIN_ROOT}/lib/ai_editor/profile.py"
. Run it with
on Mac and Linux,
on Windows.
First run (the session-start line says so, or
prints a line): the
setup skill's step 0 first (window, then installs in the background), then carry on here.
0. Links first
If the message has any link, @handle or file path, route it before anything else. Never ask what a
link is; the classifier knows.
bash
L="${CLAUDE_PLUGIN_ROOT}/lib/ai_editor/links.py"
python3 "$L" route "<the user's whole message>" [--own]
only when the user says the video link is theirs ("my video", "I posted this"). It prints a list, already in the order to handle it: questions, creators, own footage, long
videos, websites, music. Each item has a
:
| kind | do |
|---|
| One question box for all items together (at most four): each item's word for word, its labels in order, the first marked "(Recommended)". The answer becomes the kind. |
| creator-teardown quick mode on and (no platform: ask, TikTok first). With , write them to and use list <handle> --urls picks.txt
. Save it as the profile creator. |
| python3 "$L" fetch "<url>" edits/<name>
( is in the item). It prints the file path; that is the video for step 1. |
| the clips skill, with this link as its source. |
| the product-video skill with this URL. A plain website (not a video site, file or share link) is always , even after "edit my video": go straight to its brief, with no "did you mean your own footage" line. |
| the music question with rights (style-edit, or product-video's step). |
| say its to the user, word for word, and go on with the rest. |
An item with a
(Instagram profiles, Spotify, app stores, OneDrive): say the note once.
fetch exit 3 means the site wants a login: ask in the question box "Use your browser's login for
this one download?" (No, I'll download it myself (Recommended) / Yes, Chrome / Yes, another
browser), and only on a yes re-run with
--cookies-from-browser <browser>
. Exit 1: say its message.
Only download what the user may edit; a creator's video is for the teardown, not to re-edit.
1. The video
"Open the home page" (
,
), "listen for jobs" or "take job <id>":
. No video,
link or creator (a bare "edit my video"): ask
Open the home page (Recommended) /
I'll give
the path /
Use the sample take (cut's "No video yet?"). Edit folder:
->
.
2. Intake: ask nothing the profile or style answers
bash
python3 "$P" missing --style # answered at setup, or by the style picked in the window
A
(the window picked the style), "just edit it", or no id printed: run
and ask nothing. It keeps every saved answer and fills the rest with the first option (audience "people
curious about the topic", goal follow, names found in what they say). Post no status about defaults: the
review page shows an audience only when the user gave one (
review.py <edit> status "For <their audience>"
).
Otherwise read
and ask the printed ids in one question box. Profile:
.
3. Route
Do each step in order, skipping what is already done. Read each skill's SKILL.md before its step.
- setup, if any step fails because a tool is missing ( says ).
- creator-teardown in quick mode (its SKILL.md "Quick mode") for every profile creator without
creator-teardowns/<handle>/style.json
. Say the time first (about a minute per creator). Run
several creators in parallel when the platform allows.
- Blend the style:
python3 "$P" style edits/<name>
writes from the
parts the user ticked for each creator, with the caption and sound answers laid over (no creator:
the default style). It prints the copied style's skill (skill: edit-like-<h> -> <path>
): read
it and follow its learned rules through the cut and the edit. no creator style.json found
:
run step 2 again.
- cut on the raw take, from its step 0b (start has already decided: cut, wait for the cut page
approval, then style). The user approves the cut page. This is approval 1 of 2.
- style-edit with . Renders on the cut's approve; the edit is approval 2. It reads the
profile itself: the brand kit sets the look, get real logos and captures,
images go on screen first, is enforced by plan.py. Letterbox (wide take, title on top):
cut , .
on the job: step 5 is that skill, not style-edit (, Skill style).
Between steps say one line about what is next. Never ask the user to do a step the skill can do.
4. After
The render is handed over on the review page (style-edit step 8). Corrections go to the taste skill; a change of brand, creators or platform goes back into the profile with
.