Issue reports carry only opened: the tracker holds every status, so no copy can drift
The import of slice 3 (ADR 0275) was checked against every folder: no report changed since the commit it read, and the tracker holds each report's status, owner, fix, design amendment, replay and closing day. The keys are removed from all 361 reports, cycle.py refuses them in any report, and the playbooks, skills and READMEs that still pointed at them name the tracker instead.
This commit is contained in:
@@ -45,8 +45,10 @@ A design changes only through a decision.
|
||||
corrected in place and marked in the record rather than superseded
|
||||
([`02-DECISIONS/README.md`](../../02-DECISIONS/README.md)).
|
||||
2. Edit the to-be design document and set `updated:` to today.
|
||||
3. If the amendment came from an issue, set that issue's `amended-design:` to the document
|
||||
path.
|
||||
3. If the amendment came from an issue, give the issue the document path in the issue tracker:
|
||||
`amended-design` on its `issue-tracker.move` to `resolved`, or `issue-tracker.link` with kind
|
||||
`design` before then — never in the report's frontmatter
|
||||
([ADR 0275](../../02-DECISIONS/0275-the-mesh-numbers-and-tracks-its-issues-in-a-module-of-its-own-and-hq-keeps-only-the-narrative-of-a-design-or-governance-issue.md)).
|
||||
|
||||
## When something ships
|
||||
|
||||
|
||||
@@ -38,12 +38,15 @@ An issue takes one of two shapes:
|
||||
reviewed in a pull request. The folder holds the report and the diagnosis; the tracker holds everything else.
|
||||
- **Wholly in the tracker** — every other issue. Nothing is written here.
|
||||
|
||||
**The reports written before the tracker** (the folders numbered 001 to 364) still carry `status:`, `located-in:`,
|
||||
`fixed-by:`, `amended-design:`, `replay:` and `replay-none:` in their frontmatter. Those keys are the snapshot the
|
||||
import of slice 3 took from `main` on the day it ran (the note in ADR 0275 says which day and which commit), and
|
||||
they are not kept up to date: the tracker is. They are left in place because they are the record of what was known
|
||||
then, reviewed in pull requests at the time, and because removing 361 keys would say nothing the tracker does not.
|
||||
Nobody edits them.
|
||||
**`04-ISSUES/` stays, for the narrative only.** It keeps the public narrative of a design or governance issue: the
|
||||
symptom as observed, the diagnosis, what was ruled out, and why. A plain bug — a defect whose fix needs no design
|
||||
question answered — needs no folder; it is whole in the tracker.
|
||||
|
||||
**The reports written before the tracker** (the folders numbered 001 to 364) carried `status:`, `located-in:`,
|
||||
`fixed-by:`, `amended-design:`, `replay:` and `replay-none:` in their frontmatter until the import of slice 3 had
|
||||
taken them into the tracker and been checked against it, field by field; then one pull request removed them, so
|
||||
that no status is held in two places. What they said that day is in this repository's history at the commit the
|
||||
import read, which every imported issue names (`imported.commit` in `issue-tracker.get`).
|
||||
|
||||
## Steps
|
||||
|
||||
@@ -64,8 +67,8 @@ Nobody edits them.
|
||||
|
||||
Then `# NNN. The title`, the title as the tracker holds it, and the symptom as observed, as in the tracker's
|
||||
report. **No status key**: `cycle.py` refuses `status:`, `located-in:`, `fixed-by:`, `amended-design:`,
|
||||
`replay:` or `replay-none:` in a report opened after the import, because the tracker holds them and two places
|
||||
holding one fact drift.
|
||||
`replay:` or `replay-none:` in any report, because the tracker holds them and two places holding one fact
|
||||
drift.
|
||||
|
||||
**An issue wholly in the tracker** is done at this step.
|
||||
2. Investigate. The trail goes in `issue-tracker.note`, and, for a folder-backed issue, in `01-diagnosis.md` in the
|
||||
@@ -97,5 +100,5 @@ Nobody edits them.
|
||||
- **A rule states how it is checked.** The cycle's rules on an issue — a status one of the five, `located` with an
|
||||
owner, `resolved` with a fix, a core issue with its replay, `wontfix` with a reason — are refused at the write by
|
||||
`issue-tracker.move` (mesh-catalog `modules/mesh-issues`, its table test over the rules). `cycle.py` checks what
|
||||
this repository still holds: no two folders share a number, every report has frontmatter, and a report opened
|
||||
after the import carries no status key.
|
||||
this repository still holds: no two folders share a number, every report has frontmatter with the day it was
|
||||
`opened:`, and no report carries a status key.
|
||||
|
||||
Reference in New Issue
Block a user