Files
msd-core/docs/how-to/attach-a-plugin-skill-to-a-gsd-agent.md
Tom Boucher 8f2ebbe9bf feat(#1928): remove sunset Gemini CLI runtime, redirect to Antigravity (#1996)
* feat(#1928): remove sunset gemini cli runtime, redirect to antigravity

Google sunset Gemini CLI on 2026-06-18; Antigravity CLI is its official successor (already a first-class GSD runtime). Remove the gemini runtime from the enum (16->15), aliases, labels, config-home fragment, install path, converters (convertClaudeToGemini{Markdown,Toml,Agent}, convertSlashCommandsToGeminiMentions), capability descriptor, gemini-extension.json, RULESET.GEMINI.*, and the interactive menu (renumbered, no gap).

--gemini now prints an explicit deprecation notice citing the 2026-06-18 sunset and redirects to --antigravity (no silent alias, per the issue's Hyrum's-Law rejection). Antigravity is preserved throughout: its GEMINI.md contextFileName, .gemini/antigravity config home, the shared convertGeminiToolName/claudeToGeminiTools tool vocabulary, and the 'gemini' hookEvents dialect it declares. GEMINI.md retargeted as Antigravity's context file.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore(#1928): backfill changeset PR number (#1996)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore(#1928): drop Gemini CLI from issue templates (review nit)

Removes the sunset Gemini CLI runtime from the two GitHub issue-template
runtime lists that the removal PR missed, per @davesienkowski's review nit:
- feature_request.yml: 'Applicable runtimes' checkbox (a user could otherwise
  request a feature for a runtime GSD no longer supports)
- bug_report.yml: 'Runtime' dropdown + the stale ~/.gemini/settings.json
  retrieval-help line

Leaves the post-removal templates fully consistent with the Antigravity redirect.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 13:32:51 -04:00

4.0 KiB

How to attach a plugin-provided skill to a GSD agent

Use this guide when you have a Claude Code plugin that ships a skill and you want GSD agents to load it automatically at spawn time. The global:<plugin>:<skill> entry form makes GSD emit a Skill-tool load directive so the agent picks up the plugin skill alongside any project-local or personal global skills.

This feature works on the Claude runtime only. On other runtimes (Codex, Antigravity, Cursor, etc.) the entry is skipped with a warning. Plan accordingly if your team uses multiple runtimes.


1. Install the plugin in Claude Code

GSD does not install or manage Claude Code plugins. Install the plugin first:

/plugin install <plugin-source>

Verify the plugin is active and note the skill names it exposes. The plugin's documentation or README will list available skill names in the format plugin:skill — for example, coderabbit:code-review.


2. Find the namespaced skill name

The name you need has two colon-separated segments after global::

global:<plugin>:<skill>

For example, if the plugin slug is coderabbit and it provides a skill called code-review, the entry is:

global:coderabbit:code-review

Each segment must consist of alphanumeric characters, underscores, or hyphens only. No spaces, no slashes, no dots.


3. Add the entry to agent_skills

Open .planning/config.json and add the namespaced skill to the array for the agent type that should receive it:

{
  "agent_skills": {
    "gsd-executor": [
      "skills/project-conventions",
      "global:coderabbit:code-review"
    ],
    "gsd-verifier": [
      "global:coderabbit:code-review"
    ]
  }
}

You can mix all three entry forms freely within the same array — project-relative paths, global:<name> personal skills, and global:<plugin>:<skill> plugin skills.

Or set it from the CLI:

gsd-tools query config-set agent_skills.gsd-executor '["skills/project-conventions","global:coderabbit:code-review"]'

4. Verify the injection

Start a phase on the Claude runtime. When the target agent is spawned, its Task() prompt will contain an <agent_skills> block that includes a Skill-tool load directive for the plugin skill:

<agent_skills>
Read these user-configured skills:
- @skills/project-conventions/SKILL.md
- Load the `coderabbit:code-review` skill via the Skill tool before proceeding (plugin-provided).
</agent_skills>

Both entry types appear in the same Read these user-configured skills: section, interleaved in config order. There is no separate header for plugin-provided skills.

If you see [agent-skills] WARNING: Plugin-namespaced skill "global:coderabbit:code-review" requires a Skill-tool-capable runtime (claude) — skipping on runtime "<runtime>" in the logs, the entry is being skipped because the active runtime is not Claude. The configuration is still valid; no change is needed.


Notes

  • Plugin must be pre-installed. GSD only references the skill by namespaced name. If the plugin is not installed in Claude Code, the Skill tool call will fail at agent runtime — GSD cannot validate plugin presence at configuration time.
  • Which agents support it. All 22 GSD agent types that consume agent_skills carry the Skill tool, so any of them can load plugin-provided skills. See Agent Skills Injection — Supported Agent Types for the full list.
  • Non-Claude runtimes. The global:<plugin>:<skill> entry is silently skipped with a warning on non-Claude runtimes. Project-relative and global:<name> entries work on all runtimes.
  • Security boundary. Plugin skill content is resolved entirely by Claude Code at agent runtime. GSD does not read, cache, or validate the plugin's files.