Scaffolding that helps a writer build a story they already want to tell — fills in structure, hidden wound, theme, and prose from the writer's own material acro
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-writestory-6e72eadc5d00 ,按照其中的说明把「WriteStory」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
You MUST send this notification BEFORE doing anything else when this skill is invoked.
Send voice notification:
curl -s -X POST http://localhost:31337/notify \
-H "Content-Type: application/json" \
-d '{"message": "Running the WORKFLOWNAME workflow in the WriteStory skill to ACTION"}' \
> /dev/null 2>&1 &
Output text notification:
Running the **WorkflowName** workflow in the **WriteStory** skill to ACTION...
This is not optional. Execute this curl command immediately upon skill invocation.
WriteStory is scaffolding for writing fiction. It takes what you already have — a sentence, a folder of notes, a half-drafted chapter — and helps you build the rest of the story one layer at a time, using the systems professional storytellers use on purpose. You bring the creativity; it fills in the pieces you're missing. It never writes the story for you.
Most people who want to write a story never finish one. The spark is there — a character who won't leave you alone, a world you can picture but can't map, an ending that gives you chills — but between that spark and a finished draft are the hard parts: structure, the character's hidden wound, the theme you can feel but can't name, the sentences that should land but don't. The usual tools either leave you alone with those gaps, or they write the story for you and hand back something that isn't yours. WriteStory fills the gaps without taking the story away from you.
The work happens across seven narrative layers, and each book you write is a stateful project the system can come back to and keep building.
Every story here is built across seven layers at once:
The layers are the destination. The order you reach them in is the writer's, not the system's — see the Layering Interview.
| Workflow | Trigger | File |
|---|---|---|
| Interview | "interview me", "I have notes/an idea for a story", "help me plan a story", "layer my story" | Workflows/Interview.md |
| BuildBible | "build story bible", "create story plan", "map the story" | Workflows/BuildBible.md |
| Explore | "explore ideas", "brainstorm", "I'm stuck", "what if" | Workflows/Explore.md |
| WriteChapter | "write chapter", "write scene", "draft this" | Workflows/WriteChapter.md |
| Revise | "revise", "edit", "improve", "polish" | Workflows/Revise.md |
The usual path: Interview reads what you have and builds the spine with you → BuildBible turns it into a Story Bible (a project ISA) → WriteChapter drafts off that bible → Revise layers and polishes. Explore is the idea engine you reach for when a layer is genuinely blank.
Each book is a project under LIFEOS/USER/CUSTOMIZATIONS/SKILLS/WriteStory/projects/<book-slug>/:
interview.md — the saved interview results (the spine, the layers, what's confirmed)ISA.md — the Story Bible as a project ISA: the living plan that tracks what's done and what's left, growing across sessionsYou can stop mid-book and come back. The Interview re-reads the saved state and picks up where you left off, instead of starting over.
| Reference | File | Purpose |
|---|---|---|
| Layer Architecture | StoryLayers.md | The seven-layer system |
| Storr Framework | StorrFramework.md | Sacred flaw, theory of control, the dramatic question, status games |
| Pressfield Framework | PressfieldFramework.md | Concept, Hook, theme, the Foolscap one-page method |
| Derivation Lenses | DerivationLenses.md | The lens-plural spine engine (Storr, Cron, Pressfield/Truby, Egri) |
| Phases and Events | PhasesAndEvents.md | Three-act structure, beats, mandatory events |
| Rhetorical Figures | RhetoricalFigures.md | The figures toolbelt (Forsyth) |
| Anti-Cliche System | AntiCliche.md | Freshness enforcement, banned patterns |
| Story Structures | StoryStructures.md | Dramatica, Story Grid, Sanderson, Hero's Journey |
| Aesthetic Profiles | AestheticProfiles.md | Genre and style configuration |
| Critic Profiles | Critics.md | Multi-pass review for prose |
WriteStory augments a creator. It never substitutes for one. This is the rule the whole skill is built on:
Before executing, check for user customizations at:
~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/WriteStory/
If this directory exists, load and apply:
PREFERENCES.md — default genre, aesthetic, voiceprojects/<book-slug>/ — saved interviews and the Story Bible ISA for each book in progressExample 1: A writer who already has a lot
User: "I've got a folder of notes for a novel — a few character sketches,
a rough world, and two draft scenes. Help me build it out."
→ Interview workflow points at the folder and reads ALL of it first
→ Reflects back the story it sees, asks what excites them most
→ Picks a derivation lens that fits what they brought
→ Derives the spine (flaw, dramatic question, theme) as proposals they confirm or redirect
→ Layers outward one dimension at a time, only where they're blank
→ Saves it as a project; hands off to BuildBible
Example 2: Building the full story plan
User: "Build the story bible for my novel"
→ BuildBible workflow turns the interview spine into a project ISA
→ Maps all seven layers start to finish, tracks done-vs-remaining
→ Outputs a living bible that guides every chapter
Example 3: Writing actual prose
User: "Write chapter 3 based on the story bible"
→ WriteChapter reads the bible ISA for chapter 3's beats across all layers
→ Deploys rhetorical figures at key moments, in the writer's aesthetic
→ Produces a fresh, anti-cliche draft the writer owns and revises
DerivationLenses.md).After completing any workflow, append a single JSONL entry:
echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"WriteStory","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl
Replace WORKFLOW_USED with the workflow executed, 8_WORD_SUMMARY with a brief input description, and SECONDS with approximate wall-clock time. Log status: "error" if the workflow failed.