Nothing acts on the read-set redundancy the read trace measures #167

Closed
opened 2026-08-15 14:44:27 +00:00 by john · 0 comments
Owner

Source: narrowed from strict re-review C-01 (#154, closed as by-design)
Verdict: the actionable residual of that finding

What #154 got wrong, and what it got right

C-01 charged the fresh-worker / /clear architecture with systematic reread amplification and prescribed "a context-reuse layer that avoids rereading unchanged canonical artifacts for every fresh worker boundary."

That prescription is not buildable at the plugin layer: the fresh context is Claude Code's dispatch model, and Cadence has no seam that warms a subagent's prefix. #154 is closed on that basis.

What survives is narrower and is entirely Cadence's: the host forces each worker's context to be fresh. It does not force it to be large.

The measurement already in-tree

  • cadence-core/bin/lib/read-trace.mjs:15 - declared reads plus contracts account for ~12% of an 8.2M-token run; the other ~88% is worker activity that was previously unrecorded.
  • cadence-core/bin/lib/read-trace.mjs:316 - the old declared read-sets repeated at 7.0x, which is why redundancy (calls over distinct targets) was added at :308-316 and :364-365.

7.0x is a measurement of the read-sets, not of the architecture. Shrinking it needs no host capability.

Already covered - do not redo

The eager, turn-one half is well defended and this issue is not about it:

  • cadence-core/bin/weight-budgets.json + self-verify.mjs:778-792 - every measured prose surface has a budget entry and must equal it.
  • cadence-core/bin/lib/include-consumers.mjs - check 16, an @-include whose consumer prose was never written.
  • self-verify.mjs check 13 - a reference a skill stopped including that is still Read.
  • self-verify.mjs:70 already names de-preloading as the cheapest context cut.

What is not covered

Nothing bounds or audits what a dispatched worker actually reads once running, which is where the 88% lives. Specifically:

  1. No budget or assertion on the read-set a role contract instructs a worker to pull, the way weight-budgets.json bounds prose surfaces.
  2. No check for a surface pulled at both the skill layer and again by the agent contract inside the same dispatch.
  3. No rule preferring a section read over a whole-file read where the contract only needs one section.
  4. redundancy is computed and reported but nothing consumes it - no threshold, no /cad-suggest rule, no CI signal.

Suggested first step

Record redundancy per role across a few real phases before changing anything, and find which role contributes the repeats. The number exists; it has never been used to cut a specific read.

Scope check before planning: this is a measurement-first item. If the recorded per-role redundancy turns out to be near 1.0 on current contracts, the 7.0x figure is historical and this closes with a note rather than a change.

**Source:** narrowed from strict re-review C-01 (#154, closed as by-design) **Verdict:** the actionable residual of that finding ### What #154 got wrong, and what it got right C-01 charged the fresh-worker / `/clear` architecture with systematic reread amplification and prescribed "a context-reuse layer that avoids rereading unchanged canonical artifacts for every fresh worker boundary." That prescription is not buildable at the plugin layer: the fresh context is Claude Code's dispatch model, and Cadence has no seam that warms a subagent's prefix. #154 is closed on that basis. What survives is narrower and is entirely Cadence's: the host forces each worker's context to be **fresh**. It does not force it to be **large**. ### The measurement already in-tree - `cadence-core/bin/lib/read-trace.mjs:15` - declared reads plus contracts account for ~12% of an 8.2M-token run; the other ~88% is worker activity that was previously unrecorded. - `cadence-core/bin/lib/read-trace.mjs:316` - the old declared read-sets repeated at **7.0x**, which is why `redundancy` (calls over distinct targets) was added at `:308-316` and `:364-365`. 7.0x is a measurement of the read-sets, not of the architecture. Shrinking it needs no host capability. ### Already covered - do not redo The eager, turn-one half is well defended and this issue is not about it: - `cadence-core/bin/weight-budgets.json` + `self-verify.mjs:778-792` - every measured prose surface has a budget entry and must equal it. - `cadence-core/bin/lib/include-consumers.mjs` - check 16, an `@`-include whose consumer prose was never written. - `self-verify.mjs` check 13 - a reference a skill stopped including that is still Read. - `self-verify.mjs:70` already names de-preloading as the cheapest context cut. ### What is not covered Nothing bounds or audits what a **dispatched worker actually reads once running**, which is where the 88% lives. Specifically: 1. No budget or assertion on the read-set a role contract instructs a worker to pull, the way `weight-budgets.json` bounds prose surfaces. 2. No check for a surface pulled at both the skill layer and again by the agent contract inside the same dispatch. 3. No rule preferring a section read over a whole-file read where the contract only needs one section. 4. `redundancy` is computed and reported but nothing consumes it - no threshold, no `/cad-suggest` rule, no CI signal. ### Suggested first step Record `redundancy` per role across a few real phases before changing anything, and find which role contributes the repeats. The number exists; it has never been used to cut a specific read. Scope check before planning: this is a measurement-first item. If the recorded per-role redundancy turns out to be near 1.0 on current contracts, the 7.0x figure is historical and this closes with a note rather than a change.
john added this to the v3.5.7 milestone 2026-08-15 15:09:31 +00:00
john closed this issue 2026-08-22 11:45:37 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: crenshawdev/cadence-archived#167
No description provided.