Files
hq/03-DESIGN/00-as-is/07-knowledge.md
T
jschoubben 3f6d939930 Every decision is a record; the ledger is gone
papa-hq has no ledger. Its root is AGENTS.md, CLAUDE.md, README.md, every
decision is a numbered record, and its graduation playbook has no path for
an unrecorded decision. hal-hq now matches.

The ledger's 41 entries classified as: 10 restating a record, 11 restating
design docs, 15 describing how this repository works with the reasoning
sitting in a README rather than anywhere citable, 3 small rules with no
home, 2 superseded stubs. Mostly a copy — and a hand-maintained index, the
exact pattern ADR 0022 had just rejected for the decision index on the
grounds it drifted after one addition. Keeping one copy of that while
removing another is not a position. It also collided by name with
02-DECISIONS/ in any directory listing.

Nothing was dropped. Records 0019-0025 give the repository decisions the
reasoning they never had: HQ is its own repository and is public, design
has two layers, work moves through playbooks, status lives in frontmatter,
issues have a front door, the numbering is the flow, HQ is the source of
the constitution. 0026 records the ledger's own removal.

The three orphan rules went to how-we-build, where a rule is enforced and
keeps the incident that earned it — the package rule was genuinely
unwritten anywhere. Two lab decisions stated only in the ledger went into
the lab design. "Deliberately not decided" went to the research effort and
design document each question actually belongs to.

The chronological view the ledger provided is now generated from record
frontmatter, which is what it was for.

The cost, stated in 0026 rather than glossed: a record is more work than a
table row, so the risk is a small decision going unrecorded because nobody
wanted to write a document. how-we-build takes rules cheaply, which is the
mitigation, not a solution.
2026-08-23 18:17:59 +02:00

3.5 KiB

layer, status, code, updated, decisions
layer status code updated decisions
as-is implemented
hal
2026-08-23

Knowledge

The mesh keeps two knowledge stores. They are not redundant, and knowing which is which is the difference between finding an answer in one search and rediscovering it over several hours.

The operational memory

A store of operational notes, written and read by whoever — human or agent — is working. Each note is a slug and a body: how something works, what went wrong, what the fix was, what assumption turned out to be false.

It is indexed on symptoms. The entry someone needs is usually titled after the error they are staring at, which is why the standing instruction is to search the literal error text before forming a hypothesis rather than after one fails.

Its content is overwhelmingly the record of previous debugging: a large body of troubleshooting entries, module conventions, and standing notes about work that is open. It is the mesh's institutional memory of what has already gone wrong.

The cost of skipping it is documented in the mesh's own record: entries have been rediscovered from scratch, over hours, in sessions where the search was skipped because the trail felt confident. It fires hardest on familiar ground, not unfamiliar ground.

The structured archive

A second store, structured rather than flat: spaces, pages, revisions, tiers, and full-text search. Where the operational memory is a note, this is a document with an owner and a lifecycle.

Content is promoted through tiers — private, then team, then platform — with a librarian agent owning approval and promotion at the boundary. Proposals to edit are reviewed rather than applied.

This is where the mesh's governed documents live, including the constitution injected into design sessions (ADR 0009).

Why both

The distinction is by lifecycle, not by subject.

Operational memory Structured archive
Written the moment something is learned Written deliberately, reviewed
Flat, symptom-indexed Structured, tiered, owned
Anyone writes; nothing approves Promotion is approved
Truth is "this happened" Truth is "this is agreed"

Collapsing them would cost one of the two properties: either every hard-won note waits for review, or governed documents can be changed by anyone mid-incident.

Where this repository sits

This repository is a third thing, and the objection was raised when it was created: a fourth knowledge system repeats the mistake the split was made to fix.

The answer given was indexing, not location — that these documents are indexed into the knowledge base so that a symptom search returns them alongside everything else. One source, many surfaces.

That indexing does not currently exist. A search for this repository's content returns nothing. The claim is load-bearing for the decision to separate the repository at all, and until it is true, this repository is exactly the fourth knowledge system the objection described. Recorded here because it is a statement about how the mesh's knowledge actually works today, and as 04-ISSUES/006.

The librarian

A single agent owns the archive's approvals and promotions. Its approval capabilities have at times not been reachable as tools, which does not affect the operational memory but does mean promotion stops silently — the store keeps accepting proposals that nothing can approve.