Agent skill

Narrative Continuity Critic

by UfukNode in UfukNode/Noustiny

Grades whether a downstream story beat still holds after an upstream insertion, returning a strict JSON verdict of still_valid, needs_rewrite or must_delete.

MITAuto-check passedWriting & Content

Install Narrative Continuity Critic

skills CLI
$ npx skills add UfukNode/Noustiny --skill narrative-continuity-critic -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install UfukNode/Noustiny narrative-continuity-critic --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hermes-additions/skills/creative/narrative-continuity-critic .claude/skills/narrative-continuity-critic && rm -rf skills-src

Use ~/.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/

Facts

Skill name
narrative-continuity-critic
GitHub stars
181
Token cost
~2.3k tokens
SKILL.md length
986 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Grades whether a downstream story beat still holds after an upstream insertion, returning a strict JSON verdict of still_valid, needs_rewrite or must_delete.

  • Works in 4 steps: Read both beats. What did the insert add… → Spot the delta. Physical state (who… → Grade salvageability. Can a rewrite… → …
  • Checking whether a downstream beat still makes sense after inserting a scene upstream
  • SKILL.md covers When to Use, Scope, Input Shape and Output Contract, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Used during a reharmonize sweep of a story graph, the skill is called once per downstream node with the newly inserted beat and the node under review, plus an optional chain of downstream beats already handled on this pass. That chain counts as established canon that the node must agree with, in addition to the insert.

The answer is a single JSON object with a verdict, a one-sentence reason and a severity score, with no prose or tool calls. Verdicts are meant to be surgical, and when in doubt the node is marked needs_rewrite so a rewriter agent can decide how to salvage it. The skill is read-only: it never rewrites or invents, and rewriting, adjudication, brainstorming and author assistance belong to sibling narrative skills.

When your agent uses it

  • Checking whether a downstream beat still makes sense after inserting a scene upstream
  • Running batch consistency audits across a story's canon after an edit
  • Single-pair contradiction checks between two beats

Example prompts

  • “Check whether this downstream beat still holds after the new insert and return the JSON verdict.”
  • “Run the continuity check on each downstream node, passing the recent chain as canon.”
  • “Is this scene still canon now that the heist happens a day earlier?”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Read both beats. What did the insert add that wasn't there before? What does the downstream node assert?
  2. Spot the delta. Physical state (who holds what, who is alive, where they are), emotional state, knowledge state. If the insert moved the…
  3. Grade salvageability. Can a rewrite preserve the beat's function (the reason it existed in the canon)?
  4. Emit verdict + reason + severity. One sentence, one scale point, one JSON object.

What it can do on your machine

Read from SKILL.md and the folder at commit 09a0c82. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Narrative Continuity Critic loads about 2.3k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 986 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from UfukNode/Noustiny at commit 09a0c82, republished under its MIT licence (© UfukNode). 986 words, ~2,282 tokens.

Download SKILL.mdSave it as .claude/skills/narrative-continuity-critic/SKILL.md (or your agent's skills folder).
name
narrative-continuity-critic
description
Decide whether a downstream narrative beat still makes sense after an upstream insertion. Returns a three-way verdict — still_valid, needs_rewrite, or must_delete — with a one-sentence reason and a severity score. Use when reharmonising a story graph: for each downstream node, call once with the inserted beat and the node under review. Strict JSON output, no prose, no tool calls.
version
1.0.0
author
Noustiny
license
MIT

Narrative Continuity Critic

The contradiction sensor. Given a newly inserted beat and a single downstream beat, decide whether the downstream beat still holds up in the updated story, or whether it now lies about what came before.

This skill fires once per downstream node during a reharmonize sweep. Keep verdicts surgical — if in doubt, mark needs_rewrite and let the rewriter agent decide how to salvage it.

When to Use

Trigger this skill when the director layer is walking the downstream of an insertion and needs a verdict per node. Typical phrasings:

  • "check if this downstream node still makes sense after the insert"
  • "continuity check: does X still hold after Y?"
  • "critic pass on downstream nodes"
  • "is this beat still canon after the new upstream?"

Scope

Best suited for:

  • Reharmonize loops where every downstream node is evaluated against one new upstream insert
  • Batch consistency audits across a canon spine after an edit
  • Single-pair contradiction checks

Look elsewhere first for:

  • Rewriting a node that fails the check → narrative-rewriter
  • Final adjudication of a rewrite vs its original → narrative-judge
  • Generating new branches from a node → narrative-brainstorm
  • Fleshing out an author intent → narrative-writer-assist

This skill is read-only — it never rewrites, never invents. It only grades contradiction.

Input Shape

The user message contains a single JSON object:

FieldTypeRequiredPurpose
insertTitlestringyesTitle of the newly inserted upstream beat
insertBodystringyesBody of the newly inserted upstream beat
nodeTitlestringyesTitle of the downstream node under review
nodeBodystringyesBody of the downstream node under review
recentChainarraynoOrdered snapshot of every downstream beat already visited on this reharmonize pass — each entry is the current live version (rewritten if the judge approved one, original otherwise). Empty for the first downstream node.
How recentChain changes your job

The chain is the current state of the world between the insert and the node you are reviewing. Treat it as established canon that the downstream node MUST agree with — not just with the insert alone.

  • Entry i is what beat i looks like right now, after reharmonize already handled it.
  • If a chain entry contradicts the node under review, that is a valid contradiction even if the original insert does not. Example: the insert says "Aang is captured", the chain's most recent entry (the previously-rewritten downstream beat) says "Aang escaped on Appa"; if the node under review says "Aang sits in the cell", flag it — the chain already said he escaped.
  • When the chain is empty, fall back to judging against insert only.

Output Contract

Return exactly one JSON object, shaped like this. No preamble, no code fence, no commentary.

json
{
  "verdict": "still_valid | needs_rewrite | must_delete",
  "reason": "One concrete sentence naming the contradiction or its absence. ≤160 chars.",
  "severity": 0.0
}
Verdict semantics
  • still_valid — The downstream beat reads cleanly with the insert. No action needed.
  • needs_rewrite — The beat contradicts or ignores the insert, but its narrative function can survive with edits. The rewriter can fix it.
  • must_delete — The insert makes the beat structurally impossible and no edit saves it. Classic cases: dead character speaks, a returned object is already lost, a meeting happens with someone who already left for another continent.
Severity scale

Float in [0.0, 1.0]. Always emit a number, even when verdict is still_valid.

  • 0.0 – 0.2 — negligible. still_valid lives here.
  • 0.2 – 0.5 — cosmetic drift (one line off, one mood shifted). needs_rewrite.
  • 0.5 – 0.8 — structural. Cause/effect chain is broken. needs_rewrite.
  • 0.8 – 1.0 — catastrophic. Deleting is cheaper than rewriting. must_delete.

The first character of your response must be {. The last character must be }.

Show full SKILL.md (417 more words)Show less

Core Principles

Think like a continuity supervisor, not a critic of quality. You are not rating the writing. You are asking: given what just happened upstream, does this downstream scene still make physical, emotional, and causal sense?

Fiction is forgiving. A small mood shift or a slight line adjustment does not break the scene. Only escalate to needs_rewrite when the beat actually misrepresents what the insert established.

Deletions are expensive. must_delete is a last resort. Reach for it only when rewriting would destroy the beat's function anyway. If the beat can be salvaged by any reasonable edit, choose needs_rewrite.

Name the contradiction in the reason. "The hammer is shown going to Captain America, making it impossible for Stormbreaker to return it to Thor" is useful. "Feels off" is not.

Be decisive under tie. If torn between still_valid and needs_rewrite, pick needs_rewrite — the rewriter can choose to make zero changes. If torn between needs_rewrite and must_delete, pick needs_rewrite — deletion is cheaper to escalate to later than a bad rewrite is to roll back.

Workflow

  1. Read both beats. What did the insert add that wasn't there before? What does the downstream node assert?
  2. Spot the delta. Physical state (who holds what, who is alive, where they are), emotional state, knowledge state. If the insert moved the needle and the downstream still reads as though it hadn't, that is the contradiction.
  3. Grade salvageability. Can a rewrite preserve the beat's function (the reason it existed in the canon)?
  4. Emit verdict + reason + severity. One sentence, one scale point, one JSON object.

Anti-patterns

Do not do any of the following — each one breaks the reharmonize loop:

  • Do not emit <tool_call>, <think>, <thinking>, or any XML tags.
  • Do not call any tool. This skill is pure reasoning.
  • Do not explain the JSON in prose before or after.
  • Do not wrap the JSON in a markdown code fence.
  • Do not add fields outside the contract (no confidence, alternatives, notes).
  • Do not emit severity as a string. Always a float.
  • Do not use verdict strings other than the three listed — no "valid", no "rewrite", no "delete" shortenings.
  • Do not propose a rewrite. Your job is to grade, not fix.
  • Do not grade based on literary quality. A mediocre scene that is still consistent returns still_valid.

Examples

Example A — structural contradiction

Input:

json
{
  "insertTitle": "HAMMER PULLBACK TO CAP",
  "insertBody": "Thor drops to one knee; Mjolnir twists free and lands in Captain America's upraised hand.",
  "nodeTitle": "THOR'S HAMMER RETURNS TO HIS GRIP",
  "nodeBody": "Thor raises his palm. Stormbreaker flies back to him, slapping into his grip with a crack of thunder."
}

Correct output:

json
{
  "verdict": "must_delete",
  "reason": "The hammer is now in Captain America's possession, so Stormbreaker cannot return to Thor as this beat depicts.",
  "severity": 0.9
}
Example B — clean fit

Input:

json
{
  "insertTitle": "SHE BURNS THE PHOTOGRAPH",
  "insertBody": "She flicks the lighter. The edge of the photo curls black; her brother's face dissolves.",
  "nodeTitle": "SHE LIES TO HER HUSBAND THAT NIGHT",
  "nodeBody": "When he asks what was in the envelope, she shrugs and says a bill she forgot to pay."
}

Correct output:

json
{
  "verdict": "still_valid",
  "reason": "The lie fits cleanly — she has already destroyed the photo, so concealing the envelope's contents is consistent.",
  "severity": 0.05
}
Example C — salvageable drift

Input:

json
{
  "insertTitle": "SHE CALLS THE NUMBER ON THE BACK",
  "insertBody": "A voice she remembers says her name. She listens for a long time without speaking.",
  "nodeTitle": "SHE TELLS HER HUSBAND NOTHING",
  "nodeBody": "She sits at the table, acting as if the envelope never arrived."
}

Correct output:

json
{
  "verdict": "needs_rewrite",
  "reason": "The call happened, so 'acting as if the envelope never arrived' undersells what she is hiding — the beat survives with a small edit acknowledging the call.",
  "severity": 0.4
}

Three verdicts, three severities, three one-sentence reasons. That is the target pattern for every invocation.

© UfukNode, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in hermes-additions/skills/creative/narrative-continuity-critic of UfukNode/Noustiny.

Open the folder on GitHubat commit 09a0c82

Compare with similar skills

Narrative Continuity Critic 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.

Narrative Continuity Critic compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Narrative Continuity Critic this skillUfukNode/Noustiny181—~2.3kAutomated safety check: PassMIT
Chinese Novel Writing Systemleenbj/novel-creator-skill666—~3.9kAutomated safety check: PassNone
Chinese Novelist Chapter WriterPenglongHuang/chinese-novelist-skill3.3k—~491Automated safety check: WarnMIT
Sun-Style Restrained Narrative WritingKKKKhazix/sun-style-writing403—~1.7kAutomated safety check: PassMIT
Long Story AnalysisNarcooo/inkos10k—~364Automated safety check: PassAGPL-3.0
Short Web Fiction Writeruu201/character-arc577—~3.7kAutomated safety check: PassMIT

Similar skills

  • Chinese Novel Writing System

    leenbj/novel-creator-skill

    Guides long-form Chinese novel writing from a rough idea through outlines, chapter drafts and quality gates, with file-based memory for a story meant to reach 300万字.

    666 GitHub stars~3.9k tokensUpdated 7 mo ago
    Writing & ContentAuto-check passed
  • Chinese Novelist Chapter Writer

    PenglongHuang/chinese-novelist-skill

    Writes long Chinese novels chapter by chapter through guided questions, outlining, drafting with cliffhangers and automatic validation, with resumable projects.

    3.3k GitHub stars~491 tokensUpdated yesterday
    Writing & ContentAuto-check: warnings
  • Sun-Style Restrained Narrative Writing

    KKKKhazix/sun-style-writing

    Writes Chinese first-person nonfiction in a restrained plain-description style: short sentences, exact numbers, objects that carry feeling and silence at the peak.

    403 GitHub stars~1.7k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Long Story Analysis

    Narcooo/inkos

    Breaks down a full novel or long sample into story mechanisms and style traits the agent can reuse as craft, without copying names or wording.

    10k GitHub stars~364 tokensUpdated 10 days ago
    Writing & ContentAuto-check passed
  • Short Web Fiction Writer

    uu201/character-arc

    Walks an agent through writing a complete short web novel in Chinese, starting from the emotion the reader should feel and building around one twist.

    577 GitHub stars~3.7k tokensUpdated 4 days ago
    Writing & ContentAuto-check passed
  • Short Web Novel Deconstruction

    zenstory-ai/oh-story-claudecode

    Breaks down a popular Chinese short story into story core, structure, emotional line, twists and techniques, and saves the analysis as files for a follow-up writing skill.

    7.3k GitHub starsUsed in 1 repo~2k tokens
    Writing & ContentAuto-check passed

More from UfukNode/Noustiny

All 13 skills in this repo
  • Narrative Writer

    UfukNode/Noustiny

    Turns an ordered list of canon story beats into one continuous piece of present-tense prose with tonal continuity and motif carry-through, never JSON or tool calls.

    181 GitHub stars~1.9k tokensUpdated 5 mo ago
    Auto-check passed
  • Expands a one-line author intent into a full story beat that fits between two known nodes of a canon path, returned as strict JSON.

    181 GitHub stars~3.1k tokensUpdated 5 mo ago
    Auto-check passed
  • Story Scene Composer

    UfukNode/Noustiny

    Groups every node of an existing branching story tree into scenes, titles each scene, assigns an act and a one-word motif, and returns the result as JSON.

    181 GitHub stars~2.3k tokensUpdated 5 mo ago
    Auto-check passed
  • Story Copyright Detector

    UfukNode/Noustiny

    Classifies a story seed as known, inspired or original IP and returns strict JSON naming the franchise and the image model to use.

    181 GitHub stars~1.7k tokensUpdated 5 mo ago
    Auto-check passed
  • Chooses the pace, color palette, transition and length of the opening montage for a Noustiny audiobook storybook when the user leaves those settings open.

    181 GitHub stars~3.2k tokensUpdated 5 mo ago
    Auto-check passed
  • Character Sheet Builder

    UfukNode/Noustiny

    Produce a cast sheet of 1–4 named characters from a story seed.

    181 GitHub stars~2.1k tokensUpdated 5 mo ago
    Auto-check passed

Questions about Narrative Continuity Critic

What does Narrative Continuity Critic do?

Grades whether a downstream story beat still holds after an upstream insertion, returning a strict JSON verdict of still_valid, needs_rewrite or must_delete. Used during a reharmonize sweep of a story graph, the skill is called once per downstream node with the newly inserted beat and the node under review, plus an optional chain of downstream beats already handled on this pass. That chain counts as established canon that the node must agree with, in addition to the insert.

When should I use Narrative Continuity Critic?

Narrative Continuity Critic fits situations like: checking whether a downstream beat still makes sense after inserting a scene upstream; running batch consistency audits across a story's canon after an edit; single-pair contradiction checks between two beats.

How do I install Narrative Continuity Critic in Claude Code?

Run `npx skills add UfukNode/Noustiny --skill narrative-continuity-critic -a claude-code`. Or copy the skill folder (hermes-additions/skills/creative/narrative-continuity-critic in UfukNode/Noustiny) into .claude/skills/narrative-continuity-critic in your project. Claude Code loads it when a task matches its description.

How do I install Narrative Continuity Critic in Codex?

Run `npx skills add UfukNode/Noustiny --skill narrative-continuity-critic -a codex`. Or copy the skill folder (hermes-additions/skills/creative/narrative-continuity-critic in UfukNode/Noustiny) into .agents/skills/narrative-continuity-critic in your project. Codex loads it when a task matches its description.

Can I use Narrative Continuity Critic in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UfukNode/Noustiny --skill narrative-continuity-critic -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/narrative-continuity-critic, .gemini/skills/narrative-continuity-critic, .github/skills/narrative-continuity-critic and .opencode/skills/narrative-continuity-critic in your project.

What does Narrative Continuity Critic need to run?

SKILL.md names no scripts, command-line tools or credentials: Narrative Continuity Critic is instructions for the agent only.

Does Narrative Continuity Critic access the network?

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.

Is Narrative Continuity Critic safe to install?

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.

What licence does Narrative Continuity Critic use?

Narrative Continuity Critic is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Narrative Continuity Critic use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Narrative Continuity Critic?

Skills that share tags, products or a category with Narrative Continuity Critic: Chinese Novel Writing System (leenbj/novel-creator-skill, 666 stars), Chinese Novelist Chapter Writer (PenglongHuang/chinese-novelist-skill, 3.3k stars), Sun-Style Restrained Narrative Writing (KKKKhazix/sun-style-writing, 403 stars) and Long Story Analysis (Narcooo/inkos, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Narrative Continuity Critic?

UfukNode (a GitHub user) maintains it in UfukNode/Noustiny, which has 181 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on May 4, 2026.

Source: UfukNode/Noustiny on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.