agentleFS
BULDEEBULDEE/ai-craftsman-superpowers/skills/verify/SKILL.md

verify

Skill35 starsChanged 53 days agoApache-2.0View on GitHub

Evidence-based verification before claiming completion. Use before committing, creating PRs, or claiming a task is done. Never claim success without proof.

188 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use instinct-export, instinct-import and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • TheKREATORSSkill

    instinct-export

    Export instincts from project/global scope to a file

    Also in 3 projects that use this

  • TheKREATORSSkill

    instinct-import

    Import instincts from file or URL into project/global scope

    Also in 3 projects that use this

  • AviadPSkill

    risk-assess

    Assess the risk and blast radius of a proposed code change before implementing it. Evaluates CI impact, framework-wide vs localized scope, rollback path, and identifies blindspots. Use when user says "what's the risk", "is this safe", "assess the impact", "risk assess", "blast radius", or before applying framework-wide or CI-affecting changes. Do NOT use for code quality review (use code-quality) or plan validation (use design-validator).

    Also in 3 projects that use this

  • diego-tobalinaSkill

    build-fix

    Fix build and compilation errors systematically. Run when build fails.

    Also in 6 projects that use this

  • AaravChadhaSkill

    secure

    Security review with a confidence gate - a finding exists only with a concrete exploit scenario and a high/medium/low confidence rating; everything else goes to a worth-hardening list, never inflated. Sweeps five surfaces: auth gates, secrets hygiene, injection and unsafe sinks, unsafe deserialization/crypto/transport, and LLM tool-use trust boundaries. Reports only, never fixes. Use when the user asks for a security review or to check vulnerabilities, secrets, or auth.

    Also in 3 projects that use this

  • ArvorCoSkill

    specify

    Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec.

    Also in 10 projects that use this

  • +1 more from TheKREATORS

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 167 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Done when: every completion claim is backed by a command that ran and its output.

    line 13
  2. Distinctive:

    Use this skill before:

    line 38
  3. Distinctive:

    Run EACH verification and capture ACTUAL output:

    line 68
  4. Distinctive:

    Before running verifications, detect the stack and available tools:

    line 106
  5. Distinctive:

    Use the Glob tool to detect the stack:

    line 108
  6. Distinctive:

    Do NOT claim "tests pass" without showing the output.

    line 125
  7. Distinctive:

    Do NOT defer it. Do NOT wait for the user.

    line 147
  8. Distinctive:

    If this fails, report "Session state update skipped" with the error.

    line 156
  9. Very specific:

    If it answers refused: a test run failed in this session after the last pass, the verdict is not a pass: a failing test run is the most …

    line 158
  10. Distinctive:

    When a verification FAILS:

    line 218

“Common” is measured: kept by at least 6 in 10 of the 167 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/craftsman:verify - Evidence Before Completion

Outcome Contract

  • Outcome: proof that the work is complete, or an explicit list of what is not.
  • Done when: every completion claim is backed by a command that ran and its output; unverified claims are listed as unverified.
  • Evidence: the commands run with their exit codes and output, never a summary of them.

You are a Quality Guardian. You NEVER claim success without EVIDENCE.

The Golden Rule

┌─────────────────────────────────────────────────────────────────┐
│                                                                  │
│   NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE      │
│                                                                  │
│   ❌ "The tests should pass"                                    │
│   ❌ "I believe this works"                                     │
│   ❌ "This looks correct"                                       │
│                                                                  │
│   ✅ "Tests pass: [actual output shown]"                        │
│   ✅ "Verified working: [evidence provided]"                    │
│   ✅ "Confirmed: [command output included]"                     │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

When to Verify

Use this skill before:

  • Claiming a bug is fixed
  • Saying tests pass
  • Asserting code is complete
  • Creating a commit
  • Opening a PR
  • Merging to main

Process

Phase 1: Identify Verifications Needed

Based on work done, determine what to check:

## Verification Checklist

**Work completed:** [Description]

**Required verifications:**
- [ ] Unit tests pass
- [ ] Integration tests pass (if applicable)
- [ ] Type checking passes
- [ ] Linting passes
- [ ] Build succeeds
- [ ] Manual verification (if applicable)

Phase 2: Execute Verifications

Run EACH verification and capture ACTUAL output:

## Verification Results

### 1. Unit Tests
**Command:** `vendor/bin/phpunit --testsuite=unit`
**Expected:** All tests pass
**Actual Output:**

PHPUnit 10.5.0 ............... 15 / 15 (100%) Time: 00:01.234, Memory: 24.00 MB OK (15 tests, 42 assertions)

**Status:** ✅ PASSED

### 2. Static Analysis
**Command:** `vendor/bin/phpstan analyse`
**Expected:** No errors
**Actual Output:**

[OK] No errors

**Status:** ✅ PASSED

### 3. Code Style
**Command:** `vendor/bin/php-cs-fixer fix --dry-run`
**Expected:** No changes needed
**Actual Output:**

Checked all files, no changes needed.

**Status:** ✅ PASSED

Auto-Detection & Execution

Before running verifications, detect the stack and available tools:

Use the Glob tool to detect the stack:

  • Glob("composer.json") → if exists, PHP_STACK=true
  • Glob("package.json") → if exists, NODE_STACK=true

Auto-run available checks:

For PHP projects, attempt in order (skip if tool not found):

  1. vendor/bin/phpunit - Unit tests
  2. vendor/bin/phpstan analyse - Static analysis
  3. vendor/bin/php-cs-fixer fix --dry-run - Code style

For Node projects, attempt in order:

  1. npm test or npx vitest run - Tests
  2. npx tsc --noEmit - Type checking
  3. npm run lint or npx eslint . - Linting

Run each command via Bash tool and capture ACTUAL output as evidence. Do NOT claim "tests pass" without showing the output.

Phase 3: Evidence Summary

## Verification Summary

| Check | Command | Status | Evidence |
|-------|---------|--------|----------|
| Unit Tests | `phpunit` | ✅ | 15/15 passed |
| PHPStan | `phpstan analyse` | ✅ | No errors |
| CS Fixer | `php-cs-fixer` | ✅ | No changes |
| Build | `composer install` | ✅ | Success |

**VERDICT:** ✅ ALL VERIFICATIONS PASSED

**Ready to:** [commit / PR / merge]

MANDATORY: Mark Session Verified

IMMEDIATELY after a passing verdict, run this command. Do NOT skip this step. Do NOT defer it. Do NOT wait for the user. Execute it NOW:

bash "$(craftsman-path bin/craftsman-helper)" set-verified

On hosts where craftsman-path is not on PATH, run <this plugin root>/bin/craftsman-helper set-verified using the installed skill's path. Never use another host's wrapper or write a shared state file. If this fails, report "Session state update skipped" with the error.

If it answers refused: a test run failed in this session after the last pass, the verdict is not a pass: a failing test run is the most recent evidence. Re-run the test suite until it is green (the hook restores the evidence on its own), then report. Never work around the refusal.

This records evidence for the session. The pre-push hook warns when it is absent.

Common Verification Commands

PHP/Symfony

# Full quality check
composer run quality
# or
make quality

# Individual checks
vendor/bin/phpunit
vendor/bin/phpunit --testsuite=unit
vendor/bin/phpunit --filter=TestClassName
vendor/bin/phpstan analyse
vendor/bin/php-cs-fixer fix --dry-run --diff

TypeScript/React

# Full check
npm run check
# or
npm run lint && npm run typecheck && npm test

# Individual checks
npm test
npm run test:coverage
npm run typecheck
npx tsc --noEmit
npm run lint
npm run build

Python

# Full check
make check
# or
pytest && mypy src/ && ruff check src/

# Individual
pytest
pytest --cov=src
mypy src/
ruff check src/
black --check src/

Failure Handling

When a verification FAILS:

## ❌ VERIFICATION FAILED

### Failed Check: Unit Tests

**Command:** `vendor/bin/phpunit`

**Output:**

FAILURES! Tests: 15, Assertions: 41, Failures: 1.

  1. App\Tests\Domain\UserTest::test_email_validation Failed asserting that 'invalid' matches expected 'valid@email.com'.

**Analysis:**
- **Root cause:** Email validation logic incorrect
- **File:** src/Domain/ValueObject/Email.php:23
- **Impact:** Email creation accepts invalid formats

**Required Action:** Fix before claiming completion.

**DO NOT:**
- Claim work is done
- Create a commit
- Say "tests mostly pass"
- Ignore the failure

Output Format

# Verification Report

## Context
- **Work Completed:** [Description]
- **Verification Time:** [Timestamp]

## Verifications Executed

### 1. [Check Name]
**Command:** `[command]`
**Output:**

[actual output]

**Status:** ✅ PASSED / ❌ FAILED

## Summary

| # | Check | Status |
|---|-------|--------|
| 1 | Tests | ✅ |
| 2 | Types | ✅ |
| 3 | Lint | ✅ |

## Verdict

**Overall Status:** ✅ ALL PASSED / ❌ X FAILED
**Evidence Quality:** Complete
**Ready for:** [Next step]

Bias Protection

Acceleration: "Skip verification, it probably works" → "Probably" is not evidence. Run the commands.

Optimism: "I'm sure the tests pass" → You're not sure until you see them pass. Run them.

Confirmation bias: "One test failed but it's minor" → A failure is a failure. Fix it first.

Normalisation: "It's flaky", "it passes alone", "it was already red", "unrelated to my change" → A test red in the suite and green alone depends on shared state, order, time or the filesystem: find which. Running it alone does not restore the evidence the suite run revoked; only the suite green does. If the cause is not fixed in this session, open a ticket and name its identifier in the report.

Pre-existing warnings: "N deprecations, pre-existing, not mine" → Reported is not handled. Fix them, or ticket them with an identifier; never list them as the verdict's footnote.

Session State

The set-verified step is in the "MANDATORY: Mark Session Verified" section above. It MUST be executed immediately after a passing verdict, not deferred to the end.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.