Awesome-omni-skill evolve-skill
Analyze feedback and evolve skills through structured improvement. The meta-skill that makes other skills better.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/evolve-skill" ~/.claude/skills/diegosouzapw-awesome-omni-skill-evolve-skill && rm -rf "$T"
skills/development/evolve-skill/SKILL.mdEvolve Skill
Analyze feedback and improve skills through structured evolution. This meta-skill enables skills to learn and improve over time.
Arguments
- Skill name to evolve (e.g.,$0
)add-chart- Or special commands:
- Analyze all skills--all
- Just show analysis, no changes--analyze-only {skill}
- Rollback to previous versionrollback {skill}
- Rollback to specific versionrollback {skill} {version}
- List available versionsversions {skill}
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/
cp 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:
version: {new-version} # Bump appropriately last-evolved: {today's date} evolution-count: {previous + 1} -
Update CHANGELOG.md:
## [{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
to verify/skill-name
Mode 2: Rollback
rollback {skill}
- Previous Version
rollback {skill}- 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
rollback {skill} {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}
versions {skill}- List all files in
directory.versions/ - 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
--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
-
date updatedlast-evolved -
incrementedevolution-count - CHANGELOG.md entry added
- Git commit created
- User notified of changes
After rollback:
- Correct version restored
- Metadata updated
- CHANGELOG notes rollback
- Git commit created