AgentStack
SKILL verified MIT Self-run

Handdrawn Wisdom Video

skill-huxlife-handdrawn-wisdom-video-handdrawn-wisdom-video · by huxlife

Create vertical English hand-drawn wisdom videos from public-domain fables, Chinese idioms, historical anecdotes, and the Thirty-Six Stratagems. Use when Codex needs original English adaptation, scene-synchronized English TTS, a persistent top headline, timed bottom captions, gray-sketch-to-color drawing animation, a one-minute TikTok/YouTube Shorts MP4, cover, title, description, and tags.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-huxlife-handdrawn-wisdom-video-handdrawn-wisdom-video

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

Are you the author of Handdrawn Wisdom Video? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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, vertical 9:16 MP4.
  • Target 58-65 seconds for a one-minute request.
  • Use 6-8 scenes and 125-150 narrated English words.
  • Make frame 0000 a 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-8 words 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.2s two-pass reveal by default: roughly 1.6s gray sketch followed by 1.6s color. 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.35s after speech, then transition.
  • Split narration into another scene when one scene exceeds roughly 10s.
  • Support top_to_bottom and left_to_right; alternate only when it improves pacing.
  • Use natural English voice en-US-GuyNeural by default. Use en-US-JennyNeural when the user requests a female narrator.

Workflow

  1. 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.
  2. Write an original English retelling. Do not copy a modern translation, article, or published story collection.
  3. Create a concise top headline and a conversational narration for every scene. Let the drawing carry visual detail.
  4. Generate one independent illustration per scene with image generation. Request no text and preserve people, clothing, objects, period, line weight, and palette across scenes.
  5. Save a stories.json input and run scripts/generate_scene_tts.py. It generates one MP3 per scene and word-boundary caption cues.
  6. Add the generated audio, duration, and captions fields to the visual manifest, or use the generated manifest directly after adding headline lines and image paths.
  7. Run scripts/build_captioned_frames.py. It creates frames and an audio timeline; captions begin with TTS and change by phrase.
  8. Encode with scripts/frames_to_video.m, then mix scene audio with scripts/mux_audio_timeline.m.
  9. Verify video duration, audio track, frame 0000, scene transitions, bottom caption timing, and at least one gray-to-color reveal.
  10. 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.