SKILL.md
Plotloom Video Adapter
When to Use
Use when episodes/epXXX/video-prompts.md or video-prompts-en.md exists and a clip candidate should be produced or queried.
Inputs
video-prompts.md/video-prompts-en.md- Target clip id such as
clip-01 - Adapter choice: fake adapter by default; Dreamina only for explicit real generation.
Outputs
episodes/epXXX/videos/clip-YY/candidates/vNNN.mp4- If queueing, a human-readable queue note near the clip folder containing
submit_id, status, adapter, and next query command.
Read These Resources When...
- Read
references/fake-adapter.mdfor contract tests and no-quota dry runs. - Read
references/dreamina-cli.mdbefore any real Dreamina/即梦 submission or polling. - Use
templates/adapter-request.mdto record preflight, command, status, and handoff.
Workflow
- Read the prompt file and target clip id.
- Choose fake adapter by default for contract tests.
- Use Dreamina only when explicitly running real generation and preflight passes.
- Submit one candidate at a time.
- Save outputs to
episodes/epXXX/videos/clip-YY/candidates/vNNN.mp4. - If the provider queues, preserve
submit_idin a visible note near the clip folder, not a hidden runtime DB. - Hand off to
plotloom-asset-selectionafter a candidate exists.
Adapter Rules
- Fail fast on missing prompt, missing clip id, invalid output path, missing login, missing
maestro, missing quota, or provider error. - Fake adapter proves file-path contracts and ffmpeg compatibility; it does not prove creative quality.
- Dreamina requires host pre-authentication. The adapter must not automate OAuth, store credentials, or copy tokens.
- Do not create a Python runtime client in the skill; keep this as a prompt and command contract plus the
plotloomCLI. - Do not batch-generate three candidates in MVP.
Reference Discipline
Reference handling is high risk. Do not assume that a local path written inside prompt prose is sent to the provider.
Before any image-to-video or reference-to-video submission:
- Identify the exact intended first frame and reference images for this clip only.
- Verify those files or
asset://...ids are the actual request inputs, not just Markdown text. - Reject ambiguous phrasing such as
Use Image 1unless the Image mapping has been programmatically resolved for the target clip. - Record the submitted reference list in a visible receipt/handoff. If the CLI cannot show the actual refs, stop and add/patch the tool support before expensive generation.
For VolcEngine/Seedance identity work:
- Full character sheets may trigger
InputImageSensitiveContentDetected.PrivacyInformation. - Transparent face mesh, red topology, blur, or privacy mesh are not reliable bypasses.
- Prefer provider-approved
asset://...virtual face anchors for faces, plus face-blocked costume/body sheets for clothing and silhouette. - Treat
asset://...as face-only. Hats, wardrobe, body type, props, and scene blocking still need text or non-sensitive visual refs. - Face consistency smoke tests should start with medium close-up, front-left 3/4 face, visible eyes, no deep hat shadow, face occupying about 25-35% of frame, and minimal action.
Batch Safety
For repeated candidate or asset generation, use a manifest/resume pattern: skip outputs that already exist unless --force is explicit, record per-item status, and continue after timeouts. Do not restart a batch from item 1 after one successful expensive generation.
Stop Conditions
Stop after candidate creation, queue note, or provider failure report. Do not select or stitch.
Next Skill Handoff
Use plotloom-asset-selection to review and accept/reroll the candidate.
Failure Modes
- Fake adapter failure: check ffmpeg installation and output path.
- Dreamina not logged in: run
dreamina user_creditmanually on the host. - Dreamina account not
maestro: stop and report permission gap. - Queueing: record
submit_id, status, and query command visibly. - Generation failed: preserve error and suggest prompt revision only if failure is prompt-related.