command-development

Develop Claude Code slash commands using Markdown prompts with YAML frontmatter.

Updated Dec 21, 2025
One-click install
npx skills add https://github.com/s-hiraoku/claude-code-harnesses-factory --skill command-development-s-hiraoku
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: command-development
Source: https://github.com/s-hiraoku/claude-code-harnesses-factory/tree/main/.claude/skills/command-development
Command: npx skills add https://github.com/s-hiraoku/claude-code-harnesses-factory --skill command-development-s-hiraoku

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill guides creating slash commands for Claude Code—reusable prompts that streamline automation and workflows.

Core Features & Use Cases

  • Frontmatter-driven commands: Each command is described with metadata to drive help text and access controls.
  • Dynamic features: Supports arguments, file references, and inline Bash execution.
  • Organization & Best Practices: Encourages clear naming, single-responsibility, and tool restrictions.
  • Use Case: Create a /git-commit command to standardize commit messages and checks.

Quick Start

Create a new command file under .claude/commands/review-pr.md and define its frontmatter and instructions.

Frequently Asked Questions about command-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create reusable slash commands for Claude Code?

Slash commands for Claude Code are Markdown files with YAML frontmatter that define metadata, arguments, and instructions. Create a file under .claude/commands/ with frontmatter fields like description, allowed-tools, and model, then write your command logic below. This lets you automate workflows and standardize repetitive tasks across projects.

What frontmatter fields do slash commands support?

Slash commands support frontmatter fields including description, allowed-tools, model, argument-hint, and disable-model-invocation. These fields control help text, restrict tool access, set model behavior, document arguments, and toggle Claude's invocation. Proper frontmatter ensures commands behave predictably and integrate cleanly with Claude Code.

Can slash commands accept arguments and execute inline Bash?

Yes, slash commands support dynamic arguments, file references, and inline Bash execution. Arguments are documented via argument-hint, file references let commands access project files, and embedded Bash enables scripting. This flexibility lets you build commands that adapt to different contexts and automate complex workflows.

What's the best way to organize and name slash commands?

Follow single-responsibility design: each command handles one task with a clear, verb-forward name like /git-commit or /review-pr. Store commands under .claude/commands/, use hyphens in filenames, and document purpose in the description field. Clear naming and organization make commands discoverable and maintainable across teams.

How do I restrict which tools a slash command can use?

Use the allowed-tools frontmatter field to specify which tools your command can invoke. This limits scope, prevents unintended side effects, and hardens security by restricting access to sensitive operations. Define tools as a list to control what each command exposes to Claude Code.

Do I need to write custom code to build slash commands?

No custom code is required. Slash commands are Markdown files with YAML frontmatter and plain-text instructions. You define the command's interface and behavior declaratively, and Claude Code interprets the metadata and executes the instructions. This design prioritizes simplicity and reusability.