Borrowing it
Nothing to install: this file belongs to footprintjs/hcifootprint. 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/footprintjs/hcifootprint/main/CLAUDE.mdgit clone --depth 1 https://github.com/footprintjs/hcifootprintWrote 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/footprintjs/hcifootprint/claude-md)<a href="https://agentmods.dev/instructions/footprintjs/hcifootprint/claude-md"><img src="https://agentmods.dev/badge/instructions/footprintjs/hcifootprint/claude-md.svg" alt="Measured on agentmods" 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.03772 | $0.03772 |
| Opus 5 | $0.01886 | $0.01886 |
| Sonnet 5 | $0.00754 | $0.00754 |
| Haiku 4.5 | $0.00377 | $0.00377 |
Grade A, and why
hcifootprint 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 8d ago.
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 — 152 lines — stays where its author put it; the contents beside it link to each section on GitHub.
hcifootprint — feature-work map
Turns a web app's interaction surface into a typed, traversable journey graph an LLM can
plan over. You author actions and name journeys; a tool is what is served to a
model. One authored sentence (does) is both the human's label and the model's tool
description. Everything relational — routes between pages, which action unblocks which — is
derived from declarations made for other reasons, never authored. Trust the code
where any doc disagrees.
The vocabulary (1.10.0): you declare the JourneyMap; the session is the Walker; the
recording carries both. defineJourneyMap/JourneyMap are permanent reference-equal aliases of
buildNavigationGraph/NavigationGraph (tree/appmap.ts) — both names ship forever, neither is a
rename, and there is deliberately NO Walker export: the walker is the session. Three movers move
it — human (a real click, principal: 'user'), agent (the four served verbs whats_here /
why / do_action / did_it_work), guard (your data: when/enabledWhen) — plus the world's
own Cause.kind: 'stimulus'. Same pattern at three altitudes: footprintjs walks stages,
agentfootprint (defineSkillMap) walks skills, this walks screens.
An effect already held (1.12.0): An effect that is already true is not a pending one. When an
action's declarative verify contract covers every key it declares it writes and already holds at
fire time, the fire never waits for a state report that nothing will send — it settles on its own
handler and answers alreadyTrue. The rule lives in ONE small module (traverse/already-true.ts,
five conditions) called from fire() before the record is minted; it flips exactly one boolean in
the state-tap arm's guard, so an already-true fire falls through to the tapless block and waits on
the HANDLER rail instead. It reads verify and NOT writes — writes is key names only by stated
law, so nothing here can know the value an action would set. The marker is alreadyTrue: FilterCondition[] on the fire result AND the row (presence is the mark, the value is the evidence:
one field, not a boolean beside a list), served by modes.ts on the fire result and the settled
did_it_work answer with one authored sentence. NOT stamped on an allowed-unmaterialized fire —
that fate already has materialized: false.
Refusals teach, including the four that did not (1.12.0): TRANSITION_ID_REQUIRED,
ACTION_REQUIRED, KEY_REQUIRED and JOURNEY_REQUIRED were raised as {ok:false, judgment:'error', reason} and nothing else — no why, no correction, no valid set, not even positionData(). They
now meet the house standard: the argument named, the correction attached, the valid set carried
where one exists (actions / journeys from the same doors UNKNOWN_ACTION / UNKNOWN_JOURNEY
read; pending + awaitingSettlement + awaitingHuman from the same doors UNKNOWN_TRANSITION
reads), and honest silence where none does (KEY_REQUIRED — why runs a slice and never refuses a
key, so there IS no valid set). ADDITIVE: the four reason strings are unchanged, none grows a
singular transitionId (consent-invariant.test.ts sweeps for that), and no openTransitions was
minted — awaitingSettlement is already the word for fires still open, and a second name for one
fact is what answer-grammar rule 3 forbids. One in-repo toEqual pin was loosened deliberately
(one-journey-tool.test.ts) — it was the only exact-match assertion on the four.
Position has three tiers, one door each (1.11.0): page (sync) → container
(observeFocus, new) → state (updateState, not position). Sync pages; observe the deeper place.
sync() moves the walker and decides what is served; observeFocus() says which tab or area the
reader is in. Declare containers, and report the deepest one on screen. The middle door had to
exist: actions are served from the PAGE, so a cursor on a tab is served nothing (a container path to
sync now syncs its page and warns, naming observeFocus — before 1.11.0 it went off-graph
silently), and focus moved only on fire()/sync(), so a PERSON clicking a tab could never move
it. observeFocus (traverse/nav-session.ts) sets focus + the new lookingAt getter (served beside
youAreOn by modes.ts positionData), records a FocusMove, and touches NOTHING else — no
transition, no version bump, no change to available(). It refuses BY NAME: undeclared node, or a
node on another page. Three facts, three doors: show()/setVisible() = VISIBLE,
observeFocus() = the READER, sync() = the WALKER. Authored half lintable
(unevidenceable-tab, advisory); the runtime half no static check can see.
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.
- 8d ago First seen · 152 lines · 3,772 tokens per session scan A 547a12290cf7
hcifootprint CLAUDE.md is an instructions file published in the GitHub repository footprintjs/hcifootprint (9 stars, last pushed 13d ago), licensed MIT. It adds 3,772 tokens to every session, about $0.0189 per session on Opus 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.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.