Install
$ agentstack add skill-huxlife-handdrawn-wisdom-video-handdrawn-wisdom-video ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Hand-Drawn Wisdom Video
Create an original English adaptation and a publish-ready vertical video. Keep this workflow separate from pet, relationship, and Chinese social-post skills.
Defaults
- Produce
720x1280,30fps, vertical9:16MP4. - Target
58-65 secondsfor a one-minute request. - Use
6-8scenes and125-150narrated English words. - Make frame
0000a complete cover; never begin on white. - Keep one 1-2 line headline at the top for the whole scene.
- Show the complete narration as timed bottom captions, normally
4-8words per cue and at most two lines. - Start headline writing, the first caption cue, and TTS together at scene time
0.0. - Begin drawing after
0.8s: gray sketch first, then color over the same area. - Use a relaxed
3.2stwo-pass reveal by default: roughly1.6sgray sketch followed by1.6scolor. Do not speed it up unless the user requests a faster style. - Keep scene duration tied to TTS. When a scene is too short for the requested reveal, compress only the reveal enough to finish before the transition; never cut off the drawing or desynchronize captions.
- Let actual audio duration determine scene duration. Hold
0.2-0.35safter speech, then transition. - Split narration into another scene when one scene exceeds roughly
10s. - Support
top_to_bottomandleft_to_right; alternate only when it improves pacing. - Use natural English voice
en-US-GuyNeuralby default. Useen-US-JennyNeuralwhen the user requests a female narrator.
Workflow
- Verify the underlying story and identify uncertain or legendary details. Read [references/story-guidelines.md](references/story-guidelines.md) when adapting a new historical source.
- Write an original English retelling. Do not copy a modern translation, article, or published story collection.
- Create a concise top headline and a conversational narration for every scene. Let the drawing carry visual detail.
- Generate one independent illustration per scene with image generation. Request no text and preserve people, clothing, objects, period, line weight, and palette across scenes.
- Save a
stories.jsoninput and runscripts/generate_scene_tts.py. It generates one MP3 per scene and word-boundary caption cues. - Add the generated
audio,duration, andcaptionsfields to the visual manifest, or use the generated manifest directly after adding headline lines and image paths. - Run
scripts/build_captioned_frames.py. It creates frames and an audio timeline; captions begin with TTS and change by phrase. - Encode with
scripts/frames_to_video.m, then mix scene audio withscripts/mux_audio_timeline.m. - Verify video duration, audio track, frame
0000, scene transitions, bottom caption timing, and at least one gray-to-color reveal. - Deliver MP4, cover, scene images, exact narration, three English titles, description, and 5-8 tags.
Input Format
Create UTF-8 JSON for TTS:
{
"scenes": [
{
"id": "01",
"headline_lines": ["One day,", "his only horse ran away."],
"narration": "Long ago, an old farmer lived near China's northern frontier. One day, his only horse escaped into the mountains.",
"image": "/absolute/path/to/scene-01.png"
}
]
}
Generate TTS and caption cues:
python3 scripts/generate_scene_tts.py \
--input /absolute/path/to/stories.json \
--output-dir /absolute/path/to/tts \
--manifest /absolute/path/to/manifest.json \
--voice en-US-GuyNeural \
--rate +0%
Add a cover to manifest.json:
{
"cover": {
"lines": ["The Old Man", "Who Lost His Horse"],
"image": "/absolute/path/to/cover-scene.png"
},
"scenes": []
}
Build frames and timeline:
python3 scripts/build_captioned_frames.py \
--config /absolute/path/to/manifest.json \
--output-dir /absolute/path/to/frames \
--timeline-output /absolute/path/to/timeline.json \
--image-seconds 3.2
The default --image-seconds 3.2 controls the complete two-pass reveal, not each pass. Override globally with reveal_seconds in the manifest or per scene with a scene-level reveal_seconds. Use gray_ratio (default 0.5) to divide the reveal between gray sketch and color.
Compile and encode on macOS:
clang -fobjc-arc -fblocks \
-framework Foundation -framework AppKit -framework AVFoundation \
-framework CoreMedia -framework CoreVideo -framework CoreGraphics \
scripts/frames_to_video.m -o /tmp/frames_to_video
/tmp/frames_to_video /absolute/path/to/frames /absolute/path/to/silent.mp4 30
Mix scene audio:
clang -fobjc-arc -fblocks \
-framework Foundation -framework AVFoundation -framework CoreMedia \
scripts/mux_audio_timeline.m -o /tmp/mux_audio_timeline
/tmp/mux_audio_timeline \
/absolute/path/to/silent.mp4 \
/absolute/path/to/timeline.json \
/absolute/path/to/final.mp4
Edge TTS needs network access and sends narration text to Microsoft. Use a dedicated environment if edge_tts is not installed. If AVFoundation cannot encode in the sandbox, rerun only encoding or muxing with approval.
Visual Direction
Pure white paper background. Original historical ink sketch with naturally uneven black pen lines and slight hand jitter. Sparse colored-pencil fills in muted blue-gray, pale brown, soft ochre, and gray. Reserve a comfortable headline zone above and a clean caption-safe zone below. Keep characters and essential action large in the middle. No text, numbers, logo, watermark, photorealism, 3D, comic panels, or complex full-bleed background.
Invocation Examples
Use $handdrawn-wisdom-video to make a one-minute English video about 塞翁失马 with synchronized TTS and bottom captions.
用 $handdrawn-wisdom-video,把“画蛇添足”改写成海外观众能理解的英文故事,生成60秒视频。
用 $handdrawn-wisdom-video,讲空城计,英文男声,从左到右绘制,结尾联系现代决策。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: huxlife
- Source: huxlife/handdrawn-wisdom-video
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.