Observed since 20 Oct, 23:12 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Score your codebase on how ready it is for AI agents — and coach you through the fixes.
Score your codebase on how ready it is for AI agents — and coach you through the fixes.
AgentRepoCoach computes the Codebase Agent Health (CAH) score: a single 0-100 composite measuring how friendly a repository is for autonomous AI agents. It blends six statically-measurable components:
AGENTS.md, codebase map, CLI manifest, root cleanlinessAgentRepoCoach ships with zero runtime dependencies — it uses the Python 3.11+
standard library only, including tomllib for config parsing.
Add this to any workflow to score your repo and fail the build if the composite score drops below a threshold:
name: codebase-health
on:
push:
branches: [main]
pull_request:
jobs:
agentrepocoach:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run AgentRepoCoach
id: agentrepocoach
uses: WouterDeBot/agentrepocoach@v1
with:
repo-path: .
output-format: json
output-path: ./agentrepocoach-report.json
fail-threshold: '70'
- name: Show composite score
run: echo "Score: ${{ steps.agentrepocoach.outputs.composite-score }}"
- uses: actions/upload-artifact@v4
with:
name: agentrepocoach-report
path: ./agentrepocoach-report.json
Action inputs:
| Input | Default | Description |
|---|---|---|
repo-path | . | Path to scan |
config-path | .agentrepocoach.toml | TOML config file |
output-format | json | json, markdown, or both |
output-path | ./agentrepocoach-report.json | Where to write the report |
fail-threshold | (unset) | Exit 1 if score < threshold |
python-version | 3.11 | Python version to install |
Action outputs:
| Output | Description |
|---|---|
composite-score | CAH composite score (0-100) |
report-path | Absolute path to written report |
Install and run:
pip install agentrepocoach
Run tests after contributing:
pytest tests/ -q
Score your repository:
# Score the current directory (prints a summary table)
python -m agentrepocoach.cli --repo .
# Write a JSON report to disk
python -m agentrepocoach.cli --repo . --format json --output ./report.json
# Per-sub-component breakdown
python -m agentrepocoach.cli --repo . --verbose
# Compare against a baseline report (inline delta)
python -m agentrepocoach.cli --repo . --format json --output ./pr.json --compare ./baseline.json
# Compare two saved score files
python -m agentrepocoach.cli compare ./baseline.json ./pr.json
# Show the installed version
python -m agentrepocoach.cli --version
AgentRepoCoach looks for .agentrepocoach.toml at the repo root. Every field is
optional — the tool ships with sensible defaults and will score zero-config
repos without complaint.
Minimal example (schema v2, required since v0.4.0):
# .agentrepocoach.toml
schema_version = 2
[weights]
navigability = 0.22
error_quality = 0.22
decision_queryability = 0.18
test_quality = 0.13
module_hygiene = 0.13
bootstrap_signals = 0.12
[paths]
adr_dir = "docs/adr/"
architecture_doc = "docs/architecture.md"
[error_quality]
domain_exception_types = ["DomainError", "ValidationError"]
[decision_queryability]
inline_ref_patterns = ["ADR-\\d+"]
# Optional: tune bootstrap_signals detection globs / patterns
[bootstrap_signals]
ci_workflow_globs = [".github/workflows/*.yml", ".gitlab-ci.yml"]
Migrating from v1? Add schema_version = 2 at the top and add
bootstrap_signals = 0.12 to [weights], then rebalance the other five
weights so they still sum to 1.0. See docs/configuration.md
for the one-line migration recipe.
See docs/METHODOLOGY.md for the full config schema
and scoring formula.
| Language | Status | Notes |
|---|---|---|
| C# | Full MVP | Throw-site scanner, XML doc detection, internal visibility, .sln/.csproj discovery |
| Python | Full MVP | Raise-site scanner, docstring detection, top-level visibility, src/ layout aware |
| TypeScript | Full MVP | Throw-site scanner with multi-line context, JSDoc detection, Jest/Vitest test extraction |
| Rust | Full MVP | panic!/Err(Custom) mapping, /// doc comment detection, #[test] attribute detection |
| Go | Full MVP | errors.New/fmt.Errorf/custom error mapping, Go doc comment detection, Test* function extraction |
Adding a new adapter is a small, well-scoped task — see
CONTRIBUTING.md.
When you run AgentRepoCoach, it doesn't just score your repo — it tells you what to fix first. The coaching engine analyzes sub-component score gaps and surfaces the top-3 actionable tips ranked by weighted impact. Recommendations appear in:
--verbose)--format markdown)--format json, new coaching array)AgentRepoCoach detects the primary language of the repo, loads a language adapter, and runs six component scorers against the adapter's view of the codebase. Each component returns a 0-100 sub-score with a transparent breakdown. The weighted sum is the composite CAH score.
The six components are:
AGENTS.md, codebase map, CLI manifest, and root cleanliness.[bootstrap_signals] in .agentrepocoach.toml.Every output field is a count, percentage, type name, or file path — AgentRepoCoach never emits code snippets or raw message bodies, so reports are safe to publish as CI artifacts.
The full scoring methodology — including the composite formula, per-component
rationale (the agent failure modes each component addresses), sub-component
weights with source-code citations, calibration notes, and limitations — is
documented in docs/METHODOLOGY.md.
Apache 2.0. See LICENSE.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.5.0 | 8 Jun 2026 | 4 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 23:12 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:030ce3c3d0c4b8f59e4cdfab3c00a2b3036470ce36bbb392ad76ff13d6e0451a