From grimoire
Use this skill when the user wants to create a grimoire in one command, says "grimoire about X", "build a knowledge base about X", or provides a quoted topic like '/grimoire "reinforcement learning"'. Chains init → scout → ingest → compile → present into a single flow with exactly two taste checkpoints: source curation and final review. Use /grimoire:init, /grimoire:scout, etc. for individual stages.
How this skill is triggered — by the user, by Claude, or both
Slash command
/grimoire:runThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build a complete grimoire from a single sentence. One command, two taste
Build a complete grimoire from a single sentence. One command, two taste checkpoints, smart defaults for everything else.
/grimoire "topic") — first-time users, repeat users who want speed,
anyone who says "build a knowledge base about X" without specifying a stage./grimoire:init, /grimoire:scout, etc.) — power users who
want granular control, users who explicitly name a stage, incremental operations
on an existing grimoire.| Flag | What it does | Default |
|---|---|---|
--guided | Run the full 7-question init questionnaire (Step 1 becomes interactive) | off |
--review-angles | Add scout angle approval checkpoint before searching | off |
--sequential | Process sources one-at-a-time with per-source takeaway approval | off |
--from <path> | Inherit palette, typography, audience, and taxonomy style from an existing grimoire | none |
--no-present | Skip the present step (useful for MCP-only grimoires) | off |
--palette <name> | Override default palette (midnight-teal, noir-cinematic, cold-steel, warm-concrete, electric-dusk, smoke-light, obsidian-chalk, linear-editorial) | linear-editorial |
Detect these from the user's input. Examples:
--guided--from ../rlhf-wiki--palette midnight-teal--sequentialExtract the topic from the user's input. The quoted or natural-language topic IS
the topic — do not ask a questionnaire unless --guided is set.
--guided)Infer all SCHEMA.md fields from the topic:
| Field | How to derive |
|---|---|
| Topic | The user's input, cleaned (trimmed, surrounding quotes stripped) |
| Scope IN | "All aspects of {topic}" |
| Scope OUT | "Topics unrelated to {topic}" |
| Audience | Infer from keywords: "engineer"/"developer"/"architect"/"senior"/"advanced" → engineers/developers (advanced); "beginner"/"intro"/"101"/"getting started" → learners (beginner); default → practitioners (intermediate) |
| Taxonomy | Always "emergent" |
| Palette | linear-editorial unless --palette specified |
| CLAUDE.md | Detect if one exists in cwd; integrate at the end if so |
If --from <path> is set, load the existing grimoire's _config/design.md and
SCHEMA.md to inherit palette, typography, density, motion, audience, and
taxonomy style. The topic and scope still come from the user's input.
Workspace location: Default to ./{topic-slug}/ in the current directory.
Do not ask — scaffold silently. If the directory already exists and contains
SCHEMA.md, warn and ask to confirm overwrite.
Scaffold the workspace using the same templates as /grimoire:init:
SCHEMA.md from ${CLAUDE_PLUGIN_ROOT}/skills/init/assets/templates/schema-template.md_config/design.md from ${CLAUDE_PLUGIN_ROOT}/skills/init/assets/templates/design-config.mdwiki/index.md from ${CLAUDE_PLUGIN_ROOT}/skills/init/assets/templates/index-template.mdwiki/overview.md — stubwiki/log.md — empty changelograw/ — empty directoryPrint a one-line confirmation:
Workspace scaffolded at {path} for "{topic}" (audience: {audience}, palette: {palette})
--guided)Delegate to /grimoire:init — run the full 7-question questionnaire. After init
completes, continue to Step 2 with the scaffolded workspace.
Read SCHEMA.md from the workspace. Derive 4-8 search angles from the topic and
scope, covering the 6 source categories (official docs, community tutorials, video,
social media, GitHub repos, academic/research).
--review-angles)Execute searches immediately without presenting angles for approval. Run WebSearch
for each angle. Collect, deduplicate (normalize trailing slashes, www prefix), and
score every source using the 6-signal confidence rubric at
${CLAUDE_PLUGIN_ROOT}/skills/scout/references/confidence-scoring.md.
Score all sources, assign P0/P1/P2 tiers, identify coverage gaps.
Print a progress line:
Scouted {N} sources across {M} search angles. Scoring...
--review-angles)Present the planned angles before searching, as described in
skills/scout/SKILL.md Step 2. Wait for approval before executing searches.
This is a taste checkpoint. Always pause here.
Present the scout report organized by tier:
Scout Report: {topic}
Sources found: {N} | After dedup: {M}
P0 — Must Ingest ({n} sources)
1. {title} [{score}/30]
{url}
Auth:{a} Cred:{c} Uniq:{u} Depth:{d} Rec:{r} Eng:{e}
{rationale}
...
P1 — Should Ingest ({n} sources)
...
P2 — Nice to Have ({n} sources)
...
Gaps Identified:
- {topic area} — {what coverage is thin or missing}
Use AskUserQuestion:
Ready to approve? Options:
A) Approve all and proceed to ingest
B) Approve with exclusions (tell me which to remove)
C) Move sources between tiers
D) Add known URLs I didn't find
E) Search additional angles (I'll search and re-present)
F) Reject and start over with new angles
Handle each response as described in skills/scout/SKILL.md Step 5.
Only proceed when the user explicitly approves the final source list.
Write the three scout output files (scout-report.md, approved-sources.md,
scout-notes.md) and update wiki/log.md.
Process ALL approved sources at once. This is the key difference from
/grimoire:ingest: no per-source "Process next?" prompts, no per-source
takeaway approval.
--sequential)For each approved source in priority order (P0 first):
approved-sources.md to ingestedAfter ALL sources are processed, print a single summary:
Ingested {N} sources in batch.
Created: {slug1}, {slug2}, {slug3}
Updated: {slug4}
Backlinks added: {N}
Failed: {slug5} (reason)
Raw files: raw/{topic-slug}/
Update wiki/index.md, wiki/overview.md, and wiki/log.md once at the end
(not per-source).
If a source fails to fetch, mark it as failed in approved-sources.md, note
the failure, and continue with the remaining sources. Do not stop the pipeline.
--sequential)Delegate to /grimoire:ingest behavior — process one source at a time with
per-source takeaway approval. Ask "Process the next source?" between each.
Run the compile script:
node ${CLAUDE_PLUGIN_ROOT}/dist/compile.js {workspace-path}
Read the audit results. Apply deterministic fixes (broken links, backlinks,
stale index entries, orphan articles) as described in skills/compile/SKILL.md
Steps 3-4.
Update wiki/overview.md (Step 5 of compile).
Skip the taxonomy proposal (compile Step 5.5) — in the orchestrated flow,
emergent taxonomy is always used and taxonomy proposals are deferred to a
later /grimoire:compile run when the user is ready for that decision.
Print a progress line:
Compiled. {N} fixes applied, {M} coverage gaps identified.
Skip this step entirely if --no-present is set.
Run the present script:
node ${CLAUDE_PLUGIN_ROOT}/dist/present.js {workspace-path}
Print:
Site generated at {workspace}/site/
This is a taste checkpoint. Always pause here.
Tell the user how to preview the site:
Your grimoire is ready for review.
open {workspace}/site/index.html
Modes: read | graph | search | feed | gaps | quiz
Design: {palette} palette, {typography} typography
Approve, or tell me what to change.
Wait for user response. Handle feedback:
Print completion summary and suggest next steps:
Grimoire complete: "{topic}"
Workspace: {path}
Articles: {N}
Sources: {N} ingested
Palette: {palette}
Next steps:
- Run /grimoire:serve to expose via MCP server
- Add more sources later: /grimoire "add sources about {subtopic}"
- Iterate: /grimoire:scout, /grimoire:ingest, /grimoire:compile
If a CLAUDE.md was detected in cwd during Step 1, ask: "Add a grimoire reference
to your project's CLAUDE.md?" If yes, append the integration snippet as described
in skills/init/SKILL.md Step 6.
Parse the feedback and act on it:
Design changes — "switch to midnight-teal", "use cold-steel palette", "make it more spacious", "use technical typography", "darker":
${CLAUDE_PLUGIN_ROOT}/skills/run/references/design-shortcuts.md for phrase mapping_config/design.md with the mapped changesnode ${CLAUDE_PLUGIN_ROOT}/dist/present.js {workspace-path}Content changes — "that article about X seems weak", "merge articles A and B", "the overview doesn't mention Y":
node ${CLAUDE_PLUGIN_ROOT}/dist/compile.js {workspace-path}node ${CLAUDE_PLUGIN_ROOT}/dist/present.js {workspace-path}Scope changes — "actually the audience should be beginners", "add X to the scope":
SCHEMA.md with the changeIf the user runs /grimoire "add sources about X" or /grimoire "expand coverage of Y" and a SCHEMA.md already exists in the working directory or a child
directory, treat this as an incremental run:
approved-sources.mdingestedPrint an incremental mode indicator at the start:
Existing grimoire detected at {path}. Running in incremental mode for "{subtopic}".
${CLAUDE_PLUGIN_ROOT} for all internal paths--sequential,
"use the noir palette" = --palette noir-cinematic)npx claudepluginhub vedantggwp/athanor --plugin grimoireFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.