DEV Community

Fernando Paladini
Fernando Paladini

Posted on

Harness Score 1.1: multilingual guide (EN / pt-BR / es) + Claude Code hook-path fix

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:

  1. The guide is now available in English, Portuguese (Brazil), and Latin American Spanish.
  2. HKS-05 no longer false-negatives valid Claude Code hook command paths.
npx harness-score@1.1.0
Enter fullscreen mode Exit fullscreen mode

TL;DR

  • Docs: full VitePress guide + landing pages at /, /pt-BR/, /es/ with a language switcher
  • Scanner: HKS-05 understands unbraced $CLAUDE_PROJECT_DIR/... and node_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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

What did not change

Surface Still true in 1.1.0
Check IDs (CTX-01HYG-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
Enter fullscreen mode Exit fullscreen mode

Gate CI at L3:

- uses: paladini/harness-score/action@main
  with:
    min-level: '3'
Enter fullscreen mode Exit fullscreen mode

Read the guide in your language:


Links

If the multilingual guide helped — or if HKS-05 was biting you — drop your level + tool stack in the comments.

Top comments (0)