name: ai-factory.evolve description: 基于项目上下文、积累的补丁和代码库模式自我改进AI Factory技能。分析出错原因、有效方法,并增强技能以防止未来问题。当您想让AI为项目更智能时使用。 argument-hint: ‘[技能名称或"全部"]’ allowed-tools: 读取 写入 编辑 全局搜索 搜索 Bash(git *) 询问用户问题 问题 disable-model-invocation: true
进化 - 技能自我改进
分析项目上下文、补丁和代码库以改进现有技能。每次运行使AI Factory更智能。
核心思想
补丁(过去的错误) + 项目上下文 + 代码库模式
↓
分析重复问题、技术特定陷阱、项目惯例
↓
使用项目特定规则、防护措施和模式增强技能
工作流程
步骤0:加载上下文
读取 .ai-factory/DESCRIPTION.md 以了解:
- 技术栈
- 架构
- 惯例
步骤1:收集情报
1.1:读取所有补丁
全局搜索:.ai-factory/patches/*.md
读取每个补丁。对于每个,提取:
- 问题类别(空检查、异步、验证、类型、API、数据库等)
- 根本原因模式(犯了什么类型的错误)
- 预防规则(应该采取什么不同做法)
- 标签
1.2:聚合模式
按标签和类别分组补丁。识别:
- 重复问题 — 同一标签出现3次以上?这是系统性问题
- 技术特定陷阱 — 与栈相关的问题(例如,React重渲染、Laravel N+1)
- 缺失的防护措施 — 哪些检查/模式可以防止这些bug
1.3:读取代码库惯例
扫描项目以查找模式:
- 代码检查器配置(
.eslintrc、phpstan.neon、ruff.toml等) - 现有测试模式(测试文件结构、使用的断言)
- 错误处理模式(try/catch样式、错误类型)
- 日志模式(使用的日志记录器、格式、级别)
- 导入惯例、文件结构
步骤2:读取当前技能
确定要进化的技能:
- 如果
$ARGUMENTS包含特定技能名称 → 仅进化该技能 - 如果
$ARGUMENTS是“全部”或空 → 进化所有已安装技能
读取每个目标技能的 SKILL.md:
全局搜索:{{skills_dir}}/*/SKILL.md
如果技能尚未安装(无 {{skills_dir}}/),从源读取:
全局搜索:skills/*/SKILL.md
步骤3:分析差距
对于每个技能,基于收集的情报识别缺失内容:
3.1:补丁驱动的差距
比较补丁模式与技能指令:
/ai-factory.fix是否提及补丁中最常见的错误类别?如果没有 → 添加/ai-factory.implement是否警告在补丁中发现的陷阱?如果没有 → 添加防护/ai-factory.task是否包含问题区域的日志/验证要求?如果没有 → 增强/ai-factory.review是否检查导致bug的模式?如果没有 → 添加检查项
3.2:技术栈差距
比较项目技术栈与技能指令:
- 技能引用通用模式但项目使用特定框架? → 添加框架特定指导
- 项目使用TypeScript但技能显示JS示例? → 更新示例
- 项目使用特定ORM(Prisma、Eloquent)? → 添加ORM特定模式
3.3:惯例差距
比较项目惯例与技能指令:
- 项目有特定错误处理模式? → 技能应强制执行
- 项目使用特定日志记录器? → 技能应引用
- 项目有特定文件结构? → 技能应遵循
步骤4:生成改进
对于每个发现的差距,创建具体改进:
## 改进:[技能名称]
### 什么
[要做的具体更改]
### 为什么
[哪些补丁/模式驱动此更改]
### 在哪里
[SKILL.md中要修改的确切部分]
### 更改
[要添加/修改的实际文本]
改进的质量规则:
- 每个改进必须可追溯到补丁、惯例或技术栈事实
- 无通用建议 — 仅项目特定增强
- 改进必须最小化和聚焦 — 不要重写整个技能
- 保留现有技能结构 — 添加,不要替换
步骤5:呈现与应用
5.1:向用户呈现改进
## 技能进化报告
基于:
- X 个补丁分析
- Y 个重复模式发现
- Z 个技术栈特定洞察
### 提议的改进
#### /ai-factory.fix
1. **添加空检查防护** — 5个补丁涉及空引用
→ 添加到步骤2:“在访问嵌套属性前检查可选/可空字段”
2. **添加异步/等待模式** — 3个补丁涉及未处理承诺
→ 添加到重要规则:“始终使用try/catch与async/await”
#### /ai-factory.implement
1. **添加Prisma特定警告** — 2个补丁来自不正确Prisma查询
→ 添加到日志记录:“在DEBUG模式下记录所有Prisma查询”
#### /ai-factory.review
1. **添加检查项** — 未检查可选链
→ 添加到正确性:“可空关系的可选链”
应用这些改进?
- [ ] 是,应用全部
- [ ] 让我选择哪些
- [ ] 否,仅保存报告
5.2:应用批准的改进
对于每个批准的改进:
- 读取目标 SKILL.md
- 使用
编辑应用更改 - 保持更改最小化和精准
5.3:保存进化日志
创建 .ai-factory/evolutions/YYYY-MM-DD-HH.mm.md:
mkdir -p .ai-factory/evolutions
# 进化:YYYY-MM-DD HH:mm
## 情报摘要
- 补丁分析:X
- 重复模式:[列表]
- 技术栈:[从DESCRIPTION.md]
## 应用的改进
### [技能名称]
- [更改描述] ← 由补丁驱动:[补丁文件名]
### [技能名称]
- [更改描述] ← 驱动自:[技术栈 / 惯例]
## 识别的模式
- [模式]:[频率] 次出现
- [模式]:[频率] 次出现
步骤6:建议后续行动
## 进化完成
改进的技能:X
应用的改进:Y
### 推荐
1. **运行 `/ai-factory.review`** 在最近代码上以验证改进
2. **下次进化** — 在5-10个更多修复后再次运行 `/ai-factory.evolve`
3. **考虑新技能** — 如果模式X持续重复,创建专用技能:
`/ai-factory.skill-generator <技能名称>`
上下文清理
读取所有补丁和技能后上下文较重。所有改进已保存 — 建议释放空间:
询问用户问题:在继续前释放上下文?
选项:
1. /clear — 完全重置(推荐)
2. /compact — 压缩历史
3. 保持原样
每个技能可以学习的内容
| 技能 | 从何学习 | 示例增强 |
|---|---|---|
/ai-factory.fix |
补丁 → 常见错误 | “在访问Y前检查X” |
/ai-factory.implement |
补丁 → 预防规则 | “创建模型时,始终验证Z” |
/ai-factory.task |
补丁 → 日志差距 | “为可空字段添加验证任务” |
/ai-factory.review |
补丁 → 遗漏问题 | “检查:所有可选关系是否空安全?” |
/ai-factory.commit |
代码库 → 惯例 | “使用项目的提交前缀格式” |
/ai-factory.feature |
代码库 → 模式 | “基于项目惯例的默认分支前缀” |
重要规则
- 可追溯 — 每个改进必须链接到补丁、惯例或技术事实
- 最小化 — 添加规则,不要重写技能
- 可逆 — 用户批准前不应用更改
- 累积 — 每次进化基于先前进化
- 无幻觉 — 仅建议有证据支持的改进
- 保留结构 — 不更改技能工作流程,仅丰富它
示例
示例1:空引用模式后的10个修复
/ai-factory.evolve fix
→ 发现6/10个补丁标记 #空检查
→ 改进:添加到 /ai-factory.fix 步骤2:
“优先检查:查找没有空防护访问的可选/可空字段。这是此项目中的首要bug来源。”
→ 改进:添加到 /ai-factory.review 检查清单:
“- [ ] 所有可空数据库字段在UI/API层有空检查”
示例2:有N+1问题的Laravel项目
/ai-factory.evolve 全部
→ 栈:Laravel + Eloquent(从DESCRIPTION.md)
→ 发现3个补丁标记 #n-plus-one #数据库
→ 改进:添加到 /ai-factory.implement 日志记录:
“启用查询日志记录:在DEBUG模式下使用DB::enableQueryLog()”
→ 改进:添加到 /ai-factory.review 检查清单:
“- [ ] 使用预加载处理相关模型(无N+1)”
→ 改进:添加到 /ai-factory.task 描述:
“在数据库相关任务中包含‘使用->with()处理关系’”
示例3:无补丁的首次运行
/ai-factory.evolve
→ 无补丁发现(首次运行)
→ 仅分析项目上下文...
→ 栈:Next.js 14 + Prisma + TypeScript
→ 改进:添加到 /ai-factory.implement:
“对突变使用服务器操作,对外部API使用API路由”
→ 改进:添加到 /ai-factory.fix:
“对于Prisma错误,首先检查schema.prisma中的字段类型”
→ 改进:添加到 /ai-factory.review:
“- [ ] 服务器组件不使用仅客户端的钩子”
请勿:
- 请勿重写整个技能
- 请勿移除现有规则
- 请勿添加通用建议(“写清洁代码”)
- 请勿创建新技能(建议使用
/ai-factory.skill-generator代替) - 请勿未经用户批准应用更改
- 请勿进化未安装在项目中的技能