Merge pull request 'One word, one thing: the old "knowledge base" uses say what they meant (issue 430)' (#318) from fix/430-one-word-one-thing into main

This commit was merged in pull request #318.
This commit is contained in:
2026-10-11 19:12:43 +00:00
4 changed files with 13 additions and 13 deletions
+4 -4
View File
@@ -1,7 +1,7 @@
---
status: canonical
updated: 2026-08-23
derives: knowledge-base constitution page
updated: 2026-10-11
derives: the constitution page
decisions:
- "ADR 0020"
---
@@ -198,8 +198,8 @@ declaration was never wrong. Nothing ever asked the system.
### Search the record before forming a hypothesis
The first action on any error message, failing service or unexpected behaviour is to search the
operational memory for the literal error text — before a hypothesis, not after one fails. The
knowledge base is indexed on symptoms.
record for the literal error text (`records.records_search`) — before a hypothesis, not after one fails.
The search matches the words as written, so search with the error's own words.
This fires hardest on *familiar* ground, where a confident trail feels like progress. Two
entries were each rediscovered from scratch over several hours in a single session because the
+5 -5
View File
@@ -8,15 +8,15 @@ design permits.
## What belongs here, and what does not
| Belongs in `04-ISSUES` | Belongs in the knowledge base |
| Belongs in `04-ISSUES` | Belongs with the fix's own lesson, not here |
|---|---|
| The design permits a failure to be silent | How to fix one occurrence of it |
| A documented rule is enforced by nothing | A command that works around it |
| A stated invariant is false in practice | A node-specific quirk |
| The owning component is unknown and finding it needs the whole mesh in view | Symptom → fix, once the answer is known |
The knowledge base already holds the operational record and is indexed on symptoms. This
folder is not a second copy of it. An issue here is a question HQ must **answer**, not an
A fix's lesson (symptom → fix) is written where a search by the symptom's literal words finds it
(`records.records_search`). This folder is not a second copy of it. An issue here is a question HQ must **answer**, not an
incident someone must **clear**.
## The issue tracker holds the number and the status
@@ -109,8 +109,8 @@ import read, which every imported issue names (`imported.commit` in `issue-track
- A number never moves. A folder carries the number the tracker gave; a folder whose number collides with
another (one numbered before the tracker, or by hand) is a fault, and `cycle.py` refuses two records
sharing a number.
- An issue whose answer is a general lesson should also be written to the knowledge base, so
the next person searching a symptom finds it. Both, not either.
- An issue whose answer is a general lesson should also have that lesson written where a search by
the symptom's literal words finds it, so the next person searching it finds it. Both, not either.
- `wontfix` is legitimate and requires a sentence saying why; the tracker refuses it without one.
- **An agent says when it starts work on an issue**, by moving it to `diagnosing` or `fixing` with `by`. Two agents
never start the same work without knowing: the second is refused, naming the first.
+2 -2
View File
@@ -1,7 +1,7 @@
# Playbook 05 — Constitution sync
Implements ADR 0021: HQ is
the source of the constitution, and the knowledge-base page is derived, never edited.
the source of the constitution, and the constitution page is derived, never edited.
**Trigger.** [`how-we-build.md`](../how-we-build.md) changed a rule that the mesh enforces at
runtime.
@@ -24,7 +24,7 @@ and, per the repository's own rule, it is how the rule "HQ is the source" is che
the derived page carries the rule alone.
2. Record the change as a decision — a rule the mesh enforces is architecturally significant.
Playbook [02](02-graduation.md).
3. Publish the derived page to the knowledge base under the constitution slug, replacing its
3. Publish the derived page where the mesh keeps the constitution page, under its slug, replacing its
body. Keep the section numbering stable: the meeting orchestrator and the review fragments
cite sections by number.
4. Verify the derived page reads back with the change present. A publish that reported success
+2 -2
View File
@@ -77,8 +77,8 @@ in running prose; a quotation keeps its words.
that exists; [`03-DESIGN/01-to-be/`](03-DESIGN/01-to-be/) describes the one being built
toward. Every design doc says which it is in `layer:`. A statement about the future does not
belong in an as-is document, and an as-is document is never edited to describe an intention.
- **`00-META/how-we-build.md` is the source of the mesh constitution.** The knowledge-base
constitution page is derived from it — see playbook
- **`00-META/how-we-build.md` is the source of the mesh constitution.** The constitution page
is derived from it — see playbook
[`05-constitution-sync.md`](00-META/process/05-constitution-sync.md). Never edit the
derived page directly.