Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/konglong87/enjoy_harness_ai --skill harness-recover-clean-state명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | harness-recover-clean-state |
| description | 根据不清洁状态类型,执行自动修复或回滚,恢复到清洁状态 |
| trigger_words | ["harness-recover-clean-state","恢复清洁状态","clean state recovery"] |
| priority | HIGH |
| dependencies | ["harness-check-clean-state"] |
| version | v1.0.0 |
根据清洁状态检查结果,执行自动修复或回滚,恢复到清洁状态。
核心职责:
GLOBAL_STATE.md(获取当前功能)工具: Read
文件: .EnjoyHarness/GLOBAL_STATE.md
Token 消耗: ~200 tokens
目的: 获取 current_feature 字段(当前功能ID)
问题类型:
- Linter 警告
- Git 未提交更改
- 文档未更新
- TODO/FIXME 遗留
修复流程:
1. 自动修复 Linter 警告
工具: Bash
命令: make lint --fix(或项目特定修复命令)
Token 消耗: ~1000 tokens
2. 自动提交 Git 更改
工具: Bash
命令: git add . && git commit -m "fix: auto-fix linter warnings"
Token 消耗: ~200 tokens
3. 更新文档
工具: Edit
文件: .EnjoyHarness/EVENT_LOG.md
追加: SESSION_END 事件
Token
问题类型:
- 测试失败
- 架构违规
- 功能未标记完成
- 端到端验证失败
修复流程:
1. 尝试自动修复测试失败
工具: Bash + AI 分析
方法:
- 分析测试失败日志
- 定位失败原因
- 修改代码修复问题
Token 消耗: ~3000 tokens
2. 重新运行测试
工具: Bash
命令: make test
Token 消耗: ~1000 tokens
3. 如果测试仍然失败:
- 失败次数 +1
- 如果失败次数 < 3 → 重试修复(返回步骤 1)
- 如果失败次数 ≥ 3 →
问题类型:
- 无法编译
- 文件损坏
- 依赖缺失
修复流程:
1. 立即回滚到上一个清洁提交
工具: Bash
命令:
- 查找上一个清洁提交:git log --grep="clean-state: true" --oneline -1
- 如果没有清洁提交,使用最近一次成功构建的提交:git log --grep="BUILD_SUCCESS" --oneline -1
- 如果都没有,使用最近一次提交:git log --oneline -1
2. 执行回滚
工具: Bash
命令: git reset --hard {last-clean-commit}
Token 消耗: ~500 tokens
3. 记录回滚事件
工具: Edit
文件: .EnjoyHarness/EVENT_LOG.md
追加内容:
- 时间戳:2026-03-28T12:35:00
- 事件类型:ROLLBACK
- 回滚原因:CRITICAL_ISSUES
工具: Skill
技能: harness-check-clean-state
Token 消耗: ~3400 tokens
目的: 验证修复或回滚是否成功
如果检查结果 == CLEAN:
- 输出"清洁状态已恢复"
- 继续下一步(触发 harness-track-feature-progress)
如果检查结果 != CLEAN:
- 失败次数 +1
- 如果失败次数 < 3 → 返回 Step 2(重新修复)
- 如果失败次数 ≥ 3 → 判定是否进入真实阻塞升级(Step 5)
工具: Skill
技能: harness-escalate-to-human
参数:
- 原因:修复失败 3 次
- 问题类型:MINOR/MODERATE/CRITICAL
- 当前功能:{current_feature}
记录到 EVENT_LOG.md:
- 时间戳:2026-03-28T12:40:00
- 事件类型:ESCALATION
- 原因:修复失败 3 次
- 需要真实阻塞升级
Token 消耗: ~200 tokens
必须满足:
harness-check-clean-state(有检查结果)如果前置条件不满足:
成功标准:
EVENT_LOG.md失败情况:
检测: 失败次数 ≥ 3
处理:
1. 记录到 EVENT_LOG.md(ERROR | FIX_FAILED_3_TIMES)
2. 判定为真实阻塞后触发 harness-escalate-to-human
3. 退出自动恢复循环
检测: git reset 失败
处理:
1. 记录到 EVENT_LOG.md(ERROR | ROLLBACK_FAILED)
2. 判定为真实阻塞后触发 harness-escalate-to-human
3. 退出自动恢复循环
检测: git log --grep="clean-state: true" 返回空
处理:
1. 使用最近一次成功构建的提交
2. 如果也没有,使用最近一次提交
3. 记录警告到 EVENT_LOG.md(WARNING | NO_CLEAN_COMMIT_FOUND)
修复成功:
- 触发 harness-check-clean-state(重新检查)
- 如果通过 → 触发 harness-track-feature-progress(标记完成)
修复失败:
- 默认返回 harness-handle-failure / 自动恢复
- 仅真实阻塞时触发 harness-escalate-to-human
触发时机:
- harness-check-clean-state 检测到不清洁状态
- 用户显式调用:"恢复清洁状态"
必须依赖:
- harness-check-clean-state(检查结果)
轻微问题修复(MINOR_ISSUES):
- Read GLOBAL_STATE.md: ~200 tokens
- 自动修复 Linter: ~1000 tokens
- 自动提交 Git: ~200 tokens
- 更新文档: ~200 tokens
- 重新检查: ~3400 tokens
总计: ~5000 tokens
中等问题修复(MODERATE_ISSUES):
- 分析测试失败: ~3000 tokens
- 修改代码: ~3000 tokens
- 重新运行测试: ~1000 tokens
- 重新检查: ~3400 tokens
总计: ~10400 tokens(含重试)
严重问题回滚(CRITICAL_ISSUES):
- Read GLOBAL_STATE.md: ~200 tokens
- 查找清洁提交: ~200 tokens
- 执行回滚: ~500
输入:
问题类型: Linter 警告(格式问题)
失败项: "Linter 无警告"
处理:
1. Read GLOBAL_STATE.md(获取 current_feature)
2. 执行 make lint --fix
3. 提交修复:git add . && git commit -m "fix: auto-fix linter warnings"
4. 更新 EVENT_LOG.md(追加 SESSION_END)
5. 调用 harness-check-clean-state(重新检查)
6. 检查通过(CLEAN)
输出:
✅ 清洁状态已恢复
修复内容: Linter 警告自动修复
提交哈希: abc1234
下一步:触发 harness-track-feature-progress(标记完成)
输入:
问题类型: 测试失败(2 个测试用例失败)
失败项: "测试通过"
处理:
1. Read GLOBAL_STATE.md
2. 分析测试失败日志
3. 定位失败原因(边界条件未处理)
4. 修改代码修复问题
5. 重新运行测试(成功)
6. 调用 harness-check-clean-state(重新检查)
7. 检查通过(CLEAN)
输出:
✅ 清洁状态已恢复
修复内容: 测试失败自动修复
失败次数: 1
修复项: 边界条件处理
下一步:触发 harness-track-feature-progress(标记完成)
输入:
问题类型: 编译失败(语法错误)
失败项: "代码编译"
处理:
1. Read GLOBAL_STATE.md
2. 查找上一个清洁提交(abc123)
3. 执行回滚:git reset --hard abc123
4. 验证回滚:make build(成功)
5. 调用 harness-check-clean-state(重新检查)
6. 检查通过(CLEAN)
输出:
✅ 清洁状态已恢复
回滚提交: abc123
回滚原因: 编译失败
下一步:重新开始当前功能开发
输入:
问题类型: 测试失败
失败次数: 3
处理:
1. 尝试修复(第 1 次)→ 失败
2. 尝试修复(第 2 次)→ 失败
3. 尝试修复(第 3 次)→ 失败
4. 失败次数 ≥ 3
5. 触发 harness-escalate-to-human
6. 记录到 EVENT_LOG.md(ESCALATION | FIX_FAILED_3_TIMES)
输出:
⚠️ 修复失败 3 次,自动恢复已穷尽
问题类型: 测试失败
当前功能: FEAT-001
失败次数: 3
下一步:进入真实阻塞升级流程
输入:
问题类型: 编译失败
回滚失败: git reset 失败
处理:
1. 尝试回滚 → 失败
2. 记录错误到 EVENT_LOG.md(ERROR | ROLLBACK_FAILED)
3. 触发 harness-escalate-to-human
输出:
🔴 回滚失败,自动恢复无法继续
问题类型: 编译失败
回滚命令: git reset --hard abc123
错误信息: fatal: Could not parse object 'abc123'
下一步:进入真实阻塞升级流程
三层兜底机制
修复优先级
失败计数
修复策略:
- MINOR_ISSUES: 快速修复(1 分钟内)
- MODERATE_ISSUES: 尝试修复(5-10 分钟)
- CRITICAL_ISSUES: 立即回滚(1 分钟内)
Token 优化:
- 避免重复读取文件
- 使用增量式状态摘要
- 并行执行多个检查项