Skip to content
Content
Skill

/canon-check

Read-only story-bible auditor for fiction series with a documented canon. Cross-references character / artifact / location mentions in chapters against the bible and flags drift. Produces a drift report — never edits files. Use before opening or committing a chapter, or when

From plugin
skills
2645 skills2 commands1 hook

Claude Code

$ npx -y skills add Mikefluff/skills --skill canon-check --agent claude-code

SKILL.md

canon-check.SKILL.md
name: canon-check
description: "Read-only story-bible auditor for fiction series with a documented canon. Cross-references character / artifact / location mentions in chapters against the bible and flags drift. Produces a drift report — never edits files. Use before opening or committing a chapter, or when reintroducing an established entity."
license: MIT
allowed-tools:
  - Read
  - Bash
  - Grep
  - Glob

<objective> Read-only story-bible auditor for any book series that maintains a written canon. Before any insertion, rewrite, or commit — cross-references mentions of characters / artifacts / locations in the current text against the project's recorded canon. Flags drift. Does not edit the chapter or the bible.

**Why this skill exists.** The same canon-break patterns recur across long-form fiction projects: a character's documented physical invariant gets accidentally inverted in a later chapter; an artifact moves room without explanation; a recurring character appears under a generic descriptor when an established proper name already exists; a count or age stated in the bible doesn't match what the text actually shows. Each break is cheap to catch at lint time and expensive to catch in print.

Use cases:

  • before opening a new chapter — confirm the names / artifacts / locations you're about to establish don't duplicate something already established;
  • before `git commit` — staged diff vs canon;
  • when mentioning a known character in a new scene — gather all their prior appearances + their bible entry;
  • read-only audit of the bible itself (what gets mentioned in the text but never canonized).

**What the skill needs to know about your project:**

  • where your chapter files live (any of `.md` / `.tex` / `.txt` / `.rst`)
  • where your story bible lives (typically a single document per book — `<book>/notes/story-bible.{md,tex,txt}` or similar)
  • which books are in the same series (so the skill can cross-reference inherited canon)

If the project follows the conventional layout (`<book>/{lang}/chapters/*` for chapters, `<book>/notes/story-bible.*` for the bible), the default routing works out of the box. Otherwise, override the routing patterns in [references/routing.md](references/routing.md). </objective>

<instructions>

ROLE

Story-bible auditor. **NOT a continuity editor.** The skill only signals discrepancies between:

  • (a) the current draft,
  • (b) the story bible,
  • (c) other published chapters of the same book.

The user decides. The skill does not edit the chapter or the bible.

CORE PRINCIPLE — TRUST THE TEXT, NOT MEMORY

When a contradiction appears between "what the current chapter says", "what the bible says", and "what the model 'remembers'" — the resolution priority is:

1. **Published chapters of the same book** = ground truth. Anything recorded in `<book>/<lang>/chapters/*` is canon, even if the bible is silent. 2. **The story bible** = next canon tier. If a chapter and the bible disagree — this is material for the user to decide, not for auto-fix. 3. **Model memory / claims about prior text** = LEAST trusted source. If you "remember" otherwise, you are wrong. Grep and re-read.

Never cite prior text from memory. Always `grep` + `Read` before stating "in chapter X it was Y".

ROUTING

The skill picks the bible to apply based on file path. Full table — in [references/routing.md](references/routing.md). Briefly (illustrative defaults; adapt to your project):

<book>/{ru,en,pt-br,...}/chapters/*.{md,tex,txt,rst}  → <book>/notes/story-bible.{md,tex,txt}
sequel-book/<lang>/chapters/*                         → sequel-book/notes/story-bible.* + parent-book/notes/story-bible.*
                                                       (for inherited-canon sections)
any other path                                        → SKIP silently

MODES

`chapter <book> <chN>` — full canon scan of a chapter

# Example:
canon-check chapter your-book ch07
# → scans <book>/<lang>/chapters/ch07.{md,tex,...}
#   (plus other-language siblings if present — but the bible is one)

Full pass over the file: extract entities → cross-reference the bible → collect other appearances.

`staged` — staged diff

git diff --cached --name-only
# for each known-book chapter file — pass over added/changed lines

`entity <book> <name>` — all appearances of an entity

canon-check entity your-book "Character A"
# → bible entry + list of every file and line where it appears

Useful before writing a new scene with an already-established character.

`audit-bible <book>` — structural bible audit

Find entities mentioned in `chapters/*` ≥ N times but with no bible entry (WARNING — "silent canon"). Does not edit the bible — just lists.

PIPELINE (short version; full version — in [references/workflow.md](references/workflow.md))

**Step 1. Extract entities from the text under review.**

  • **Characters:** capitalized words (any script) + cross-reference with the established-name list from the bible (`Characters` / `Main characters` / `Supporting characters` sections).
  • **Artifacts:** dictionary built from the bible's `Physical invariants` / `Artifacts` sections. Each book maintains its own dictionary.
  • **Locations:** toponyms from the bible's `Locations` / `Locations of weight` section.

**Step 2. For each entity — gather context.**

# bible entry:
grep -n -A 5 "<entity>" <book>/notes/story-bible.*

# other appearances in chapters:
grep -rn "<entity>" <book>/<lang>/chapters/

Read everything. Don't quote from memory.

**Step 3. Compare with the current text.**

Look for contradictions:

  • attribute (age, profession, location, colour) diverges from the bible or from another chapter
  • gesture / physical invariant (handedness, lag, count) altered
  • anchor quote paraphrased
  • artifact changed location / owner / grammatical gender
  • character appears without a name, even though the bible already locks them under a proper name

**Step 4. If a

Read more
@mikefluff
Ships withskills

45 skills for Claude Code that make content — and refuse to let it read like a machine made it. Prose editing that strips the tells. Prompt engineering for 40+ image, video and music models, with optional one-command execution against the real APIs.

Stars on GitHub

Momentum

stars in total
26
Star history of Mikefluff/skills on GitHub, a chart by star-history.com

Other skills on skills.

audio-mix-maker

audio-mix-maker

Mix music/audio onto an existing video via ffmpeg. Modes: replace, overlay, duck (sidechain compressor lowers music under…

@mikefluff@mikefluffInstall Skill
avatar-maker

avatar-maker

Turn a user photo into N profile-pic / headshot / avatar variants in a consistent style. Identity-preserve focused, defaults to…

@mikefluff@mikefluffInstall Skill
banner-maker

banner-maker

Banner-ad / display-creative generator with standard-size presets: Google Display (leaderboard, medium rectangle, mobile,…

@mikefluff@mikefluffInstall Skill
bg-remover

bg-remover

Background removal utility — image in, transparent PNG out. Wraps Replicate-hosted models (851-labs/background-remover default;…

@mikefluff@mikefluffInstall Skill
carousel-builder

carousel-builder

Turn a topic or research brief into an N-slide Instagram / LinkedIn / TikTok carousel with consistent visual style and…

@mikefluff@mikefluffInstall Skill
cold-email

cold-email

Write or rewrite cold outreach emails to founders, VCs, recruiters, journalists, partners. 5-block structure…

@mikefluff@mikefluffInstall Skill

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about canon-check.

Which coding agents can use canon-check?
canon-check installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.