AgentSkillsCN

command-development

本技能指导用户为 Claude Code 创建斜杠命令——基于 Markdown 的可复用提示词,并采用 YAML 配置。当您需要构建自定义命令、设计命令工作流,或扩展 Claude Code 的功能时,即可调用此技能。

SKILL.md
--- frontmatter
name: command-development
description: This skill guides creating slash commands for Claude Code—reusable Markdown-based prompts with YAML configuration. Use when building custom commands, designing command workflows, or extending Claude Code functionality.

Command Development

Overview

Commands are reusable prompts defined as Markdown files with optional YAML frontmatter.

Critical: Commands are instructions FOR Claude, not messages TO users.

Command File Structure

markdown
---
description: Brief help text shown in /help
allowed-tools: Bash(git:*), Read
model: sonnet
argument-hint: [file-path] [options]
---

Instructions for Claude here.

Analyze the file at $1 and provide...

File Locations

LocationScope
.claude/commands/Project (shared via git)
~/.claude/commands/Personal (all projects)
plugin/commands/Plugin distribution

Frontmatter Fields

FieldPurpose
descriptionHelp text for /help command
allowed-toolsRestrict tool access (e.g., Bash(git:*))
modelSpecify model: haiku, sonnet, opus
argument-hintDocument expected arguments
disable-model-invocationPrevent programmatic calls

Dynamic Features

Arguments

markdown
# All arguments as single string
Process: $ARGUMENTS

# Positional arguments
File: $1
Options: $2
Mode: $3

File References

markdown
# Include file contents
Review this code: @src/main.ts

# Argument-based reference
Analyze: @$1

Inline Bash Execution

markdown
# Current context
Current branch: !`git branch --show-current`
Recent commits: !`git log --oneline -5`

Naming Conventions

Use verb-noun format:

  • review-pr.md
  • generate-tests.md
  • fix-issue.md

Organization

code
.claude/commands/
├── review-pr.md           # Flat for <15 commands
├── git/                   # Namespaced for 15+
│   ├── commit.md          # Becomes /git-commit
│   └── push.md            # Becomes /git-push
└── testing/
    └── run-tests.md       # Becomes /testing-run-tests

Best Practices

  1. Single responsibility - One task per command
  2. Document arguments - Always use argument-hint
  3. Validate inputs - Check before processing
  4. Restrict tools - Use allowed-tools appropriately
  5. Clear naming - Verb-noun format