@amsterdamdatalabs/enact-extensions 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/README.md +96 -21
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/install.d.ts +171 -1
  7. package/dist/install.d.ts.map +1 -1
  8. package/dist/install.js +402 -49
  9. package/dist/install.js.map +1 -1
  10. package/dist/internal/codex.d.ts.map +1 -1
  11. package/dist/internal/codex.js +7 -1
  12. package/dist/internal/codex.js.map +1 -1
  13. package/dist/internal/platform.d.ts +8 -0
  14. package/dist/internal/platform.d.ts.map +1 -1
  15. package/dist/internal/platform.js +46 -2
  16. package/dist/internal/platform.js.map +1 -1
  17. package/dist/provision.d.ts +30 -0
  18. package/dist/provision.d.ts.map +1 -0
  19. package/dist/provision.js +202 -0
  20. package/dist/provision.js.map +1 -0
  21. package/dist/validate/index.d.ts +44 -0
  22. package/dist/validate/index.d.ts.map +1 -1
  23. package/dist/validate/index.js +157 -0
  24. package/dist/validate/index.js.map +1 -1
  25. package/extensions/cmux/.agents/plugin.json +37 -0
  26. package/extensions/cmux/skills/cmux/SKILL.md +82 -0
  27. package/extensions/cmux/skills/cmux/agents/openai.yaml +4 -0
  28. package/extensions/cmux/skills/cmux/references/handles-and-identify.md +35 -0
  29. package/extensions/cmux/skills/cmux/references/panes-surfaces.md +37 -0
  30. package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +23 -0
  31. package/extensions/cmux/skills/cmux/references/windows-workspaces.md +31 -0
  32. package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +122 -0
  33. package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +4 -0
  34. package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +66 -0
  35. package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +45 -0
  36. package/extensions/cmux/skills/cmux-workspace/SKILL.md +93 -0
  37. package/extensions/dev-state/.agents/plugin.json +35 -0
  38. package/extensions/dev-state/skills/dev-state-plan-graduation/SKILL.md +194 -0
  39. package/extensions/dev-state/skills/dev-state-plan-graduation/agents/openai.yaml +4 -0
  40. package/extensions/dev-state/skills/dev-state-plan-graduation/references/reference.md +130 -0
  41. package/extensions/devops/.agents/plugin.json +36 -0
  42. package/extensions/devops/skills/azure-devops-cli/SKILL.md +431 -0
  43. package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +4 -0
  44. package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +217 -0
  45. package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +4 -0
  46. package/extensions/enact-context/.agents/plugin.json +40 -0
  47. package/extensions/enact-context/.mcp.json +8 -0
  48. package/extensions/enact-context/README.md +25 -0
  49. package/extensions/enact-context/assets/icon.png +0 -0
  50. package/extensions/enact-context/assets/logo.png +0 -0
  51. package/extensions/enact-context/hooks/hooks.json +115 -0
  52. package/extensions/enact-context/skills/enact-context/SKILL.md +149 -0
  53. package/extensions/enact-context/skills/enact-context/scripts/install.sh +69 -0
  54. package/extensions/enact-factory/.agents/plugin.json +42 -0
  55. package/extensions/enact-factory/.mcp.json +8 -0
  56. package/extensions/enact-factory/assets/icon.png +0 -0
  57. package/extensions/enact-factory/assets/logo.png +0 -0
  58. package/extensions/enact-factory/hooks/user-prompt-submit.mjs +67 -0
  59. package/extensions/enact-factory/skills/testing-strategy/SKILL.md +167 -0
  60. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +22 -0
  61. package/extensions/enact-operator/.agents/plugin.json +57 -0
  62. package/extensions/enact-operator/.app.json +3 -0
  63. package/extensions/enact-operator/.mcp.json +10 -0
  64. package/extensions/enact-operator/_taxonomy.md +86 -0
  65. package/extensions/enact-operator/agents/README.md +5 -0
  66. package/extensions/enact-operator/agents/architect.toml +25 -0
  67. package/extensions/enact-operator/agents/code-reviewer.toml +24 -0
  68. package/extensions/enact-operator/agents/critic.toml +30 -0
  69. package/extensions/enact-operator/agents/executor.toml +24 -0
  70. package/extensions/enact-operator/agents/explore.toml +23 -0
  71. package/extensions/enact-operator/agents/planner.toml +24 -0
  72. package/extensions/enact-operator/agents/verifier.toml +24 -0
  73. package/extensions/enact-operator/assets/icon.png +0 -0
  74. package/extensions/enact-operator/assets/logo.png +0 -0
  75. package/extensions/enact-operator/commands/doctor.md +39 -0
  76. package/extensions/enact-operator/commands/setup.md +51 -0
  77. package/extensions/enact-operator/hooks/hooks.json +146 -0
  78. package/extensions/enact-operator/skills/_variants.md +44 -0
  79. package/extensions/enact-operator/skills/ai-slop-cleaner/SKILL.md +50 -0
  80. package/extensions/enact-operator/skills/analyze/SKILL.md +91 -0
  81. package/extensions/enact-operator/skills/ask/SKILL.md +47 -0
  82. package/extensions/enact-operator/skills/autopilot/SKILL.md +170 -0
  83. package/extensions/enact-operator/skills/autoresearch-goal/SKILL.md +79 -0
  84. package/extensions/enact-operator/skills/cancel/SKILL.md +99 -0
  85. package/extensions/enact-operator/skills/configure-notifications/SKILL.md +77 -0
  86. package/extensions/enact-operator/skills/deep-interview/SKILL.md +80 -0
  87. package/extensions/enact-operator/skills/doctor/SKILL.md +48 -0
  88. package/extensions/enact-operator/skills/hud/SKILL.md +49 -0
  89. package/extensions/enact-operator/skills/hyperplan/SKILL.md +47 -0
  90. package/extensions/enact-operator/skills/plan/SKILL.md +78 -0
  91. package/extensions/enact-operator/skills/ralph/SKILL.md +201 -0
  92. package/extensions/enact-operator/skills/ralph/gemini.md +18 -0
  93. package/extensions/enact-operator/skills/ralplan/SKILL.md +151 -0
  94. package/extensions/enact-operator/skills/remove-deadcode/SKILL.md +45 -0
  95. package/extensions/enact-operator/skills/research/SKILL.md +74 -0
  96. package/extensions/enact-operator/skills/review/SKILL.md +58 -0
  97. package/extensions/enact-operator/skills/security-research/SKILL.md +54 -0
  98. package/extensions/enact-operator/skills/setup/SKILL.md +91 -0
  99. package/extensions/enact-operator/skills/setup/scripts/install.sh +50 -0
  100. package/extensions/enact-operator/skills/skill/SKILL.md +82 -0
  101. package/extensions/enact-operator/skills/tdd/SKILL.md +59 -0
  102. package/extensions/enact-operator/skills/team/SKILL.md +199 -0
  103. package/extensions/enact-operator/skills/trace/SKILL.md +41 -0
  104. package/extensions/enact-operator/skills/ultragoal/SKILL.md +99 -0
  105. package/extensions/enact-operator/skills/ultraqa/SKILL.md +113 -0
  106. package/extensions/enact-operator/skills/ultrawork/SKILL.md +145 -0
  107. package/extensions/enact-operator/skills/ultrawork/planner.md +28 -0
  108. package/extensions/enact-operator/skills/wiki/SKILL.md +41 -0
  109. package/extensions/enact-operator/skills/work-with-workitem/SKILL.md +51 -0
  110. package/extensions/enact-wiki/.agents/plugin.json +42 -0
  111. package/extensions/enact-wiki/.mcp.json +15 -0
  112. package/extensions/enact-wiki/README.md +44 -0
  113. package/extensions/enact-wiki/assets/icon.png +0 -0
  114. package/extensions/enact-wiki/assets/logo.png +0 -0
  115. package/extensions/enact-wiki/skills/document-parser/SKILL.md +17 -0
  116. package/extensions/enact-wiki/skills/document-parser/scripts/parse.sh +60 -0
  117. package/extensions/enact-wiki/skills/document-parser/skill.json +9 -0
  118. package/extensions/enact-wiki/skills/enact-wiki/SKILL.md +30 -0
  119. package/extensions/enact-wiki/skills/enact-wiki/references/ingest.md +62 -0
  120. package/extensions/enact-wiki/skills/enact-wiki/references/manage.md +34 -0
  121. package/extensions/enact-wiki/skills/enact-wiki/references/query.md +59 -0
  122. package/extensions/enact-wiki/skills/search-lab/SKILL.md +57 -0
  123. package/extensions/enact-wiki/skills/search-lab/scripts/analyze.ts +23 -0
  124. package/{plugins/net-revenue-management/.codex-plugin → extensions/net-revenue-management/.agents}/plugin.json +10 -6
  125. package/extensions/plugin-dev/.agents/plugin.json +42 -0
  126. package/extensions/plugin-dev/.mcp.json +3 -0
  127. package/extensions/plugin-dev/agents/agent-creator.md +199 -0
  128. package/extensions/plugin-dev/agents/plugin-validator.md +91 -0
  129. package/extensions/plugin-dev/agents/skill-reviewer.md +212 -0
  130. package/extensions/plugin-dev/commands/_archive/create-marketplace.md +427 -0
  131. package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +12 -0
  132. package/extensions/plugin-dev/commands/create-plugin.md +498 -0
  133. package/extensions/plugin-dev/commands/start.md +81 -0
  134. package/extensions/plugin-dev/hooks/hooks.json +3 -0
  135. package/extensions/plugin-dev/skills/agent-development/SKILL.md +641 -0
  136. package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +250 -0
  137. package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +461 -0
  138. package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +246 -0
  139. package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +216 -0
  140. package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +226 -0
  141. package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +464 -0
  142. package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +474 -0
  143. package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +176 -0
  144. package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +227 -0
  145. package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +227 -0
  146. package/extensions/plugin-dev/skills/command-development/SKILL.md +763 -0
  147. package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +612 -0
  148. package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +527 -0
  149. package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +762 -0
  150. package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +769 -0
  151. package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +508 -0
  152. package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +966 -0
  153. package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +943 -0
  154. package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +637 -0
  155. package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +191 -0
  156. package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +447 -0
  157. package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +723 -0
  158. package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +234 -0
  159. package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +160 -0
  160. package/extensions/plugin-dev/skills/hook-development/SKILL.md +861 -0
  161. package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +55 -0
  162. package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +57 -0
  163. package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +48 -0
  164. package/extensions/plugin-dev/skills/hook-development/references/advanced.md +871 -0
  165. package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +145 -0
  166. package/extensions/plugin-dev/skills/hook-development/references/migration.md +392 -0
  167. package/extensions/plugin-dev/skills/hook-development/references/patterns.md +430 -0
  168. package/extensions/plugin-dev/skills/hook-development/scripts/README.md +181 -0
  169. package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +153 -0
  170. package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +276 -0
  171. package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +159 -0
  172. package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +775 -0
  173. package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +20 -0
  174. package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +19 -0
  175. package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +38 -0
  176. package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +26 -0
  177. package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +601 -0
  178. package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +190 -0
  179. package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +572 -0
  180. package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +623 -0
  181. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +222 -0
  182. package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +705 -0
  183. package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +774 -0
  184. package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +83 -0
  185. package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +611 -0
  186. package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +289 -0
  187. package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +592 -0
  188. package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +233 -0
  189. package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +193 -0
  190. package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +625 -0
  191. package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +116 -0
  192. package/extensions/plugin-dev/skills/skill-development/SKILL.md +564 -0
  193. package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +465 -0
  194. package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +167 -0
  195. package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +111 -0
  196. package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +225 -0
  197. package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +39 -0
  198. package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +379 -0
  199. package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +210 -0
  200. package/package.json +8 -11
  201. package/scripts/enact-extensions.mjs +823 -21
  202. package/scripts/hooks/session-start-drift-check.mjs +58 -0
  203. package/scripts/lib/build-index.mjs +50 -0
  204. package/scripts/lib/bundle-hash.mjs +137 -0
  205. package/scripts/lib/hooks.mjs +741 -0
  206. package/scripts/lib/ledger.mjs +163 -0
  207. package/scripts/lib/list-bundles.mjs +70 -0
  208. package/scripts/lib/outdated.mjs +144 -0
  209. package/scripts/lib/provision-mcp.mjs +16 -0
  210. package/scripts/lib/resolve-bundle.mjs +121 -0
  211. package/scripts/lib/run-install.mjs +402 -38
  212. package/scripts/lib/run-prune.mjs +73 -0
  213. package/scripts/lib/run-sync.mjs +9 -1
  214. package/scripts/lib/run-uninstall.mjs +244 -0
  215. package/scripts/lib/run-update.mjs +152 -0
  216. package/scripts/lib/run-validate.mjs +21 -18
  217. package/scripts/lib/serve.mjs +472 -0
  218. package/scripts/postinstall.mjs +63 -0
  219. package/scripts/setup-enact-context.sh +2 -2
  220. package/scripts/version-bump.sh +463 -0
  221. package/spec/codex.json +1 -11
  222. package/spec/index.json +59 -0
  223. package/web/assets/README.md +111 -0
  224. package/web/assets/logo-full.png +0 -0
  225. package/web/assets/logo-slim.png +0 -0
  226. package/web/assets/tokens/base.css +45 -0
  227. package/web/assets/tokens/colors.css +248 -0
  228. package/web/assets/tokens/effects.css +24 -0
  229. package/web/assets/tokens/fonts.css +8 -0
  230. package/web/assets/tokens/index.css +18 -0
  231. package/web/assets/tokens/spacing.css +50 -0
  232. package/web/index.html +1188 -0
  233. package/.agents/plugins/marketplace.json +0 -20
  234. package/catalog/enact-context.json +0 -9
  235. package/catalog/enact-factory.json +0 -7
  236. package/catalog/enact-operator.json +0 -7
  237. package/catalog/enact-wiki.json +0 -7
  238. package/catalog/net-revenue-management.json +0 -8
  239. package/scripts/rename-supervisor-to-operator.pl +0 -66
  240. package/scripts/sync-manifests.mjs +0 -23
  241. package/scripts/validate-catalog.mjs +0 -37
  242. package/scripts/validate-plugin.mjs +0 -10
  243. /package/{plugins → extensions}/net-revenue-management/.mcp.json +0 -0
  244. /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -0
  245. /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-scenario/SKILL.md +0 -0
@@ -0,0 +1,289 @@
1
+ # Advanced Plugin Topics
2
+
3
+ This reference covers specialized topics that plugin developers may encounter in advanced use cases. Each section is self-contained.
4
+
5
+ ## Keybindings Plugin Context
6
+
7
+ Claude Code's keybindings system (`~/.claude/keybindings.json`) includes a `plugin:` context with actions for plugin management:
8
+
9
+ | Action | Description |
10
+ | ---------------- | ----------------------- |
11
+ | `plugin:toggle` | Enable/disable a plugin |
12
+ | `plugin:install` | Install a plugin |
13
+
14
+ **Configuration:**
15
+
16
+ ```json
17
+ {
18
+ "bindings": [
19
+ {
20
+ "context": "Plugin",
21
+ "bindings": {
22
+ "ctrl+p": "plugin:toggle"
23
+ }
24
+ }
25
+ ]
26
+ }
27
+ ```
28
+
29
+ **Plugin developer relevance:** Low. This is user-facing configuration. Plugins cannot define custom keybindings. If your plugin has frequently used commands, document keyboard shortcuts users can configure.
30
+
31
+ ## Status Line Integration
32
+
33
+ Plugins can provide status line scripts that display contextual information in the Claude Code footer.
34
+
35
+ ### How It Works
36
+
37
+ Users configure a status line command in `.claude/settings.json`:
38
+
39
+ ```json
40
+ {
41
+ "statusLine": {
42
+ "type": "command",
43
+ "command": "~/.claude/statusline.sh",
44
+ "padding": 0
45
+ }
46
+ }
47
+ ```
48
+
49
+ The script receives JSON via stdin with session context (model, cost, tokens, workspace info) and outputs a single line of text (ANSI colors supported).
50
+
51
+ ### Available Data
52
+
53
+ The JSON input includes:
54
+
55
+ - `model.display_name` — Current model name
56
+ - `cost.total_cost_usd` — Session cost
57
+ - `cost.total_lines_added` / `total_lines_removed` — Code changes
58
+ - `context_window.used_percentage` — Context usage
59
+ - `context_window.total_input_tokens` / `total_output_tokens` — Token counts
60
+ - `workspace.current_dir` / `project_dir` — Directory info
61
+ - `version` — Claude Code version
62
+
63
+ ### Plugin Use Case
64
+
65
+ A plugin could bundle a status line script that displays plugin-specific information:
66
+
67
+ ```bash
68
+ #!/bin/bash
69
+ input=$(cat)
70
+ model=$(echo "$input" | jq -r '.model.display_name')
71
+ cost=$(echo "$input" | jq -r '.cost.total_cost_usd')
72
+ echo "[$model] \$${cost}"
73
+ ```
74
+
75
+ **Note:** Users must manually configure their status line to use the plugin's script. There is no auto-configuration mechanism.
76
+
77
+ ## Claude Code as MCP Server
78
+
79
+ Claude Code can itself act as an MCP server, exposing its capabilities to other MCP clients:
80
+
81
+ ```bash
82
+ claude mcp serve
83
+ ```
84
+
85
+ **Plugin developer relevance:** Edge case. This is useful when building toolchains where one Claude Code instance needs to communicate with another, or when integrating Claude Code into a larger MCP-based system. Plugin MCP servers are unaffected by this feature.
86
+
87
+ ## MCP `@` Resource Reference Syntax
88
+
89
+ Users can reference MCP resources inline using the `@` syntax:
90
+
91
+ ```
92
+ @server-name:protocol://resource/path
93
+ ```
94
+
95
+ ### Common Patterns
96
+
97
+ | Syntax | Example |
98
+ | ------------- | ------------------------------------------- |
99
+ | File resource | `@filesystem:file:///path/to/file.txt` |
100
+ | Database | `@database:postgres://localhost/mydb/users` |
101
+ | GitHub | `@github:https://github.com/user/repo` |
102
+ | Custom | `@myserver:custom://resource/id` |
103
+
104
+ ### Discovery
105
+
106
+ Type `@` in Claude Code to see available resources from connected MCP servers.
107
+
108
+ ### Plugin Design Note
109
+
110
+ If your plugin's MCP server exposes resources, document the available resource URIs and protocols in your README. Users can then reference them with `@plugin-server:protocol://path`.
111
+
112
+ ## Hook Agent Type Details
113
+
114
+ The `agent` hook type (covered briefly in the hook-development SKILL.md) spawns a full subagent for complex verification workflows.
115
+
116
+ For comprehensive coverage including configuration, behavior, supported events, when to use agent hooks, and detailed examples, see the hook-development skill's `references/advanced.md` file.
117
+
118
+ **Quick summary:** Agent hooks spawn a subagent with full tool access (Read, Bash, Grep, etc.) for multi-step verification. They're significantly slower (30-120 seconds) but more capable than command or prompt hooks. Only supported on `Stop` and `SubagentStop` events.
119
+
120
+ ## Auto-Update Behavior
121
+
122
+ ### Default Behavior
123
+
124
+ - **Official marketplaces:** Auto-update enabled by default
125
+ - **Third-party/local marketplaces:** Auto-update disabled by default
126
+
127
+ ### Environment Variables
128
+
129
+ | Variable | Effect |
130
+ | ------------------------------- | -------------------------------------- |
131
+ | `DISABLE_AUTOUPDATER=true` | Disable all auto-updates |
132
+ | `FORCE_AUTOUPDATE_PLUGINS=true` | Force auto-update for all marketplaces |
133
+
134
+ ### Plugin Versioning Implications
135
+
136
+ - Use semantic versioning (`MAJOR.MINOR.PATCH`)
137
+ - Breaking changes should bump MAJOR version
138
+ - Users on auto-update receive MINOR/PATCH changes automatically
139
+ - Document breaking changes in CHANGELOG
140
+ - Consider pre-release versions (`2.0.0-beta.1`) for testing
141
+
142
+ ## Plugin Caching
143
+
144
+ ### How Caching Works
145
+
146
+ When a plugin is installed, Claude Code copies plugin content to a cache directory. Plugins run from the cache, not from their source location.
147
+
148
+ ### Key Implications
149
+
150
+ 1. **No `../` paths:** Plugins cannot reference files outside their directory via `../` — the cache copy doesn't include parent directories
151
+ 2. **`${CLAUDE_PLUGIN_ROOT}` resolves to cache:** The variable points to the cached copy, not the source
152
+ 3. **Symlinks are followed:** Symlinks within the plugin directory are resolved during the copy, so the target content is included
153
+
154
+ ### Workarounds for External Files
155
+
156
+ If your plugin needs content from outside its directory:
157
+
158
+ - **Symlinks:** Create symlinks to external files within the plugin directory (followed during cache copy)
159
+ - **Restructure:** Move shared content into the plugin directory
160
+ - **Environment variables:** Reference external paths via environment variables, not file paths
161
+ - **MCP servers:** Use MCP tools to access external resources at runtime
162
+
163
+ ### Cache Management
164
+
165
+ Users can clear the plugin cache:
166
+
167
+ ```bash
168
+ rm -rf ~/.claude/plugins/cache
169
+ ```
170
+
171
+ This forces re-caching on next session start.
172
+
173
+ ## Plugin CLI Management Commands
174
+
175
+ Users manage plugins through CLI commands (or the `/plugin` interactive interface):
176
+
177
+ ### Installation
178
+
179
+ ```bash
180
+ # Install from marketplace
181
+ claude plugin install plugin-name@marketplace-name
182
+
183
+ # Installation scopes
184
+ claude plugin install plugin-name@marketplace --scope user # Personal (default)
185
+ claude plugin install plugin-name@marketplace --scope project # Team (in .claude/settings.json)
186
+ claude plugin install plugin-name@marketplace --scope local # Personal project (gitignored)
187
+ ```
188
+
189
+ ### Management
190
+
191
+ ```bash
192
+ # List installed plugins
193
+ claude plugin list
194
+
195
+ # Enable/disable without uninstalling
196
+ claude plugin enable plugin-name@marketplace
197
+ claude plugin disable plugin-name@marketplace
198
+
199
+ # Update to latest version
200
+ claude plugin update plugin-name@marketplace
201
+
202
+ # Remove completely
203
+ claude plugin uninstall plugin-name@marketplace
204
+ ```
205
+
206
+ ### Marketplace Management
207
+
208
+ ```bash
209
+ # Add a marketplace
210
+ claude plugin marketplace add owner/repo # GitHub
211
+ claude plugin marketplace add https://gitlab.com/org/repo.git # Git URL
212
+ claude plugin marketplace add ./local-path # Local
213
+
214
+ # List/update/remove
215
+ claude plugin marketplace list
216
+ claude plugin marketplace update marketplace-name
217
+ claude plugin marketplace remove marketplace-name
218
+ ```
219
+
220
+ ### Plugin Developer Note
221
+
222
+ Document the exact install command in your README:
223
+
224
+ ```markdown
225
+ ## Installation
226
+
227
+ \`\`\`bash
228
+ claude plugin install my-plugin@my-marketplace
229
+ \`\`\`
230
+ ```
231
+
232
+ ## Installation Scopes
233
+
234
+ Plugins can be installed at different scopes, affecting who has access:
235
+
236
+ | Scope | Location | Shared | Gitignored | Use Case |
237
+ | --------- | ----------------------------- | --------- | ---------- | ------------------------ |
238
+ | `user` | `~/.claude/settings.json` | No | N/A | Personal tools (default) |
239
+ | `project` | `.claude/settings.json` | Yes (git) | No | Team standards |
240
+ | `local` | `.claude/settings.local.json` | No | Yes | Personal project tools |
241
+ | `managed` | System paths | Yes (MDM) | N/A | Enterprise enforcement |
242
+
243
+ ### Scope Precedence
244
+
245
+ When the same plugin is configured at multiple scopes, local overrides project, which overrides user.
246
+
247
+ ### Team Plugin Distribution
248
+
249
+ For team plugins, install at `project` scope and commit `.claude/settings.json`:
250
+
251
+ ```json
252
+ {
253
+ "enabledPlugins": {
254
+ "my-plugin@my-marketplace": true
255
+ }
256
+ }
257
+ ```
258
+
259
+ Team members get the plugin when they clone the repo.
260
+
261
+ ### Enterprise Plugin Control
262
+
263
+ Organizations can use managed settings to:
264
+
265
+ - **Allowlist marketplaces:** `strictKnownMarketplaces` restricts which marketplaces users can add
266
+ - **Force plugins:** Pre-configure required plugins via managed settings
267
+ - **Block plugins:** Prevent specific plugins from being installed
268
+
269
+ ### Enterprise Hook and Permission Control
270
+
271
+ Managed settings can also restrict hook and permission rule sources:
272
+
273
+ | Setting | Effect |
274
+ | --------------------------------- | --------------------------------------------------------------- |
275
+ | `allowManagedPermissionRulesOnly` | Only managed permission rules apply; user/project rules ignored |
276
+ | `allowManagedHooksOnly` | Only managed hooks execute; plugin/user hooks disabled |
277
+
278
+ **Plugin developer implications:**
279
+
280
+ - Test plugins with these settings enabled to verify graceful degradation
281
+ - Document which hooks are critical for plugin functionality
282
+ - Provide fallback behavior when hooks are disabled by enterprise policy
283
+
284
+ ### Plugin Developer Implications
285
+
286
+ - Document recommended scope in README
287
+ - Test plugin at both user and project scopes
288
+ - For team plugins, provide `.claude/settings.json` snippets
289
+ - Note that managed settings can override plugin availability