Claude-skill-registry-data migrate-to-skills
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/migrate-to-skills-kasperjunge-agent-resources" ~/.claude/skills/majiayu000-claude-skill-registry-data-migrate-to-skills && rm -rf "$T"
data/migrate-to-skills-kasperjunge-agent-resources/SKILL.mdConvert to Skills
Convert legacy agent resources to the unified Agent Skills format.
Workflow
Execute these phases in order. Always get user approval before making changes.
Phase 1: Discovery
Search for legacy resources. Run these searches immediately:
# Subagents find . -path "*/.claude/agents/*.md" -o -path "*/.cursor/agents/*.md" -o -path "*/.codex/agents/*.md" 2>/dev/null # Commands find . -path "*/.claude/commands/*.md" -o -path "*/.cursor/commands/*.md" -o -path "*/.codex/commands/*.md" 2>/dev/null # Rules find . -path "*/.claude/rules/*.md" -o -path "*/.cursor/rules/*.mdc" -o -path "*/.cursor/rules/*.md" 2>/dev/null # Custom Prompts (Codex) find . -path "*/.codex/prompts/*.md" 2>/dev/null # AGENTS.md files find . -name "AGENTS.md" 2>/dev/null
If
$1 specifies a path, only scan that location.
Phase 2: Classification
Read each discovered file and classify it. Present findings as:
## Discovery Results ### Subagents (X found) | File | Name | Recommended Action | |------|------|-------------------| | .claude/agents/reviewer.md | reviewer | Convert to skill | ### Commands (X found) | File | Name | Recommended Action | |------|------|-------------------| | .claude/commands/test.md | test | Convert to skill | ### Rules (X found) | File | Name | Type | Recommended Action | |------|------|------|-------------------| | .cursor/rules/style.mdc | style | always-apply | Import to CLAUDE.md | | .cursor/rules/react.mdc | react | glob-scoped | Keep as rule | | .claude/rules/security.md | security | knowledge | Convert to skill | ### Already Skills (No Action) - .claude/skills/existing/ ✓ ### Needs Manual Review - [file]: [reason]
Rule classification logic:
→ Import to CLAUDE.md viaalwaysApply: true@import- Has
pattern → Keep as rule (skills don't support glob activation)globs - General knowledge → Convert to skill
Phase 3: Approval
Ask user:
"Found X resources to convert. Proceed with conversion? [Y/n/customize]"
If "customize": Let user select specific items or modify actions.
Phase 4: Conversion
For each approved conversion, apply the appropriate mapping:
Subagent → Skill:
- Add
(required for subagent behavior)context: fork - Simplify model names (see field-mappings.md)
- Keep
allowed-tools - Enhance description with trigger keywords
Command → Skill:
- Add
disable-model-invocation: true - Keep
argument-hint - Document
,$ARGUMENTS
,$1
usage$2
Rule → Skill (knowledge type only):
- Write description with auto-trigger keywords
- No
(allow auto-activation)disable-model-invocation
Rule → CLAUDE.md (always-apply):
- Add
to CLAUDE.md@import path/to/rule.md
Create skill structure:
.claude/skills/{name}/ ├── SKILL.md ├── scripts/ # If original has executables ├── references/ # If original has docs └── assets/ # If original has templates
Phase 5: Verification
After conversion, run:
# List created skills ls -la .claude/skills/ # Verify frontmatter for skill in .claude/skills/*/SKILL.md; do echo "=== $skill ===" && head -20 "$skill" done
Present summary:
## Conversion Complete ### Created Skills | Skill | Location | Source | |-------|----------|--------| | reviewer | .claude/skills/reviewer/ | .claude/agents/reviewer.md | ### Updated Files - CLAUDE.md: Added 2 @import statements ### Verification - [x] All skills have valid frontmatter - [x] Names match directory names - [x] No duplicate skills
Phase 6: Cleanup (Optional)
Ask user:
"Delete original files? [y/N/archive]"
- y: Delete originals
- N: Keep originals (default)
- archive: Move to
.claude/archive/
Quick Reference
Key Conversion Rules
| Source Type | Target | Key Addition |
|---|---|---|
| Subagent | Skill | |
| Command | Skill | |
| Rule (knowledge) | Skill | Trigger keywords in description |
| Rule (always-apply) | CLAUDE.md | statement |
| Rule (glob-scoped) | Keep as rule | No conversion needed |
Model Mapping
| Legacy | Skills |
|---|---|
| |
| |
| |
/ omitted | (omit) |
Tool Mapping
| Variations | Standard |
|---|---|
| read, ReadFile, file_read | |
| write, WriteFile | |
| bash, Terminal, Shell | |
| grep, Search | |
| glob, Find, list_files | |
Reference Files
For detailed specifications, read these on-demand:
- Full Agent Skills specificationreferences/spec-reference.md
- Complete field conversion tablesreferences/field-mappings.md
- Before/after conversion examplesreferences/examples.md
Troubleshooting
| Issue | Solution |
|---|---|
| Skill not discovered | Check: name matches directory, valid YAML frontmatter |
| Triggers too often | Add |
| Doesn't auto-trigger | Remove , add keywords to description |
| Subagent behavior changed | Ensure is present |
| Hooks not working | Requires Claude Code 2.1+ |