Skill Self-Evolution Enhancer
This skill enables other skills to gain self-evolution capabilities similar to self-improving-agent. A skill that originally has no self-evolution will, after enhancement, have: logging, learning from user feedback, promotion to rules, and a Review→Apply→Report loop—all tailored to its domain.
Quick Reference
| Step | Action |
|---|---|
| User requests evolution for skill X | Read target skill's SKILL.md |
| Deep analysis | Identify capabilities, scenarios, evolution directions |
| Extract domain | Name, use cases, triggers, areas, promotion targets |
| Generate .learnings/ | Domain-specific LEARNINGS.md, ERRORS.md, FEATURE_REQUESTS.md |
| Generate EVOLUTION.md | Triggers, Review-Apply-Report, OpenClaw feedback rules |
| Language | Match target skill's user language (infer from SKILL.md) |
When to Use
- User says: "给 skill X 加上自进化能力" / "Add self-evolution to skill X"
- Scaling self-improvement across many skills (each with its own evolution direction)
- Target skill is non-coding (e.g., 洗稿能手, 电脑加速) and needs domain-specific triggers
Workflow
Step 1: Read Target Skill
Read(target_skill_path/SKILL.md)
Obtain path from user or infer (e.g., skills/xxx, ~/.cursor/skills/xxx).
Step 2: Deep Capability & Scenario Analysis
Before generating any config, analyze the target skill deeply:
Capabilities (what the skill does):
- Primary outputs and workflows
- Secondary or edge capabilities
- Dependencies (tools, APIs, formats)
Scenarios (when and how it is used):
- User personas
- Typical tasks (e.g., 科普改写 vs 汇报改写)
- Input/output patterns
Evolution directions (what can improve):
- User feedback patterns (e.g., "改得不通顺" → style)
- Failure modes (e.g., "优化无效" → strategy)
- Recurring corrections → domain-specific rules
Use cases → infer from description, Quick Reference, examples
Step 3: Extract Domain Config
When reading the target skill, extract:
| Field | Where to Find | Example |
|---|---|---|
| Domain name | name in frontmatter, title | 洗稿能手, 电脑加速 |
| Use cases / scenarios | Description, Quick Reference, examples | 科普、汇报、直播 |
| Learning triggers | User feedback phrases in examples | "改得不通顺", "不像口播", "风格不对" |
| Error triggers | Failure modes | "优化无效", "某些电脑不适用", "报错" |
| Areas | Output types, workflow stages | 文案/口播/短视频脚本, 或 系统优化/卡顿/报错 |
| Promotion targets | Skill-specific rules | {skill}-专属进化规则.md, {skill}-最佳实践.md |
Language: Infer from SKILL.md content (Chinese vs English). Generate all output files in that language.
Use assets/DOMAIN-CONFIG-TEMPLATE.md to structure the extracted data.
Step 4: Generate .learnings/
Create inside target skill directory: target_skill_path/.learnings/
Structure (same as self-improving-agent):
.learnings/LEARNINGS.md.learnings/ERRORS.md.learnings/FEATURE_REQUESTS.md
Use templates from assets/; parameterize with domain areas, categories, promotion targets. Write in the target skill's language.
Step 5: Generate EVOLUTION.md
Create target_skill_path/EVOLUTION.md using assets/EVOLUTION-RULES-TEMPLATE.md.
Must include:
- Quick Reference: domain triggers → actions
- Review→Apply→Report loop (see below)
- Detection triggers (when to log)
- Promotion decision tree
- Area tags
- Domain-specific activation conditions (for hooks)
- Experience invalidation / update rules (when user corrects again)
Step 6: Optional – Activator Script
If target skill has scripts/, add scripts/activator.sh with domain-specific reminder text. Adapt from self-improving-agent; replace generic prompts with domain triggers.
Review → Apply → Report Loop
The enhanced skill must use learnings, not only log them. Include this in EVOLUTION.md or the enhanced skill's instructions:
Before Task
- Load relevant entries from
.learnings/LEARNINGS.md(and ERRORS.md if applicable) - Filter by area, tags, or keywords
- Note which entries apply to the current task
During Task
- Apply learnings when relevant
- Optionally annotate output: "本次参考了 [LRN-xxx]: ..." (or equivalent in target language)
After Task
- Summarize for user: which learnings were used, what evolution result, what improvement
- Let OpenClaw decide: per-use mention vs end-of-task summary
Example (Chinese): "本次改写了口播稿,参考了经验 [LRN-20250115-001](科普场景应避免过于书面),相比之前更口语化。"
Example (English): "Used learning [LRN-20250115-001] (avoid formal tone for科普) in this rewrite; output is more conversational than before."
User Preference vs Domain Best Practice
| Type | Storage | Example |
|---|---|---|
| User preference | MEMORY.md (user-level) | "This user prefers shorter sentences" |
| Domain best practice | .learnings/LEARNINGS.md | "科普场景应避免过于书面" |
Evolution is driven by user feedback; log and promote based on user corrections and recurring patterns.
OpenClaw Active Feedback
Add to the enhanced skill or SOUL.md/AGENTS.md:
- When using experience from
.learnings/, briefly tell the user - At end of task, optionally summarize: evolution used, improvements
- Let OpenClaw decide when to surface (per-use vs summary)
See references/openclaw-feedback.md for SOUL.md and AGENTS.md snippets.
Experience Invalidation & Update
When user corrects again after a learning was applied:
- Add
Contradicted-By: LRN-YYYYMMDD-XXXto the original entry - Mark
Last-ValidorStatus: supersededif the learning is no longer valid - Increment
Recurrence-Countif the pattern recurs but the fix is different
Include in LEARNINGS template: Recurrence-Count, Last-Valid, Contradicted-By.
Domain Extraction Framework
Trigger Extraction
Learning triggers (user feedback → log to LEARNINGS.md):
- Look for: "用户说", "when user says", example dialogs
- Infer: common corrections, style mismatches, scene-specific preferences
- Add generic fallbacks: "不对", "不是这样", "改一下"
Error triggers (failures → log to ERRORS.md):
- Look for: "失败", "报错", "不适用", "when X fails"
- Infer: environment-specific failures, edge cases
- Add generic fallbacks: "操作失败", "未达到预期"
Area Mapping
Define 3–6 areas that partition the skill's scope. Use domain-specific areas, not coding areas.
Promotion Target Naming
{skill-name}-专属进化规则.md— evolution rules, style preferences{skill-name}-最佳实践.md— best practices{skill-name}-安全规范.md— safety constraints (e.g., 电脑加速)
Use kebab-case for skill name in filenames.
Logging Format (Reuse from Self-Improving-Agent)
ID format: LRN-YYYYMMDD-XXX, ERR-YYYYMMDD-XXX, FEAT-YYYYMMDD-XXX
Statuses: pending | in_progress | resolved | wont_fix | promoted | promoted_to_skill
For full entry formats, see the self-improving-agent skill's Logging Format section.
References
- assets/DOMAIN-CONFIG-TEMPLATE.md — Schema for domain config
- assets/EVOLUTION-RULES-TEMPLATE.md — EVOLUTION.md template
- references/domain-examples.md — 洗稿能手, 电脑加速 examples
- references/openclaw-feedback.md — SOUL.md, AGENTS.md snippets for active feedback
- scripts/generate-evolution.sh — Optional scaffold generator
Source
- Based on: self-improving-agent 3.0.1
- Purpose: Enable any skill to gain self-evolution capabilities similar to self-improving-agent