# 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.