Skip to content
Skill Authoring
Skill

/create-slash-commands

Expert guidance for creating Claude Code slash commands. Use when working with slash commands, creating custom commands, understanding command structure, or learning YAML configuration.

BOOST
From plugin
taches-cc-resources
2k12 skills3 agents39 commands
Install
$ npx -y skills add glittercowboy/taches-cc-resources --skill create-slash-commands --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/create-slash-commands

Context preview

The summary Claude sees to decide when to auto-load this skill.

Expert guidance for creating Claude Code slash commands. Use when working with slash commands, creating custom commands, understanding command structure, or learning YAML configuration.

SKILL.md

create-slash-commands.SKILL.md
name: create-slash-commands
description: Expert guidance for creating Claude Code slash commands. Use when working with slash commands, creating custom commands, understanding command structure, or learning YAML configuration.

<objective> Create effective slash commands for Claude Code that enable users to trigger reusable prompts with `/command-name` syntax. Slash commands expand as prompts in the current conversation, allowing teams to standardize workflows and operations. This skill teaches you to structure commands with XML tags, YAML frontmatter, dynamic context loading, and intelligent argument handling. </objective>

<quick_start>

<workflow> 1. Create `.claude/commands/` directory (project) or use `~/.claude/commands/` (personal) 2. Create `command-name.md` file 3. Add YAML frontmatter (at minimum: `description`) 4. Write command prompt 5. Test with `/command-name [args]` </workflow>

<example> **File**: `.claude/commands/optimize.md`

---
description: Analyze this code for performance issues and suggest optimizations
---

Analyze the performance of this code and suggest three specific optimizations:

**Usage**: `/optimize`

Claude receives the expanded prompt and analyzes the code in context. </example> </quick_start>

<xml_structure> All generated slash commands should use XML tags in the body (after YAML frontmatter) for clarity and consistency.

<required_tags>

**`<objective>`** - What the command does and why it matters

<objective>
What needs to happen and why this matters.
Context about who uses this and what it accomplishes.
</objective>

**`<process>` or `<steps>`** - How to execute the command

<process>
Sequential steps to accomplish the objective:
1. First step
2. Second step
3. Final step
</process>

**`<success_criteria>`** - How to know the command succeeded

<success_criteria>
Clear, measurable criteria for successful completion.
</success_criteria>

</required_tags>

<conditional_tags>

**`<context>`** - When loading dynamic state or files

<context>
Current state: ! `git status`
Relevant files: @ package.json
</context>

(Note: Remove the space after @ in actual usage)

**`<verification>`** - When producing artifacts that need checking

<verification>
Before completing, verify:
- Specific test or check to perform
- How to confirm it works
</verification>

**`<testing>`** - When running tests is part of the workflow

<testing>
Run tests: ! `npm test`
Check linting: ! `npm run lint`
</testing>

**`<output>`** - When creating/modifying specific files

<output>
Files created/modified:
- `./path/to/file.ext` - Description
</output>

</conditional_tags>

<structure_example>

---
name: example-command
description: Does something useful
argument-hint: [input]
---

<objective>
Process $ARGUMENTS to accomplish [goal].

This helps [who] achieve [outcome].
</objective>

<context>
Current state: ! `relevant command`
Files: @ relevant/files
</context>

<process>
1. Parse $ARGUMENTS
2. Execute operation
3. Verify results
</process>

<success_criteria>
- Operation completed without errors
- Output matches expected format
</success_criteria>

</structure_example>

<intelligence_rules>

**Simple commands** (single operation, no artifacts):

  • Required: `<objective>`, `<process>`, `<success_criteria>`
  • Example: `/check-todos`, `/first-principles`

**Complex commands** (multi-step, produces artifacts):

  • Required: `<objective>`, `<process>`, `<success_criteria>`
  • Add: `<context>` (if loading state), `<verification>` (if creating files), `<output>` (what gets created)
  • Example: `/commit`, `/create-prompt`, `/run-prompt`

**Commands with dynamic arguments**:

  • Use `$ARGUMENTS` in `<objective>` or `<process>` tags
  • Include `argument-hint` in frontmatter
  • Make it clear what the arguments are for

**Commands that produce files**:

  • Always include `<output>` tag specifying what gets created
  • Always include `<verification>` tag with checks to perform

**Commands that run tests/builds**:

  • Include `<testing>` tag with specific commands
  • Include pass/fail criteria in `<success_criteria>`

</intelligence_rules> </xml_structure>

<arguments_intelligence> The skill should intelligently determine whether a slash command needs arguments.

<commands_that_need_arguments>

**User provides specific input:**

  • `/fix-issue [issue-number]` - Needs issue number
  • `/review-pr [pr-number]` - Needs PR number
  • `/optimize [file-path]` - Needs file to optimize
  • `/commit [type]` - Needs commit type (optional)

**Pattern:** Task operates on user-specified data

Include `argument-hint: [description]` in frontmatter and reference `$ARGUMENTS` in the body. </commands_that_need_arguments>

<commands_without_arguments>

**Self-contained procedures:**

  • `/check-todos` - Operates on known file (TO-DOS.md)
  • `/first-principles` - Operates on current conversation
  • `/whats-next` - Analyzes current context

**Pattern:** Task operates on implicit context (current conversation, known files, project state)

Omit `argument-hint` and don't reference `$ARGUMENTS`. </commands_without_arguments>

<incorporating_arguments>

**In `<objective>` tag:**

<objective>
Fix issue #$ARGUMENTS following project conventions.

This ensures bugs are resolved systematically with proper testing.
</objective>

**In `<process>` tag:**

<process>
1. Understand issue #$ARGUMENTS from issue tracker
2. Locate relevant code
3. Implement fix
4. Add tests
</process>

**In `<context>` tag:**

<context>
Issue details: @ issues/$ARGUMENTS.md
Related files: ! `grep -r "TODO.*$ARGUMENTS" src/`
</context>

(Note: Remove the space after the exclamation mark in actual usage) </incorporating_arguments>

<positional_arguments>

For structured input, use `$1`, `$2`, `$3`:

---
argument-hint: <pr-number> <priority> <assignee>
---

<objective>
Review PR #$1 with p
Read more
Ships withtaches-cc-resources

A growing collection of custom Claude Code resources built for real workflows.

Get the whole plugin

Other skills on taches-cc-resources.