-
Notifications
You must be signed in to change notification settings - Fork 232
Support tool overrides for installed agent packages #293
Copy link
Copy link
Open
Labels
area/docs-sitedocs/src/content (Starlight), README, doc generation.docs/src/content (Starlight), README, doc generation.area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.apm pack/unpack, plugin authoring, vendoring guidance, bundle format.enhancementDeprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.needs-designDeprecated: use status/needs-design. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use status/needs-design. Kept for issue history; will be removed in milestone 0.10.0.status/needs-designDirection approved, design discussion required before code.Direction approved, design discussion required before code.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Metadata
Metadata
Assignees
Labels
area/docs-sitedocs/src/content (Starlight), README, doc generation.docs/src/content (Starlight), README, doc generation.area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.apm pack/unpack, plugin authoring, vendoring guidance, bundle format.enhancementDeprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.needs-designDeprecated: use status/needs-design. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use status/needs-design. Kept for issue history; will be removed in milestone 0.10.0.status/needs-designDirection approved, design discussion required before code.Direction approved, design discussion required before code.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.One manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
StatusShow more project fields
Todo
Problem
When consuming agent packages via
apm install, the.agent.mdfiles deployed to.github/agents/include atools:list in their YAML frontmatter. For example, thedeveloperagent ships with:As users add new capabilities (e.g., additional MCP servers from other packages), they need to grant agents access to those tools. Today the only option is to manually edit the deployed
.agent.mdfiles — but runningapm install --updateoverwrites those files with fresh copies from the package, discarding the customizations.There is currently no mechanism to declare tool overrides that survive package updates.
Proposed Solution
Add an
overridessection to the consumer'sapm.ymlthat declares tool-level patches, applied by APM during install/update.Semantics:
overrides.tools.append/overrides.tools.remove— applied to every deployed agentoverrides.agents.<name>.tools.append/.remove— applied to a specific agent (by matching thenamefield in frontmatter)appendadds tools not already present;removestrips tools that existapm install, so--updateis safeWhere it runs: After
AgentIntegratorcopies the.agent.mdfile fromapm_modules/to.github/agents/, a post-deploy step reads theoverridessection, patches the YAML frontmattertools:list, and writes the final file.Design Principles
overrides, Helmvalues.yaml, Kustomize patchesapm.yml, not scattered in deployed filesappend/removeon tool lists covers the primary use case; richer override capabilities (model, description, body) can be added incrementallyFuture Enhancement: Overlay Files
A natural evolution of this feature would be overlay files (Kustomize-style). Users would place partial override files in a convention directory:
Containing only the frontmatter fields to merge:
During install, APM would deep-merge the overlay on top of the package version before deploying to
.github/agents/. This would allow overriding any frontmatter field (tools, model, description) and potentially appending instructions to the agent body. This is out of scope for the initial implementation but theoverridesschema should be designed with this evolution in mind.Scope
overridesschema toapm.ymlmanifest modelAgentIntegratorpost-deploymanifest-schema.mddocumentation