--- status: accepted date: 2026-08-23 deciders: jochen reconstructed: false --- # 26. Every decision is a record; there is no ledger ## Context HQ carried a decision ledger at its root: a chronological table of forty-one numbered decisions, each with who decided and a pointer to where the reasoning lived. It was created deliberately, to make decisions findable and to give a home to decisions too small to warrant a document. By the time the decision records were back-filled ([ADR 0024](0024-the-numbering-is-the-flow.md)) the ledger had become three things at once, and only one of them was still needed. Classified, its forty-one entries were: ten restating a record, eleven restating design documents, fifteen describing how this repository works — with the reasoning in a README rather than anywhere citable — three small rules with no home at all, and two superseded stubs. So the ledger was mostly a copy. Worse, it was a **hand-maintained index**, which [ADR 0022](0022-status-lives-in-frontmatter.md) had just finished rejecting for the decision-record index on the grounds that it had drifted after a single addition. Keeping one copy of that pattern while removing another is not a position. It had also produced a naming collision that a directory listing makes plain: `DECISIONS.md` beside `02-DECISIONS/`, holding different things. ## Considered options 1. **Keep the ledger.** Rejected. It duplicates the records, restates status, and is the exact hand-maintained index this repository decided against elsewhere. 2. **Keep it, renamed, for small decisions only.** Rejected, and this is the option worth arguing with — it is genuinely useful to record a decision without writing a document. But a decision small enough to be one table row is almost always a **rule** rather than a decision, and a rule belongs in [`how-we-build.md`](../00-META/how-we-build.md) where it is enforced and where its reasoning is kept. That is where the three orphans went. 3. **Every decision is a record; nothing else.** Chosen. This is how the sibling HQ repository for the PAPA platform works, and it has no ledger of any kind. ## Decision **If a decision is worth recording, it is worth a record. If it is not worth a record, it is not recorded.** `02-DECISIONS` holds every decision. There is no ledger, no index file, and no central status of any kind. The chronological view — decisions in the order they were taken — is *generated* from record frontmatter, which is what the ledger was actually for. Content that was only in the ledger was rehomed rather than dropped: | Was | Went to | |---|---| | Decisions about how this repository works | Records [0019](0019-hq-is-its-own-repository.md)–[0025](0025-hq-is-the-source-of-the-constitution.md) | | Small rules with no record | [`how-we-build.md`](../00-META/how-we-build.md) — the package rule, and two already there | | Lab decisions not stated in the design | [`03-DESIGN/01-to-be/01-end-to-end-testing.md`](../03-DESIGN/01-to-be/01-end-to-end-testing.md) | | "Deliberately not decided" | The research effort and design document each question belongs to | | Unowned observations | [`04-ISSUES`](../04-ISSUES/) ([ADR 0023](0023-issues-have-a-front-door.md)) | ## Consequences - One place to look, and nothing to keep in sync. The collision between the ledger and the record folder is gone. - Structural parity with the sibling repository on decisions, which [ADR 0024](0024-the-numbering-is-the-flow.md) deliberately broke on folder numbering. The divergence is now exactly one thing, and it is the one thing that was argued for. - **Writing a record is now the only way to record a decision, and a record is more work than a table row.** The real risk is that a small decision goes unrecorded because nobody wanted to write a document. The mitigation is that a small decision is usually a rule, and `how-we-build.md` takes rules cheaply — but this is a cost, not a solved problem, and it is the thing to watch. - The chronological view now depends on the generator existing and being run. It did not before. - Two superseded ledger stubs had no record of their own. The position that documentation lives inside the code repository is now recorded only as superseded context in [ADR 0019](0019-hq-is-its-own-repository.md); the system-container position is explained in [ADR 0016](0016-a-lab-node-is-a-virtual-machine.md). Neither is lost. ## References - The sibling PAPA HQ repository: root holds only agent instructions and a README; every decision is a numbered record, and its graduation playbook has no path for an unrecorded decision. - [ADR 0022](0022-status-lives-in-frontmatter.md) — the hand-maintained-index argument this applies consistently.