auto-sync: 2026-05-27 00:11:21
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
---
|
||||
name: proven-practices
|
||||
description: >-
|
||||
从成功任务中提炼的最佳实践:编码模式、评审策略、调研方法、工具使用方式。
|
||||
在开始复杂任务时触发,作为"怎么做好"的参考。
|
||||
---
|
||||
|
||||
# Proven Practices(验证有效的最佳实践)
|
||||
|
||||
> 来源:从三国团队 200 次成功任务中蒸馏(庞统 158 条 + 司马懿 42 条)
|
||||
|
||||
## 适用场景
|
||||
|
||||
- 开始复杂任务(L2/L3)时,快速回顾成功做法
|
||||
- 新将军入职参考
|
||||
- 自查当前工作是否符合最佳实践
|
||||
|
||||
## 模式清单
|
||||
|
||||
### 模式 1:先读后写 — 编码前通读相关代码(severity: high)
|
||||
|
||||
**场景**:编码任务(新功能、重构、bug 修复)
|
||||
**最佳做法**:动手写代码前,先用 `read` 通读所有相关文件(包括上下游模块),确认理解完整后再动手。庞统在写设计文档前读完全部代码后说"Now I have a complete understanding of the codebase";司马懿评审 bug 修复时先读安装目录和开发目录两份代码确认一致。
|
||||
**成功因素**:避免"改了这里忘了那里",一次改对不需要返工。
|
||||
**关键细节**:不要只读目标文件,也读 import 它的模块和被它 import 的模块。
|
||||
|
||||
### 模式 2:写完即验 — 产出必须运行验证(severity: high)
|
||||
|
||||
**场景**:产出代码或脚本的编码任务
|
||||
**最佳做法**:写完代码后立即用 `exec` 运行验证,确认输出正确后再提交。庞统写 `find_max.py` 后立即运行确认 `max=9.81` 正确;写 Hello World 后确认输出 `Hello, World!`。
|
||||
**成功因素**:运行验证是最低成本的质量保证,比提交后被驳回再改快 10 倍。
|
||||
**关键细节**:验证时检查边界情况(空输入、极端值),不只是 happy path。
|
||||
|
||||
### 模式 3:结构化评审 — 逐项检查表(severity: high)
|
||||
|
||||
**场景**:代码评审、产出审核
|
||||
**最佳做法**:按固定评审维度逐项检查,用表格输出结论。司马懿的评审标准:功能正确性 → 边界处理 → 异常处理 → 代码风格 → 数据文件 → 运行验证。每项 ✅/❌ 明确标注。
|
||||
**成功因素**:结构化检查防止遗漏,表格格式让结论一目了然。
|
||||
**关键细节**:区分"必须修改"(Critical)和"建议"(Non-blocking),后者不阻断流程。驳回时明确说明修改方向。
|
||||
|
||||
### 模式 4:交叉核实 — 不信任产出声明(severity: high)
|
||||
|
||||
**场景**:审核他人的产出报告、验证他人声明的完成状态
|
||||
**最佳做法**:不直接采信报告中的声明,逐项调 API 交叉核实。司马懿审核庞统的 verify 报告时,"逐项调 API 交叉核实——项目状态、父子关系、状态流转、Stages结构、产出文件、审查记录——全部与实际数据一致,无虚假声明"。
|
||||
**成功因素**:审核的核心价值就是"不信声明信证据",避免虚假完成蒙混过关。
|
||||
**关键细节**:核实范围包括状态一致性、数据准确性、产出完整性,不只是"有没有"还要"对不对"。
|
||||
|
||||
### 模式 5:状态机敬畏 — 先查状态再操作(severity: high)
|
||||
|
||||
**场景**:黑板任务流转、状态机相关操作
|
||||
**最佳做法**:操作前先查当前状态,根据状态决定下一步操作,不假设状态。庞统遇到 `review` 状态无法转 `working`,立即调整为直接在 review 下完成操作;发现任务已是 `done` 则不再重复操作。
|
||||
**成功因素**:状态机是硬约束,违反它只会浪费 API 调用。先查状态再操作,一次做对。
|
||||
**关键细节**:遇到非法转换不要硬试,理解状态机规则后选择合法路径。
|
||||
|
||||
### 模式 6:调研深挖 — 搜索 + 原文 + 结构化输出(severity: medium)
|
||||
|
||||
**场景**:技术调研、竞品分析、方案研究
|
||||
**最佳做法**:`web_search` 获取概览 → `web_fetch` 深挖关键文章 → 结构化报告输出。庞统做 AI Agent 架构调研时搜索了多框架对比,尝试 fetch 原文(即使被阻止也用搜索结果补充),最终输出带章节的调研报告。
|
||||
**成功因素**:搜索提供广度,fetch 提供深度,结构化输出让调研结果可被团队消费。
|
||||
**关键细节**:即使部分 fetch 失败,也不要卡住——用已有信息组织报告,注明数据来源。
|
||||
|
||||
### 模式 7:简洁产出 — 最小化交付物(severity: medium)
|
||||
|
||||
**场景**:所有任务的产出编写
|
||||
**最佳做法**:产出只包含任务要求的内容,不做额外扩展。庞统的 `hello_world.py` 只有一行 `print("Hello, World!")`,不加大框架;`find_max.py` 只做手动遍历找最大值,不实现排序。
|
||||
**成功因素**:简洁 = 少 bug = 快通过评审。不必要的抽象和功能只会增加评审负担和出错概率。
|
||||
**关键细节**:产出报告用表格列出文件和说明,让审核者快速定位。
|
||||
|
||||
### 模式 8:续杯幂等 — 被中断后先查再续(severity: medium)
|
||||
|
||||
**场景**:任务被中断后恢复(续杯提醒)
|
||||
**最佳做法**:收到续杯提醒后,先查任务当前状态和已有产出,判断是否已完成或需要继续。司马懿收到续杯后检查发现"任务已是 review 状态,产出已写入,上轮评审已完成,无需重复操作"。
|
||||
**成功因素**:幂等性保证——即使多次续杯也不会重复执行或破坏已有结果。
|
||||
**关键细节**:续杯不是重新开始,是"检查 → 继续/跳过"。已完成的工作不要重做。
|
||||
|
||||
### 模式 9:计划驱动 — 复杂任务用 update_plan 跟踪(severity: medium)
|
||||
|
||||
**场景**:超过 15 步的复杂任务(调研、多文件编码、集成测试)
|
||||
**最佳做法**:用 `update_plan` 拆分步骤,每完成一步更新状态。庞统在 27 步的技术调研中用 plan 跟踪进度,21 步的聚合测试中也用 plan 管理。
|
||||
**成功因素**:长任务中 plan 防止遗漏步骤,也方便中断后恢复时知道做到哪里了。
|
||||
**关键细节**:plan 步骤要粒度适中——太粗等于没 plan,太细浪费 token。每步应该是一个有明确产出的动作。
|
||||
|
||||
## 检查清单(快速参考)
|
||||
|
||||
编码前:
|
||||
- [ ] 相关代码都读过了吗?(模式 1)
|
||||
- [ ] 需要修改的范围确认了吗?
|
||||
|
||||
编码后:
|
||||
- [ ] 运行验证了吗?边界情况测了吗?(模式 2)
|
||||
- [ ] 产出是最小必要集合吗?(模式 7)
|
||||
|
||||
评审时:
|
||||
- [ ] 按结构化检查表逐项审查了吗?(模式 3)
|
||||
- [ ] 核实了实际数据,不只是看声明?(模式 4)
|
||||
|
||||
任务流转:
|
||||
- [ ] 操作前查了当前状态吗?(模式 5)
|
||||
- [ ] 续杯时先查再续,不重复已完成工作?(模式 8)
|
||||
|
||||
复杂任务:
|
||||
- [ ] 用 plan 跟踪进度了吗?(模式 9)
|
||||
- [ ] 调研时搜索 + 原文 + 结构化报告?(模式 6)
|
||||
Reference in New Issue
Block a user