Version. 0.2 · Date. 2026-08-10 · Author. Claude.ai (drafting) / Marvin Percival (approving and correcting).
Target. /Users/dunin7/loomworks-engine and /Users/dunin7/loomworks.
Baseline. Engine 5857f52, surface 40319a1. CC confirms both at Step 0.
Companion to. scoping-notes/loomworks-b67-organized-view-citability-scoping-note-v0_2.md.
Halt discharged. completion-records/loomworks-cr-2026-196-b67-halted-at-step-1-v0_1.md — v0.1 halted at Step 1. This version answers it and authorises the build.
Charter. Autonomous regime. Status. Ready for CC execution. Step 1 is done; §5's verified items carry forward and are not to be re-established.
v0.1 put the organized-view citation in structured_data. That was wrong, and it contradicted this CR's own §0.1.
§0.1 settled that a retrieved note and standing context are not the same kind of thing, and that one channel with a discriminator would flatten a real distinction into a type tag. v0.1 then drafted exactly that mistake one level up: it accepted the ruling about the kind and put the new kind in the same slot — a slot that holds one payload, written by an if/elif chain, whose five existing members are all per-turn lists.
The framing that settles it, and it governs the build:
> structured_data means what this turn produced; the organized view is what the turn was given. A separate field says that; a list asserts they're the same sort of item, ordered.
This is a correction to a ruling that was already made and then not followed, not a new decision. Recorded that way deliberately: the failure was applying a distinction at one level and dropping it at the next, which is worth being able to recognise again.
Precedence is refused, and the refusal is part of the ruling. Any ordering yields a citation absent because it was displaced, indistinguishable on reload from absent because there was none — breaking the exact contract CR-2026-185 exists to protect, and degrading worst on precisely the turns B-67 is for (an answer built from retrieved notes and shaped by the arrangement).
Step 1 established something v0.1 did not know when it wrote §0.3.
load_engagement_context serves from a module-level cache keyed on engagement_version. So a re-read at write time would consult the database, not the cache — and if a derivation landed between prompt assembly and the turn write, the citation would name a Manifestation the model never saw.
Correct almost always; wrong exactly when it matters. Cite-as-rendered was the right rule for a stronger reason than the one originally given, and gate item 1's demand for a test where stored ≠ rendered is aimed at a reachable failure rather than a theoretical one.
Three rulings, already given:
structured_data kind"; the ruling's own reasoning requires a separate field.) A retrieved note and standing context are not the same kind of thing; one channel would flatten a real distinction into a type tag.On any engagement with a current Manifestation, the model receives an ORGANIZED VIEW block on every turn — rationale (clipped), group labels, per-group counts — carrying no identifier of any kind. It is standing context, not retrieval-triggered.
So an answer can be shaped by an arrangement it cannot attribute. This is B-61's defect in a different channel, and the note confirms the item's own hypothesis: it is cheaper, because Manifestation is a MemoryObject with a durable id and version, plus engagement_version_at_derivation — which makes it more citable than an assertion, since it names which state of Memory the arrangement was an arrangement of.
structured_data is already a kind-discriminated union, so this is the established extension point rather than a new mechanism.
Engine. A separate persisted field on the turn — not a structured_data member, per §0A — carrying the Manifestation's id, version, and engagement_version_at_derivation, written on turns where the ORGANIZED VIEW block was assembled, from the object the block was rendered from, per §0.3 and §0B.
Carry the Manifestation on EngagementContext, following B-61's precedent on that same model (assembled_text_without_notes) for the reason its own comment already states: the context is cached, so what the turn was given is the cached object, not whatever the database holds at write time.
Surface. Render it as a citation alongside existing sources, distinguishable from a retrieved note. What the person sees should make clear this is how the material was arranged, not another piece of material.
Not on turns without the block. Tier 1 and Tier 2 engagements have no organized view; nothing should appear for them.
Persistence. CR-2026-185 established that sources survive a reload. This kind follows the same path — and the same rule: an answer with no organized view is different from one whose citation was never recorded. Do not let absent render as empty.
It does not fix B-69, and must not try. The note establishes the derivation path is a Kind B contact point: the rationale is a generated claim whose subject is the seed's purpose, and when the seed moves, the Manifestation is not superseded, nothing recomputes, and the stale rationale sits beside the current seed in the same prompt, every turn. That is recorded, not designed around. No invalidation, no staleness flag, no recomputation.
But it makes the drift discoverable, for free. The cited object already carries seed_version, so an Operator following the citation can find that the arrangement was organised under a seed that has since moved. That is a side effect of citing the object — which this CR wants for its own reasons — not a remedy.
| Step | What | Mode |
|---|---|---|
| 0 | Pre-flight, both repos. | Auto |
| 1 | ~~Verify the note's findings.~~ DONE at v0.1 — halted, reported, discharged by §0A/§0B. §5's verified items carry forward. | Complete |
| 2 | New kind + write path + tests. | Auto |
| 3 | Persistence per §2 + tests, including absent-vs-empty. | Auto |
| 4 | Surface rendering + tests. | Auto |
| 5 | Both suites; gates clean. | Auto |
| A | Checkpoint. | Checkpoint |
| 6 | Tag cr-2026-196-b67-organized-view-citation. Push. | Auto |
structured_data payload still carries its citation — the two do not compete, which is the whole of §0A.
Execute CR-2026-196 v0.1 at ~/Downloads/cr-2026-196-loomworks-b67-
organized-view-citation-v0_1.md. Confirm the CR number first.
Drafted from your own scoping note v0.2, which is the source for every
fact in it. Where the CR and the note disagree, the note governs —
verify against the code, not against my summary of your work.
§0 carries three settled rulings. Don't re-raise them.
The test that matters is gate item 1: prove the citation records the
object RENDERED FROM, not a re-read. A test where the stored object
differs from the rendered one is the only way to show that — if they're
always identical in the test, the assertion proves nothing.
HALT at Step 1 if the rendered object isn't reachable at the write
site. Cite-as-rendered isn't negotiable, and re-reading would silently
produce a citation that's correct almost always.
§3: this does NOT fix B-69 and must not try. The Kind B contact point
stays recorded and unremedied. The drift becoming discoverable is a
side effect of citing an object that already carries seed_version — not
a remedy, and the completion record should say so plainly so nobody
later reads B-69 as partly closed.
DUNIN7 — Done In Seven LLC — Miami, Florida CR-2026-196 — B-67 organized view citation — v0.2 — 2026-08-10