Skip to content

Commit 4d2508c

Browse files
Merge pull request #1014 from corbitsdev/cl-7897-verify-docspluginsmd-against-the-plugin-loader
Verify docs/PLUGINS.md against the plugin loader
2 parents 604c12e + 52205eb commit 4d2508c

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

docs/PLUGINS.md

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ registered in global settings (`pluginPaths`), so consent is global once granted
2626
| `path` | `settings.pluginPaths` entries (add-by-path) | **No** until granted once | `~/.corbits/trust/path-plugins.json` (global) |
2727

2828
Untrusted `project` / `path` plugins are discovered as **metadata-only**: the
29-
loader reads `manifest.json` (or equivalent) but does **not** `import()` the
30-
module and does **not** load markdown agents/commands. Enabling a listed
29+
loader reads the native `manifest.json` or `.claude-plugin/manifest.json` only
30+
(the `.claude-plugin/plugin.json` convention is not read on this path; kind
31+
records `"command"` until the trusted full load) but does **not** `import()`
32+
the module and does **not** load markdown agents/commands. (`loadDataOnlyPlugin`
33+
on the full-load path prefers the native manifest, then `plugin.json`, then the
34+
manifest variant, inferring kind.) Enabling a listed
3135
project plugin in `/plugins` records project trust for that cwd; adding a path
3236
via the UI (or enabling a path stub) records global path trust and full-loads
3337
the module. Path trust survives opening a different project directory; project
@@ -176,9 +180,11 @@ parent never needs `read_file` on `~/.claude/plugins/...` (path-escape still
176180
blocks those roots for path tools; writes/deletes outside cwd stay denied). JS
177181
Claude plugins (if any) stay on explicit `pluginPaths`.
178182

179-
`settings.workflowPlugins` / `settings.agentPlugins` (specifier arrays) become
180-
thin aliases: at load they are appended to `pluginPaths` and flow through the
181-
same pipeline. They are kept for back-compat for one release, then removed.
183+
`settings.workflowPlugins` / `settings.agentPlugins` (specifier arrays) are
184+
removed outright: settings carrying them warn on load (`src/config/settings.ts`)
185+
and the keys are dropped on the next save. Install those plugins under
186+
`.corbits/plugins/` (or via `/plugins` add-by-path) and enable them in
187+
`/plugins`.
182188

183189
### One registration switch
184190

@@ -220,7 +226,9 @@ and never delete `~/.claude`. Every remove writes `enabled: false` rather
220226
than dropping `settings.plugins[id]` so in-session command gating holds;
221227
disk and unique `pluginPaths` entries are still removed so the plugin is
222228
gone after restart. Everything persists to global settings
223-
immediately.
229+
immediately. Each row carries an origin marker — origin `repo` renders
230+
`[bundled]`, others `[user]`/`[project]`/`[path]`; the same marker appears on
231+
plugin slash commands in the picker.
224232

225233
## Implemented capabilities
226234

@@ -278,7 +286,7 @@ shape.
278286
- Profile precedence: built-in defaults < plugin profiles < local
279287
`.agents/agents/*.json` (most specific wins on same-id conflicts).
280288
- Per-kind verify in `/plugins` (agent = profile count check).
281-
- Add-by-path (`a`) uses the same path suggestion UX as `@` mentions
289+
- Add-by-path (Alt+A) uses the same path suggestion UX as `@` mentions
282290
(`listPathSuggestions`) so registering a plugin from disk can browse directories.
283291

284292
### Data-only command plugins
@@ -327,10 +335,10 @@ shape.
327335
(`git-rebase`, `linear-issue-workflow`, `style`, `philosophy`,
328336
`native-integration`, `typescript`, `ponytail`, `opsh`). Background libs
329337
such as `git-worktrees` set both flags. Bodies that stay out of discovery
330-
such as `idiot-proof` and `native-runtime` also set both flags (not a slash,
331-
and hidden from the skill listing — though an explicit `use_skill` load by
332-
name still resolves). The slash command is a direct
333-
user entry point on top.
338+
such as `idiot-proof` and `native-runtime` also set both flags (baked into
339+
workers; not a slash and not listed by `skill_search`/`discoverSkills`, but
340+
still loadable by explicit `use_skill`/`resolveSkillBody` name). The slash
341+
command is a direct user entry point on top.
334342
- **First-party catalog.** `plugins/corbits-skills/` (id `corbits-skills`,
335343
kind `command`, `defaultEnabled: true`) is the bundled skill catalog. Origin
336344
`repo` is auto-trusted. Auto-enable applies only when `origin === "repo"` AND

0 commit comments

Comments
 (0)