agentsclimarketplace

Done prover

Skill dhruba-datta/claude-papercuts/skills/done-prover

Ten Claude Code skills that fix bugs Anthropic closed as 'not planned'.

Install
npx -y skills add dhruba-datta/claude-papercuts --skill done-prover

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 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.

What its author says it does

Copied from the file, not written here

Verify Claude's claim that tests are passing. Use this skill when the user wants to know whether a recent "all tests pass" or "feature complete" statement was honest, or when the user mentions Claude lied about completion. Reads the most recent test output from the conversation transcript and surfaces any discrepancy between what Claude claimed and what the test runner actually reported. Auto-triggered by a Stop hook whenever Claude makes a test-pass claim in its final message.

SKILL.md

3.9 KB, 844 tokens by cl100k_base, as published. Nobody here has run it

done-prover — verify Claude's "done"

Fixes: #5052, #10628, #20350

What this prevents

"Tests pass because they test structure and mock implementations rather than actual functionality." — common pattern in #5052

Claude Code can declare "all 47 tests pass" when 2 actually failed, 1 was skipped, and the integration suite never ran. This skill catches that.

How it works

A Stop hook (hooks/verify-claims.sh) fires at the end of every assistant turn. It:

  1. Reads the final assistant message from the transcript
  2. Looks for completion-claim phrases ("all tests pass", "everything green", "X tests passing", etc.)
  3. If a claim is found, scans recent tool_result entries for the actual test output Claude already ran
  4. If the test output shows failures, the hook blocks the stop and surfaces a verdict to the conversation

If no claim is found, or no test output is in scope, the hook exits silently. It never re-runs tests on its own — it only verifies the output Claude already saw.

When you (the model) should invoke this skill manually

The Stop hook handles auto-invocation. You should manually invoke this skill if the user:

  • Asks "did Claude actually test that?"
  • Says "verify the last claim"
  • Mentions Claude lied about completion
  • Asks for a proof artifact of a recent test run

Verification procedure (when manually invoked)

  1. Read .papercuts/proofs/ (most recent file). Each verdict the Stop hook generated is saved here. If empty, tell the user no recent claim has been verified yet.
  2. List the most recent 3 verdicts with timestamps.
  3. For each, show:
    • The claim that was made (verbatim from the assistant message)
    • The discrepancy that was detected
    • The path to the original test output

Verdict format

The hook (and any manual invocation) emits this exact format:

─── done-prover: verdict ───
Claim:    "<verbatim phrase from assistant>"
Evidence: <path to tool_result that was checked>

Reported by Claude:
  <Claude's count, e.g. "all 47 tests pass">

Actual test output:
  ✓ <passed>
  ✗ <failed>
  ◌ <skipped>

Discrepancy:
  <one-sentence summary>
─────────────────────────────

What this skill does NOT do

  • It does not re-run tests. It only verifies the output Claude already saw, which is faster and matches what the user observed.
  • It does not block normal "done" claims (e.g. "I finished the refactor"). It only blocks claims about TEST RESULTS.
  • It does not handle every test framework's output format perfectly. It looks for common failure signals (FAIL, ERROR, failed:, \d+ failed). False negatives are possible; false positives are designed to be rare.

Configuration

Optional .papercuts/config.json:

{
  "done_prover": {
    "claim_phrases": ["all tests pass", "all green", "..."],
    "failure_patterns": ["FAIL", "ERROR", "\\d+ failed"],
    "verdict_dir": ".papercuts/proofs"
  }
}

Defaults are sensible. Most users never need to touch this.

Trust, then verify

This skill is the "verify" half of the project's voice. Every claim the assistant makes that something is done gets a receipt.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.