frank-verify · git:20260912.f8cc926 · 2026-09-12 · sha256 e4b646a91702bfa5
frank-verify git:20260912.f8cc926A
Immutable. This exact content is served forever at /api/v1/blob/e4b646a91702bfa5.
---
name: frank-verify
description: Find and run the verification for the change just made, then write the receipt. Use when the user types /frank-verify, asks for proof that a change works, or when a completion claim needs backing before ending the turn.
allowed-tools: Bash(node "${CLAUDE_PLUGIN_ROOT}/scripts/suggest.js"*)
---
# /frank-verify
Produce a real receipt for the most recent change. Four steps, in order.
**1. Find the verification command.** Run:
```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/suggest.js" .
```
It prints the command this repo's own config implies, and what the session ledger
has already recorded since the last edit. If it prints `none detected`, look for a
test script, a CI workflow, or a Makefile target yourself. If there is still
nothing, skip to step 4.
**2. Narrow it.** Prefer the smallest command that actually covers the change:
the single test file over the whole suite, the typecheck over the full build.
A narrow command that ran beats a broad one that didn't.
**3. Run it.** Run the command for real. Do not summarise from memory, do not
predict the output, do not reuse a result from before the change.
**4. Write the receipt** as the last lines of your message:
```
ran: <the exact command>
result: <the real summary: N passed / exit code / the failing line>
```
If the command failed, say what failed. A failing receipt is still a receipt;
a claim that contradicts it is not.
If nothing can verify the change, end with:
```
unverified: <the check that would settle it, and why it doesn't exist yet>
```
Offer to write that check. Do not claim the change works.
$ARGUMENTS