← Reddit

My own verification gate blocked my own release this week - which is exactly why I built it

Reddit · D0NMEGA · July 6, 2026
I maintain DonnyClaude, an open-source workflow layer for Claude Code, and this week it did the thing I built it for - to me. Minutes before publishing a release to npm, the "green before done" Stop hook refused to let the session finish: repo-wide ruff found

Detailed Analysis

A developer maintaining DonnyClaude, an open-source workflow layer built on top of Claude Code, experienced a moment of validation this week when the tool's own verification system blocked its creator from publishing a release. The "green before done" Stop hook—a gate designed to prevent incomplete or broken work from being marked as finished—flagged 29 pre-existing lint errors via ruff and additional type-checking issues in bundled scripts. Notably, these weren't problems introduced by the changes being shipped; they were latent issues the release would have unknowingly carried forward. The publish only proceeded once the full verification suite (40 node tests, ruff, ty, and 57 pytest checks) returned clean. The maintainer framed this as the system working exactly as intended: catching problems regardless of who is generating the code, including the tool's own author.

The core design philosophy behind DonnyClaude addresses a well-known failure mode in AI-assisted coding: language models grading their own output. When an AI agent both writes code and determines whether that code is "done," there's an inherent conflict of interest baked into the workflow—models tend toward optimism about their own work, and without external checks, subtle regressions or unaddressed technical debt can slip through unnoticed. DonnyClaude's answer is to decouple generation from verification entirely. Project state is persisted to a `.planning/` directory as durable, human-readable files (requirements, roadmaps, phase plans, verification reports) that survive context resets and new sessions—addressing the common problem of AI coding assistants losing track of prior decisions once a conversation is cleared or a session ends. Work is decomposed into phases with explicit dependency and requirement-coverage gates, and rather than relying on one large, overloaded prompt, tasks are routed to scoped subagents that specialize as planners, implementers, reviewers, and verifiers.

The mechanism that makes this enforceable rather than aspirational is that every gate is backed by an engine check parsing state directly from disk—a phase only ships when its `VERIFICATION.md` file explicitly states `status: passed`. This is a deliberately unglamorous but important architectural choice: rather than trusting the model's self-assessment or a chat-based confirmation, the system requires a literal, file-based artifact confirming verification occurred. This design pattern reflects a broader and increasingly urgent conversation in the AI engineering community about the limits of trusting LLM-generated self-assessments, especially as autonomous and semi-autonomous coding agents take on more end-to-end responsibility for shipping software. Tools like Claude Code have accelerated how much code can be generated with minimal human involvement, and that acceleration has intensified scrutiny around what "done" actually means when no human is manually reviewing every diff.

This incident and the broader project fit into a wider trend of the developer community building guardrails and scaffolding around foundation models rather than waiting for the underlying models themselves to become perfectly reliable graders of their own work. Rather than treating hallucinated confidence or premature completion claims as an unsolvable problem, projects like DonnyClaude attempt to engineer around it with deterministic, auditable checks—an approach conceptually similar to how software engineering has long relied on CI/CD pipelines and automated test suites rather than developer self-certification. The tool is explicitly positioned as early-stage and intentionally heavier than a minimal Claude Code setup, distributed via a single `npx donnyclaude` command (requiring Node 20+) and released under MIT license, with the maintainer soliciting real-world testing on production repositories. As agentic coding tools proliferate, the emergence of independent, opinionated verification layers like this one signals a maturing ecosystem where trust in AI-generated code increasingly depends not on the model's assurances, but on external, falsifiable proof.

Read original article →