A week after 1.0, harness-score 1.1.0 is out.
Same maturity model. Same check IDs. Same deterministic scanner.
Two things changed — and both came from real usage:
- The guide is now available in English, Portuguese (Brazil), and Latin American Spanish.
- HKS-05 no longer false-negatives valid Claude Code hook command paths.
npx harness-score@1.1.0
TL;DR
-
Docs: full VitePress guide + landing pages at
/,/pt-BR/,/es/with a language switcher -
Scanner: HKS-05 understands unbraced
$CLAUDE_PROJECT_DIR/...andnode_modules/.bin/hook binaries - Stability: no check renames, no score-model churn — upgrade is safe
- Still: MIT, zero runtime deps, zero LLM calls, CI-gateable
Why multilingual docs matter for harness engineering
Harness engineering isn't an English-only conversation.
Teams in Brazil, LatAm, and Spain are wiring Cursor, Claude Code, and Windsurf into production repos right now. The maturity model — L0 Unharnessed through L4 Self-correcting — only helps if people can read the remediation recipes in the language they think in.
So 1.1.0 ships the same guide, fully translated:
| Locale | URL |
|---|---|
| English (default) | paladini.github.io/harness-score |
| Português (Brasil) | /pt-BR/ |
| Español (LatAm) | /es/ |
Landing pages, guide chapters, check catalog anchors (#ctx-01, …), glossary, and hreflang SEO all ship together. Switch language from the header — you land on the equivalent page, not the homepage.
The English source remains the contract. Translations track it; CI keeps check-catalog anchors in sync across locales.
The Claude Code false negative (HKS-05)
HKS-05 asks: do the scripts your hooks invoke actually exist in the repository?
Claude Code accepts both interpolation forms for project-relative hook commands:
${CLAUDE_PROJECT_DIR}/.claude/hooks/setup.sh # braced — already worked
$CLAUDE_PROJECT_DIR/.claude/hooks/setup.sh # unbraced — was a false negative
Both are valid. Before 1.1.0, only the braced form was stripped before the filesystem check. If your hooks used $CLAUDE_PROJECT_DIR/... and the script was committed, you still lost 2 points — and got told to "commit the script."
Also fixed: hooks that call package-manager binaries under node_modules/.bin/ (e.g. ${CLAUDE_PROJECT_DIR}/node_modules/.bin/block-no-verify). Those aren't supposed to be in git — npm install creates them. The scanner now treats them as resolved.
If you were on Claude Code hooks and scratching your head at HKS-05: upgrade and re-scan.
npx harness-score@1.1.0 --diff baseline.json
What did not change
| Surface | Still true in 1.1.0 |
|---|---|
Check IDs (CTX-01 … HYG-08) |
Stable public API |
| Point totals / level thresholds | Same as 1.0.0 |
| Determinism | No LLM · no network · no telemetry |
| Multi-harness OR semantics | Cursor, Claude Code, Windsurf, Cline, Continue, Codex, Copilot, … |
| Exit codes |
0 pass · 1 gate fail · 2 usage error |
1.1 is a minor: docs + correctness. Not a new maturity ladder.
Try it
npx harness-score@1.1.0
Gate CI at L3:
- uses: paladini/harness-score/action@main
with:
min-level: '3'
Read the guide in your language:
Links
- Release: v1.1.0
- Repo: github.com/paladini/harness-score
- npm:
harness-score@1.1.0 - Previous: Harness Score 1.0 announcement
If the multilingual guide helped — or if HKS-05 was biting you — drop your level + tool stack in the comments.
Top comments (0)