Athena verify
Standalone verification gate — runs before claiming work is complete, fixed, or passing. Evidence before assertions, always. Use mid-conversation when about to say "done" or "fixed", not just at ship time.From its SKILL.md
npx -y skills add bencrooks-dev/Athena --skill athena-verifyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.4 KB, as published. Nobody here has run it
Athena Verify — Gatekeeper
Standalone verification that fires before you claim work is complete — mid-conversation, not just at ship time. This is the difference between "I think it works" and "here's proof it works."
When This Fires
You MUST invoke this skill before:
- Saying "done", "fixed", "complete", "working", "passing", or "ready"
- Committing code after a fix or feature
- Telling the user a task is finished
- Moving to the next task in a plan
You do NOT need this for:
- Reading files, exploring code, gathering context
- Asking clarifying questions
- Mid-implementation progress updates ("halfway through")
Verification Protocol
Step 1: Identify Claims
What are you about to claim? Write them out explicitly:
- "Tests pass" → which tests? All or specific?
- "Bug is fixed" → what was the bug? What proves it's gone?
- "Feature works" → what behavior proves it works?
- "Code is correct" → what would incorrect look like?
Step 2: Gather Evidence
For EACH claim, run the command that proves it:
| Claim | Evidence Required |
|---|---|
| Tests pass | Run full test suite, show output with pass count |
| Bug is fixed | Run the reproduction case, show it no longer fails |
| Feature works | Run the feature's happy path AND an edge case |
| Code compiles/lints | Run the build/lint command, show clean output |
| No regressions | Run full test suite, not just the new tests |
Rules for evidence:
- Run commands FRESH — never cite cached results or earlier output
- Show the FULL output — don't summarize "tests pass" without the actual output
- Check exit codes — a command that prints errors but exits 0 is not passing
- If no automated test exists, tell the user what to verify manually
Step 3: Verify Evidence
Read the output carefully. Check for:
- Hidden failures (warnings treated as passes)
- Partial passes ("23/24 tests pass" is NOT passing)
- Flaky results (if something passed but looked suspicious, run it again)
- Wrong test suite (did you run the right tests for what changed?)
Step 4: Record & Report
Update .athena-state.json using the merge pattern — read existing state, deep-merge only lastVerification, write back. Never replace the entire file. See hooks/athena-state.cjs for reference.
{
"lastVerification": {
"timestamp": "2025-01-15T10:30:00Z",
"result": "PASS",
"claims": ["Tests pass (24/24)", "Bug fix verified with regression protocol"],
"tests": 24
}
}
Then report:
Verification
════════════
[PASS] <claim> — <evidence summary>
[PASS] <claim> — <evidence summary>
[FAIL] <claim> — <what went wrong>
Verdict: VERIFIED ✓ / NOT VERIFIED ✗
Only after ALL claims show PASS may you tell the user the work is done.
Regression Verification (for bug fixes)
When fixing a bug, standard verification isn't enough. Use the regression protocol:
- Write the fix
- Run tests → must PASS
- Revert the fix → run tests → must FAIL (proves the test catches the bug)
- Restore the fix → run tests → must PASS
- Now you have proof the fix works AND the test detects its absence
Skip this only if the user explicitly says to.
The Rationalization Table
| Excuse | Reality |
|---|---|
| "I just ran the tests a minute ago" | Code changed since then. Run again. |
| "It's obvious the fix works" | Obvious bugs ship every day. Verify. |
| "It's just a config change" | Config changes break prod more than code changes. Verify. |
| "The user can test it" | Your job is evidence, not delegation. Verify what you can. |
| "There aren't any tests for this" | Then say so explicitly — don't pretend it's verified. |
| "I already verified in my head" | Your head doesn't run tests. The terminal does. |
Rules
- Evidence before assertions — never say "done" without proof
- Fresh runs only — cached results are stale results
- Full output — don't hide failures behind summaries
- Explicit unknowns — if you can't verify something, say so clearly
- This is NOT athena-ship — ship is for pre-merge/pre-PR. This is for mid-work verification. Both matter, at different times.