Research 045: numbers stay with the issue tracker as ADR 0275 decided, and the review's corrections
This commit is contained in:
@@ -81,7 +81,7 @@ shared and searchable place.
|
||||
6. **Checks as refusals at write.** `records.py`, `cycle.py`, `words.py` and `index.py` judge a pull
|
||||
request after it is written. Which of their rules can become refusals of the write verb itself, and
|
||||
which only make sense across the whole record?
|
||||
7. **Import.** How are the decision records (265 files on `main` on 2026-10-10, numbered up to 0279), the designs and the playbooks imported without
|
||||
7. **Import.** How are the decision records (274 on `main` on 2026-10-11, numbered up to 0289), the designs and the playbooks imported without
|
||||
losing their history, their numbers or their links? Is the import repeatable, as the issue tracker's
|
||||
is?
|
||||
8. **What git gives today.** Review on a pull request, line comments, a history of every change with
|
||||
|
||||
@@ -27,7 +27,7 @@ come from, what changed them since, and the commit it was read at.*
|
||||
|
||||
| Fact | Measured |
|
||||
|---|---|
|
||||
| Records on `main` | 274 decision records, 44 research efforts (119 files), 55 to-be and 16 as-is designs, 8 playbooks, 361 issue narratives, the glossary: 951 files |
|
||||
| Records on `main` | 274 decision records, 44 research efforts (119 files), 55 to-be and 16 as-is designs, 8 playbooks, 361 issue narratives (479 files): 951 files, and the glossary |
|
||||
| Size | 6.9 MB of markdown, about 1.7 million tokens at four bytes a token; decision records alone 2.6 MB (about 650,000 tokens) |
|
||||
| One question, today | "what holds about the merge window": `records_search` gives 26 places in 11 documents; reading the five records and the design they point to is 85 KB, about 21,000 tokens |
|
||||
| The decision index | `records_decisions` answers 77 KB in one piece; the agent's tool-answer limit refused it inline, and it had to be read from a file in parts |
|
||||
@@ -38,7 +38,7 @@ come from, what changed them since, and the commit it was read at.*
|
||||
| Progressive insights | 39 records carry the dated marker, 55 markers in all; 2 more use an older form |
|
||||
| Change after writing | 189 of 271 traceable decision records were changed after the commit that created them; 34 paths were changed five times or more |
|
||||
| Pace | commits touching decision records: 87 in the last ten days of August, 160 in September, 274 in the first eleven days of October |
|
||||
| Number collisions | 16 decision numbers were taken twice by sessions working at once (2026-09-25 to 10-10), each repaired by a renumbering commit; 15 numbers on `main` are gaps; no research number collided |
|
||||
| Number collisions | 16 decision numbers were taken twice by sessions working at once (2026-09-25 to 10-10), each repaired by a renumbering commit; 15 numbers on `main` are gaps; no research number collided on `main` (the 043 collision of the overview never reached it) |
|
||||
| A decision's rules | 263 records have a `Decision` section; only 37 of them write it as numbered rules with a bold lead (198 rules in all); the rest write prose |
|
||||
| Drawings | no file but markdown in the repository; no diagram source; 22 designs carry diagrams drawn in text characters |
|
||||
| Knowledge with no home | the repository is public, and its README says what only makes sense to someone who knows this installation "is either a note in the wrong place or a disclosure"; one agent's private notes hold 89 files for one repository on one node, and issue 367 (a session's memory stays on the node where it was learned) is open |
|
||||
@@ -86,7 +86,7 @@ That is the division the issue tracker already made for issues
|
||||
the tracker holds number, status and links, and hq held the narrative. Section 9 takes issues one step further,
|
||||
on the operator's word: their narrative leaves this repository too.
|
||||
|
||||
Option A (git stays the truth, a module indexes it) was weighed and is not chosen. It keeps review, but it
|
||||
Option A (git stays the truth, and a module's write verbs open pull requests, with numbers from a counter) was weighed and is not chosen. It keeps review, but it
|
||||
keeps the rule-level links in prose and the refusals after the fact, which is the cause of section 0's mess.
|
||||
Option B in full (the reasoning moves into the store too) is not chosen either: it would rebuild review, line
|
||||
comments, history and diff for prose, which git already gives.
|
||||
@@ -125,8 +125,10 @@ at once. The issue tracker hands out numbers by compare-and-set on a counter key
|
||||
- **A reserved number is spent.** A proposal that is abandoned keeps its number with status `withdrawn`, who
|
||||
reserved it and when. Gaps already exist (15 on `main`) and harm nothing; a reused number would.
|
||||
- **The counter starts above the highest number on `main` and on every open branch**, as the tracker's did.
|
||||
- **The counters live in the knowledge base.** To-be 53 planned decision and research counters in the tracker
|
||||
only because nothing else would hold them; the tracker keeps the issue counter alone.
|
||||
- **The counters stay where ADR 0275 put them.** Its rule 8 decided that the issue tracker hands out decision
|
||||
and research numbers too, in its second slice; to-be 53 §4 so far names only the issue counter. The knowledge
|
||||
base's `reserve` asks the tracker for the number, so one counter holds every sequence and no accepted record
|
||||
is superseded for it.
|
||||
|
||||
## 4. Rules and typed links
|
||||
|
||||
@@ -230,7 +232,8 @@ What the tracker needs to hold it:
|
||||
- **an issue's documents**: the report it already holds, plus a diagnosis and a resolution as named documents
|
||||
of the issue, each with its author and date, revised in place with history (notes stay append-only);
|
||||
- **an import** of the 361 folders, repeatable, keeping each issue's number and dates;
|
||||
- **links** from records: 250 files in this repository link into `04-ISSUES/` 765 times. Those links become
|
||||
- **links** from records: 250 files in this repository mention a path into `04-ISSUES/` 765 times, counted
|
||||
as every `04-ISSUES/NNN` path in the text (markdown links alone are fewer, about 660). Those mentions become
|
||||
plain "issue N" references that the knowledge base and the tracker resolve, rewritten in one pull request
|
||||
once the import is proven; the link check in `records.py` then refuses a new link into `04-ISSUES/`.
|
||||
|
||||
@@ -240,7 +243,8 @@ decision record.
|
||||
## 10. Slices
|
||||
|
||||
1. **Clean the input** (this repository, one pull request): repair the loose links of section 7, so the import
|
||||
reads clean records. Beside it, a shared instruction section proposed for every session: take a decision
|
||||
reads clean records. Done in the pull request that declares every partial supersession in both records
|
||||
and adds the `partial-supersession` check. Beside it, a shared instruction section proposed for every session: take a decision
|
||||
or research number from the counter once it exists, name a partial supersession in a field, never only in
|
||||
prose.
|
||||
2. **The knowledge base, decisions and research**: a Go module serving one seat held once for the mesh, on
|
||||
@@ -251,7 +255,7 @@ decision record.
|
||||
| `ask` | the records and rules that bear on a question, ranked: number, kind, status, title, and whether each rule still holds or what changed it |
|
||||
| `get` | one record: its rules, its links both ways, what changed it since; its reasoning's text only when asked |
|
||||
| `holds` | for a topic or a record, the rules in force now, each with the record it comes from |
|
||||
| `reserve` | the next number of a kind, spent whether or not the record lands |
|
||||
| `reserve` | the next number of a kind, from the issue tracker's counter (section 3), spent whether or not the record lands |
|
||||
| `propose` | a new record's structure, status `proposed` |
|
||||
| `import` | this repository's decisions and research at a commit, repeatable |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user