ADR 0290 rule 8 and to-be 55: a refresh repairs drafted records too, as a new version
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed

This commit is contained in:
2026-10-11 12:38:04 +02:00
parent d2de5ddf8c
commit 4ea4cf6529
2 changed files with 11 additions and 3 deletions
@@ -25,6 +25,10 @@ extends: 02-DECISIONS/0153-the-record-is-read-by-a-module-and-the-console-lists-
> inference layer. Following that, the knowledge base now reviews a proposal itself, through a fresh judgement. Option 3 of
> *How a record is reviewed*, rule 4, rule 6 and the consequences say so.
> **Updated — 2026-10-11.** Rule 8 gains `refresh`: comparing every imported record with its file found fields the
> first import did not hold and clauses read from the wrong list (issue 487). A refresh writes a new version and
> overwrites nothing, so the rule's *never overwrites* stands.
## Context
[Research 045](../01-RESEARCH/045-a-knowledge-base-the-mesh-writes/00-overview.md) measured, on 2026-10-11, how an
@@ -150,7 +154,9 @@ rule 8 already decided that the issue tracker hands out decision and research nu
([ADR 0041](0041-events-are-a-relationship.md)), carrying what changed and who changed it.
8. **The import reads this repository at a commit and can run again.** It writes every decision record and research
effort whole, at its own number, with the commit as its first version's source; it creates what is absent, never
overwrites, never advances a counter, and a second run changes nothing and says so. A record whose clauses are
overwrites, never advances a counter, and a second run changes nothing and says so. With `refresh` it re-reads a
record nobody but the import and the knowledge base's own drafting has written, and writes what an earlier import
misread as a new version naming why (to-be 55 §8). A record whose clauses are
written as numbered statements gets them as `written`. A prose record gets them `drafted` by the agent's judgement
([ADR 0278](0278-the-issue-tracker-checks-every-new-issue-for-a-duplicate-through-a-judgement-the-agent-makes-without-tools.md)),
then `confirmed` by a second judgement that sees only the record and the drafts; the operator is told per topic and
+4 -2
View File
@@ -156,8 +156,10 @@ advances a counter; a second run changes nothing and says so. Records written in
while the first slice does not take writes yet, are taken in by running it again.
**Refresh.** `import` with `refresh` re-reads, at the commit given, every record whose versions were all written by
the import or a refresh, with nothing waiting over it, and writes the corrected record as a new version naming why; a record anyone else wrote a version of is
never touched. It repairs what an earlier import misread (issue 487) and is idempotent: a second run changes
the import, a refresh, or the knowledge base's own drafting and confirming of clauses, with nothing waiting over
it, and writes the corrected record as a new version naming why; a record anyone else wrote a version of is
never touched. Clauses already drafted and confirmed are kept when the Decision section's text is unchanged, and
drafted again when it changed. It repairs what an earlier import misread (issue 487) and is idempotent: a second run changes
nothing. `dry-run` lists what it would change. Once this repository holds no records, `import` refuses rather than
reporting nothing created (issue 488).