Borrowing it
Nothing to install: this file belongs to dfieser/hea-bench. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/dfieser/hea-bench/main/CLAUDE.mdgit clone --depth 1 https://github.com/dfieser/hea-benchWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/dfieser/hea-bench/claude-md)<a href="https://agentmods.dev/instructions/dfieser/hea-bench/claude-md"><img src="https://agentmods.dev/badge/instructions/dfieser/hea-bench/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/dfieser/hea-bench/claude-md"><img src="https://agentmods.dev/badge/instructions/dfieser/hea-bench/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01778 | $0.01778 |
| Opus 5.5 | $0.00711 | $0.00711 |
| Sonnet 5.5 | $0.00356 | $0.00356 |
| Haiku 4.5 | $0.00178 | $0.00178 |
Grade A, and why
hea-bench CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
hea-bench: rules that override defaults
-
Agents operate this repo (commits, pushes, releases). Optimize every rule, doc, and process for agents by default: enforce mechanically (hooks, CI) rather than by convention, write mechanical sequences rather than advice, and make error messages name the exact fix. A fresh agent session that has read nothing should still be forced into the right behavior.
-
FOUR-PART PARITY IS MANDATORY (owner rule, 2026-10-06, widening the 2026-10-05 app-parity rule). hea-bench ships as four parts, and a person should only ever need ONE of them: the Python package (PyPI), the MCP server (
hea-bench-mcp, in the official MCP registry), the desktop exe (theweb/folder in a Tauri shell with no Rust commands) and the web site (built fromweb/). From now on every user-facing feature must appear AND work in all four. A feature missing from any part is a DEFECT, not a finished feature, and a new feature is not done until it works in all four. Since v2.7.0 they all do, except the HEACalculator bridge, which the owner deferred on 2026-10-05 (it needs the user's own HEACalculator install).ENFORCED, not advised.
tests/test_feature_parity.pyreadstests/data/feature_parity.json, where every public name, MCP tool, phase rule and CLI command is listed once, and fails CI with the exact fix when a feature lacks a library name, an MCP tool, app evidence (DOM ids, bridge methods the page calls, browser-core functions it uses) or tests.tests/test_app_smoke.pyuses every tab of the built site in a headless browser (CIweb-enginejob).tests/test_installed_package.pybuilds the wheel, installs it fresh and calls every MCP tool over stdio (CIpackagejob).tests/test_desktop_smoke.pyuses every tab inside the built exe (releasedesktop-buildjob). Adding a public feature, mechanically:- The library function, public in some
__all__. - Its MCP tool in
_TOOLSinsrc/hea_bench/mcp_server.py, a thin wrapper with a_PARAM_DOCSentry, and a call to it inTOOL_CALLSintests/package_smoke.py. - Its app surface in
web/(hea-features.js, plus ahea_bench.webappbridge method if it needs Python, added totests/data/web_engine_calls.json). - Its names under one feature in
tests/data/feature_parity.json. - If it uses the engine, a step in
STEPSintests/app_smoke.cjsthat uses it through its UI. python tools/build_web_engine.py, thenpytest tests/test_feature_parity.py tests/test_webapp.py tests/test_app_smoke.pyandHEA_BENCH_PACKAGE_SMOKE=1 pytest tests/test_installed_package.py.
How the app is built:
web/README.md. - The library function, public in some
-
Shipping = pushing. Any push to
maintouchingsrc/**,web/**,src-tauri/**,server.json, orpyproject.tomlauto-releases all four surfaces (PyPI, MCP registry, desktop exe, web site) via theAuto releaseworkflow. Do not hand-tag or bump versions for routine changes. Push, then confirm the run goes green withgh run list. Opt out with[no-release]in the head commit message. -
The pre-push hook runs the release preflight. Do not fight it. Pushing a shippable path triggers
python tools/preflight.py(every locally runnable release gate plus the external-registry metadata limits) viatools/git-hooks/pre-push, enabled by the same one-per-clonegit config core.hooksPath tools/git-hooksas the commit-msg hook. Agent push sequence, mechanically:git push. The hook runs the preflight and refuses a failing push.- Fix whatever it names and push again. NEVER
--no-verify, and never delete a check. gh run list, and watch theAuto releaserun to green.
Green means PyPI, the MCP registry, the GitHub Release and the live site are verified. It does NOT wait for the desktop exe, which is a 15-20 minute Rust build that nobody waits for. Never watch or wait for
desktop-build: if it fails,release.ymlopens an issue labelleddesktop-buildthat mentions and assigns the owner, so GitHub emails the owner. A later session fixes it. A transient failure is re-fired withgh workflow run release.yml --ref vX.Y.Z, but a re-fire builds the tagged code, so a code fix needs a greengh workflow run desktop-smoke.yml --ref mainand then ships with the next releasing push (preflight enforces this). Heed preflight's "gate NOT pre-verified" warnings before touching benchmark, corpus, split, or web-parity code. If a release ever fails for a reason the preflight did not catch, the fix commit must also add the check and a RELEASING.md catalog row. Checks are only added, never removed. -
The one version number lives in
src/hea_bench/__init__.py. The only legal way to change it ispython tools/version.py --set X.Y.Z. -
NEVER touch the GitHub↔Zenodo integration. It can irreversibly fork the concept DOI. See
RELEASING.mdfor everything about releases. -
No em dash and no semicolon in public text, ever (owner rule, 2026-11-07). This covers documents, the CHANGELOG, commit messages, GitHub release notes, the app's text, MCP tool descriptions, docstrings, warnings and errors. Run the ai-writing-cleanup skill on any new public text. ENFORCED:
tests/test_public_text_style.pyfails CI on either mark, thecommit-msghook refuses a commit message with one, and the preflight checks the unpushed commit messages and the CHANGELOG[Unreleased]section.tools/autorelease.pywrites the release notes and the app's What's-new entries as plain sentences. Fix a hit by rewriting the sentence with a period, comma or colon. The test'sVERBATIMlist is only for quotations, such as a paper title. -
No AI attribution, anywhere, ever. Never add a
Co-Authored-Bytrailer naming an AI or agent, and never list one as an author, contributor, creator, or reviewer in commit messages,CITATION.cff,.zenodo.json,README.md,CONTRIBUTING.md, release notes, or the web app. Credit named humans only. Acommit-msghook intools/git-hooks/rejects such trailers. Enable it once per clone withgit config core.hooksPath tools/git-hooks. The 101 historical commits that carry the old trailer are deliberately left alone, because rewriting them would move every tag and put the Zenodo-linked releases at risk. -
Credit external reporters and reviewers in the CHANGELOG entry, the README acknowledgements, and the GitHub release notes, in the form the person asks for. Ask before publishing a name that arrived by private email.
-
Library usage (API, units, pinned sanity values):
AGENTS.md.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +18 lines · +192 tokens per session e3bccd9b9bc4
- 1mo ago Changed · +11 lines · +227 tokens per session 2c56229dfb13
- 1mo ago Changed · +29 lines · +486 tokens per session 30d4f8f675c1
- 2mo ago First seen · 56 lines · 873 tokens per session scan A 07f8d3dbc8ac
hea-bench CLAUDE.md is an instructions file published in the GitHub repository dfieser/hea-bench (3 stars, last pushed yesterday), licensed MIT. It adds 1,778 tokens to every session, about $0.0071 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
hea-bench CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| hea-bench CLAUDE.mddfieser/hea-bench | Instructions file | 3 | yesterday | MIT | A | 1,778 | Claude Code |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 5,649 | GitHub Copilot |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | today | MIT | A | 4,680 | Codex, OpenCode |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 3,093 | GitHub Copilot |
| vscode model-prompts.instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 2,022 | GitHub Copilot |