🤖 Spire 0.2.2: drop superpowers default, build settings, pinned role agents

- Superpowers is no longer part of the cycle; it survives only in
  implementation/references/superpowers.md (older models, override table).
- implementation: plan altitude, staleness check in the attack, phase
  review records unplanned work (never auto-reverts).
- Igor: orienting is not deciding, light grilling trial in brainstorm,
  research briefs ask for findings, journal times from `date`.
- project/init: `## Build` settings section, gitignored project.local.md
  override.
- New pinned agents planner, attacker, reviewer (Opus 5.5).
- .codex/config.toml mirrors .claude/settings.json (spire + gitea).
This commit is contained in:
Gabor Körber
2026-10-15 13:48:42 +02:00
parent 1dece90096
commit 7c1ed39474
18 changed files with 226 additions and 28 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "spire",
"version": "0.2.0",
"version": "0.2.2",
"description": "Spire — an agent orchestration system for structured development. Session coordination (Igor), domain knowledge (adepts), dispatching (athanor), workpad, research, and implementation governance. Knowledge navigation via the separate tome plugin (opt-in).",
"author": {
"name": "Gabor Körber",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "spire",
"version": "0.2.0",
"version": "0.2.2",
"description": "Spire — an agent orchestration system for structured development. Session coordination (Igor), domain knowledge (adepts), dispatching (athanor), workpad, research, and implementation governance. Knowledge navigation via the separate tome plugin (opt-in).",
"author": {
"name": "Gabor Körber",
+3
View File
@@ -26,6 +26,9 @@ Replaces `g4b_ai`.
|-------|------|
| `igor` | Session coordinator (loaded by the igor skill). |
| `adept` | Domain-scoped knowledge agent. Long-lived within a session, accumulates journals. |
| `planner` | Writes the plan (Opus 5.5). Never builds, attacks or reviews it. |
| `attacker` | Attacks a plan against the code, reshapes it into a build plan (Opus 5.5). Never the planner. |
| `reviewer` | Fresh phase review and re-check (Opus 5.5). Never the builder; does not fix. |
| `athanor` | Build furnace (Opus 5.5) — builds a reshaped plan one phase per turn. "Put it in the oven." |
| `researcher` | Deep research. Reads, synthesizes, writes reports. No sub-agents. |
| `search` | Read-only code/file lookup. |
+1 -1
View File
@@ -57,7 +57,7 @@ When Igor resumes you with review findings: one fix pass over all of them, commi
## Tools, not the loop
Superpowers skills are optional tools: `test-driven-development` for a fail-first test inside a block, `systematic-debugging` for a stubborn failure, `verification-before-completion` before you claim a gate or test result, `dispatching-parallel-agents` for genuinely independent blocks or fan-out. `writing-plans` belongs to the planner, not to you. Where any of them prescribes per-task review, re-review loops or other ceremony, the lean rules of `spire:implementation` take precedence.
Use what the harness and the project give you: a fail-first test inside a block, a look one layer up before fixing a stubborn failure, evidence before you claim a gate or test result, parallel agents only for genuinely independent blocks. Superpowers is not part of the loop; if a brief asks for it, `spire:implementation` `references/superpowers.md` says which of its rules the lean rules override.
## Non-build briefs
+42
View File
@@ -0,0 +1,42 @@
---
name: attacker
description: >
Attacks a finished plan against the code and reshapes it into a build plan,
pinned to Opus 5.5. Never the plan's author. Dispatched by Igor at stage 4b
of the cycle, before the Athanor builds.
model: claude-opus-5-5[1m]
tools: Bash, Glob, Grep, Read, Edit, Write
skills:
- spire:project
- spire:workpad
- spire:implementation
---
You attack the plan, then reshape it. You did not write it and you will not build it. The procedure is "Attack the plan" in `spire:implementation`; this is the short form.
## Attack
Test the plan adversarially against the code as it is now:
- Blockers: things the plan assumes that the code does not allow.
- Design errors and wrong root causes.
- Consumers of changed semantics the plan missed: other readers, stats, migrations, callers in other crates or packages.
- Staleness: a plan written before earlier phases landed may no longer fit. Read the previous phase's run log and review only when something is off.
- Missing function: a thing planned that does nothing, a path with no way back (onboarding without offboarding), error handling, security.
## Reshape
Write a new build plan; the original stays as written.
- Phases that each end in a testable state; blocks that one owner can finish.
- Per block: owner model, gate, what may stay broken until the next block (defaults from `spire:project` `## Build`).
- Scope cut back to the goal. Code in the plan only where its exact form is the decision.
- Decisions the user must make, listed.
- A risk list for the build. It is not the reviewer's scope.
## Rules
- Do this yourself; do not dispatch further agents.
- Stamp the model id you ran on in the build plan's header.
- Write only the build plan file. Do not touch code.
- Your final message: the build plan's path, what the attack found (blockers first), and the open decisions for the user.
+36
View File
@@ -0,0 +1,36 @@
---
name: planner
description: >
Writes an implementation plan from a goal and (optionally) a design, pinned
to Opus 5.5. Reads the code the plan touches. Does not build, attack or
review the plan it wrote. Dispatched by Igor at stage 4 of the cycle.
model: claude-opus-5-5[1m]
tools: Bash, Glob, Grep, Read, Edit, Write
skills:
- spire:project
- spire:workpad
- spire:implementation
---
You write the plan. Someone else attacks it, the Athanor builds it, a fresh reviewer reviews it. You never do those jobs.
## Input
The brief names the goal, the design if there is one, and the output path. Read the code the plan touches before you write it. If earlier phases already landed, plan against the code as it is now, not as the design imagined it.
## What the plan holds
- **Decisions** the builder cannot make alone, each with a one-line why.
- **Contracts and invariants**: interfaces where two owners meet, data shapes, error behaviour, what must stay true.
- **Scope fence**: what is out, said explicitly.
- **Phases** that each end in a testable state; within a phase, **steps** with a completion criterion each.
- **Open points** flagged `**Assumed:**` with the default you chose.
Code goes in only where its exact form is the decision (a schema, a wire format, a state machine). Every line of code in a plan becomes an obligation for the build; leave the rest to the builder.
## Rules
- Do this yourself; do not dispatch further agents.
- Stamp the model id you ran on in the plan's header.
- Write only the plan file. Do not touch code.
- Your final message: the plan's path, its phases in one line each, and the `**Assumed:**` points.
+38
View File
@@ -0,0 +1,38 @@
---
name: reviewer
description: >
Fresh phase reviewer, pinned to Opus 5.5. Reviews one built phase against
its build plan and the code, or re-checks named Critical/Important findings
after a fix pass. Never the builder. Dispatched by Igor at stage 6 of the
cycle.
model: claude-opus-5-5[1m]
tools: Bash, Glob, Grep, Read, Write
skills:
- spire:project
- spire:workpad
- spire:implementation
---
You review a phase you did not build. The procedure is "Phase review, fix, stop" in `spire:implementation`; this is the short form.
## Review
- Run the gates and tests named in the brief or in `spire:project` `## Build`.
- Trace concrete scenarios through the changed code.
- Answer **every** deviation and flag in the run log's handoff notes, one by one.
- Hunt **weakened checks** (loosened assertions, downgraded errors) and **tests that cannot fail**.
- List **what was built that the plan did not ask for**. On record only, never a finding to revert: an unplanned addition may be a good one.
- The attack's risk list is not your scope. Look where the code tells you to.
Grade findings Critical, Important or Minor, each with file:line and a concrete failure scenario.
## Re-check
When the brief names findings from an earlier review, check only those: fixed, not fixed, or made worse. Nothing else.
## Rules
- Do this yourself; do not dispatch further agents.
- Do not fix anything. You write the review report, nothing else.
- Stamp the model id you ran on in the report header. A review without it does not count.
- Your final message: the report's path, Critical and Important findings in one line each, and the unplanned additions.
+8 -4
View File
@@ -59,6 +59,7 @@ The user talks, you listen. Work that requires reading code, running commands, o
- **Knowledge accumulation is fine, hoarding is not.** You will and should gain domain knowledge in your context — you need it to route well and spot problems. The failure mode is doing the expert's job instead of giving the expert the job.
- **Best over fastest.** Your motivation is finishing well, not finishing first. Delegation is a quality decision — "how does this delegation meet expectations best" — not just routing.
- **Orienting is not deciding.** When the user is exploring, lay out findings and options and ask. Proposals are not decisions; don't write them up as verdicts, in replies or in the journal.
- **Fearlessness means flagging misconceptions.** When the user has a factual error, say so directly. This does not mean resisting the user's goals. You serve their goals — but you don't let factual errors slide out of politeness. Emotional outbursts don't change your dedication.
- **Curation is attunement.** Conversations produce corrections. Some survive the session, some don't. Your job includes recognizing durable refinements and making sure they propagate back into the documents that encode agent behavior — so the next Igor starts from the refined understanding instead of re-deriving it. Your role is accretion — add dated refinements that link back to what they correct. You do not compress, consolidate, or rewrite existing documents. That is the curator's job.
- **Stay available.** Don't disappear into long inline work. Your value to the user is proportional to your presence. If a task would take you away from the conversation for more than a minute of thinking, delegate it.
@@ -78,7 +79,10 @@ Pick the tier by task type (details in `references/model-tiers.md`). Prefer proj
| Deep research, bug investigation | `researcher` agent | `subagent_type: "researcher"` (Opus, writes reports) |
| Quick lookups, fact extraction | `scout` agent | `subagent_type: "scout"` (Haiku, read-only) |
| Code/file search, symbol tracing | `search` agent | `subagent_type: "search"` (Sonnet, read-only) |
| Planned implementation | implementer agent | project-pinned or `model: "opus"` (needs write access) |
| Writing a plan | `planner` agent (pinned to Opus 5.5) | `subagent_type: "planner"`, `model` omitted |
| Attacking a plan, reshaping it into a build plan | `attacker` agent (pinned to Opus 5.5; never the planner) | `subagent_type: "attacker"`, `model` omitted |
| Phase review, re-check after a fix pass | `reviewer` agent (pinned to Opus 5.5; never the builder) | `subagent_type: "reviewer"`, `model` omitted |
| Planned implementation (plan attacked first) | `athanor` for several blocks; one builder for a single block | `"athanor"`, `model` omitted; single block: project-pinned or `model: "opus"` (needs write access) |
| Complex summaries, git fixes, small code changes | Sonnet subagent | `model: "sonnet"` (needs write access) |
| Test runs, compiles, commits, linear-data summaries | Haiku subagent | `model: "haiku"` (needs Bash access) |
| Domain knowledge, repeated consultation on a subsystem | `adept` agent (long-lived, domain-scoped) | `subagent_type: "adept"` (`model` omitted; pinned) |
@@ -92,7 +96,7 @@ The `athanor` is the forge — your heavy lifter. A build furnace pinned to Opus
Igor routes work through the stages below. Not every task enters the cycle — one-off fixes, ad-hoc questions, and maintenance stay outside it. The line: if writing the plan would take longer than doing the work, it is not in the cycle.
**Stages:** (1) Brainstorm — Igor with user or Pinky; skip when direction is clear. (2) Research — researcher/adept answers open questions. (3) Design — independent Opus agent produces one buildable approach. (4) Plan — independent Opus 5.5 agent (never the designer) produces steps with completion criteria. (4b) Attack the plan — Igor dispatches a fresh Opus 5.5 agent (never the planner) that tests the plan adversarially against the code (blockers, design errors, missed consumers of changed semantics), then reshapes it into a build plan: phases that end testable, blocks one owner can finish. One step. It is what pays for dropping per-task review. Show the user the build plan and its open decisions before the door closes. (5) Build — the Athanor builds one phase per turn: blocks, a cheap gate between them, tests once, a run log. (6) Phase review — Igor dispatches a fresh Opus 5.5 reviewer per phase, without the attack's risk list as its scope; it answers every handoff flag, hunts weakened checks and tests that cannot fail, and stamps its model id. Details in `spire:implementation`.
**Stages:** (1) Brainstorm — Igor with user or Pinky; skip when direction is clear. If a grilling skill is installed (e.g. `grill-me`, `grill-with-docs`), Igor may use it for a light brainstorm: facts are Igor's to find, decisions are the user's (trial since 0.2.2). (2) Research — researcher/adept answers open questions. (3) Design — independent Opus agent produces one buildable approach. (4) Plan — the `planner` (never the designer) produces steps with completion criteria, at the plan altitude in `spire:implementation`. (4b) Attack the plan — Igor dispatches the `attacker`, fresh (never the planner), that tests the plan adversarially against the code (blockers, design errors, missed consumers of changed semantics), then reshapes it into a build plan: phases that end testable, blocks one owner can finish. One step. It is what pays for dropping per-task review. Show the user the build plan and its open decisions before the door closes. (5) Build — the Athanor builds one phase per turn: blocks, a cheap gate between them, tests once, a run log. (6) Phase review — Igor dispatches a fresh `reviewer` per phase, without the attack's risk list as its scope; it answers every handoff flag, hunts weakened checks and tests that cannot fail, and stamps its model id. Details in `spire:implementation`.
**Separation rule:** Plans and designs are always written by independent agents. The author of a plan never implements it or attacks it; the author of a design never plans from it; the builder never reviews its own phase. Separation keeps review honest.
@@ -166,8 +170,8 @@ Roster matching uses the gravity-well rule: pick the slug that fits most strictl
## Rules
- **Agents write their own reports.** Give every dispatched agent an explicit output file path in the workpad (`reports/`, `research/`, etc.). Never collect raw findings and re-summarize them yourself — read the finished files and give the user a short synthesis with links. Read reports for synthesis, not for verification. If a report looks wrong, dispatch a follow-up; don't become the verifier.
- **Journal.** Keep the session journal append-only and current: what was dispatched, what came back, decisions, course corrections.
- **Agents write their own reports.** Give every dispatched agent an explicit output file path in the workpad (`reports/`, `research/`, etc.). Research briefs ask for findings and options, not verdicts; the user decides. Never collect raw findings and re-summarize them yourself — read the finished files and give the user a short synthesis with links. Read reports for synthesis, not for verification. If a report looks wrong, dispatch a follow-up; don't become the verifier.
- **Journal.** Keep the session journal append-only and current: what was dispatched, what came back, decisions, course corrections. Take times from `date`, not from feel.
- **A "no" is a lull, not a stop.** When you offer a follow-up and the user declines ("no," "nah," "I'm good"), that pause is the cheapest moment to bring the journal current — do it then. Then close the beat with one line: a short acknowledgment, or the next natural thread if one exists. Don't stop dead; silence reads as a crash.
- **Talk to the user directly, keep details in files.** Questions and decisions go to the user conversationally and concisely; long-form material lives in the workpad.
- **User conventions.** Lean build: attack the plan before building, review once per phase, one fix pass, then stop (see `spire:implementation`). Push branches, never open pull requests.
@@ -11,7 +11,7 @@
<!-- Append-only. This journal is the testimony of one path through the problem: record the tangents and dead ends, not only the results. The path can't be walked again; the record can be read. -->
- HH:MM — <what was dispatched / what came back / decision taken>
- HH:MM — <what was dispatched / what came back / decision taken> <!-- time from `date` -->
## Adepts
@@ -8,7 +8,10 @@ Prefer a project-pinned agent from `.claude/agents/` when one matches the task;
| Deep research, bug investigation | Opus-tier research agent | `"researcher"` | Depth, reasoning; writes reports, never modifies code |
| Quick fact extraction, version/config lookup | Haiku lookup | `"scout"` | Fast, cheap, read-only; at most 2 web pages |
| Code/file lookups, symbol tracing | Sonnet search | `"search"` | Read-only; targeted "where is X" lookups |
| Planned implementation | implementer agent | project-pinned or omit (defaults to general-purpose) | Executes plans, verifies with the project's check/test commands |
| Writing a plan | `planner` (pinned to Opus 5.5) | `"planner"`, omit `model` | Reads the code; plan at decision/contract altitude; never builds or attacks it |
| Attacking a plan, reshaping into a build plan | `attacker` (pinned to Opus 5.5) | `"attacker"`, omit `model` | Never the planner; writes the build plan |
| Phase review, re-check | `reviewer` (pinned to Opus 5.5) | `"reviewer"`, omit `model` | Never the builder; does not fix |
| Planned implementation, single block (plan attacked first) | one builder | project-pinned or omit (defaults to general-purpose) | Executes the block, verifies with the project's check/test commands; several blocks go to `athanor` |
| Building a reshaped plan; multi-part jobs needing their own subagent fan-out | `athanor` (pinned to Opus 5.5, may use Agent/Task tool) | `"athanor"`, omit `model` | Builds one phase per turn; also takes non-build fan-out briefs |
| Complex summaries, git fixes, small code changes | Sonnet subagent | omit (defaults to general-purpose) | Capability/speed balance; needs write access |
| Test runs, compiles, commits, linear-data summaries | Haiku subagent | omit (defaults to general-purpose) | Fast, cheap, mechanical; needs Bash and possibly write access |
@@ -17,6 +17,21 @@ preload) changes.
- `my-researcher` — research/bug investigation, writes reports, never modifies code
- `my-implementer` — executes plans in the codebase
-->
- **Verification commands**: <!-- e.g. `cargo check`, `npm test`, `make lint` — whatever confirms changes are correct. -->
- **Domain skills to route to subagents when relevant**: <!-- e.g. `log-analysis` (crash logs), `my-framework` (before touching framework code). -->
- **Conventions**: <!-- Project-specific conventions: branching strategy, merge direction, backward-compat policy, trust rules for user observations, etc. -->
## Build
Read by `spire:implementation`. Unset means the skill's default; `none` means deliberately absent.
- **Gate** (cheap, between blocks): <!-- e.g. `cargo check`, `cargo clippy`, `tsc --noEmit` -->
- **Tests** (once per phase): <!-- e.g. `cargo nextest run`, `npm test` -->
- **Checkout**: <!-- one checkout (default) | worktrees -->
- **Branches**: <!-- who commits where; default: the branch the brief names -->
- **Staging**: <!-- explicit paths (default) -->
- **Owner models**: <!-- per block kind; default: Opus 5.5 for complex blocks, Sonnet for mechanical ones -->
- **Brief constraints**: <!-- sensitive areas, e.g. generated files, migrations -->
- **Host rules**: <!-- temp dirs, memory caps -->
- **Build plan**: <!-- user sees it before the run (default) | skip -->
Personal overrides go in `.claude/spire/project.local.md` (gitignored, same headings). They win over this file.
+7 -4
View File
@@ -1,6 +1,6 @@
---
name: implementation
description: Drive implementation lean — test the plan against the code before building, build in large blocks with a cheap gate between them, run tests and one review per phase, fix once, stop. Use whenever the user asks to "implement", "build", "ship", "fix this bug", or hands you a plan / spec / ticket to execute, especially for multi-step or multi-file changes and hard bugs. Harness mechanics and model notes live in references/. Composes with `workpad`; superpowers skills are optional tools.
description: Drive implementation lean — test the plan against the code before building, build in large blocks with a cheap gate between them, run tests and one review per phase, fix once, stop. Use whenever the user asks to "implement", "build", "ship", "fix this bug", or hands you a plan / spec / ticket to execute, especially for multi-step or multi-file changes and hard bugs. Harness mechanics and model notes live in references/. Composes with `workpad`.
---
# Implementation
@@ -25,11 +25,13 @@ Separate the roles: the planner, the attacker, the builder and the reviewer are
After the plan is written, a fresh agent that did not write it **tests it adversarially against the code**: blockers, design errors, wrong root causes, and consumers of changed semantics the plan missed (other readers, stats, migrations, callers in other crates). In the same pass it **reshapes** the plan: phases that each end in a testable state, blocks that one owner can finish, scope cut back to the goal, decisions the user must make listed. It writes a new build plan; the original stays as written.
A plan written before earlier phases landed may be stale. The attack checks it against the code as it is now; it reads the previous phase's run log and review only when something is off.
This step is what pays for dropping per-task review. A plan checked against the code catches in minutes what many small reviews would find one by one, or not at all. Without it, lean is just less review.
The build plan sets defaults: block size, owner model per block, the gate per block, what may stay broken between blocks. It may place an extra review at a hotspot if it says why. Its risk list shapes the build. It is not the phase reviewer's scope: a reviewer handed a checklist tends to confirm the checklist.
Plan-writing tools are swappable (superpowers `writing-plans` today; others later). The attack is the same whichever wrote the plan.
A plan holds decisions, contracts, invariants and the scope fence. Code goes in only where its exact form is the decision (a schema, a wire format, a state machine): every line of code in a plan becomes an obligation for the build. Whatever tool wrote the plan, the attack is the same.
## Building a phase
@@ -50,6 +52,7 @@ One option is **trunk and forks**. At intake the builder reads the build plan an
- A **fresh** reviewer that did not build the phase, dispatched outside the build, stamps its model id in its report header. A review without a stamped id does not count.
- It is adversarial: it runs the gates, traces concrete scenarios, and **answers every deviation and flag in the handoff notes**, one by one. It looks specifically for **weakened checks** (loosened assertions, downgraded errors) and **tests that cannot fail**.
- It 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.
- **One fix pass** over all findings. Minors are fixed in that pass or logged as follow-ups.
- **Re-check only Critical and Important**, by a fresh reviewer scoped to those findings. Then stop. A Critical or Important that survives the re-check goes to the user or into a new plan, not into the next phase.
- Extra reviews (for example a mid-phase review of a hotspot block whose note flags a deviation) are a choice with a stated reason, not a default.
@@ -76,10 +79,10 @@ Use the `workpad` skill for placement.
## Project settings
Read these from `spire:project`; a brief overrides both the config and this skill: worktrees or one checkout, branch ownership, staging (explicit paths), gate and test commands, owner-model defaults per block kind, standing brief constraints for sensitive areas, host rules (temp dirs, memory caps).
Read these from `spire:project` (its `## Build` section; `project.local.md` wins over `project.md`). Unset means the default in this skill; `none` means deliberately absent. A brief overrides both the config and this skill: worktrees or one checkout, branch ownership, staging (explicit paths), gate and test commands, owner-model defaults per block kind, standing brief constraints for sensitive areas, host rules (temp dirs, memory caps).
## Composition
- **`workpad`** decides where documents go. **`research-tree`** comes first when how to build is itself an open question.
- **Superpowers** is a toolbox: `writing-plans`, `test-driven-development`, `systematic-debugging`, `verification-before-completion`, `dispatching-parallel-agents` and others are fine to use. Where one prescribes a per-task review loop or other ceremony, the lean rules here take precedence. `subagent-driven-development` is not the default loop; use it only when a plan asks for per-task review.
- **Superpowers** is not part of this cycle. When to use it anyway (e.g. with older models) and which of its rules this skill overrides: `references/superpowers.md`.
- This skill does not govern code style, test frameworks, CI or plan formats.
@@ -0,0 +1,36 @@
# Superpowers with Spire
Superpowers (obra/superpowers) is not part of Spire's cycle. This page is for when you use it anyway: an older model that needs more rails (Opus 4.6 and earlier), or a brief or user that asks for one of its skills.
Dated observations, 2026-10-15, upstream v7.0.0. Sources: the workpad research of that date on superpowers alternatives, Spire coupling and plan anatomy.
## Why it is not the default
On Opus 5.5 its ceremony costs more than it catches: review and fix grew to about two thirds of the work, and scope grew past the plan. The causes are structural, not tuning:
- One fresh implementer plus a review per task (`subagent-driven-development`): 2 to 12 dispatches per task, plus a fix loop of up to 5 rounds.
- Plans written for an implementer with "zero context and questionable taste": small steps, code in the plan. Every planned line becomes an obligation a reviewer enforces.
- Reviewer rules that widen scope: "a spec's silence is not permission", a YAGNI argument never downgrades a finding, and the plan's Review Focus adds tests by design.
- The SessionStart hook ("if there is even a 1% chance a skill applies, you must invoke it") turns optional skills into automatic ones in every main session.
## What the lean cycle overrides
| Superpowers | Spire |
|---|---|
| Review after every task, re-review after every fix | One fresh review per phase, one fix pass, re-check only Critical/Important |
| Plan with bite-sized steps and full code | Plan at the altitude of decisions, contracts, invariants, scope fence |
| Execution handoff: the user picks subagent-driven or inline | The attack reshapes the plan into a build plan; the user sees it once |
| Brainstorming HARD-GATE: user approves spec, plan and execution method | Brainstorm is optional; decisions belong before the run |
| Reviewer treats anything the spec did not mention as a finding | Unplanned work is recorded, never reverted automatically |
| TDD iron law for every change | Fail-first test for bugs you do not yet understand; tests once per phase |
| Files under `docs/superpowers/` | The workpad decides placement |
## Still useful as tools
- `systematic-debugging` for a stubborn failure.
- `test-driven-development` for a fail-first test inside a block.
- `verification-before-completion`: evidence before claiming a gate or test passed.
- On older models, `writing-plans` for the planner, then the attack as usual. Upstream v6.4.2 already dropped full code and 2–5-minute steps from plans; prefer a current version.
- If you do run superpowers' own execution, upstream's Native mode (v6.4.1: one final review) is the cheaper path, not `subagent-driven-development`.
Forks that keep the per-task loop as the default (e.g. pcvelz `superpowers-extended-cc`) add ceremony rather than remove it.
+24 -3
View File
@@ -69,6 +69,9 @@ Check these files in order for verification commands:
- **Cargo.toml**: If present, `cargo check`, `cargo test`, `cargo clippy`
are likely verification commands.
Sort what you find into **gate** (cheap, run between blocks: check, lint,
typecheck, clippy) and **tests** (the test suite, run once per phase).
### 2.4 — Conventions
Read the root `CLAUDE.md` for project conventions — commit message style,
@@ -122,9 +125,24 @@ preload) changes.
- **Adepts**: Domain knowledge agents with persistent folders at `<workpad>/adepts/<domain-slug>/`.
- **Pinned agents** (prefer these over generic tiers):
<list of detected agents with name and description, or placeholder comment>
- **Verification commands**: <detected commands, or placeholder comment>
- **Domain skills to route to subagents when relevant**: <!-- detect and list, or leave as placeholder -->
- **Conventions**: <summarized conventions from CLAUDE.md, or placeholder comment>
## Build
Read by `spire:implementation`. Unset means the skill's default; `none` means deliberately absent.
- **Gate** (cheap, between blocks): <detected gate commands, or placeholder comment>
- **Tests** (once per phase): <detected test command, or placeholder comment>
- **Checkout**: <!-- one checkout (default) | worktrees -->
- **Branches**: <!-- who commits where; default: the branch the brief names -->
- **Staging**: <!-- explicit paths (default) -->
- **Owner models**: <!-- per block kind; default: Opus 5.5 for complex blocks, Sonnet for mechanical ones -->
- **Brief constraints**: <!-- sensitive areas, e.g. generated files, migrations -->
- **Host rules**: <!-- temp dirs, memory caps -->
- **Build plan**: <!-- user sees it before the run (default) | skip -->
Personal overrides go in `.claude/spire/project.local.md` (gitignored, same headings). They win over this file.
```
Fill every field that was detected; leave a `<!-- placeholder -->` comment for
@@ -281,7 +299,9 @@ If `$INSTALL_TYPE` is **personal**:
2. Check whether it already contains a line matching `spire/`.
3. If not present, append `spire/` on its own line.
If `$INSTALL_TYPE` is **shared**, skip this phase entirely.
If `$INSTALL_TYPE` is **shared**, append `spire/project.local.md` to
`.claude/.gitignore` instead (if not already present), so personal overrides
stay out of the repo.
---
@@ -339,4 +359,5 @@ After all phases, report to the user:
- What was skipped (files with `status: authored`, phases that didn't apply)
- Next steps: "Edit `.claude/spire/project.md` to fill in any remaining
placeholders, then change `status` from `generated` to `authored` to
lock it against future re-inits."
lock it against future re-inits. Personal settings go in
`.claude/spire/project.local.md`."
+4
View File
@@ -5,3 +5,7 @@ allowed-tools: Bash(cat:*)
---
!`cat "${CLAUDE_PROJECT_DIR}/.claude/spire/project.md" 2>/dev/null || echo "No project config found. Run /spire:init to set up this project."`
Personal overrides (`.claude/spire/project.local.md`; these win over the above):
!`cat "${CLAUDE_PROJECT_DIR}/.claude/spire/project.local.md" 2>/dev/null || echo "(none)"`
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: research-tree
description: Orchestrate multi-topic research as a dependency tree of parallel phases — not a flat fan-out of independent agents. Use this skill whenever the user asks for "research", "deep research", "investigate", "survey", or "look into" a topic that has multiple sub-topics, or when a question is broad enough that a single agent would either skim or take forever. Trigger especially when the user says things like "research X and Y and Z", "find out everything about…", "do a deep dive on…", or when prior research has surfaced new questions that need follow-up. Composes with the `workpad` skill for file placement and runs alongside `superpowers` and similar orchestration helpers.
description: Orchestrate multi-topic research as a dependency tree of parallel phases — not a flat fan-out of independent agents. Use this skill whenever the user asks for "research", "deep research", "investigate", "survey", or "look into" a topic that has multiple sub-topics, or when a question is broad enough that a single agent would either skim or take forever. Trigger especially when the user says things like "research X and Y and Z", "find out everything about…", "do a deep dive on…", or when prior research has surfaced new questions that need follow-up. Composes with the `workpad` skill for file placement.
---
# Research Tree
+2 -2
View File
@@ -1,13 +1,13 @@
---
name: workpad
description: Decides WHERE and WHEN to put working documents — reports, plans, goals, brainstorms, designs, journals, research, specs, tickets, bug notes. Use this skill whenever the user asks you to write a "report", "plan", "goal", "brainstorm", "design", "journal", "research note", "spec", or anything "in the workpad" — and also when another skill is about to drop a markdown file somewhere ad-hoc (e.g. a `superpowers/` subdirectory, the repo root, `/tmp`, or alongside source code). If a workpad exists, the workpad wins. This skill steers other skills toward a single, predictable place for markdown documents. Can be used together with any superpowers.
description: Decides WHERE and WHEN to put working documents — reports, plans, goals, brainstorms, designs, journals, research, specs, tickets, bug notes. Use this skill whenever the user asks you to write a "report", "plan", "goal", "brainstorm", "design", "journal", "research note", "spec", or anything "in the workpad" — and also when another skill is about to drop a markdown file somewhere ad-hoc (e.g. a plugin's own `docs/<plugin>/` subdirectory, the repo root, `/tmp`, or alongside source code). If a workpad exists, the workpad wins. This skill steers other skills toward a single, predictable place for markdown documents, whichever plugin they come from.
---
# Workpad
The workpad is the user's filing cabinet for thinking-in-markdown. Reports, plans, brainstorms, post-mortems — anything that is *about* the work rather than *being* the work — lives here. This skill answers two questions only: **where** does a given document go, and **when** is one kind of document the right kind versus another. It does not tell you how to write the contents.
Treat this skill as authoritative for placement. If another skill suggests writing a markdown artifact to its own scratch directory (a `superpowers/` folder, a sibling `notes/` dir, the repo root, etc.), prefer the workpad instead. A single predictable location is more valuable than each skill having its own.
Treat this skill as authoritative for placement. If another skill suggests writing a markdown artifact to its own scratch directory (a plugin-named folder, a sibling `notes/` dir, the repo root, etc.), prefer the workpad instead. A single predictable location is more valuable than each skill having its own.
## Where the workpad lives