Skip to content

Commit 4a5bb09

Browse files
sjnimsclaude
andauthored
docs: update documentation for Skill tool consolidation (#186)
## Description Updates documentation to reflect the consolidation of the SlashCommand tool into the Skill tool in Claude Code. The SlashCommand tool has been deprecated and its functionality merged into the unified Skill tool, which can now invoke both slash commands and Agent Skills programmatically. ## Type of Change - [ ] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [x] Documentation update (improvements to README, CLAUDE.md, or component docs) - [ ] Refactoring (code change that neither fixes a bug nor adds a feature) - [ ] Test (adding or updating tests) - [ ] Configuration change (changes to .markdownlint.json, plugin.json, etc.) ## Component(s) Affected - [x] Commands (`/plugin-dev:*`) - [x] Skills (methodology and best practices) - [ ] Agents (plugin-validator, skill-reviewer, agent-creator) - [ ] Hooks (event-driven automation) - [ ] Marketplace (marketplace.json, distribution) - [x] Documentation (README.md, CLAUDE.md, SECURITY.md) - [ ] Configuration (.markdownlint.json, plugin.json) - [ ] Issue/PR templates - [ ] Other (please specify): ## Motivation and Context The Claude Code documentation at https://code.claude.com/docs/en/slash-commands#skill-tool states: > "In earlier versions of Claude Code, slash command invocation was provided by a separate `SlashCommand` tool. This has been merged into the `Skill` tool." Our documentation referenced the deprecated `SlashCommand` tool and needed updating to reflect this change. Additionally, the `user-invocable` and `disable-model-invocation` frontmatter fields for skills were undocumented. Related to #184 ## How Has This Been Tested? **Test Configuration**: - Claude Code version: Latest - GitHub CLI version: 2.73.0 - OS: macOS Darwin 25.2.0 **Test Steps**: 1. Ran `markdownlint '**/*.md' --ignore node_modules` - passes with no errors 2. Verified all internal links in updated files reference correct paths 3. Reviewed content against official Claude Code documentation ## Checklist ### General - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas (if applicable) - [x] My changes generate no new warnings or errors ### Documentation - [x] I have updated the documentation accordingly (README.md, CLAUDE.md, or component docs) - [x] I have updated YAML frontmatter (if applicable) - [x] I have verified all links work correctly ### Markdown - [x] I have run `markdownlint` and fixed all issues - [x] My markdown follows the repository style (ATX headers, dash lists, fenced code blocks) - [x] I have verified special HTML elements are properly closed (`<p>`, `<img>`, `<example>`, `<commentary>`) ### Shell Scripts (if applicable) - [ ] Shell scripts pass `shellcheck` - N/A - [ ] Scripts are executable (`chmod +x`) - N/A - [ ] Scripts use `${CLAUDE_PLUGIN_ROOT}` for portable paths - N/A ### Component-Specific Checks <details> <summary><strong>Skills</strong> (click to expand)</summary> - [x] Description uses third-person with specific trigger phrases - [x] SKILL.md is 1,000-2,200 words (progressive disclosure) - [x] Detailed content is in `references/` subdirectory - [x] Templates follow the established format </details> ### Testing - [ ] I have tested the plugin locally with `claude --plugin-dir plugins/plugin-dev` - [ ] I have tested the full workflow (if applicable) - [ ] I have verified GitHub CLI integration works (if applicable) - [ ] I have tested in a clean repository (not my development repo) - [ ] I have run relevant validation scripts (validate-agent.sh, validate-command.sh, validate-hook-schema.sh, etc.) ### Version Management (if applicable) - [ ] I have updated version numbers in all version files - N/A (docs only) - [ ] I have updated CHANGELOG.md with relevant changes - Can be done at release ## Additional Notes ### Changes Made 1. **Renamed `slashcommand-tool.md` → `skill-tool.md`** - Comprehensive rewrite to document the unified Skill tool - Updated permission rule syntax (`Skill(name:*)` format) - Added table showing what the Skill tool can invoke - Added section on `user-invocable` field for skills 2. **Updated command-development/SKILL.md** - Changed trigger phrase from "SlashCommand tool" to "Skill tool" - Updated reference to renamed file 3. **Updated skill-development/SKILL.md** - Added documentation for `user-invocable` frontmatter field - Added documentation for `disable-model-invocation` frontmatter field - Added visibility comparison table - Updated validation checklist with new optional fields 4. **Updated commands/start.md** - Changed `allowed-tools` from `SlashCommand` to `Skill` - Updated instructions to reference Skill tool 5. **Updated frontmatter-reference.md** - Changed all SlashCommand references to Skill tool 6. **Updated CLAUDE.md** - Changed tool reference in workflow command security section ## Reviewer Notes **Areas that need special attention**: - The `skill-tool.md` reference file was significantly rewritten - please verify accuracy against official docs - New `user-invocable` and `disable-model-invocation` documentation in skill-development skill **Known limitations or trade-offs**: - This PR addresses only the documentation updates; the meta-skill feature request from #184 will be handled separately --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 63a7468 commit 4a5bb09

6 files changed

Lines changed: 167 additions & 80 deletions

File tree

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ allowed-tools: Read, Write, Edit, Grep, Glob, Bash(mkdir:*), Bash(git init:*), .
302302

303303
**Design contrast with `/plugin-dev:start`:**
304304

305-
The entry point command uses `disable-model-invocation: true` and restricts tools to `AskUserQuestion, SlashCommand, TodoWrite` since it only routes to other commands. The workflow commands need broader access because they perform the actual file creation work.
305+
The entry point command uses `disable-model-invocation: true` and restricts tools to `AskUserQuestion, Skill, TodoWrite` since it only routes to other commands. The workflow commands need broader access because they perform the actual file creation work.
306306

307307
**For security-sensitive environments:**
308308

plugins/plugin-dev/commands/start.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Start plugin development - choose your path
33
argument-hint: [description]
4-
allowed-tools: AskUserQuestion, SlashCommand, TodoWrite
4+
allowed-tools: AskUserQuestion, Skill, TodoWrite
55
model: sonnet
66
disable-model-invocation: true
77
---
@@ -73,13 +73,13 @@ After the user selects an option:
7373
**If they chose "A plugin"**:
7474

7575
- Acknowledge their choice
76-
- Use the SlashCommand tool to invoke `/plugin-dev:create-plugin`
76+
- Use the Skill tool to invoke `/plugin-dev:create-plugin`
7777
- Pass through any context from $ARGUMENTS if provided
7878

7979
**If they chose "A marketplace"**:
8080

8181
- Acknowledge their choice
82-
- Use the SlashCommand tool to invoke `/plugin-dev:create-marketplace`
82+
- Use the Skill tool to invoke `/plugin-dev:create-marketplace`
8383
- Pass through any context from $ARGUMENTS if provided
8484

8585
---

plugins/plugin-dev/skills/command-development/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: command-development
3-
description: This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", "SlashCommand tool", "programmatic command invocation", "disable-model-invocation", "prevent Claude from running command", "debug command", "command debugging", "troubleshoot command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, programmatic invocation control, debugging commands, or command development best practices for Claude Code.
3+
description: This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", "Skill tool", "programmatic command invocation", "disable-model-invocation", "prevent Claude from running command", "debug command", "command debugging", "troubleshoot command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, programmatic invocation control, debugging commands, or command development best practices for Claude Code.
44
---
55

66
# Command Development for Claude Code
@@ -193,7 +193,7 @@ argument-hint: [pr-number] [priority] [assignee]
193193

194194
### disable-model-invocation
195195

196-
**Purpose:** Prevent SlashCommand tool from programmatically calling command
196+
**Purpose:** Prevent Skill tool from programmatically calling command
197197
**Type:** Boolean
198198
**Default:** false
199199

@@ -704,7 +704,7 @@ Commands should validate inputs and resources before processing:
704704
## Additional Resources
705705

706706
For detailed frontmatter field specifications, see `references/frontmatter-reference.md`.
707-
For SlashCommand tool, programmatic invocation, and permission configuration, see `references/slashcommand-tool.md`.
707+
For Skill tool, programmatic invocation, and permission configuration, see `references/skill-tool.md`.
708708
For plugin-specific features and patterns, see `references/plugin-features-reference.md`.
709709
For plugin integration and validation patterns, see `references/plugin-integration.md`.
710710
For interactive user input patterns using AskUserQuestion, see `references/interactive-commands.md`.

plugins/plugin-dev/skills/command-development/references/frontmatter-reference.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ Run tests matching $1 with options: $2
280280
**Required:** No
281281
**Default:** false
282282

283-
**Purpose:** Prevent SlashCommand tool from programmatically invoking command
283+
**Purpose:** Prevent Skill tool from programmatically invoking command
284284

285285
**Examples:**
286286
```yaml
@@ -314,13 +314,13 @@ disable-model-invocation: true
314314
```
315315

316316
**Default behavior (false):**
317-
- Command available to SlashCommand tool
317+
- Command available to Skill tool
318318
- Claude can invoke programmatically
319319
- Still available for manual invocation
320320

321321
**When true:**
322322
- Command only invokable by user typing `/command`
323-
- Not available to SlashCommand tool
323+
- Not available to Skill tool
324324
- Safer for sensitive operations
325325

326326
**Best practices:**

0 commit comments

Comments
 (0)