Benchmark how agent-ready a code repository is for LLM coding agents.
Project description
agent-readiness
A benchmark for AI agent readiness of a code repository.
You bought the seats. Your team is using Claude Code, Cursor, Copilot, Cline. And the agents keep going off the rails on your codebase.
The model is the variable you can't change. The repo is what you can.
agent-readiness scans a repository and scores how ready it is for AI
coding agents — across cognitive load, feedback loops, and flow — then
hands you a prioritised punchlist of fixes. Like Lighthouse, but for AI
agent readiness instead of page load.
$ agent-readiness scan .
AI Readiness 62 / 100
Cognitive load 70 / 100
Feedback loops 40 / 100 ← biggest drag
Flow & reliability 75 / 100
Safety OK
Top friction (fix these first):
1. test_command.discoverable — no test invocation found in Makefile,
package.json, or pyproject.toml
2. agent_docs.present — no AGENTS.md / CLAUDE.md / .cursorrules at root
3. headless.no_setup_prompts — README mentions "log in to the dashboard"
during setup; agents can't traverse this
Design principles
Agents are headless. We assume the agent has stdin / stdout / files / git / HTTP and nothing else. No browser, no dashboard, no clickable button. If important state is reachable only through a UI, it's invisible to the agent — and the repo loses points wherever that's true.
This applies to our own tool, too. agent-readiness is fully headless:
no required interactive prompts, stable JSON via --json, exit codes
that mean things, machine-readable findings.
Code quality counts only where it predicts agent success. Mega-files, ambiguous names, dead code, missing types — those have direct lines to agent failure modes and get measured. We don't reproduce the full SonarQube taxonomy. Other tools do that well.
Run untrusted code in Docker, always. Any check that executes code
from the target repo runs inside a sandboxed container. See
docs/SANDBOX.md.
What gets measured
See docs/RUBRIC.md for the full definition. Short version:
| Pillar | What it captures |
|---|---|
| Cognitive load | What the agent must absorb to make a correct change. |
| Feedback loops | How fast and clear is the signal after a change. |
| Flow / reliability | Headless walkability + how often friction outside the task blocks the agent. |
| Safety & trust | Secrets, destructive scripts, gitignore hygiene. (Cap, not weight.) |
This repo's score
Dogfooding: agent-readiness scan . run against this repository itself.
╭─────────────────────────────╮
│ AI Readiness 100.0 / 100 │
╰─────────────────────────────╯
Cognitive load 100.0 ████████████████████
Feedback loops 100.0 ████████████████████
Flow & reliability 100.0 ████████████████████
Safety 100.0 ████████████████████
No findings. Looking good.
Score updated after each iteration as part of the development workflow.
Usage
# Static scan (no Docker needed)
agent-readiness scan .
agent-readiness scan . --json
agent-readiness scan . --fail-below 70 # exit 1 if score < 70 (CI gate)
agent-readiness scan . --only feedback # filter to one pillar
agent-readiness scan . --baseline prev.json # diff against a previous run
agent-readiness scan . --report report.html # HTML report (requires jinja2)
agent-readiness scan . --badge badge.svg # score badge SVG
agent-readiness scan . --sarif findings.sarif # SARIF for GitHub code scanning
# Runtime scan (executes tests inside Docker)
agent-readiness scan . --run
# Other commands
agent-readiness list-checks
agent-readiness explain manifest.detected
agent-readiness init # write .agent-readiness.toml
Status
All phases implemented (v0.1–v0.9). 22 checks across 4 pillars, Docker
sandbox, HTML + SARIF renderers, CLI surface, plugin API. See
docs/PLAN.md for the full roadmap and
CHANGELOG.md for per-phase release notes.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_readiness-1.0.0.tar.gz.
File metadata
- Download URL: agent_readiness-1.0.0.tar.gz
- Upload date:
- Size: 94.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccf70c863d0c9007b9a887abbf83021f3cb5793eb919bb67c1e20f4b0d00c224
|
|
| MD5 |
4601e9fb672cac0eba7a3359a9f5f519
|
|
| BLAKE2b-256 |
9f592f47b1b38b9929bef152ef2cb2269973be3c85f51fdf81d059c53fde5b9c
|
Provenance
The following attestation bundles were made for agent_readiness-1.0.0.tar.gz:
Publisher:
release.yml on harrydaihaolin/agent-readiness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_readiness-1.0.0.tar.gz -
Subject digest:
ccf70c863d0c9007b9a887abbf83021f3cb5793eb919bb67c1e20f4b0d00c224 - Sigstore transparency entry: 1397630567
- Sigstore integration time:
-
Permalink:
harrydaihaolin/agent-readiness@db0f749ca125f81ae6205bbe0530c1de2245cbfc -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/harrydaihaolin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@db0f749ca125f81ae6205bbe0530c1de2245cbfc -
Trigger Event:
push
-
Statement type:
File details
Details for the file agent_readiness-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agent_readiness-1.0.0-py3-none-any.whl
- Upload date:
- Size: 74.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1841615e2d0fb5b033e4f2510a35e732d75cb649adecbc9e6310eece631bbf72
|
|
| MD5 |
014e684589f2310c1cfe093f08c7b4b4
|
|
| BLAKE2b-256 |
77885fe9e1505529b2770453bf94f99dc3f1cd6663f5e132deeb8108ca6c1bee
|
Provenance
The following attestation bundles were made for agent_readiness-1.0.0-py3-none-any.whl:
Publisher:
release.yml on harrydaihaolin/agent-readiness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_readiness-1.0.0-py3-none-any.whl -
Subject digest:
1841615e2d0fb5b033e4f2510a35e732d75cb649adecbc9e6310eece631bbf72 - Sigstore transparency entry: 1397630577
- Sigstore integration time:
-
Permalink:
harrydaihaolin/agent-readiness@db0f749ca125f81ae6205bbe0530c1de2245cbfc -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/harrydaihaolin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@db0f749ca125f81ae6205bbe0530c1de2245cbfc -
Trigger Event:
push
-
Statement type: