# Claude Code said "all tests pass". It had skipped them. So I built a fail-closed gate.

> Source: <https://dev.to/billbin1969debug/claude-code-said-all-tests-pass-it-had-skipped-them-so-i-built-a-fail-closed-gate-3dfm>
> Published: 2026-11-06 19:20:01+00:00

If you use an AI coding agent long enough, you will see this: the agent says **"Done - all tests pass"**, and it's true only because a test was skipped, deleted, or quietly weakened in the same change.

It's a known failure mode (see [anthropics/claude-code#7074](https://github.com/anthropics/claude-code/issues/7074)). Asking the agent nicely in CLAUDE.md doesn't fix it, because the agent is the one grading its own work.

I built **BuildProof** around one rule: the agent's claim is never accepted on its word. A separate check decides, and it fails closed - if it can't prove the work is good, the change is rejected.

After Claude Code finishes a turn (as a hook), or on a pull request (as a GitHub Action), it:

The demo page shows real output - a change that "passes" by weakening a test, and how it gets rejected:

👉 [https://buildproof.mgrprosnetwork.com/demo](https://buildproof.mgrprosnetwork.com/demo)

```
npm install -g buildproof
```

Package: [https://www.npmjs.com/package/buildproof](https://www.npmjs.com/package/buildproof)

Full disclosure: I'm the maker. It's a commercial tool with a 14-day free trial, not open source.

I'd really like feedback from people who run agents on real codebases: **what other ways have you seen an agent "fake" a green build?** Every trick you've seen becomes a new check.
