技能 Evolve
- 作者仓库星标 479
- 作者仓库 UniClipboard
Skill Evolve
Turn real-world experience into durable skill knowledge.
When to Use
User invokes this skill after completing work that revealed a gap, pitfall, or new pattern not yet captured in an existing SKILL.md. Typical trigger: /skill-evolve @path/to/SKILL.md
Procedure
Step 1 — Gather Context
- Read the referenced SKILL.md in full.
- Review the current conversation to identify:
- What went wrong or was discovered (the incident/finding)
- Root cause (why it happened)
- The fix or pattern (what the correct approach is)
- Why the existing skill didn't prevent it (the gap)
Step 2 — Classify the Learning
Determine which type of update is needed:
| Type | Description | Example |
|---|---|---|
| New Rule | A pattern/anti-pattern not covered at all | .entered() in async is forbidden |
| Rule Refinement | Existing rule needs caveats or edge cases | skip_all needed when params include trait objects |
| New Example | Correct/incorrect code pattern to illustrate existing rule | async {}.instrument(span).await for match arms |
| Checklist Addition | New review checkpoint | ".entered() held across .await? FORBIDDEN" |
| Section Expansion | Existing section needs a new subsection | Adding async lifecycle patterns to spawn section |
Step 3 — Draft the Update
Write the proposed additions following these principles:
- Match the existing style — same heading levels, table formats, code block conventions
- Place it where it belongs — near related content, not appended randomly at the end
- Lead with the rule, then the why, then the example
- Include both CORRECT and FORBIDDEN patterns when adding anti-patterns
- Keep it concise — skills are reference material, not tutorials
Step 4 — Apply and Summarize
- Edit the SKILL.md with the new content.
- Present a summary to the user:
## Skill Evolution Summary
**Skill**: <skill name>
**Trigger**: <what happened that revealed the gap>
**Update type**: <New Rule | Rule Refinement | New Example | Checklist Addition | Section Expansion>
**What was added**:
- <bullet summary of each change>
**Section(s) modified**: <list of modified section numbers/names>
Quality Gates
Before applying the update, verify:
- The new content does NOT duplicate existing rules (check the full SKILL first)
- The new content is grounded in a real incident from this conversation (not hypothetical)
- Code examples compile conceptually (correct syntax, realistic types)
- The learning is generalizable — useful beyond this one specific case
- If adding a FORBIDDEN pattern, a CORRECT alternative is shown alongside it
Anti-Patterns for This Skill
- Don't bloat: If the learning is too narrow or one-off, suggest the user add it to memory instead of a skill
- Don't rewrite: Evolve the skill incrementally. Don't restructure or rewrite existing sections unless they are wrong
- Don't speculate: Only add patterns that were validated in practice during this conversation
- Don't duplicate: If the fix was specific to one codebase and not transferable, it belongs in CLAUDE.md, not a skill
- 流狐分类
- 数据
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @UniClipboard · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Read the referenced SKILL.md in full. Review the current conversation to identify: What went wrong or was discovered (the incident/finding)
Determine which type of update is needed: Type · Description · Example New Rule · A pattern/anti-pattern not covered at all · .entered() in async is forbidden
Write the proposed additions following these principles: Match the existing style — same heading levels, table formats, code block conventions Place it where it belongs — near related content, not appended randomly at the end
Edit the SKILL.md with the new content. Present a summary to the user:
# Skill Evolve
Turn real-world experience into durable skill knowledge.
## When to Use
User invokes this skill after completing work that revealed a gap, pitfall, or new pattern not yet captured in an existing SKILL.md. Typical trigger: `/skill-evolve @path/to/SKILL.md`
## Procedure
### Step 1 — Gather Context
1. Read the referenced SKILL.md in full.
2. Review the current conversation to identify:
- **What went wrong or was discovered** (the incident/finding)
- **Root cause** (why it happened)
- **The fix or pattern** (what the correct approach is)
- **Why the existing skill didn't prevent it** (the gap)
### Step 2 — Classify the Learning
Determine which type of update is needed:
| Type | Description | Example |
| ---------------------- | ---------------------------------------------------------- | --------------------------------------------------- |
| **New Rule** | A pattern/anti-pattern not covered at all | `.entered()` in async is forbidden |
| **Rule Refinement** | Existing rule needs caveats or edge cases | `skip_all` needed when params include trait objects |
| **New Example** | Correct/incorrect code pattern to illustrate existing rule | `async {}.instrument(span).await` for match arms |
| **Checklist Addition** | New review checkpoint | "`.entered()` held across `.await`? FORBIDDEN" |
| **Section Expansion** | Existing section needs a new subsection | Adding async lifecycle patterns to spawn section |
### Step 3 — Draft the Update
Write the proposed additions following these principles:
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> When to Use → Procedure → Step 1 — Gather Context → Step 2 — Classify the Learning → Step 3 — Draft the Update → Step 4 — Apply and Summarize
要点 -> What went wrong or was discovered · Root cause · The fix or pattern · Why the existing skill didn't prevent it · New Rule · Rule Refinement · New Example · Checklist Addition
文件/命令 -> /skill-evolve @path/to/SKILL.md · .entered() · skipall · async {}.instrument(span).await · .await
内容 SHA-256 -> 2b372d3a3e2b
方法与流程
适用与边界
原文中的明确线索
/skill-evolve @path/to/SKILL.md、.entered()、skipall、async {}.instrument(span).await、.await