Borrowing it
Nothing to install: this file belongs to footprintjs/footPrint. 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/footPrint/main/CLAUDE.mdgit clone --depth 1 https://github.com/footprintjs/footPrintWrote 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/footprint/claude-md)<a href="https://agentmods.dev/instructions/footprintjs/footprint/claude-md"><img src="https://agentmods.dev/badge/instructions/footprintjs/footprint/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/footprintjs/footprint/claude-md"><img src="https://agentmods.dev/badge/instructions/footprintjs/footprint/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.14626 | $0.14626 |
| Opus 5.5 | $0.05850 | $0.05850 |
| Sonnet 5.5 | $0.02925 | $0.02925 |
| Haiku 4.5 | $0.01463 | $0.01463 |
Grade A, and why
footPrint 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 4d 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 — 156 lines — stays where its author put it; the contents beside it link to each section on GitHub.
footprintjs — feature-work map
Self-explaining flowchart engine: a fluent builder emits a static chart; one DFS pass executes it while observer channels + a commit log capture everything ("collect during traversal, never post-process"). This file maps seams and blast radius; for API description read the code/README — trust the code where any doc disagrees.
Module map
Entry points: footprintjs (engine API), /recorders, /trace (engine recorders, stores and structure walkers), /advanced (engine internals), /detach, /zod, /sinks (10.1, NODE ONLY — fileSink, the one door that imports node:fs). The separate foottrace package owns records: root for readers/types/IDs, /write for writer primitives, /paths for path rules and nested diagnostic writes. No record declaration is re-exported by FootPrint 10. See docs/design/2026-10-trace-extraction.md for the extraction design and migration map.
| src/lib/ | one job |
|---|---|
| capture/ | engine retention policies, bounded payload summarization, hook invocation and dev-mode helpers. Value-kind classification and record freezing now belong to foottrace. |
| memory/ | engine composition and policy: StageContext composes RecordFrame from foottrace/write; ExecutionRuntime owns run state and observer wiring; run addresses, redaction verdicts, frame types and diagnostics remain here. DiagnosticCollector uses foottrace/paths; replay/write rules are not copied here. |
| schema/ | duck-typed validation (.safeParse/.parse ⇒ 'parseable') |
| builder/ | fluent DSL → FlowChartSpec → StageNode graph; build-time StructureRecorder channel. NOT standalone: imports runner's makeRunnable (FlowChartBuilder.ts:18) |
| builder/retryLoop.ts | addRetryLoop (10.1, P3b) composes ordinary attempt/reconcile/decide/wait/done/stop nodes over the shared retryRules table. One operation key survives passes and pause/resume; native physical calls stay unchanged and retryLoop metadata links logical passes/decisions. The helper declares conservative total-pass budget metadata, preserved through subflow prefixing; see src/lib/builder/README.md. |
| budget/ | the static time budget (10.1, P5): timeBudget(chart) walks the BUILT graph once (explicit stack, each chain memoised per start, capped at MAX_WALK visits, saturating sums) — stage = attempts × timeoutMs + waits, sequence = sum, decider/selector/fork = own stage + slowest child, parallelForEach = one branch; a FUNCTION backoff is never called (counted at RetryPolicy.maxBackoffMs, which attempt/policy.ts · cappedWaitMs makes the runner enforce; else unbounded 'backoff'); loops NEVER iterated (unbounded unless assume.loops or an explicit helper's declared pass bound). Read by the builder (.budget(ms) refuses at build() when knownMs > budgetMs) and the runner (chart.timeBudget(), the run-start warning) — its own module because a runner → builder edge closes the builder ⇄ runner cycle; see src/lib/budget/README.md |
| scope/ | ScopeFacade per stage (tracked get/set, $emit, frozen args/env); built-in ScopeRecorders in scope/recorders/ |
| reactive/ | TypedScope deep Proxy over the facade — four write laws + the honest boundary (what find/for…of hands back is raw and WARNED ABOUT in dev mode, not intercepted; a proxy held past its stage IS refused — ScopeFacade · assertLive); handles.ts = the registry of every proxy the factories built → the value behind it, asked wherever an app value enters the record (the set traps since 9.24.0 — no JSON round-trip any more; fan-out resolveItems, subflow in/out mappers, $setValue/$update/$batchArray since 9.23.3, after a fan-out over object items seeded the handle and lost every child); see src/lib/reactive/README.md |
| decide/ | decide()/select() evidence capture |
| filter/ | evaluator.ts · evaluateFilter — the ONE filter-rule law, shared by decide() and the attempt rule table; its own leaf module since P2 (10.1), because in decide/ it made attempt/ reach scope/ and scope.$call closed an attempt ⇄ decide ⇄ scope module cycle |
| attempt/ | the ONE retry loop and its record (10.1, docs/design/2026-10-time-and-failure-evidence.md): runner.ts · runAttempts runs a policy and makes one frozen AttemptRecord per try (timing, outcome, category, the retry-or-stop decision as DecisionEvidence) + an AttemptSummary; decision.ts · retryRules = the one rule table as decide() rules (first match, labels ARE the reasons) + decideAttempt, decide()'s evaluation without a scope (filter rows from filter/evaluator; a property test pins equal evidence); category.ts · errorCategory = the one classifier (seven fixed values); errors.ts, anySignal.ts. L5 beside decide/, but types.ts (with decide/types.ts) is an L0 leaf because StageSnapshot (L4) names it. RetryPolicy is declared here, re-exported by engine/types.ts |
| recorder/ | engine stores (KeyedStore/SequenceStore/BoundaryStateStore), CombinedRecorder routing, and built-in Topology/InOut/ControlDep/Quality recorders. CommitRangeIndex is owned and exported by foottrace. attemptSeries.ts = the ONE predicate every built-in recorder uses for attempt rows (P1c, 10.1: a series that RETRIED, GAVE UP or TIMED OUT; a first-time success adds no row anywhere, so no-retry runs stay byte-identical) — it lives here, not in attempt/, because a recorder → attempt runtime edge closes the attempt⇄decide⇄recorder⇄scope module cycle. Quality/Debug see onAttempt only through attachCombinedRecorder |
| pause/ | PauseSignal / FlowchartCheckpoint types + interrupt(scope, payload) (throws InterruptSignal; converted to PauseSignal at the StageRunner boundary, pausedBy:'interrupt') |
| engine/ | FlowchartTraverser + handlers/; narrative/ = the whole FlowRecorder channel (dispatcher + 9 strategies), not just text; lib/ids/branchSegment.ts (moved to the ids/ leaf in 9.37.0) = the ONE owner of the generated-segment grammar (<stageId>~<index>, marker ~ RESERVED); executeStage (:720) = the ONE funnel every stage fn passes through — and therefore the ONE owner of the declarative retry loop; handlers/ResumeEntry.ts = the ONE owner of a resume's ONE-SHOT re-entry (M2, 9.28.0: start + one hop per subflow on the pause path, each level's dispatcher continuation read from the chart, waiting sibling pauses queued at their fan-out) |
| runner/ | FlowChartExecutor wiring — composes attach.ts (RunObservers) · resume.ts · checkpoint.ts · snapshot.ts · options.ts (F9, 9.41.0); (runtime, recorders, pause/resume, snapshot, DeferredObserverTier). RunContext.ts is a fluent run builder, NOT the threaded per-run context |
| observer-queue/ | pure deferred-delivery pipeline (engine imports IT, never reverse) |
| sinks/ | (10.1, P6) fileSink / readRecordFile — the crash-safe record on a Node host: one JSON line per entry, each written asynchronously at its own offset, only the path given (O_NOFOLLOW, 0o600; hard links / foreign / shared-writable refused), every resource bounded. The ONLY node: importer in src/ (layering.test pins it and that only src/sinks.ts reaches it). The run's side is runner/recordSink.ts · RunRecord |
| contract/, detach/ | I/O schema normalization (OpenAPI generation belongs to runner/RunnableChart); fire-and-forget child charts (drivers passed explicitly) |
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.
- 4d ago Changed · +13 lines · +236 tokens per session ff4b99abc89f
- 6d ago Changed · +5 lines · +208 tokens per session b40da7f6e9c1
- 7d ago Changed · +34 lines · +2,239 tokens per session 012d391c4019
- 8d ago Changed · +2 lines · +737 tokens per session f8e2efd55172
- 13d ago Changed · -2 lines · -2,826 tokens per session 6595c751de60
- 14d ago Changed · +2 lines · +1,459 tokens per session 5725d51d7f60
- 15d ago Changed · +1 lines · +541 tokens per session 81ac7fb1f0f9
- 16d ago Changed · +87 tokens per session 1c5f36ede9cd
- 17d ago Changed · +524 tokens per session 662d19ac616d
- 18d ago First seen · 101 lines · 11,421 tokens per session scan A dc6862a88ad9
footPrint CLAUDE.md is an instructions file published in the GitHub repository footprintjs/footPrint (21 stars, last pushed yesterday), licensed MIT. It adds 14,626 tokens to every session, about $0.0585 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-30.
Other instructions, from other repositories
vibetags com-example-service-TransactionalPaymentService.instructions.md
Instructions for PIsberg/vibetags, covering copilot instructions for transactionalpaymentservice and strict exception handling.
vibetags com-example-gmm-platform-FeatureGate.md
Instructions for PIsberg/vibetags, covering amazon kiro steering: featuregate and feature flag gate.
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).
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.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
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.