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:
@@ -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
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user