# StoryFilm

Turns a story markdown file into a narrated animated film, a new reading format where...

- Repository: https://github.com/danielmiessler/LifeOS (19669 stars)
- Category: Writing
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add danielmiessler/LifeOS --skill StoryFilm -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill StoryFilm -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill StoryFilm -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill StoryFilm -g -a gemini-cli -y`

## Description

Turns a story markdown file into a narrated animated film, a new reading format where the listener is read to and sees the story as it is told: beats from paragraphs, a bible so every character and place looks the same in every shot, one painting per beat in one style, Fish Audio narration in the story's voice with word timings, a HyperFrames film with camera moves, dissolves, scene breaks, a caption line and title cards, read back and verified. USE WHEN animated reading, story film, film this story, animate this story, illustrated audiobook, narrated story video, turn this story into a movie, storyboard this story, paint the shots, render the story film. NOT FOR the principal's own recordings, argument-first video essays, one-off motion graphics (Remotion), single illustrations (Art), writing the story itself (WriteStory).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# StoryFilm

A story goes in; a verified film of it comes out. One creative stage (the storyboard) and a deterministic tail (bible, shots, narration, render, verification, critique, delivery).

## Ideal State

- A story file becomes a film a viewer accepts as one made thing: the same faces first frame to last, each painting fitting its beat, the caption in step with the voice.
- Every film is read back before anyone sees it: `Out/verify.json` green and complete, the Assay video eval set (`video-eval`) passed in the verify stage as `Intents/Produce.md` declares it, the review sheets looked at, and the ArtDirection critique passed on the exact bytes delivered.
- Nothing reaches the principal as a first draft: the film and its sheets land in the downloads folder only through `Run.ts --deliver`, after a passing critique and a Proof receipt.
- Expensive stages run once per change: the storyboard is reviewed and linted before any painting, and every later stage is hash-cached so an edit redoes only what it touched.
- Nothing leaves review: the skill has no upload or publish path.

## Intent Routing

| Intent | Trigger | File |
|----------|---------|------|
| **Full** | "film this story", "animated reading of X", "turn this story into a movie", anything that starts from a story file | `Intents/Full.md` |
| **Storyboard** | "storyboard this", "write the bible", "plan the shots", a redo of the creative stage after intake | `Intents/Storyboard.md` |
| **Produce** | "paint the shots", "render it", "re-render after an edit", "verify the film" | `Intents/Produce.md` |

| File | Read when |
|------|-----------|
| `References/StoryboardSchema.md` | writing or editing `Storyboard.json` |
| `ISA.md` | changing what the skill does: its ideal state, criteria and decisions |
| `Setup.md` | first-time setup: Fish Audio and Google keys, ffmpeg and the other programs, optional Config.json |

The rest: https://github.com/danielmiessler/LifeOS/blob/HEAD/LifeOS/install/skills/StoryFilm/SKILL.md
