名称: ai-factory.improve 描述: 通过第二次迭代精炼和增强现有的实施计划。重新分析代码库,检查差距、缺失任务、错误依赖,并提高计划质量。在 /ai-factory.task 或 /ai-factory.feature 之后使用,以在实施前抛光计划。 参数提示: “[改进提示或空用于自动审查]” 允许的工具: Read Write Edit Glob Grep Bash(git *) TaskCreate TaskUpdate TaskList TaskGet AskUserQuestion Questions 禁用模型调用: false
改进 - 计划精炼(第二次迭代)
通过重新分析代码库来精炼现有计划。找到差距、缺失任务、错误依赖,并增强任务质量。
核心概念
现有计划 + 深度代码库分析 + 用户反馈(可选)
↓
找到差距、缺失边缘情况、错误假设
↓
增强计划,有更好的任务、正确的依赖、更多细节
工作流程
步骤 0: 找到计划
使用以下优先级定位活动计划文件:
1. .ai-factory/PLAN.md 存在? → 使用它(来自直接 /ai-factory.task)
2. 没有 .ai-factory/PLAN.md → 检查当前 git 分支:
git branch --show-current
→ 将分支名转换为文件名:用 "-" 替换 "/",添加 ".md"
→ 查找 .ai-factory/features/<分支名>.md
示例:feature/user-auth → .ai-factory/features/feature-user-auth.md
如果在这两个位置都找不到计划文件:
未找到活动计划。
要首先创建计划,请使用:
- /ai-factory.feature <描述> — 用于新功能(创建分支 + 计划)
- /ai-factory.task <描述> — 用于快速任务计划
→ 在此停止。 没有计划文件不要继续。
如果找到计划文件 → 读取它并继续步骤 1。
步骤 1: 加载上下文
1.1: 读取计划文件
完全读取找到的计划文件。理解:
- 功能范围和目标
- 当前任务(主题、描述、依赖)
- 设置(测试、日志偏好)
- 提交检查点
- 哪些任务已完成(复选框
- [x])
1.2: 读取项目上下文
如果存在,读取 .ai-factory/DESCRIPTION.md:
- 技术栈
- 架构
- 约定
- 非功能需求
1.3: 读取补丁(过去的错误)
Glob: .ai-factory/patches/*.md
如果补丁存在,读取它们以理解:
- 以前犯了什么错误
- 要避免的模式
- 计划应考虑的事项
1.4: 加载当前任务列表
TaskList → 获取所有任务及其状态
理解已创建、进行中、已完成的任务。
步骤 2: 深度代码库分析
现在进行比 /ai-factory.task 初始更深的代码库探索:
2.1: 跟踪现有代码路径
对于计划中的每个任务,找到相关文件:
Glob + Grep: 查找任务中提到的文件
Read: 理解当前实现
查找:
- 计划应遵循的现有模式
- 已经部分实现任务描述的代码
- 计划错过的隐藏依赖
- 计划应使用的共享工具或服务,而不是创建新
2.2: 检查集成点
查找计划可能错过的事项:
- 需要更新的 API 路由
- 需要的数据库迁移
- 需要更改的配置文件
- 导入/导出更新
- 应用的中间件或守卫
- 现有验证模式
2.3: 检查边缘情况
基于技术栈和代码库:
- 项目中使用的错误处理模式
- 空/未定义安全模式
- 需要的身份验证/授权检查
- 速率限制、缓存考虑
- 边界的数据验证
步骤 3: 识别改进
将计划与你找到的比较。分类问题:
3.1: 缺失任务
- 应该存在但没有的任务(例如,迁移、配置更新、索引创建)
- 未覆盖边缘情况的任务
3.2: 任务质量问题
- 描述太模糊(无文件路径,无具体实现细节)
- 缺失日志需求
- 缺失错误处理细节
- 错误文件路径
3.3: 依赖问题
- 错误任务顺序(任务 A 依赖于 B,但 B 在 A 之后)
- 缺失依赖(任务 C 需要任务 A 的输出,但未被它阻塞)
- 不必要依赖(任务可以并行运行)
3.4: 冗余或重复任务
- 两个任务做同样的事
- 任务不必要因为代码已存在
- 任务重复现有功能
3.5: 范围问题
- 任务太大(应拆分)
- 任务太小(应合并)
- 任务超出功能范围(过度设计)
3.6: 用户提示改进(如果提供 $ARGUMENTS)
如果用户在 $ARGUMENTS 中提供具体改进指示:
- 将用户反馈应用于计划
- 查找基于提示需要修改的任务
- 如果用户提示需要,添加新任务
步骤 4: 呈现改进
以清晰格式向用户展示你找到的内容:
## 计划精炼报告
计划: [计划文件路径]
分析任务数: N
### 发现
#### 🆕 缺失任务(找到 N 个)
1. **[新任务主题]**
原因: [此任务需要的原因]
之后: 任务 #X(依赖)
2. **[新任务主题]**
原因: [原因]
#### 📝 任务改进(找到 N 个)
1. **任务 #X: [主题]**
问题: [哪里错]
修复: [应更改什么]
2. **任务 #Y: [主题]**
问题: [哪里错]
修复: [应更改什么]
#### 🔗 依赖修复(找到 N 个)
1. 任务 #X 应依赖于任务 #Y
原因: [为什么]
#### 🗑️ 移除(找到 N 个)
1. **任务 #X: [主题]**
原因: [为什么冗余/不必要]
#### 📋 总结
- 缺失任务: N
- 要改进任务: N
- 要修复依赖: N
- 要移除任务: N
应用这些改进?
- [ ] 是,应用所有
- [ ] 让我选择哪些
- [ ] 否,保持原计划
如果未找到改进:
## 计划审查完成
计划看起来很好!未发现显著差距或问题。
计划: [计划文件路径]
任务数: N
准备实施:
/ai-factory.implement
步骤 5: 应用批准的改进
基于用户选择:
5.1: 应用任务改进
对于需要更好描述的现有任务:
TaskGet(taskId) → 读取当前
TaskUpdate(taskId, description: "改进描述", subject: "改进主题")
5.2: 添加缺失任务
对于新任务:
TaskCreate(subject, description, activeForm)
TaskUpdate(taskId, addBlockedBy: [...]) → 设置依赖
5.3: 修复依赖
TaskUpdate(taskId, addBlockedBy: [...])
5.4: 移除冗余任务
TaskUpdate(taskId, status: "deleted")
5.5: 更新计划文件
关键: 在所有更改后,更新计划文件以反映新状态:
- 向正确阶段添加新任务,带
- [ ]复选框 - 如果描述更改,更新任务描述
- 如果依赖更改,修复任务顺序
- 移除删除的任务
- 如果任务数显著更改,更新提交检查点
- 保留已完成的
- [x]复选框
使用 Edit 对计划文件进行外科手术式更改,或 Write 如果更改广泛则重新生成。
5.6: 确认完成
## 计划已精炼
已应用更改:
- 添加了 N 个新任务
- 改进了 N 个任务描述
- 修复了 N 个依赖
- 移除了 N 个冗余任务
更新计划: [计划文件路径]
总任务数: N
准备实施:
/ai-factory.implement
上下文清理
深度代码库分析后上下文重。计划已在文件中更新 — 建议释放空间:
AskUserQuestion: 继续前释放上下文?
选项:
1. /clear — 完全重置(推荐)
2. /compact — 压缩历史
3. 保持原样
重要规则
- 不要从头重写 — 改进现有计划,不要替换它
- 保留已完成工作 — 永不修改或移除
- [x]已完成任务 - 可追踪改进 — 每个更改必须由代码库分析或用户输入证明
- 尊重设置 — 如果测试是“否”,不要添加测试任务。如果日志是“最小”,不要添加冗长日志任务
- 不要过度设计 — 不要添加超出功能范围的任务,除非关键
- 最小可行改进 — 仅建议重要事项,不是每个可能增强
- 用户先批准 — 未经用户确认永不要应用更改
- 保持计划文件同步 — 改进后计划文件必须匹配任务列表
示例
示例 1: 自动审查(无参数)
用户: /ai-factory.improve
→ 找到计划: .ai-factory/features/feature-user-auth.md
→ 计划中 6 个任务
→ 深度代码库分析...
→ 找到:项目使用中间件模式进行身份验证,计划缺少中间件任务
→ 找到:任务 #3 描述未提及现有 UserService
→ 找到:任务 #5 依赖于任务 #3 但未设置依赖
报告:
- 1 个缺失任务(身份验证中间件)
- 1 个任务改进(引用 UserService)
- 1 个依赖修复
应用? → 是 → 更改已应用
示例 2: 带有用户提示
用户: /ai-factory.improve добавь обработку ошибок и валидацию входных данных
→ 找到计划: .ai-factory/PLAN.md
→ 计划中 4 个任务
→ 用户想要:错误处理 + 输入验证
→ 分析每个任务缺失错误处理...
→ 找到:没有任务提及输入验证
→ 找到:错误处理不一致
报告:
- 2 个任务改进(向描述添加验证细节)
- 1 个新任务(创建共享验证工具)
- 使用代码库错误处理模式更新任务描述
应用? → 是 → 更改已应用
示例 3: 未找到计划
用户: /ai-factory.improve
→ 未找到 .ai-factory/PLAN.md
→ 分支:main(无功能分支)
→ 未找到计划文件
"未找到活动计划。先创建一个:
- /ai-factory.feature <描述>
- /ai-factory.task <描述>"
示例 4: 计划已经很好
用户: /ai-factory.improve
→ 找到计划: .ai-factory/features/feature-product-search.md
→ 计划中 5 个任务
→ 深度分析... 所有任务定义良好,依赖正确
→ 未发现显著改进
"计划看起来很好!准备实施:
/ai-factory.implement"