인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
개발 및 엔지니어링 · SKILL.md

evolve-skill

evolve-skill

通过就地完善或创建高级变体来演进现有技能。涵盖评估当前技能、收集演进需求、 选择范围(完善 vs. 变体)、应用更改、更新版本元数据,以及同步注册表和 交叉引用。适用于技能步骤过时、用户反馈揭示不足、技能需要提升复杂度、 需要在原版旁边创建高级变体,或相关技能被添加导致交叉引用过期时。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: evolve-skill description: > 通过就地完善或创建高级变体来演进现有技能。涵盖评估当前技能、收集演进需求、 选择范围(完善 vs. 变体)、应用更改、更新版本元数据,以及同步注册表和 交叉引用。适用于技能步骤过时、用户反馈揭示不足、技能需要提升复杂度、 需要在原版旁边创建高级变体,或相关技能被添加导致交叉引用过期时。 locale: zh-CN source_locale: en source_commit: 33b561c9 translator: claude-opus-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.1" domain: general complexity: intermediate language: multi tags: meta, skill, agentskills, maintenance, evolution, versioning

演进现有技能

改进、扩展或创建最初用 create-skill 编写的技能的高级变体。此流程涵盖技能生命周期的维护方面:评估不足、应用有针对性的改进、更新版本,以及保持注册表和交叉引用同步。

适用场景

  • 技能的步骤在工具变更后已过时或不完整
  • 用户反馈揭示缺失的问题、不清晰的步骤或薄弱的验证
  • 技能需要从基础升级到中级(或中级升级到高级)
  • 需要在原版旁边创建高级变体(例如 create-r-package 和 create-r-package-advanced)
  • 相关技能被添加或删除,交叉引用已过期

输入

  • 必需:要演进的现有 SKILL.md 路径
  • 必需:演进触发原因(反馈、工具变更、复杂度提升、新相关技能、发现的问题)
  • 可选:若要更改复杂度,目标复杂度级别(basic、intermediate、advanced)
  • 可选:是否创建高级变体而非就地完善(默认:就地完善)

步骤

第 1 步:评估当前技能

读取现有 SKILL.md,并对照质量检查清单评估每个章节:

章节检查内容常见问题
前置元数据所有必需字段存在,description < 1024 字符缺少 tags,version 过期
When to Use3-5 个具体触发条件触发条件模糊或重叠
Inputs必需与可选明确分离可选输入缺少默认值
Procedure每步有代码 + Expected + On failure缺少 On failure 块,使用伪代码而非真实命令
Validation每项为二元通过/失败主观标准("代码是干净的")
Common Pitfalls3-6 个包含原因和规避方法过于笼统("小心 X")
Related Skills2-5 个有效技能引用指向已重命名/删除技能的过期引用
# Read the skill
cat skills/<skill-name>/SKILL.md

# Check frontmatter parses
head -20 skills/<skill-name>/SKILL.md

# Verify related skills still exist
grep -oP '`[\w-]+`' skills/<skill-name>/SKILL.md | sort -u

预期结果: 列出具体的不足、弱点或改进机会。

失败处理: 若 SKILL.md 不存在或没有前置元数据,此技能不适用——改用 create-skill 从头编写。

第 2 步:收集演进需求

识别并分类触发演进的原因:

触发原因示例典型范围
用户反馈"第 3 步不清楚"完善
工具变更新 API 版本,命令已弃用完善
发现问题未记录的常见失败完善
复杂度提升技能对实际使用太浅完善或变体
新相关技能添加了相邻技能完善(交叉引用)
高级用例高级用户需要更深入的覆盖变体

在编辑前记录所需的具体更改,每项更改对应其目标章节。

预期结果: 具体的更改列表(例如"为第 4 步添加 On failure"、"添加新的第 6 步处理边界情况 X"、"更新 Related Skills 包含 new-skill")。

失败处理: 若更改不明确,在继续之前向用户请求澄清。模糊的演进目标只会产生模糊的改进。

第 3 步:选择演进范围

使用此决策矩阵确定就地完善还是创建变体:

标准完善(就地)高级变体(新技能)
技能 ID不变新 ID:<skill>-advanced
文件路径同一 SKILL.md新目录
版本更新次要(仅在破坏性变更时为主要)从 1.0 开始
复杂度可能提高高于原版
注册表无新条目添加新条目
符号链接无变化需要新符号链接
原始技能直接修改保持不变,获得交叉引用

完善:当改进质量、修复不足或添加适量新内容时选择。技能保持其身份。

变体:当演进版本会使长度翻倍、改变目标受众或需要实质上不同的输入时选择。原版保持不变用于更简单的用例。

预期结果: 明确的决定——完善或变体——及其理由。

失败处理: 若不确定,默认选择完善。以后总可以提取变体;反之则难以合并。

第 4 步:应用内容更改

对于完善

直接编辑现有 SKILL.md:

  • 打开编辑
  • 添加/修改步骤
  • 强化 Expected/On failure 对
  • 添加表格或示例
  • 更新 When to Use 触发条件
  • 若范围改变则修改 Inputs

遵循以下编辑规则:

  • 保留所有现有章节——添加内容,不删除章节
  • 插入后保持步骤编号连续
  • 每个新增或修改的步骤必须有 Expected 和 On failure
  • 新问题添加到 Common Pitfalls 章节末尾
  • 新相关技能添加到 Related Skills 章节末尾

对于变体

# Create the variant directory
mkdir -p skills/<skill-name>-advanced/

# Copy the original as a starting point
cp skills/<skill-name>/SKILL.md skills/<skill-name>-advanced/SKILL.md

# Edit the variant:
# - Change `name` to `<skill-name>-advanced`
# - Update `description` to reflect the advanced scope
# - Raise `complexity` (e.g., intermediate → advanced)
# - Reset `version` to "1.0"
# - Add/expand procedure steps for the advanced use case
# - Reference the original in Related Skills as a prerequisite

预期结果: SKILL.md(完善版或新变体)通过第 1 步的评估检查清单。

失败处理: 若步骤编辑破坏了文档结构,使用 git diff 查看更改,并用 git checkout -- <file> 回退部分编辑。

第 4.5 步:同步已翻译的变体

当存在翻译时必须执行。 本步骤同时适用于人类作者和遵循此流程的 AI 智能体。不要跳过——过期的 source_commit 值会导致 npm run validate:translations 在所有语言环境中报告错误的过期警告。

检查此已演进技能是否存在翻译,并将其更新以反映新的源状态:

# Check for existing translations
ls i18n/*/skills/<skill-name>/SKILL.md 2>/dev/null

若存在翻译

  1. 获取当前源提交哈希:
npm run validate:translations
  1. 更新每个已翻译文件前置元数据中的 source_commit:
npm run check:fence-propagation -- --id <skill-name>
node tools/provenance-field.mjs --field fence_basis_commit --set $(git rev-parse --short HEAD) <mirror paths>
  1. 在提交消息中标记受影响的语言环境,以标记文件需要重新翻译:
evolve(<skill-name>): <更改说明>

Translations flagged for re-sync: de, zh-CN, ja, es
Changed sections: <列出发生变化的章节>
  1. 重新生成翻译状态文件:
npm run translation:status

若不存在翻译

无需操作。继续第 5 步。

针对变体

推迟新变体的翻译,直到变体稳定(1-2 个版本)。翻译 v1.0 的变体在到达 v1.2 时可能已大幅变化,属于浪费精力。在变体至少经过一次完善之后再添加翻译。

预期结果: 所有已翻译文件的 source_commit 更新到当前提交。提交消息注明哪些语言环境需要重新翻译,以及哪些章节发生了变化。npm run translation:status 以 0 退出。

失败处理: 若 sed 无法匹配前置元数据字段,已翻译文件可能采用了非标准格式。手动打开并确认其 YAML 前置元数据中包含 source_commit。若字段缺失,该文件未被正确生成——使用 npm run translate:scaffold 重新生成。

第 5 步:更新版本和元数据

更新前置元数据中的 version 字段:

更改类型版本更新示例
修正错别字、措辞澄清次要:1.0 → 1.1修正第 3 步中不清晰的句子
新步骤、新问题、新表格次要:1.0 → 1.1添加了第 7 步处理边界情况
重构流程、更改输入主要:1.0 → 2.0从 5 步重组为 8 步

同时更新:

  • 若范围扩展则更新 complexity(例如 basic → intermediate)
  • 若覆盖范围改变则更新 tags
  • 若技能范围有实质性不同则更新 description

预期结果: 前置元数据 version 反映更改的规模。新变体从 "1.0" 开始。

失败处理: 若忘记更新版本,下次演进时将无法区分当前状态与之前状态。提交前务必更新版本。

第 6 步:更新注册表和交叉引用

对于完善

不需要注册表更改(路径未改变)。仅当其他技能的 Related Skills 发生变化时更新交叉引用:

# Check if any skill references the evolved skill
grep -r "<skill-name>" skills/*/SKILL.md

对于变体

在 skills/_registry.yml 中添加新技能:

- id: <skill-name>-advanced
  path: <skill-name>-advanced/SKILL.md
  complexity: advanced
  language: multi
  description: One-line description of the advanced variant

然后:

  1. 在注册表顶部递增 total_skills
  2. 在原始技能的 Related Skills 中添加指向变体的交叉引用
  3. 在变体的 Related Skills 中添加指向原版的交叉引用
  4. 为斜杠命令发现创建符号链接:
# Project-level
ln -s ../../skills/<skill-name>-advanced .claude/skills/<skill-name>-advanced

# Global
ln -s /mnt/d/dev/p/agent-almanac/skills/<skill-name>-advanced ~/.claude/skills/<skill-name>-advanced

预期结果: 注册表 total_skills 与 find skills -name SKILL.md | wc -l 匹配。交叉引用是双向的。

失败处理: 若注册表数量有误,运行 find skills -name SKILL.md | wc -l 获取真实数量并更正注册表。对于失效符号链接,使用 readlink -f 调试解析。

第 7 步:验证演进后的技能

运行完整验证检查清单:

  • SKILL.md 存在于预期路径
  • YAML 前置元数据解析无误
  • version 已更新(完善)或设为 "1.0"(变体)
  • 所有章节存在:When to Use、Inputs、Procedure、Validation、Common Pitfalls、Related Skills
  • 每个步骤都有 Expected 和 On failure 块
  • Related Skills 引用有效、现存的技能名称
  • 注册表条目存在且路径正确(仅变体)
  • total_skills 数量与磁盘上的实际技能数匹配
  • 符号链接解析正确(仅变体)
  • git diff 显示无意外的原始内容删除
# Verify frontmatter
head -20 skills/<skill-name>/SKILL.md

# Count skills on disk vs registry
find skills -name SKILL.md | wc -l
grep total_skills skills/_registry.yml

# Check symlinks (for variants)
ls -la .claude/skills/<skill-name>-advanced
readlink -f .claude/skills/<skill-name>-advanced/SKILL.md

# Review all changes
git diff

预期结果: 所有检查清单项通过。演进后的技能已准备好提交。

失败处理: 逐项处理每个失败项。演进后最常见的问题是 total_skills 数量过期——始终最后验证它。

验证清单

  • SKILL.md 存在且有有效的 YAML 前置元数据
  • version 字段反映所做的更改
  • 所有步骤都有 Expected 和 On failure 块
  • Related Skills 引用有效(无失效的交叉引用)
  • 注册表 total_skills 与磁盘上的实际数量匹配
  • 对于变体:_registry.yml 中有正确路径的新条目
  • 对于变体:在 .claude/skills/ 和 ~/.claude/skills/ 创建了符号链接
  • git diff 确认无意外的内容删除

常见问题

  • 忘记更新版本:没有版本更新,就无法追踪更改的内容和时间。提交前始终更新 version。
  • 意外删除内容:重构步骤时,很容易丢失 On failure 块或表格行。提交前始终审查 git diff。
  • 过期的交叉引用:创建变体时,原版和变体都需要相互引用。单向引用使关联图不完整。
  • 注册表数量偏移:创建变体后,total_skills 数量必须递增。遗忘会导致其他检查注册表的技能出现验证失败。
  • 完善时范围蔓延:使技能长度翻倍的完善应该是变体。若要添加超过 3 个新步骤,重新考虑第 3 步中的范围决策。
  • 避免在 NTFS 挂载路径上使用 git mv(WSL):在 /mnt/ 路径上,目录的 git mv 可能创建权限损坏(d?????????)。改用 mkdir -p + 复制文件 + git rm 旧路径。参见环境指南故障排除章节。

相关技能

  • create-skill — 创建新技能的基础;evolve-skill 假设最初遵循了此流程
  • commit-changes — 用描述性消息提交演进后的技能
  • configure-git-repository — 版本控制的技能更改
  • security-audit-codebase — 审查演进后的技能中是否意外包含密钥
저장한 Skills