DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path change-requests/cr-2026-195-loomworks-b66-turn-authorship-v0_1.md

DUNIN7-M4 — INFRASTRUCTURE CHANGE REQUEST

CR-2026-195 — B-66: a Contributor speaking is credited as the Operator (v0.1)

Version. 0.1 · Date. 2026-08-09 · Author. Claude.ai (drafting) / Marvin Percival (approving). Target. /Users/dunin7/loomworks and /Users/dunin7/loomworks-engine — Step 1 establishes which. Baseline. Engine 4f9374f, surface 40319a1. CC confirms both at Step 0. Companion to. architecture/loomworks-architecture-specification-v0_6.md:613, where this is recorded as a known open item; standing-notes/dunin7-build-list-v0_50 (B-66). Charter. Autonomous regime. Status. Ready for CC execution, with a read-first Step 1.


1. Summary

The architecture specification records it plainly at :613:

> The substrate distinguishes Operator from Contributor at the membership level, but the surface treats all turns as if they're from the Engagement's primary Operator. A Contributor speaking gets labeled as if they were the Operator. Role-aware author labels need wiring.

This is a misattribution, not a missing feature. The surface is not failing to show who spoke — it is showing the wrong person. In a system whose posture is that claims are checkable and provenance is preserved, a turn attributed to someone who did not make it is the most serious defect class available.

Sourced, not asserted. The :613 quotation is from CC's own architecture-document read during the B-63 investigation. Everything else about the current behaviour is unestablished and Step 1 must find it.


2. Step 1 — read before building

CC establishes and reports:

  1. Is the substrate's distinction reaching the wire? The specification says the substrate distinguishes Operator from Contributor at membership level. Does the conversation-turn response carry who actually spoke, or does the wire drop it before the surface ever sees it? This determines whether the CR is surface-only or spans both repos.
  2. What the surface does today — is it reading a field and mislabelling it, or is it defaulting because there is nothing to read? Those are different defects with different fixes.
  3. What a turn's author is displayed as. The Companion's own turns are labelled with the Companion's name (renameable, user-facing). What does a human turn show — a name, a role, an avatar, nothing?
  4. Whether anything else consumes turn authorship — recall, answer sources, Memory contribution attribution. If a misattributed label is the only consequence, this is a display fix. If anything downstream has been reading the wrong author, halt and report — that is a larger finding than a label.

Halt if Step 1 finds the substrate does not actually carry per-turn authorship at all. Making it do so is a different CR.


3. Scope

Show who actually spoke. A Contributor's turn is attributed to that Contributor; an Operator's turn to the Operator.

Plain terms. Author labels are operator-facing surface. Whatever the substrate calls these roles, the surface shows plain language.

Only-show-what-is-available. If a turn's author genuinely cannot be resolved — a historical turn recorded before authorship was carried, if any exist — it must not be labelled as the Operator by default. An unknown author is not the Operator. CC decides what an unresolvable author displays as and reports it; the one thing it must not be is a confident wrong name.

Historical turns. If turns already in the record carry no author, they cannot gain one — the same reasoning as CR-2026-194 §2. B-70's ratification does not cover this: authorship is an observed fact, not a value recomputable from the log. Do not backfill. Report how many such turns exist.


4. Out of scope


5. Seed-mutability impact

B-69 applies. If turn authorship reads or derives from seed state — for example if role definitions live in the seed — record the contact point with its Kind label.


6. Build steps

| Step | What | Mode | |---|---|---| | 0 | Pre-flight, both repos. | Auto | | 1 | Read per §2. Report all four. Halt if the substrate carries no per-turn authorship, or if anything downstream reads the wrong author. | Auto, conditional halt | | 2 | Engine: carry authorship to the wire, if Step 1 finds it missing there + tests. | Auto, conditional | | 3 | Surface: label turns by actual author + tests. | Auto | | 4 | Unresolvable-author case per §3 + test. | Auto | | 5 | Both suites; gates clean. | Auto | | A | Checkpoint. | Checkpoint | | 6 | Tag cr-2026-195-b66-turn-authorship. Push. | Auto |


7. Acceptance gate

  1. A Contributor's turn displays that Contributor, not the Operator — tested with an actual Contributor turn, not asserted from a label mapping.
  2. An unresolvable author is never displayed as the Operator. Whatever it shows instead is reported with reasoning.
  3. Historical turns without authorship are counted and left alone, recorded as deliberate.
  4. Step 1's four findings recorded, especially #4 — whether anything downstream read the wrong author.
  5. Suites green, both gates clean. Seed-mutability check recorded, including as a null finding.

8. Kickoff prompt


Execute CR-2026-195 v0.1 at ~/Downloads/cr-2026-195-loomworks-b66-turn-
authorship-v0_1.md. Confirm the CR number against the ledger first.

B-66: the surface labels every turn as the engagement's primary
Operator, so a Contributor speaking is credited as the Operator. The
architecture specification records it at :613. This is a
misattribution, not a missing feature — the surface shows the wrong
person, not no person.

Step 1 decides the CR's shape. The key question is whether the
substrate's Operator/Contributor distinction reaches the wire at all,
or is dropped before the surface sees it. Surface-only versus both
repos turns on that.

Question 4 matters most: does anything BESIDES the label read turn
authorship — recall, answer sources, Memory contribution attribution?
If something downstream has been consuming the wrong author, HALT and
report. That's a larger finding than a label.

HALT also if the substrate carries no per-turn authorship at all.

§3's rule is not negotiable: an unknown author is not the Operator.
Decide what an unresolvable author displays as and report it — the one
thing it must not be is a confident wrong name.

Do not backfill historical turns. Authorship is observed, not
recomputable, so B-70's ratification does not reach it. Count them and
leave them.

DUNIN7 — Done In Seven LLC — Miami, Florida CR-2026-195 — B-66 turn authorship — v0.1 — 2026-08-09