DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path inspection-briefs/loomworks-inspection-corrections-note-v0_1.md

Loomworks — corrections from the B-29 / B-27 / B-5 inspection — v0.1

Version. 0.1 Date. 2026-07-31 Author. Claude.ai (drafting session). Operator: Marvin Percival. Charter. standing-notes/dunin7-standing-authorization-charter-v0_1, §2 R-3 — correction notes filed beside what they correct. Source. inspection-briefs/loomworks-b29-b27-b5-engine-inspection-findings-v0_1.md, record e037a37. Engine read at a317051, read-only.

What this is. Eight corrections the inspection produced, each naming the prior position, the current position, and the document that owes an amendment. Nothing here is deleted from its source — per the seed's corrections preserved, not smoothed, the superseded position stands and this note sits alongside it.


C-1 — B-27 is resolved

Target. standing-notes/dunin7-build-list-v0_8 B-27; scoping-notes/loomworks-completion-scoping-note-v0_2 §9 item 1 and §7 preconditions.

Prior. The terminal commit route for creation doors 1 and 2 is uncallable, demanding a path parameter its own route does not declare. Status unknown; the acceptance gate sits on top of it.

Current. Resolved. The route was unmounted by CR-2026-158's rider at a425ecd, merged at c4014d6, present at a317051. The live door-1/2 terminal is orchestration/routers/converse.py:481-489, calling the handler in process with all seven parameters explicit, so api/deps.py:271's Path(...) is never evaluated. The defect was genuinely present at 1aac815, so the walk audit was correct against its own engine.

Boundary of the verdict, preserved. What is established statically is that W-2's mechanism cannot fire. That creation completes end to end is asserted by CR-2026-158's own Checkpoint A live verification, not by this inspection. The stated defect is resolved; the door closing successfully rests on other evidence.

Absorbed into build list v0.9 as B-27 DONE. The completion scoping note's §9 item 1 and its §7 precondition close at that note's next bump.


C-2 — W-16 was wrong when filed

Target. inspection-briefs/loomworks-walk-audit-report-v0_1 §5.3 and W-16; scoping-notes/loomworks-completion-scoping-note-v0_2 §4 CR-B item 3; current-status/current-status-manifest-v0_76 §5.

Prior. No at-version route exists for Manifestations. Assertions have /at-version/{version} and it works; Manifestations do not. Recorded BROKEN, and scheduled as CR-B's third item.

Current. Overturned. The capability exists as a query parameter — version: int | None = Query(default=None, ge=1) at api/routers/manifestations.py:502, threaded into load_manifestation and branching to a version-pinned select at engagement/manifestation.py:688-703. Present identically at 1aac815, the walk-audit engine. Wrong when filed, not resolved since.

What W-16 got right, preserved. Its route enumeration is exactly correct — four routes, none named at-version. Its method failed: it read the OpenAPI document looking for the assertion-side path-segment shape and concluded absence. W-16's own transcript confirms the mechanism of the miss — the call returned version: 2, state: superseded, which is precisely what the route returns when ?version= is omitted. The pin was available and unused.

Consequence. Strike W-16 rather than schedule it. CR-B loses one of its four items. B-9's Manifestation hop can be version-pinned today.

One genuine asymmetry W-16 did not name. Assertions carry a per-object /history route; Manifestations do not. Whether the Manifestation room needs one is a B-5 design question, not a defect.


C-3 — "It is one seam" is wrong

Target. inspection-briefs/loomworks-b25-sizing-sweeps-findings-v0_1 §5.

Prior. "The repair is not eighty-three corrections. It is one seam … One change, eighty-three sites healed."

Current. One seam plus three bypasses. Three raw-SQL paths write to memory_events directly and never call append_event: persons/personal_engagement.py:241, engagement/wasderivedfrom_backfill.py:121, engagement/redirect_edge_backfill.py:185. A seam-only change heals neither backfill. personal_engagement.py needs nothing, being already correct.

Consequence. Two one-line repairs ride with B-29 regardless of which seam option is chosen: wasderivedfrom_backfill.py:75 (was_generated_by = event_id — the correct value is minted one line above the wrong one) and redirect_edge_backfill.py:148 ("wasGeneratedBy": event_id — the row's real id sits eleven lines up).


C-4 — B-29's file count

Target. inspection-briefs/loomworks-b25-sizing-sweeps-findings-v0_1 §5; standing-notes/dunin7-build-list-v0_8 B-29.

Prior. 83 sites across 36 files.

Current. 83 sites across 37 files. The count of sites is exactly right. The missed file is engagement/wasderivedfrom_backfill.py, whose fabrication routes through a local variable and so escapes a direct-stamp sweep — the same module the findings separately noted as also fabricating, so it was seen and simply not counted.


C-5 — the three sites said to be correct are correct

Target. inspection-briefs/loomworks-b29-b27-b5-engine-inspection-brief-v0_1 §3.3 and §8.

Prior, from the sizing findings. Three sites in persons/personal_engagement.py do it correctly, and prove the field means what its comment says.

Prior, from the inspection brief — this session's own doubt. Possibly wrong: the sites may thread a causing event rather than the event the append produces, in which case the field has two live meanings and the eighty-three-against-three framing loses its anchor. Named as the most likely place the evidence base was wrong.

Current. The doubt is withdrawn; the sizing findings were right. Each identifier is pre-minted at personal_engagement.py:356-358, stamped into provenance, and passed as that same row's event_id to the insert. It is the event this append produces. The field has one meaning in the tree. The framing holds.

Why the doubt was reasonable and still wrong. The variable names — seed_event_id, cycle_event_id — read as the id of the seed event in a causal sense. They are not; each names the event id being produced for that object. The names misled two documents in sequence.

What this additionally establishes. These three sites are a working in-tree implementation of seam option A. The pattern is proven, not speculative.


C-6 — two recorded locations in the sizing findings do not resolve

Target. inspection-briefs/loomworks-b25-sizing-sweeps-findings-v0_1 §2, sites 10 and 11.

Prior. Site 11 at orchestration/routers/converse.py:690; the hardcoded companion name at engagement/assertions.py:404.

Current.

Neither file carries any wasGeneratedBy, so neither has a B-29 overlap.


C-7 — the tag is not on the inspected commit

Target. current-status/current-status-manifest-v0_76 §1 substrate state; inspection-briefs/loomworks-b29-b27-b5-engine-inspection-brief-v0_1 target line.

Prior. Engine main a317051, annotated tag registry-completeness-v0_1 — phrased so the tag reads as sitting on the inspected commit.

Current. The tag points at c4014d6, the --no-ff merge commit. a317051 is one commit later — the CR-2026-158 implementation notes, docs-only. git describe returns registry-completeness-v0_1-1-ga317051. Nothing in the inspection turns on the distinction; the manifest should carry the tag's real position.


C-8 — a citation anchor asserted without a read

Target. current-status/dunin7-status-brief-v0_1 §3, decision D-1.

Prior. "wasGeneratedBy is required with no default (memory/base.py:150, read directly)."

Current. The correct anchor is base.py:147. Line 150 is wasInvalidatedBy: MemoryRef | None = None — a field that does carry a default, so the cited anchor contradicted the claim it was cited for.

The claim itself is correct and unaffected. wasGeneratedBy: UUID at :147 is a bare annotation with no default and no default factory. D-1's reasoning and its forced consequence both hold.

Why this is filed rather than quietly fixed. The drafting session read the file through a tool that returns content without line numbers, and could not have read a line number from it. It took the anchor of a neighbouring field and attached it to the wrong one, then wrote read directly, which presented an inference as a verification. That is the precise failure the inspection brief's §2 discipline clause exists to prevent, committed in the document that established the discipline. Caught by the executing session at filing, reported as an anomaly rather than halted on, correctly.

Absorbed into status brief v0.2. The findings document at e037a37 cites 147 throughout and needs no change; the record's self-disagreement closes when v0.2 lands.


Summary — what each document owes

| Document | Owes | |---|---| | standing-notes/dunin7-build-list-v0_8 | C-1, C-4 → build list v0.9, filed with this pass | | current-status/dunin7-status-brief-v0_1 | C-8 → status brief v0.2, filed with this pass | | inspection-briefs/loomworks-b25-sizing-sweeps-findings-v0_1 | C-3, C-4, C-6 → this note stands alongside it | | inspection-briefs/loomworks-walk-audit-report-v0_1 | C-2 → this note stands alongside it | | scoping-notes/loomworks-completion-scoping-note-v0_2 | C-1, C-2, and the §5 sequencing diagram superseded by the one-engine-front ruling → v0.3 bump, next | | current-status/current-status-manifest-v0_76 | C-2, C-7, the partial numeric refresh (alembic head 0102 declared; stele at 689de41 tag v0.4.0) → splice-instruction amendment, next |


DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks — corrections from the B-29 / B-27 / B-5 inspection — v0.1 — 2026-07-31 Eight corrections. Nothing deleted; every superseded position stands where it was written.