Say what ran, and what it proved
What it produces
Two things, never mixed. A production-ready table where every ticked box carries the command
that ticked it, and an acceptance table where every example carries its verdict.
Verify — the boxes
- Run the repository's own gate and its security lane — whatever CI runs them is the
gate, not a recipe name. Paste the output. A summary of a gate is not a gate.
- For each of the eight production-ready boxes, write the command that proves it and the
output it gave. A box with no command beside it is
INCOMPLETE, and that is the answer,
not a gap to fill in later.
- A box that does not apply says
not applicable and why in the same line. Assertion 19
reads what sits beside each tick once the spec is shipped — it skips a draft
entirely, which is every spec before it ships, so nothing catches a tick you have not
earned except you.
- Never tick a box on the strength of a run somebody described.
ai-eng spec checkpoint
reads receipts and says which of them is about this code; read its answer, not its age.
Validate — the examples
- Read the spec's
## Examples somebody can check. ai-eng spec show NNN prints how many
Given, When and Then lines it holds and how many name a command with its output, and
prints nothing when there is no such section — which is itself the answer, for sixteen
of the nineteen specs here. The columns a row needs are in
ai-review/references/testing.md — if that reference file is missing, answer
INCOMPLETE rather than inventing the columns.
- Run each example's command. Mark it
PASS when the output matches what the Then says,
FAIL when it does not, and INCOMPLETE when the Then names no command — which is most
of them, and saying so is the point.
- The undecidable example is the one that matters. An example nobody can decide is not a
pass and not a failure; report it as the third thing.
- Do not repair the example. A Then that turned out to be wrong is a finding for
/ai-spec,
and rewriting it here is the reader marking their own paper.
Done when
- Every box carries a command and its output, or
not applicable, or INCOMPLETE.
- Every example carries a verdict, and the undecidable ones are counted separately.
- Nothing was accepted. This reports; a person or a gate decides.
The box
40 minutes of wall time, 120 tool calls — the numbers contract.py owns. The verdict
returns in your result; you write no files. When the box closes with work left, return
what you have and mark it TIMEBOXED: a partial verdict is a verdict, silence is not.
What this is not
Not a gate. just check is the gate and it runs in CI; this reads what it said. Not a
review — /ai-review judges a diff, and this judges whether a claim about one is true.
- "Somebody described a green run, so the box can be ticked on their word" — never tick a box on the strength of a run somebody described: every ticked box carries the command that ticked it and its output.
1---2name: ai-verify3description: Runs the gate and the security lane and ticks each production-ready box beside the command that ticked it, or walks a spec's examples and marks each one against a real command. Trigger for "verify this", "is it ready", "tick the boxes", "does it do what the spec said", "check the acceptance criteria". Not for judging a diff — use /ai-review, which reads a change and this reads a claim. Not for finding a cause — use /ai-debug. It observes and never accepts: incomplete is the answer to every box and every example with no command pasted beside it. Not for deciding a request that falls outside a declared boundary — report CANNOT DECIDE and block, because a decision that cannot classify itself is not a decision this skill can take.4license: Apache-2.05---67# Say what ran, and what it proved89## What it produces1011Two things, never mixed. A production-ready table where every ticked box carries the command12that ticked it, and an acceptance table where every example carries its verdict.1314## Verify — the boxes15161. Run the repository's own gate and its security lane — whatever CI runs them is the17 gate, not a recipe name. Paste the output. A summary of a gate is not a gate.182. For each of the eight production-ready boxes, write the command that proves it and the19 output it gave. A box with no command beside it is `INCOMPLETE`, and that is the answer,20 not a gap to fill in later.213. A box that does not apply says `not applicable` and why in the same line. Assertion 1922 reads what sits beside each tick **once the spec is shipped** — it skips a draft23 entirely, which is every spec before it ships, so nothing catches a tick you have not24 earned except you.254. Never tick a box on the strength of a run somebody described. `ai-eng spec checkpoint`26 reads receipts and says which of them is about this code; read its answer, not its age.2728## Validate — the examples29301. Read the spec's `## Examples somebody can check`. `ai-eng spec show NNN` prints how many31 Given, When and Then lines it holds and how many name a command with its output, and32 prints nothing when there is no such section — which is itself the answer, for sixteen33 of the nineteen specs here. The columns a row needs are in34 `ai-review/references/testing.md` — if that reference file is missing, answer35 `INCOMPLETE` rather than inventing the columns.362. Run each example's command. Mark it `PASS` when the output matches what the Then says,37 `FAIL` when it does not, and `INCOMPLETE` when the Then names no command — which is most38 of them, and saying so is the point.393. The undecidable example is the one that matters. An example nobody can decide is not a40 pass and not a failure; report it as the third thing.414. Do not repair the example. A Then that turned out to be wrong is a finding for `/ai-spec`,42 and rewriting it here is the reader marking their own paper.4344## Done when4546- Every box carries a command and its output, or `not applicable`, or `INCOMPLETE`.47- Every example carries a verdict, and the undecidable ones are counted separately.48- Nothing was accepted. This reports; a person or a gate decides.4950## The box515240 minutes of wall time, 120 tool calls — the numbers `contract.py` owns. The verdict53returns in your result; you write no files. When the box closes with work left, return54what you have and mark it `TIMEBOXED`: a partial verdict is a verdict, silence is not.5556## What this is not5758Not a gate. `just check` is the gate and it runs in CI; this reads what it said. Not a59review — `/ai-review` judges a diff, and this judges whether a claim about one is true.6061- "Somebody described a green run, so the box can be ticked on their word" — never tick a box on the strength of a run somebody described: every ticked box carries the command that ticked it and its output.