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
mikefluff-skills
1944 skills2 commands1 hook
Install
$ npx -y skills add Mikefluff/skills --skill canon-check --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/canon-check

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

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
Ships withmikefluff-skills

44 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.

Get the whole plugin
Stats
19
Stars
1
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
3mo ago
Created

Repo: Mikefluff/skills

Other skills on mikefluff-skills.