Speckit-agent-skills claude-command-converter
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.
install
source · Clone the upstream repo
git clone https://github.com/dceoy/speckit-agent-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/dceoy/speckit-agent-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/claude-command-converter" ~/.claude/skills/dceoy-speckit-agent-skills-claude-command-converter && rm -rf "$T"
manifest:
skills/claude-command-converter/SKILL.mdsource content
Claude Command Converter
Convert Claude Code commands to standard Agent Skills format for portability across AI coding assistants.
When to Use
- Migrating existing
files to.claude/commands/*.md
format.skills/*/SKILL.md - 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:
from YAML frontmatter.description
for related skills/next steps.handoffs
handling for inputs.$ARGUMENTS
-
Determine skill name:
- Convert
→command.name.md
(replace dots with hyphens).command-name - Use kebab-case for multi-word names.
- Convert
-
Create skill directory:
skills/<skill-name>/ -
Transform content to SKILL.md format:
- Frontmatter: Keep
andname
only.description - Enhance description: Expand to include when to use the skill.
- Convert
: Document as Inputs section.$ARGUMENTS - 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
section with## User Input
block.$ARGUMENTS - Remove
from frontmatter (move to prose).handoffs - Remove
references (use skill names instead)./command.name
- Remove
-
Validate skill structure:
- Frontmatter has
andname
only.description - 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 |
|---|---|
| Inputs section describing expected user input |
| Next Steps section with skill references |
| (kebab-case) |
| skill reference |
in frontmatter | expanded with triggers |
Inline | 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.