소스 정보
- 저장소
- konglong87/enjoy_harness_ai
- 최근 소스 활동
- 2026년 4월 1일 02:12
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/konglong87/enjoy_harness_ai --skill harness-handle-failure명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| 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