diff --git a/docs/workpad/reports/2026-10-17-00-guidance-pass-d-size.md b/docs/workpad/reports/2026-10-17-00-guidance-pass-d-size.md new file mode 100644 index 0000000..d993a64 --- /dev/null +++ b/docs/workpad/reports/2026-10-17-00-guidance-pass-d-size.md @@ -0,0 +1,57 @@ +# Guidance pass D: size and duplication + +- **Date**: Sat Oct 17 00:32:32 WEDT 2026 +- **Model**: claude-opus-5-5 +- **Scope**: handoff [part D](../plans/2026-10-17-00-spire-guidance-pass-handoff.md), decision 4 (audit option I-2), audit §1/§2/§3/§5 +- **Commits**: 6e8fd92 (D1 agents), 2c311f8 (D2 harness homes), fc6a543 (D3 Igor), fa80d26 (D4 class c/d). Paths below are relative to `plugins/spire/`. + +## Bundle sizes (`wc -w`, audit §1 definitions, at 2e8cbf8 → now) + +| Bundle | Before | After | Target | | +|---|---:|---:|---:|---| +| Igor boot (igor.md, SKILL, mindset, adepts, workpad, journal-template, project + project.md, repo CLAUDE.md) | 6384 | 4726 | ≈ 4000 | missed by ~700 | +| Athanor start (athanor.md, workpad, implementation, gremlins, spawning, run-log, project, CLAUDE.md) | 7241 | 6754 | none set | | +| Planner (planner.md, project, CLAUDE.md) | 4166 | 879 | 500–800 | ~80 over | +| Attacker | 4124 | 859 | 500–800 | ~60 over | +| Reviewer | 4058 | 793 | 500–800 | met | + +Igor: workpad stays preloaded (1385 words after trims) and project + project.md + CLAUDE.md are 439, so the 4k target leaves ~1.6k for igor SKILL + mindset; they are now 2425 + 184, and what is left is mostly class a (cycle, decision tree, queuing, adepts, rules). Planner/attacker: 439 of each bundle is project.md + repo CLAUDE.md; the bodies are part C text. + +## Rule → home + +| Rule | Home | Points to it / keeps one line (agent follows it) | Dropped from | +|---|---|---|---| +| Stamp the model id | `spawning-claude-code.md` rules of thumb | planner, attacker, reviewer (one line each, own output); run-log.md:9 (adds "unknown, not a guess"); implementation "Spawning" pointer; athanor Dispatching pointer | implementation:53, :68; athanor:50; model-tiers:39 | +| Check the stamp | igor SKILL `**Models.**` | — | model-tiers | +| Pinned → omit `model`, unpinned → alias, no Fable | `spawning-claude-code.md` | igor SKILL `**Models.**` (Igor dispatches); zathras:74 one line; athanor pointer | model-tiers:35–40, athanor:50 | +| Leaf briefs "do this yourself" | `spawning-claude-code.md` | igor Rules `**Harness.**`; zathras:74; athanor pointer; implementation pointer; model-tiers sub-delegation guard | planner, attacker, reviewer (no Agent tool); search.md paragraph | +| Igor delegates / work vs conversation | igor SKILL Core Directive | lifecycle step 2 "classify per the Core Directive"; zathras keeps its own (does not load igor) | Voice bullet, Role section, Mindset "Stay available" and "Do X means delegate X" (merged into Core Directive), mindset.md voice lines | +| Gate between blocks, tests once | implementation "Building a phase" | athanor steps 3–4 (its procedure); attacker one line (new, since it no longer loads implementation); igor stage (5) | — (init and the project template explain the config fields; kept) | +| Notifications = turn ending | `spawning-claude-code.md` | igor Rules `**Harness.**` | — | +| Delegation table | igor SKILL `## Delegation` | zathras:63 now points there; model-tiers.md keeps only the write-capability and sub-delegation guards | model-tiers table + rules of thumb | +| Fix pass / re-check | implementation "Phase review" | reviewer Re-check gets one line (it lost the preload) | — | + +## Removed text by class (rough words) + +- **Persona (≈ 650)**: igor Voice 300 → 81 (dropped "yeth, marthter", four example flourishes, furnace grammar rule, "Delegate whenever possible" bullet); "forge… let it cook" Athanor flourish; mindset.md "The enemy" (dup of SKILL intro), provenance line, "five voice lines… Protect them in any rewrite"; zathras "Not Zathras the great leader…" and four example lines; plugin CLAUDE.md "wizard's private workshop". +- **Class d (≈ 900)**: delegation repeats in igor (×5) and Role section; "184 of 184" history in igor's model rule; "It is what pays for dropping per-task review" (igor, implementation:30 paragraph); "Separation keeps review honest"; model-tiers duplicate table and rules (~520); two extra adept spawn templates (now one + two variant lines); "core problem this solves" (research); spawning:51 alias argument; Pinky aside in spawning:54 (record fact kept); models.md withdrawn 4.6/Opus-5 notes; leaf lines in planner/attacker/reviewer; search.md "You do not have the Agent tool…" and scout/researcher equivalents. +- **Class c (≈ 700)**: tool lists in search, scout, researcher; "Start narrow", "Read strategically", "Use Glob…"; "Synthesize, don't summarize", "clear headings", "Lead with the answer"; research WebFetch/WebSearch explanation; workpad textbook doc-kind distinctions (kept the routing rules), intro, lifecycles and "does not cover" compressed; research-tree topological-layering sentence; igor "Fearlessness means flagging misconceptions" (kept "emotional outbursts don't change your dedication" as **Steady**). + +## Part C sentences moved + +- igor SKILL stage (6) "reads every handoff flag and answers one only where it changes a verdict, checks the phase's diff for weakened checks and tests that cannot fail" → its home `agents/reviewer.md` (already there word for word). Igor keeps "lists size and unrequested surface for you and the user to decide" and a pointer. All other part C sentences are unchanged in place (grep-checked). +- `implementation:63` "Explore before you focus" is an audit class-c quote but part C rewrote it with a stopping rule; kept. + +## Unreachable files (user decides) + +- `skills/implementation/references/superpowers.md` (461 words, unlinked) +- `skills/igor/references/project.md` (351, blank template, unreachable via `spire:project`) +- `skills/igor/references/harness-notes.md` (107, moved-stub; still repeats leaf/notification rules) + +## Unsure + +- model-tiers sub-delegation guard: the old text said researcher "may have the Agent tool"; its frontmatter has none, so I listed it (and planner/attacker/reviewer) as safe leaves. A factual fix, not a new rule, but check it. +- Igor delegation home: the Core Directive now says it is the rule's home and nothing below overrides it, replacing "if any instruction below seems to conflict with delegation, delegation wins". Same meaning, shorter. +- The igor stage (6) move landed in D4 (fa80d26), not D3. +- `README.md:32` still says "Put it in the oven." (not loaded by agents; left). +- The Athanor bundle was not a target; only its stamp/leaf/model lines became one pointer.