You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
9
9
## [Unreleased]
10
10
11
+
### Added
12
+
13
+
-`apm install` now automatically discovers and deploys local `.apm/` primitives (skills, instructions, agents, prompts, hooks, commands) to target directories, with local content taking priority over dependencies on collision (#626, #644)
14
+
11
15
### Fixed
12
16
13
17
-`apm init` now creates `start.prompt.md` so `apm run start` works out of the box; Next Steps panel no longer references `apm compile` (#649)
Copy file name to clipboardExpand all lines: docs/src/content/docs/getting-started/quick-start.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,7 +97,7 @@ my-project/
97
97
Three things happened:
98
98
99
99
1. The package was downloaded into `apm_modules/` (like `node_modules/`).
100
-
2. Instructions, agents, and skills were deployed to `.github/`, `.claude/`, `.cursor/`, and `.opencode/` (when present) -- the native directories that GitHub Copilot, Claude, Cursor, and OpenCode read from.
100
+
2. Instructions, agents, and skills were deployed to `.github/`, `.claude/`, `.cursor/`, and `.opencode/` (when present) -- the native directories that GitHub Copilot, Claude, Cursor, and OpenCode read from. If the project has its own `.apm/` content, that is deployed too (local content takes priority over dependencies on collision).
101
101
3. A lockfile (`apm.lock.yaml`) was created, pinning the exact commit so every team member gets identical configuration.
Copy file name to clipboardExpand all lines: docs/src/content/docs/guides/dependencies.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -204,6 +204,8 @@ apm install --only=apm
204
204
apm install --dry-run
205
205
```
206
206
207
+
`apm install`also deploys the project's own `.apm/` content (instructions, prompts, agents, skills, hooks, commands) to target directories alongside dependency content. Local content takes priority over dependencies on collision. This works even with zero dependencies -- just `apm.yml` and a `.apm/` directory is enough. See the [CLI reference](../../reference/cli-commands/#apm-install---install-dependencies-and-deploy-local-content) for details and exceptions.
Copy file name to clipboardExpand all lines: docs/src/content/docs/guides/pack-distribute.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -214,7 +214,7 @@ The bundle includes a `plugin.json`. If one already exists in the project (at th
214
214
215
215
### devDependencies exclusion
216
216
217
-
Dependencies listed under [`devDependencies`](../../reference/manifest-schema/#5-devdependencies) in `apm.yml` are excluded from the plugin bundle. Use [`apm install --dev`](../../reference/cli-commands/#apm-install---install-apm-and-mcp-dependencies) to add dev deps:
217
+
Dependencies listed under [`devDependencies`](../../reference/manifest-schema/#5-devdependencies) in `apm.yml` are excluded from the plugin bundle. Use [`apm install --dev`](../../reference/cli-commands/#apm-install---install-dependencies-and-deploy-local-content) to add dev deps:
The same promotion applies to the project's own `.apm/skills/` directory. When you run `apm install`, skills in your local `.apm/skills/*/` are deployed to `.github/skills/` (and other detected targets) alongside dependency skills. Local skills take priority on collision. The root `SKILL.md` is not treated as a local skill -- it describes the project itself.
Copy file name to clipboardExpand all lines: docs/src/content/docs/reference/cli-commands.md
+13-4Lines changed: 13 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,9 +72,9 @@ apm init my-plugin --plugin
72
72
-`description` - Generated from project name
73
73
-`version` - Defaults to "1.0.0"
74
74
75
-
### `apm install` - Install APM and MCP dependencies
75
+
### `apm install` - Install dependencies and deploy local content
76
76
77
-
Install APM package and MCP server dependencies from `apm.yml` (like `npm install`). Auto-creates minimal `apm.yml` when packages are specified but no manifest exists.
77
+
Install APM package and MCP server dependencies from `apm.yml`and deploy the project's own `.apm/` content to target directories (like `npm install`). Auto-creates minimal `apm.yml` when packages are specified but no manifest exists.
-`-g, --global` - Install to user scope (`~/.apm/`) instead of the current project. Primitives deploy to `~/.copilot/`, `~/.claude/`, etc.
99
99
100
100
**Behavior:**
101
-
-`apm install` (no args): Installs **all** packages from `apm.yml`
101
+
-`apm install` (no args): Installs **all** packages from `apm.yml` and deploys the project's own `.apm/` content
102
102
-`apm install <package>`: Installs **only** the specified package (adds to `apm.yml` if not present)
103
103
104
+
**Local `.apm/` Content Deployment:**
105
+
106
+
After integrating dependencies, `apm install` deploys primitives from the project's own `.apm/` directory (instructions, prompts, agents, skills, hooks, commands) to target directories (`.github/`, `.claude/`, `.cursor/`, etc.). Local content takes priority over dependencies on collision. Deployed files are tracked in the lockfile for cleanup on subsequent installs. This works even with zero dependencies -- just `apm.yml` and `.apm/` content is enough.
107
+
108
+
Exceptions:
109
+
- Skipped at user scope (`--global`)
110
+
- Skipped with `--only=mcp`
111
+
- Root `SKILL.md` is not deployed as a local skill (it describes the project itself)
112
+
104
113
**Diff-Aware Installation (manifest as source of truth):**
105
114
- MCP servers already configured with matching config are skipped (`already configured`)
106
115
- MCP servers already configured but with changed manifest config are re-applied automatically (`updated`)
@@ -215,7 +224,7 @@ APM automatically detects which integrations to enable based on your project str
215
224
216
225
**VSCode Integration (`.github/` present):**
217
226
218
-
When you run `apm install`, APM automatically integrates primitives from installed packages:
227
+
When you run `apm install`, APM automatically integrates primitives from installed packages and the project's own `.apm/` directory:
Copy file name to clipboardExpand all lines: docs/src/content/docs/reference/manifest-schema.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -365,7 +365,7 @@ devDependencies:
365
365
- owner/lint-rules#v2.0.0
366
366
```
367
367
368
-
Created automatically by `apm init --plugin`. Use [`apm install --dev`](../cli-commands/#apm-install---install-apm-and-mcp-dependencies) to add packages:
368
+
Created automatically by `apm init --plugin`. Use [`apm install --dev`](../cli-commands/#apm-install---install-dependencies-and-deploy-local-content) to add packages:
Copy file name to clipboardExpand all lines: packages/apm-guide/.apm/skills/apm-usage/workflow.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,5 +85,6 @@ apm install # restores all deps from lockfile
85
85
```
86
86
87
87
The lockfile ensures every team member gets the exact same dependency versions.
88
+
`apm install`also deploys the project's own `.apm/` content (instructions, prompts, agents, skills, hooks, commands) to target directories alongside dependency content. Local content wins on collision. This works even with zero dependencies.
88
89
Subsequent `apm install` reads locked commit SHAs for reproducible installs.
89
90
Use `apm install --update` to refresh to latest refs.
0 commit comments