apm-package-author
APM Package Author
APM (docs · GitHub) distributes GitHub Copilot skills, agents, and MCP servers as versioned packages installable with one command. Use this skill to create manifests, wire MCP dependencies, or troubleshoot installs.
When to Use
Use this skill when you need to:
- Create or update an
apm.ymlroot manifest orpackages/*sub-manifest for a GitHub Copilot skills/agents repository - Bundle MCP server configuration into an APM package so consumers get MCP wired automatically on install
- Install a package from a GitHub repo using the APM CLI
- Troubleshoot APM install failures (missing
.vscode/mcp.json, Codex CLI warnings, 404 errors, cached installs)
Do not use this skill for:
- General GitHub Copilot customization questions (use default agent)
- Creating
SKILL.mdfiles (use theskill-creatorskill) - Writing MCP server implementation code
Identify which task applies and jump to that section:
- Creating packages for a repo → Package Creation Workflow
- Installing a package into a project → Install Commands
- Something went wrong → Troubleshooting
- Detailed YAML reference → references/manifest-patterns.md
- MCP transport details → references/mcp-config.md
Package Creation Workflow
1. Install APM CLI (if not already installed)
curl -sSL https://aka.ms/apm-unix | sh # macOS / Linux
irm https://aka.ms/apm-windows | iex # Windows (PowerShell)
Verify: apm --version
2. Decide the package structure
Choose based on how consumers will install:
| Pattern | When to use |
|---|---|
Single-concern package packages/<topic>/apm.yml |
One cohesive domain (e.g. terraform, diagramming, architect). Preferred. |
| Meta-package | One package references other packages — lets users apm install everything at once. Good for a repo root apm.yml. |
For a typical skills repo, use one packages/<name>/ per domain plus a root apm.yml that pulls them all in. Read references/manifest-patterns.md for complete YAML examples of both patterns.
3. Scaffold each package directory
mkdir -p packages/<name>/.apm
touch packages/<name>/.apm/.gitkeep # APM writes its install cache here — directory must exist
The .apm/.gitkeep placeholder is mandatory — without the directory APM may fail to write the install cache.
4. Write the apm.yml manifest
Minimum required fields:
name: my-package-name # kebab-case, must be unique
version: 1.0.0
description: >
One sentence describing what this bundle installs.
author: github-username
license: MIT
target: vscode # always set for VS Code projects
dependencies:
apm:
- owner/repo/.github/agents/my-agent.agent.md
- owner/repo/.github/skills/my-skill
Key rules:
- All
apm:paths must be fullowner/repo/...virtual paths — relative paths do not work. - Exclude any skills marked 🚧 WIP. Comment them out with a reason so they're easy to re-add later:
# cost-optimization excluded — WIP - Agents can still be included even when their companion skills are WIP.
target: vscodecontrolsapm compileoutput format only — it does NOT suppress Codex CLI warnings about HTTP MCP servers (those are cosmetic; the install still succeeds).
If skills require MCP servers, add an mcp: block. Read references/mcp-config.md for transport types, Docker examples, and the Azure MCP exception.
5. Update the root apm.yml
Add the new package to the root manifest so apm install owner/repo installs everything:
dependencies:
apm:
- owner/repo/packages/my-new-package
- owner/repo/packages/existing-package
6. Test the install
mkdir -p /tmp/apm-test/.vscode
cd /tmp/apm-test
apm install owner/repo/packages/<name>#your-branch --runtime vscode
Verify that .vscode/mcp.json was created (if the package has MCP deps) and that skills/agents landed in .github/. Then clean up:
rm -rf /tmp/apm-test
Install Commands
Standard install (VS Code project)
cd your-project
mkdir -p .vscode # required if 'code' is not on your PATH
apm install owner/repo/packages/<name> --runtime vscode
--runtime vscode tells APM to write .vscode/mcp.json even if VS Code isn't detected. Without it APM looks for code on PATH or an existing .vscode/ directory — if neither exists, MCP config is silently skipped.
Install from a specific branch
apm install owner/repo/packages/<name>#branch-name --runtime vscode
Force re-fetch (bypass cache)
apm install owner/repo/packages/<name> --update --runtime vscode
Install everything from a repo
apm install owner/repo --runtime vscode # uses root apm.yml
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
.vscode/mcp.json not created |
No .vscode/ dir and code not on PATH |
mkdir -p .vscode then re-run, or add --runtime vscode |
| Codex CLI warnings about HTTP MCP servers | Codex is stdio-only; HTTP transports are incompatible with it | Cosmetic — install still succeeds. target: vscode does not suppress this. |
| 404 / package not found | Wrong path or branch not pushed to remote | Check path matches directory name exactly; confirm branch is pushed |
| Stale / cached install | APM caches installs locally | Add --update to force re-fetch |
apm compile output wrong format |
Missing target: field |
Add target: vscode to the manifest |
| Skills installed but not appearing in Copilot | .github/ location not registered in copilot-instructions.md |
Ensure the project's copilot-instructions.md references the skills directory |
New Package Checklist
-
packages/<name>/apm.ymlcreated with all required fields andtarget: vscode -
packages/<name>/.apm/.gitkeepcreated and committed - All
apm:deps use fullowner/repo/...virtual paths - WIP skills excluded and commented out with reason
-
mcp:block added if any skills require MCP servers - Root
apm.ymlupdated to reference the new package - Tested with
--runtime vscodein a clean temp directory - Branch pushed to remote before testing install
More from thomast1906/github-copilot-agent-skills
drawio-mcp-diagramming
Create and edit architecture diagrams using Draw.io MCP (`drawio/create_diagram`) with reliable Azure and AWS icon rendering guidance and troubleshooting. Supports Azure2 and AWS4 icon libraries. Requires Python 3 and internet access to refresh icon catalogs (periodic, not per-run).
13api-security-review
Reviews Azure API Management configurations for security vulnerabilities, OWASP API Security Top 10 compliance, VNet Internal mode validation, Private Link verification, and Azure Security Benchmark alignment. Use when performing security audits, pre-deployment validation, or compliance reviews.
13architecture-design
Design Azure cloud architectures from requirements and generate High-Level Design (HLD) documentation with service selection, patterns, cost estimates, and WAF alignment. Use this when asked to design or architect Azure solutions.
13waf-assessment
Assess Azure architectures against Well-Architected Framework (WAF) five pillars - Reliability, Security, Cost Optimization, Operational Excellence, and Performance Efficiency. Provide scores and recommendations.
11azure-apim-architecture
Analyzes and explains Azure API Management architecture decisions for enterprise API marketplace implementations using VNet Internal mode, Front Door, hybrid authentication, and multi-environment strategies. Use when discussing APIM component selection, network topology, cost optimization, or comparing alternatives like workspaces vs instances, VNet Internal vs External mode, or Front Door vs Application Gateway.
11cost-optimization
Analyze Azure architectures for cost optimization opportunities, provide savings recommendations, and calculate ROI for improvements.
11