Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/konglong87/enjoy_harness_ai --skill harness-adjust-granularity명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | harness-adjust-granularity |
| description | 监控执行过程,动态调整粒度等级,自动拆分或合并功能项 |
| trigger_words | ["harness-adjust-granularity","动态调整粒度","adjust granularity","granularity adjustment"] |
| priority | MEDIUM |
| dependencies | ["harness-generate-feature-list"] |
| version | v1.0.0 |
监控执行过程,动态调整粒度等级,自动拆分或合并功能项,确保项目执行效率最优。
核心职责:
工具: Read
文件: .EnjoyHarness/feature_list.json
监控维度:
维度 1: 完成率监控
计算公式:
completion_rate = completed_features / total_features
数据来源:
- completed_features: 统计 passes: true 的功能数
- total_features: 功能总数
Token 消耗: ~100 tokens
维度 2: 失败率监控
计算公式:
failure_rate = failed_features / completed_features
数据来源:
- failed_features: 统计 error_count > 0 的功能数
- completed_features: 已完成功能数
阈值:
- 正常: failure_rate < 10%
- 警告: failure_rate >= 10% 且 < 30%
- 异常: failure_rate >= 30%(触发粒度调整)
Token 消耗: ~100 tokens
维度 3: 平均执行时间监控
计算公式:
avg_execution_time = sum(execution_times) / completed_features
数据来源:
- execution_times: 从 EVENT_LOG.md 提取每个功能的执行时间
- completed_features: 已完成功能数
偏差检测:
- 实际执行时间 vs 预估时间
- 偏差率 = |actual - estimated| / estimated
- 阈值: 偏差率 > 50%(触发粒度调整)
Token 消耗: ~200 tokens
检测规则(按优先级从高到低):
规则 1: 执行时间过长(拆分触发)
条件:
- 单个功能项执行时间 > 2 * estimated_hours
- 或 Token 消耗 > 50000 tokens per 功能项
判定:
- 粒度过粗(需要拆分)
- 调整方向: COARSE → MEDIUM 或 MEDIUM → FINE
动作:
- 标记该功能项为"需要拆分"
- 记录到 EVENT_LOG.md(GRANULARITY_ADJUST | SPLIT)
Token 消耗: ~100 tokens
规则 2: 执行时间过短(合并触发)
条件:
- 单个功能项执行时间 < 0.5 * estimated_hours
- 且连续 5 个功能项都过短
判定:
-
调整策略:
策略 1: 拆分功能项(FINE 化)
适用场景:
- 执行时间过长
- 失败率异常
- Token 消耗异常
拆分规则:
- COARSE → MEDIUM: 拆分为 3-5 个功能项(每个 2-4 小时)
- MEDIUM → FINE: 拆分为 2-3 个功能项(每个 1-2 小时)
- 保持功能完整性(拆分后仍可独立验证)
示例:
原功能: FEAT-001: 用户管理(COARSE, 8h)
拆分为:
- FEAT-001-1: 用户注册(MEDIUM, 3h)
- FEAT-001-2: 用户登录(MEDIUM, 3h)
- FEAT-001-3: 用户资料管理(MEDIUM, 2h)
Token 消耗: ~500 tokens
工具: Read + Edit
文件: .EnjoyHarness/feature_list.json
更新操作:
操作 1: 重新编号
规则:
- 拆分后: FEAT-001 → FEAT-001-1, FEAT-001-2, FEAT-001-3
- 合并后: FEAT-001, FEAT-002, FEAT-003 → FEAT-001(合并)
- 保持 ID 唯一性(避免冲突)
Token 消耗: ~200 tokens
操作 2: 更新依赖关系
规则:
- 拆分后:
- 原依赖: FEAT-001 依赖 FEAT-002
- 新依赖: FEAT-001-1 依赖 FEAT-002(或 FEAT-002-1)
- 合并后:
- 原依赖: FEAT-001 依赖 FEAT-002, FEAT-003
-
工具: Edit
文件: .EnjoyHarness/EVENT_LOG.md
追加内容:
- 时间戳: {timestamp}
- 事件类型: GRANULARITY_ADJUST
- 调整类型: SPLIT/MERGE
- 原因: {reason}
- 原功能ID: {original_ids}
- 新功能ID: {new_ids}
- 性能对比:
- 原预估时间: {original_estimated}
- 新预估时间: {new_estimated}
- 调整效果: {improvement}
Token 消耗: ~100 tokens
报告格式:
🔧 粒度调整报告
调整时间: {timestamp}
调整类型: {adjustment_type}(SPLIT/MERGE)
调整原因:
- 检测到的问题: {detected_issue}
- 触发规则: {trigger_rule}
- 数据支持: {data_evidence}
调整详情:
原功能项:
- ID: {original_ids}
- 描述: {original_descriptions}
- 预估时间: {original_estimated_hours}
- 实际执行时间: {actual_hours}
新功能项:
- ID: {new_ids}
- 描述: {new_descriptions}
- 预估时间: {new_estimated_hours}
- 预期执行时间: {expected_hours}
性能对比:
- 原预估时间: {original_total} 小时
- 新预估时间: {new_total} 小时
- 时间优化: {time_improvement}
{}
必须满足:
harness-generate-feature-list(功能清单已生成)如果前置条件不满足:
成功标准:
失败情况:
检测: 完成功能数 < 5 或完成率 < 20%
处理:
1. 输出提示: "统计数据不足,建议等待更多功能完成后再调整"
2. 显示当前进度:
- 完成功能数: {completed_features}
- 总功能数: {total_features}
- 完成率: {completion_rate}%
3. 建议: "等待完成率 ≥ 20% 后再触发调整"
检测: 总功能数 < 5
处理:
1. 输出提示: "功能项太少,不建议调整粒度"
2. 显示功能总数: {total_features}
3. 建议: "功能项太少时,调整粒度可能适得其反"
检测: 调整后的依赖关系包含循环
处理:
1. 检测循环依赖: A → B → C → A
2. 输出循环依赖链
3. 自动解除循环依赖:
- 移除优先级最低的依赖
- 或拆分依赖关系
4. 记录警告到 EVENT_LOG.md
检测: Python jsonschema 验证失败
处理:
1. 输出验证错误详情
2. 回滚调整操作(恢复原功能清单)
3. 提示用户手动调整
4. 记录错误到 EVENT_LOG.md
调整成功:
- 触发 harness-track-feature-progress(使用新粒度继续开发)
- 更新 GLOBAL_STATE.md(granularity_level 字段)
触发时机:
- 定期监控(每隔 10% 完成率触发一次)
- 异常检测(失败率异常、Token 消耗异常)
- 用户显式调用:"调整粒度"
必须依赖:
- harness-generate-feature-list(功能清单生成)
单次调整:
- 监控执行进度: ~400 tokens
- 检测粒度不合理: ~400 tokens
- 触发粒度调整: ~500 tokens
- 更新功能清单: ~600 tokens
- 记录调整历史: ~100 tokens
- 输出调整报告: ~300 tokens
总计: ~2300 tokens
性能对比:
- 调整前 Token 消耗: 可能异常高(如 50000+ tokens)
- 调整后 Token 消耗: 优化至正常水平(如 20000 tokens)
- Token 优化: 降低 60%
总体优化:
- 执行时间优化: 30-50%
- Token 消耗优化: 60%
输入:
监控数据:
- 完成率: 30%
- FEAT-001: 用户管理
- 预估时间: 8 小时
- 实际执行时间: 18 小时
- 偏差率: 125%(触发拆分)
处理:
1. 检测到执行时间过长(18h vs 8h)
2. 判定: 粒度过粗(COARSE),需要拆分
3. 拆分 FEAT-001:
- FEAT-001-1: 用户注册(MEDIUM, 3h)
- FEAT-001-2: 用户登录(MEDIUM, 3h)
- FEAT-001-3: 用户资料管理(MEDIUM, 2h)
4. 更新功能清单
5. 输出调整报告
输出:
🔧 粒度调整报告
调整类型: SPLIT(拆分)
调整原因:
- 检测到的问题:
输入:
监控数据:
- 完成率: 40%
- 连续 5 个功能项执行时间过短:
- FEAT-010: 1h(预估 3h)
- FEAT-011: 0.8h(预估 2h)
- FEAT-012: 0.9h(预估 2h)
- FEAT-013: 1.1h(预估 3h)
- FEAT-014: 0.7h(预估 2h)
处理:
1. 检测到执行时间过短(连续 5 个功能项)
2. 判定: 粒度过细(FINE),需要合并
3. 合并 FEAT-010 ~ FEAT-014:
- FEAT-010: 用户管理增强(MEDIUM, 4h,包含原 5 个功能项)
4. 更新功能清单
5.
输入:
监控数据:
- 完成率: 50%
- 失败率: 35%(异常)
- 连续失败功能项: FEAT-020, FEAT-021, FEAT-022
处理:
1. 检测到失败率异常(35% > 30%)
2. 判定: 功能项过于复杂,需要拆分
3. 拆分失败的功能项:
- FEAT-020: 支付集成(COMPLEX, 10h)→ 拆分为 3 个功能项
- FEAT-020-1: 支付接口对接(MEDIUM, 4h)
- FEAT-020-2: 支付状态同步(MEDIUM, 3h)
- FEAT-020-3: 支付异常处理(MEDIUM, 3h)
4. 更新功能清单
5. 输出调整报告
输出:
🔧 粒度调整报告
调整类型: SPLIT(拆分)
调整原因:
Token 优化:
- 增量式监控(仅读取必要字段)
- 批量更新(减少重复写入)
- 缓存调整历史(避免重复计算)
执行优化:
- 异步监控(不阻塞主流程)
- 智能触发(仅在异常时调整)
- 快速回滚(调整失败时立即恢复)
总体优化:
- Token 消耗降低 60%
- 执行时间优化 30-50%
- 失败率降低 40%