# StoryExplanation

Generates narrative explanations in the user's first-person voice, from 3-part...

- 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 StoryExplanation -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill StoryExplanation -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill StoryExplanation -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill StoryExplanation -g -a gemini-cli -y`

## Description

Generates narrative explanations in the user's first-person voice, from 3-part narrative to CSE numbered points, each a standalone social-ready thought. USE WHEN story explanation, narrative summary, CSE, CSE5, tell as story, explain as a story, create a narrative, story format, summarize as story, explain in my voice, with links, with citations, abridged, explain this YouTube, explain this article. NOT FOR multi-source research (Research), writing original social posts or blog drafts, wisdom extraction (ExtractWisdom).

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

# StoryExplanation

Turns any source (a YouTube video, a URL, a file, pasted text, or "this" for the current conversation) into a narrative explanation in the user's own first-person voice. It explores 5-7 framings, picks the strongest, and outputs in the format you ask for: a 3-part narrative, a links version with inline citations, a 5-line abridged version, or a numbered CSE/CSE5. Each point stands alone, so any one can be lifted straight to social media.

Every intent reads the source the same way. A YouTube URL (contains "youtube.com" or "youtu.be") is fetched with `fabric -y <URL>`, any other URL (starts with http:// or https://) with `fabric -u <URL>`, a file path by reading the file, pasted text as given, and previous output or "this" from the conversation.

Every format has a deterministic check. `bun skills/StoryExplanation/Tools/CheckFormat.ts --format <format> [--lines N] [--words N]` reads the output from stdin or `--file`, exits 0 when it conforms and 1 with one violation per line when it does not; flags and per-format checks are in `Tools/CheckFormat.help.md`. It checks counts, numbering, headers, bullets, labels, periods, link placement and the default cliche list, never voice or fidelity.

| Intent | `--format` | Other flags |
|---|---|---|
| Create | `create` | none |
| CreateWithLinks | `links` | `--lines N` when the request named a length |
| CreateAbridged | `abridged` | none |
| Cse | `cse` | `--lines N`, and `--words N` when the request named a word count |
| Cse5 | `cse5` | none |

## Ideal State

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