Problem
Installed richlander/dotnet-inspect with a skill subset:
apm install richlander/dotnet-inspect --skill dotnet-inspect --skill compatibility --skill signals --force
The three skills deployed as asked -- but the package's four agents (burndown-curator, burndown-discovery, burndown-runner, ladder-tester) all deployed too, translated into every target dialect: 12 files across .claude/agents/, .github/agents/, and .codex/agents/. Those agents are the upstream repo's own development workflow (issue burndown bots, a test-ladder runner) and mean nothing to a consumer of the package.
Looking at models/dependency/subsets.py, only a skills: subset exists -- there is no agents: equivalent, so a package's agents are all-or-nothing. #1894 asks for the same thing for hooks; this is the agents leg of that family.
Deleting the files by hand works for one commit, but every subsequent apm install re-deploys them, and the audit's deployed-files tracking then disagrees with the working tree.
Proposal
Support an agents: list in the object-form dependency (and a repeatable --agent flag), mirroring the skills: semantics: subset persisted in apm.yml and apm.lock.yaml, deterministic on bare installs, empty list invalid, absence means all. Same shape would presumably extend to prompts and hooks (#1894) so consumers can take exactly the primitives they want from a package.
Environment
- apm 0.27.0 (winget, Windows 11)
- Package: richlander/dotnet-inspect (plugin package with skills + agents)
Disclosure: this report was drafted with AI assistance; the install behavior and code reference were verified on the environment described.
Problem
Installed richlander/dotnet-inspect with a skill subset:
The three skills deployed as asked -- but the package's four agents (burndown-curator, burndown-discovery, burndown-runner, ladder-tester) all deployed too, translated into every target dialect: 12 files across .claude/agents/, .github/agents/, and .codex/agents/. Those agents are the upstream repo's own development workflow (issue burndown bots, a test-ladder runner) and mean nothing to a consumer of the package.
Looking at
models/dependency/subsets.py, only askills:subset exists -- there is noagents:equivalent, so a package's agents are all-or-nothing. #1894 asks for the same thing for hooks; this is the agents leg of that family.Deleting the files by hand works for one commit, but every subsequent
apm installre-deploys them, and the audit's deployed-files tracking then disagrees with the working tree.Proposal
Support an
agents:list in the object-form dependency (and a repeatable--agentflag), mirroring theskills:semantics: subset persisted in apm.yml and apm.lock.yaml, deterministic on bare installs, empty list invalid, absence means all. Same shape would presumably extend to prompts and hooks (#1894) so consumers can take exactly the primitives they want from a package.Environment
Disclosure: this report was drafted with AI assistance; the install behavior and code reference were verified on the environment described.