konglong87/enjoy_harness_ai/harness-diagnose-and-improve

Claude Code and agent skill by konglong87/enjoy_harness_ai

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

错误诊断与改进技能,分析错误根因、生成修复建议、反哺规则到ERROR_HANDBOOK.md

Install

npx vskill@latest install konglong87/enjoy_harness_ai/harness-diagnose-and-improve

SKILL.md

harness-diagnose-and-improve 错误诊断与改进技能

核心能力

  1. 检查前置条件(harness-enable-circuit-breaker)
  2. 读取错误追踪文件(ERROR_TRACE.md)
  3. 分析错误根因(5 Why分析法)
  4. 生成修复建议
  5. 反哺规则到ERROR_HANDBOOK.md
  6. 更新.learnings/ERRORS.md
  7. 记录诊断事件
  8. 更新全局状态

前置条件

  • harness-init 已完成
  • harness-enable-circuit-breaker 已完成
  • ERROR_TRACE.md 文件存在(或可创建)

执行步骤

Step 1: 检查前置条件

使用 Read 工具读取:.EnjoyHarness/SKILL_REGISTRY.md

检查条件:

  • harness-enable-circuit-breaker 已标记为完成

如果未完成:

❌ 错误: 熔断机制未执行
💡 请先运行: harness-enable-circuit-breaker
Step 2: 读取错误追踪文件

使用 Read 工具读取:.trace/ERROR_TRACE.md

如果文件不存在,使用 Write 工具创建:

markdown
---
created_at: {当前时间}
total_errors: 0
---
# EnjoyHarness 错误追踪
## 错误记录格式
时间 | 任务ID | 技能 | 错误类型 | 错误详情 | 根因分析 | 修复方案
## 错误列表
(暂无错误记录)
Step 3: 提取最近的错误

使用 Bash 工具查询:

bash
# 获取最近的错误记录(最近5条)
RECENT_ERRORS=$(tail -5 .trace/ERROR_TRACE.md | grep "^20")
echo "最近的错误:"
echo "$RECENT_ERRORS"

或者从GLOBAL_STATE.md中获取:

bash
# 读取当前任务的错误信息
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
Step 4: 分析错误根因(5 Why分析法)

对每个错误执行:

markdown
### 错误分析示例
**错误描述**: API调用超时
**5 Why分析**:
1.为什么API调用超时? → 网络请求耗时超过30秒
2.为什么耗时超过30秒? → 服务器响应慢
3.为什么服务器响应慢? → 数据库查询未优化
4.为什么查询未优化? → 缺少索引
5.为什么缺少索引? → 开发时未考虑性能
**根因**: 开发流程缺少性能审查环节
**修复方案**:
-短期: 添加数据库索引
-中期: 优化查询语句
-长期: 增加性能审查流程

使用 Bash 工具生成分析:

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 "长期: {架构优化}"
Step 5: 生成修复建议

根据错误类型生成建议:

类型1: 代码错误
markdown
**错误类型**: 代码错误
**错误详情**: {具体错误}
**根因分析**: {5 Why分析结果}
**修复建议**:
1.立即修复: {具体代码修改}
2.代码审查: {审查重点}
3.测试验证: {测试用例}
类型2: 架构错误
markdown
**错误类型**: 架构错误
**错误详情**: {架构违规}
**根因分析**: {5 Why分析结果}
**修复建议**:
1.重构方案: {架构调整}
2.迁移路径: {重构步骤}
3.防止复发: {架构护栏规则}
类型3: 流程错误
markdown
**错误类型**: 流程错误
**错误详情**: {流程问题}
**根因分析**: {5 Why分析结果}
**修复建议**:
1.流程优化: {改进方案}
2.规则更新: {新增规则}
3.自动化: {自动化检查}
Step 6: 反哺规则到ERROR_HANDBOOK.md

使用 Read 工具读取:.EnjoyHarness/ERROR_HANDBOOK.md

如果文件不存在,使用 Write 工具创建基础结构:

markdown
---
created_at: {当前时间}
version: v1.0.0
total_rules: 0
---
# EnjoyHarness 错误手册
## 错误分类
### 1. 代码错误
{代码错误规则列表}
### 2. 架构错误
{架构错误规则列表}
### 3. 流程错误
{流程错误规则列表}
## 错误处理规则
### 规则格式

错误ID: {ERROR-XXX} 错误类型: {类型} 错误描述: {描述} 根因: {根本原因} 修复方案: {解决方案} 预防措施: {如何防止} 示例: {实际案例}

## 规则列表
(待添加)

使用 Edit 工具追加新规则:

markdown
### {ERROR-001}: {错误名称}
**错误类型**: {类型}
**错误描述**: {详细描述}
**根因**: {根本原因}
**触发条件**: {何时发生}
**修复方案**:
-立即修复: {快速方案}
-根本修复: {彻底方案}
**预防措施**:
-开发阶段: {如何预防}
-测试阶段: {如何检测}
-上线阶段: {如何监控}
**示例**:

{代码示例或场景描述}

**反哺日期**: {当前时间}
**来源任务**: {任务ID}
Step 7: 更新.learnings/ERRORS.md

使用 Read 工具读取:.learnings/ERRORS.md

如果文件不存在,使用 Write 工具创建:

markdown
---
created_at: {当前时间}
total_learnings: 0
---
# EnjoyHarness 错误学习记录
## 学习记录格式
日期 | 错误类型 | 关键教训 | 改进措施
## 学习列表
(暂无学习记录)

使用 Edit 工具追加学习记录:

markdown
{当前时间} | {错误类型} | {关键教训} | {改进措施}
Step 8: 生成诊断报告

使用 Write 工具创建文件:.EnjoyHarness/DIAGNOSIS_REPORT.md

markdown
---
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)
-[ ] 更新相关代码
-[ ] 执行测试验证
### 中期行动
-[ ] 更新开发流程
-[ ] 增加自动化检查
-[ ] 培训团队成员
### 长期行动
-[ ] 架构优化
-[ ] 重构遗留代码
-[ ] 持续监控指标
Step 9: 记录诊断事件

使用 Edit 工具追加内容到:.EnjoyHarness/EVENT_LOG.md

markdown
{当前时间} | ERROR_DIAGNOSIS | harness-diagnose-and-improve | 诊断错误: {数量}个 | SUCCESS
{当前时间} | RULE_FEEDBACK | harness-diagnose-and-improve | 反哺规则: {规则ID} | SUCCESS
Step 10: 更新全局状态

使用 Edit 工具更新:.EnjoyHarness/GLOBAL_STATE.md

yaml
last_diagnosis: {当前时间}
diagnosis_status: COMPLETED
errors_analyzed: {数量}
rules_added: {数量}
Step 11: 更新事件计数

使用 Edit 工具更新:.EnjoyHarness/EVENT_LOG.md

old_string: total_events: N new_string: total_events: N+2

Step 12: 更新技能注册表

使用 Edit 工具更新:.EnjoyHarness/SKILL_REGISTRY.md

old_string: - [ ] harness-diagnose-and-improve - 错误诊断技能 new_string: - [x] harness-diagnose-and-improve - 错误诊断技能 ✅

Step 13: 输出完成信息

使用 Bash 工具输出:

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 ""

成功标准

  • [ ] 读取错误追踪文件
  • [ ] 分析错误根因(5 Why)
  • [ ] 生成修复建议
  • [ ] 反哺规则到ERROR_HANDBOOK.md
  • [ ] 更新.learnings/ERRORS.md
  • [ ] 生成诊断报告
  • [ ] 记录诊断事件
  • [ ] 更新全局状态
  • [ ] 更新事件日志
  • [ ] 技能注册表已更新

失败兜底

  • harness-enable-circuit-breaker 未完成 → 终止执行,提示运行前置技能
  • 无错误记录 → 输出"暂无错误需要诊断"

联动关系

  • 前置: harness-enable-circuit-breaker
  • 自动触发: harness-evolve(自我进化)

迭代计数

本技能执行预计迭代次数: 约 12 次(Read 3次 + Write 2次 + Edit 5次 + Bash 2次)

测试用例

测试 1: 前置条件检查

输入: 在熔断机制未执行时运行 期望输出: 错误提示"熔断机制未执行" 验证方式: 删除熔断相关文件后运行

测试 2: 错误根因分析

输入: 提供一个具体的错误 期望输出: 完整的5 Why分析 验证方式: 手动提供错误,检查分析结果

测试 3: 反哺规则

输入: 分析错误后 期望输出: ERROR_HANDBOOK.md新增规则 验证方式: grep "{ERROR-XXX}" .EnjoyHarness/ERROR_HANDBOOK.md

测试 4: 学习记录更新

输入: 执行诊断后 期望输出: .learnings/ERRORS.md新增记录 验证方式: tail -1 .learnings/ERRORS.md

测试 5: 诊断报告生成

输入: 执行诊断 期望输出: 生成 DIAGNOSIS_REPORT.md 验证方式: ls .EnjoyHarness/DIAGNOSIS_REPORT.md

测试 6: 全局状态更新

输入: 读取 GLOBAL_STATE.md 期望输出: diagnosis_status 为 COMPLETED 验证方式: grep "diagnosis_status" .EnjoyHarness/GLOBAL_STATE.md

测试 7: 事件日志记录

输入: 读取 EVENT_LOG.md 期望输出: 包含 ERROR_DIAGNOSIS 事件 验证方式: grep "ERROR_DIAGNOSIS" .EnjoyHarness/EVENT_LOG.md

测试 8: 无错误情况

输入: 无错误记录时运行 期望输出: 输出"暂无错误需要诊断" 验证方式: 清空ERROR_TRACE.md后运行

5 Why分析法详解

方法论
yaml
目的: 找到错误的根本原因,而不是表面现象
步骤:
1. 描述问题
2. 问"为什么"第1次
3. 问"为什么"第2次
4. 问"为什么"第3次
5. 问"为什么"第4次
6. 问"为什么"第5次
7. 找到根因
8. 制定修复方案
原则:
- 不满足于表面答案
- 每次问"为什么"都要深入一层
- 根因通常是流程或系统问题,而非人为错误
示例分析
示例 1: API调用失败
yaml
问题: API调用返回500错误
Why 1: 服务器内部错误
Why 2: 数据库连接超时
Why 3: 数据库查询耗时过长
Why 4: 缺少必要索引
Why 5: 开发时未进行性能测试
根因: 开发流程缺少性能测试环节
修复方案:
- 立即修复: 添加数据库索引
- 中期改进: 优化查询语句
- 长期优化: 增加性能测试流程
示例 2: 代码编译失败
yaml
问题: 编译报错"undefined variable"
Why 1: 变量未定义
Why 2: 变量名拼写错误
Why 3: 手动输入,未使用IDE自动补全
Why 4: 开发者不熟悉IDE功能
Why 5: 缺少IDE使用培训
根因: 开发培训不充分
修复方案:
- 立即修复: 修正变量名
- 中期改进: 使用IDE代码检查
- 长期优化: 增加开发培训

错误分类体系

1. 代码错误
yaml
类型:
- 语法错误: 编译失败
- 逻辑错误: 功能异常
- 性能错误: 响应慢、资源占用高
- 安全错误: 注入、XSS等
处理方式:
- 立即修复代码
- 增加单元测试
- 代码审查
2. 架构错误
yaml
类型:
- 分层违规: 跨层调用
- 循环依赖: 模块间循环引用
- 设计缺陷: 架构设计不合理
- 扩展性差: 难以扩展新功能
处理方式:
- 重构架构
- 增加架构护栏
- 更新架构文档
3. 流程错误
yaml
类型:
- 需求误解: 需求理解偏差
- 沟通不畅: 信息传递错误
- 流程缺失: 缺少必要步骤
- 自动化不足: 手动操作过多
处理方式:
- 优化流程
- 增加检查点
- 自动化改进

反哺规则机制

反哺流程
[错误发生] → [错误记录] → [错误诊断]
↓
[根因分析] → [规则提取] → [规则验证]
↓
[反哺到ERROR_HANDBOOK.md]
↓
[后续开发使用规则预防]
规则模板
yaml
错误ID: ERROR-{序号}
错误类型: {类型}
错误描述: {详细描述}
触发条件: {何时发生}
根因分析: {根本原因}
修复方案:
立即修复: {方案}
中期改进: {方案}
长期优化: {方案}
预防措施:
开发阶段: {措施}
测试阶段: {措施}
上线阶段: {措施}
示例: {实际案例}
反哺日期: {日期}
来源任务: {任务ID}

使用示例

示例 1: 诊断单个错误
yaml
错误: API调用超时
分析: 5 Why → 根因: 缺少性能测试
反哺: ERROR-001 → "性能测试规则"
修复: 添加索引 + 性能测试流程
结果: 错误修复,规则反哺
示例 2: 批量诊断多个错误
yaml
错误列表: 3个错误
- 错误1: 代码错误 → 根因: 缺少代码审查
- 错误2: 架构错误 → 根因: 架构规则不明确
- 错误3: 流程错误 → 根因: 需求文档不清晰
反哺规则: 3条
- ERROR-001: 代码审查规则
- ERROR-002: 架构设计规则
- ERROR-003: 需求文档规则
结果: 批量反哺,系统改进

与其他技能的协作

协作流程
harness-enable-circuit-breaker(检测错误)
↓
harness-diagnose-and-improve(诊断根因)
↓
harness-evolve(自我进化)
协作示例
yaml
场景: 任务执行失败
阶段1: 错误检测
- harness-enable-circuit-breaker → 检测到错误
阶段2: 错误诊断
- harness-diagnose-and-improve → 分析根因
├─ 5 Why分析
├─ 生成修复建议
└─ 反哺规则
阶段3: 自我进化
- harness-evolve → 应用规则
├─ 更新ERROR_HANDBOOK.md
├─ 清理技术债
└─ 持续改进

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/konglong87/enjoy_harness_ai/harness-diagnose-and-improve/badge)](https://verified-skill.com/skills/konglong87/enjoy_harness_ai/harness-diagnose-and-improve)

Something wrong with this skill or its page? Tell us.