ワンクリックで
harness-diagnose-and-improve
错误诊断与改进技能,分析错误根因、生成修复建议、反哺规则到ERROR_HANDBOOK.md
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
错误诊断与改进技能,分析错误根因、生成修复建议、反哺规则到ERROR_HANDBOOK.md
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
EnjoyHarness 唯一强制入口,初始化全局状态、文件体系、技能注册表
配置文件读取和验证技能,确保用户配置正确且完整
全流程自动执行超级组合技能,编排所有16个基础技能,从用户需求到完整交付的全自动化流程
头脑风暴技能,在实现前探索用户意图、需求和设计,防止返工
实施计划执行技能,逐任务执行实施计划,支持检查点、错误恢复和进度跟踪
10倍产能提效超级组合技能,通过并行执行、智能调度、优化策略实现10倍开发效率提升
| name | harness-diagnose-and-improve |
| description | 错误诊断与改进技能,分析错误根因、生成修复建议、反哺规则到ERROR_HANDBOOK.md |
| trigger_words | ["harness-diagnose-and-improve","错误诊断","diagnose","improve"] |
| priority | HIGH |
| dependencies | ["harness-enable-circuit-breaker"] |
| version | v3.0.0 |
使用 Read 工具读取:.EnjoyHarness/SKILL_REGISTRY.md
检查条件:
如果未完成:
❌ 错误: 熔断机制未执行
💡 请先运行: harness-enable-circuit-breaker
使用 Read 工具读取:.trace/ERROR_TRACE.md
如果文件不存在,使用 Write 工具创建:
---
created_at: {当前时间}
total_errors: 0
---
# EnjoyHarness 错误追踪
## 错误记录格式
时间 | 任务ID | 技能 | 错误类型 | 错误详情 | 根因分析 | 修复方案
## 错误列表
(暂无错误记录)
使用 Bash 工具查询:
# 获取最近的错误记录(最近5条)
RECENT_ERRORS=$(tail -5 .trace/ERROR_TRACE.md | grep "^20")
echo "最近的错误:"
echo "$RECENT_ERRORS"
或者从GLOBAL_STATE.md中获取:
# 读取当前任务的错误信息
CURRENT_TASK=$(grep -A 20 "current_task" .EnjoyHarness/GLOBAL_STATE.md | grep "task_id" | awk '{print $2}')
ERROR_COUNT=$(grep -A 20 "current_task" .EnjoyHarness/GLOBAL_STATE.md | grep "error_count" | awk '{print $2}')
if [ "$ERROR_COUNT" -gt 0 ]; then
echo "当前任务: $CURRENT_TASK"
echo "错误计数: $ERROR_COUNT"
fi
对每个错误执行:
### 错误分析示例
**错误描述**: API调用超时
**5 Why分析**:
1. 为什么API调用超时? → 网络请求耗时超过30秒
2. 为什么耗时超过30秒? → 服务器响应慢
3. 为什么服务器响应慢? → 数据库查询未优化
4. 为什么查询未优化? → 缺少索引
5. 为什么缺少索引? → 开发时未考虑性能
**根因**: 开发流程缺少性能审查环节
**修复方案**:
- 短期: 添加数据库索引
- 中期: 优化查询语句
- 长期: 增加性能审查流程
使用 Bash 工具生成分析:
ERROR_DESC="{错误描述}"
echo "=== 错误分析 ==="
echo "错误: $ERROR_DESC"
echo ""
echo "5 Why分析:"
echo "1. 为什么出现这个错误?"
read WHY1
echo "2. 为什么$WHY1?"
read WHY2
echo "3. 为什么$WHY2?"
read WHY3
echo "4. 为什么$WHY3?"
read WHY4
echo "5. 为什么$WHY4?"
read WHY5
echo ""
echo "根因: $WHY5"
echo ""
echo "修复方案:"
echo "短期: {快速修复}"
echo "中期: {流程改进}"
echo "长期: {架构优化}"
根据错误类型生成建议:
**错误类型**: 代码错误
**错误详情**: {具体错误}
**根因分析**: {5 Why分析结果}
**修复建议**:
1. 立即修复: {具体代码修改}
2. 代码审查: {审查重点}
3. 测试验证: {测试用例}
**错误类型**: 架构错误
**错误详情**: {架构违规}
**根因分析**: {5 Why分析结果}
**修复建议**:
1. 重构方案: {架构调整}
2. 迁移路径: {重构步骤}
3. 防止复发: {架构护栏规则}
**错误类型**: 流程错误
**错误详情**: {流程问题}
**根因分析**: {5 Why分析结果}
**修复建议**:
1. 流程优化: {改进方案}
2. 规则更新: {新增规则}
3. 自动化: {自动化检查}
使用 Read 工具读取:.EnjoyHarness/ERROR_HANDBOOK.md
如果文件不存在,使用 Write 工具创建基础结构:
---
created_at: {当前时间}
version: v1.0.0
total_rules: 0
---
# EnjoyHarness 错误手册
## 错误分类
### 1. 代码错误
{代码错误规则列表}
### 2. 架构错误
{架构错误规则列表}
### 3. 流程错误
{流程错误规则列表}
## 错误处理规则
### 规则格式
```yaml
错误ID: {ERROR-XXX}
错误类型: {类型}
错误描述: {描述}
根因: {根本原因}
修复方案: {解决方案}
预防措施: {如何防止}
示例: {实际案例}
(待添加)
使用 Edit 工具追加新规则:
```markdown
### {ERROR-001}: {错误名称}
**错误类型**: {类型}
**错误描述**: {详细描述}
**根因**: {根本原因}
**触发条件**: {何时发生}
**修复方案**:
- 立即修复: {快速方案}
- 根本修复: {彻底方案}
**预防措施**:
- 开发阶段: {如何预防}
- 测试阶段: {如何检测}
- 上线阶段: {如何监控}
**示例**:
{代码示例或场景描述}
**反哺日期**: {当前时间}
**来源任务**: {任务ID}
使用 Read 工具读取:.learnings/ERRORS.md
如果文件不存在,使用 Write 工具创建:
---
created_at: {当前时间}
total_learnings: 0
---
# EnjoyHarness 错误学习记录
## 学习记录格式
日期 | 错误类型 | 关键教训 | 改进措施
## 学习列表
(暂无学习记录)
使用 Edit 工具追加学习记录:
{当前时间} | {错误类型} | {关键教训} | {改进措施}
使用 Write 工具创建文件:.EnjoyHarness/DIAGNOSIS_REPORT.md
---
generated_at: {当前时间}
task_id: {任务ID}
error_count: {错误数量}
analyzed_count: {已分析数量}
---
# 错误诊断报告
## 诊断概况
- 诊断时间: {当前时间}
- 任务ID: {任务ID}
- 错误总数: {错误数量}
- 已分析数: {已分析数量}
## 错误分析
### 错误 1: {错误名称}
**错误描述**: {详细描述}
**错误类型**: {类型}
**发生时间**: {时间}
**发生技能**: {技能名称}
**5 Why分析**:
1. {Why 1}
2. {Why 2}
3. {Why 3}
4. {Why 4}
5. {Why 5}
**根因**: {根本原因}
**修复建议**:
- ✅ 立即修复: {方案}
- ✅ 中期改进: {方案}
- ✅ 长期优化: {方案}
**预防措施**: {如何防止复发}
---
## 错误统计
### 按类型统计
- 代码错误: {数量}次
- 架构错误: {数量}次
- 流程错误: {数量}次
### 按技能统计
- harness-validate-output: {数量}次
- harness-spawn-subharness-agent: {数量}次
- {其他技能}: {数量}次
## 反馈改进
### 已反哺规则
- {ERROR-XXX}: {规则名称}
- {ERROR-XXX}: {规则名称}
### 已更新文档
- ERROR_HANDBOOK.md: 新增{数量}条规则
- .learnings/ERRORS.md: 新增{数量}条学习记录
## 下一步行动
### 立即行动
- [ ] 修复错误(优先级: P0)
- [ ] 更新相关代码
- [ ] 执行测试验证
### 中期行动
- [ ] 更新开发流程
- [ ] 增加自动化检查
- [ ] 培训团队成员
### 长期行动
- [ ] 架构优化
- [ ] 重构遗留代码
- [ ] 持续监控指标
使用 Edit 工具追加内容到:.EnjoyHarness/EVENT_LOG.md
{当前时间} | ERROR_DIAGNOSIS | harness-diagnose-and-improve | 诊断错误: {数量}个 | SUCCESS
{当前时间} | RULE_FEEDBACK | harness-diagnose-and-improve | 反哺规则: {规则ID} | SUCCESS
使用 Edit 工具更新:.EnjoyHarness/GLOBAL_STATE.md
last_diagnosis: {当前时间}
diagnosis_status: COMPLETED
errors_analyzed: {数量}
rules_added: {数量}
使用 Edit 工具更新:.EnjoyHarness/EVENT_LOG.md
old_string: total_events: N
new_string: total_events: N+2
使用 Edit 工具更新:.EnjoyHarness/SKILL_REGISTRY.md
old_string: - [ ] harness-diagnose-and-improve - 错误诊断技能
new_string: - [x] harness-diagnose-and-improve - 错误诊断技能 ✅
使用 Bash 工具输出:
echo ""
echo "✅ harness-diagnose-and-improve 完成!"
echo ""
echo "🔍 诊断结果:"
echo " - 分析错误数: {数量}"
echo " - 反哺规则数: {数量}"
echo " - 更新文档数: {数量}"
echo ""
echo "📋 报告:"
echo " - 诊断报告: .EnjoyHarness/DIAGNOSIS_REPORT.md"
echo " - 错误手册: .EnjoyHarness/ERROR_HANDBOOK.md"
echo " - 学习记录: .learnings/ERRORS.md"
echo ""
echo "🎯 下一步:"
echo " - 执行修复建议"
echo " - 或触发 harness-evolve(自我进化)"
echo ""
本技能执行预计迭代次数: 约 12 次(Read 3次 + Write 2次 + Edit 5次 + Bash 2次)
输入: 在熔断机制未执行时运行 期望输出: 错误提示"熔断机制未执行" 验证方式: 删除熔断相关文件后运行
输入: 提供一个具体的错误 期望输出: 完整的5 Why分析 验证方式: 手动提供错误,检查分析结果
输入: 分析错误后
期望输出: ERROR_HANDBOOK.md新增规则
验证方式: grep "{ERROR-XXX}" .EnjoyHarness/ERROR_HANDBOOK.md
输入: 执行诊断后
期望输出: .learnings/ERRORS.md新增记录
验证方式: tail -1 .learnings/ERRORS.md
输入: 执行诊断
期望输出: 生成 DIAGNOSIS_REPORT.md
验证方式: ls .EnjoyHarness/DIAGNOSIS_REPORT.md
输入: 读取 GLOBAL_STATE.md
期望输出: diagnosis_status 为 COMPLETED
验证方式: grep "diagnosis_status" .EnjoyHarness/GLOBAL_STATE.md
输入: 读取 EVENT_LOG.md
期望输出: 包含 ERROR_DIAGNOSIS 事件
验证方式: grep "ERROR_DIAGNOSIS" .EnjoyHarness/EVENT_LOG.md
输入: 无错误记录时运行 期望输出: 输出"暂无错误需要诊断" 验证方式: 清空ERROR_TRACE.md后运行
目的: 找到错误的根本原因,而不是表面现象
步骤:
1. 描述问题
2. 问"为什么"第1次
3. 问"为什么"第2次
4. 问"为什么"第3次
5. 问"为什么"第4次
6. 问"为什么"第5次
7. 找到根因
8. 制定修复方案
原则:
- 不满足于表面答案
- 每次问"为什么"都要深入一层
- 根因通常是流程或系统问题,而非人为错误
问题: API调用返回500错误
Why 1: 服务器内部错误
Why 2: 数据库连接超时
Why 3: 数据库查询耗时过长
Why 4: 缺少必要索引
Why 5: 开发时未进行性能测试
根因: 开发流程缺少性能测试环节
修复方案:
- 立即修复: 添加数据库索引
- 中期改进: 优化查询语句
- 长期优化: 增加性能测试流程
问题: 编译报错"undefined variable"
Why 1: 变量未定义
Why 2: 变量名拼写错误
Why 3: 手动输入,未使用IDE自动补全
Why 4: 开发者不熟悉IDE功能
Why 5: 缺少IDE使用培训
根因: 开发培训不充分
修复方案:
- 立即修复: 修正变量名
- 中期改进: 使用IDE代码检查
- 长期优化: 增加开发培训
类型:
- 语法错误: 编译失败
- 逻辑错误: 功能异常
- 性能错误: 响应慢、资源占用高
- 安全错误: 注入、XSS等
处理方式:
- 立即修复代码
- 增加单元测试
- 代码审查
类型:
- 分层违规: 跨层调用
- 循环依赖: 模块间循环引用
- 设计缺陷: 架构设计不合理
- 扩展性差: 难以扩展新功能
处理方式:
- 重构架构
- 增加架构护栏
- 更新架构文档
类型:
- 需求误解: 需求理解偏差
- 沟通不畅: 信息传递错误
- 流程缺失: 缺少必要步骤
- 自动化不足: 手动操作过多
处理方式:
- 优化流程
- 增加检查点
- 自动化改进
[错误发生] → [错误记录] → [错误诊断]
↓
[根因分析] → [规则提取] → [规则验证]
↓
[反哺到ERROR_HANDBOOK.md]
↓
[后续开发使用规则预防]
错误ID: ERROR-{序号}
错误类型: {类型}
错误描述: {详细描述}
触发条件: {何时发生}
根因分析: {根本原因}
修复方案:
立即修复: {方案}
中期改进: {方案}
长期优化: {方案}
预防措施:
开发阶段: {措施}
测试阶段: {措施}
上线阶段: {措施}
示例: {实际案例}
反哺日期: {日期}
来源任务: {任务ID}
错误: API调用超时
分析: 5 Why → 根因: 缺少性能测试
反哺: ERROR-001 → "性能测试规则"
修复: 添加索引 + 性能测试流程
结果: 错误修复,规则反哺
错误列表: 3个错误
- 错误1: 代码错误 → 根因: 缺少代码审查
- 错误2: 架构错误 → 根因: 架构规则不明确
- 错误3: 流程错误 → 根因: 需求文档不清晰
反哺规则: 3条
- ERROR-001: 代码审查规则
- ERROR-002: 架构设计规则
- ERROR-003: 需求文档规则
结果: 批量反哺,系统改进
harness-enable-circuit-breaker(检测错误)
↓
harness-diagnose-and-improve(诊断根因)
↓
harness-evolve(自我进化)
场景: 任务执行失败
阶段1: 错误检测
- harness-enable-circuit-breaker → 检测到错误
阶段2: 错误诊断
- harness-diagnose-and-improve → 分析根因
├─ 5 Why分析
├─ 生成修复建议
└─ 反哺规则
阶段3: 自我进化
- harness-evolve → 应用规则
├─ 更新ERROR_HANDBOOK.md
├─ 清理技术债
└─ 持续改进