Install
openclaw skills install @fuq87573-create/produce-voiceover-teaching-videoSeven-worker faceless teaching video production
openclaw skills install @fuq87573-create/produce-voiceover-teaching-videoAct as the director of a seven-worker production line. Treat the supplied narration as sensitive source material and the prepared narration duration as the timeline authority. Do not clone a voice, upload source media, or publish the finished video unless the user explicitly requests that separate action.
Require ffmpeg, ffprobe, Python 3.10+, and a video renderer capable of deterministic 9:16 output. Prefer HyperFrames when installed; otherwise use the existing renderer in the repository or an FFmpeg composition. Use local Whisper only when no transcript or reliable timing exists.
Read these references before execution:
references/workflow.md for the seven roles and wave schedule.references/contracts.md for stage artifacts and handoff fields.references/performance.md for fast, balanced, and quality modes.references/publishing.md before creating the cover or social copy.Create a new job directory outside the skill folder. Never write user media into the skill directory.
python scripts/jobctl.py init \
--job-dir <job-dir> \
--article <article-or-notes> \
--audio <voiceover.mp3-or-wav> \
--images <image-1> <image-2> \
--mode fast \
--speech-rate 1.0
Use --speech-rate 1.2 only when the user explicitly requests 1.2x. If the user gives a target duration instead, run scripts/prepare_voiceover.py --target-minutes <min>-<max> and reject an automatically calculated rate outside 0.85-1.35; ask the user whether the script or duration should change.
Use subagents when the host supports them. Give each worker only the artifact paths listed in references/workflow.md, never the full conversation. Run independent roles in parallel; otherwise run the same roles sequentially without changing their contracts.
Every worker must write a compact JSON report with status: pass|needs-human|fail. A failure returns only to the worker that owns the defective artifact. Do not rerun completed upstream roles unless their input hash changed.
atempo; never speed the final mixed video as a shortcut.1.0x; recommend 1.1-1.2x for concise explainers and require explicit approval above 1.25x.cover.png and publish-copy.json, then run scripts/validate_delivery.py.Never perform a second full render for a copy-only or outro-only change when a local scene/chunk replacement is possible.
Deliver only when all of the following exist and validation passes:
08-delivery/final.mp408-delivery/cover.png08-delivery/publish-copy.json07-qc/qc-report.jsonThe final response must report the absolute output paths, duration, speech rate, resolution, frame rate, loudness result, mode, and any rights items that still need human confirmation.
scripts/jobctl.py: initialize jobs, hash inputs, track stages, and validate handoffs.scripts/prepare_voiceover.py: apply pitch-preserving speed changes and write audio metadata.scripts/render_cover.py: render an exact-text 9:16 technology-style cover without model-generated text.scripts/validate_delivery.py: probe the final MP4, cover, publish copy, and QC report.scripts/build_public_package.py: create an allowlisted, privacy-scanned Skill archive for registry publishing.