executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
stage-consistencyMulti-shot narrative & character consistency — a character bible with a locked front-portrait anchor, view-matched reference selection, recent-frame carry-forward, Cameo (a user photo as the lead), and global planning for long scripts/novels. Trigger on top of the generation line when the SAME character must look the same across many shots/scenes, or for lo…
Independent GitHub snapshot · Automated classification · Original documentation governs
How to keep characters, settings, and style consistent across many generated shots (and across scenes in a long story). This is the depth layer on top of the generation line: the generation line makes clips; this skill makes the SAME character look the same in every clip. Describe the outcome; the tools are ovs image for portraits (incl. reference-image editing), ovs video for image-to-video, ovs edit extract-frame to pull an anchor frame, and a long-document strategy (chunking + retrieval/RAG over the source) for long sources (or the equivalent MCP tools).
From the script/idea, extract every recurring character into project/characters/bible.json. For each character separate:
{
"alice": {
"static": "early-20s East-Asian woman, oval face, long black hair, slim build",
"dynamic": "green linen dress, small gold earrings",
"portrait": { "front": "characters/alice_front.png", "side": "characters/alice_side.png", "back": "characters/alice_back.png" }
}
}
For each character, generate ONE front portrait (full-body, front view, plain background) from its static+dynamic features with ovs image. This is the anchor — never regenerate it. Derive side/back views by reference-image editing the front portrait (so all three views are the same person). Save paths into the bible.
Decompose the script into shots. Each shot records:
For each shot, before generating it, assemble the reference images and bind them explicitly:
ovs video image-to-video using those reference images.For a character-critical shot, generate the first-frame image first (cheap), check it, and only then drive the video from that locked frame — catching drift at the still is far cheaper than discovering it after paying to animate.
After a shot is generated, pull its representative frame with ovs edit extract-frame (e.g. its last frame) into project/frames/. That frame becomes a high-priority reference for the NEXT shot in the same scene — this is what carries lighting, composition, and the exact current look forward, so drift doesn't accumulate.
Cache the decision, not just the pixels. Record each shot's chosen references + the binding prompt (e.g. in the plan/segment) alongside the produced frame. A resumed run then reuses the SAME references and prompt and reproduces the same frame, instead of re-rolling the selection and silently drifting from the earlier run.
For long-form, plan globally BEFORE generating:
A story multiplies billable calls (portraits per character + clips per shot + carry-forward frames). Default bounds unless the user explicitly asks for more: ≤ 3 characters, ≤ 3 scenes, ≤ 6 shots total. Above these, state the full count + the rough number of billable image/video generations in the pre-generation confirmation and get the user's explicit OK before generating anything.