📝 Document Spire planning research and 0.2.2 decisions

This commit is contained in:
Gabor Körber
2026-10-15 21:31:07 +02:00
parent 7c1ed39474
commit 8028411cbb
9 changed files with 1208 additions and 4 deletions
@@ -0,0 +1,60 @@
# Goal: Drop superpowers as default — Spire 0.2.2
**Set**: 2026-10-15, Igor session [2026-10-15-11-superpowers-opus55-era](../journals/2026-10-15-11-superpowers-opus55-era.md)
**Status**: agreed with the user 2026-10-15
**Order**: the next Spire release after 0.2.0. [lean-athanor-0.2.1](./lean-athanor-0.2.1.md) stays open; its delegation-row fix lands here.
**Leads to**: 0.3.0 — Spire adopts the `grotto` plugin's design / plan / handoff procedure (see "Later")
## Why
On modern models (Opus 5.5, Astra) superpowers overdoes it: token spend, too many gates and reviews, review+fix ≈ 2/3 of the work, scope beyond the plan — worst in Rust codebases. Its problems are hard to avoid even with the lean method. Modern models need lighter guardrails and harness-aware help, not generic ceremony.
0.2.2 removes superpowers as a default and bundles single-sentence fixes that pay off now. The full procedure is grotto / 0.3.0.
Research: [alternatives](../research/2026-10-15-11-superpowers-alternatives.md), [Spire coupling](../research/2026-10-15-11-spire-superpowers-coupling.md), [plan anatomy](../research/2026-10-15-12-superpowers-plan-anatomy.md), [Claude Code tasks / pcvelz](../research/2026-10-15-14-claude-code-tasks-and-pcvelz.md). Opinion: [Fable](../reports/2026-10-15-13-fable-opinion-superpowers-direction.md).
## Success criteria
### Superpowers is no longer a default
- [x] No Spire skill or agent presumes superpowers is installed or recommends it as part of the normal cycle. Current references: `implementation/SKILL.md:3,32,84`, `agents/athanor.md:60`, `workpad/SKILL.md:3,10`, `research-tree/SKILL.md:3`.
- [x] The workpad keeps steering other skills' markdown into the workpad, without naming a specific plugin.
- [x] A reference doc (`implementation/references/superpowers.md`) is where superpowers survives: when and how to use it with Spire — e.g. with older models (Opus 4.6) — and which of its rules the lean cycle overrides.
### Single-sentence fixes
- [x] **Plan altitude** (`spire:implementation`): a plan holds decisions, contracts, invariants and the scope fence; code only where its exact form is the decision (schema, wire format, state machine).
- [x] **Staleness in the attack** (`spire:implementation`): the attack checks the plan for staleness against the current code. Reading the previous phase's run log and review is only needed when something is off.
- [x] **Unplanned work on record** (phase review): the reviewer lists what was built that the plan did not ask for — on record only, never an automatic revert. An unplanned addition may be a good one.
- [x] **Journal times** (Igor journal, run log): timestamps come from `date`, not from memory.
- [x] **Delegation row** (Igor skill and `model-tiers.md`): "Planned implementation" → attacked plan → Athanor (multi-block) or one general-purpose builder (one block). (From 0.2.1.)
- [x] **Igor orients** (Igor skill): when the user is exploring, Igor lays out findings and options and asks; it does not present proposals as decisions.
- [x] **Research briefs** (Igor skill): briefs ask for findings, not verdicts.
- [x] **Light grilling** (Igor skill, brainstorm stage): if a grilling skill (e.g. Matt Pocock's `grill-me` / `grill-with-docs`) is installed, Igor may use it for a light brainstorm. Trial.
### Pulled in from the former 0.2.1 goal (user, 2026-10-15)
- [x] **Build settings**: `## Build` section in the `spire:project` template (gate, tests, checkout, branches, staging, owner models, brief constraints, host rules, build plan review); unset = default, `none` = deliberately absent; gitignored `.claude/spire/project.local.md` wins over `project.md`.
- [x] **Pinned role agents**: `planner`, `attacker`, `reviewer`, pinned to Opus 5.5; Igor keeps checking stamped model ids.
### Preps for grotto / 0.3.0
- [x] Superpowers' plan anatomy researched → [plan anatomy](../research/2026-10-15-12-superpowers-plan-anatomy.md).
- [x] Claude Code native Tasks and the pcvelz `.tasks.json` mechanism researched → [tasks](../research/2026-10-15-14-claude-code-tasks-and-pcvelz.md).
- [ ] Matt Pocock's skills installed and tried by the user; experience noted (grilling especially).
- [ ] The user's brainstorm [implementation thoughts](../brainstorm/2026-11-15-implementation_thoughts.md) is an input to grotto.
## Decided (user, 2026-10-15)
- Spire drops superpowers as a default; the reference doc is where it survives.
- Switching superpowers off in existing installs is the user's job — not encoded in Spire.
- Grill-me belongs to the brainstorm stage, not design. Light grilling: Igor does it. A full brainstorm may justify Pinky.
- Try `grill-with-docs` including glossary and ADRs. Where ADRs live is a per-project decision, not Spire's.
- Designs and plans are transitional; code is truth. A design is not a spec.
- The design / plan / handoff procedure becomes its **own plugin**, so Spire doesn't get overblown. It works standalone too (storage location then defined by the user); most of the time it runs with Spire, and a project may have Spire without it.
- Plugin name: **grotto** (a cave — the batcave without Batman: no superpowers; where Igor fetches the plans). "Batcave" dropped: likely DC trademark.
- `.codex/config.toml` mirrors `.claude/settings.json` (spire + gitea). Done 2026-10-15.
## Later (grotto / 0.3.0, not 0.2.2)
- Guidance for: writing a design, writing a plan, keeping handoffs and journals (general and harness-specific).
- Drift (two-way, incl. positive drift) and audience per artifact as known forces — not fixed rules.
- Retrospectives from the lean Athanor runs feed grotto's refinement.
- May take several iterations.
## Out of scope
- Workpad as personal space vs project docs as the durable home (graduation of specs, research, ADRs).