diff --git a/.gitignore b/.gitignore index 166aa77..b31daf7 100644 --- a/.gitignore +++ b/.gitignore @@ -428,3 +428,7 @@ FodyWeavers.xsd *.msix *.msm *.msp + +# APM (Agent Package Manager) downloaded dependencies +apm_modules/ +apm.lock.yaml diff --git a/AGENTS.md b/AGENTS.md index 32131f5..06278af 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,14 +13,15 @@ The repo publishes plugin metadata for GitHub Copilot and Claude Code. Keep shar **Versioned plugin manifests**: - **GitHub Copilot** — `.github\plugin\plugin.json` is the Copilot marketplace manifest and points at the repo root. -- **Claude Code** — `.claude-plugin\plugin.json` defines the Claude Code plugin package; `.claude-plugin\marketplace.json` defines Claude Code marketplace publishing metadata. +- **Claude Code** — `.claude-plugin\plugin.json` defines the Claude Code plugin package; `.claude-plugin\marketplace.json` is the Claude Code marketplace index, generated by `apm pack` from the `marketplace:` block in `apm.yml`. +- **APM** — `apm.yml` is the Agent Package Manager manifest at the repo root. It declares the package identity, version, targets, MCP dependencies, and marketplace metadata. The `marketplace:` block in `apm.yml` is the source of truth for the APM marketplace index; `apm pack` generates `.claude-plugin/marketplace.json` from it. APM follows the existing `plugin.json` pointers to locate skills and MCP config — no separate `.apm/` directory is needed. ## Sync rules - Event support is duplicated by design between the CLI and skill docs. When adding, removing, or renaming events, update `cli\src\config.ts`, the supported/default event guidance in `skills\microsoft-build\SKILL.md`, and affected tests/docs together. - Treat `skills\microsoft-build\SKILL.md` as the product contract for event-session behavior. For Build, Ignite, or event-session work: default "Build" to `build-2026`, get session metadata from the live catalog through `msevents` or the endpoint, get SDK/API facts from Microsoft Learn MCP, and never invent session IDs, speakers, schedules, or links. -- Versioning gate: any meaningful `skills\microsoft-build\SKILL.md` change (agent behavior, commands/examples agents may follow, supported/default events, CLI/MCP/catalog usage, or user-facing workflow guidance) must bump both versioned plugin manifests to the same value; patch bumps are fine for guidance-only changes. -- PR review gate: GitHub Copilot/code reviewers should flag meaningful `SKILL.md` changes without synced plugin version bumps, and any plugin version drift. Typo/format-only skill edits may skip the bump only when the PR explicitly says so. +- Versioning gate: any meaningful `skills\microsoft-build\SKILL.md` change (agent behavior, commands/examples agents may follow, supported/default events, CLI/MCP/catalog usage, or user-facing workflow guidance) must bump all versioned plugin manifests (`.github\plugin\plugin.json`, `.claude-plugin\plugin.json`, and `apm.yml` including its `marketplace.packages[].version`) to the same value; patch bumps are fine for guidance-only changes. +- PR review gate: GitHub Copilot/code reviewers should flag meaningful `SKILL.md` changes without synced plugin version bumps, and any plugin version drift across the three manifests. Typo/format-only skill edits may skip the bump only when the PR explicitly says so. - Keep README install/client guidance aligned with plugin manifest, skill, MCP, or CLI behavior changes. ## CLI diff --git a/README.md b/README.md index a46abb7..0cc9b6a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ A [GitHub Copilot CLI](https://github.com/features/copilot/cli/) skill that conn ``` /plugin install microsoft/Build-CLI ``` + Or install globally with [APM](https://github.com/microsoft/apm): + ``` + apm install -g microsoft/Build-CLI#v1.0.5 --target claude,copilot + ``` 2. Restart your Copilot CLI session: ``` /restart @@ -69,6 +73,32 @@ Session results are a starting point. For broad topics, ask the agent to refine | VS Code | Open Extensions (Ctrl+Shift+X), search `@agentPlugins microsoft-events`, and install | | Visual Studio 2026 | Copy `skills/microsoft-build/` to a [supported skill location](https://learn.microsoft.com/visualstudio/ide/copilot-agent-skills) | | Claude Code | `/plugin marketplace add microsoft/Build-CLI` then `/plugin install microsoft-events@microsoft-events-marketplace` | +| APM | See [Install with APM](#install-with-apm) below | + +## Install with APM + +[APM (Agent Package Manager)](https://github.com/microsoft/apm) is to AI agent skills what npm is to JavaScript packages — it lets you install, version, and share reusable agent instructions, skills, and MCP configurations across projects with a single command. + +### Global install (all projects) + +```bash +# Both Claude Code and GitHub Copilot +apm install -g microsoft/Build-CLI#v1.0.5 --target claude,copilot + +# Claude Code only +apm install -g microsoft/Build-CLI#v1.0.5 --target claude + +# GitHub Copilot only +apm install -g microsoft/Build-CLI#v1.0.5 --target copilot +``` + +### Verify, update, and uninstall + +```bash +apm deps list -g # List globally installed packages +apm outdated -g # Check for updates +apm uninstall -g microsoft/Build-CLI # Remove +``` ## Scope and Limitations diff --git a/apm.yml b/apm.yml new file mode 100644 index 0000000..391c7f0 --- /dev/null +++ b/apm.yml @@ -0,0 +1,33 @@ +name: microsoft-events +version: 1.0.5 +description: >- + Connect your project to Microsoft Build and Ignite sessions — discover + relevant talks, explore what's new for your stack, and plan next steps + from your development environment. +author: Microsoft +license: Apache-2.0 +targets: [copilot, claude] + +dependencies: + mcp: + - name: microsoft-learn + registry: false + transport: http + url: "https://learn.microsoft.com/api/mcp" + +marketplace: + owner: + name: Microsoft + url: https://github.com/microsoft + metadata: + homepage: https://github.com/microsoft/Build-CLI + build: + tagPattern: "v{version}" + packages: + - name: microsoft-events + description: >- + Connect your project to Microsoft Build and Ignite sessions — discover + relevant talks, explore what's new for your stack, and plan next steps + from your development environment. + source: ./ + version: "1.0.5" # keep in sync with top-level version