Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add footprintjs/hcifootprint --skill hcifootprint-adoptiongit 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/skills/footprintjs/hcifootprint/hcifootprint-adoption)<a href="https://agentmods.dev/skills/footprintjs/hcifootprint/hcifootprint-adoption"><img src="https://agentmods.dev/badge/skills/footprintjs/hcifootprint/hcifootprint-adoption/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/skills/footprintjs/hcifootprint/hcifootprint-adoption"><img src="https://agentmods.dev/badge/skills/footprintjs/hcifootprint/hcifootprint-adoption.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.00050 | $0.01392 |
| Opus 5.5 | $0.00020 | $0.00557 |
| Sonnet 5.5 | $0.00010 | $0.00278 |
| Haiku 4.5 | $0.00005 | $0.00139 |
Grade A, and why
hcifootprint-adoption 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 2d 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 — 103 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Use the application's existing routes, controls, handlers and permissions.
Before coding, inspect the installed package version and exports. Read the maintained API guide. Its version and import inventory are generated from the repository's package.json; installed declarations take precedence when the application uses an older release. Do not upgrade the application's dependencies unless the task calls for it.
Start with the quick start and adoption ladder.
Connect the app
Reuse route, journey and live-action sources where available. For Session serving,
connect existing handlers with registerActions or fromLiveStore. Report actual
page and state changes through sync and updateState.
Callable defineAction/ActionRuntime bindings are a separate surface: they do
not automatically become Session affordances or served tools. Read the
action-binding guide
when the task needs those bindings.
Retain each native invocation immediately and return its broker handle with the observed state. Deliver actual progress and settlement events through the host; keep transport cancellation/deadlines outside business settlement. Do not hide the handle behind an indefinite effect wait or infer completion from a timer.
For a continuing task, choose the existing layer:
- Session journeys describe named flows across pages and model turns. Use the served ready/later steps, human pauses and settlement results to choose the next move; a journey is not an automatic batch executor.
- Callable walks use
beginWalk(runtime, 'agent')for a known sequential plan. Each step rechecks its live offer; explicitcarryuses an earlier declaredproduces. RenderonRowmanifests and retain interruption reasons. Replan or ask a person when a new decision is needed. - For progress within one callable action, declare
settle.progress, report actual stages withreportProgress, and subscribe throughinvocation.progress. Progress is not effect verification. A walk'scompletedmeans its invocations performed, not that every effect was verified. Callable walks are not automatically served through Session/MCP/WebMCP.
Parallel actions require 3.2.0 or newer: use
walk.parallel(steps, { concurrency, onRow }) for
independently available actions/background work, with no carry between parallel items.
Its concurrency limit bounds running invocations; completion does not await every effect.
Read the parallel guide
for ordering, failures and interruption.
Keep navigation-dependent page-1 → page-2 work sequential. node is a binding label; neither
it nor different node names prove visibility or independence. The app must disconnect unmounted
controls, or report enabledness for the active page when hidden controls remain mounted.
Separate browser contexts exist only if the host provides them. Browser automation can also
batch: choose based on declared semantics and actual evidence, not an assumed model turn per click.
Choose the host boundary the application needs:
- Direct integration:
serveToAgent(session), thentools()andcall(). - MCP:
mcpServerfromhcifootprint/mcp; the MCP SDK is an optional peer. - Browser WebMCP:
registerWebMcpToolsfromhcifootprint/webmcp, with an explicitly supplied host context and ownerAbortSignal. Read the compatibility and lifecycle guidance before registering tools, especially from a React effect.
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.
- 2d ago Changed · +8 lines e4b4239b1c72
- 8d ago First seen · 95 lines · 50 tokens per session scan A 1b7b7e6d8c08
hcifootprint-adoption is a skill published in the GitHub repository footprintjs/hcifootprint (11 stars, last pushed yesterday), licensed MIT. It adds 50 tokens to every session and 1,392 once invoked, about $0.0002 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-10-30.
hcifootprint-adoption compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| hcifootprint-adoptionfootprintjs/hcifootprint | Skill | 11 | yesterday | MIT | A | 50 | Claude Code, Codex |
| cli-wiringgithub/gh-aw | Skill | 5.6k | yesterday | MIT | A | 0 | Claude Code, Codex |
| release-processgithub/gh-aw | Skill | 5.6k | yesterday | MIT | C | 16 | Claude Code, Codex |
| react-patternsjh941213/my-cc-harness | Skill | 125 | 3mo ago | none | A | 99 | Claude Code |
| create-prprisma/orm | Skill | 48k | yesterday | Apache-2.0 | A | 48 | Claude Code, Codex |
| schema-explorationlangchain-ai/deepagents | Skill | 31k | yesterday | MIT | A | 57 | Claude Code, Codex |
| analyze-marketlangchain-ai/deepagents | Skill | 31k | yesterday | MIT | A | 34 | Claude Code, Codex |