-
Notifications
You must be signed in to change notification settings - Fork 295
Add dedicated APM Dependencies reference page #20674
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,82 @@ | ||||||||||
| --- | ||||||||||
| title: APM Dependencies | ||||||||||
| description: Install and manage APM (Agent Package Manager) packages in your agentic workflows, including skills, prompts, instructions, agents, hooks, and plugins. | ||||||||||
| sidebar: | ||||||||||
| order: 330 | ||||||||||
| --- | ||||||||||
|
|
||||||||||
| The `dependencies:` frontmatter field installs [APM (Agent Package Manager)](https://microsoft.github.io/apm/) packages before workflow execution. When present, the compiler packs dependencies in the activation job and unpacks them in the agent job for faster, deterministic startup. | ||||||||||
|
|
||||||||||
| APM manages AI agent primitives such as skills, prompts, instructions, agents, hooks, and plugins (including the Claude `plugin.json` specification). Packages can depend on other packages and APM resolves the full dependency tree. | ||||||||||
|
|
||||||||||
| ## Reproducibility and governance | ||||||||||
|
|
||||||||||
| APM lock files (`apm.lock`) pin every package to an exact commit SHA, so the same versions are installed on every run. Lock file diffs appear in pull requests and are reviewable before merge, giving teams and enterprises a clear audit trail and the ability to govern which agent context is in use. See the [APM governance guide](https://microsoft.github.io/apm/enterprise/governance/) for details on policy enforcement and access controls. | ||||||||||
|
|
||||||||||
| ## Format | ||||||||||
|
|
||||||||||
| ### Simple array format | ||||||||||
|
|
||||||||||
| ```yaml wrap | ||||||||||
| dependencies: | ||||||||||
| - microsoft/apm-sample-package | ||||||||||
| - github/awesome-copilot/skills/review-and-refactor | ||||||||||
| - anthropics/skills/skills/frontend-design | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| ### Object format with options | ||||||||||
|
|
||||||||||
| ```yaml wrap | ||||||||||
| dependencies: | ||||||||||
| packages: | ||||||||||
| - microsoft/apm-sample-package | ||||||||||
| - github/awesome-copilot/skills/review-and-refactor | ||||||||||
| isolated: true # clear repo primitives before unpack (default: false) | ||||||||||
| ``` | ||||||||||
|
|
||||||||||
| ## Package reference formats | ||||||||||
|
|
||||||||||
| Each entry is an APM package reference. Supported formats: | ||||||||||
|
|
||||||||||
| | Format | Description | | ||||||||||
| |--------|-------------| | ||||||||||
| | `owner/repo` | Full APM package | | ||||||||||
| | `owner/repo/path/to/primitive` | Individual primitive (skill, instruction, plugin, etc.) from a repository | | ||||||||||
| | `owner/repo#ref` | Package pinned to a tag, branch, or commit SHA | | ||||||||||
|
|
||||||||||
| ### Examples | ||||||||||
|
|
||||||||||
| ```yaml wrap | ||||||||||
| dependencies: | ||||||||||
| # Full APM package | ||||||||||
| - microsoft/apm-sample-package | ||||||||||
| # Individual primitive from any repository | ||||||||||
| - github/awesome-copilot/skills/review-and-refactor | ||||||||||
| # Plugin (Claude plugin.json format) | ||||||||||
| - github/awesome-copilot/plugins/context-engineering | ||||||||||
| # Version-pinned to a tag | ||||||||||
| - microsoft/apm-sample-package#v2.0 | ||||||||||
| # Version-pinned to a branch | ||||||||||
| - microsoft/apm-sample-package#main | ||||||||||
| # Git URL with sub-path and ref (object format) | ||||||||||
| - git: https://github.com/acme/coding-standards.git | ||||||||||
| path: instructions/security | ||||||||||
| ref: v2.0 | ||||||||||
|
Comment on lines
+61
to
+64
|
||||||||||
| # Git URL with sub-path and ref (object format) | |
| - git: https://github.com/acme/coding-standards.git | |
| path: instructions/security | |
| ref: v2.0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -151,35 +151,16 @@ Each plugin repository must be specified in `org/repo` format. The compiler gene | |
|
|
||
| ### APM Dependencies (`dependencies:`) | ||
|
|
||
| Specifies [microsoft/apm](https://github.com/microsoft/apm) packages to install before workflow execution. When present, the compiler resolves and packs dependencies in the activation job, then unpacks them in the agent job for faster, deterministic startup. | ||
|
|
||
| APM (Agent Package Manager) manages AI agent primitives such as skills, prompts, instructions, agents, and hooks. Packages can depend on other packages and APM resolves the full dependency tree. | ||
|
|
||
| **Simple array format** (most common): | ||
| Specifies [APM (Agent Package Manager)](https://microsoft.github.io/apm/) packages to install before workflow execution. APM manages AI agent primitives such as skills, prompts, instructions, agents, hooks, and plugins (including the Claude `plugin.json` format). When present, the compiler runs `apm pack` in the activation job and `apm unpack` in the agent job for faster, deterministic startup. | ||
|
|
||
| ```yaml wrap | ||
| dependencies: | ||
| - microsoft/apm-sample-package | ||
| - github/awesome-copilot/skills/review-and-refactor | ||
| - anthropics/skills/skills/frontend-design | ||
| - microsoft/apm-sample-package#v2.0 # version-pinned | ||
| ``` | ||
|
Comment on lines
+154
to
161
|
||
|
|
||
| **Object format** with options: | ||
|
|
||
| ```yaml wrap | ||
| dependencies: | ||
| packages: | ||
| - microsoft/apm-sample-package | ||
| - github/awesome-copilot/skills/review-and-refactor | ||
| isolated: true # clear repo primitives before unpack (default: false) | ||
| ``` | ||
|
|
||
| Each entry is an APM package reference. Supported formats: | ||
|
|
||
| - `owner/repo` — full APM package | ||
| - `owner/repo/path/to/skill` — individual skill or primitive from a repository | ||
|
|
||
| The compiler emits a pack step in the activation job and a restore step in the agent job. The APM target is automatically inferred from the configured engine (`copilot`, `claude`, or `all` for other engines). The `isolated` flag controls whether existing `.github/` primitive directories are cleared before the bundle is unpacked in the agent job. | ||
| See **[APM Dependencies Reference](/gh-aw/reference/dependencies/)** for the full format specification, version pinning syntax, plugin support, reproducibility and governance details, and local debugging instructions. | ||
|
|
||
| ### Runtimes (`runtimes:`) | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This page documents
owner/repo#refdependency references, but the current frontmatter schema disallows#independenciesentries (seepkg/parser/schemas/main_workflow_schema.json→dependenciesitempattern:^[a-zA-Z0-9_-]+/[a-zA-Z0-9_./-]+$). Users following this format will hit a schema validation error during compilation.Either adjust the docs to match the schema (no
#ref), or update the schema (and ideally add tests) to permit optional#refsuffixes for dependency strings.