Skip to content

feat(#442): token diet wave 4B — per-op Git refs, PR via Git, Code variants, mode refs - #459

Merged
dean0x merged 26 commits into
mainfrom
feat/442-token-diet-wave-4b
Oct 12, 2026
Merged

dean0x merged 26 commits into
mainfrom
feat/442-token-diet-wave-4b

Conversation

@dean0x

@dean0x dean0x commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

Wave 4B of the subagent-economics epic cuts the four largest fixed loads that each spawn carries but does not use. Every spawn now loads only the operation, variant or mode it runs. The four tickets land in integration order: #451, then #448, then #449, then #450.

Changes

#451: the Git agent loads only the operation it runs

  • The Git agent body holds the shared rules and a routing table. It is 35,225 chars on main and 10,823 chars now.
  • Each Git operation has one reference that starts with its contract (Input, degradation notes, Output template) and then its steps. A tracker operation also reads the tracker contract.
  • The pr-host-max-op-load ceiling is retired. A new git-op-load-max ceiling prices the largest single operation.

#448: the Git agent opens the PR, the Code agent opens none

  • A new Phase 9 in /implement opens the PR through the Git agent under SINGLE, SEQUENTIAL and PARALLEL. It runs after the quality gates and before the CI gate.
  • The Code agent loses its PR inputs, paste gates, the pr-create mode and CREATE_PR. Its body falls from 24,851 B to 16,449 B.
  • The Git ensure-pr-ready reference gains COMMIT_UNCOMMITTED and the paste gates. If the scrubber fails, it still opens the PR with a minimal body.
  • The frozen status-lines fixture stays byte-identical. The former Code samples are read from the Git reference.

#449: per-mode Code variants

  • Three hosts share one partial: Code (implement, issue-fix) is 11,680 B, Code-fix (validation-fix, alignment-fix, qa-fix, ci-fix) is 9,159 B, and Code-edit (edit) is 6,508 B.
  • The Step 0 skill table and the DOMAIN input are gone. Each variant preloads only the skills its modes use. Only Code preloads apply-feature-knowledge.
  • Preload bytes: Code 25,514, Code-fix 14,875, Code-edit 10,202. Each has its own ceiling.
  • Every variant has a learning-off build.

#450: mode-scoped Synthesize and Learning bodies

  • A new reference-only skill, agent-references, lives in devflow-core-skills. It carries user-invocable: false and disable-model-invocation: true. Nothing preloads it, and one guard exception names only it.
  • Synthesize: the body is 16,665 B on main and 4,049 B now. It keeps a six-row mode routing table. The six mode templates moved verbatim to references/synthesize/{mode}.md (largest: review, 3,922 B). A spawn reads exactly one, named by the prompt's Mode line. With no Mode line it reads none. An unknown mode answers BLOCKED. /explore now passes Mode: exploration.
  • Learning: the body is 20,539 B on main and 16,690 B now. The maintenance ladder, the claim-due output format and the close-out batch moved to references/learning/maintain.md (4,283 B). A run reads it only when claim-due hands out an entry. The body keeps rotate-observations before claim-due, so a run with nothing due still rotates.
  • Learning stays on Opus.
  • New ceilings: synthesize-body-max, synthesize-mode-ref-max and learning-body-max.

Behaviour changes

  • The PR opens after the quality gates (Git agent, new Phase 9). A run that stops during the gates has no PR yet.
  • The CI gate now runs under PARALLEL too. That means more wall time and possible ci-fix spawns.
  • Haiku (Git) writes the PR body from the Code agents' handoff summaries.
  • If the scrubber fails, ensure-pr-ready opens a PR with a minimal body and the redaction-unavailable DEGRADED line. /code-review, /bug-analysis and /dynamic-build used to get no PR.
  • /implement lists stray files instead of committing them when it opens the PR.
  • Fix spawns run as Code-fix and edit runs as Code-edit, with smaller preloads. Code no longer loads DOMAIN or Step 0 skills at run time.
  • devflow agents lists code-fix and code-edit. A code override does not reach them.
  • A Synthesize spawn with a mode, a Git operation that had no reference, and Learning on a due run each take one extra Read turn.

Breaking Changes

None. No command, flag or file format that a user calls changes.

Reviewer Focus Areas

  • Phase 9 of /implement: it is the one place that opens the PR, and its position before the CI gate.
  • The ensure-pr-ready reference: the paste gates and COMMIT_UNCOMMITTED moved there from Code.
  • The Mode rule in synthesize.md: four /plan spawns put the Mode line second (after a title line), so the rule takes the first prompt line that starts with Mode:.
  • The one-name disable-model-invocation exception and the guard that nothing preloads agent-references.

Fixture and ratchet record

Testing

  • Full suite run on the branch (without eager-memory-refresh, which spawns a real claude). The only failures were the known timing flakes under load (compliance-e2e, model-discovery, redact-secrets, shell-hooks, github-status-lines subprocess guard), and each passed when re-run alone.
  • A temporary-HOME install places devflow:agent-references with SKILL.md, references/synthesize/*.md (six files) and references/learning/maintain.md.
  • Snyk code scan of the changed TypeScript under src/ reports 0 issues.

Post-merge checks

  • The maintainer reinstalls. The M-0 and M-1 token audits post on the epic.
  • Documentation updates are pending separate approval and are not in this PR.

Related Issues

Closes #448
Closes #449
Closes #450
Closes #451

Refs #442 (epic)
Refs #417 (token diet)

Added during review (2026-10-12)

  • Compliance reaches an agent only when the lens is on. The Code, Code-fix, Review and Design bodies carry no compliance text and take no COMPLIANCE_FRAMEWORKS input. /implement, /resolve, /debug, /dynamic-build, /code-review and /plan add one directive line to the spawn prompt when the resolved lens is on. A repository can turn the lens on while the machine switch is off, so an install-time variant would be wrong. The gap-analysis compliance section moved to references/compliance.md, which only the compliance-focus Design spawn reads. Saved per lens-off spawn: Code and Code-fix 525 B each, Review 288 B, Design about 1.6 KB.
  • Workflow agent types: the dynamic-workflow preamble now lists Code-fix as a valid agentType and as a decisions receiver. A new guard keeps that list equal to the types each host spawns.
  • Docs: README, CONTRIBUTING, CLAUDE.md, CHANGELOG ([Unreleased]), docs/commands.md, docs/cli-reference.md and five docs/reference/ pages now describe wave 4B: 20 agents, 42 skills, 47 generated references.
  • Feature knowledge: 23 knowledge bases are refreshed to the new end state, and the feature index has 3 updated lines.
  • Floor: requires-closure-token-floor 44 → 41 is accepted by the user, because three skill names lived only in the removed Code Step 0 text.
  • Wave-A check: the 5m subagent cache and the 1h main-session cache are confirmed on a clean window (4A/AC-204 PASS).

Test Plan

  • TP-1 (AC-101) Compiled Git agent body holds only shared rules and routing, with no per-operation Input, Output or steps — method:ci
  • TP-2 (AC-102) Each Git operation loads exactly one operation reference, plus the tracker contract for tracker operations — method:ci
  • TP-3 (AC-103) Git-agent golden and behaviour tests pass and the status-lines fixture keeps a zero diff — method:ci
  • TP-4 (AC-104) Git byte ceilings go down, pr-host-max-op-load is retired and git-op-load-max is registered — method:ci
  • TP-5 (AC-105) Each Git operation reference starts with its contract block, then its steps — method:ci
  • TP-6 (AC-201) Under SINGLE, SEQUENTIAL and PARALLEL, implement opens exactly one PR through the Git agent with scrubbed body, issue link, exceptions and test plan — method:ci
  • TP-7 (AC-202) The open-PR phase comes before the CI gate under every strategy, PARALLEL included — method:ci
  • TP-8 (AC-203) The Code agent body has no PR-only sections and its compiled size drops by about 8 KB — method:ci
  • TP-9 (AC-204) No product source names CREATE_PR or pr-create, and no Code spawn forwards issue or exception inputs — method:ci
  • TP-10 (AC-205) ensure-pr-ready never commits when COMMIT_UNCOMMITTED is false, and implement passes false — method:ci
  • TP-11 (AC-206) On scrubber failure ensure-pr-ready still opens the PR with the minimal body and the redaction-unavailable DEGRADED line — method:ci
  • TP-12 (AC-207) The frozen status-lines fixture stays byte-identical, with the former Code samples read from the Git reference — method:ci
  • TP-13 (AC-207) The status-lines fixture shows no diff beyond the authorised re-capture commit — method:local
  • TP-14 (AC-208) The issue-link forwarding floor is retired, the PR-open sites floor is 1, and the relational guard holds — method:ci
  • TP-15 (AC-301) Each Code variant preload list and body hold only what its modes use — method:ci
  • TP-16 (AC-302) Code preload and operation guards use per-variant ceilings — method:ci
  • TP-17 (AC-303) Every Code spawn site resolves to an existing variant — method:ci
  • TP-18 (AC-304) The implement and resolve flows show no behaviour regression and the full suite passes — method:ci
  • TP-19 (AC-305) No Code variant has a Step 0 table, a DOMAIN input or a runtime skill-load instruction — method:ci
  • TP-20 (AC-306) Every Code variant keeps the security-scan block and apply-decisions, and only Code preloads apply-feature-knowledge — method:ci
  • TP-21 (AC-307) Each Code variant has a learning-off build that a learning-off machine installs — method:ci
  • TP-22 (AC-401) Synthesize and Learning body sizes drop under their new ceilings — method:ci
  • TP-23 (AC-402) All six Synthesize modes map to existing reference files that hold their templates — method:ci
  • TP-24 (AC-403) Learning runs maintenance when entries are due and skips it on due none — method:ci
  • TP-25 (AC-404) The agent-references skill carries both flags, nothing preloads it, and the guard exception names only it — method:ci
  • TP-26 (AC-404) An install into a temporary HOME places the agent-references skill directory — method:local
  • TP-27 (AC-405) A Synthesize spawn with no Mode line reads no template, and an unknown mode returns BLOCKED — method:ci
  • TP-28 (AC-308) No Code-family body carries a compliance Skill call or input, and each Code and Code-fix spawn injects the directive only when the lens is on — method:ci
  • TP-29 (AC-309) No Review or Design body or preload carries compliance-only text, and their compliance-focus spawns inject it — method:ci

dean0x added 14 commits October 11, 2026 23:27
Every Git operation's Input, degradation notes, Output template and steps
move out of git.mds into the one reference that operation loads:
pr/{op}.md for the eight PR-host operations, tracker/{provider}/{op}.md
for the eleven tracker operations and learn-conventions.md for the one
doc-backed operation. The agent body keeps the shared rules, a loading
table that names each reference, the D11 scrub and the routing table; it
measures 10,823 chars, down from 35,225.

Each contract is written once in an MDS partial and compiled into every
reference that carries it. The partials are split three ways by importer
(_ops.mds, _ops_pr.mds, _ops_steps.mds) because the resolver's compile
cost is exponential in a module's define count; all are alias imports,
and src/assets/mds/.mdsroot pins the project root so the provider
modules may import across tracker/ and git/. A reference opens with its
contract, then its steps.

ensure-pr-ready is a tracker operation only: one file per provider holds
the PR skeleton and that provider's step 4b, and pr/ensure-pr-ready.md
is no longer emitted (PR_HOST_OPS 9 -> 8). create-release's release-host
steps are likewise expanded into each provider's reference; the Jira and
Linear transport guards and the provider-literal guards exempt those host
lines by exact line, never by operation.

Guards that read the contract from git.md read the operation references
instead. budget-git-md, the four loaded-set ceilings and the new
git-op-load-max are re-derived downward (the loaded-set and cap rows carry
5,000 ch of room for #448, which tightens them). pr-host-max-op-load is
retired. The manifest-size floors and capability-hoist-block-floor fall
with the roster they count.
Fixture and the equality baselines that pin its size only: GIT_AGENT_BYTES,
GIT_MD_CHARS, GIT_MD_LINES, TOTAL_CHARS and TOTAL_LINES. The compiled agent
fell from 35,452 to 10,877 bytes when every operation's contract and steps
moved into the reference that operation loads.

github-status-lines.txt is not touched.
ensure-pr-ready is a tracker operation with one reference per provider, so
the build no longer emits references/pr/ensure-pr-ready.md. The three install
goldens lose that one line; nothing else in them moves.
Ninth re-capture, authorised by the user on 2026-10-12 for #451 only: ten lines,
deletions only, nothing added. The Git agent no longer carries operation
sections, so the `**Process:**` labels and the `**Mechanics:** load this
operation's provider reference.` pointers that the manage-debt, check-ci-status
and gather-release-evidence samples read have no successor; each operation's
contract and steps are one reference.

Fixture lines 132-135, 139-140 and 158-161 (the third group is Process, blank,
Mechanics plus one of two adjacent blanks; which one a diff names is alignment,
the resulting bytes are the same). The other 239 lines are byte-identical.

The authorisation log and FROZEN_LIFECYCLE_RULE now say nine granted, nine
spent; FIXTURE_BYTES 18,383 -> 18,225 and FIXTURE_NEWLINES 249 -> 239.
The repo has no retire mechanism for a floor, so each lowered value carries a
dated note beside it. generated-reference-manifest-size,
packed-reference-manifest-size and installed-reference-count-github/-provider
fell 48 -> 47 (pr/ensure-pr-ready.md is no longer emitted), and
capability-hoist-block-floor fell 63 -> 42 (the agent's twenty **Process:**
blocks and the PR-host ensure-pr-ready block left with the operation text).
Each note names the old value and that the user accepted the drop on
2026-10-12 (PF-095). No value changes in this commit.
The behavior command (devflow behavior --enable|--disable|--status) had no
row in the write-set fence, so the coverage test failed. Its converge writes
the manifest and one rule file under rules/devflow/, an entry the table
already counts once, so the allowlist footprint stays at 12.
Phase 9 of /implement is one unconditional Git ensure-pr-ready spawn, outside
every strategy branch, between the quality gates and the CI gate. The CI gate
is Phase 10 and now runs under every strategy, evidence is Phase 11 and the
report Phase 12.

ensure-pr-ready takes the inputs the Code agent's PR step read (BASE_BRANCH,
TASK_ID, ISSUE_NUMBER, ISSUE_PR_LINK, PR_EXCEPTIONS) and the paste gates move
with them, byte for byte where the frozen status-line fixture samples them:
the Related Issues rows, the handoff-value shape gate, the evidence-exception
gate and the PR-body scrub paragraph. One test-plan check serves both caller
blocks. A given ISSUE_PR_LINK is pasted after its shape gate and step 4b does
not resolve; COMMIT_UNCOMMITTED (default true, false from /implement) lists
stray files instead of committing them; a failed scrub still opens the PR with
the fixed minimal body.

The Code agent loses CREATE_PR, the PR inputs, its PR responsibility and the
pr-create mode (8 modes to 7); its compiled body falls from 24,851 to 16,449
bytes. resolve, debug and dynamic-build drop CREATE_PR and the dead link inputs
from their Code spawns.

Ratchets: the link-forwarding floor is replaced by issue-pr-link-pr-open-sites,
code-body-max is registered, and the loaded-set and per-operation ceilings fall
to measured plus the general headroom. The accepted floor drops no longer cite
a ledger ID. github-status-lines.txt is byte-identical; its three Code samples
now read the ensure-pr-ready reference.
One Code agent paid for every mode's text and skills on every spawn, though
a spawn runs exactly one mode. Three MDS hosts now share one partial:
Code (implement, issue-fix), Code-fix (validation-fix, alignment-fix,
qa-fix, ci-fix; no default mode, a missing OPERATION returns BLOCKED) and
Code-edit (edit). Each keeps the security-scan block and apply-decisions;
only Code preloads test-driven-development and apply-feature-knowledge.

The Step 0 mode-skill table and the DOMAIN input are gone, with the runtime
skill loading they drove; the compliance load stays. The fix spawns in
/implement, /resolve and /dynamic-build move to Code-fix, and the
orchestrator charter routes edit to Code-edit. Registry, agents config,
manifests, ratchets and guards follow, with a new guard for the variant
shape. Compiled bodies: Code 11,680 B (was 16,449), Code-fix 9,159 B,
Code-edit 6,508 B.
The install goldens list the Code-fix agent in every config and the
Code-edit agent in the configs that install ambient mode.
…rences

Add the reference-only skill agent-references to devflow-core-skills. It holds the
six Synthesize mode templates and the Learning maintenance step, which each agent
reads by explicit path. The skill carries user-invocable: false and
disable-model-invocation: true; the repo-wide ban on the second flag gets a one-name
exception, and a guard holds that no agent preloads the skill and no plugin requires it.

Synthesize keeps its shared head, a six-row mode routing table, Output, Principles,
Core rules and Boundaries (16,560 -> 4,049 bytes). It reads exactly one mode
reference when the prompt carries a Mode line, reads none when it carries no Mode
line, and answers BLOCKED for an unknown mode. /explore now passes Mode: exploration.

Learning keeps the claim heartbeat, rotate-observations, the claim-due call and the
due-none line (20,539 -> 16,690 bytes). The maintenance ladder, the claim-due output
format and the close-out batch move to maintain.md, read only when an entry is due.

New ceilings synthesize-body-max, synthesize-mode-ref-max and learning-body-max.
- git.md: a step that runs another operation or follows its reference
  may load that reference. The flat 'read no other operation's
  reference' rule blocked setup-task's issue-first step and the
  provider-signal pointers that the budget model prices.
- ensure-pr-ready: the routing row and the reference description name
  every caller, not only /code-review.
- /implement Phase 11: state that the re-validation path has no CI gate.
- Guard the hop rule with a named collector and a known-bad probe.
- Replace move-history test comments with end-state text.
@dean0x

dean0x commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

Test Plan Evidence — 370102c

Verified 27/27: VERIFIED-CI 25, ATTESTED-LOCAL 2, UNVERIFIED 0, STALE 0, FAILED 0, INDETERMINATE 0

  • TP-1 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:aa8e696f5268
  • TP-2 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:a283babc34d8
  • TP-3 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:f833f637d7ce
  • TP-4 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:436fbe3ac5ca
  • TP-5 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:a3c530f1b953
  • TP-6 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:162d7eb7ed2e
  • TP-7 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:f5d12db0179b
  • TP-8 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:da56d6e0d1f1
  • TP-9 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:5928c58ded47
  • TP-10 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:91293debd793
  • TP-11 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:eb1fb1f630ab
  • TP-12 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:cc48a061d672
  • TP-13 ATTESTED-LOCAL sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS exit:0 h:fe0bfbd875cd
  • TP-14 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:1808753eb22c
  • TP-15 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:7935af5288d5
  • TP-16 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:a3e983119925
  • TP-17 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:1f3f959658f9
  • TP-18 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:2675c2475b2f
  • TP-19 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:f751288943f0
  • TP-20 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:1557ff41478f
  • TP-21 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:a0c17f273a5a
  • TP-22 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:52292cab7af2
  • TP-23 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:36cffe5d2a8c
  • TP-24 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:711621ce9a6e
  • TP-25 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:7170d65c6787
  • TP-26 ATTESTED-LOCAL sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS exit:0 h:1a57cdc2c794
  • TP-27 VERIFIED-CI sha:370102c1ba223204a12e005b8ffb94fbd9637011 out:PASS run:38231215038/1 exit:0 h:9295cb16b934

dean0x added 12 commits October 12, 2026 13:55
requires-closure-token-floor fell 44 -> 41 when the Code variants removed the
Step 0 table and the DOMAIN input from the Code prompt. The skill names
boundary-validation, dependency-research and patterns appeared only in that
deleted text. The user accepted 41 on 2026-10-12. The manifest note and the
comment beside REF_TOKEN_FLOOR now carry the old value, the reason and the
acceptance, in the same form as the other accepted floor drops.
The compliance lens is the union of the machine, the default branch and
the worktree, so the compliance skill installs everywhere and only the
command knows whether the lens is on. The command now carries the
instruction in the spawn prompt, and only then.

- _compliance.mds is the one home of the directive text. A lens-off
  spawn carries nothing about compliance.
- Code and Code-fix lose the compliance step and the
  COMPLIANCE_FRAMEWORKS input (525 B each per spawn). Every Code and
  Code-fix spawn site passes COMPLIANCE_DIRECTIVE instead.
- Review and Design lose the lens input and the compliance rows
  (288 B and 151 B). The /code-review and /plan compliance-focus spawns
  inject the focus directive.
- gap-analysis section 7 moves to references/compliance.md, which the
  /plan compliance-focus spawn names by path (1,456 B off the Design
  preload).
- Ratchets: code-body-max and code-fix-body-max lowered to measured.
- Guards: compliance-injection.test.ts holds both sides with collectors,
  non-vacuity floors and known-bad probes; code-variants.test.ts now
  forbids every Skill call in a variant.
- The installed compliance SKILL.md stamp and checklist named a COMPLIANCE_FRAMEWORKS input that no agent receives now; they name the ids in the agent's prompt, and a test holds every composed stamp free of the input name.
- /resolve sets the compliance directive per worktree, at the step that passes it.
- The compliance-injection guard also sweeps the learning-off command variants (Code spawn sites, the off-to-empty gate, the focus spawns), with known-bad probes on learning-off-only arms and on the two focus-spawn claims that had none.
Update counts (20 agents, 42 skills, 47 generated references), the Code
agent variants, the Git agent opening the PR after the quality gates, the
compliance directive in the spawn prompt, the agent-references skill and
the CHANGELOG entries for wave 4B.
The workflow preamble's closed list of valid agentType values lacked
Code-fix, although dynamic-build and the engine spawn it for the
validation, alignment and QA fixes. Its decisions step also left
Code-fix out of the receivers of the decisions index, which that
agent declares and every Code-fix spawn carries.

Add Code-fix to both lists. Code-edit stays out: no workflow spawns it.

Guards: each compiled dynamic host's valid-agentType sentence must list
exactly the roster and every type the host spawns, and the decisions
step must name every valid type that declares the key. Each has a
non-vacuity assertion and a known-bad probe.
… wave 4B

Feature index: list code-fix among the resolve-pipeline areas and bring the
tracker-references lines to their KB descriptions. The resolve-pipeline areas
read code(-fix).mds so the line stays within the 300-character budget.

Manifest notes (descriptions only, no values): budget-git-md is a measured
10_743 plus the 80 general headroom; git-agent-remote-io-ops reads one corpus
for both halves; synthesize-body-max gives the main-branch body size.

Test comments: describe the end state of the status-line reference list, the
split samples, the git.md budget derivation and the PR-opening Git spawn.
@dean0x

dean0x commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

Test Plan Evidence — f3092c4

Verified 29/29: VERIFIED-CI 27, ATTESTED-LOCAL 2, UNVERIFIED 0, STALE 0, FAILED 0, INDETERMINATE 0

  • TP-1 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:aa8e696f5268
  • TP-2 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:a283babc34d8
  • TP-3 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:f833f637d7ce
  • TP-4 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:436fbe3ac5ca
  • TP-5 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:a3c530f1b953
  • TP-6 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:162d7eb7ed2e
  • TP-7 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:f5d12db0179b
  • TP-8 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:da56d6e0d1f1
  • TP-9 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:5928c58ded47
  • TP-10 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:91293debd793
  • TP-11 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:eb1fb1f630ab
  • TP-12 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:cc48a061d672
  • TP-13 ATTESTED-LOCAL sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS exit:0 h:6d1c0a09240c
  • TP-14 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:1808753eb22c
  • TP-15 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:7935af5288d5
  • TP-16 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:a3e983119925
  • TP-17 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:1f3f959658f9
  • TP-18 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:2675c2475b2f
  • TP-19 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:f751288943f0
  • TP-20 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:1557ff41478f
  • TP-21 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:a0c17f273a5a
  • TP-22 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:52292cab7af2
  • TP-23 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:36cffe5d2a8c
  • TP-24 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:711621ce9a6e
  • TP-25 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:7170d65c6787
  • TP-26 ATTESTED-LOCAL sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS exit:0 h:1a57cdc2c794
  • TP-27 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:9295cb16b934
  • TP-28 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:20817521988e
  • TP-29 VERIFIED-CI sha:f3092c477879b34bc2caf43426495b3cdb45130c out:PASS run:38252313219/1 exit:0 h:8b1941de13d9

@dean0x
dean0x merged commit bc557c0 into main Oct 12, 2026
3 checks passed
@dean0x
dean0x deleted the feat/442-token-diet-wave-4b branch October 12, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant