agentleFS
codeboehmcodeboehm/maxim/skills/verify/SKILL.md

verify

Skill0 starsChanged 4 months agoMITView on GitHub

Independently fact-check a spec, plan, or analysis against the actual code. Re-derives every load-bearing claim from the repo, records each as a checkable evidence-ledger row (verified / refuted / unverified), and returns a PASS / FAIL / BLOCKED verdict. Use to gate a draft before acting on it, or when asked to validate, fact-check, or sanity-check an artifact.

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 9 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

  • Jurel89Skill

    ai-slop-cleaner

    Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode

    Also in 4 projects that use this

  • +1 more from TheKREATORS

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 2 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 167 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When this skill is invoked, you are an independent, skeptical reviewer.

    line 6
  2. Very specific:

    Run the mechanical pre-flight (first, always): Run the preflight.sh bundled next to this skill on the artifact under review — i.e.

    line 23
  3. Very specific:

    The profile is context, not evidence: Use .agents/project.md to know which invariants and commands a spec must honor — but treat its [repo: …

    line 77
  4. Very specific:

    Write the report to .agents/verifications/<kebab-slug>.md, reusing the target's slug (e.g.

    line 127
  5. Very specific:

    Always run preflight.sh first.

    line 134
  6. Distinctive:

    Do not modify the target. Produce the verdict + ledger and stop.

    line 138

“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

When this skill is invoked, you are an independent, skeptical reviewer. Do not trust the document's own citations or its conclusion — re-derive each claim from the code yourself. Your output is a verdict plus a checkable evidence ledger. You do not edit the document (that's rework); you judge it and say exactly what's wrong.

You are the backstop against fake verification. A document that says "VERIFIED" next to a claim, or shows a commented-out command as proof, has proven nothing — treat such claims as Unverified until you run it yourself.

Input

A path to the artifact to check (a spec, plan, or analysis — e.g. .agents/specs/<slug>.md). If none is given or it doesn't resolve, ask.

Procedure

  1. Run the mechanical pre-flight (first, always). Run the preflight.sh bundled next to this skill on the artifact under review — i.e. the preflight.sh in this verify skill folder, wherever your agent loaded it from (~/.vibe/skills/verify/preflight.sh, ~/.claude/skills/verify/preflight.sh, or .github/skills/verify/preflight.sh): bash <verify-skill-dir>/preflight.sh <target>. It deterministically checks banned calibration words, contradictory conclusions, unresolvable file:line citations, bare file-path references that don't resolve (unless marked new), behavioral/security claims with no adjacent evidence, and quoted tokens that aren't at their cited line. A non-zero exit is an automatic FAIL on the items it reports — they block PASS regardless of the claim ledger, and you do not re-judge them by hand (the script is the source of truth, and it reports the real line numbers — don't paraphrase them). Carry its findings into the report, then continue the semantic checks below.
  2. Extract the load-bearing claims. List the facts and assertions the document's conclusion/recommendation actually depends on. A claim is load-bearing if removing it would change the conclusion. Separate these from incidental detail — spend your effort here.
  3. Re-derive each one from the code yourself. Open the cited file, grep for the real callers, run the command. The document citing X:42 is a starting point to check, not evidence — confirm the line actually says what's claimed, and that the claimed behavior is reachable on the real path (watch if/elseif short-circuits, early returns, and alternative satisfiers like token-OR-cookie-OR-session).
  4. Record each claim as one ledger row (format below): claim · load-bearing? · verdict · evidence. Evidence is the actual file:line excerpt or command output — never a described or planned command.
  5. Check calibration. Flag every DEFINITIVE / PROVEN / GUARANTEED / SUPERSEDES / absolute always-never that is not backed by a Verified row.
  6. Assign the verdict (gate below) and persist the report to the verifications location. Then run skills/index/reindex.sh.
  7. Report the verdict, the failed/blocked rows, and the recommended next step (accept, or rework with the specific gaps). Do not modify the target.

Verdict gate

  • Pre-flight failures force FAIL. Any banned word, contradictory conclusion, or unresolvable citation reported by preflight.sh is an automatic FAIL — it cannot be waved through even if every claim verifies.
  • FAIL — any load-bearing claim is Refuted, or the conclusion does not follow from the verified claims. The document is wrong → rework.
  • BLOCKED — any load-bearing claim is Unverified (you couldn't confirm it). It can't be blessed → get the evidence or downgrade the claim to an explicit assumption.
  • PASS — every load-bearing claim is Verified and the conclusion follows. List any non-load-bearing nits separately; they don't block.

The bar (non-negotiable)

  • Independence. Re-derive from the code; never accept the document's citation without opening the file. Your job is to try to break the conclusion, not confirm it.
  • The profile is context, not evidence. Use .agents/project.md to know which invariants and commands a spec must honor — but treat its [repo: path:line] facts as re-checkable citations and its [user]/[unknown] facts as assumptions. Behavioral claims still get re-derived from the code, never taken from the profile.
  • Shown, not described. Paste the real file:line or command output for every row. If you didn't run it, the row is Unverified — say so.
  • Behavior/path claims need the path. For any "X breaks / is safe / can't happen / is required," the evidence must include the real caller(s) (from grep) and the gate at file:line, plus confirmation the branch is reached. Names, annotations, and prose are not evidence.
  • Right-size. Effort goes to load-bearing claims; don't drown the ledger in trivia.
  • Judge, don't fix. Output the verdict and the gaps. Fixing the document is rework's job, not yours.

Evidence-ledger format

# Verification: <target file>

- **Date:** <YYYY-MM-DD>
- **Target:** <path to the artifact checked>
- **Pre-flight:** PASS | FAIL — <one-line, e.g. banned word "DEFINITIVE" at L392; conclusion contradiction L4 vs L407>
- **Verdict:** PASS | FAIL | BLOCKED — <one-line reason>

## Ledger
| # | Claim | LB? | Verdict | Evidence (file:line / command output) |
|---|-------|-----|---------|----------------------------------------|
| 1 | <claim as the doc states it> | yes | Verified | `handler.py:88,140` — read both; nothing returns between them, so L140 is reached |
| 2 | <claim> | yes | Refuted | `grep -rn 'process_refund(' src/` → no callers; the branch is dead |
| 3 | <claim> | no | Unverified | could not reach the live endpoint; left as assumption |

## Calibration flags
- <word> at <line> — not backed by a Verified row.

## Failed / blocked claims → required fixes
- <claim #> — <what's wrong and what evidence would settle it>

## Recommendation
Accept · Rework (with the gaps above) · Get evidence for blocked claims.

Rows are checkable by construction: anyone can re-open the cited file:line or re-run the command. (This same ledger format is reusable as a working artifact inside specify/analyze — building the doc from verified rows both enforces evidence and keeps context small.)

Locations

Write the report to .agents/verifications/<kebab-slug>.md, reusing the target's slug (e.g. payment-retry-idempotency.md), creating the directory if missing. Honor any verifications location the project's AGENTS.md specifies.

Rules

  • Requires a target path; ask if missing or unresolved.
  • Always run preflight.sh first; report its findings and treat its FAILs as non-negotiable.
  • Re-derive independently; shown evidence only; never reproduce the document's unverified claims as fact.
  • Do not modify the target. Produce the verdict + ledger and stop.
  • This is the independent gate after specify / implement — run it before acting on a spec or plan.

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.