Help us improve
Share bugs, ideas, or general feedback.
From evolving-skills
Evolve one or more Claude Code skills from their learnings without damaging routing or execution behavior. Use when the user says to run Evolve on a skill, improve skills based on learnings, update SKILL.md files, promote learnings into workflows or references, clear learnings after incorporating them, or batch-evolve several named skills.
npx claudepluginhub dodo-digital/evolving-skills --plugin evolving-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/evolving-skills:evolveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<objective>
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Grills users relentlessly on plans or designs by interviewing branch-by-branch through decision trees to reach shared understanding. Use for stress-testing ideas or 'grill me'.
Share bugs, ideas, or general feedback.
<skill_model> Treat the target skill as a working system:
name, description, and context_budget are functional, not decorative.SKILL.md is the stable core: objective, principles, routing, process, validation, and learning capture.workflows/ holds step-by-step procedures for distinct paths.references/ holds durable knowledge that is too detailed for SKILL.md.templates/, scripts/, and other assets may need updates when learnings reveal output or tooling drift.learnings.md is a temporary inbox for execution knowledge, not a permanent knowledge base.
</skill_model><target_resolution> If the user provides paths, use them. If the user provides skill names, look in likely skill roots:
.claude/skills/<skill-name>~/.claude/skills/<skill-name>~/plugins/*/claude-skills/<skill-name>~/plugins/*/skills/<skill-name>Build target_queue from every requested skill. Stop and ask for clarification only for ambiguous or missing targets; keep already-resolved targets queued. If the user asks to evolve a folder of skills, enumerate only direct child directories that contain SKILL.md.
</target_resolution>
<context_boundaries>
For each queued target, set target_skill_dir to the directory containing that target's SKILL.md. Only inspect files inside the active target_skill_dir: SKILL.md, root learnings.md, and direct subdirectories such as workflows/, references/, templates/, scripts/, or agents/.
Do not scan sibling skills, project-wide skills/ folders, example outputs, or skills that Create Skill generated. If the target skill creates other skills, those generated skills are outputs, not context for evolving the target. Inspect an output skill only when the user explicitly names that output skill as the target.
target_queue and target_skill_dir are transient labels for the current run only. Do not write queue files, target files, evolution logs, archives, registries, status files, or other tracking artifacts unless the user explicitly asks. Persist only the intended edits to target skill files and the reset of that target's learnings.md.
</context_boundaries>
<change_targets> Choose the target file by the kind of learning:
description when trigger matching or intended use was wrong.context_budget when the skill now requires more or less loaded context.SKILL.md objective, principles, routing, process, or success criteria when the learning affects every run or changes the skill's core behavior.SKILL.md.<preservation_rules> Evolve and Create Skill must work in tandem:
SKILL.md concise; promote detail outward to workflows or references when the stable core would become noisy.<functional_validation> Before clearing learnings, verify:
name, description, and context_budget.description still says when to use the skill in concrete trigger language.SKILL.md through explicit required reading, routing, or process instructions.<reset_template>
After evolution is complete, reset the target learnings.md to:
# Learnings
Append entries in this parseable shape:
- date: YYYY-MM-DD
trigger: What happened during execution
issue: What failed, changed, surprised the agent, or upset the user
resolution: What worked
future_rule: What to do differently next time
</reset_template>
<success_criteria>
target_queue or reported as ambiguous/missingtarget_skill_dirSKILL.md and learnings.md were readSKILL.md still routes and executes clearlylearnings.md was reset only after that target's entries were handled<learning_capture>
A learning is an actionable discovery from executing this skill that should change future runs. Save one dated, atomic entry to this skill's learnings.md when execution hits friction: repeated failed searches, changed data/tool structure, unexpected behavior, resolved errors, or a user correction/preference signal. Include the trigger, what failed or changed, the successful resolution, and the future rule. Do not save project facts, transient task details, or outputs that belong in deliverables.
</learning_capture>