Version. 0.1 · Date. 2026-08-07 · Author. Claude.ai (drafting) / Marvin Percival (approving).
Target. /Users/dunin7/loomworks-engine and /Users/dunin7/loomworks.
Baseline. Engine post CR-2026-184; surface post CR-2026-184. CC confirms at Step 0.
Companion to. inspection-briefs/loomworks-small-work-sweep-step-0-findings-v0_1.md §6.
Charter. Autonomous regime. Status. Ready for CC execution. Sequencing: after CR-2026-183 resolves, since what counts as a source may change.
Sources shown with an answer disappear when the conversation is reloaded. The Step 0 sweep established the cause precisely: they were never persisted into conversation history at all — not dropped on refresh. There is nothing to restore, only somewhere new to store them going forward.
Design decision, settled in advance: a new structured_data variant on the conversation-history write, engine-side. This was the sweep's own finding as the only technically sound path.
B-61 may change what an answer's sources are — if Tier-2 comes to contribute to AnswerSource, persisting today's set would persist an incomplete one and make it durable. Building the persistence before the definition is settled means writing the wrong thing permanently.
If CR-2026-183 has not resolved at Step 0, halt. This is a real dependency, not ordering preference.
Engine.
structured_data variant carrying an answer's sources, written at the same point the answer itself is written to conversation history.test_sources_cannot_contain_an_identifier_not_retrieved) must hold across persistence, and CC extends it to cover the reload path.Surface.
| Step | What | Mode |
|---|---|---|
| 0 | Pre-flight. Confirm CR-2026-183 resolved. Halt otherwise. | Auto, hard gate |
| 1 | structured_data variant + write path + tests. | Auto |
| 2 | Non-fabrication guarantee extended across persistence and reload. | Auto |
| 3 | Historical-answer distinction; report the mechanism. | Auto |
| 4 | Surface read + render + tests. | Auto |
| 5 | Both suites; ruff 0; mypy at/below baseline. | Auto |
| A | Checkpoint. | Checkpoint |
| 6 | Tag cr-2026-185-b52-persist-answer-sources. Push. | Auto |
Execute CR-2026-185 v0.1 at ~/Downloads/cr-2026-185-loomworks-b52-
persist-answer-sources-v0_1.md. Confirm the CR number first.
HARD GATE at Step 0: CR-2026-183 (B-61, citability) must have resolved.
B-61 may change what an answer's sources ARE, and persisting today's
set before that settles would make an incomplete set durable. Halt if
it hasn't.
B-52's cause is settled: sources were never persisted at all, not
dropped on refresh. Nothing to restore — somewhere new to store them.
The remedy (a structured_data variant on the conversation-history
write) is pre-decided; don't reopen it.
Two things that matter more than the mechanism:
- The non-fabrication guarantee must hold across persistence AND
reload. Extend the existing test, don't assume it carries.
- Historical answers have no stored sources and must NOT render as
"no sources" — that's a different claim. Report how you distinguished
them.
Do not backfill historical answers. The retrieved rows weren't recorded
and reconstructing them would be inventing provenance.
DUNIN7 — Done In Seven LLC — Miami, Florida CR-2026-185 — B-52 persist answer sources — v0.1 — 2026-08-07