🤖 Guidance pass D2: one home for harness rules in spawning-claude-code

This commit is contained in:
2026-10-17 00:28:41 +02:00
parent 6e8fd92693
commit 2c311f8fe8
3 changed files with 5 additions and 7 deletions
+1 -2
View File
@@ -47,8 +47,7 @@ When Igor resumes you with review findings: one fix pass over all of them, commi
## Dispatching
- Sequential work runs in the foreground. Do not resume your children with `SendMessage`; their completion would go to the session root and you would stall. Dispatch a fresh foreground agent instead.
- Pinned agents: omit `model`. Unpinned agents: pass the owner's alias. Every agent stamps its model id in its handoff note.
- Leaf briefs say "do this yourself; do not dispatch further agents."
- Model pins, model-id stamps and leaf briefs follow the rules of thumb in `spawning-claude-code.md`; read them before your first dispatch.
- Every block brief carries a time budget; an overrun gets a line in the handoff note, never a skipped gate or test.
- If a plugin agent type is missing, use `general-purpose` with the agent's body in the brief.
+2 -3
View File
@@ -50,7 +50,7 @@ One option is **trunk and gremlins**. At intake the builder reads the build plan
## Phase review, fix, stop
- 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.
- A **fresh** reviewer that did not build the phase, dispatched outside the build (by Igor; the `reviewer` agent holds its rules).
- It is adversarial: it runs the gates, traces concrete scenarios, and **reads every flag in the handoff notes**, answering one only where it changes a finding or a verdict. In the phase's diff it looks for **weakened checks** (loosened assertions, downgraded errors, deleted tests) and **tests that cannot fail**, and reports each one it finds as a finding.
- It ends with a short **size and unrequested surface** section: size against the plan's estimate, and what was built that no plan box asked for. The reviewer lists; Igor and the user decide, and 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.
@@ -64,8 +64,7 @@ One option is **trunk and gremlins**. At intake the builder reads the build plan
## Spawning and models
- Read `references/spawning-claude-code.md` before dispatching. In short: sequential work runs in the foreground; resume agents only from the session root; leaf briefs say "do this yourself; do not dispatch further agents".
- Every plan, handoff note and review stamps the exact model id the agent ran on.
- Read `references/spawning-claude-code.md` before dispatching. Its rules of thumb are the home of the harness rules: foreground for sequential work, resume only from the session root, model pins, stamping the model id, leaf briefs.
- Model traits are in `references/models.md`: dated observations, not law.
## Writing things down
@@ -48,10 +48,10 @@ The harness changes. When a claim fails, fix it here with a new date.
| With `model` omitted, a pinned agent runs on its pin; an unpinned agent inherits the caller's model unless a default subagent model is configured. | verified 2026-10-05 (Agent tool schema) |
| A full model id (e.g. `claude-opus-5-5`) can only be set in the agent definition's frontmatter, so pinning by full id means a pinned agent dispatched without `model`. | verified 2026-10-05 (follows from the alias-only parameter) |
| The `opus` alias overrode 4.6 pins in 184 of 184 spawns (they ran on 5.5). | observed 2026-09-27 (spacecraft MVP retrospective) |
| A 4.6 Igor passing `model: "opus"` to the then 4.6-pinned Athanor got a 4.6 run (the dirigent end review that passed with zero findings). | observed 2026-10-05 (user's attribution; the dirigent report recorded the model as unknown). Consistent with both the alias following the caller and the pin holding, so it is not evidence for alias-over-pin. The 184/184 row and the schema are. |
| A 4.6 Igor passing `model: "opus"` to the then 4.6-pinned Athanor got a 4.6 run (the dirigent end review that passed with zero findings). | observed 2026-10-05 (user's attribution; the dirigent report recorded the model as unknown). |
| What the `opus` alias resolves to (the caller's model, a session default, or the newest Opus). | unknown. Check the stamped id of every plan, attack and review instead of relying on it. |
| Every agent sees its exact model id in its system prompt. | observed 2026-10-05 for general-purpose agents (prompt shows `claude-opus-5-5`); not checked for plugin agents with their own bodies |
| Context window of the bare `claude-opus-5-5` pin versus a `[1m]` suffix (other Spire pins carry `[1m]`). | resolved 2026-10-05: all Opus-pinned Spire agents (igor, adept, athanor, zathras) pinned to `claude-opus-5-5[1m]` (user decision; Pinky, when it exists, stays 4.6); the ~600k guesstimate in `models.md` assumes the larger window |
| Context window of the bare `claude-opus-5-5` pin versus a `[1m]` suffix (other Spire pins carry `[1m]`). | resolved 2026-10-05: all Opus-pinned Spire agents (igor, adept, athanor, zathras) pinned to `claude-opus-5-5[1m]` (user decision); the ~600k guesstimate in `models.md` assumes the larger window |
## Fork