An agentic scriptorium for scholarly writing — coordinated AI capabilities for manuscripts, grants, and reviews.
Project description
scriptorium
An agentic scriptorium for scholarly writing.
Scriptorium is an agentic operating system for scholarly writing. It coordinates AI capabilities — citation audit, reviewer simulation, structural analysis — around shared editorial state, so manuscripts, grants, and reviews are improved as a workflow rather than a series of one-shot prompts.
Why this exists
A medieval scriptorium was a coordinated workspace where multiple scribes copied, annotated, glossed, and corrected manuscripts under shared conventions. The modern scholarly-writing process — drafting, citing, reviewing, revising, publishing — has the same shape, but most AI tools sit outside of it: they generate prose in isolation, lose context between sessions, and offer no way to compose improvements.
Scriptorium puts the agentic-AI layer inside the workflow:
- A single source of editorial truth (
MANUSCRIPT_STATE.yaml) that every skill reads. - A collection of conservative, single-responsibility skills (citation audit, reviewer simulation, argumentative-flow analysis) that emit structured outputs another skill can consume.
- A discipline of inspectable transformations: semantic diffs over unconstrained rewriting; preserved citations and statistics by default; no hidden state.
The medieval scriptorium had an operating model. The agentic one is just now being built.
Install
Claude Code (recommended)
Pre-release; install from source until the first PyPI cut:
git clone https://github.com/seandavi/scriptorium
cd scriptorium
uv pip install -e .
# Live-linked (edits propagate immediately — best for iterating)
scriptorium install --mode dev-link
# Or a copy install (stable snapshot, no live edits)
scriptorium install
Restart Claude Code; the skills appear as scriptorium:init,
scriptorium:citation-audit, scriptorium:reviewer-simulation,
scriptorium:argumentative-flow.
Other agents (Codex, Gemini, Hermes, ChatGPT, …)
Each skill ships with a platform-neutral prompt.md you can paste into
any LLM directly. To get all skills concatenated into a single
prompt-pack file:
scriptorium prompt-pack -o scriptorium-prompts.md
See INSTALL.md for per-platform recipes.
Quick start
# 1. Scaffold editorial state for your manuscript
scriptorium init /path/to/your/manuscript
# 2. Populate it. Two ways:
# a) Edit /path/to/your/manuscript/MANUSCRIPT_STATE.yaml directly.
# b) In Claude Code inside the manuscript repo, run the conversational
# bootstrap that walks you through core_claims, known_weaknesses,
# terminology, audience, and tone:
# /scriptorium:init
# 3. Validate the result
scriptorium validate /path/to/your/manuscript/MANUSCRIPT_STATE.yaml
# 4. Run the leaf skills in Claude Code, inside the manuscript repo:
/scriptorium:citation-audit
/scriptorium:reviewer-simulation
/scriptorium:argumentative-flow
A fully-populated reference manuscript lives at
templates/MANUSCRIPT_STATE.example.yaml
(an imaginary biomedical paper that exercises every field in the
schema). Use scriptorium init --example /tmp/example to drop a copy
anywhere as a learning aid.
What's in the box (v0.1)
Four bundled skills, exposed through both Claude Code and the platform-neutral prompt-pack:
| Skill | Phase | What it does |
|---|---|---|
init |
bootstrap | Conversational pass that populates MANUSCRIPT_STATE.yaml (core claims, known weaknesses, terminology, audience, tone) and routes to the right next skill for the document phase. Pairs with the scriptorium init CLI subcommand, which scaffolds the file. |
citation-audit |
leaf | For each scientific claim: identify citation support, evaluate evidence strength, flag overreach. Outputs a structured claim/citation/assessment/recommendation table. No text modification. |
reviewer-simulation |
leaf | Simulates four reviewer personas (methodological skeptic, domain expert, translational reviewer, statistical reviewer). Outputs Major/Minor Critiques, Fatal Concerns, Enthusiasm Drivers, Suggested Revisions, Acceptance Risk. |
argumentative-flow |
transformative | Improves logical and argumentative coherence while preserving citations, statistics, and terminology. Outputs Structural Diagnosis / Logical Gaps / Proposed Outline / Revised Text / Remaining Weaknesses. |
The scriptorium CLI exposes six subcommands: install, init,
validate, prompt-pack, list, and trace. scriptorium trace
extracts skill invocations from Claude Code transcripts as structured
records conforming to schemas/trace.schema.json — useful for
self-inspection and (eventually) eval-loop work. See
scriptorium --help for the full surface.
Deliberately not in v0.1 (see DESIGN.md for the build order): orchestrators, drafting skills, additional knowledge-layer contributions beyond what skills currently cite, Codex/Gemini adapters. These earn their way in once the v0.1 skills have been used on real manuscripts.
Companion tools
Scriptorium is the editorial layer; these tools are useful neighbors for the rest of the scholarly-writing workflow:
- Semantic Scholar MCP
and PubMed MCP
— bibliographic lookup and full-text retrieval as MCP servers,
consumable by Claude Code (and any MCP-aware agent). Pair well with
scriptorium:citation-auditwhen claims need to be checked against primary literature. - quartobot — resolves
persistent-identifier cite keys (
@pmid:,@doi:) in Quarto documents before citeproc renders them. Used inside the scriptorium docs build for theknowledge/evidence base; useful standalone for any Quarto-based scholarly writing.
These are external projects, not bundled with scriptorium. Install them separately following each project's own instructions.
Design principles
The system separates:
- generation (write new prose)
- critique (assess existing prose)
- validation (check for structural / factual issues)
- normalization (terminology, style, journal conventions)
And prefers:
- inspectable transformations over opaque rewrites
- structured outputs over freeform rambles
- semantic diffs over surface rewrites
- explicit checkpointing over hidden state
See DESIGN.md for the full design philosophy and the roadmap.
Status
v0.1 in flight. Four bundled skills (init, citation-audit,
reviewer-simulation, argumentative-flow), the consolidated
scriptorium CLI (six subcommands, including trace for transcript
analysis), the shared state schema, the trace schema, and the Venice
example. Orchestrators, additional skills, and platform adapters
follow once the leaves prove out on real manuscripts.
License
Dual-licensed by category:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentic_scriptorium-0.1.0.dev0.tar.gz.
File metadata
- Download URL: agentic_scriptorium-0.1.0.dev0.tar.gz
- Upload date:
- Size: 76.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
854a5af1e72e4f85ef8a2bf11fbe9a11eb214affffef76ffc9e221a905df54c2
|
|
| MD5 |
a7b81e0fd99b103ebc8f314eeae6d47e
|
|
| BLAKE2b-256 |
703c8c9ba6bc85daf02377fb6fa37d5b7bf69b2cff2cd45e3e191a0a8e079871
|
Provenance
The following attestation bundles were made for agentic_scriptorium-0.1.0.dev0.tar.gz:
Publisher:
release.yml on seandavi/scriptorium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentic_scriptorium-0.1.0.dev0.tar.gz -
Subject digest:
854a5af1e72e4f85ef8a2bf11fbe9a11eb214affffef76ffc9e221a905df54c2 - Sigstore transparency entry: 1573671629
- Sigstore integration time:
-
Permalink:
seandavi/scriptorium@cc99ba6bcd5c3093b7f9cd40a8257bc1004a5857 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/seandavi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cc99ba6bcd5c3093b7f9cd40a8257bc1004a5857 -
Trigger Event:
push
-
Statement type:
File details
Details for the file agentic_scriptorium-0.1.0.dev0-py3-none-any.whl.
File metadata
- Download URL: agentic_scriptorium-0.1.0.dev0-py3-none-any.whl
- Upload date:
- Size: 89.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0260c813d41235d2baaef4ca7f6adce9a2dfc3541c9c86b70d026318ae411e0d
|
|
| MD5 |
af78676d8ad8e943f8ee037847bbc839
|
|
| BLAKE2b-256 |
c4f53d5e2c94fde4d9d3d6f0f76594fb3b5bf7e96566931d2a0b770f47d16aaf
|
Provenance
The following attestation bundles were made for agentic_scriptorium-0.1.0.dev0-py3-none-any.whl:
Publisher:
release.yml on seandavi/scriptorium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agentic_scriptorium-0.1.0.dev0-py3-none-any.whl -
Subject digest:
0260c813d41235d2baaef4ca7f6adce9a2dfc3541c9c86b70d026318ae411e0d - Sigstore transparency entry: 1573671666
- Sigstore integration time:
-
Permalink:
seandavi/scriptorium@cc99ba6bcd5c3093b7f9cd40a8257bc1004a5857 -
Branch / Tag:
refs/tags/v0.1.0.dev0 - Owner: https://github.com/seandavi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cc99ba6bcd5c3093b7f9cd40a8257bc1004a5857 -
Trigger Event:
push
-
Statement type: