diff --git a/docs/turn-loop/config.md b/docs/turn-loop/config.md index 116da2a1..931134d1 100644 --- a/docs/turn-loop/config.md +++ b/docs/turn-loop/config.md @@ -158,7 +158,7 @@ Two per-agent `agent.nix` options control this: ```nix hyperhive.claudeMarketplaces = [ "anthropics/claude-plugins-official" ]; # default -hyperhive.claudePlugins = [ "formatter@my-marketplace" ]; # default: [] +hyperhive.claudePlugins = [ "skill-creator@claude-plugins-official" ]; # default hyperhive.claudePluginsAutoUpdate = false; # default ``` @@ -168,9 +168,17 @@ hyperhive.claudePluginsAutoUpdate = false; # def custom marketplaces. Idempotent — re-adding an existing source is a no-op. - **`claudePlugins`** — list of plugin specs passed to - `claude plugin install `. Empty by default. Each spec is - installed on every boot (`install` is expected to be idempotent); - failures log a warning but do not abort boot. + `claude plugin install `. Each spec is installed on every boot + (`install` is expected to be idempotent); failures log a warning but + do not abort boot. Defaults to Anthropic's `skill-creator`, so every + agent can author, refine, and evaluate its own skills without any + per-agent wiring. + +> Both plugin lists follow ordinary NixOS list-option semantics: a +> per-agent definition **replaces** the default, it does not extend it. +> An agent that sets `claudePlugins` and still wants `skill-creator` +> has to list it explicitly alongside its own entries — likewise for +> the official marketplace in `claudeMarketplaces`. - **`claudePluginsAutoUpdate`** — when `true`, runs `claude plugin marketplace update` before installing plugins to pull the latest index. Disabled by default to keep boot times short and diff --git a/nix/agent-modules/claude-settings.nix b/nix/agent-modules/claude-settings.nix index 593a52fa..e384b960 100644 --- a/nix/agent-modules/claude-settings.nix +++ b/nix/agent-modules/claude-settings.nix @@ -209,7 +209,7 @@ in options.hyperhive.claudePlugins = lib.mkOption { type = lib.types.listOf lib.types.str; - default = [ ]; + default = [ "skill-creator@claude-plugins-official" ]; example = [ "formatter@my-marketplace" "thinking-tools@anthropics" @@ -223,6 +223,16 @@ in missing plugin is preferable to a non-serving agent. Rendered to `/etc/hyperhive/claude-plugins.json`; the harness reads it via `plugins::install_configured`. + + Defaults to Anthropic's `skill-creator`, which teaches an agent + to write, refine, and evaluate its own skills — agents get it + out of the box, matching the default marketplace above. + + Note that a per-agent definition REPLACES this default rather + than extending it (ordinary NixOS list-option semantics, same as + `claudeMarketplaces`). An agent that wants extra plugins AND the + default should list `skill-creator@claude-plugins-official` + alongside them. ''; };