名称: workflow-plan 描述: 统一规划技能 - 4阶段规划工作流、计划验证和交互式重新规划。触发条件为 “workflow:plan”、“workflow:plan-verify”、“workflow:replan”。 允许工具: Skill, Task, AskUserQuestion, TodoWrite, Read, Write, Edit, Bash, Glob, Grep
工作流计划
统一规划技能,结合4阶段规划工作流、计划质量验证和交互式重新规划。生成IMPL_PLAN.md、任务JSON文件、验证报告,并通过会话级工件更新管理计划生命周期。
架构概述
┌──────────────────────────────────────────────────────────────────┐
│ 工作流计划协调器(SKILL.md) │
│ → 按模式路由:plan | verify | replan │
│ → 纯协调器:执行阶段、解析输出、传递上下文 │
└──────────────────────────────┬───────────────────────────────────┘
│
┌───────────────────────┼───────────────────────┐
↓ ↓ ↓
┌───────────┐ ┌───────────┐ ┌───────────┐
│ 计划模式 │ │ 验证模式 │ │ 重新规划模式 │
│ (默认) │ │ 阶段5 │ │ 阶段6 │
│ 阶段1-4 │ │ │ │ │
└─────┬─────┘ └───────────┘ └───────────┘
│
┌───┼───┬───┐
↓ ↓ ↓ ↓
┌───┐┌───┐┌───┐┌───┐
│ 1 ││ 2 ││ 3 ││ 4 │
│会话││上下文││冲突││生成│
└───┘└───┘└───┘└─┬─┘
↓
┌───────────┐
│ 确认 │─── 验证 ──→ 阶段5
│ (选择) │─── 执行 ──→ Skill("workflow-execute")
└───────────┘─── 审查 ──→ 内联显示会话状态
关键设计原则
- 纯协调器:SKILL.md仅负责路由和协调;执行细节位于阶段文件中
- 渐进式阶段加载:仅在阶段即将执行时读取阶段文档
- 多模式路由:单个技能通过模式检测处理计划/验证/重新规划
- 任务附加模型:子命令任务被附加,顺序执行,然后折叠
- 自动继续:每个阶段完成后,自动执行下一个待处理阶段
- 累积状态:planning-notes.md携带跨阶段的上下文以进行N+1决策
交互式偏好收集
在分派到阶段执行之前,通过AskUserQuestion收集工作流偏好:
// ★ 统一自动模式检测:-y/--yes从$ARGUMENTS或ccw传播
const autoYes = /\b(-y|--yes)\b/.test($ARGUMENTS)
if (autoYes) {
// 自动模式:跳过所有询问,使用默认值
workflowPreferences = { autoYes: true, interactive: false }
} else {
const prefResponse = AskUserQuestion({
questions: [
{
question: "是否跳过所有确认步骤(自动模式)?",
header: "自动模式",
multiSelect: false,
options: [
{ label: "交互式(推荐)", description: "交互模式,包含确认步骤" },
{ label: "自动", description: "跳过所有确认,自动执行" }
]
}
]
})
workflowPreferences = {
autoYes: prefResponse.autoMode === 'Auto'
}
// 对于重新规划模式,也收集交互式偏好
if (mode === 'replan') {
const replanPref = AskUserQuestion({
questions: [
{
question: "是否使用交互式澄清模式?",
header: "重新规划模式",
multiSelect: false,
options: [
{ label: "标准(推荐)", description: "使用安全默认值" },
{ label: "交互式", description: "通过提问交互式澄清修改范围" }
]
}
]
})
workflowPreferences.interactive = replanPref.replanMode === 'Interactive'
}
}
workflowPreferences作为上下文变量传递给阶段执行,在阶段内引用为workflowPreferences.autoYes、workflowPreferences.interactive。
模式检测
const args = $ARGUMENTS
const mode = detectMode(args)
function detectMode(args) {
// 技能触发确定模式
if (skillName === 'workflow:plan-verify') return 'verify'
if (skillName === 'workflow:replan') return 'replan'
return 'plan' // 默认:workflow:plan
}
执行流程
计划模式(默认)
输入解析:
└─ 将用户输入转换为结构化格式(GOAL/SCOPE/CONTEXT)
阶段1:会话发现
└─ 参考:phases/01-session-discovery.md
└─ 输出:sessionId(WFS-xxx)、planning-notes.md
阶段2:上下文收集
└─ 参考:phases/02-context-gathering.md
├─ 附加任务:分析结构 → 识别集成点 → 生成包
└─ 输出:contextPath + conflictRisk
阶段3:冲突解决(条件性:conflictRisk ≥ 中等)
└─ 决策(conflictRisk检查):
├─ conflictRisk ≥ 中等 → 参考:phases/03-conflict-resolution.md
│ ├─ 附加任务:检测冲突 → 呈现给用户 → 应用策略
│ └─ 输出:修改的头脑风暴工件
└─ conflictRisk < 中等 → 跳转到阶段4
阶段4:任务生成
└─ 参考:phases/04-task-generation.md
└─ 输出:IMPL_PLAN.md、任务JSON文件、TODO_LIST.md
计划确认(用户决策门):
└─ 决策(用户选择):
├─ "验证计划质量"(推荐) → 路由到阶段5(plan-verify)
├─ "开始执行" → Skill(skill="workflow-execute")
└─ "仅审查状态" → 内联显示会话状态
验证模式
阶段5:计划验证
└─ 参考:phases/05-plan-verify.md
└─ 输出:PLAN_VERIFICATION.md,包含质量门推荐
重新规划模式
阶段6:交互式重新规划
└─ 参考:phases/06-replan.md
└─ 输出:更新的IMPL_PLAN.md、任务JSON文件、TODO_LIST.md
阶段参考文档(在阶段执行时按需读取):
| 阶段 | 文档 | 目的 | 模式 |
|---|---|---|---|
| 1 | phases/01-session-discovery.md | 创建或发现工作流会话 | plan |
| 2 | phases/02-context-gathering.md | 收集项目上下文并分析代码库 | plan |
| 3 | phases/03-conflict-resolution.md | 检测和解决冲突(条件性) | plan |
| 4 | phases/04-task-generation.md | 生成实施计划和任务JSON文件 | plan |
| 5 | phases/05-plan-verify.md | 只读验证与质量门 | verify |
| 6 | phases/06-replan.md | 带边界澄清的交互式重新规划 | replan |
核心规则
- 立即启动:第一个操作是模式检测 + TodoWrite初始化,第二个操作是阶段执行
- 无初步分析:在阶段1之前不读取文件、分析结构或收集上下文
- 解析每个输出:从每个阶段输出中提取所需数据以用于下一阶段
- 通过TodoList自动继续:检查TodoList状态以自动执行下一个待处理阶段
- 跟踪进度:使用任务附加/折叠模式动态更新TodoWrite
- 任务附加模型:技能执行附加子任务到当前工作流。协调器自身执行这些附加任务,然后在完成后折叠它们
- 渐进式阶段加载:仅在阶段即将执行时读取阶段文档
- 不要停止:连续多阶段工作流。执行完所有附加任务后,立即折叠它们并执行下一阶段
输入处理
将用户输入转换为结构化格式:
-
简单文本 → 结构化:
用户:"构建认证系统" 结构化: GOAL: 构建认证系统 SCOPE: 核心认证功能 CONTEXT: 新实现 -
详细文本 → 提取组件:
用户:"添加JWT认证,包含邮箱/密码登录和令牌刷新" 结构化: GOAL: 实现基于JWT的认证 SCOPE: 邮箱/密码登录、令牌生成、令牌刷新端点 CONTEXT: JWT令牌安全、刷新令牌轮换 -
文件参考(例如,
requirements.md) → 读取并结构化:- 读取文件内容
- 提取目标、范围、要求
- 格式化为结构化描述
数据流
计划模式
用户输入(任务描述)
↓
[转换为结构化格式]
↓ 结构化描述:
↓ GOAL: [目标]
↓ SCOPE: [边界]
↓ CONTEXT: [背景]
↓
阶段1: session:start --auto "结构化描述"
↓ 输出:sessionId
↓ 写入:planning-notes.md(用户意图部分)
↓
阶段2: context-gather --session sessionId "结构化描述"
↓ 输入:sessionId + 结构化描述
↓ 输出:contextPath(context-package.json)+ conflictRisk
↓ 更新:planning-notes.md(上下文发现 + 合并约束)
↓
阶段3: conflict-resolution [条件性:conflictRisk ≥ 中等]
↓ 输入:sessionId + contextPath + conflictRisk
↓ 输出:修改的头脑风暴工件
↓ 更新:planning-notes.md(冲突决策 + 合并约束)
↓ 如果conflictRisk为无/低 → 直接进行到阶段4
↓
阶段4: task-generate-agent --session sessionId
↓ 输入:sessionId + planning-notes.md + context-package.json + 头脑风暴工件
↓ 输出:IMPL_PLAN.md、任务JSON文件、TODO_LIST.md
↓
计划确认(用户决策门):
├─ "验证计划质量"(推荐) → 路由到阶段5
├─ "开始执行" → Skill(skill="workflow-execute")
└─ "仅审查状态" → 内联显示会话状态
会话内存流:每个阶段接收会话ID,提供访问:
- 先前任务摘要
- 现有上下文和分析
- 头脑风暴工件(可能被阶段3修改)
- 会话特定配置
验证模式
输入:--session sessionId(或自动检测)
↓
阶段5:加载工件 → 代理驱动验证 → 生成报告
↓ 输出:PLAN_VERIFICATION.md,包含质量门
重新规划模式
输入:[--session sessionId] [task-id] "要求"
↓
阶段6:模式检测 → 澄清 → 影响分析 → 备份 → 应用 → 验证
↓ 输出:更新的工件 + 变更摘要
TodoWrite模式
核心概念:动态任务附加和折叠,用于实时可见工作流执行。
关键原则
-
任务附加(阶段执行时):
- 子任务附加到协调器的TodoWrite
- 阶段2、3:多个子任务附加
- 阶段1、4:单个任务(原子性)
- 第一个附加任务标记为
in_progress,其他为pending - 协调器顺序执行这些附加任务
-
任务折叠(子任务完成后):
- 应用于阶段2、3:从TodoWrite中移除详细子任务
- 折叠为高级阶段摘要
- 阶段1、4:无需折叠(单任务,仅标记为完成)
- 保持协调器级别视图清晰
-
连续执行:完成后,自动进行到下一个待处理阶段
生命周期:初始待处理 → 阶段执行(任务附加) → 子任务执行 → 阶段完成(阶段2/3任务折叠,阶段1/4标记完成) → 下一阶段 → 重复
阶段2(任务附加):
[
{"content": "阶段1:会话发现", "status": "completed"},
{"content": "阶段2:上下文收集", "status": "in_progress"},
{"content": " → 分析代码库结构", "status": "in_progress"},
{"content": " → 识别集成点", "status": "pending"},
{"content": " → 生成上下文包", "status": "pending"},
{"content": "阶段4:任务生成", "status": "pending"}
]
阶段2(折叠后):
[
{"content": "阶段1:会话发现", "status": "completed"},
{"content": "阶段2:上下文收集", "status": "completed"},
{"content": "阶段4:任务生成", "status": "pending"}
]
阶段3(任务附加,条件性):
[
{"content": "阶段1:会话发现", "status": "completed"},
{"content": "阶段2:上下文收集", "status": "completed"},
{"content": "阶段3:冲突解决", "status": "in_progress"},
{"content": " → 通过CLI分析检测冲突", "status": "in_progress"},
{"content": " → 向用户呈现冲突", "status": "pending"},
{"content": " → 应用解决策略", "status": "pending"},
{"content": "阶段4:任务生成", "status": "pending"}
]
注意:见各阶段描述中的详细TodoWrite更新示例。
阶段后更新
每个阶段完成后,更新planning-notes.md:
- 阶段1后:使用用户意图初始化(GOAL、KEY_CONSTRAINTS)
- 阶段2后:添加上下文发现(CRITICAL_FILES、ARCHITECTURE、CONFLICT_RISK、CONSTRAINTS)
- 阶段3后:添加冲突决策(RESOLVED、MODIFIED_ARTIFACTS、CONSTRAINTS),如果执行
- 内存状态检查:重阶段(阶段2-3)后,评估上下文窗口使用;如果高(>120K tokens),触发
compact
见阶段文件的详细更新代码。
错误处理
- 解析失败:如果输出解析失败,重试命令一次,然后报告错误
- 验证失败:如果验证失败,报告哪个文件/数据缺失
- 命令失败:保持阶段
in_progress,向用户报告错误,不进行到下一阶段 - 会话未找到(验证/重新规划):报告错误,附带可用会话列表
- 任务未找到(重新规划):报告错误,附带可用任务列表
协调器检查清单
计划模式
- 阶段前:将用户输入转换为结构化格式(GOAL/SCOPE/CONTEXT)
- 在任何命令前初始化TodoWrite(阶段3在阶段2后动态添加)
- 使用结构化描述立即执行阶段1
- 从阶段1输出解析会话ID,存储在内存中
- 将会话ID和结构化描述传递给阶段2命令
- 从阶段2输出解析上下文路径,存储在内存中
- 从context-package.json提取conflictRisk:确定阶段3执行
- 如果conflictRisk ≥ 中等:启动阶段3 conflict-resolution,带sessionId和contextPath
- 等待阶段3完成执行(如果执行),验证conflict-resolution.json创建
- 如果conflictRisk为无/低:跳过阶段3,直接进行到阶段4
- 将会话ID传递给阶段4命令
- 验证所有阶段4输出
- 计划确认门:向用户呈现选择(验证 → 阶段5 / 执行 / 审查状态)
- 如果用户选择验证:读取phases/05-plan-verify.md,进程中执行阶段5
- 如果用户选择执行:Skill(skill=“workflow-execute”)
- 如果用户选择审查:内联显示会话状态
- 自动模式(workflowPreferences.autoYes):自动选择"验证计划质量",然后如果PROCEED则自动继续执行
- 每个阶段后更新TodoWrite
- 每个阶段后,基于TodoList状态自动继续到下一阶段
验证模式
- 检测/验证会话(从活动会话自动检测)
- 使用单验证任务初始化TodoWrite
- 执行阶段5验证代理
- 呈现质量门结果和下一步选项
重新规划模式
- 从$ARGUMENTS解析任务ID(IMPL-N格式,如果存在)
- 检测操作模式(任务vs会话)
- 使用重新规划特定任务初始化TodoWrite
- 执行阶段6,通过所有子阶段(澄清 → 影响 → 备份 → 应用 → 验证)
结构模板参考
最小结构:
GOAL: [要达成的目标]
SCOPE: [包含的内容]
CONTEXT: [相关信息]
详细结构(可选,当更多上下文可用时):
GOAL: [主要目标]
SCOPE: [包含的功能/组件]
CONTEXT: [现有系统、约束、依赖]
REQUIREMENTS: [具体技术要求]
CONSTRAINTS: [限制或边界]
相关技能
先决技能:
brainstorm技能 - 可选:在规划前生成基于角色的分析brainstorm技能 - 可选:通过澄清精炼头脑风暴分析
被计划模式调用(4阶段):
/workflow:session:start- 阶段1:创建或发现工作流会话phases/02-context-gathering.md- 阶段2:收集项目上下文并分析代码库(内联)phases/03-conflict-resolution.md- 阶段3:检测和解决冲突(内联,条件性)memory-capture技能 - 阶段3:内存优化(如果上下文接近限制)phases/04-task-generation.md- 阶段4:生成任务JSON文件(内联)
后续技能:
workflow-plan技能(plan-verify阶段) - 验证计划质量(也可以通过验证模式调用)- 内联显示会话状态 - 审查任务分解和当前进度
Skill(skill="workflow-execute")- 开始实施生成的任务(技能:workflow-execute)workflow-plan技能(replan阶段) - 修改计划(也可以通过重新规划模式调用)