claude-command-converter
dceoy/speckit-agent-skills
Convert Claude Code commands to portable Agent Skills format for multi-runtime compatibility.
What is claude-command-converter?
Transforms Claude Code command definitions (.claude/commands/*.md) into standard Agent Skills (skills/*/SKILL.md) format. Use this when migrating slash commands to a portable format, creating reusable skills from existing commands, or standardizing command definitions across different AI coding assistants like Claude Code, Cursor, and GitHub Copilot.
- Reads Claude Code command files and extracts metadata, descriptions, and workflow logic
- Converts command-specific syntax ($ARGUMENTS, handoffs, /slash-commands) to portable skill format
- Generates properly structured SKILL.md files with frontmatter, When to Use, Inputs, Workflow, and Outputs sections
- Transforms handoff references into Next Steps prose sections
- Validates converted skills for completeness and removes runtime-specific constructs
How to install claude-command-converter
npx skills add https://github.com/dceoy/speckit-agent-skills --skill claude-command-converter- Source command file in .claude/commands/*.md format
- Target directory structure for skills/
How to use claude-command-converter
- 1.Provide the path to the source command file (e.g., .claude/commands/my-command.md)
- 2.Optionally specify a target skill name; if omitted, the command filename will be used
- 3.The converter reads the command metadata, description, and workflow steps
- 4.It transforms $ARGUMENTS into an Inputs section, handoffs into Next Steps, and restructures content into SKILL.md format
- 5.Review the generated skills/<skill-name>/SKILL.md for completeness and accuracy
- 6.Delete any unused example files and update your skill inventory if applicable
Use cases
- Migrating an existing library of .claude/commands to portable skills/*/SKILL.md format
- Creating a reusable skill from a one-off Claude Code command for use across multiple AI assistants
- Standardizing command definitions so they work with Claude Code, Cursor, GitHub Copilot, and other runtimes
- Converting terse command descriptions into comprehensive skill documentation with usage triggers
- Developers maintaining Claude Code command libraries who want portability
- Teams standardizing AI assistant tooling across multiple IDEs and runtimes
- Skill authors converting existing slash commands to the Agent Skills specification
claude-command-converter FAQ
Handoff references are converted from YAML frontmatter into prose Next Steps sections that reference related skills by their kebab-case names instead of /slash-command syntax.
$ARGUMENTS placeholders are documented as an Inputs section describing the expected user input, replacing the raw User Input block.
Yes. The standard Agent Skills format is designed for portability across Claude Code, Cursor, GitHub Copilot, and other AI coding assistants.
The converter expands terse descriptions to include when-to-use triggers and usage context, making the skill self-documenting.
Yes. The converter provides recommendations for manual review, including validation that no TODO placeholders or runtime-specific variables remain.
Full instructions (SKILL.md)
Source of truth, from dceoy/speckit-agent-skills.
name: claude-command-converter description: Convert Claude Code commands (.claude/commands/.md) to standard Agent Skills (skills//SKILL.md). Use when migrating slash commands to portable skill format, creating skills from existing commands, or standardizing command definitions across AI runtimes.
Claude Command Converter
Convert Claude Code commands to standard Agent Skills format for portability across AI coding assistants.
When to Use
- Migrating existing
.claude/commands/*.mdfiles toskills/*/SKILL.mdformat. - Creating portable skills from Claude Code-specific commands.
- Standardizing command definitions for use with Claude Code, Codex CLI, GitHub Copilot, and other runtimes.
Inputs
- Source command file path (e.g.,
.claude/commands/my-command.md). - Optional: target skill name (defaults to command filename without extension).
If input is missing, ask for the source command file path.
Format Differences
Claude Code Command Format
Location: .claude/commands/<command-name>.md
---
description: Short description of the command
handoffs:
- label: Next Action
agent: other.command
prompt: Trigger prompt
send: true
---
## User Input
\`\`\`text
$ARGUMENTS
\`\`\`
[Command instructions...]
Standard Agent Skill Format
Location: skills/<skill-name>/SKILL.md
---
name: skill-name
description: Complete description including what the skill does and when to use it.
---
# Skill Title
## When to Use
- Scenario 1
- Scenario 2
## Inputs
- Required input 1
- Optional input 2
## Workflow
1. Step 1
2. Step 2
...
## Outputs
- Output file 1
- Output file 2
Conversion Workflow
-
Read the source command from
.claude/commands/. -
Extract metadata:
descriptionfrom YAML frontmatter.handoffsfor related skills/next steps.$ARGUMENTShandling for inputs.
-
Determine skill name:
- Convert
command.name.md→command-name(replace dots with hyphens). - Use kebab-case for multi-word names.
- Convert
-
Create skill directory:
skills/<skill-name>/ -
Transform content to SKILL.md format:
- Frontmatter: Keep
nameanddescriptiononly. - Enhance description: Expand to include when to use the skill.
- Convert
$ARGUMENTS: Document as Inputs section. - Structure workflow: Extract steps into numbered Workflow section.
- Add "When to Use": Derive from command context and description.
- Add "Outputs": List generated files/artifacts.
- Convert handoffs: Add "Next Steps" section referencing related skills.
- Frontmatter: Keep
-
Remove runtime-specific content:
- Remove
## User Inputsection with$ARGUMENTSblock. - Remove
handoffsfrom frontmatter (move to prose). - Remove
/command.namereferences (use skill names instead).
- Remove
-
Validate skill structure:
- Frontmatter has
nameanddescriptiononly. - Body has clear sections (When to Use, Inputs, Workflow, Outputs).
- No TODO placeholders remain.
- No runtime-specific variables like
$ARGUMENTS.
- Frontmatter has
-
Report conversion result:
- Source command path.
- Generated skill path.
- Key transformations applied.
- Manual review recommendations.
Transformation Rules
| Claude Command | Agent Skill |
|---|---|
$ARGUMENTS | Inputs section describing expected user input |
handoffs: | Next Steps section with skill references |
/command.name | skill-name (kebab-case) |
agent: foo.bar | foo-bar skill reference |
description: in frontmatter | description: expanded with triggers |
Inline ## User Input | Removed; documented in Inputs |
Example Conversion
Input: .claude/commands/speckit.specify.md
---
description: Create feature specification from natural language.
handoffs:
- label: Build Technical Plan
agent: speckit.plan
---
## User Input
\`\`\`text
$ARGUMENTS
\`\`\`
The text the user typed after `/speckit.specify`...
Output: skills/speckit-specify/SKILL.md
---
name: speckit-specify
description: Create or update a feature specification from a natural language feature description.
---
# Spec Kit Specify Skill
## When to Use
- The user wants a new or updated feature spec from a natural language description.
## Inputs
- Feature description from the user.
- Repo context with `.specify/` scripts and templates.
If the description is missing or unclear, ask a targeted question before continuing.
## Workflow
...
## Outputs
- `specs/<feature>/spec.md`
- `specs/<feature>/checklists/requirements.md`
## Next Steps
After generating spec.md:
- **Plan** technical implementation with speckit-plan.
- **Clarify** specification requirements with speckit-clarify.
Key Rules
- Preserve all workflow logic and instructions.
- Remove runtime-specific constructs (
$ARGUMENTS,handoffs,/slash-commands). - Expand terse descriptions to include usage triggers.
- Use imperative voice in workflow steps.
- Keep skills self-contained and portable.
- Don't add extraneous documentation files (README, CHANGELOG, etc.).
Next Steps
After conversion:
- Review generated SKILL.md for completeness.
- Delete unused example files in
scripts/,references/,assets/. - Update AGENTS.md/CLAUDE.md skill inventory if applicable.
- Create symlinks for runtime integration if needed.
Related skills
More from dceoy/speckit-agent-skills and the wider catalog.

speckit-analyze
Analyze spec.md, plan.md, and tasks.md for consistency, coverage gaps, and quality issues.

speckit-baseline
Generate feature specifications by analyzing existing source code.

speckit-checklist
Generate custom requirement-quality checklists for features based on user focus areas.

speckit-clarify
Identify and resolve ambiguities in feature specs with targeted clarification questions.

speckit-constitution
Create or update project governance documents from principle inputs.

speckit-implement
Execute implementation tasks from tasks.md in a spec-kit project structure.