Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Enforces validation and evidence before claiming work complete. Use before declaring implementation done, creating a PR, or submitting deliverables for review.
.claude/skills/athola-proof-of-work/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 2572% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 160% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 14% | 0% |
> "It looks correct" is not "I verified it works." > Proof-of-work is the discipline of closing that gap: > reproducible evidence before any claim that a task is done.
imbue:karpathy-principles)imbue:scope-guard)The "Proof of Work" methodology prevents premature completion claims by requiring technical verification before stating that a task is finished. For example, instead of assuming an LSP configuration functions after a restart, we verify that the server starts and that tools respond to queries. This approach confirms the solution works before the user attempts validation.
Before claiming completion, provide reproducible evidence of the solution's performance and address edge cases. All claims must be backed by actual command output captured in the current environment.
NO IMPLEMENTATION WITHOUT A FAILING TEST FIRST NO COMPLETION CLAIM WITHOUT EVIDENCE FIRST NO CODE WITHOUT UNDERSTANDING FIRST
The Iron Law prevents testing from becoming a perfunctory exercise. If an implementation is planned before tests are written, the RED phase fails to drive the design. Understand the technical rationale for an approach and its limitations before declaring it done. Before writing code, document evidence of the failure being addressed and confirm that tests are driving the implementation.
Verify the fundamentals of the implementation and the reasons for choosing it over alternatives. Identify where a solution might fail rather than stating it should always work. The TDD cycle follows these mandatory steps:
| Self-Check Question | If Answer Is Wrong | Action | |---------------------|-------------------|--------| | Do I have documented evidence of failure/need? | No | STOP, document failure first | | Am I testing pre-conceived implementation? | Yes | STOP, let test DRIVE design | | Am I feeling design uncertainty? | No | STOP - uncertainty is GOOD | | Did test drive implementation? | No | STOP - doing it backwards |
proof:iron-law-red: Failing test written before implementation.proof:iron-law-green: Minimal implementation passes test.proof:iron-law-refactor: Code improved without behavior change.proof:iron-law-coverage: Coverage gates passed (line, branch, and mutation).Confirm that work passes all line, branch, and mutation coverage gates. For detailed enforcement patterns, see iron-law-enforcement.md.
Apply this skill before stating that work is "done," "finished," or "ready." Use it before recommending solutions or stating that a configuration "should work." Stop if you find yourself assuming a configuration is correct without testing it or recommending a fix without first reproducing the problem. Red flags include thinking "this looks correct" without actual verification. If you cannot explain each line of a configuration or why a specific practice applies to the current context, the necessary validation steps have been skipped.
proof:problem-reproduced)Before proposing a solution, verify the current state. Use tools like ps, echo, and cat to check running processes, environment variables, and configuration files. Document the failure with command output and error logs.
proof:solution-tested)Before claiming a solution works, execute it in the current environment. Capture the actual output and confirm that it matches expected behavior. Do not rely on assumed output.
proof:edge-cases-checked)Research known bugs and limitations related to the approach. Check GitHub issues, version compatibility, and official documentation to identify potential blockers or common pitfalls.
proof:evidence-captured)Use imbue:proof-of-work to document the commands executed, their output, timestamps, and the conclusions drawn from each step.
proof:completion-proven)Define acceptance criteria and validate each item. If a blocker is identified, document the diagnosis with evidence and provide workaround options instead of claiming completion.
Use proof-of-work to validate improvement opportunities identified by /update-plugins or /fix-workflow. Document the baseline metrics (step count, failure rate, duration), test the proposed changes, and capture the improved metrics to demonstrate quantitative impact.
Verify that the problem was reproduced with evidence and the solution was tested in the actual environment. Research known issues and consider edge cases. Capture evidence in a reproducible format and confirm that all acceptance criteria are met. The completion statement must detail the specific tests run and their results, citing evidence for each claim.
Before sending a completion message, confirm that you have run the recommended commands and captured their output. Verify that you have researched known issues and that the validation steps are reproducible by the user. Ensure you are proving rather than assuming.
conventions and safe deletion rules for imbue TodoWrite items
evidence capture, audit trails, and reproducibility patterns
high-stakes changes, why the producing agent may not be its own sole verifier, and what counts as an independent check
check is real at all: validate the spec separately, prove the check fails when behavior breaks (mutation/revert), prefer executable and property-based checks over an LLM judge
imbue:karpathy-principles: the "Goal-Driven Execution" principlewraps the Iron Law in a four-principle synthesis useful as a pre-flight gate
docs/quality-gates.md#skill-level-quality-gate-composition forthe full gate-skill federation graph
(proof:iron-law-red, proof:iron-law-green) confirming test-first execution.
[E1]/[E2] evidence reference exists in theresponse, backed by a real command invocation and its output.
verified by running, not by inspection.
next concrete step to unblock it.
correct", or "will work" claims without supporting evidence.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 4,543 | 30,877 | +580% | 1 | 1 | 0% | 259 | 6,921 | +2572% | 0 | 0 | — |
case-02 | fail→fail | 4,649 | 4,976 | +7% | 1 | 1 | 0% | 250 | 2,028 | +711% | 0 | 0 | — |
case-03 | pass→fail | 16,826 | 13,559 | -19% | 1 | 1 | 0% | 2,654 | 3,805 | +43% | 0 | 0 | — |
case-04 | fail→fail | 15,888 | 14,370 | -10% | 1 | 1 | 0% | 2,278 | 3,737 | +64% | 0 | 0 | — |
case-05 | pass→pass | 21,829 | 28,165 | +29% | 1 | 1 | 0% | 3,386 | 6,142 | +81% | 0 | 0 | — |
case-06 | fail→pass | 6,969 | 9,203 | +32% | 1 | 1 | 0% | 1,188 | 3,086 | +160% | 0 | 0 | — |
case-07 | fail→pass | 9,023 | 8,035 | -11% | 1 | 1 | 0% | 1,457 | 3,021 | +107% | 0 | 0 | — |
case-08 | fail→fail | 12,187 | 7,159 | -41% | 1 | 1 | 0% | 1,807 | 2,772 | +53% | 0 | 0 | — |
case-09 | fail→pass | 15,165 | 10,660 | -30% | 1 | 1 | 0% | 2,307 | 3,381 | +47% | 0 | 0 | — |
case-10 | fail→pass | 12,964 | 3,372 | -74% | 1 | 1 | 0% | 2,007 | 2,293 | +14% | 0 | 0 | — |
case-11 | fail→pass | 11,322 | 4,742 | -58% | 1 | 1 | 0% | 1,882 | 2,575 | +37% | 0 | 0 | — |
case-12 | pass→pass | 14,741 | 11,879 | -19% | 1 | 1 | 0% | 2,469 | 3,668 | +49% | 0 | 0 | — |
case-13 | fail→pass | 10,950 | 9,217 | -16% | 1 | 1 | 0% | 2,078 | 3,378 | +63% | 0 | 0 | — |
case-14 | fail→pass | 12,665 | 4,440 | -65% | 1 | 1 | 0% | 2,070 | 2,493 | +20% | 0 | 0 | — |
case-15 | fail→pass | 10,845 | 8,516 | -21% | 1 | 1 | 0% | 1,636 | 3,122 | +91% | 0 | 0 | — |
case-16 | fail→pass | 13,331 | 6,292 | -53% | 1 | 1 | 0% | 2,190 | 2,823 | +29% | 0 | 0 | — |
case-17 | pass→pass | 10,730 | 5,883 | -45% | 1 | 1 | 0% | 1,944 | 2,674 | +38% | 0 | 0 | — |
case-18 | fail→pass | 11,896 | 8,655 | -27% | 1 | 1 | 0% | 1,863 | 3,067 | +65% | 0 | 0 | — |
case-19 | fail→pass | 7,537 | 1,858 | -75% | 1 | 1 | 0% | 1,205 | 2,020 | +68% | 0 | 0 | — |
case-20 | pass→pass | 12,857 | 11,790 | -8% | 1 | 1 | 0% | 1,978 | 3,614 | +83% | 0 | 0 | — |
case-21 | fail→pass | 8,253 | 2,290 | -72% | 1 | 1 | 0% | 1,396 | 2,101 | +51% | 0 | 0 | — |
case-22 | pass→pass | 14,790 | 13,679 | -8% | 1 | 1 | 0% | 2,285 | 3,794 | +66% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.