From canonify
Author a new "canon" - one canonical-pattern doc (a .md) - for a file, service, or design element, then register it in CANONIFY.md + the category INDEX. The command name teaches the vocabulary: each pattern doc is a "canon." Run when the user types /canonify:create-canon, or says "create a canon for X", "document this file/service", "I need to document X", "write a canon for the Y service", "add a doc for this design element".
How this skill is triggered — by the user, by Claude, or both
Slash command
/canonify:create-canonThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Canonify's **authoring** gate. A **canon** is one canonical-pattern doc (a `.md`); the root manifest
Canonify's authoring gate. A canon is one canonical-pattern doc (a .md); the root manifest
CANONIFY.md indexes every canon by a one-line summary, and the lifecycle gates
(plan / build / commit) route off those summaries. Where they consume the canon, this gate
grows it: point it at a file, service, or design element and it writes a new canon and wires it
into CANONIFY.md so the other gates can immediately route to it.
It codifies the workflow for authoring a canon: read the real code, cite file:line, draft from
evidence, and ask only for what the code can't tell you.
Identify the target. The user points at one of:
*Service wrapper),Place it. Decide the category + destination from CANONIFY.md's blocks and the existing
docs/ folders - the repo defines its own categories. Don't impose a fixed taxonomy; read what
categories already exist (the blocks in CANONIFY.md, the subfolders under docs/) and slot the
canon into the matching one, creating a new category only when none fits. The destination is
docs/<category>/<topic>.md. Infer the obvious case; confirm the destination path in one line.
Index the target (the evidence pass). Read the target in full and gather the proof every claim will cite:
file:line),Ask only the gaps. Draft from the code first, then ask a SHORT set of questions for what the code cannot reveal:
Write the canon following the doc-style template that ships with Canonify
(${CLAUDE_PLUGIN_ROOT}/templates/doc-style.md). The core rules, inlined so this gate is self-contained:
file_path:line_number. If you can't point at it in the
code, don't write it. Never invent a method name, config key, or behavior.- not em-dash, straight quotes, -> not arrow, ... not ellipsis).file:line); config / API surface; recipes (real call sites); gotchas; references.verified: frontmatter marker. Open the canon with a YAML frontmatter line
verified: <git-sha> recording the commit at which the canon was confirmed against the code.
Set it here at authoring time; the Doctor gate reads it to flag drift. One SHA, set by the
gates - never hand-maintained.Register the canon (required). An unregistered canon is invisible to routing, so do both:
docs/<category>/INDEX.md,### docs/<category>/<topic>.md block - to CANONIFY.md under
the right category.
The summary is what the gates match on: name the key types / area so a future task or diff that
touches it matches here.Report. The new canon's path, what was indexed, the INDEX + CANONIFY.md edits, and any gaps
the author still needs to fill (e.g. a gotcha you couldn't verify from code).
CANONIFY.md + the INDEX
leaves it un-routable - the most common and most damaging miss.file:line. If you can't verify it, ask or omit it.## /canonify:create-canon - <target>
Indexed: <files read + greps run>
Destination: docs/<category>/<topic>.md (category: <chosen from CANONIFY.md / existing docs/ folders>)
Questions (gaps only):
1. <question the code can't answer>
2. ...
[after answers -> write the canon, then:]
Created: docs/<category>/<topic>.md (the new canon, <N> lines, every claim cited file:line)
Registered:
- docs/<category>/INDEX.md (+1 summary line)
- CANONIFY.md (+1 block under "<Category>")
Gaps to fill: <anything unverified the author should confirm>
npx claudepluginhub ewebdzine/canonify --plugin canonifyProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.