InkOS Creative Harness
Narcooo/inkos
Drives long-form fiction, scripts, storyboards, interactive films and long-document translation through InkOS, with every change made by a typed action.
This skill should be used when the user asks to "make an audiobook", "narration script", "narrator", "ACX", "Findaway", "pronunciation guide", "how long is the audiobook", "adapt to a screenplay"…
$ npx skills add danjdewhurst/story-skills --skill adaptation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install danjdewhurst/story-skills adaptation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/danjdewhurst/story-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/adaptation .claude/skills/adaptation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "adaptation" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptation into .claude/skills/adaptation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adaptation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add danjdewhurst/story-skills --skill adaptation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install danjdewhurst/story-skills adaptation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danjdewhurst/story-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/adaptation .agents/skills/adaptation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adaptation" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptation into .agents/skills/adaptation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adaptation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danjdewhurst/story-skills --skill adaptation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install danjdewhurst/story-skills adaptation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danjdewhurst/story-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/adaptation .cursor/skills/adaptation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "adaptation" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptation into .cursor/skills/adaptation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adaptation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/danjdewhurst/story-skills.git --path skills/adaptation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add danjdewhurst/story-skills --skill adaptation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install danjdewhurst/story-skills adaptation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danjdewhurst/story-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/adaptation .gemini/skills/adaptation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "adaptation" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptation into .gemini/skills/adaptation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adaptation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install danjdewhurst/story-skills adaptationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add danjdewhurst/story-skills --skill adaptation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/danjdewhurst/story-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/adaptation .github/skills/adaptation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "adaptation" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptation into .github/skills/adaptation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adaptation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danjdewhurst/story-skills --skill adaptation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install danjdewhurst/story-skills adaptation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danjdewhurst/story-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/adaptation .opencode/skills/adaptation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "adaptation" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/adaptation into .opencode/skills/adaptation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adaptation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
adaptationThis skill should be used when the user asks to "make an audiobook", "narration script", "narrator", "ACX", "Findaway", "pronunciation guide", "how long is the audiobook", "adapt to a screenplay"…
Adaptation is an agent skill from danjdewhurst/story-skills. This skill should be used when the user asks to "make an audiobook", "narration script", "narrator", "ACX", "Findaway", "pronunciation guide", "how long is the audiobook", "adapt to a screenplay", "Fountain", "screenplay", "picture book", "spreads", "illustration notes", "art notes", "comic script", "comics script", "graphic novel", "panels", "interactive fiction", "Ink", "Twine", "choose your own adventure", "translate the book", "translation", "foreign edition", "glossary for translators", or wants to turn a…
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/audiobook.md`, `references/comics-script.md` and `references/fountain.md`).
It sits in Media & Creative, covering Creative writing and fiction, Comics and storyboards and Text to speech and voice. The repository describes itself as: Agent Skills for end-to-end story writing in markdown, packaged as Codex and Claude Code plugins. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e1286c8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bunnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Adaptation loads about 3.3k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 1,657 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from danjdewhurst/story-skills at commit e1286c8, republished under its MIT licence (© danjdewhurst). 1,657 words, ~3,316 tokens.
.claude/skills/adaptation/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Turn a story project into another form: an audiobook narration script, a
screenplay in Fountain, a picture-book pagination plan, a comics script, an
interactive-fiction branch map, or an edition in another language. The
story project stays the source of truth. Adaptation files live in
adaptations/ inside the project, except translations, which become their
own project folder with the same ids.
A story project with story.md in the root and chapters drafted far
enough to adapt. Read story.md (title, form, language, status),
the chapter and scene records, and the character, location, and glossary
files the adaptation touches. Adapting a draft that is still changing means
redoing the adaptation; say so if status is not revising or complete.
form: picture-book)publishing); audio and film rights one-sheets live theresubmission)chapter-writing)verse-craft)docs/series.md, Short-story
collections and anthologies.adaptations/..md files in the project root: any root .md
other than story.md, style-sheet.md, and progress.md is reported as
a stray file. Use adaptations/ or a non-.md extension such as
.fountain.publishing skill's contract checklist
and a professional.Follow references/audiobook.md.
Add pronunciation to every character, location, faction, artifact, and
glossary term a narrator could say wrong (pronunciation: SEER-sha).
Respell for the narrator's language, not always English. Ask the
author for any they have not decided.
Build the script:
story build . --format narration --out adaptations/audiobook/narration-script.mdIt opens with the pronunciation guide table, then each chapter with its
estimated finished runtime, scene breaks as [pause], and the total
runtime. The rate comes from the book's language (155 words per
minute in English; the script's first line names it), and the credits
are in that language; time a sample chapter and rescale (see
references/audiobook.md). --out never replaces an existing
file under adaptations/, so delete the old script before a rebuild.
Review the script for what reads badly aloud: long dialogue runs
without tags, visual-only jokes, footnotes, maps, letters and texts,
tables. Record fixes as narrator notes in
adaptations/audiobook/production.md; change the manuscript only with
the author's approval.
Draft the production checklist from the reference: route (ACX, Findaway Voices by Spotify, other), narrator audition script, retail sample, chapter file list, credits, and AI narration disclosure.
Follow references/fountain.md.
Add setting: interior, exterior, or both to each location the
scenes use, and to any scene whose place differs from its location's
(on the harbor wall, not in the harbor office). Ask the author when the
prose does not settle it. Run story validate ..
Build the scene list from scene records (reading order, or
story timeline . for story-time order). Each scene becomes one or
more sluglines from its location, setting, time, and
characters.
Mark each scene keep, merge, cut, or externalize (interior moments that
need an action or line). Save it as
adaptations/screenplay/scene-list.md.
Start the script from the scene records:
story build . --format fountain --out adaptations/screenplay/{story-id}.fountainIt writes a title page, a ## section per chapter, and one scene
heading per scene record with the source scene id, cast, and scene
notes as unprinted [[...]] notes. It carries no prose: the build
cannot adapt, so every line of action and dialogue is yours to write.
A forced heading (.LAMP ROOM - DUSK) means the scene and its location
have no setting; fix the record or the heading. --out never
replaces an existing file under adaptations/, so once the script is
drafted, build to dist/ instead to compare a new skeleton with it.
Apply the scene list's decisions to the skeleton, then draft act by
act and check length at about one page per minute. Keep each scene's
[[Source: ...]] note.
Follow references/picture-book.md.
form: picture-book in story.md, or start a new project with
story init "Title" --form picture-book (target 500 words).adaptations/picture-book/pagination.md:
32 pages, 14 spreads of story, a page-turn beat on each spread.hook for its page-turn beat, and set story.md
to status: revising once all spreads are drafted; see "Spreads And
The CLI Checks" in the reference for the warnings this clears.Follow references/comics-script.md. Break the story into pages
(adaptations/comics/page-plan.md), then write the full script with pages,
panels, captions, balloons, and SFX in
adaptations/comics/{issue-or-part}.md.
Follow references/interactive-fiction.md. Map the linear scenes to nodes,
choose a branching structure with the author, and record the branch map in
adaptations/interactive/branch-map.md.
Once the interactive edition project exists, draft and revise its chapters
with the interactive-fiction skill.
Twine: make the interactive edition its own project (copy the
source project without dist/, as for a translation), one chapter per
passage, with choices frontmatter (text and to) on each chapter
that branches. Check and build it:
story reindex .
story wordcount . --write
story check .
story build . --format twee --out adaptations/interactive/{story-id}.tweeFix every unreachable-chapter warning about a chapter no choice path
reaches.
--out never replaces an existing file under adaptations/, so delete
the old .twee before a rebuild.
Ink: set up the interactive edition project the same way, check it with the same commands, and build it:
story build . --format ink --out adaptations/interactive/{story-id}.inkOpen the .ink file in Inky, or compile it with inklecate. The build
escapes ink syntax in chapter prose, so write ink state (VAR, ~,
{ }) by hand in the built file, and only once the branch structure is
settled: --out never replaces an existing file, and a rebuild after
changing choices means deleting the old .ink and carrying the
hand-written logic into the new one. Ask the author before deleting a
file that has hand-written logic in it.
Follow references/translation.md.
Prepare the term base: add a ## Translations section to each glossary
term, and pronunciation where it helps. Check new translated names
with story names.
Copy the source project to a new folder (without dist/), set
language, remove series, book-number, follows, and precedes
from the copied story.md, and keep every id as the English
kebab-case id.
Write a style sheet for the target language in the new project.
After translation, run the checks in both projects and compare the chapter sets:
story reindex ../book-es
story wordcount ../book-es --write
story check ../book-es
story compare ../book-es --against .adaptations/audiobook/, adaptations/screenplay/,
adaptations/picture-book/, adaptations/comics/,
adaptations/interactive/. The CLI does not validate them and builds
never include them.type
(audiobook-production, scene-list, pagination-plan, page-plan,
branch-map, translation-notes) and updated: YYYY-MM-DD.pronunciation is plain respelling in capitals for the stressed
syllable (SEER-sha, kah-LEE-na), not IPA, unless the narrator asks
for IPA.language, isbn, and metadata. Its story.md has no
series, book-number, follows, or precedes; those are for
different books, and copied values break story links and
story series.Use the Story CLI when it is available. If story is not installed, use bun run story -- from the Story Skills repository checkout or the bundled fallback node ../story-maintenance/scripts/story.js with the same arguments, resolving the path relative to this skill folder. If no CLI is available, write the narration script and scene lists by hand from the chapter and scene files.
After adding pronunciation, setting, or glossary translations, or
setting form or language:
story reindex .
story wordcount . --write
story check .Run the same block after changing chapters in a picture-book, translated,
or interactive project. After adding, retargeting, or removing choices,
run it and rebuild the Twee or ink file.
story move and story remove keep choices targets in step.
references/audiobook.md - Narration script review, pronunciation, runtime, production routes, narrator auditions, audio file checklist, and AI narration disclosurereferences/fountain.md - Scene-list-from-scene-records method, novel-to-screen choices, and Fountain syntaxreferences/picture-book.md - 32-page and 14-spread pagination, page-turn beats, text and illustration interplay, spread brief template, and art notesreferences/comics-script.md - Page and panel script format, pacing per page, balloon limits, and page-turn revealsreferences/interactive-fiction.md - Branch maps from scenes, branching structures, state, chapter choices and the Twee and ink builds, and Ink and Twine syntaxreferences/translation.md - Glossary as term base, per-language style sheets, name decisions, and continuity across language editionsEvery story skill follows the shared conventions in ../story-maintenance/references/conventions.md, resolved relative to this skill folder. Read it before creating, renaming, or linking story files. If that file is missing because this skill was installed without story-maintenance, the essentials are: kebab-case ids and filenames, YAML frontmatter on every story-project file, _index.md files as the authoritative registries, bidirectional links between entities, characters for who is on the page and mentions for who is only referred to, status: deceased plus died-in: chapter-{NN} for deaths, and no project-local generator or build scripts (run only the installed or bundled Story CLI).
© danjdewhurst, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in skills/adaptation of danjdewhurst/story-skills.
Open the folder on GitHubat commit e1286c8
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in danjdewhurst/story-skills, which our catalogue first saw on October 7, 2026.
Adaptation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Adaptation this skilldanjdewhurst/story-skills | 275 | 1 repos | ~3.3k | Automated safety check: Pass | MIT | |
| InkOS Creative HarnessNarcooo/inkos | 10k | 1 repos | ~1.1k | Automated safety check: Pass | AGPL-3.0 | |
| Storyboardgodot-fun/gai | 181 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Storyboard Av Mixgodot-fun/gai | 181 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Vocab Lessonreceptron/mulmocast-cli | 475 | — | ~3.1k | Automated safety check: Notes | None | |
| Storyboard Managerailabs-393/ai-labs-claude-skills | 454 | 1 repos | ~4.6k | Automated safety check: Pass | MIT |
Narcooo/inkos
Drives long-form fiction, scripts, storyboards, interactive films and long-document translation through InkOS, with every change made by a typed action.
godot-fun/gai
Turns user materials into a shot-by-shot storyboard with bilingual narration (Chinese + English VO, both required) and AI video prompts per shot.
godot-fun/gai
Muxes per-shot storyboard video with Chinese and English voice-over by retiming video to match VO duration (setpts), writing Video-Chinese/ and Video-English/ (matched by shot id 01, 02, …).
receptron/mulmocast-cli
Create a vocabulary learning lesson MulmoScript with multi-section structure (word display, examples with voiceover, explanation, review with translation).
ailabs-393/ai-labs-claude-skills
Assist writers with story planning, character development, plot structuring, chapter writing, timeline tracking, and consistency checking.
calesthio/OpenMontage
Translate and dub existing videos into multiple languages using HeyGen.
danjdewhurst/story-skills
This skill should be used when the user asks to validate, reindex, repair registries, check links, run the story CLI's continuity, pacing, clue, voice, or name checks, count words, summarize a story…
danjdewhurst/story-skills
This skill should be used when the user asks to "write a chapter", "next chapter", "chapter outline", "draft chapter", "continue the story", "write a scene", "outline a chapter", or wants to write…
danjdewhurst/story-skills
This skill should be used when the user asks to "create a character", "update a character", "add a character", "build a family tree", "character relationships", "character timeline", "character…
danjdewhurst/story-skills
This skill should be used when the user asks about "pantsing", "discovery write", "write without an outline", "discovery draft", "write into the dark", "story kernel", "reconcile a chapter"…
danjdewhurst/story-skills
This skill should be used when the user asks for a "sensitivity reader", "authenticity reader", "cultural review", "is this portrayal okay", "real people in my novel", "defamation", "can I use song…
danjdewhurst/story-skills
This skill should be used when the user asks to "process beta reader feedback", "alpha reader feedback", "feedback round", "synthesize reader feedback", "reader notes", "beta feedback", "reader…
Categories
This skill should be used when the user asks to "make an audiobook", "narration script", "narrator", "ACX", "Findaway", "pronunciation guide", "how long is the audiobook", "adapt to a screenplay"…. Adaptation is an agent skill from danjdewhurst/story-skills.
Adaptation fits situations like: asks to make an audiobook; narration script; pronunciation guide; how long is the audiobook.
Run `npx skills add danjdewhurst/story-skills --skill adaptation -a claude-code`. Or copy the skill folder (skills/adaptation in danjdewhurst/story-skills) into .claude/skills/adaptation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add danjdewhurst/story-skills --skill adaptation -a codex`. Or copy the skill folder (skills/adaptation in danjdewhurst/story-skills) into .agents/skills/adaptation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add danjdewhurst/story-skills --skill adaptation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adaptation, .gemini/skills/adaptation, .github/skills/adaptation and .opencode/skills/adaptation in your project.
Going by SKILL.md and its folder, Adaptation needs the command-line tools its instructions call (bun and node).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Adaptation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Adaptation: InkOS Creative Harness (Narcooo/inkos, 10k stars), Storyboard (godot-fun/gai, 181 stars), Storyboard Av Mix (godot-fun/gai, 181 stars) and Vocab Lesson (receptron/mulmocast-cli, 475 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
danjdewhurst (a GitHub user) maintains it in danjdewhurst/story-skills, which has 275 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 7, 2026.
Source: danjdewhurst/story-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.