Accepted adr-008 · 2026-10-07

A Dossier Governs One Document or Several: Each Has Its Own Round and Agreement, the Set Is Agreed by the Digest of Its Manifest, `part_of` and `after` Relate Only Its Own Documents and Nothing Models Priority; a SOW's Stage, Validity and Relations Are Read From ontoref's Registry

Context

adr-001 says a dossier «is opened in a project around a governed document». The work a project governs does not always come one document at a time: a plan transcribed by ontoref's plan-to-sow can be two SOWs — one part of the other, one whose implementation comes after the other — that the people who answer for them review and agree together. On 2026-10-01 the principal decided (session note 2026-10-01-sow-vigencia-relacion-archivo, decision 5): a digest per document and a digest of the set, the sha256 of one `<digest> <path>` line per document sorted by path; `part_of` and `after`, with no priority (axiom «Priority is decided at a point»); one round per document, `<id>.<n>`; the dossier agreed once all are; an ADR decided after the SOW. `sow-a-dossier-governs-several-sows` delivered it on 2026-10-07, its receipt signed.

The same session decided how a SOW is read (decision 1): SpecDossier runs `ontoref form registry-sow` and shows its reading — place, stage, validity with the cause of an unknown, supersedes and amends — and ontoref runs each 'NuCmd validity; without ontoref, the place from the directory and validity unknown with its cause. `sow-a-sow-is-read-where-it-stands` delivered it, its receipt signed; its adr? found no decision of its own, only a constraint that belongs beside this one.

adr-007 (2026-10-07) put the pre-flight a project declares in the round, run by the CLI in the person's copy. adr-001's Hard constraint `no-content-is-judged` reads «No crate of the workspace runs a work's checks or refutes them»; its check (`REFUTE_ROOT|fn refute` in code/crates) still passes, and its words no longer say what the practice is.

Decision

A DOSSIER GOVERNS ONE DOCUMENT OR SEVERAL. `governs` is one governed document, or a list of two or more, each path once. A dossier of one keeps its shape and its bytes: nothing about it changes.

EACH DOCUMENT HAS ITS OWN ROUND AND ITS OWN AGREEMENT. With several, the round of the n-th document is `<id>.<n>`; each is put, remarked, handed and agreed on its own, and the dossier reads partly agreed until every one is. Each agreement records its own digest, points and pre-flight (adr-007).

THE SET IS AGREED BY THE DIGEST OF ITS MANIFEST. When the last document is agreed, the dossier is agreed by the sha256 of its manifest: one `<digest> <path>` line per document, sorted by path. A signature on the agreed set is a signature over that manifest, and is what the authority attests (adr-004); a landing carries every document as its round showed it (adr-005). A document that moves after the agreement makes the dossier diverged, naming it.

`part_of` AND `after` RELATE ONLY THE DOSSIER'S OWN DOCUMENTS, AND NOTHING MODELS PRIORITY. `part_of` names the document one belongs to (hierarchy), `after` those whose work comes first (order of implementation); both name paths of the same dossier, never itself. They are the dossier's own relations: how SOWs relate across a level — supersedes, amends — is ontoref's, read from its registry, never repeated in a dossier. No field orders what matters more.

A SOW'S STAGE, VALIDITY AND RELATIONS ARE ONTOREF'S READING. SpecDossier reads them from `ontoref form registry-sow` and shows them; it never recomputes them. Without ontoref, the place is the directory's and validity reads unknown, naming its cause.

WHAT THIS AMENDS: adr-001's central sentence reads, once this is accepted: «A dossier is opened in a project around one governed document or several — a work order, an ADR, a biop — …». adr-001's constraint `no-content-is-judged` keeps its check and reads: «No crate of the workspace contains a work's checks, refutes them or judges their result; a check the project declares may be run by the CLI in the person's copy, its report shown as produced (adr-007)». adr-003's Hard constraint `the-service-never-writes-a-dossier` keeps its claim and its check reads `round::agree\(|dossier::(rewrite|open)\(`: the pattern without the parenthesis also matched `round::agreed_digest(`, which the service calls to read the round's digest when landing, and failed on a source that agrees nothing. Each amended ADR records it in its `amendments`, warranted by this one.

WHAT THIS DOES NOT DECIDE: enforcing `after` (it is declared and shown; nothing orders the agreements by it); several documents of different kinds in one dossier beyond what the format already admits.

Constraints

Alternatives considered