بنقرة واحدة
harness-handle-failure
失败处理技能,包含错误分类、自动回滚、重试策略,失败时触发熔断机制,防止错误扩散
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
失败处理技能,包含错误分类、自动回滚、重试策略,失败时触发熔断机制,防止错误扩散
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
EnjoyHarness 唯一强制入口,初始化全局状态、文件体系、技能注册表
配置文件读取和验证技能,确保用户配置正确且完整
全流程自动执行超级组合技能,编排所有16个基础技能,从用户需求到完整交付的全自动化流程
头脑风暴技能,在实现前探索用户意图、需求和设计,防止返工
实施计划执行技能,逐任务执行实施计划,支持检查点、错误恢复和进度跟踪
10倍产能提效超级组合技能,通过并行执行、智能调度、优化策略实现10倍开发效率提升
| name | harness-handle-failure |
| description | 失败处理技能,包含错误分类、自动回滚、重试策略,失败时触发熔断机制,防止错误扩散 |
| trigger_words | ["harness-handle-failure","失败处理","handle failure","错误处理","rollback"] |
| priority | HIGH |
| dependencies | ["harness-enable-circuit-breaker"] |
| version | v3.0.0 |
harness-escalate-to-human.EnjoyHarness/EXECUTION_CONTRACT.md 可读使用 Read 工具读取:.EnjoyHarness/SKILL_REGISTRY.md
使用 Read 工具读取:.EnjoyHarness/EXECUTION_CONTRACT.md
检查条件:
如果未完成:
❌ 错误: 熔断机制未启用
💡 请先运行: harness-enable-circuit-breaker
失败事件来源:
失败事件格式:
{TIMESTAMP} | FAILURE | {技能名} | {任务ID} - {错误详情} | FAILURE
使用 Read 工具读取:.trace/ERROR_TRACE.md
分析错误类型:
特征:
处理策略:
特征:
处理策略:
特征:
处理策略:
使用 Bash 工具获取失败上下文:
TIMESTAMP=$(date -Iseconds)
TASK_ID={当前任务ID}
SKILL_NAME={失败的技能}
ERROR_TYPE={代码/架构/流程}
echo "失败时间: $TIMESTAMP"
echo "任务ID: $TASK_ID"
echo "技能: $SKILL_NAME"
echo "错误类型: $ERROR_TYPE"
使用 Write 工具创建失败记录:.trace/ERROR_TRACE.md
追加内容:
## 失败记录 #{N}
### 基本信息
- 时间: {TIMESTAMP}
- 任务ID: {TASK_ID}
- 技能: {SKILL_NAME}
- 错误类型: {ERROR_TYPE}
### 错误详情
{详细错误信息}
### 上下文
- 当前迭代: {N}/100
- 当前Token消耗: {N}
- 错误计数: {N}/3
### 影响范围
- 影响文件: {文件列表}
- 影响技能: {技能列表}
### 失败原因分析
{AI分析失败原因}
使用 Read 工具读取:.EnjoyHarness/GLOBAL_STATE.md
获取当前错误计数:
技能错误计数:
{技能名}: {当前计数}
使用 Edit 工具更新:.EnjoyHarness/GLOBAL_STATE.md
增加错误计数:
技能错误计数:
{技能名}: {当前计数}+1
检查是否达到熔断阈值:
满足以下条件之一则回滚:
使用 Bash 工具执行Git回滚:
# 检查当前状态
git status
# 如果有未提交的修改
if [ -n "$(git status --porcelain)" ]; then
# 暂存当前修改(以防需要恢复)
git stash push -m "failure-backup-{TASK_ID}-{TIMESTAMP}"
# 记录暂存信息
echo "✅ 已暂存当前修改: failure-backup-{TASK_ID}-{TIMESTAMP}"
fi
# 回滚到上一个稳定版本
git log --oneline -5
# 按最近一次成功提交、稳定标签或预设规则自动选择稳定提交
STABLE_COMMIT={上一个稳定提交hash}
# 执行回滚
git reset --hard $STABLE_COMMIT
echo "✅ 已回滚到稳定版本: $STABLE_COMMIT"
使用 Edit 工具追加到:.EnjoyHarness/EVENT_LOG.md
{TIMESTAMP} | ROLLBACK | harness-handle-failure | 回滚到 {STABLE_COMMIT} | SUCCESS
满足以下条件可重试:
策略A:自动重试
策略B:调整后重试
策略C:不继续重试,进入真实阻塞升级
harness-escalate-to-human自治模式附加规则:
human_escalation_policy: true_blockers_only 时,不得为了普通失败询问用户下一步怎么做。如果决定重试:
使用 Edit 工具更新:.EnjoyHarness/EVENT_LOG.md
{TIMESTAMP} | RETRY | harness-handle-failure | 重试 {技能名} (第{N}次) | STARTING
重新执行失败的技能。
触发条件:
执行动作:
使用 Write 工具创建熔断文件:.EnjoyHarness/.circuit-breaker-task-{TASK_ID}
内容:
---
triggered_at: {TIMESTAMP}
trigger_type: TASK_LEVEL
task_id: {TASK_ID}
skill_name: {技能名}
error_count: {N}
max_retries: 3
---
# 任务级熔断触发
## 触发原因
同一任务失败次数达到阈值:{N}/3
## 建议
1. 检查错误日志:.trace/ERROR_TRACE.md
2. 分析失败原因
3. 优先执行自动诊断、自动回滚或自动拆分方案
## 后续行动
- 默认触发 harness-handle-failure / harness-diagnose-and-improve
- 仅在真实阻塞时升级,不等待普通任务级人工决策
使用 Edit 工具追加到:.EnjoyHarness/EVENT_LOG.md
{TIMESTAMP} | CIRCUIT_BREAKER_TRIGGERED | harness-handle-failure | 任务级熔断 (任务: {TASK_ID}, 错误: {N}/3) | CRITICAL
使用 Read 工具读取:.EnjoyHarness/ITERATION_COUNTER.md
检查:
使用 Write 工具创建报告:.trace/FAILURE_REPORT_{TASK_ID}.md
内容:
---
generated_at: {TIMESTAMP}
task_id: {TASK_ID}
status: FAILED
---
# 失败处理报告
## 执行摘要
- 失败时间: {TIMESTAMP}
- 任务ID: {TASK_ID}
- 失败技能: {SKILL_NAME}
- 错误类型: {ERROR_TYPE}
## 错误详情
{详细错误信息}
## 处理措施
- [x] 错误分类完成
- [x] 失败上下文已记录
- [x] 错误计数已更新: {N}/3
- [x] 回滚决策: {是/否}
- [x] 重试决策: {策略A/B/C}
## 回滚信息
- 是否回滚: {是/否}
- 回滚到: {COMMIT_HASH}
- 暂存备份: {STASH_NAME}
## 重试信息
- 重试策略: {A/B/C/无}
- 重试次数: {N}
- 重试结果: {成功/失败/进行中}
## 熔断状态
- 任务级熔断: {触发/未触发}
- 错误计数: {N}/3
## 下一步建议
1. {建议1}
2. {建议2}
3. {建议3}
根据处理结果,触发相应技能:
错误计数 < 3 且 有修复方案:
错误计数 ≥ 3:
harness-escalate-to-human架构错误:
使用 Edit 工具更新:.EnjoyHarness/GLOBAL_STATE.md
## 技能错误计数
- {技能名}: {N}/3
## 最近事件
- {TIMESTAMP} | harness-handle-failure | FAILURE_HANDLED | {任务ID} | {SUCCESS/FAILURE}
使用 Edit 工具更新:.EnjoyHarness/ITERATION_COUNTER.md
增加计数(本技能约10次迭代):
current_iteration: N+10
使用 Edit 工具更新:.EnjoyHarness/SKILL_REGISTRY.md
- [x] harness-handle-failure - 失败处理技能 ✅
使用 Bash 工具输出:
echo ""
echo "✅ harness-handle-failure 执行完成!"
echo ""
echo "📋 失败处理报告: .trace/FAILURE_REPORT_{TASK_ID}.md"
echo ""
echo "🔍 处理摘要:"
echo " - 错误类型: {ERROR_TYPE}"
echo " - 错误计数: {N}/3"
echo " - 回滚: {是/否}"
echo " - 重试: {策略A/B/C/无}"
echo " - 熔断: {触发/未触发}"
echo ""
echo "📌 下一步:"
if [ "$ERROR_COUNT" -lt 3 ]; then
echo " - 触发 harness-diagnose-and-improve 诊断错误"
else
echo " - 若确认为真实阻塞,则触发 harness-escalate-to-human"
fi
echo ""
本技能执行预计迭代次数: 约10次(Write 2次 + Edit 5次 + Read 3次 + Bash 3次)
输入:
错误: harness-validate-output 执行失败
原因: Go编译错误 - 未定义的变量
错误计数: 1/3
预期输出:
输入:
错误: harness-validate-output 执行失败
原因: 违反分层架构 - UI层直接调用Repo层
错误计数: 1/3
预期输出:
输入:
错误: harness-spawn-subharness-agent 执行失败
错误计数: 3/3(第三次失败)
预期输出:
.EnjoyHarness/.circuit-breaker-task-{TASK_ID}输入:
第一次失败: 语法错误
回滚: 否
重试: 策略A(自动修复后重试)
预期输出:
输入:
第一次失败: 代码错误
第二次失败: 代码错误(不同原因)
第三次失败: 流程错误
预期输出:
harness-escalate-to-human