Files
reliquary/docs/workpad/plans/2026-09-14-spire-mvp.md
T
g4borg e054ffd2bd ✨ Spire plugin — MVP build (phases 1-3)
Complete plugin at plugins/spire/ replacing g4b_ai:
- Igor (session coordinator skill + agent)
- Adept (domain knowledge agent)
- Athanor (dispatching orchestrator, "the oven")
- Tome (generic knowledge layer, opt-in)
- Ported from g4b_ai: workpad, research-tree, research,
  implementation, svg skills + researcher/search/scout agents

All warpspace-specific content stripped. Tome genericized.
Project-specific config via shadowed project.md reference.
2026-09-14 14:28:26 +02:00

136 lines
7.4 KiB
Markdown

# Spire MVP — Replace g4b_ai + Add Igor
**Goal**: A working `plugins/spire/` that can be installed in place of `g4b_ai`, with the assistant (Igor), adepts, and athanor on top.
**Success**: Install spire in warpspace, remove g4b_ai, run `/igor` and get a working session with delegation, adepts, and workpad.
## What blocks what
- Igor skill loads `g4b_ai:workpad` → must become `spire:workpad`
- Igor skill references `references/project.md` → needs a generic template + warpspace-specific version stays in warpspace
- Athanor is just the dispatching-orchestrator agent renamed
**Tome is opt-in, not a hard dependency.** Igor and adepts currently load `warpspace-tome:navigate` in their agent definitions, but tome requires project-level setup (`tome:init`) before it works. The plugin should port the generic tome skills so they're *available*, but Igor and adepts must not require them. If a project has set up tome, the project's `project.md` or project-local agent overrides can add the tome skill. The plugin-level agent definitions should NOT hardcode a tome skill dependency.
## Phase 1: Scaffold + Port g4b_ai (no new functionality)
Create `plugins/spire/` with all g4b_ai content migrated:
1. **Plugin shell**
- `plugins/spire/.claude-plugin/plugin.json` (copy from g4b_ai, update name/description)
- `plugins/spire/.codex-plugin/plugin.json` (same)
- `plugins/spire/CLAUDE.md` (new — describes Spire, not g4b_ai)
- `plugins/spire/README.md`
2. **Skills ported from g4b_ai** (copy + rename where noted)
- `skills/workpad/` ← `g4b_ai/skills/workpad/` (as-is)
- `skills/research-tree/` ← `g4b_ai/skills/research-tree/` (as-is)
- `skills/research/` ← `g4b_ai/skills/research/` (as-is)
- `skills/implementation/` ← `g4b_ai/skills/implementation-orchestration/` (rename)
- `skills/svg/` ← `g4b_ai/skills/markdown-embedded-svg/` (rename + update description to reflect actual scope: diagram placement, not inline embedding)
3. **Agents ported from g4b_ai** (copy as-is)
- `agents/researcher.md`
- `agents/search.md`
- `agents/scout.md`
**Verify**: Plugin structure is valid. All g4b_ai skills present under new names.
## Phase 2: Port Tome
Port the generic tome skill family from warpspace. The project-specific overlay (`warpspace-tome`) stays in warpspace.
4. **Tome skills** (copy from warpspace `.claude/skills/tome/`)
- `skills/tome/` — the parent skill with sub-skills (navigate, curate, check, handoff, init)
- Only port the **generic** tome — no warpspace-specific content
- Update any internal references from `tome:` to `spire:` namespace where needed
- The `warpspace-tome:navigate` override stays in warpspace's `.claude/skills/warpspace-tome/`
- Tome is opt-in: it's available in the plugin but does nothing until a project runs `spire:init` to set it up
**Verify**: Tome skills exist in plugin. They do NOT auto-activate — require project setup.
## Phase 3: Port Igor + Adept + Athanor
Extract the assistant system from warpspace into Spire.
5. **Igor skill** (from warpspace `.claude/skills/assistant/`)
- `skills/igor/SKILL.md` ← adapt from `assistant/SKILL.md`
- Change skill name from `assistant` to `igor`
- Change `@references/project.md` path
- Change `g4b_ai:workpad` → `spire:workpad`
- Change `warpspace-tome:navigate` → project-overlay tome reference (the project.md says which tome mutation to use)
- Remove warpspace-specific hardcoding
- `skills/igor/references/project-template.md` ← genericized version of current `project.md` (comments showing what to fill in)
- `skills/igor/references/journal-template.md` ← copy as-is
- `skills/igor/references/model-tiers.md` ← copy as-is
6. **Igor agent**
- `agents/igor.md` ← adapt from warpspace `assistant.md`
- Change skill references: `assistant` → `igor`, `g4b_ai:workpad` → `spire:workpad`
- **Remove** `warpspace-tome:navigate` from the agent's `skills:` list — tome is opt-in, not a plugin-level dependency. Projects that use tome add it via their project-local agent overrides or project.md.
7. **Adept agent**
- `agents/adept.md` ← adapt from warpspace `adept.md`
- Change `g4b_ai:workpad` → `spire:workpad`
- **Remove** `warpspace-tome:navigate` from the agent's `skills:` list — same reason as Igor. The adept skill text can mention "use tome:navigate if available" without hardcoding it.
8. **Athanor agent**
- `agents/athanor.md` ← adapt from warpspace `dispatching-orchestrator.md`
- Rename to athanor, update description
- Add "oven" as colloquial shorthand in description
**Verify**: `spire:igor` skill loads. Igor agent definition is valid. Adept and athanor agents reference correct skill namespaces.
## Phase 4: Wire Warpspace to Spire
Update warpspace to use Spire instead of g4b_ai + local assistant.
9. **Update warpspace `.claude/settings.json`**
- Replace `g4b_ai@reliquary` with `spire@reliquary` in `enabledPlugins`
10. **Create warpspace project.md for Igor**
- `.claude/skills/igor/references/project.md` ← current content of `.claude/skills/assistant/references/project.md`, updated to reference `spire:` namespaces
11. **Retire local assistant skill**
- Remove `.claude/skills/assistant/` (replaced by `spire:igor`)
- Remove `.claude/agents/assistant.md` (replaced by `spire:igor`)
- Remove `.claude/agents/adept.md` (replaced by `spire:adept`)
- Remove `.claude/agents/dispatching-orchestrator.md` (replaced by `spire:athanor`)
- Keep `.claude/skills/warpspace-tome/` (project overlay, still needed)
12. **Update tome overlay**
- `.claude/skills/warpspace-tome/` — update any references from `tome:` to `spire:` if the namespace changed
**Verify**: `/igor` in warpspace starts a session. Adepts can be spawned. Workpad resolves. Tome navigates.
## Phase 5: Deprecate g4b_ai
13. **Mark g4b_ai deprecated**
- Update `plugins/g4b_ai/CLAUDE.md` and `README.md` to say "Deprecated. Use `spire`."
- Keep the directory for now (existing installations reference it)
14. **Commit and push reliquary**
## What's NOT in the MVP
- Pinky agent+skill (designed, not built — separate goal)
- Zathras agent+skill (designed, not built — separate goal)
- Bootstrap automation (Zathras's job — manual for now)
- Pitch/narrative improvements from the Fable review (spec refinement, not code)
- Additional stale doc fixes in warpspace docs/topics/ (M2 follow-up)
## Risks
- **Namespace change**: `g4b_ai:workpad` → `spire:workpad` means any other project using g4b_ai breaks. Currently only warpspace uses it, so the blast radius is zero.
- **Tome portability**: The generic tome may have warpspace assumptions baked in. Audit during Phase 2 — strip anything project-specific.
- **Tome opt-in**: Igor/adepts must work without tome. If tome isn't set up in the project, they orient via direct file reads and Explore agents instead.
- **Plugin resolution**: When both `g4b_ai` and `spire` are installed, skill name collisions on `workpad`, `research-tree` etc. Need to remove g4b_ai before installing spire, or do it in one settings.json edit.
## Execution
Phases 1-3 are in the reliquary (building the plugin). Phase 4 is in warpspace (wiring it up). Phase 5 is back in reliquary (cleanup).
Phases 1-3 can be dispatched to an athanor (orchestrator) working in the reliquary. Phase 4 is a small manual task. Phase 5 is trivial.
`cargo check` — N/A (no Rust code). Verification is: install the plugin, run `/igor`, confirm session starts.