What platform or feature?
A reap apm target that turns skillreaper's per-repo firing evidence into an APM (Agent Package Manager) apm.yml. Read-only: it emits YAML, it never edits the repo or runs apm install.
Why is this useful?
skillreaper already knows what's actually used per repo — reap by-project builds the skill→project firing map and tags ⚑ repo-local items. APM is a dependency manager whose unit of config is a per-repo apm.yml declaring what should be installed. Those are two ends of the same loop, but today an apm.yml is hand-curated and the author guesses; skillreaper holds the evidence to derive it. It also makes skillreaper's "act" step durable: instead of reap prune quarantining files on one machine, the lean set gets encoded in a manifest that every teammate's apm install reproduces.
Describe the solution
A subcommand in the style of reap by-project / reap manifest, emitting YAML (with --json / --md parity), in two modes:
reap apm # propose an apm.yml from what fired in this repo
reap apm --diff apm.yml # reconcile: suggest dropping declared-but-cold entries,
# flag fired-but-undeclared ones
Selection reuses the existing verdicts: KEEP → include, REAP → omit (or suggest removing in --diff), REVIEW → never auto-omit, keeping skillreaper's rule that incomplete evidence never flags an item.
The one hard part is identity. skillreaper knows a skill by its local name; APM declares it by upstream coordinates (e.g. anthropics/skills/skills/frontend-design), and scan.Item.Source only records a coarse provenance class today. Proposed handling: recover the source from the repo's apm.lock.yaml when present — which also enables a real --diff — and otherwise emit a clearly-marked placeholder rather than inventing coordinates.
Additional context
Builds mostly on existing machinery: the SkillProjects map behind reap by-project, plus the Manifest emitter in internal/report/manifest.go. So it's largely a new renderer over report data plus a small source-resolution step. Suggest scoping the first cut to skills only (strongest firing evidence), with MCP servers and agents as follow-ups.
What platform or feature?
A
reap apmtarget that turns skillreaper's per-repo firing evidence into an APM (Agent Package Manager)apm.yml. Read-only: it emits YAML, it never edits the repo or runsapm install.Why is this useful?
skillreaper already knows what's actually used per repo —
reap by-projectbuilds the skill→project firing map and tags⚑ repo-localitems. APM is a dependency manager whose unit of config is a per-repoapm.ymldeclaring what should be installed. Those are two ends of the same loop, but today anapm.ymlis hand-curated and the author guesses; skillreaper holds the evidence to derive it. It also makes skillreaper's "act" step durable: instead ofreap prunequarantining files on one machine, the lean set gets encoded in a manifest that every teammate'sapm installreproduces.Describe the solution
A subcommand in the style of
reap by-project/reap manifest, emitting YAML (with--json/--mdparity), in two modes:Selection reuses the existing verdicts:
KEEP→ include,REAP→ omit (or suggest removing in--diff),REVIEW→ never auto-omit, keeping skillreaper's rule that incomplete evidence never flags an item.The one hard part is identity. skillreaper knows a skill by its local name; APM declares it by upstream coordinates (e.g.
anthropics/skills/skills/frontend-design), andscan.Item.Sourceonly records a coarse provenance class today. Proposed handling: recover the source from the repo'sapm.lock.yamlwhen present — which also enables a real--diff— and otherwise emit a clearly-marked placeholder rather than inventing coordinates.Additional context
Builds mostly on existing machinery: the
SkillProjectsmap behindreap by-project, plus theManifestemitter ininternal/report/manifest.go. So it's largely a new renderer over report data plus a small source-resolution step. Suggest scoping the first cut to skills only (strongest firing evidence), with MCP servers and agents as follow-ups.apm.ymlreference: https://microsoft.github.io/apm/reference/primitive-types/