Evolve Skill
Analyze feedback and improve skills through structured evolution. This meta-skill enables skills to learn and improve over time.
Arguments
- •
$0- Skill name to evolve (e.g.,add-chart) - •Or special commands:
- •
--all- Analyze all skills - •
--analyze-only {skill}- Just show analysis, no changes - •
rollback {skill}- Rollback to previous version - •
rollback {skill} {version}- Rollback to specific version - •
versions {skill}- List available versions
- •
Mode 1: Evolve a Skill
Step 1: Gather Feedback
Read all feedback files for the target skill:
.claude/skills/.feedback/${$0}/*.yaml
Parse each feedback file and aggregate:
- •Outcome distribution (success/partial/failed)
- •Common strengths (patterns that appear multiple times)
- •Common corrections (fixes that were needed repeatedly)
- •Common suggestions (frequently requested improvements)
Step 2: Analyze Patterns
Categorize improvements by type:
- •Instructions - Steps that need clarification or reordering
- •Templates - Code patterns that need updating
- •Verification - Missing checklist items
- •Tools - Tool permissions that should change
Look for patterns:
- •If 2+ feedback entries mention the same correction → likely needed
- •If 2+ feedback entries suggest the same improvement → worth considering
- •If success rate < 70% → skill needs significant improvement
Step 3: Propose Improvements
Present proposals to the user using AskUserQuestion:
Based on {N} feedback entries for '{skill-name}':
- Success rate: {X}%
- Common corrections: {list}
- Common suggestions: {list}
Proposed improvements:
1. {Improvement 1} - rationale from feedback
2. {Improvement 2} - rationale from feedback
...
Which improvements should we apply?
Options should include:
- •Apply all proposed improvements
- •Select specific improvements
- •Skip (just update metadata)
Step 4: Apply Changes (with approval)
For each approved improvement:
- •
Save current version to .versions/
codecp SKILL.md .versions/{current-version}.md - •
Edit SKILL.md with the improvement
- •Be precise with edits
- •Maintain skill structure and formatting
- •Add new sections if needed
- •
Update metadata:
yamlversion: {new-version} # Bump appropriately last-evolved: {today's date} evolution-count: {previous + 1} - •
Update CHANGELOG.md:
markdown## [{new-version}] - {date} ### Changed - {Description of change 1} - {Description of change 2} ### Feedback-driven Based on {N} feedback entries. Key patterns addressed: - {Pattern 1} - {Pattern 2}
Step 5: Commit Changes
Create a git commit with:
git add .claude/skills/${$0}/
git commit -m "evolve(${$0}): {brief description}
Based on {N} feedback entries:
- {Key improvement 1}
- {Key improvement 2}
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"
Step 6: Report
Tell the user:
- •Changes applied
- •New version number
- •Suggest testing the skill with
/skill-nameto verify
Mode 2: Rollback
rollback {skill} - Previous Version
- •Read current version from SKILL.md frontmatter
- •Find previous version in
.versions/ - •Copy previous version to SKILL.md
- •Update metadata (decrement evolution-count)
- •Add CHANGELOG entry noting rollback
- •Commit with message:
revert(${skill}): rollback to {version}
rollback {skill} {version} - Specific Version
- •Verify version exists in
.versions/{version}.md - •Copy that version to SKILL.md
- •Update metadata appropriately
- •Add CHANGELOG entry
- •Commit
Mode 3: List Versions
versions {skill}
- •List all files in
.versions/directory - •Show version, date (from filename or metadata), and brief description
- •Indicate current version
Output format:
Versions for '{skill}':
1.0.0 - 2026-02-02 - Initial release
1.1.0 - 2026-02-15 - Added ErrorBoundary pattern (current)
Mode 4: Analyze All
--all
- •Scan all skill directories
- •For each skill with feedback:
- •Calculate success rate
- •Count pending feedback entries
- •Identify skills most in need of evolution
Output format:
Skill Evolution Status: add-chart - 5 feedback entries, 60% success, needs evolution add-api-route - 2 feedback entries, 100% success, healthy add-dashboard - 0 feedback entries, no data ...
Recommend which skills to evolve first.
Version Numbering
Use semantic versioning:
- •
Patch (1.0.x) - Small fixes, clarifications
- •Typo fixes
- •Minor wording improvements
- •Adding missing details
- •
Minor (1.x.0) - New content, significant improvements
- •New sections added
- •Template code updated
- •Verification steps added
- •
Major (x.0.0) - Breaking changes (rare for skills)
- •Complete restructure
- •Argument changes
- •Fundamental approach change
Feedback Analysis Patterns
Detecting Instruction Issues
# If corrections mention "order" or "sequence" corrections: - "Had to reorder the steps" - "Step 3 should come before Step 2" → Instruction ordering issue
Detecting Template Issues
# If corrections mention specific code corrections: - "Fixed import order" - "Added missing ErrorBoundary" → Template needs updating
Detecting Missing Guidance
# If suggestions mention "add" or "include" suggestions: - "Add section about error handling" - "Include z-index best practices" → Missing documentation
Verification Checklist
After evolution:
- • Previous version saved to
.versions/ - • SKILL.md updated with improvements
- • Version bumped appropriately
- •
last-evolveddate updated - •
evolution-countincremented - • CHANGELOG.md entry added
- • Git commit created
- • User notified of changes
After rollback:
- • Correct version restored
- • Metadata updated
- • CHANGELOG notes rollback
- • Git commit created