The numbering is the flow: decisions are 02, design is 03

papa-hq reads 01 research -> 03 decision -> 02 design. The order is a
scar, not a choice: 02-DESIGN existed from its initial commit, and when
adr/ was finally promoted on 2026-07-13 it took the next free number
rather than its place in the sequence. By then design was too settled to
renumber.

hal-hq was three commits old, so it is not. adr/ becomes 02-DECISIONS and
02-DESIGN becomes 03-DESIGN, and following the folder numbers now walks
the process in the order it happens: research produces a decision, the
decision authorises a design.

00-GENESIS becomes 00-META, matching papa's rename from the same
restructure.

Every path reference rewritten across documents, frontmatter, playbooks
and skills. All links resolve; all 58 frontmatter blocks parse and their
path fields still point at files that exist.
This commit is contained in:
2026-08-23 18:05:11 +02:00
parent f05e4a0dce
commit c0b35652d0
72 changed files with 217 additions and 204 deletions
@@ -31,14 +31,14 @@ exists to catch — a step that failed, reported success, and left the next step
state that was never produced.
It is also a direct violation of a decision already taken and recorded:
[ADR 0008](../../adr/0008-a-failed-step-fails-the-job.md) says a step that fails must fail the
[ADR 0008](../../02-DECISIONS/0008-a-failed-step-fails-the-job.md) says a step that fails must fail the
job. That record notes the rule is applied instance by instance and enforced by no mechanism.
This is an instance where it was never applied.
## Evidence
- Observed 2026-08-22 while declaring the virtualisation package required by
[ADR 0016](../../adr/0016-a-lab-node-is-a-virtual-machine.md).
[ADR 0016](../../02-DECISIONS/0016-a-lab-node-is-a-virtual-machine.md).
- A fix is written and open as a pull request, unmerged since 2026-08-20.
## Open questions
@@ -17,7 +17,7 @@ A manifest can therefore appear to restrict a port and restrict nothing.
## Why this matters
This is the failure mode [`how-we-build.md`](../../00-GENESIS/how-we-build.md) names directly:
This is the failure mode [`how-we-build.md`](../../00-META/how-we-build.md) names directly:
*an unenforced rule is indistinguishable from a wrong one, and costs more, because people
believe it.* Here it is worse than unenforced — the declaration reads as a restriction, so a
reviewer checking whether a port is scoped will find that it is, and be wrong.
@@ -21,7 +21,7 @@ recoverable by retrying — it removes the ability to issue a certificate anyone
The consequence lands hardest on exactly the work most likely to iterate: standing up a new
node, changing how names resolve, or testing the lab's certificate authority split
([ADR 0016](../../adr/0016-a-lab-node-is-a-virtual-machine.md)).
([ADR 0016](../../02-DECISIONS/0016-a-lab-node-is-a-virtual-machine.md)).
## Evidence
@@ -29,13 +29,13 @@ coverage was assumed, not checked.
## Evidence
- The workspace was removed by pull request #240 on 2026-06-04
([ADR 0007](../../adr/0007-no-npm-workspace.md)).
([ADR 0007](../../02-DECISIONS/0007-no-npm-workspace.md)).
- The harness has not built since that date.
- Recorded in the knowledge base as a standing entry, not as a fixed incident.
## Relationship to the lab
[`02-DESIGN/01-to-be/01-end-to-end-testing.md`](../../02-DESIGN/01-to-be/01-end-to-end-testing.md)
[`03-DESIGN/01-to-be/01-end-to-end-testing.md`](../../03-DESIGN/01-to-be/01-end-to-end-testing.md)
designs end-to-end testing on a lab mesh, which would replace this harness rather than repair
it. That is a reason to decide its fate deliberately, not a reason to leave it broken and
unmentioned: until the lab exists, this is the coverage the pipeline is presumed to have.
@@ -51,7 +51,7 @@ checked it — including in the same commit that wrote the rule.
is this a periodic sync of a repository into it, or a search surface that reads the
repository directly?
- Which store — the flat symptom-indexed memory, the structured archive, or both? They have
different lifecycles ([`02-DESIGN/00-as-is/07-knowledge.md`](../../02-DESIGN/00-as-is/07-knowledge.md)),
different lifecycles ([`03-DESIGN/00-as-is/07-knowledge.md`](../../03-DESIGN/00-as-is/07-knowledge.md)),
and this content is governed rather than incidental.
- Public repository, private mesh: the sync direction must not become a path for mesh-specific
content to arrive **into** these documents.
+1 -1
View File
@@ -41,6 +41,6 @@ amended-design: # design doc path, when the root cause was a design gap
## Rules
- Anyone may open an issue. No localisation is required to report one.
- The full flow is playbook [`00-GENESIS/process/03-issues.md`](../00-GENESIS/process/03-issues.md).
- The full flow is playbook [`00-META/process/03-issues.md`](../00-META/process/03-issues.md).
- Closed issues are never deleted — they are the mesh's symptom-to-component memory.
- `wontfix` is legitimate and requires a sentence saying why.