Fable-authored report comparing how each plugin handles project adoption/init and cross-session knowledge accumulation. Surfaces six gaps including missing spire:init, unshipped adept scaffolding, and a stale tome.just path from the extraction commit.
6.3 KiB
Spire vs. Tome — Setup Mechanics and Self-Learning
Date: 2026-09-17
Scope: plugins/spire/, plugins/tome/, docs/workpad/goals/igor-project-adoption.md
1. Setup / Init Mechanics
Tome
Tome is opt-in with a real bootstrap. plugins/tome/README.md: "Install the plugin, then run /tome:init in your project to scaffold the knowledge structure. Without init, the skills are available but have nothing to navigate."
plugins/tome/skills/init/SKILL.md is human-triggered (disable-model-invocation: true) and runs four phases:
- Deterministic scaffold —
just tome initrunsbin/knowledge.py bootstrap: createswiki/boot.md,wiki/README.md, stubNAV.mdfiles, gitignored.inventory.md.boot.mdis auto-filled from README, detected toolchains (Cargo, uv, npm, Just), Justfile recipes, and root-control-file## Warnings(knowledge.py:773-916). - Agent-authored overlay — a project skill directory (e.g.
.claude/skills/<slug>-tome/) with a three-layer navigate skill ("Universal truths / Bounded possibilities / Runtime probes"),folder-guide.md,platform-notes.md. Step 2.1 readsCargo.toml,package.json,Justfile,**/CLAUDE.mdfirst. - Curation method selection — recorded in
references/curation-rules.md. @AGENTS.mdrouting convention for long CLAUDE.md tables.
Re-running is safe: write_generated_file() never clobbers authored or stub files (knowledge.py:467-489). tome.just ships with the plugin; the host adds one mod tome line.
Spire
Spire has no init skill. Configuration is meant to live in skills/igor/references/project.md, headed "per-project — swap this file when adopting Igor". It is a comment-only template with seven placeholder fields.
Igor loads it via @references/project.md (skills/igor/SKILL.md:32); athanor via @skills/igor/references/project.md (agents/athanor.md:25). Both resolve into the plugin cache. The goal doc: "There is no mechanism to actually swap it — every project gets the blank template."
Spire compensates with per-session runtime discovery:
- Workpad via the
spire:workpadresolution chain (skills/workpad/SKILL.md:12-24): env var, Justfile recipe,docs/workpad,.workpad, or ask. - Pinned agents from
.claude/agents/(SKILL.md:63). - Architecture entry point from "the root CLAUDE.md/AGENTS.md" (
SKILL.md:121). skills/knowledge/SKILL.mdgives a manual fallback when tome is absent and points to/tome:initfor the full path.
2. Self-Learning Abilities
Spire
Learning is narrative and session-shaped. references/mindset.md: "The enemy is forgetting... The journal, the adepts' folders, the accreted corrections to existing documents are what survive."
- Session journals —
<workpad>/journals/<YYYY-MM-DD-hh>-<slug>.md, append-only, fromjournal-template.md: "record the tangents and dead ends, not only the results." Igor writes on lulls (SKILL.md:111) and adds a self-review at wrap-up (SKILL.md:124). - Adept folders —
<workpad>/adepts/<domain-slug>/withCLAUDE.mdplus dated journals (agents/adept.md:60-66). Two tiers: "Solid knowledge" (verified on main, goes to CLAUDE.md) vs. "Experiences" (branch work, journal only). Successors read predecessor files on genesis; the genesis journal records "what steps you took to orient". - Accretion —
SKILL.md:57-59: "add a dated refinement section — not inline edits... Link back to the source conversation or session journal." Compression is deferred: "The curator does not exist yet... accrete and move on."
Tome
Learning is structural and code-anchored. Knowledge lives in wiki/ with front-matter status: generated | authored | stub and source-paths tying docs to code.
- Six curation methods (
skills/curate/SKILL.md): code-digest, reference-digest, explorer, concept-author, workpad-graduate, seal. All human-triggered. - Correct on contact (
skills/navigate/SKILL.md:46-51): "Distributed micro-corrections during normal work are the cheapest curation the wiki gets." - Impact analysis (
skills/handoff/SKILL.md):just tome impactmaps changed files to wiki docs viasource-paths, bucketed direct/directory/control/potential. - Mechanical validation (
skills/check/SKILL.md): broken links, missing source paths, bad front-matter, stale NAV. - "Earned place" test: "Would removing this force an agent to do thinking work to reconstruct it, or just a tool call?"
The workpad flow is one-way: "The wiki never cites or links to workpad content" (curate/SKILL.md:171).
Portability
| Pattern | Origin | Portable? |
|---|---|---|
| Correct on contact | Both (adept.md:41, navigate:46) |
Already shared, same wording |
| Solid vs. experience tiers | Spire | Yes; maps onto authored/stub |
| Dated accretion sections | Spire | Yes, any authored doc |
source-paths + impact |
Tome | Needs knowledge.py |
| Genesis orientation trace | Spire | Yes; could seed tome's explorer |
3. Gaps and Opportunities
-
No
spire:init. The goal's acceptance criteria are unmet: no project-local override, no auto-fill, no/assistantalias. Tome's init Phase 2.1 already does the stack detection Spire needs;detect_toolchainsandparse_justfile(knowledge.py:605-678) could be reused. -
project.mdcannot be overridden.skills/igor/SKILL.md:32andagents/athanor.md:25hard-bind the bundled template. The goal suggests "project-local → plugin-bundled" resolution or "a conditional read pattern" in skill text. -
Adept scaffolding referenced but not shipped.
agents/adept.md:23,26tell the adept to read<workpad>/adepts/CLAUDE.mdand copyadepts/_template/CLAUDE.md. Neither exists in the plugin or this repo (docs/workpad/adepts/is absent).spire:initshould create both. -
No curator. Spire defers compression to a curator that "does not exist yet." Tome's
sealandworkpad-graduateare the nearest implementation; a Spire curator could route through them when tome is present. -
Stale path in
tome.just:6. Header still reads<path-to-spire-plugin>/skills/tome/tome.just, left over from before the extraction incfd3cfb. -
Journal-to-wiki bridge is manual.
workpad-graduatefires only when "User (or curator) identifies a workpad note with lasting value." Igor's wrap-up produces no graduation-candidate signal.