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 bo...
Scanned 9/3/2026
Install to Claude Code
npx -y skills add arcasilesgroup/ai-engineering --skill ai-verify --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ai Verify?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/arcasilesgroup-ai-verify)More formats (shields.io, HTML) on the badges page.
---
name: ai-verify
description: >-
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.
license: Apache-2.0
compatibility: needs git; needs the ai-eng CLI on PATH
context: fork
background: false
disable-model-invocation: true
---
# 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
1. 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.
2. 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.
3. 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.
4. 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
1. 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.
2. 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.
3. 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.
4. 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!