docs-impact-classifier
Skill4.4k starsChanged 2 months agoApache-2.0View on GitHub
Use this skill to classify the documentation impact of a pull request diff, returning one of three verdicts -- no-change, in-place edit, or structural change -- with bounded LLM cost. Activate as a sibling skill of docs-sync; the orchestrator calls this first, before any panel spawn, to keep cost floor at 1 LLM call when no docs work is needed. Reads .apm/docs-index.yml as the corpus map; never reads the full corpus.
1 other project uses a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- danielmeppiel/apmword for word, first seen Oct 8, 2026
Who's talking about microsoft/apm
- dependabot/dependabot-core“Support https://github.com/microsoft/apm - agent package manager”GitHub · Mar 3, 2026 · 24 reactions
- renovatebot/renovate“feat(manager): add apm manager for Agent Package Manager”GitHub · Jul 6, 2026 · 8 reactions
- A Hacker News story“Agent Package Manager”Hacker News · Mar 18, 2026 · 7 points
- pbakaus/impeccable“[Feature] Add Agent Package Manager distribution mechanism”GitHub · Jun 22, 2026 · 3 reactions
- @qdrddr.bsky.social“#VibeCode Easy: declare and share #skills, prompts, instructions, and tools for your git project with …”Bluesky · Mar 5, 2026 · 3 likes
The biggest 5 of 59 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 59
Talked about on GitHub, Hacker News and Bluesky (59 times).
On GitHub · 50
- Mar 3, 2026Support https://github.com/microsoft/apm - agent package manager — dependabot/dependabot-core24 reactions · 9 comments
- Jul 6, 2026feat(manager): add apm manager for Agent Package Manager — renovatebot/renovate8 reactions · 25 comments
- Jun 22, 2026[Feature] Add Agent Package Manager distribution mechanism — pbakaus/impeccable3 reactions · 5 comments
- Jun 5, 2026[FEATURE] Native support for Claude Code Plugin Format — LobsterTrap/lola2 reactions · 3 comments
- May 4, 2026Support scanning all agent context-building blocks, not just SKILL.md — snyk/agent-scan2 reactions · 3 comments
45 more on GitHub
- Apr 7, 2026feat: add asdf-apm plugin for Microsoft Agent Package Manager — asdf-vm/asdf-plugins2 reactions
- Apr 3, 2026chore(deps): update dependency microsoft/apm to v0.8.10 — MH0386/aur2 reactions · 4 comments
- Nov 4, 2026Remove CLAUDE.md symlink — chrisbanes/skills1 reaction · 1 comment
- Oct 26, 2026chore(apm): refresh baseline — thetechgy/agent-engineering-baseline1 reaction · 1 comment
- Oct 25, 2026build(deps): bump apm-cli from 0.33.0 to 0.34.0 in /.apm-cli-pin — elastic/oblt-aw1 reaction · 2 comments
- Oct 11, 2026build(deps): bump apm-cli from 0.32.0 to 0.33.0 in /.apm-cli-pin — elastic/oblt-aw1 reaction · 1 comment
- Oct 1, 2026build(deps): bump apm-cli from 0.20.0 to 0.32.0 in /.apm-cli-pin — elastic/oblt-aw1 reaction · 3 comments
- Jul 28, 2026Add a feature for installing APM from https://github.com/microsoft/apm/releases — postfinance/devcontainer-features1 reaction
- May 29, 2026Expression-harvesting pass hoists ${{ ... }} tokens from inside bash # comments into step env, breaking workflow load (regression since v0.76) — github/gh-aw1 reaction
- May 28, 2026APM support into HVE Core — microsoft/hve-core1 reaction · 3 comments
- Apr 28, 2026shared/apm.md: align docs with canonical microsoft/apm source; deprecate vendored copy — github/gh-aw1 reaction
- Apr 27, 2026Feature request: first-class label-name filter on `pull_request_target.types: [labeled]` (avoid red "skip via exit 1" idiom) — github/gh-aw1 reaction · 1 comment
- Apr 22, 2026Add support Microsoft APM — droosma/vibe-codeGraph1 reaction
- Apr 19, 2026APM integration — a few alignment notes from the APM side — github/squad1 reaction · 1 comment
- Mar 31, 2026feat(init): bridge to APM during init for cross-team distribution — microsoft/agentrc1 reaction · 2 comments
- Mar 28, 2026[ca] CLI Version Update: MCP Gateway v0.2.7, APM v0.8.6 — github/gh-aw1 reaction
- Mar 24, 2026[ca] CLI Version Updates: MCP Gateway v0.2.4, APM v0.8.5 — github/gh-aw1 reaction
- Mar 23, 2026[ca] Update APM (Agent Package Manager) to v0.8.4 — github/gh-aw1 reaction
- Mar 22, 2026[ca] CLI Version Update: MCP Gateway v0.1.20→v0.1.22, APM v0.8.2→v0.8.3 — github/gh-aw1 reaction
- Mar 18, 2026[ca] CLI Version Updates: MCP Gateway v0.1.17, APM v0.8.1, Claude Code 2.1.78, Copilot CLI 1.0.7 — github/gh-aw1 reaction
- Nov 1, 2026build(deps-dev): bump apm-cli from 0.33.0 to 0.35.0 — remigius42/skill-graft0 reactions · 1 comment
- Oct 31, 2026chore(deps): bump apm-cli from 0.31.0 to 0.35.0 — juangcarmona/agent-toolkit0 reactions
- Oct 25, 2026apm-cli: 0.33.0 -> 0.35.0 — NixOS/nixpkgs0 reactions · 2 comments
- Oct 25, 2026Dependabot support — ministryofjustice/ai-toolkit0 reactions · 2 comments
- Oct 25, 2026chore: install agent skills with APM — relicbuild/relic0 reactions
- Oct 24, 2026chore(deps): bump apm-cli from 0.31.0 to 0.34.0 — juangcarmona/agent-toolkit0 reactions · 1 comment
- Oct 23, 2026agent-skills.github.microsoft.apm: 0.34.0 → 0.35.0 — sudosubin/agents.nix0 reactions
- Oct 22, 2026agent-plugins.github.microsoft.apm: 0.34.0 → 0.35.0 — sudosubin/agents.nix0 reactions
- Oct 21, 2026docs: add beginner-friendly CLAUDE.md — saulpatinojr/Proj-Agent_Packs0 reactions · 1 comment
- Oct 19, 2026agent-plugins.github.microsoft.apm: 0.33.0 → 0.34.0 — sudosubin/agents.nix0 reactions
- Oct 19, 2026agent-skills.github.microsoft.apm: 0.33.0 → 0.34.0 — sudosubin/agents.nix0 reactions
- Oct 19, 2026chore(deps): update dependency github:microsoft/apm to v0.35.0 — mazrean/kessoku0 reactions · 1 comment
- Oct 16, 2026[Candidate] microsoft/apm - large collection (54 SKILL.md files) — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 14, 2026agent-plugins.github.microsoft.apm: init at 0.33.0 — sudosubin/agents.nix0 reactions
- Oct 9, 2026chore(deps): update microsoft/apm-action action to v1.10.0 — milkyware/awesome-ai0 reactions · 1 comment
- Oct 3, 2026Reproduce: clone URL and SSH entries are looked up wrongly — MPV/renovate-apm-demo10 reactions
- Oct 3, 2026Reproduce: object-form entries are dropped — MPV/renovate-apm-demo10 reactions
- Oct 3, 2026chore(deps): bump apm-cli from 0.31.0 to 0.32.0 — juangcarmona/agent-toolkit0 reactions · 1 comment
- Sep 28, 2026Update dependency github:microsoft/apm to v0.35.0 — boykush/renovate-runner0 reactions
- Sep 25, 2026APM install target `copilot` no longer ships VS Code MCP configs — ministryofjustice/ai-toolkit0 reactions
- Sep 23, 2026Update dependency github:microsoft/apm to v0.35.0 — RocketSurgeonsGuild/MSBuild.Targets0 reactions · 2 comments
- Sep 23, 2026Update dependency github:microsoft/apm to v0.35.0 — RocketSurgeonsGuild/Conventions0 reactions · 2 comments
- Sep 4, 2026[GHSA-q5pp-gvjg-h7v4] Correct PyPI package name from `apm` to `apm-cli` — github/advisory-database0 reactions
- Aug 30, 2026feat(github-release): update release github:microsoft/apm ( v0.28.0 → v0.35.0 ) — david-driscoll/stargate-command-cluster0 reactions · 1 comment
- Aug 30, 2026feat(github-release): update release github:microsoft/apm ( v0.28.0 → v0.35.0 ) — david-driscoll/equestria-cluster0 reactions · 1 comment
On Hacker News · 5
- Mar 18, 2026Agent Package Manager7 points
- Jun 24, 2026Microsoft Agent Package Manager2 points
- Mar 4, 2026APM – Agent Package Manager (Microsoft)2 points
- Mar 31, 2026Show HN: A tool to solve the Agent Supply Chain pandora box1 point
- Mar 20, 2026Show HN: Agent Package Manager (APM) for Agent Configuration1 point
On Bluesky · 4
- Mar 5, 2026#VibeCode Easy: declare and share #skills, prompts, instructions, and tools for your git project with APM.yaml across the team. By… — @qdrddr.bsky.social3 likes and reposts · 1 reply
- Sep 11, 2026What are people using to manage agent skills across harnesses and machines? APM looks promising but not very popular (in the grand scheme)… — @ironyuppie.com2 likes and reposts · 1 reply
- Jul 22, 2026gh skills コマンドとどっちが良いかな。 おそらく apm に移行するかな。 🔗 microsoft/apm: Agent Package Manager github.com/microsoft/apm — @teruhirokomaki.bsky.social1 likes and repost
- Apr 16, 2026AIエージェントのプロンプトやスキルを管理できるパッケージマネージャーらしい 開発環境を統一したいチームでかなり便利そう yug1224 starred microsoft/apm https://github.com/microsoft/apm — @yug1224.com1 likes and repost
Other versions1 project uses a version of this.
Word for word · 1
- danielmeppiel/apm★ 4.2k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository100 other files it gives its agents.
- templates/hello-world/AGENTS.mdAGENTS.md
- tests/integration/fixtures/target_resolution/s01_claude_md_only/CLAUDE.mdCLAUDE.md
- tests/integration/fixtures/target_resolution/s06_dry_run/CLAUDE.mdCLAUDE.md
- tests/integration/fixtures/target_resolution/s07_compile_all_single/CLAUDE.mdCLAUDE.md
- tests/integration/fixtures/target_resolution/s15_claude_rules_exists/CLAUDE.mdCLAUDE.md
- tests/integration/fixtures/target_resolution/s16b_provenance_cwd/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- packages/apm-contributor-dashboard/.github/copilot-instructions.mdCopilot instructions
- packages/autopilot/autopilot-maintainer-canvas/.github/copilot-instructions.mdCopilot instructions
- tests/integration/fixtures/target_resolution/s02b_copilot_instructions/.github/copilot-instructions.mdCopilot instructions
- tests/integration/fixtures/target_resolution/s05_apm_yml_multi/.github/copilot-instructions.mdCopilot instructions
- apm-spec-guardianSkill
- apm-strategySkill
- authSkill
- autopilot-commentSkill
- autopilot-issue-acceptSkill
- autopilot-issue-delivery-schedulerSkill
- autopilot-issue-delivery-workerSkill
- autopilot-issue-triage-schedulerSkill
- autopilot-issue-triage-workerSkill
- autopilot-pr-merge-workerSkill
- autopilot-pr-review-schedulerSkill
- autopilot-pr-review-workerSkill
- autopilot-pr-triage-schedulerSkill
- autopilot-pr-triage-workerSkill
- cli-logging-uxSkill
- cut-releaseSkill
- devx-uxSkill
- docs-corpus-auditSkill
- docs-grounding-verifierSkill
- docs-impact-architectSkill
- docs-impact-classifierSkill
- docs-impact-localizerSkill
- docs-syncSkill
- oss-growthSkill
- pr-description-skillSkill
- python-architectureSkill
- supply-chain-securitySkill
- apm-spec-guardianSkill
- apm-strategySkill
- authSkill
- cli-logging-uxSkill
- cut-releaseSkill
- devx-uxSkill
- docs-corpus-auditSkill
- docs-grounding-verifierSkill
- docs-impact-architectSkill
- docs-impact-localizerSkill
- docs-syncSkill
- oss-growthSkill
- python-architectureSkill
- supply-chain-securitySkill
- apm-usageSkill
- autopilot-commentSkill
- autopilot-issue-acceptSkill
- autopilot-issue-delivery-schedulerSkill
- autopilot-issue-delivery-workerSkill
- autopilot-issue-triage-schedulerSkill
- autopilot-issue-triage-workerSkill
- autopilot-pr-merge-workerSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 33
Read .apm/docs-index.yml to load no_impact_paths[] and user_surface_paths[].
- Distinctive: line 53
If L0 did not exit, extract user-observable symbols from the diff:
- Very specific: line 69
If L1 found zero candidate pages AND zero schema/CLI/flag changes: return {verdict: "no_change", confidence: "medium", source: "L1", …
- Distinctive: line 84
Ask doc-analyser to return JSON matching this schema:
- Very specific: line 114
BEFORE returning in_place, intersect your scope_pages[] with the list of files the PR itself touches under docs/ (provided to you by the …
- Very specific: line 121
If only SOME scope pages are pre-patched, keep in_place and list the REMAINING (unpatched) pages in scope_pages[].
- Very specific: line 127
When the L1 layer reports an ADDED public symbol that matches an EXISTING public symbol's name in the corpus (e.g.
- Distinctive: line 135
every passing mention in the corpus needs verification
- Very specific: line 137
Do NOT collapse a rename into in_place just because the affected pages already exist.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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[].
Also grep -rn <symbol> docs/src/content/docs/ for symbols NOT in
the index (catches drift between index and corpus).
Step 3: L2 LLM verdict (1 call, bounded context)
If L1 found zero candidate pages AND zero schema/CLI/flag changes:
return {verdict: "no_change", confidence: "medium", source: "L1", scope_pages: []}.
Otherwise, invoke the doc-analyser persona with EXACTLY this context envelope (must fit in ~8 KB tokens):
- PR title + body (first 500 chars)
- Diff stats (
gh pr diff --statoutput) .apm/docs-index.yml(the whole file; it's ~8 KB seeded, may grow)- L1 candidate pages with +/-5 lines of context per hit
- Path-classification summary from L0
pr_doc_diff_paths[]: the list of paths underdocs/src/content/docs/**that the PR itself already modifies (drives thein_place_resolveddowngrade rule in "In-place-resolved detection" below).
Ask doc-analyser to return JSON matching this schema:
{
"verdict": "no_change" | "in_place_resolved" | "in_place" | "structural",
"confidence": "low" | "medium" | "high",
"scope_pages": ["docs/src/content/docs/..."],
"structural_proposal": {
"new_pages": [{"slug": "...", "rationale": "..."}],
"moved_pages": [{"from": "...", "to": "..."}],
"toc_changes": "<one-paragraph>"
},
"reasoning": "<one-paragraph: what surface changed, what docs are affected, why this verdict>"
}structural_proposal is populated only when verdict is structural.
scope_pages is populated for in_place and structural verdicts.
Verdict semantics
| Verdict | Meaning | Panel size | Cost |
no_change | No user-observable surface changed | 0 panel spawns | ~0-1 LLM call |
in_place_resolved | Doc impact existed, but the PR's OWN diff already patches every page in scope_pages -- author already did the work | 0 panel spawns; skill emits NO advisory | ~1 LLM call |
in_place | One to a few pages need a paragraph or section update; no new pages, no TOC change | N candidate pages x (doc-writer + python-architect) + editorial-owner + growth-hacker + CDO | ~6-12 LLM calls |
structural | A new page is needed, OR an existing page should be split/merged, OR the TOC needs to change to fit a new concept | architect first (TOC delta), then in-place panel for affected pages | ~10-15 LLM calls |
In-place-resolved detection (false-alarm killer)
BEFORE returning in_place, intersect your scope_pages[] with the
list of files the PR itself touches under docs/** (provided to you
by the orchestrator under pr_doc_diff_paths[]). If EVERY scope page
already appears in pr_doc_diff_paths, downgrade to in_place_resolved
and emit reasoning of the form "Author already patched <page list>".
This is the well-behaved-author path; the skill stays silent.
If only SOME scope pages are pre-patched, keep in_place and list the
REMAINING (unpatched) pages in scope_pages[]. Note the pre-patched
ones in reasoning for transparency.
Rename / breaking-change heuristic (PR 1244 class)
When the L1 layer reports an ADDED public symbol that matches an
EXISTING public symbol's name in the corpus (e.g. PR adds apm update
but apm update already appears in 9 docs pages with different
semantics), this is a RENAME or BREAKING SEMANTIC CHANGE. Bias toward
structural (not in_place):
- the existing page describing the OLD semantics may need to SPLIT into two pages (old verb under new name + new verb keeping old name)
- the TOC may need a NEW reference page for the renamed verb
- every passing mention in the corpus needs verification
Do NOT collapse a rename into in_place just because the affected
pages already exist. The shape of the work is structural even when no
new page is strictly required.
Anti-patterns (verdict shape errors)
- Returning
in_placewith emptyscope_pages-- invalid; orchestrator will reject. - Returning
structuralwithoutstructural_proposal-- invalid. - Returning
in_placewhen EVERY scope page is inpr_doc_diff_paths-- should bein_place_resolved. - Inflating
structuralto seem thorough -- the CDO will catch this. Return the minimal true verdict. - Missing the rename heuristic above and emitting
in_placefor a verb-swap PR. - Reading the corpus (the .md files themselves) at L2 -- context budget breach. You read the index, not the corpus.
Output contract
Return a SINGLE JSON document matching the schema in Step 3 as the final message of your task. No prose around the JSON. The orchestrator parses your last message.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

