ADR 0290 and 0291: the operator's confirmations, no folder rule before issue 427, the verb return, the documents' row in to-be 53, and both senses of knowledge base
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery superseded: a newer head of the same pull request

This commit is contained in:
2026-10-11 01:25:11 +02:00
parent 4c4d96874f
commit b174269ec1
6 changed files with 24 additions and 19 deletions
@@ -57,7 +57,7 @@ rule 8 already decided that the issue tracker hands out decision and research nu
comments, history and diff for prose, which git and the forge already give, for records that are edited after they
are written as often as these are.
3. **Divided by layer: the store holds each record's structure and its clauses; hq keeps its reasoning.** Adopted.
It is what the operator chose on 2026-10-11 when asked what a clean start would pick, and the division ADR 0275
It is what the research recommended when the operator asked on 2026-10-11 what a clean start would pick, and the operator chose it, and the division ADR 0275
already made for issues, carried down to the statement a decision makes.
### The unit
@@ -74,7 +74,7 @@ rule 8 already decided that the issue tracker hands out decision and research nu
2. **Nobody: drafted clauses are served as they are.** Rejected: a summary nobody checked would speak as the record's
word, which is the work-that-reports-success-and-did-nothing fault.
3. **A second judgement, independent of the one that drafted them, confirms each record's clauses against its text;
the operator is told per topic and may send any record back.** Adopted. A clause keeps its source, so an answer says
the operator is told per topic and may send any record back.** Adopted, and confirmed by the operator on 2026-10-11. A clause keeps its source, so an answer says
whether a clause was written by the record's author or drafted and confirmed.
## Decision
@@ -105,7 +105,7 @@ rule 8 already decided that the issue tracker hands out decision and research nu
6. **An answer is the shape agents need, bounded.** The verbs are `ask` (records and clauses bearing on a question,
ranked, each saying whether it holds or what changed it), `get` (one record: clauses, links both ways, what changed
it since, its reasoning only when asked), `holds` (the clauses in force for a topic or a record), `links`,
`reserve`, `propose`, `import` and `confirm` (send a record's drafted clauses back). Every answer names the commit of this repository it was read at and stays under
`reserve`, `propose`, `import` and `return` (send a record's drafted clauses back to be drafted again). Every answer names the commit of this repository it was read at and stays under
a size bound that `ask`, `get` and `holds` state; the default is 4 KiB.
7. **State is in a database in the store**, provided to the module, not in buckets: `ask` needs ranked full-text
search, which the store's server does and a bucket does not. This narrows nothing in
@@ -53,15 +53,17 @@ the public repository loses is the story of how a question was found, not the an
2. **Everything in the tracker; hq keeps no issue content.** Adopted.
3. **Everything in the tracker, and hq keeps a generated public copy of every resolved design or governance issue.**
Rejected for now: it keeps a second copy, and the public reader who needs the outcome has the decision record. This
was the research's open question 2; an export, if it is wanted later, is a decision of its own.
was the research's open question 2; the operator confirmed no export on 2026-10-11. An export, if it is wanted
later, is a decision of its own.
## Decision
1. **The issue tracker is the truth for an issue whole**: its number, status, links, notes, and its **documents**,
the report, a diagnosis and a resolution. A document is kept with its author and date, revised in place with its
history kept; a note stays appended and never edited.
2. **This repository keeps no issue content.** No new folder is opened under `04-ISSUES/`. `issue-tracker.open` loses
its `record` argument once the documents are built.
2. **This repository keeps no issue content.** Once the tracker holds an issue's documents (issue 427), no new folder
is opened under `04-ISSUES/`, `issue-tracker.open` loses its `record` argument, and playbook 03 and `AGENTS.md`
say so; until then playbook 03 stands as it is written.
3. **The 361 folders are imported into the tracker, and then removed.** The import reads every folder through the
records module at a commit and writes each document onto the issue of the same number, creating what is absent and
never overwriting; a second run changes nothing and says so. The folders are removed in one pull request only
@@ -72,8 +74,8 @@ the public repository loses is the story of how a question was found, not the an
5. **No issue content is exported to this repository.** The public record of a design question is the decision
record it led to.
6. **The work is tracked by issue 427**: the documents in the tracker, the import, the mentions rewritten, the folders
removed, and playbook 03 changed to match. Until it lands, an issue that already has a folder keeps it, and a new
design or governance issue is opened in the tracker without one.
removed, and playbook 03 changed to match. Until it lands, every folder stays and playbook 03 is followed as it is
written.
## Consequences
@@ -89,13 +91,13 @@ the public repository loses is the story of how a question was found, not the an
## How it is checked
- **No new folder under `04-ISSUES/`** (rule 2): from the pull request that removes the folders, `records.py`
refuses a new path into `04-ISSUES/` (rule 4), and `cycle.py` refuses a folder. Until then, a reviewer refuses a
pull request that adds one, and the issue tracker's `open` no longer offers `record` once the documents are built.
- **No new folder under `04-ISSUES/`** (rule 2): from the pull request that removes the folders (issue 427),
`records.py` refuses a new path into `04-ISSUES/` (rule 4), and the issue tracker's `open` no longer offers
`record`.
- **The import loses nothing** (rule 3): before the folders are removed, every issue's documents are compared with its
folder at the import's commit, and the comparison's result is written on issue 427.
- **An issue read whole** (rule 1): the issue tracker's tests of its documents, built under issue 427, listed in
[to-be 53](../03-DESIGN/01-to-be/53-the-issue-tracker.md) §7.
- **An issue read whole** (rule 1): the issue tracker's tests of its documents, built under issue 427, as the row
for them in [to-be 53](../03-DESIGN/01-to-be/53-the-issue-tracker.md) §7 says.
## References