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 agentmods add skills/arcblock/agent-skills/impact-checknpx skills add ArcBlock/agent-skills --skill impact-checkgit clone --depth 1 https://github.com/ArcBlock/agent-skillsWrote 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/arcblock/agent-skills/impact-check)<a href="https://agentmods.dev/skills/arcblock/agent-skills/impact-check"><img src="https://agentmods.dev/badge/skills/arcblock/agent-skills/impact-check.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 | $0.00043 | $0.02161 |
| Opus 5 | $0.00022 | $0.01081 |
| Sonnet 5 | $0.00009 | $0.00432 |
| Haiku 4.5 | $0.00004 | $0.00216 |
Grade A, and why
impact-check 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 5d 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 — 124 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Impact Check — Code Change Impact Analysis
Repo profile — read
.claude/repo-profile.mdfirst. This skill is repo-agnostic; arc is the reference implementation. The monorepo layout, package naming, and paths below (packages/,providers/,runtimes/,blocklets/) are arc's — map them to the consuming repo's structure via the profile.
Analyze code changes and find related areas in the codebase that may also need modification.
Input Modes
Parse $ARGUMENTS to determine the diff mode:
| Input | Mode | Diff Command |
|---|---|---|
| (empty) | working-tree | git diff HEAD |
--branch |
current branch vs main | git diff $(git merge-base <main> HEAD)..HEAD |
--branch <name> |
named branch vs main | git diff $(git merge-base <main> <name>)..<name> |
--branch <name> --base <base> |
branch vs custom base | git diff $(git merge-base <base> <name>)..<name> |
contains .. |
commit range | git diff <from>..<to> |
| other | single commit | git diff <ref>^..<ref> |
When detecting the main branch, check which of main or master exists.
Analysis Process
Step 1: Collect Changes
- Determine diff mode from arguments
- Run the appropriate
git diffcommand (with--statfor summary, and full diff for content) - List all changed files and summarize: N files changed, +X -Y lines
- If no changes found, report "Nothing to analyze" and stop
Step 2: Understand What Changed
For each changed file, read the diff and identify:
- Interface/type changes: function signatures, type definitions, exported types
- Export changes: added, removed, or renamed exports
- Behavioral changes: logic changes that could affect callers
- Configuration changes: package.json, tsconfig, linter/formatter config, etc.
- Schema/model changes: data structure modifications
Step 3: Find Related Code
For each significant change identified in Step 2:
- Import/reference search: Use Grep to find every file that references the changed module.
- For a deleted or renamed file/export, grep the bare basename or symbol (e.g.
agent-core,deriveAgentTools) to get the full candidate set — then filter comments in Step 4 by reading. Do not rely on a single-lineimport … from/require(…)regex: it misses multi-line imports (where thefrom "…"line has noimportkeyword) and re-exports, silently dropping real breaks. - Also search string / dynamic references that no import regex catches:
readSource("…/foo.ts"),readFileSync/join/resolvewith the file path, dynamicimport(…), and worker/route path literals. Cross-package breakage most often hides here (e.g. aruntimes/node/test/**thatreadSource()s a deletedproviders/**file).
- For a deleted or renamed file/export, grep the bare basename or symbol (e.g.
- Symbol usage search: For changed/removed exports, Grep for their usage across the codebase
- Test file check: For each changed file
src/foo.ts, check iftest/foo.test.tsexists and whether it was also modified - Documentation check: If interfaces or public APIs changed, check if README or docs reference them
- Conformance test check: If the repo's Custom Impact Checks (
.claude/repo-profile.md) declare a provider conformance suite, and a provider changed, verify its conformance fixture was updated - Caller check (new exports): For each added export/function/param, grep its call sites repo-wide. Zero callers inside the repo — and not a public API/SDK re-export — is a speculative abstraction with no consumer; flag it. A lower layer nothing calls should not land on its own; the author should point to the consumer, or the follow-up change that adds it.
- Parity check — mirror & registration: Two flavors, both cross-file invariants a self-contained diff won't reveal:
- Cross-runtime mirror: multi-target builds must stay in sync — a change that touches one deployment target or a shared cross-target provider means the sibling target(s) need the same semantic. A one-sided change is behavior drift between targets unless intentional. See the repo's Deployment Environments section (
.claude/repo-profile.md) for which targets exist. - Declaration ↔ dispatch/renderer: the diff adds a variant to an enum / union type / registry / factory (a new widget, message type, provider kind, event, …) in one package → grep the consumer that switches on it (dispatch table,
switch, renderer map, handler registry — often in a different package) and confirm it gained the matchingcase/handler. This is the inverse hazard of reverse-reference: deleting breaks compilation loudly, but adding-without-wiring compiles clean. Adefault/fallback branch (renders "Unknown", silent no-op, drops the message) swallows the missing case, socheck-typesand build stay green and the gap only shows at runtime as a degraded/absent result. Also check the reverse — a new dispatchcasefor a variant the declaration side never added.
- Cross-runtime mirror: multi-target builds must stay in sync — a change that touches one deployment target or a shared cross-target provider means the sibling target(s) need the same semantic. A one-sided change is behavior drift between targets unless intentional. See the repo's Deployment Environments section (
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.
- 5d ago First seen · 124 lines · 43 tokens per session scan A c52b32b528c7
impact-check is a skill published in the GitHub repository ArcBlock/agent-skills (5 stars, last pushed 4d ago), licensed MIT. It adds 43 tokens to every session and 2,161 once invoked, about $0.0002 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 skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…