_evolution-core
📌 技能描述
- •用途:把“经验总结与改进”变成可执行流程。
- •适用场景:出现重复错误、用户反馈指出偏差、某类任务反复耗时或高风险。
- •学习来源:SilentFeed 项目进化宪法实践。
🔍 触发条件(任一命中即可触发)
- •重复错误:同类错误在同一会话或多个会话出现。
- •用户反馈:用户明确指出行为不符合预期。
- •复杂工作流:同类任务反复耗时/高风险/易错。
- •技能失效:已使用某个技能,但流程仍失败或产生偏差(如脚本/工具报错、遗漏关键步骤)。
✅ 执行流程(6 步)
- •识别:用一句话描述问题与触发类型。
- •归因:找出根因(流程缺失/类型误解/工具使用不当)。
- •抽象:提炼为可复用规则或流程。
- •落地:
- •若是通用规则 → 更新
.github/copilot-instructions.md(宪法/指南层)。 - •若是可复用流程 → 创建或改进技能文件(
.evolution-skills/.../SKILL.md)。
- •若是通用规则 → 更新
- •登记:
- •在
.github/copilot-instructions.md的"自定义技能库"表格中记录 - •在
AGENTS.md的<project_skills>部分添加技能定义(见下文)
- •在
- •验证:在后续工作中应用该改进,并确认问题不再复现。
🤖 自动进化要求(新增)
当触发 技能失效 时,必须执行以下补救动作(不可跳过):
- •定位失效点:指出是“技能步骤缺失”还是“执行路径与技能不一致”。
- •立即修正技能:在对应
SKILL.md中补充缺失步骤或纠正规则。 - •补充范式:在技能中加入“失败样例 → 正确样例”对照。
- •标注注意事项:将导致失败的关键前置条件写入技能“常见问题/检查清单”。
- •自检记录:在本次响应中显式说明“已触发自动进化并完成修正”。
🧭 输出决策
- •创建新技能:当规则需要独立沉淀、可长期复用。
- •改进现有技能:当问题是既有技能的缺口或变体。
- •更新指令:当规则应成为“宪法级/指南级”行为规范。
🧰 快速检查清单
- • 触发条件是否明确?(重复错误/用户反馈/复杂工作流)
- • 根因是否可复用?
- • 是否需要新技能?如果否,是否应更新指令?
- • 是否已在技能表中登记?
- • 是否完成后验验证?
💡 命名约定(建议)
- •项目自定义技能统一加前缀
_,例如:_evolution-core。 - •前缀用于与 OpenSkills 官方技能区分。
- •如需按领域分类,可使用
_evo-、_proj-等统一前缀策略。
📝 例子
场景:TypeScript mock 重复报错。
- •触发:重复错误
- •处理:创建
_typescript-type-safety技能 - •登记:加入自定义技能表格 + AGENTS.md
- •验证:后续 mock 错误显著减少
场景 2:频繁在命令行中写长篇提交说明导致问题。
- •触发:重复错误 + 用户反馈
- •处理:创建
_git-commit技能(参考 pr-creator 思路) - •登记:加入技能表格和 AGENTS.md(自定义技能部分)
- •验证:后续提交都遵循规范,无命令行问题
🔍 进化机会识别指南
识别模式 A: 重复错误
当在同一个会话或连续的会话中遇到相同或相似的错误时:
code
会话 1: 错误 A 出现 → 修复 会话 2: 错误 A 再次出现(或变体) → 🚩 技能创建机会 行动: 1. 分析为什么会重复出现 2. 提取通用的预防措施 3. 创建技能文件 4. 更新 Copilot 指令中的快速检查清单
识别模式 B: 用户反馈
当用户指出某个行为不符合预期时:
code
用户反馈: "你应该先查看类型定义,而不是直接写 mock"
↓
理解: 发现了我的工作流程中的缺陷
↓
改进: 将用户的建议编码为技能和指令
↓
验证: 在后续工作中应用改进
行动清单:
- • 理解用户的具体指点
- • 分析为什么我的做法不够好
- • 思考是否这个问题有通用性
- • 如果通用,创建或改进技能
- • 更新 Copilot 指令
- • 在下次遇到时验证改进是否有效
识别模式 C: 复杂工作流
当发现某个类型的任务总是费时或容易出错时:
code
观察: 每次处理 React 组件时都会踩某些坑
↓
分析: 这些坑有共同的根本原因吗?
↓
如果是: 创建 React 组件相关的技能
如果否: 记录为常见坑位
🚀 技能创建决策树
code
遇到问题
│
├─ 这个问题会重复出现吗?
│ ├─ 否 → 记录为常见坑位
│ └─ 是 → 继续
│
├─ 问题的解决有通用的模式吗?
│ ├─ 否 → 记录为项目特定的细节
│ └─ 是 → 继续
│
├─ 这个模式是否复杂到需要详细说明?
│ ├─ 否 → 添加到 Copilot 指令的快速检查清单
│ └─ 是 → 继续
│
└─ 创建新技能!
├─ 取一个清晰的名字
├─ 编写完整的 SKILL.md
├─ 添加到本指令文件的技能表格
└─ 在相关工作中验证
🔧 技能维护指南
如何在 AGENTS.md 中注册新技能
当创建新的自定义技能后,需要在 AGENTS.md 中手动添加:
位置:AGENTS.md 的 <project_skills> 部分(在 <!-- PROJECT_SKILLS_START --> 和 <!-- PROJECT_SKILLS_END --> 之间)
格式:
xml
<skill> <name>_your-skill-name</name> <description>技能的简要描述,说明用途、适用场景、核心能力</description> <location>project</location> <path>.evolution-skills/_your-skill-name/SKILL.md</path> </skill>
要点:
- •
<name>使用_前缀(区分自定义技能) - •
<description>简明扼要,突出核心价值 - •
<location>固定为project - •
<path>提供完整的相对路径
为什么手动维护:
- •
.evolution-skills/不由 OpenSkills 管理 - •
openskills sync只更新<available_skills>部分 - •
<project_skills>部分是项目特定的,不会被覆盖
📚 参考资料
本技能是 SilentFeed 项目 AI 进化系统的一部分,相关文档:
核心文档
- •
.github/copilot-instructions.md- AI 系统进化宪法(根本法则) - •
.github/AI_EVOLUTION_SYSTEM.md- 进化系统完整说明(架构与机制) - •
.github/COPILOT_CONSTITUTION.md- 宪法框架的元文档(设计理念)
知识库
- •
.github/type-error-patterns.md- TypeScript 错误模式库(沉淀的错误模式) - •
.github/ERROR_ANALYSIS_SESSION.md- 错误分析会话案例(历史记录) - •
.github/ARCHITECTURE_EVOLUTION.md- 架构演进说明(转变历程)
文档与技能的关系
- •文档 = "为什么"和"是什么"(说明性、知识性)
- •技能 = "怎么做"(执行性、操作性)
- •技能引用文档,但不替代文档
- •文档在
.github/,技能在.evolution-skills/
📝 案例库
案例 1:TypeScript Mock 数据创建错误
场景:多次测试中遇到类型不匹配的 mock 数据。
- •触发条件:重复错误(同类型错误在多个测试文件出现)
- •根因分析:mock 工厂函数缺少类型严格性检查
- •输出决策:创建新技能
_typescript-type-safety - •验证:后续 test 文件遵循技能规范,类型错误减少 80%
案例 2:Git 提交说明格式不规范
场景:用户反馈提交是使用 AI 技能生成的,但缺少技能签名。
- •触发条件:用户反馈("你的提交工作并没有使用你创建的 AI 技能")
- •根因分析:_git-commit 技能的签名行要求不够强制,缺少检查清单项
- •改进内容:
- •升级签名要求从"建议"→ "❗ 关键步骤"
- •添加新的第 5 步"添加技能签名行"(强制)
- •快速检查清单新增项:
❗ 是否在末尾添加了技能签名行?
- •输出决策:强化现有技能
_git-commit(而非创建新技能) - •验证:后续提交都遵循签名规范,例如提交 fefa83c
案例 3:指令文件混合通用与项目特定内容
场景:copilot-instructions.md 文件混乱,难以区分哪些是通用框架、哪些是项目特定。
- •触发条件:复杂工作流(文件达到 400+ 行,难以维护)
- •根因分析:缺少明确的分层设计(战略层 vs 战术层 vs 执行层)
- •改进内容:
- •重新组织为三部分:Part 1(通用)/ Part 2(项目特定)/ Part 3(技能系统)
- •添加清晰的部分分隔和说明
- •提取重复内容到技能文件
- •输出决策:更新指令(宪法级,影响深远)
- •验证:文件从 432→158→214 行,结构更清晰;相关技能也得到强化
🔄 改进建议
- •目前技能路径固定为
.evolution-skills/,未来可考虑按领域分类 - •当技能数量增多时,可在 AGENTS.md 中按类别分组
- •考虑添加技能依赖关系声明(如某技能依赖另一技能)
- •可创建"技能进化历史"文档,记录每个技能的版本演变