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/microsoft/apm/docs-impact-classifiernpx skills add microsoft/apm --skill docs-impact-classifiergit clone --depth 1 https://github.com/microsoft/apmWhat 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.00099 | $0.01846 |
| Opus 5 | $0.00049 | $0.00923 |
| Sonnet 5 | $0.00020 | $0.00369 |
| Haiku 4.5 | $0.00010 | $0.00185 |
Grade A, and why
docs-impact-classifier 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 — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
docs-impact-classifier
Single responsibility: given a PR diff and the .apm/docs-index.yml
corpus map, emit ONE classification verdict.
This skill is the cost gate for the entire docs-sync system. ~70% of
PRs should exit at verdict no_change with zero panel spawn.
Architecture
This is a 3-layer funnel inside a single skill invocation:
- L0 deterministic path gate -- pure file-path matching, no LLM.
- L1 symbol extraction + corpus grep -- pure text processing, no LLM.
- L2 LLM classifier -- bounded ~8 KB context envelope, 1 call.
The skill returns the verdict from the earliest layer that can decide.
Step 1: L0 deterministic path gate (no LLM)
Read .apm/docs-index.yml to load no_impact_paths[] and
user_surface_paths[]. Get the changed file list from the PR diff
(gh pr diff --name-only).
if every changed file matches no_impact_paths AND none match user_surface_paths:
return {verdict: "no_change", confidence: "high", source: "L0", scope_pages: []}
This handles:
- Test-only PRs (
tests/**) - CI workflow PRs (
.github/workflows/**) - Doc-only PRs (
docs/**) -- out of scope, docs-sync doesn't review docs PRs - Primitive-only PRs (
.apm/**) - Script and meta PRs
Expected hit rate: ~70% of PRs short-circuit here.
Step 2: L1 symbol extraction + corpus grep (no LLM)
If L0 did not exit, extract user-observable symbols from the diff:
- CLI command names -- grep diff for
^@click.command,^@cli.command, or anyapm <verb>mention in added/removed lines. - Flag names -- grep diff for
^@click.option,--[a-z-]+patterns. - Public API symbols -- added/removed
def <name>insrc/apm_cli/__init__.pyorsrc/apm_cli/api/**. - Schema keys -- added/removed keys in
apm.yml,apm.lock.yaml,apm-policy.ymlparsers. - Error strings -- added/removed string literals in user-facing error paths (look for
_rich_error,click.echo,raise ... Error().
For each extracted symbol, consult .apm/docs-index.yml#symbol_index
to find the documented pages. Collect all hits into candidate_pages[].
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 First seen · 155 lines · 99 tokens per session scan A 3540bb706283
docs-impact-classifier is a skill published in the GitHub repository microsoft/apm (3,668 stars, last pushed 2d ago), licensed MIT. It adds 99 tokens to every session and 1,846 once invoked, about $0.0005 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-30.
Other skills, from other repositories
review
Review a proposed change before applying it.
create-skill-sample
This skill should be used when the user asks to "create a new skill sample", "add a skill", "scaffold a new skill", "contribute a skill", "create a GitHub Copilot skill", "build a custom skill", or needs to create a new GitHub Copilot custom skill sample with proper folder structure, SKILL.md, README, and sample.json…
create-system-prompt
This skill should be used when the user asks to "create an agent instruction", "add agent instructions", "scaffold an agent sample", "create a system prompt sample", "add a system prompt", "create a new agent", "build an agent", or needs to create a new agent instruction sample with proper folder structure, README…
mcp-server-review
Review a Model Context Protocol (MCP) server implementation against the 2026-07-28 protocol revision, which removed the initialize handshake and Mcp-Session-Id and made the protocol stateless. Use when the user asks to review, audit, upgrade or migrate an MCP server, asks whether their MCP server is spec compliant…
code-review-csharp
Perform structured code reviews of C# source code covering naming conventions, performance, security, readability, and .NET best practices. Trigger phrases include "review this C# code", "check my C# for best practices", "analyze this C# class", "find issues in my C# code".
prompt-of-the-week
Generates a weekly PowerPoint slide from a PnP copilot-prompts GitHub sample URL (for example, samples/agent-instructions/creator-agent), derives the correct weekly title from the sample folder, and produces a styled .pptx file that matches the Prompt-K template layout.