automagik-brand
The Automagik brand (Automagik, Genie, Omni) as files in this repository's brand folder (docs/brand, unless SOURCE.json beside…
Prove a completion claim with fresh evidence before making it — the gate's exit code, the real diff, the remote's checks, the reviewer's verdict.
Claude Code
$ npx -y skills add automagik-si/genie --skill verify --agent claude-code
Codex
$ npx skills add automagik-si/genie --skill verify -a codex -y
Cursor
$ npx skills add automagik-si/genie --skill verify -a cursor -y
Gemini CLI
$ npx skills add automagik-si/genie --skill verify -a gemini-cli -y
GitHub Copilot
$ npx skills add automagik-si/genie --skill verify -a github-copilot -y
OpenCode
$ npx skills add automagik-si/genie --skill verify -a opencode -y
Windsurf
$ npx skills add automagik-si/genie --skill verify -a windsurf -y
name: verify description: "Prove a completion claim with fresh evidence before making it — the gate's exit code, the real diff, the remote's checks, the reviewer's verdict." category: verification mutates: none
Evidence before claims, always. This skill runs commands and reads their output; it changes nothing, so a failure it finds routes to fix, never to a quiet repair here. Reading a write back is still reading: the write belonged to whoever was authorized to make it, and this skill never originates one.
A claim you have not verified in this turn is not a claim, it is a hope. If the command that would prove it has not run since the last change, the honest report is the actual state plus what is still unproven.
Violating the letter of the rule violates its spirit: a paraphrase, an implication, or an expression of satisfaction is a completion claim too.
Before any statement that work is done, correct, or passing:
1. **Identify** the one command whose output proves this exact claim. 2. **Run** it fresh and in full. A narrowed re-run proves only the narrowed scope. 3. **Read** the whole output and the exit code, and count the failures rather than scanning for the word "pass". 4. **Decide.** If the output confirms the claim, state the claim with the evidence beside it. If it does not, state the actual status with the same evidence.
Skipping a step is not a faster verification, it is a different activity.
| Claim | Proof | Not proof | |-------|-------|-----------| | The repository is green | the repository's own aggregate gate, its current stage chain read from the manifest rather than recalled, run whole and exiting zero in this turn | a previous run, a passing subset, "should pass" | | Types are clean | the typecheck stage inside that gate | the linter passing | | A test suite passes | the suite's own output with a failure count of zero | one file re-run, a cached result | | A bug is fixed | the original symptom re-exercised and now passing | the code changed and the reasoning looks right | | A cause is removed | a correction typed root, with the diagnosis's causal chain showing the link it removes | the symptom passing, which a containment also achieves | | A mutation landed | the stored state read back afterwards through a different path than the write took | the writing call's own success return, or a response that echoes what was sent | | Text sent through a CLI arrived intact | the stored body read back from the system that received it and compared against the source text | the exit code, or a receipt that counts bytes accepted | | A regression test works | it fails with the fix reverted and passes with it restored | it passes once | | A worker did the work | `git status` and `git diff` over the owned scope | the worker's success report | | A branch is mergeable | the remote's checks read back from the pull request | a local gate alone | | A group is shippable | a reviewer's returned verdict of SHIP | FIX-FIRST treated as "close enough", or your own read of your own work | | Requirements are met | each wish criterion walked one by one against evidence | the gate being green |
A check nobody has watched fail is machinery, not evidence. Look for the record of it failing — the implementor's red run from before the change, or a run against a throwaway copy with the guarded condition broken, never the candidate itself — and confirm the failure message names that condition rather than a typo, an unresolved import, or a selection that matched nothing. With no such record, the check is cited as unproven. Ask the same question of every check you cite: what would it say against a target that never existed, or one it could not reach? A check that passes when the thing it guards is absent or unreachable is fail-open — an empty read-back treated as clean, a suite that skipped, a probe that reads "not found" as success — and it proves nothing about the claim it was offered for.
On a gate that was already failing before the change, a raw failure count decides nothing. Take the failing set on the base you started from, take the failing set now, and claim only what the comparison supports: which failures are new and yours, and which were already there and are still there. The claim of no regression needs an empty new-failure set, stated beside the pre-existing ones by name.
A report from another agent is a pointer to evidence, not the evidence. Read the diff it claims to have produced and re-run the gate on the merged result. An agent that reports success having written nothing is the failure this row exists to catch.
Review verdicts are the same shape. SHIP is the only verdict that permits a completion claim. FIX-FIRST names gaps that must close and be re-reviewed; BLOCKED means the route changed and the claim is not available at all. Relay the verdict you received, never a softened version of it.
Reach for this skill the moment you notice "should", "probably", or "seems to"; satisfaction arriving before output; a commit, push, or pull request forming without a fresh gate; exhaustion arguing that the remaining check is a formality. Each of those is the same event: the claim is running ahead of the proof.
State the command, its exit status, and the claim it supports, in that order. Where expected evidence could not be captured, say which and why rather than leaving the gap silent.
<!-- adapted from https://github.com/obra/superpowers/tree/main/skills/verification-before-completion (MIT, commit b36e0829c6d0140e93cfef2ca599b1b07d4a7797 via dennisrongo/dsh-plugins vendor snapshot) -->
Wishes in, PRs out. CLI agent that interviews you, plans the work, dispatches parallel agents in isolated worktrees, and reviews code before you see it.
The Automagik brand (Automagik, Genie, Omni) as files in this repository's brand folder (docs/brand, unless SOURCE.json beside…
PROPOSE-ONLY — mine this host's recent Claude Code transcripts for work that keeps recurring and keeps returning bulk into…
ROUTING RULE — when the question asks where something lives, how something works, what handles X, or how Y flows through a…
Write or revise a Genie skill so it survives the shipped contract — frontmatter, house size, starter card, and runtime-neutral…
Explore an ambiguous idea with the user, settle scope and success criteria, and produce an independently reviewed design for wish.
Assess a proposal through independent technical, product, risk, and dissenting lenses, then synthesize a decision without…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.