Skip to content

v1.0.0 — Harness Score goes 1.0: general-purpose, stable, here to stay

Choose a tag to compare

@paladini paladini released this 15 Jul 17:58

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-score

One 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-01HYG-08) are stable identifiers — safe to reference in dashboards, scripts, and policies.
  • The Report JSON shape (--json output and the typed programmatic API) only gains fields in minors; removals or renames are major.
  • CLI flags and exit codes (0 pass, 1 gate failure, 2 usage 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's maturityModelChanged, 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 / --badge output, --diff mode, --min-level CI 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-audit for 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