Files
tools-show/.agents/skills/executing-plans/SKILL.md

272 lines
6.7 KiB
Markdown
Raw Normal View History

2026-04-11 20:46:55 +08:00
---
name: executing-plans
description: 当有书面实施计划需要在会话中执行时使用。加载计划,审阅后执行所有任务,完成后报告。当用户提及"执行计划"、"实施计划"、"运行计划"、"开始执行"或计划文档已准备好实施时触发。
license: MIT
metadata:
version: "3.0.0"
---
# 执行计划技能
本技能用于执行书面实施计划,严格遵循文档步骤。
---
## 核心原则
### 执行优先
在计划完成前,请勿:
- 跳过审阅步骤
- 跳过验证步骤
- 在主分支上操作(除非获得明确批准)
- 猜测或假设
### 会话状态管理
使用统一的会话状态文件跟踪进度:
- **路径**`design/session-state.md`
- **模板**`references/session-state-template.md`(共享)
**操作时机**
- 技能激活时 → **立即创建/更新状态文件**
- 完成任务后 → **立即更新状态文件**
- 每轮对话开始时 → 读取状态文件恢复上下文
- **每个 **阶段/任务** 完成后 → 立即更新状态文件**
### 终止条件
本技能的唯一终止方式是完成所有任务并生成完成报告。
---
## 任务状态
| 状态 | 说明 |
| ------ | ------------------------ |
| 已完成 | 任务已完成,所有验证通过 |
| 进行中 | 任务正在执行中 |
| 待执行 | 任务尚未开始 |
| 阻塞 | 任务因问题被阻塞 |
---
## 工作流程
### 阶段 1加载并审阅计划
**目标**:加载计划文档,进行批判性审阅。
**执行动作**
1. 运行 `git branch --show-current` 确认当前分支
2. 如果在 main/master 分支,停止并询问是否继续
3. 读取计划文档
4. 批判性审阅计划
5. **验证测试覆盖**
**审阅检查清单**
- [ ] 目标是否清晰且可实现?
- [ ] 所有文件路径是否精确且正确?
- [ ] 代码片段是否完整(非占位符)?
- [ ] 测试命令对项目是否准确?
- [ ] 每个步骤是否足够细粒度2-5分钟
- [ ] 每个任务是否都包含测试步骤?
- [ ] 测试文件路径是否明确且完整?
- [ ] 测试用例是否覆盖主要功能?
**测试覆盖验证**
⚠️ **强制检查项**
- 检查每个任务是否定义了测试文件路径
- 验证测试文件路径不为空、不是占位符
- 确认测试用例覆盖了核心功能
- 如果发现测试缺失,立即停止并要求补充测试计划
**决策点**
- 若发现疑虑 → 记录问题,与用户讨论后再继续
- 若测试覆盖不足 → 要求返回 writing-plan 补充测试
- 若无疑虑 → 创建任务列表,进入阶段 2
**完成标准**:计划已审阅,测试覆盖已验证,任务列表已创建
---
### 阶段 2执行任务
**目标**:按计划执行每个任务。
**执行规则**
对于计划中的每个任务:
1. 在任务列表中将任务标记为"进行中"
2. **验证测试文件存在**(如果不存在,先创建测试文件)
3. 完全按照书面执行每个步骤
4. 按照 TDD 流程执行测试,测试必须通过,测试失败必须修复
5. 运行指定的验证
6. **检查是否需要添加代码注释**
7. 在任务列表中将任务标记为"已完成"
8. 更新会话状态文件
9. 如果计划指定,则提交
**添加代码注释调用格式**
```
调用 code-commentator 技能,目标文件:[文件路径]
```
**步骤执行规则**
- 修改前先读取现有文件
- 使用计划中的确切代码
- 按计划中指定的方式执行命令
- 检查实际输出是否与预期输出匹配
**验证要求**
每个任务在进入下一个之前必须通过其验证:
- 测试必须通过(不仅仅是运行)
- 构建必须成功
- Lint 必须通过
- 代码注释已添加(如需要)
**错误处理**
错误发生时:
1. 记录错误到会话状态文件
2. 停止并寻求帮助
**完成标准**:所有任务已执行,所有测试已通过,代码注释已添加,验证已通过
---
### 阶段 3完成与报告
**目标**:生成完成报告,更新项目上下文。
**执行动作**
1. 运行最终验证套件
2. 更新会话状态文件标记完成
3. 生成完成报告
4. **使用 project-context 技能更新项目上下文**
5. **使用 project-context 技能更新用户画像**(如果识别到新的偏好)
**完成报告格式**
```markdown
## 实施完成
**计划**[计划文件路径]
**状态**:✅ 所有任务已完成
### 摘要
[已构建内容的简要描述]
### 变更文件
- 新建:[新文件列表]
- 修改:[修改文件列表]
### 验证结果
- 测试:✅ 通过
- 构建:✅ 成功
- Lint✅ 干净
```
**完成标准**:报告已生成,项目上下文已更新,用户画像已更新(如有变化)
---
## 何时停止并寻求帮助
**在以下情况下立即停止执行**
| 情况 | 行动 |
| ---------------- | ---------------------- |
| 缺少依赖项 | 请求用户安装或提供 |
| 测试反复失败 | 调试并在卡住时寻求指导 |
| 指令不明确 | 请求澄清,不要猜测 |
| 计划存在关键缺陷 | 返回阶段一进行计划修订 |
| 出现意外错误 | 记录错误并寻求帮助 |
**停止协议**
1. 记录阻碍到会话状态文件
2. 解释尝试了什么
3. 提出具体问题
4. 等待指导
---
## 多子系统处理
当计划包含多个子系统时:
1. 读取纲领文件,识别子系统数量
2. 验证依赖关系,按执行顺序排列
3. 按依赖顺序执行每个子系统(阶段一 → 阶段二 → 阶段三)
4. 共享组件在第一个使用它的子系统中实现
---
## 被其他技能调用
当被 writing-plan 技能调用时:
**接收参数**
- `plan_path`:计划文档路径(必需)
- `subsystem_paths`:子系统计划路径列表(多子系统时必需)
- `outline_path`:纲领文件路径(如适用)
**跳过触发条件检查**,直接创建会话状态文件并进入阶段一。
---
## 参考指南
| 参考文档 | 用途 |
| ------------------------------------------ | ---------------- |
| `references/execution-state-template.md` | 执行状态记录模板 |
| `references/completion-report-template.md` | 完成报告模板 |
---
## 常见问题
### 对话中断后如何恢复?
处理方式:
1. 读取会话状态文件 `design/session-state.md`
2. 验证已完成任务的代码和测试
3. 向用户报告恢复选项
### 计划需要修改?
处理方式:
1. 返回阶段一进行计划审阅
2. 与用户讨论修改方案
3. 修改后重新执行
### 遇到阻碍?
处理方式:
1. 记录问题到会话状态文件
2. 停止并询问用户
3. 不要强行突破阻碍