Accepted adr-011 · 2026-10-07

The Trail of a Dossier Is ontoref's Reading, Shown Beside Its Stage: For Each Governed SOW, Where the Registry Places It, Which Dossier ontoref Says Agreed It, Its Signatures and Its Receipt as ontoref Verifies Them; Nothing Derives a Landed Stage and Nothing Agreed Elsewhere Is Claimed

Context

The state dimension the-trail is at none: a dossier's reading shows its stage — opened, agreed, diverged — and, since adr-008, where a moved SOW stands; nothing of what follows its agreement. Its declared blocker, «nothing downstream names a dossier», no longer holds: ontoref's `form agreed-sow --dossier <file>` (ontoref adr-131) writes `<sow>.ncl.agreed.json` beside a draft, `land-sow` carries it into the level and lands only the agreed bytes, and `registry-sow` publishes it per SOW as `agreed_in` {dossier, id, governed, digest, by, on, holds, why}, re-reading the dossier and the SOW's bytes. `ontoref form verify-sow <file>` answers a SOW's stage and signatures, `ontoref form verify-receipt <id> --level` whether its receipt verifies (about 0.3 s each, measured 2026-10-07).

SpecDossier already verifies minisign signatures of a level by itself, for the reader's view of one SOW (code/crates/specdossier-core/src/evidence.rs, reading.rs `receipt`). A trail composed from that would be a second reading beside ontoref's, on the facts adr-008 made ontoref's.

The principal chose, 2026-10-07: the trail is shown apart from the stage; an agreed_in that names another dossier, or none, is shown without being claimed; signatures and receipt are ontoref's reading.

Decision

THE TRAIL IS BESIDE THE STAGE. A dossier's stage stays what its files say of the agreement — agreed or diverged by digest. Its reading adds, for each SOW it governs that ontoref's registry places, a trail: the registry's row (place, stage, validity, live), `agreed_in` as ontoref publishes it, the SOW's signatures as `ontoref form verify-sow` reads them on the file the registry places, and its receipt — whether `ontoref form verify-receipt` verifies it, and its lines as the receipt file holds them. No stage `landed` is derived by SpecDossier; ontoref's stage is shown as ontoref's.

NOTHING AGREED ELSEWHERE IS CLAIMED. When `agreed_in` names this dossier and holds, the trail is this agreement's. When it names another dossier, does not hold, or is absent, the trail is shown with that cause — «agreed in <id>», ontoref's `why`, «landed naming no dossier» — and none of its signatures or receipt is presented as this dossier's; the dossier's stage does not change.

ONTOREF'S READING, OR THE REASON THERE IS NONE. Signatures and receipt in a trail are ontoref's answers. Without ontoref, or when it refuses, the trail says why; SpecDossier's own minisign check is not used in its place.

WHAT THIS DOES NOT DECIDE: the trail of an ADR or a biop (agreement-holds → governed-kinds); the reader's view of one SOW, which keeps its own check until a SOW moves it; the trail of the code that implemented a SOW beyond its receipt; what a deployed service shows across dossiers (the-trail → shared).

Constraints

Alternatives considered