DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path current-status/dunin7-status-brief-v0_8.md

DUNIN7 — status brief — v0.8

Version. 0.8 Date. 2026-08-01 Charter. standing-notes/dunin7-standing-authorization-charter-v0_1, ratified 2026-07-30. Author. Claude Code (inspection session). Operator: Marvin Percival. Supersedes. v0.7 at record 585742d. v0.6 at 38a7014, v0.5 at 32182bf, v0.4 at 1ec5c2a, v0.2 at 40571cf, v0.1 at 602bd9c stand as siblings. v0.3 remains deliberately absent. Changes from v0.7. B-25's Step 0 is done — a read-only inspection, no code touched. It found B-25 is materially smaller than sized, resolved one of the two open judgment questions outright, and recovered the site the corrections note had filed as unresolvable. Manifest v0.78, build list v0.11 and standing note v0.4 all filed since v0.7.


1. What landed

Generated from git log at filing time, per v0.4's rule.

Record (loomworks-record)

| Commit | Subject | |---|---| | 5f9b8aa | build list v0.11 + standing note v0.4 | | 67cc8be | manifest v0.78 amendment instructions | | b358652 | manifest v0.78 applied | | 230a8ea | B-25 Step 0 inspection brief | | this filing | B-25 Step 0 findings v0.1 + status brief v0.8 |

Engine (loomworks-engine)

main at e106917, untouched. Read-only this session — no branch, no commit, no edit, no suite run, no database connection, no perimeter call.

Operator Layer (loomworks)

main at 7e81e30, untouched.


2. B-25 Step 0 — the inspection

Filed at inspection-briefs/loomworks-b25-step-0-findings-v0_1. Four questions, one unread.

The re-anchoring was the cheap part. The brief was commissioned because B-29 rewrote provenance construction at eighty-three sites and three of B-25's eleven sit in those same expressions, so every recorded line was suspect. Ten of eleven are unmoved. One moved — site 9, seed_extraction.py:283 → :285, and git log attributes the shift to B-29's own commit 4fd175f. B-29 did not change a single one of the eleven constructions; it changed the argument beside five of them, and the line-level collision the one-engine-front ruling was made for is discharged.

The material finding is that B-25 is smaller than it was sized. stele/actor.py:25-37 already provides actor_from_person(person), which constructs exactly what sites 5 through 9 should write. Each of those five hand-writes the same four lines with kind="contributor" over a person already typed Principal — the helper's own parameter type. And me_create_engagement.py already imports that helper at line 95 and calls it correctly at line 942 — in the same file as sites 6 and 7, which hand-construct the wrong kind. The correct pattern and the defect coexist in one file with the import already present.

So B-25 is not "eleven heterogeneous fixes": five are calls to one existing helper, one is a single line with the value in handler scope, one is a self-contained coalesce, one is a consistency choice rather than a repair, and one is a different defect class entirely. Eight of the eleven size downward.

One part sizes upward, and it was invisible before. Sites 2 and 3 are not the same fix as site 1. Their handlers declare _: None = Depends(assert_engagement_creator), and that dependency is typed -> None: it resolves the principal internally and discards it. Correcting them means either changing a dependency declared at fourteen sites across five files and called explicitly three more times, or adding a second dependency to each handler. And its legacy branch resolves no person at all — pre-Phase-25 candidates with a NULL creator return before authentication, so on that path there is no true value to write. The change request must say what it writes there. This is the only part of B-25 that is not small.

One judgment question is answered outright, against the defect list. seed_conversation.py:116 writes kind="agent" under a module-level constant, _COMPANION_ACTOR_ID, that does not vary by person and cannot. memory/base.py:81-84 requires kind companion to carry the person's own UUID"there is no separate companions table". A substrate-wide sentinel has no person to bind to, so agent is correct rather than a mislabel, and writing companion there would produce a genuinely false record. Recommend it be struck. The two unclear items become one. (The brief's own instruction — "do not assume it is a defect because it appears in a defect list" — is what this turned on.)

The other judgment question is sharpened but left to you. The escalation recipient at considerations.py:534 is taken wholesale from the request body, unvalidated. The read establishes that it is the outlier: in the very same call, closing_party is resolved from the authenticated caller; elsewhere specialist_ref is registry-validated at composition_creation.py:315, and that route resolves its acting party from auth too. And the recipient is never dereferenced — it is flattened to two scalar columns and a sweep finds no join, lookup, filter or resolution anywhere. So the stakes are low today, and the posture question is yours.

Site 11 is recovered. Corrections-note C-6 filed converse.py:690 as unresolvable because it is not an authorship construction. It never claimed to be one — the sizing findings describe it as "coalesces the request's project field against the last-viewed engagement", which is exactly what the line does, unmoved. C-6 tested it against the wrong question. The count stays eleven, no site was manufactured, and the change request should treat site 11 as an engagement-scope defect rather than an attribution one.


3. Defects found in this session's own work, recorded not smoothed

One, caught before filing. An intermediate reading reported site 4 as having moved two lines. It has not: grepping for the ActorRef( opening returns :193, while the recorded site names :195 — the id= line carrying the defect. The file is byte-identical across a317051..e106917. The lesson generalises: a recorded line number may name the defect line rather than the statement opening, and a grep for the opening will appear to show movement that has not happened. Recorded in the findings' corrections section.

And four line citations were tightened before filing after each was re-read rather than trusted — the validation call is at composition_creation.py:315, not the comment above it at :313; the close_consideration invocation opens at :524, not :527. Small, and exactly the class the standing note's "name the file and line" discipline exists to catch.


4. Ordering constraints


5. What is running

Nothing. All repositories pushed and origin-verified. No session in flight.


6. What is queued to do next

  1. B-25's change request, drafted from the Step 0 findings. The sizing has changed materially and the drafting should not inherit the old shape.
  2. B-6 — the Shaping room. Unblocked since B-5.
  3. B-34 — the twelve fetchPlatformLevel unhandled rejections on the surface; B-33 — the engine's one long-standing failure. Neither suite can report a clean run.
  4. B-32 — the Manifestation room's re-derive control.
  5. The 36-versus-37 bookkeeping — the corrections note owes an amendment; manifest v0.78 reverses C-4 and the build list already carries 36.
  6. Completion scoping note v0.3 — tidying, carried since v0.4.

7. Decision queue

| # | Question | Default | Blocks | Proceeds regardless | |---|---|---|---|---| | Q-1 | B-16 — seed v0.13. Drafting authorized 2026-07-30. Committing a seed version is an Operator act (charter F-3). The draft awaits your reading. | Commit as drafted once read. | Seed v0.13 only. | Everything. | | Q-3 | The engine baseline is not zero. test_stele_router_mount fails with a 401, unrelated to any work here. Own build-list item, or a rider on the next engine CR? | Stays red and stays recorded. | Only the ability to assert a zero-failure gate. | Everything. | | Q-5 | The escalation recipient — assertion or reference? considerations.py:534 takes the actor wholesale from the request body while every comparable field is either resolved from auth or registry-validated. It is never dereferenced, so nothing is broken today. Is the recipient the client's to assert, or the engine's to resolve? | Leave as is and record the inconsistency; it is inert until something reads the field. | Nothing. | Everything. | | Q-6 | Strike seed_conversation.py:116 from B-25? The read establishes kind="agent" is correct there, not a mislabel — the identity is a substrate-wide sentinel and kind companion structurally requires a person's id. | Strike it. The evidence is the substrate's own definition. | Nothing. | Everything. | | Q-7 | Site 10 — which door is right? The spoken door writes kind companion, the typed door kind person, same person id. A consistency choice, not a repair, and the inspection did not decide it. | Defer to B-25's change request with both readings recorded. | Site 10 only. | Everything. |

Batched Operator acts pending: one, covering two merges. F-1 deployment — CR-2026-159 (engine) and CR-2026-160 (Operator Layer) are both merged and tagged but not deployed. The launchd restart is yours and batches to cadence. No passkey ceremony outstanding (F-2). No external communication queued (F-5).


8. Anomalies

None. The inspection ran wholly inside its fences: no database, no suite, no perimeter call, no build. Nothing in the evidence base diverged from the tree in a way that halted the run — the two discrepancies found (site 11's disposition, site 4's apparent movement) were both resolved by reading rather than by escalation, and both are recorded.


9. Charter compliance

R-5 observed throughout. A read-only sweep that wrote nothing and authenticated nothing. The engine working tree was clean on entry and untouched on exit.

The discipline clause held, including where it cost something. Every claim in the findings carries a file and a line; one unread is named rather than papered over; and four citations were corrected after re-reading rather than being left approximate. The one self-inflicted misreading is recorded in the findings' corrections section rather than quietly fixed.

Nothing was inherited. Every line in the evidence base was recorded at a317051 and every line in the findings was read at e106917, including the ones that turned out identical.

R-1 for the filing, with the pre-flight passing and the findings mirrored to ~/Downloads.


DUNIN7 — Done In Seven LLC — Miami, Florida DUNIN7 — status brief — v0.8 — 2026-08-01 B-25 read where it now stands. Ten of eleven had not moved; the fix had.