Files
reliquary/docs/workpad/plans/2026-09-14-spire-mvp.md
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

7.4 KiB

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.

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

  1. 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
  2. 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.
  3. 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.
  4. 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.

  1. Update warpspace .claude/settings.json

    • Replace g4b_ai@reliquary with spire@reliquary in enabledPlugins
  2. 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
  3. 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)
  4. 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

  1. 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)
  2. 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.