📝 Guidance pass C report: steering sentences rewritten

This commit is contained in:
2026-10-17 00:24:48 +02:00
parent 46dbc861be
commit 2e8cbf8177
@@ -0,0 +1,63 @@
# Guidance pass C: steering sentences
- **Date**: Sat Oct 17 00:24:15 WEDT 2026
- **Model**: claude-opus-5-5
- **Scope**: handoff [part C](../plans/2026-10-17-00-spire-guidance-pass-handoff.md), audit §4, framing from the brainstorm's "Steering sentences cut both ways"
- **Commit**: 46dbc86 (skill and agent text). Line numbers are after that commit. Paths are relative to `plugins/spire/`.
## Changes
| file:line | before | after | counterweight |
|---|---|---|---|
| agents/reviewer.md:22 | "Answer **every** deviation and flag … one by one" | "Read every flag …; answer one … only where it changes a finding or a verdict" | every flag is still read |
| agents/reviewer.md:23 | "Hunt **weakened checks** … tests that cannot fail" | "Check the phase's diff for weakened checks (… deleted tests) …; each one you find is a finding" | the check stays mandatory; its scope is the diff |
| agents/reviewer.md:24 | "List what was built that the plan did not ask for. On record only" | short "Size and unrequested surface" section, one line each; "You list; Igor and the user decide" | an unplanned addition may be good; the reviewer never removes |
| agents/reviewer.md:27 | "Grade findings Critical, Important or Minor …" | "Findings come first … Name the gates and tests you ran in one line; do not list what you checked and found fine" | evidence of what ran stays |
| agents/reviewer.md:38 | "and the unplanned additions" | "and the size and unrequested-surface lines" | (follows :24) |
| skills/implementation/SKILL.md:54 | "answers every deviation and flag … one by one. It looks specifically for weakened checks" | "reads every flag …, answering one only where it changes a finding or a verdict. In the phase's diff it looks for …" | same as reviewer :22–23 |
| skills/implementation/SKILL.md:55 | "It lists what was built that the plan did not ask for" | "short size and unrequested surface section … The reviewer lists; Igor and the user decide" | same as reviewer :24 |
| skills/implementation/SKILL.md:26 | "consumers of changed semantics … (… callers in other crates)" | "+ every direct reader or caller of what the change touches, and further only where the changed meaning is passed on" | every direct consumer still covered |
| skills/implementation/SKILL.md:34 | "A plan holds decisions, contracts, invariants and the scope fence" | "+ the code structure … (… the main signatures)" | code still only where its form is the decision |
| skills/implementation/SKILL.md:41 | (missing: tests per block) | "a test for each behaviour and failure path the plan names, not one per branch, and never cut a test a plan box needs to save size" | named failure paths get tests; size never cuts one |
| skills/implementation/SKILL.md:62 | "If you cannot write the failing test, keep investigating" | "investigate further; if it still will not reproduce …, fix on the evidence you have and say so in the handoff note" | still investigates; the gap is recorded |
| skills/implementation/SKILL.md:63 | "Explore before you focus. Look one or two layers up …" | "… when the cause is not plain: … and stop exploring once you can name the cause" | exploring stays the default for unclear bugs |
| skills/implementation/references/run-log.md:34 | (no length expectation) | "A few lines per block: findings, not narration. 'none' is the normal answer …" | "a real deviation or doubt is never left out" |
| run-log.md:41 | "Done: … in a few lines" | "in one or two lines" | (inside the :34 rule) |
| run-log.md:42 | "Deviations from plan: <what, and why>" | "+ including size well over the plan's estimate" | size budget gets explained, not obeyed |
| run-log.md:43 | "Flagged for review: <anything the reviewer should look at …>" | "<a point you are unsure of …> — or 'none'" | an unsure point is still flagged |
| run-log.md:56 | "Flags for the reviewer: every deviation and every … line above, one per bullet" | "the deviations and flags from the block notes above, one line each … or 'none'" | nothing from the notes is dropped |
| run-log.md:57 | "Not run / untested: <anything the tests do not cover>" | "<behaviour the plan names that no test or gate ran> — or 'none'" | named behaviour gaps still listed |
| agents/attacker.md:23 | "Consumers of changed semantics …: other readers, stats, migrations, callers …" | "every direct reader or caller of what the change touches (…), and further only where the changed meaning is passed on" | every direct consumer still covered |
| agents/attacker.md:25 | "Missing function: …, error handling, security" | "something a goal box needs that the plan does not deliver, … or the error handling and security that box implies" | error handling and security stay in scope where a box implies them |
| agents/attacker.md:26 | (new) | "A function no box needs is not missing: propose it under the open decisions with a one-line reason" | proposed, not silently dropped |
| agents/attacker.md:34 | "Scope cut back to the goal." | "… each block traces to a box, and cutting never removes a failure path or a test a box names" | cutting is bounded |
| agents/planner.md:23 | (new) ecosystem inventory | "what the harness, CLI output, the stdlib and the project's existing tools already provide … build only what the boxes need and the inventory does not cover" | "a one-line reason where a listed tool falls short" |
| agents/planner.md:24 | (new) code structure | "modules, the data model, the main interfaces (signatures …, no bodies) and where the special cases live" | "no more than the boxes need" |
| agents/planner.md:25 | (new) size estimate | "per module, in lines: a budget the builder explains deviations from in the run log" | "not a cap that justifies dropping a failure path or a test" |
| agents/planner.md:29 | "Phases that each end in a testable state; … steps with a completion criterion each" | "+ happy path end to end before the failure paths the boxes name (order, not priority); a step no box needs carries a one-line reason" | failure paths still built; extra steps allowed with a reason |
| agents/planner.md:32 | "(a schema, a wire format, a state machine)" | "+ the signatures in the code structure" | bodies still left to the builder |
| agents/athanor.md:32 | (missing: digest check) | "If you write a contract digest …, check it once against the plan and the code before any block builds on it" | "a gap that needs a design decision goes back to Igor, not into the digest" |
| agents/athanor.md:33 | "A mechanical or distant block goes to a fresh Agent-tool agent" | "+ on a cheaper model (Sonnet, or Haiku for a scripted transform)" | "unless the block needs design judgment" |
| agents/athanor.md:39 | "read the fix's diff for loosened assertions or deleted checks before you report green" | "report green only from your own test run, and if a fix changed a test, name it in the phase close" | changed tests reach the reviewer |
| agents/athanor.md:40 | "phase close with every deviation and flag listed for the reviewer" | "One short handoff note per block …; 'none' is a normal answer" | "a real deviation is never left out" |
| agents/athanor.md:45 | "When Igor resumes you for the next phase, start again at intake" | "The next phase goes to a fresh Athanor, which starts at intake from the run log and trunk notes you leave behind" | state carries over through the files |
| agents/athanor.md:52 | (missing: time budget) | "Every block brief carries a time budget" | "never a skipped gate or test" |
| agents/athanor.md:59 | (missing: re-plan) | "A broken premise stops the phase … hand back for a re-plan instead of documenting it" | a detail-level surprise stays a default plus flag |
| agents/athanor.md:75 | "room left for the fix pass and the next phase" | "room left for the fix pass" | (follows :45) |
| skills/igor/SKILL.md:61 | "**Best over fastest.** … finishing well, not finishing first" | "**Right over fast.** … finishing well means what the goal asks for, built and checked, not more" | "built and checked" |
| skills/igor/SKILL.md:90 | (missing: time budget) | "Every Athanor brief carries a time budget for the phase: an estimate it reports against" | "never a reason to skip a gate or a test" |
| skills/igor/SKILL.md:98 | "it answers every handoff flag, hunts weakened checks …" | "reads every handoff flag and answers one only where it changes a verdict, checks the phase's diff …, lists size and unrequested surface for you and the user to decide" | same as reviewer |
| skills/igor/SKILL.md:105 | "Approach is wrong … back to design" | "+ includes a preflight or block that removed a premise the design rests on: re-plan instead of documenting it" | "a result that only shifts a detail stays a flag" |
| skills/igor/SKILL.md:111 | "Between phases, and for the fix pass, Igor resumes the same Athanor" | "For the fix pass, … resumes the same Athanor … Each new phase gets a fresh Athanor started from the run log and trunk notes" | the fix pass keeps the builder's context |
| skills/research-tree/SKILL.md:41 | "List every sub-topic …, even ones that feel redundant" | "List the sub-topics the question needs answered, including ones you are unsure about; merge or drop the redundant ones" | unsure topics still listed |
## §4 items left alone
- igor SKILL:92 stamp-check and its 11 repeats: part D.
- igor SKILL:186 wrap-up (adept handoffs, accretion, graduation): runs once per session and is Igor's guard against forgetting; part D can trim the wording.
- adept.md:61/81 handoff refresh after state-changing consultations: capped at ~40 lines, a few lines per refresh, and it is what survives an abrupt end.
- adept "Don't guess" search dispatches: cheap, and it prevents stale priors.
- Missing "smallest change that meets the goal" / "prefer deleting to adding": deliberately not added. The brainstorm warns that these fire the other way. Tracing to boxes plus the size budget covers them.
- Missing size caps for plans, build plans, journals: not added as caps. The per-module size estimate, short handoff notes and a short review section are the budget instead.
- implementation:58 and igor:109 "extra reviews need a stated reason": already balanced.
- run-log.md trunk notes "every consumer of a changed semantic": already bounded by "a page".