edgebuildlabs

Evidence Contracts — Development skill for Claude Code

Development community

Drop-in contract that makes a coding agent prove its work instead of claiming it: every claim of state carries a source and a date, or NOT VERIFIED.

How to install Evidence Contracts

This entry records only its repository, not the path inside it, so there is no exact command to give. Open edgebuildlabs/evidence-contracts and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Evidence Contracts does

Drop-in contract that makes a coding agent prove its work instead of claiming it: every claim of state carries a source and a date, or NOT VERIFIED. Copy one file into AGENTS.md, CLAUDE.md or .cursorrules — Claude Code, Codex, Cursor, Gemini CLI. No install, CC0.

Alternatives in Development

  • /token Scan — Fast rug pull detection for meme coins and token contracts 1.7k ★
  • License — Check that every Python source file carries the required SPDX Apache-2.0 license header 1.1k ★
  • Contract Review Skill — Review legal contracts for risks, extract key terms, and suggest redlines 192 ★

README

Evidence Contracts

**Drop-in contract files that make a coding agent prove its work instead of claiming it.**

Copy one file into your repository. Your agent stops saying "done" and starts saying what it ran, when, and what came back.


The problem

Your agent reports success. The tests never ran. The file was never written. The service is not up. The claim was generated from context, not from the machine.

This is the dominant failure mode of agentic coding in 2026, and it is not a model defect you can prompt away with "be accurate." It is a missing contract. Nothing in the loop ever required the agent to distinguish *what it observed* from *what it inferred* — so it doesn't, and the two arrive in the same confident sentence.

Exit code `0` proves a command returned. It does not prove the mission succeeded.

The rule that does most of the work

**Every claim of state carries a source and a date — or the words NOT VERIFIED.**

A claim of state is any sentence asserting that something **is** or **was** the case: the test passed, the file exists, the service is running, the API returns 200. The mark travels attached to the claim:

  • src/auth.ts:42 (2026-09-10) — read from a file
  • pytest -q (now) — output of a command run this turn
  • https://example.com/docs (2026-09-10) — a page fetched
  • NOT VERIFIED — with half a line saying why

Opinion, recommendation and reasoning carry nothing. They are visibly not facts.

That is the whole trick. It sounds trivial. It is not: it forces the agent to *notice* the difference between memory and observation at the moment of writing, which is the only moment where noticing changes anything.

The ladder

STARTED  !=  COMPLETED  !=  VALIDATED  !=  PASS

A live process, an exit code of zero, and the word "done" are all upstream of PASS. A receipt that contradicts an error, a zero-usage metric, or a missing artifact is not a PASS — it is an unfinished investigation.

**Tests passing is not validation.