explain
Skill5 starsChanged 6 months agoMITView on GitHub
Explain scriptorium itself, a named skill, or a named MANUSCRIPT_STATE field. With no argument, gives a whole-system overview (what scriptorium is, what each skill does, how the shared state ties them together). With an argument, drills into that skill or field — what it does, what it consumes, what it produces, and the grounding notes behind its design. Reads SKILL.md frontmatter and the referenced grounding files; no manuscript content is consumed. Use when the user wants to understand scriptorium before invoking it, or when a leaf skill has prompted them with "want a tour of <skill> before you run it?
122 other projects use a version of this.
Adopted by
Most recently taken up by
- NazmusSayad/skillstheir own version, first seen Nov 8, 2026
- sergeiwallace/skillstheir own version, first seen Nov 8, 2026
- paulocsb/worldcup-fifa-pooltheir own version, first seen Nov 8, 2026
- whyashthakker/estacktheir own version, first seen Nov 8, 2026
- ShahriarBijoy/show-me-howtheir own version, first seen Nov 8, 2026
- nearmap/shipyardtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use debug-fix, root-cause and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
zebbernSkilldebug-fix
Find and fix a bug or issue — from any source (GitHub issue, error message, user report, or observed behavior)
Also in 3 projects that use this
Ingramradical235Skillroot-cause
Structured root cause analysis using WHERE (MECE decomposition) then WHY (causal structure diagrams) pipeline. Includes coin-flip detection, logical-leap detection, and vicious cycle intervention. Use when buffer enters YELLOW/RED, when metrics stall, or when Actions execute but don't produce results.
Also in 5 projects that use this
ralphkraussSkillresolve-conflicts
Resolve git merge conflicts or re-apply changes from a stale branch onto current main. Use when user says "resolve conflicts", "merge conflicts", "rebase branch", "branch is behind", "re-apply changes", "port branch", or a branch is too far behind main to merge cleanly.
Also in 4 projects that use this
neurofooSkillsocratic
Socratic questioning to examine beliefs, uncover assumptions, and develop deeper understanding. Use to challenge thinking, evaluate proposals, or teach without lecturing.
Also in 4 projects that use this
anombyte93Skilldiscover
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery. Delegates to superpowers:brainstorming in Interactive Mode (one adaptive question at a time), or self-brainstorms in Autonomous Mode when no user is present. Intercepts before the brainstorming chain hands off to writing-plans — this skill owns the exit. Extracts constraints, calibrates scale (Solo / Team / Enterprise), and advances the pipeline to GENERATE.
Also in 6 projects that use this
mitsuhikoSkillsummarize
Fetch a URL or convert a local file (PDF/DOCX/HTML/etc.) into Markdown using `uvx markitdown`, optionally it can summarize
Also in 8 projects that use this
Other versions122 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 122
- Z3Prover/z3★ 13ksame name
- crbnos/carbon★ 2.8ksame name
- poshan0126/dotclaude★ 871same name
- VinkyDev/vibestart★ 289same name
- hsantanna88/clo-author★ 262same name
- hugosantanna/clo-author★ 262same name
- entireio/skills★ 239same name
- sammcj/agentic-coding★ 169same name
- SerhiiKorniienko/bullshit-detector★ 151same name
- kv0906/pm-kit★ 138same name
112 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- argumentative-flowSkill
- author-contribution-auditSkill
- citation-auditSkill
- compressionSkill
- desk-rejection-riskSkill
- figure-text-alignmentSkill
- gap-finderSkill
- initSkill
- outlier-sentence-detectorSkill
- reporting-guideline-complianceSkill
- reporting-guideline-fitSkill
- reviewer-simulationSkill
- terminology-normalizationSkill
- tourSkill
- venue-fitSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 5 are distinctive, and 13 are very specific to this project.
0
Common
Most of the 109 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 35
Do not invoke explain as a side-effect of running another skill, and do not chain into a follow-up skill after explaining.
- Distinctive: line 41
Look at the argument string the user passed:
- Distinctive: line 56
If the argument is ambiguous (matches both a skill and a field, or no candidate found), ask the user to disambiguate.
- Very specific: line 61
Every path this skill reads (.claude-plugin/plugin.json, schemas/..., skills/<name>/SKILL.md, knowledge/...) is relative to the scriptorium …
- Distinctive: line 94
Read in this order, then synthesize a single markdown response:
- Very specific: line 113
Read skills/<name>/SKILL.md.
- Very specific: line 116
Read each file in the SKILL's grounding: list.
- Very specific: line 119
Read schemas/manuscript-state.schema.json to identify which state fields the skill consumes (cross-reference any field names mentioned in …
- Very specific: line 127
Read schemas/manuscript-state.schema.json and locate the field (top-level or nested).
- Very specific: line 130
Read each skills/*/SKILL.md and grep for the field name.
- Very specific: line 132
If the field has a corresponding knowledge note (e.g.
- Very specific: line 141
Read the note. Extract the synthesis paragraph and the Implementation priority for scriptorium section if present.
- Very specific: line 143
Read each skills/*/SKILL.md and check which skills cite the note in their grounding.
- Very specific: line 155
Honor
meta.guidance_level: if MANUSCRIPT_STATE.yaml is in the current directory. - Distinctive: line 162
Use exactly these section structures so the explanations are predictable and skimmable.
- Very specific: line 345
No fabricated grounding: If a knowledge note doesn't exist, don't invent it.
- Very specific: line 355
Read or summarise manuscript content.
- Very specific: line 357
Run leaf skills (init, citation-audit, etc.) at the end of an explanation.
“Common” is measured: kept by at least 6 in 10 of the 109 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
explain: synthesize a tour of scriptorium
You are running scriptorium's explain skill. Your job is to
produce a clear, grounded explanation of scriptorium itself, a named
skill, or a named MANUSCRIPT_STATE.yaml field — by reading the
plugin's own files (SKILL.md, knowledge/*.md,
schemas/manuscript-state.schema.json) and synthesizing.
You consume no manuscript content. This skill is read-only relative to the user's project.
Invocation discipline
Invoke this skill when:
- The user types
/scriptorium:explain(whole-system overview). - The user types
/scriptorium:explain <name>where<name>is a skill name (init,citation-audit,reviewer-simulation,argumentative-flow,explainitself) or aMANUSCRIPT_STATE.yamlfield (e.g.core_claims,known_weaknesses,meta.guidance_level). - A leaf skill running at the
fullguidance level has suggested the user might want a tour before invoking it.
Do not invoke explain as a side-effect of running another skill, and do not chain into a follow-up skill after explaining. Explanation is a discrete action; the user invokes what they want next.
What "input" means
Look at the argument string the user passed:
- No argument → whole-system overview.
- Skill name — matches a directory under
skills/<name>/that contains aSKILL.md. Recognised names in v0.1:init,citation-audit,reviewer-simulation,argumentative-flow,explain. - Schema field name — appears in
schemas/manuscript-state.schema.jsonas a property key (top-level or nested, dotted: e.g.meta.guidance_level,terminology.forbidden). - Knowledge note slug or
[[wiki-link]]name — matches a file underknowledge/(resolve a[[slug]]by basename match across the tree).
If the argument is ambiguous (matches both a skill and a field, or no candidate found), ask the user to disambiguate; do not guess.
Locating scriptorium files
Every path this skill reads (.claude-plugin/plugin.json,
schemas/..., skills/<name>/SKILL.md, knowledge/...) is
relative to the scriptorium root. Resolve each one in this order and
use the first that exists:
- The scriptorium install — two levels above this skill's
directory (
skills/explain/../..), but only if.claude-plugin/plugin.jsonexists there. A Claude Code plugin install and a repo checkout have the whole tree. Annpx skillsinstall sits in an agent directory such as.claude/skills/or.agents/skills/; thatskills/holds the user's skills, not scriptorium's, so skip this step. - The bundled copy —
assets/<path>inside this skill's directory. A standalonenpx skills addinstall carries.claude-plugin/plugin.json,schemas/manuscript-state.schema.json,knowledge/README.md,knowledge/conventions/guidance-level.md,knowledge/conventions/declared-work-scope.mdandknowledge/conventions/author-authority.md. - GitHub
main— for otherknowledge/notes and other skills'SKILL.md, fetchhttps://raw.githubusercontent.com/seandavi/scriptorium/main/<path>. Without a scriptorium install, take the list of skill names from the "What ships today" list inREADME.mdfetched the same way.
Say which source you used: in the Sources section, mark each file
not read from the scriptorium install with (bundled copy) or
(GitHub main). If a file is in none of the three (for example, no
network), say so; do not reconstruct it from memory.
Operational protocol
A. Whole-system overview (no argument)
Read in this order, then synthesize a single markdown response:
- The plugin manifest at
.claude-plugin/plugin.jsonfor the project's tagline and version. schemas/manuscript-state.schema.jsonfor the canonical state fields, their descriptions, and which are required.- Each
skills/<name>/SKILL.mdfrontmatter (name,description,grounding) for the per-skill summary. knowledge/conventions/guidance-level.mdfor the framing-vs-execute convention every skill respects.knowledge/conventions/declared-work-scope.mdandknowledge/conventions/author-authority.mdfor the scope default and how the author overrides it.
Produce the output described in Output format → A. System overview below. Aim for one screenful, not a manual.
B. Explain a named skill
- Read
skills/<name>/SKILL.md. Extract thedescription, operational protocol, output format, "what this skill does NOT do" / "what you must not do" sections. - Read each file in the SKILL's
grounding:list. For each, write one sentence connecting the grounding note to a specific design choice in the skill. - Read
schemas/manuscript-state.schema.jsonto identify which state fields the skill consumes (cross-reference any field names mentioned inSKILL.md). - Produce the output described in Output format → B. Skill explanation below.
C. Explain a state field
- Read
schemas/manuscript-state.schema.jsonand locate the field (top-level or nested). Extract its type, enum (if any), default (if any), and description. - Read each
skills/*/SKILL.mdand grep for the field name; list the skills that read or write it. - If the field has a corresponding knowledge note (e.g.
meta.guidance_level→knowledge/conventions/guidance-level.md,meta.overrides→knowledge/conventions/author-authority.md), read it and summarise the rationale. - Produce the output described in Output format → C. Field explanation below.
D. Explain a knowledge note
- Read the note. Extract the synthesis paragraph and the
Implementation priority for scriptoriumsection if present. - Read each
skills/*/SKILL.mdand check which skills cite the note in their grounding. - Produce the output described in Output format → D. Knowledge note summary below.
Cross-cutting rules
- Quote sparingly, paraphrase mostly. Long quotes from
SKILL.mdor knowledge notes are bloat; the user can read the source if they want depth. Your job is synthesis. - Cite the source files you read in a
Sourcessection at the end so the user can verify or read further. - Honor
meta.guidance_levelifMANUSCRIPT_STATE.yamlis in the current directory. Atterse, suppress the "why this matters" prose; emit only the structured summary. Atstandardandfull, keep the framing.
Output format
Use exactly these section structures so the explanations are predictable and skimmable.
A. System overview
# Scriptorium
<one-paragraph synthesis: what scriptorium is, what problem it
solves, what makes its approach distinctive>
## How it works
<2-4 sentences on the shared-state-plus-skills architecture; mention
MANUSCRIPT_STATE.yaml as the editorial source of truth>
## Skills in v0.1
- **`init`** — <one-sentence what + when>
- **`citation-audit`** — <one-sentence what + when>
- **`reviewer-simulation`** — <one-sentence what + when>
- **`argumentative-flow`** — <one-sentence what + when>
- **`tour`** — <one-sentence what + when>
- **`explain`** — <one-sentence what + when>
## Evidence base
<3-5 sentences. Lead with: every skill cites the published research
it grounds in. Knowledge syntheses live under `knowledge/` (browse
the README there for the layout). Name 2-3 anchor citations across
the corpus — Greenberg 2009 BMJ for citation-distortion;
Bornmann's inter-reviewer agreement κ ≈ 0.17 for the multi-lens
reviewer design; Gopen & Swan reader-expectation theory for
argumentative-flow. Close by saying this is what makes the
behaviours auditable rather than vibes-based: any user can trace a
skill's design choice back to a paper.>
## The shared state file
<2-3 sentences on MANUSCRIPT_STATE.yaml; required fields; that every
skill reads it>
## Scope — what scriptorium does and does not operate on
<4-5 sentences. Lead with: by default, scriptorium operates on
prose the author has written or scaffolding the author has
declared; it does not produce prose from blankness. Cite the
[[declared-work-scope]] convention and the Hayes 2012
proposer/translator/evaluator framing. Name one concrete
implication (e.g., "gap-finder names missing sections as gaps but
doesn't draft them"; "no skill helps figure out what to study
before there's a draft"). Say generation skills like the planned
v0.4 specific-aims are in scope because they transform declared
scaffolding — the cut is generation-from-blankness, not
generation-as-such. Close with the [[author-authority]]
convention: the cut is a default, not a rule. The author can
override a policy or scope guard for one run or for the project
(`meta.overrides`); accuracy guards, such as never inventing a
citation, stay fixed.>
## How scriptorium talks to you
<2-3 sentences on `meta.guidance_level` and the three modes>
## Where to go next
- `scriptorium:init` if you don't have a `MANUSCRIPT_STATE.yaml` yet.
- `scriptorium:explain <skill>` to drill into a specific skill.
- `INSTALL.md` for non-Claude-Code install paths.
## Sources
- `.claude-plugin/plugin.json`
- `schemas/manuscript-state.schema.json`
- `skills/*/SKILL.md`
- `knowledge/README.md`
- `knowledge/conventions/guidance-level.md`
- `knowledge/conventions/declared-work-scope.md`
- `knowledge/conventions/author-authority.md`B. Skill explanation
# scriptorium:<name>
<one-paragraph what-it-does>
## When to use
<one-paragraph triggers + non-triggers, lifted from invocation
discipline + non-goals>
## What it consumes
- From `MANUSCRIPT_STATE.yaml`: <list of fields>
- From the manuscript: <prose, bibliography, etc.>
- Other inputs: <e.g. full text of cited papers, when available>
## What it produces
<sentence on the output shape — structured markdown report, file
write, etc. — with the section headings the output uses>
## How it's grounded
<Lead with one sentence: this skill grounds in specific published
research — its behaviours trace back to papers, not LLM intuition
alone. Then list each grounding entry with a one-sentence "this
informs <which specific design choice>". Do not just restate the
note's title. Where a grounding note cites a load-bearing paper
(e.g. Greenberg 2009 BMJ, Bornmann inter-reviewer agreement),
name the paper, not only the note.>
## What it explicitly will not do
<bullet list lifted from the skill's "what you must not do" /
"non-goals" section>
## Sources
- `skills/<name>/SKILL.md`
- <each grounding file>C. Field explanation
# MANUSCRIPT_STATE.yaml: `<field>`
**Type:** <type, enum, default>
<one-paragraph: what this field declares about the manuscript or
about scriptorium's behaviour>
## Which skills use it
- **`<skill>`** — <how it consumes the field>
- ...
## How to choose a value
<2-3 sentences of guidance; reference any rationale knowledge note
if one exists>
## Sources
- `schemas/manuscript-state.schema.json`
- <any relevant knowledge notes>
- <skills that read this field>D. Knowledge note summary
# knowledge: <note title>
<2-3 sentence synthesis lifted from the note's own synthesis section,
in your own words>
## What scriptorium does with this
<2-3 sentences: which skills ground here and which specific design
choice it informs>
## Bottom line
<one sentence: takeaway for an author who isn't going to read the
full note>
## Sources
- `knowledge/<path>/<note>.md`
- <skills citing this note>What "good output" looks like
- Synthesis, not quotation. A reader of the explanation should feel they've understood; a reader of the source should agree the synthesis is faithful.
- One screenful by default. Drill deeper only if the user asks.
- The
Sourcessection names real files the user can open. - No fabricated grounding. If a knowledge note doesn't exist,
don't invent it; say "no dedicated knowledge note; see the skill's
SKILL.mdfor design rationale". - No invocation of other skills as a side-effect. Explain finishes; the user chooses.
What you must not do
- Invent grounding notes, skills, or schema fields that aren't in the plugin tree.
- Read or summarise manuscript content. This skill is about scriptorium itself, not about the user's project.
- Run leaf skills (
init,citation-audit, etc.) at the end of an explanation. Suggest only. - Produce a multi-screen explanation by default. Aim for one screenful; expand only on follow-up.
Grounding
This skill is grounded in:
- [[guidance-level]] — the convention
explainitself honors when rendering its output, and the convention it introduces to new users during a system overview. - [[author-authority]] — the guard kinds and
meta.overrides, so the overview presents the scope cut as the author's overridable default and keeps accuracy guards fixed. knowledge/README.md— the layout of the knowledge layer, so the skill can navigate when asked about a knowledge note by slug or topic.
This skill's evidence base is its own plugin tree; it does not synthesize external literature.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

