claude-command-converter
npx machina-cli add skill dceoy/ai-coding-agent-skills/claude-command-converter --openclawClaude 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.
Source
git clone https://github.com/dceoy/ai-coding-agent-skills/blob/main/skills/claude-command-converter/SKILL.mdView on GitHub Overview
Claude Command Converter standardizes Claude Code commands into portable Agent Skills (skills/*/SKILL.md). It enables cross-runtime portability and reuse across AI coding assistants. Use it to migrate existing .claude/commands to the SKILL.md format.
How This Skill Works
The tool reads a source command from .claude/commands, extracts metadata (description, handoffs, and $ARGUMENTS), and outputs a SKILL.md in skills/<skill-name> with a frontmatter containing name and description. It transforms the content into standard sections (When to Use, Inputs, Workflow, Outputs), converts runtime-specific references to skill names, and documents Next Steps from handoffs.
When to Use It
- Migrating existing .claude/commands/*.md files to skills/*/SKILL.md format.
- Creating portable skills from Claude Code-specific commands.
- Standardizing command definitions for Claude Code, Codex CLI, GitHub Copilot, and other runtimes.
- Preparing cross-runtime command definitions for reuse across AI coding assistants.
- Converting command-driven workflows into portable, reusable skill definitions.
Quick Start
- Step 1: Identify the .claude/commands/<name>.md file to convert.
- Step 2: Create skills/<skill-name>/SKILL.md with frontmatter containing name and description.
- Step 3: Run the converter workflow to populate When to Use, Inputs, Workflow, Outputs, and Next Steps, then review for accuracy.
Best Practices
- Start by extracting the description and handoffs from the Claude Code command.
- Derive the skill name by converting command.name.md to kebab-case (replace dots with hyphens).
- Retain only name and description in the frontmatter; move runtime-specific content to prose.
- Document inputs from the $ARGUMENTS block as the Inputs section.
- Reference related skills in a Next Steps section and validate clear Workflow steps.
Example Use Cases
- commands/initialize-project.md -> skills/initialize-project/SKILL.md
- commands/create-database.md -> skills/create-database/SKILL.md
- commands/add-user.md -> skills/add-user/SKILL.md
- commands/deploy-to-aws.md -> skills/deploy-to-aws/SKILL.md
- commands/run-tests.md -> skills/run-tests/SKILL.md