Explain
An agentic scriptorium for scholarly writing — coordinated AI capabilities for manuscripts, grants, and reviews.
npx -y skills add seandavi/scriptorium --skill explainAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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?"
SKILL.md
11.4 KB, as published. Nobody here has run it
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.
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.
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), 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
<3-4 sentences. Lead with: 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"). Close by saying 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.>
## 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`
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. 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.