# Handdrawn Wisdom Video

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

- **Type:** Skill
- **Install:** `agentstack add skill-huxlife-handdrawn-wisdom-video-handdrawn-wisdom-video`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [huxlife](https://agentstack.voostack.com/s/huxlife)
- **Installs:** 0
- **Category:** [Content & Media](https://agentstack.voostack.com/c/content-and-media)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [huxlife](https://github.com/huxlife)
- **Source:** https://github.com/huxlife/handdrawn-wisdom-video/tree/main/skills/handdrawn-wisdom-video

## Install

```sh
agentstack add skill-huxlife-handdrawn-wisdom-video-handdrawn-wisdom-video
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## 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:

```json
{
  "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:

```bash
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`:

```json
{
  "cover": {
    "lines": ["The Old Man", "Who Lost His Horse"],
    "image": "/absolute/path/to/cover-scene.png"
  },
  "scenes": []
}
```

Build frames and timeline:

```bash
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:

```bash
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:

```bash
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

```text
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

```text
Use $handdrawn-wisdom-video to make a one-minute English video about 塞翁失马 with synchronized TTS and bottom captions.
```

```text
用 $handdrawn-wisdom-video，把“画蛇添足”改写成海外观众能理解的英文故事，生成60秒视频。
```

```text
用 $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](https://github.com/huxlife)
- **Source:** [huxlife/handdrawn-wisdom-video](https://github.com/huxlife/handdrawn-wisdom-video)
- **License:** MIT

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

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-huxlife-handdrawn-wisdom-video-handdrawn-wisdom-video
- Seller: https://agentstack.voostack.com/s/huxlife
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
