Accepted adr-007 · 2026-10-07

The Pre-flight Is Shown as Its Producer Produced It: a Command the Project Declares Runs in the Person's Copy at Each Round, Its Report Is Bound to the Revision's Digest, Shown at the Decision Point Without Refusing It, Recorded by Digest in the Agreement and Carried at Landing

Context

Before a governed work is agreed, its checks are run against it: for a SOW, ontoref's refutation runs every gate, check and refutation over the draft and reports each contract red now (the pre-image) or green with a refutation that bites, and what blocks a signature (ontoref adr-119). The principal's flow for a SOW (TODO.md, 2026-10-07) puts that pre-flight between the review and the signature: create and validate, review, send and revalidate, pre-flight, review its result, send for signature, send to implement. Today a dossier shows none of it: the person who answers agrees with the report in a terminal or a session note, and the agreement records nothing of what it was agreed on.

Three invariants frame what SpecDossier may do with it. «Accredited, never asserted»: what a dossier holds as met is accredited by evidence that re-runs or re-verifies, shown as whoever produced it produced it — SpecDossier neither produces nor judges it; a criterion without evidence reads as not accredited, one that cannot be evaluated where it stands as unknown. «No judgment on the content»: whether checks and their refutations are adequate is ontoref's. «Priority is decided at a point»: SpecDossier shows at the decision point what is accredited and what is unknown, and records the resolution — who, when, and on what. adr-003 holds the service away from the project; a view of a document that is not Markdown is already a command the project declares and the CLI runs in the copy at each round (sow-read-by-a-guest).

On 2026-10-07 the principal chose: a command the project declares produces the report; the agreement is not refused by it, it is shown and recorded; an ADR before the SOW.

Decision

THE PROJECT DECLARES THE PRE-FLIGHT, PER KIND, AS IT DECLARES A VIEW. `.governance/dossiers.ncl` gains `preflight`, a command per kind — or, since adr-009, a record of named commands, each its own report — (WorkOrder, Adr, Biop) with `{path}`, `{stem}` and `{root}` placeholders, whose stdout is a report: an array of rows, each a contract (or gate) with its kind, verdict, refutation, reading and whether it blocks — the row shape ontoref's refutation reports. A kind with no command declared has no pre-flight.

THE CLI RUNS IT IN THE PERSON'S COPY AT EACH ROUND, AND BINDS IT TO THE REVISION. `specdossier round` runs the declared command at the project's root, on the document as it is in the copy, and puts the report with the revision: the command as run, the digest of the document it ran on, the report's bytes and their digest. A command that fails or writes no report refuses the round, naming it: nothing is put. The service keeps the report with the round, transient as the round is, and never runs it (adr-003).

SHOWN AS PRODUCED, AT THE DECISION POINT; NEVER JUDGED, NEVER A REFUSAL. The round's page, the agent's packet and the owner's agreement form show the report as its producer wrote it — each row, how many block — and say who produced it (the command). With no pre-flight declared, or one run on other bytes than the round shows, the page reads «unknown», never met nor failed. Agreeing is not refused by what the report says: the decision is the person's.

RECORDED BY DIGEST, CARRIED AT LANDING. When the person agrees, the agreement records the digest of the report the round showed for those bytes (`preflight`), beside the document's digest — the «on what» of the resolution. A dossier agreed without one records none. Landing carries the report's bytes beside the dossier (`<round id>.preflight.json`), so the recorded digest re-verifies from the project's files.

WHAT THIS DOES NOT DECIDE: which command a project declares (ontoref's refutation is the case in view; ontoref exposing it as a CLI verb with JSON output is ontoref's); whether a report's rows are adequate (ontoref's); signing on a blocking report (the person's, and the project's policy).

Constraints

Alternatives considered