The quality gate for the agent era

Your agents write code. developer-doctor proves it meets your standard.

Everyone has an AGENTS.md now. Almost no one has a gate that checks the agent actually followed it. One npx gives a deterministic 0 to 100 score across 29 engineering categories and 413 checks. Your rubric lives in a private oracle, so your agents can't game what they can't read.

$ npx developer-doctor . or install into your agent
developer-doctor, health check
$ npx developer-doctor .
0scanning
health score, 0 to 100
BLOCK IMPORTANT ADVISORY
413 checks
29 categories
100% of a production engineering standard
0-drift same repo, same score

Why now

AI-assisted coding scaled faster than the quality controls around it.

DORA 2025
+154%

PR size. After a 90% jump in AI-coding adoption: review time up 91%, bug rate up 9%. The volume went up. The quality did not.

Faros AI 2026 · 22,000 devs
31%

of AI PRs merge with zero human review. Review time is up 441%. Someone has to be the last line of defence.

CodeRabbit · Dec 2025 · 470 PRs
1.7×

more issues in AI-written code than human code. Readability 3×, performance 8×. The gap is not closing on its own.

The shift

"Telling an agent to follow our standards is probabilistic compliance. Wiring a gate that blocks the PR when standards are violated is deterministic enforcement."
Augment Code

developer-doctor is the deterministic gate.

The moat

Not a linter. Not a dashboard. Not another AI reviewer.

01 · PRIVATE ORACLE

Your standard, uncloneable

The weights and 109 semantic checks are judged against private rubrics your agents never see. The open client ships the finder; it emits coded findings, never the logic behind them. The standard stays out of the repo, so the gate can't be gamed by reading the source.

02 · ONE DETERMINISTIC NUMBER

413 checks, one 0 to 100 score

29 categories, from code craft and type systems to security, observability, accessibility, and LLM practice, into one number a script can compare. The same repo always scores the same, so you can gate CI on it. An LLM can't.

03 · THE RATCHET

Fails on regression, not a threshold

The gate blocks the PR when the score drops below your team's prior best, not a fixed number teams quietly lower. It runs where agents already live: MCP, Claude Code hooks, GitHub Action, AGENTS.md.

The standard

29 categories. 413 checks. 100% of a production engineering handbook.

We publish what we check. We keep private how much each counts and how the hard ones are judged. Every rule in the handbook maps to a shipped check — verified twice, independently.

StructureCode craftType systemNamingAPI designEventsReliabilityTestingAccessibilityError handlingData accessDependenciesDocumentationConfigurationGit hygieneFinOpsLLM integrationAgent architecturePrompt engineeringEvaluationSchema designProtobufCachingSecurityCI/CDObservabilityContainersReactCross-cutting
195

Static

Pattern and config detection — runs locally and offline in the free client. The same repo always scores the same.

109

Agent-judged

Semantic calls — single responsibility, dependency inversion, event immutability — resolved against private rubrics tuned for low false-positives.

109

Dynamic

Needs a runtime or git state to settle. Reported honestly as not verified, never guessed.

Why not just ask an LLM to review the code?

Because you can't gate CI on a number that changes every run. developer-doctor is deterministic: the same repo scores the same every time. The 109 semantic checks are judged against rubrics tuned for low false-positives across thousands of real files, and the score ratchets so no agent can quietly lower the bar. A prompt gives you a vibe. This gives you a gate.

Not another bug-fixing benchmark

SWE-bench measures whether an agent can fix a bug. developer-doctor measures whether the codebase it builds is production-grade across 29 dimensions.

How it works

Audit. Gate. Let the agents fix themselves.

01

Audit anything

Zero install, no config. A 0 to 100 score and tiered findings in seconds. Works offline.

$ npx developer-doctor .
02

Set the baseline, gate every PR

init scaffolds a CI workflow, a README score badge, and a committed baseline. From then on, --gate fails the build on any regression.

$ npx developer-doctor init  &  npx developer-doctor . --gate
03

Agents self-correct

install injects the gate skill into AGENTS.md, CLAUDE.md, and .cursorrules, and registers a Claude Code Stop hook. Every agent runs the audit before it opens a PR, then blocks itself on a regression.

$ npx developer-doctor install --hooks

The toolkit

Everything runs from one zero-dependency CLI.

Install into every agent

Teach Claude Code, Cursor, Copilot, and Windsurf to run the gate before every PR.

developer-doctor install --hooks

Roast + shareable scorecard

A humor-tinged reading, plus an SVG scorecard you can drop in a PR or a tweet.

developer-doctor roast --card card.svg

Per-agent scorecard

Which agent (Claude Code, Cursor, Codex, Copilot) actually writes code that meets your standard? Nothing else answers this — a public agent leaderboard is on the way.

developer-doctor agents

Bring your own standard

Encode your team's rules as checks in dd.standard.json, enforced on every run.

developer-doctor standard init

MCP server

Any coding agent in your stack can call the audit directly and fix before committing.

developer-doctor mcp

Reports and badges

Self-contained HTML or Markdown reports, plus a live shields.io score badge.

developer-doctor . --report html

Per-agent scorecard

Which agent actually writes code that meets your standard?

Attribute every run to the agent that produced it. developer-doctor shows which one clears your bar, and by how much — from your team's own runs. Nothing else answers this.

developer-doctor agents
$ developer-doctor agents
AgentScoreΔ vs baselineVerdict
claude-code66+2meets
codex61−3below
copilot69+5meets
cursor58−6below

Illustrative. Your scorecard is built entirely from your own attributed runs.

Coming

The first public leaderboard of which AI writes code that meets engineering standards.

Real scores

We scored ten beloved OSS repos. The median was 30.

Real offline scores under the strict 29-category standard. Large codebases accumulate advisory candidates, so a 50 does not mean Express is broken. It means there are 50 points of room before your agents ship on top of it. A breadth-of-standard story, not a quality verdict.

chalk
54
execa
53
commander
45
express
50
flask
26
requests
33
date-fns
14
hono
16
zod
11
fastapi
9

Median about 30 out of 100. CodeScene found codebases below 9.5/10 health make AI agents introduce 60% more defects and burn 50% more tokens. Your agents start from a low baseline, and the ratchet stops them from making it worse.

Read the full 24-repo report →

Where it fits

Honest about the neighbours.

Capabilitydeveloper-doctorLintersSonarQubeAI reviewersOSSF Scorecard
One 0 to 100 health score·partial··
29-category spanone language··security only
Private, un-gameable rubric····
Ratchet on regression·fixed gate··
Agent-loop / MCP native·added-onper-diff·
Zero-install (npx)····

Linters, SonarQube, CodeRabbit, and OpenSSF Scorecard are each excellent at what they do: one language's syntax, deep SAST, per-diff review, supply-chain security. developer-doctor is the layer none of them are. One private, unified standard, enforced inside the agent loop. Drop it into any agent runner or CI pipeline. They route the work; developer-doctor is the gate that says whether it met your standard.

Open source

Free and open today. The whole engine, all 413 checks, no account.

A hosted tier for teams — cross-repo dashboards, PR bot, SSO, and the agent leaderboard — is on the way. The calibrated oracle stays private; the client is yours to read, run, and fork.

MIT client zero dependencies runs offline private oracle Team — soon

Your standard. Their code. Your gate.

In ten seconds you'll know how far your code is from your own bar.

In one command you'll block every agent, on every PR, from making it worse.

$ npx developer-doctor . $ npx developer-doctor install