Story Multi-Perspective Review
zenstory-ai/oh-story-claudecode
Reviews Chinese web-novel text with several reviewer agents in parallel, falling back to a single-agent pass, and reports structure, character, prose and setting problems with fixes.
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…
$ npx skills add danjdewhurst/story-skills --skill editorial-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install danjdewhurst/story-skills editorial-review --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/editorial-review .claude/skills/editorial-review && 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 "editorial-review" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/editorial-review into .claude/skills/editorial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "editorial-review", 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/editorial-reviewType 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 editorial-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install danjdewhurst/story-skills editorial-review --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/editorial-review .agents/skills/editorial-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "editorial-review" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/editorial-review into .agents/skills/editorial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "editorial-review", 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 editorial-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install danjdewhurst/story-skills editorial-review --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/editorial-review .cursor/skills/editorial-review && 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 "editorial-review" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/editorial-review into .cursor/skills/editorial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "editorial-review", 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/editorial-review--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 editorial-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install danjdewhurst/story-skills editorial-review --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/editorial-review .gemini/skills/editorial-review && 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 "editorial-review" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/editorial-review into .gemini/skills/editorial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "editorial-review", 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 editorial-reviewInstalls 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 editorial-review -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/editorial-review .github/skills/editorial-review && 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 "editorial-review" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/editorial-review into .github/skills/editorial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "editorial-review", 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 editorial-review -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 editorial-review --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/editorial-review .opencode/skills/editorial-review && 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 "editorial-review" agent skill from https://github.com/danjdewhurst/story-skills/tree/main/skills/editorial-review into .opencode/skills/editorial-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "editorial-review", 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.
editorial-reviewThis 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…
Editorial Review is an agent skill from 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 lyrics", "epigraph permission", "permissions", "quote permission", "fair use", "AI disclosure", "do I need to disclose AI", "send to my editor", "editorial round", "Word file for my editor", "editor review copy", "co-author", "collaborate on a book", "shared world", "back up my book", "does this echo my source"…
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/collaboration.md`, `references/editor-rounds.md` and `references/real-people-and-permissions.md`).
It sits in Writing & Content, covering Copy editing and proofreading and Creative writing and fiction. It works with GitHub. 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.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c46163b. 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:
gitnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Editorial Review loads about 3.6k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 216 tokens; SKILL.md has 1,896 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 noted patterns worth knowing about, such as sudo or a known installer.
ask about any private file it lists (a `.env`, keys, scans). With`.env`, and a package script runs from the checkout's root. If no CLI isAutomated 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 c46163b, republished under its MIT licence (© danjdewhurst). 1,896 words, ~3,580 tokens.
.claude/skills/editorial-review/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Run the workflows that involve people outside the agent: briefing and paying sensitivity and authenticity readers, a real-people and defamation-risk pass, permissions for quoted material, an AI-use disclosure statement, editorial rounds with human editors, and collaboration between co-authors. The skill prepares materials, tracks state in frontmatter, and flags risks. It does not give legal advice, it does not contact anyone, and it never records a permission, review, or disclosure the user has not confirmed.
A story project with story.md in the root and drafted chapters. Git is
needed for snapshot tags, story compare --ref, and the collaboration
workflow; offer git init if the project has none.
feedback-triage; this skill hands notes to it)research; this skill adds the review layer on top)line-editing) or structural revision (use revision-continuity)submission)Find what needs a read: characters, settings, and research notes that
touch lived experience the author lacks. Mark the research notes that
ground them by adding cultural to the note's risk list (add
medical, legal, or others as they apply), or open one:
story add research 'Deaf community in 1980s Glasgow' --accuracy must-be-accurate --method expert-review --risk cultural --used-in chapter-04Prepare the brief with references/sensitivity-reader-brief.md: which
chapters, which characters, specific questions, the author's research
so far, deadline, and fee. Sensitivity reading is paid professional
work; help the user budget and find readers, never suggest asking
community members to work for free.
Build what the reader receives: story build . --format docx for
readers who comment in Word, or story build . --format html for
paragraph-anchored notes.
A reader-panel round's sensitivity persona can point at passages to
put in the brief, but it is not a sensitivity read: never record it in
reviewed-by or treat it as clearing a portrayal.
Record the returned notes as a feedback round (feedback/round-{N}/)
and synthesise them through the feedback-triage skill. When the
reader's notes are incorporated, add them to the research note's
reviewed-by (name or role, with their consent to be named).
story validate . warns when a note with any risk is used in a
final or complete chapter and has no reviewed-by.
For fiction that uses real people, real organisations, or recognisable
portraits, follow references/real-people-and-permissions.md: list every
real or recognisable person, classify each portrayal, and flag the risky
ones in a research note by adding defamation (or legal) to its
risk list. Say
plainly that this is a flagging exercise, not legal advice, and recommend
a publishing lawyer's review before publication whenever a living person
or a real organisation is shown doing something discreditable.
matter/.permission
(not-needed, pending, granted, public-domain), rights-holder,
and credit (the exact credit line the rights-holder requires).references/real-people-and-permissions.md:
song lyrics almost always need permission, fair use is a narrow and
uncertain defence, and public-domain status depends on country and
date. Never set granted or public-domain without the user's
confirmation and, for granted, the rights-holder's name.story validate . warns when a matter page is pending and the story
is complete, and when granted has no rights-holder. Whatever the
status, story export and the builds leave a pending page out (the
review copy too) and warn permission-pending-left-out, unless
--include-pending is given.When the user worries that a passage echoes a source, an earlier book, or another writer too closely, compare the chapters with that text:
story similarity . --against ../sources
story similarity . --against ../book-one --min-words 12--against takes a file, a folder, or a git ref. Each run of shared
words is a warning with both locations and the words.
Report the result honestly:
--against. It says nothing about other books, the web, or
sources nobody gave it, so never tell the user a manuscript is
"original", "clean", or "plagiarism-free" on its strength.line-editing skill at the author's direction. Never paraphrase it
quietly to make the match disappear.ai-disclosure (section 5): the statement
describes how AI was used, and the similarity result neither proves nor
disproves AI use.ai-disclosure in story.md, for
example: Outlining and line-level editing suggestions used an AI assistant; all prose was written and revised by the author. Use only
what the user confirms; never minimise or inflate it.story build . --format metadata includes the statement on the
retailer metadata sheet.Follow references/editor-rounds.md:
sent-to-editor-1). From the
book's folder (the one with story.md), check that .gitignore
lists dist/, show the user git status --untracked-files=all -- .,
and ask about any private file it lists (a .env, keys, scans). With
the user's approval, commit the book's folder only and tag it:
git add -A -- . && git commit -m "…" -- . && git tag sent-to-editor-1.
When the status lists nothing, run only the tag; if the user declines
the commit, or it fails, never tag over the uncommitted tree. Then
build the file the editor wants: story build . --format docx (Word
with Track Changes) or story build . --format shunn for manuscript
format.revision-continuity; editorial letters go through feedback-triage.story compare . --ref sent-to-editor-1.For editors, sensitivity readers, or agents who never open a terminal,
story build . --format html produces one file with a table of contents
and a clickable paragraph label on every paragraph (ch03-p12), so
comments can cite exact places in email, a doc, or an issue. To publish
the copy on GitHub Pages with an issue form for notes, follow the GitHub
review copy setup in step 1 of the feedback-triage workflow, which has
the details. Even without that skill, warn first that a public Pages site
makes the manuscript public unless the repository and Pages are private,
confirm the visibility the user wants, and ask before creating any file
in .github/. Collect the notes that come back into a feedback round
and triage them with feedback-triage. Resolve labels from an older build with
story compare . --ref <round-tag> --anchor '<label>' before acting on
them; see references/editor-rounds.md.
Follow references/collaboration.md for co-authored books and shared
worlds: list every author under authors in story.md, one branch per
author or per chapter, pull requests to main, a CODEOWNERS file for
shared-world canon, and a remote pushed after every session as the
backup. Real-time collaborative editing (two people typing in one file at
once) is out of scope for the markdown model; recommend taking turns per
file through branches instead.
pending or unset.reviewed-by only with their consent;
otherwise record their role (sensitivity reader, Deaf culture).feedback-triage records declined notes with a reason.Use the Story CLI when it is available. If story is not installed, use the
bundled fallback node ../story-maintenance/scripts/story.js with the same
arguments. Use node <checkout>/bin/story.js instead only when the user
names a Story Skills repository checkout or you are working in one. Write
the script as an absolute path (resolve the fallback relative to this skill
folder) and run it from the folder you would run story from, so . and
other relative paths keep their meaning. Use Node, not Bun or a package
script: Bun would load that folder's bunfig.toml (which can run code) and
.env, and a package script runs from the checkout's root. If no CLI is
available, keep the frontmatter fields current by hand, and leave the
research/_index.md and matter/_index.md tables to the next
story reindex .: never edit their rows.
After adding or editing research notes, matter pages, story.md
metadata, or chapters:
story reindex .
story wordcount . --write
story check .references/sensitivity-reader-brief.md - When to hire a sensitivity or authenticity reader, finding and paying them, a brief template, and incorporating notesreferences/real-people-and-permissions.md - Real-people and defamation-risk pass, permissions for epigraphs, lyrics, and quotations, and the matter-file permission fieldsreferences/editor-rounds.md - Sending a manuscript to a human editor, snapshot tags, taking DOCX edits back into markdown, and HTML review copies with paragraph anchorsreferences/collaboration.md - Multi-author projects, git branching per author, CODEOWNERS for shared worlds, and backupsEvery 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 registry tables that story reindex rebuilds (never edit them by hand), 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 4 other files (references) in skills/editorial-review of danjdewhurst/story-skills.
Open the folder on GitHubat commit c46163b
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.
Editorial Review 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 |
|---|---|---|---|---|---|---|
| Editorial Review this skilldanjdewhurst/story-skills | 283 | 1 repos | ~3.6k | Automated safety check: Notes | MIT | |
| Story Multi-Perspective Reviewzenstory-ai/oh-story-claudecode | 7.4k | 3 repos | ~3k | Automated safety check: Pass | MIT | |
| Web Novel AI-Trace Removerzenstory-ai/oh-story-claudecode | 7.4k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| InkOS Story ReviewNarcooo/inkos | 10k | — | ~450 | Automated safety check: Pass | AGPL-3.0 | |
| Web Novel AI-Flavor Removeruu201/character-arc | 581 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Not AIudaysharmadev/Not-Ai | 132 | — | ~4.7k | Automated safety check: Pass | MIT |
zenstory-ai/oh-story-claudecode
Reviews Chinese web-novel text with several reviewer agents in parallel, falling back to a single-agent pass, and reports structure, character, prose and setting problems with fixes.
zenstory-ai/oh-story-claudecode
Rewrites AI-sounding Chinese web novel text so it reads naturally, changing as little as possible and keeping plot, names and numbers intact.
Narcooo/inkos
Reviews chapters or manuscripts against the standard that fits their genre, audience and your own criteria, showing concrete issues and revising only when asked.
uu201/character-arc
Finds and rewrites AI-sounding passages in Chinese web novel text, changing as few words as possible while keeping plot, characters and names intact.
udaysharmadev/Not-Ai
Edit prose into a clear, specific, source-grounded version that preserves the author's meaning and voice.
microsoft/vstest
Create custom agent capabilities when discovering novel tools, receiving task-agnostic tips from reviewers, or after researching specialized workflows not covered in existing instructions.
danjdewhurst/story-skills
This skill should be used when the user asks to "validate", "reindex", "repair registries", "check links", "run the continuity, pacing, clue, voice, or name checks", "count words", "summarize a…
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"…
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", "dead…
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…
Works with
Categories
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…. Editorial Review is an agent skill from danjdewhurst/story-skills.
Editorial Review fits situations like: asks for a sensitivity reader; authenticity reader; cultural review; is this portrayal okay.
Run `npx skills add danjdewhurst/story-skills --skill editorial-review -a claude-code`. Or copy the skill folder (skills/editorial-review in danjdewhurst/story-skills) into .claude/skills/editorial-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add danjdewhurst/story-skills --skill editorial-review -a codex`. Or copy the skill folder (skills/editorial-review in danjdewhurst/story-skills) into .agents/skills/editorial-review 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 editorial-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/editorial-review, .gemini/skills/editorial-review, .github/skills/editorial-review and .opencode/skills/editorial-review in your project.
Going by SKILL.md and its folder, Editorial Review needs the command-line tools its instructions call (git and node).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Editorial Review 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.6k tokens (SKILL.md is roughly 14k 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 4.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Editorial Review: Story Multi-Perspective Review (zenstory-ai/oh-story-claudecode, 7.4k stars), Web Novel AI-Trace Remover (zenstory-ai/oh-story-claudecode, 7.4k stars), InkOS Story Review (Narcooo/inkos, 10k stars) and Web Novel AI-Flavor Remover (uu201/character-arc, 581 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 283 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 8, 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.