delphi-imagine / references/output-contract.md
Output contract
A reference shipped with the skill · 758 words
Output contract
Four sections, fixed. The shape is not decoration: several perspectives collate only if they produce the same structure, and a review that reshapes it cannot be compared with the others.
## Moments
**1. <what happened>.** `observed`
Names a specific artefact and a specific failure or friction.
**2. ...** `inferred`
**3. ...** `constructed`
## What it would need
Per moment: what would have to be true, and whether the artefact provides it.
Cite the section, or state plainly that it does not.
## Anti-scenario
REQUIRED. One case where this is useless, or actively harmful, to me.
Not a caveat — a real case.
## Gaps
Each traced to a moment above, each stating its cost
(tokens / complexity / privacy / adoption / maintenance).
Moments
A moment needs three things:
- A named artefact — a file, a ticket, a command, a conversation, an incident.
- A specific failure or friction — what went wrong, or what was hard.
- A grounding label.
| Label | Means | Test |
|---|---|---|
observed |
Grounded in the briefing or the artefact | Could you point at the line? |
inferred |
A reasonable extension of something in them | Can you name what you extended? |
constructed |
You made it up | Say so plainly |
Rejected as moments: "improving team velocity", "better developer experience", "reducing friction". These name no artefact and no failure, so nothing about them can be checked or acted on.
Accepted: "the Tuesday migration rollback, where nobody could say which config had been reviewed" — an event, an artefact, a specific gap.
constructed is legitimate. Labelling a constructed moment as observed is not, and it
is the failure that makes an entire review uncheckable: once one label is decorative, a
reader cannot trust any of them.
What it would need
The point is to make the finding checkable. Two forms:
- Provided — cite the section.
§5.2 covers this via the role field. - Not provided — say so plainly.
Nothing in the spec addresses this.
A third form is acceptable and useful: cannot verify from here — a requirement that lives in code the review did not see, or spans documents. Say what a reader should check rather than broadening the search.
Vagueness here is where a review stops being useful. "It should handle this better" gives nobody anything to do.
Anti-scenario
The single highest-yield element, and the most likely to be skipped or faked.
A caveat is not an anti-scenario. "It might be slow at scale" hedges a positive review. An anti-scenario names a situation where you would not use the thing, or would regret having used it.
Good ones tend to have one of these shapes:
- The artefact works and that is the problem. "The record is exactly what it promises, and under a formal review it is a machine-readable admission we shipped on priors."
- It is right and useless. "By the time I could consult it I have already answered the customer."
- It creates an obligation. "Adopting this means claiming a control I cannot evidence."
- It is worse than nothing. "A well-formed wrong answer costs more to dislodge than no answer."
The confabulation floor. Because it is mandatory, an agent with nothing genuine to say will write a fluent, specific, unfalsifiable one — and nothing in the contract can distinguish that from a real one. This is the strongest argument for grounding: a briefing gives the anti-scenario something to be about.
Gaps
Each gap:
- Traces to a moment above. Untraceable gaps are wishlist items — the review has drifted into designing rather than reviewing.
- States a cost. Tokens, complexity, privacy, adoption, maintenance. A gap with no cost is a preference in a finding's clothes, and it is the reviewer asking someone else to pay for their taste.
Register
Fixed regardless of how adversarial the perspective is:
- No enthusiasm vocabulary — no "game-changer", "seamless", "powerful".
- No invented statistics or percentages.
- No fictional company names. Say "my team", "the client".
- No melodrama. State the objection plainly.
The contract is what keeps a sharply-dialled perspective from becoming a caricature. A maximally adversarial reader still owes three grounded moments with cited sections, and that requirement holds the voice in place.
Length
Around 600 words. The cap is load-bearing: it forces selection, and selection is where judgement shows. An unbounded review lists everything and prioritises nothing.