✨ feat(plan_progress): auto-detect env for blocked plans
This commit is contained in:
@@ -78,28 +78,63 @@
|
||||
| `执行主循环`、`继续执行`、`下一个 Plan` | 常规模式 | 遇确认场景可询问用户 |
|
||||
| `自动执行所有 Plan` | 无交互模式 | 不询问,按规则自动处理 |
|
||||
|
||||
0. 选择 Plan:
|
||||
**Plan 状态**:
|
||||
|
||||
| 状态 | 含义 |
|
||||
| ----------- | ------------------------- |
|
||||
| pending | 待执行 |
|
||||
| in-progress | 执行中(崩溃恢复用) |
|
||||
| done | 已完成 |
|
||||
| blocked | 阻塞(需人工介入) |
|
||||
| skipped | 跳过(Plan 不再需要执行) |
|
||||
|
||||
> 说明:`skipped` 仅用于永久不再执行;如需恢复执行,需手动改回 `pending`。
|
||||
|
||||
**环境阻塞格式**:`blocked: env:<环境>:<Task列表>`
|
||||
|
||||
- 示例:`blocked: env:windows:Task2,Task4`
|
||||
- 含义:需要在指定环境执行列出的 Task
|
||||
- 约束:`Task` 列表使用英文逗号分隔,不要包含空格,便于解析
|
||||
|
||||
**流程**:
|
||||
|
||||
1. 检测环境:
|
||||
- 由 `plan_progress.py` 自动识别当前环境(`windows` / `linux` / `darwin`)
|
||||
2. 选择 Plan:
|
||||
- 运行 `python {{PLAYBOOK_SCRIPTS}}/plan_progress.py select -plans docs/plans -progress memory-bank/progress.md`
|
||||
- 如无可执行 Plan,跳到步骤 4
|
||||
1. 阅读 Plan:
|
||||
- 返回第一个可执行的 Plan:
|
||||
- `pending` 或 `in-progress` 的 Plan
|
||||
- `blocked: env:<当前环境>:...` 的 Plan(环境匹配时恢复执行)
|
||||
- 如无可执行 Plan,跳到步骤 7
|
||||
- **注意**:每次 select 会重新扫描 `docs/plans/` 目录,支持动态添加 Plan
|
||||
3. 标记开始:
|
||||
- 运行 `python {{PLAYBOOK_SCRIPTS}}/plan_progress.py record -plan <plan> -status in-progress -progress memory-bank/progress.md`
|
||||
4. 阅读 Plan:
|
||||
- 理解目标、子任务与验证标准
|
||||
2. 逐步执行:
|
||||
- 按顺序执行子任务
|
||||
- 每步完成后进行必要验证(测试/日志/diff)
|
||||
- 如果是从 `blocked: env:...` 恢复,只执行列出的 Task
|
||||
5. 逐步执行:
|
||||
- 按顺序执行 Task
|
||||
- 每个 Task 完成后进行必要验证(测试/日志/diff)
|
||||
- **Task 失败处理**:
|
||||
- 环境不匹配(`command not found`、路径不存在)→ 记录该 Task 及所需环境,**继续下一个 Task**
|
||||
- 其他阻塞 → 记录原因,跳到步骤 6 标记 Plan blocked
|
||||
- **安全红线**(明文密钥等)→ 立即停止,不继续后续 Plan
|
||||
- 遇到歧义/风险/决策点:
|
||||
- 常规模式:记录到回复中,可询问用户
|
||||
- 无交互模式:按「需要确认的场景」规则自动处理
|
||||
- 遇到阻塞:记录原因,跳到步骤 3 标记 blocked
|
||||
- **安全红线阻塞**(发现明文密钥等):立即停止,不继续后续 Plan
|
||||
3. 记录结果:
|
||||
- 完成:`python {{PLAYBOOK_SCRIPTS}}/plan_progress.py record -plan <plan> -status done -progress memory-bank/progress.md`
|
||||
- 阻塞:`python {{PLAYBOOK_SCRIPTS}}/plan_progress.py record -plan <plan> -status blocked -progress memory-bank/progress.md -note <原因>`
|
||||
- 回到步骤 0 继续下一个 Plan
|
||||
4. 汇总报告(所有 Plan 处理完毕后):
|
||||
- 列出已完成的 Plan
|
||||
- 列出阻塞的 Plan 及原因
|
||||
- 列出待确认的歧义/风险/决策点
|
||||
6. 记录结果:
|
||||
- 全部完成:`... -status done ...`
|
||||
- 有 Task 因环境跳过:`... -status blocked ... -note "env:<所需环境>:<Task列表>"`
|
||||
- 其他阻塞:`... -status blocked ... -note "<原因>"`
|
||||
- 跳过整个 Plan:`... -status skipped ... -note "<原因>"`
|
||||
- 回到步骤 2 继续下一个 Plan
|
||||
7. 汇总报告(所有 Plan 处理完毕后):
|
||||
- 已完成的 Plan
|
||||
- 阻塞/跳过的 Plan 及原因
|
||||
- 需要在其他环境执行的 Plan(`blocked: env:...`)
|
||||
- 待确认的歧义/风险/决策点
|
||||
- 如需记录重要决策,写入 `memory-bank/decisions.md`
|
||||
8. **结束**:主循环终止
|
||||
|
||||
## Plan 规则
|
||||
|
||||
|
||||
Reference in New Issue
Block a user