PluginBench
Skill
Pass
Audit score 90

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
Prerequisites
  • Source command file in .claude/commands/*.md format
  • Target directory structure for skills/
Claude Code
Cursor
Windsurf
Cline

How to use claude-command-converter

  1. 1.Provide the path to the source command file (e.g., .claude/commands/my-command.md)
  2. 2.Optionally specify a target skill name; if omitted, the command filename will be used
  3. 3.The converter reads the command metadata, description, and workflow steps
  4. 4.It transforms $ARGUMENTS into an Inputs section, handoffs into Next Steps, and restructures content into SKILL.md format
  5. 5.Review the generated skills/<skill-name>/SKILL.md for completeness and accuracy
  6. 6.Delete any unused example files and update your skill inventory if applicable

Use cases

Good for
  • 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
Who it's for
  • 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

What happens to handoffs in the conversion?

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.

How are $ARGUMENTS handled?

$ARGUMENTS placeholders are documented as an Inputs section describing the expected user input, replacing the raw User Input block.

Will the converted skill work with other AI assistants?

Yes. The standard Agent Skills format is designed for portability across Claude Code, Cursor, GitHub Copilot, and other AI coding assistants.

What if my command has a complex description?

The converter expands terse descriptions to include when-to-use triggers and usage context, making the skill self-documenting.

Do I need to manually review the output?

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/*.md files to skills/*/SKILL.md format.
  • 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

  1. Read the source command from .claude/commands/.

  2. Extract metadata:

    • description from YAML frontmatter.
    • handoffs for related skills/next steps.
    • $ARGUMENTS handling for inputs.
  3. Determine skill name:

    • Convert command.name.md → command-name (replace dots with hyphens).
    • Use kebab-case for multi-word names.
  4. Create skill directory: skills/<skill-name>/

  5. Transform content to SKILL.md format:

    • Frontmatter: Keep name and description only.
    • 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.
  6. Remove runtime-specific content:

    • Remove ## User Input section with $ARGUMENTS block.
    • Remove handoffs from frontmatter (move to prose).
    • Remove /command.name references (use skill names instead).
  7. Validate skill structure:

    • Frontmatter has name and description only.
    • Body has clear sections (When to Use, Inputs, Workflow, Outputs).
    • No TODO placeholders remain.
    • No runtime-specific variables like $ARGUMENTS.
  8. Report conversion result:

    • Source command path.
    • Generated skill path.
    • Key transformations applied.
    • Manual review recommendations.

Transformation Rules

Claude CommandAgent Skill
$ARGUMENTSInputs section describing expected user input
handoffs:Next Steps section with skill references
/command.nameskill-name (kebab-case)
agent: foo.barfoo-bar skill reference
description: in frontmatterdescription: expanded with triggers
Inline ## User InputRemoved; 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.