Files
ironclaw/docs
Benjamin Kurrek 2af9a74e8b test(architecture): itemize the extension_host product residue; execute the eight doc-truth corrections (#7155)
* test(architecture): itemize extension_host's product references as a frozen ledger

The products -> loops re-layer has been sized five times from proxies and
was wrong five times (D-A's one-file seam, #7092's twelve files, three
more since). The trait residue is trait-shaped and cannot see constants,
free functions, or inline concrete construction; the manifest biconditional
sees the sum but only as a boolean. This adds the itemization:
EXTENSION_HOST_PRODUCTION_FILES_STILL_NAMING_PRODUCT — exact-match in both
directions, shrink-only under a baseline ceiling, one reason per file, on a
whole-token crate matcher (the raw-substring helper would count
ironclaw_product_contracts importers). A ledger<->manifest consistency
assert keeps the itemization and the biconditional agreeing about whether
the edge exists, so the ledger cannot read empty while the manifest still
carries the dependency.

Sabotage-verified before trusting it: a planted production file naming
ironclaw_product reds the gate naming that file; a planted stale row reds
the stale direction; comment and string-literal mentions do not register
(channel_delivery.rs and skill_learning.rs are the standing comment-only
exclusions, and channel_subject_routes.rs's usage is cfg(test)-only).

Part of the WS2 re-layer re-scope (#7145).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(target-architecture): amend D-A — re-cite its precedent, record unstarted execution

The ruling's two measured legs stand. Its option-(b) refutation cited
ChannelWorkflowStateFactory as the in-file precedent; measured, that trait
is a sole-impl same-file convenience no architecture test names — the
load-bearing precedent is the landed #7004 operator inversion and the ten
INVERTED_PORT_IMPLEMENTORS ports, so the amendment re-cites it. Also
records that the factory port exists on no ref (decision, not partial
execution; shape still open) and that the residue is now mechanically
itemized by the reference ledger.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(target-architecture): correct the Wave 2 closeout's twelve-file sizing

Six of the twelve were re-export repoints, executed in #7143. The enforced
remainder is four reference classes (trait residue, adapter-registry,
product free functions, D-A assembly), now itemized mechanically by the
reference ledger, with the inventory carried by #7145.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(target-architecture): correct the Wave 3 milestone and the W7 label reading

The milestone was wrong three ways: the start was 13 (live register is 6);
the ratchet is ceiling-only and pins nothing; and zero is WS12's gate, not
this wave's reachable exit — the lane edges are #7067's (whose measurement
refutes the WS3 mcp row's vocabulary premise) and conversations->turns is
WS5's. Also records that removes_in=W7 is a retired July-train label
(#5852 era, introduced 2026-07-09), not Wave 5 or WS7.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(target-architecture): give conversations->turns an owning WS5 row; key the register to it

The exception's removal condition lived only inside WS1's verify-row
explanation — no row owned it, which is how a milestone silently expires
(its removes_in=WS5 date already passed once without it falling, as
PROPOSAL 8.3's 2026-08-02 amendment records while asking for exactly this
re-milestone). Adds the owning WS5 slice row, re-keys the register entry to
it, re-keys host_runtime->extension_support to WS3, documents that W7 is
the retired July-train label (not Wave 5 or WS7), and marks the WS5
product-narrows adapter_registry clause as a prerequisite of the
extension_host re-layer (#7145). The two entries #7141 deletes and the two
it re-keys to #7067 are deliberately left untouched here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(target-architecture): refute the stale 'delete reasoning.rs (dead)' claims

Sections 9 (row 29) and 12.4 still said delete-it-outright while WS8's own
execution (#6964) deleted only the dead half and the surviving module is
live on main (mod reasoning; + re-exports in llm/src/lib.rs). Acting on
the rows as written would have deleted production surface. 6.4.13's own
line is amended by the in-flight #7128 and deliberately not touched here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(target-architecture): amend 8.3 — row 7's blocker refuted by #7067; live register is 6

Row 7 promised the lane->resources edges dissolve as vocabulary; #7067's
measurement (raised on #7065) shows the vocabulary is already in
host_api::resource and imported from there — the real holders are
ResourceGovernor (3 of 10 methods used) and the ResourceError cone, whose
relocation is an authority carve-out. Also refreshes the live register to
6 post-#7094 and notes the conversations->turns re-milestone landed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 14:07:43 +00:00
..