v1.0.0 — Harness Score goes 1.0: general-purpose, stable, here to stay
Harness Score 1.0 🎉
The first stable major release — and the release where Harness Score officially becomes a general-purpose tool.
An AI coding agent is a model plus a harness — the context files, rules, skills, hooks, sensors, and guardrails wrapped around it. Harness Score measures that harness: point it at any repository and get a maturity level (L0–L4), a 108-point breakdown across six dimensions, and the precise, ranked list of what to fix next.
npx harness-scoreOne tool, every harness
Harness Score started life as a Cursor-focused scanner. Over the v0.4–v0.6 releases it grew a full multi-harness engine, and 1.0 makes that the headline: one scan scores the harness your repository builds for Cursor, Claude Code, Windsurf, Cline, Continue, Codex, and other AI coding tools — with OR semantics across equivalent artifacts, so a nested CLAUDE.md counts exactly like a scoped Cursor rule, and a .claude/settings.json hook counts like a .cursor/hooks.json gate. Reports name every tool they detect:
Maturity: L2 · Guided Score: 70/108 (65%)
Detected: Cursor, Claude Code
Your harness is an investment that pays off for every agent in your workflow, no matter which tool each teammate prefers. See the Multi-Harness Support guide for the full story.
What 1.0 means: a stability contract
The major version is a promise, not a disruption. v1.0.0 scores repositories identically to v0.6.0 — no check changes, no point moves. What changes is that the public surface is now frozen under semantic versioning:
- Check IDs (
CTX-01…HYG-08) are stable identifiers — safe to reference in dashboards, scripts, and policies. - The
ReportJSON shape (--jsonoutput and the typed programmatic API) only gains fields in minors; removals or renames are major. - CLI flags and exit codes (
0pass,1gate failure,2usage error) are stable — safe to gate CI on. - Maturity-model evolution (new checks, weights, thresholds) ships in minor versions and is always flagged by
--diff'smaturityModelChanged, so old baselines are never silently misread. - The determinism invariants are permanent: zero LLM calls, zero network access, zero runtime dependencies, same input ⇒ same output. Forever.
Full statement: Stability & versioning.
Everything the platform ships today
- 🔍 The CLI — 36 deterministic checks across 6 dimensions,
--json/--md/--badgeoutput,--diffmode,--min-levelCI gate. Zero runtime dependencies. - ⚙️ The GitHub Action — scan every push, gate on a minimum level, post sticky PR comments with score deltas, emit the badge.
- 🧩 Editor/agent plugins —
/harness-auditfor Cursor (flagship) and Claude Code (read-only audit), with more tools planned (PLUGINS-ROADMAP.md). - 📖 The Guide — harness engineering end-to-end: guides, sensors, guardrails, and the five-level maturity model, at paladini.github.io/harness-score.
Install
| Registry | Package | Install |
|---|---|---|
| npm | harness-score |
npm install -g harness-score (or just npx harness-score) |
| JSR (Deno/Bun) | @paladini/harness-score |
npx jsr add @paladini/harness-score |
| GitHub Packages | @paladini/harness-score |
npm i -g @paladini/harness-score --registry=https://npm.pkg.github.com |
What's coming next 🚀
1.0 is a starting line, not a finish line. Big things are in preparation for this repository — here's what's on the roadmap:
harness-score init— a scaffold command that turns the diagnostic into a fixer: deterministic starter templates for the highest-value missing artifacts.- Real-world corpus analyses — scanning a large corpus of public repositories to calibrate thresholds and check weights against how teams actually build harnesses, with published findings, not just internal tuning.
- SARIF output for GitHub code-scanning integration.
- More first-class plugins — Claude Code beyond Phase 0, Windsurf, and others.
Watch the repo — more analyses, bigger changes, and some surprises are on the way.
Thanks
To everyone who ran the scanner against real repositories and reported false positives/negatives — that feedback shaped every release from v0.1.2 to this one. Found a check that's wrong about your repo? That's the highest-value issue you can file.
Full changelog: v0.6.0...v1.0.0 · CHANGELOG.md