跳到主要内容

层级 5: 智能工作流

复杂度: 所有层级 | 产物: 完整状态持久化 | 自动化: 完全自动化

层级 5 工作流提供最智能的自动化功能 - 带有顺序执行和状态持久化的自动命令链编排。它们能够自动分析需求、推荐最优命令链,并端到端执行。

概述

包含的工作流: ccw-coordinator

自动分析并推荐命令链,支持顺序执行

命令

/ccw-coordinator "使用 OAuth2 实现用户认证"
# 或者简单输入
/ccw "添加用户认证"

核心概念: 最小执行单元

定义: 一组必须作为原子组一起执行的命令,以实现有意义的工作流里程碑。

为什么重要:

  • 防止不完整状态: 避免在生成任务后停止而不执行
  • 用户体验: 用户获得完整结果,而非需要手动跟进的中间产物
  • 工作流完整性: 保持多步骤操作的逻辑连贯性

最小执行单元

规划 + 执行单元

单元名称命令目的输出
快速实现lite-plan -> lite-execute轻量级规划和立即执行工作代码
多 CLI 规划multi-cli-plan -> lite-execute多视角分析和执行工作代码
Bug 修复lite-fix -> lite-execute快速 bug 诊断和修复执行修复后的代码
完整规划 + 执行plan -> execute详细规划和执行工作代码
验证规划 + 执行plan -> plan-verify -> execute带验证的规划和执行工作代码
重新规划 + 执行replan -> execute更新计划并执行变更工作代码
TDD 规划 + 执行tdd-plan -> execute测试驱动开发规划和执行工作代码
测试生成 + 执行test-gen -> execute生成测试套件并执行生成的测试

测试单元

单元名称命令目的输出
测试验证test-fix-gen -> test-cycle-execute生成测试任务并执行测试-修复循环测试通过

审查单元

单元名称命令目的输出
代码审查 (会话)review-session-cycle -> review-fix完整审查循环并应用修复修复后的代码
代码审查 (模块)review-module-cycle -> review-fix模块审查循环并应用修复修复后的代码

三阶段工作流

阶段 1: 分析需求

解析任务描述以提取: 目标、范围、约束、复杂度和任务类型。

function analyzeRequirements(taskDescription) {
return {
goal: extractMainGoal(taskDescription), // 例如: "实现用户注册"
scope: extractScope(taskDescription), // 例如: ["auth", "user_management"]
constraints: extractConstraints(taskDescription), // 例如: ["无破坏性变更"]
complexity: determineComplexity(taskDescription), // 'simple' | 'medium' | 'complex'
task_type: detectTaskType(taskDescription) // 见下方的任务类型模式
};
}

// 任务类型检测模式
function detectTaskType(text) {
// 优先顺序 (第一个匹配胜出)
if (/fix|bug|error|crash|fail|debug|diagnose/.test(text)) return 'bugfix';
if (/tdd|test-driven|test first/.test(text)) return 'tdd';
if (/test fail|fix test|failing test/.test(text)) return 'test-fix';
if (/generate test|add test/.test(text)) return 'test-gen';
if (/review/.test(text)) return 'review';
if (/explore|brainstorm/.test(text)) return 'brainstorm';
if (/multi-perspective|comparison/.test(text)) return 'multi-cli';
return 'feature'; // 默认
}

// 复杂度评估
function determineComplexity(text) {
let score = 0;
if (/refactor|migrate|architect|system/.test(text)) score += 2;
if (/multiple|across|all|entire/.test(text)) score += 2;
if (/integrate|api|database/.test(text)) score += 1;
if (/security|performance|scale/.test(text)) score += 1;
return score >= 4 ? 'complex' : score >= 2 ? 'medium' : 'simple';
}

阶段 2: 发现命令并推荐命令链

使用基于端口匹配的动态命令链组装。

向用户显示:

推荐命令链:

管道 (可视化):
需求 -> lite-plan -> 计划 -> lite-execute -> 代码 -> test-cycle-execute -> 测试通过

命令:
1. /workflow:lite-plan
2. /workflow:lite-execute
3. /workflow:test-cycle-execute

继续? [确认 / 显示详情 / 调整 / 取消]

阶段 3: 顺序执行命令链

async function executeCommandChain(chain, analysis) {
const sessionId = `ccw-coord-${Date.now()}`;
const stateDir = `.workflow/.ccw-coordinator/${sessionId}`;

// 初始化状态
const state = {
session_id: sessionId,
status: 'running',
created_at: new Date().toISOString(),
analysis: analysis,
command_chain: chain.map((cmd, idx) => ({ ...cmd, index: idx, status: 'pending' })),
execution_results: [],
prompts_used: []
};

// 保存初始状态
Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));

for (let i = 0; i < chain.length; i++) {
const cmd = chain[i];

// 组装提示词
let prompt = formatCommand(cmd, state.execution_results, analysis);
prompt += `\n\nTask: ${analysis.goal}`;
if (state.execution_results.length > 0) {
prompt += '\nPrevious results:\n';
state.execution_results.forEach(r => {
if (r.session_id) {
prompt += `- ${r.command}: ${r.session_id}\n`;
}
});
}

// 在后台启动 CLI
const taskId = Bash(
`ccw cli -p "${escapePrompt(prompt)}" --tool claude --mode write`,
{ run_in_background: true }
).task_id;

// 保存检查点
state.execution_results.push({
index: i,
command: cmd.command,
status: 'in-progress',
task_id: taskId,
session_id: null,
artifacts: [],
timestamp: new Date().toISOString()
});

// 在此停止 - 等待 hook 回调
Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));
break;
}

state.status = 'waiting';
Write(`${stateDir}/state.json`, JSON.stringify(state, null, 2));
return state;
}

状态文件结构

位置: .workflow/.ccw-coordinator/{session_id}/state.json

{
"session_id": "ccw-coord-20250203-143025",
"status": "running|waiting|completed|failed",
"created_at": "2025-02-03T14:30:25Z",
"updated_at": "2025-02-03T14:35:45Z",
"analysis": {
"goal": "实现用户注册",
"scope": ["authentication", "user_management"],
"constraints": ["无破坏性变更"],
"complexity": "medium",
"task_type": "feature"
},
"command_chain": [
{
"index": 0,
"command": "/workflow:plan",
"name": "plan",
"status": "completed"
},
{
"index": 1,
"command": "/workflow:execute",
"name": "execute",
"status": "running"
}
],
"execution_results": [
{
"index": 0,
"command": "/workflow:plan",
"status": "completed",
"task_id": "task-001",
"session_id": "WFS-plan-20250203",
"artifacts": ["IMPL_PLAN.md"],
"timestamp": "2025-02-03T14:30:25Z",
"completed_at": "2025-02-03T14:30:45Z"
}
]
}

完整生命周期决策流程图

使用场景

何时使用

  • 复杂的多步骤工作流
  • 不确定使用哪些命令
  • 需要端到端自动化
  • 需要完整的状态跟踪和可恢复性
  • 团队协作需要统一的执行流程

何时不使用

  • 简单的单命令任务 (直接使用层级 1-4)
  • 已经知道确切的所需命令 (直接使用层级 1-4)

与其他层级的关系

层级手动程度CCW Coordinator 角色
层级 1-4手动选择命令自动组合这些命令
层级 5自动选择命令智能编排器

CCW Coordinator 内部使用层级 1-4:

  • 分析任务 -> 自动选择合适的层级
  • 组装命令链 -> 包含层级 1-4 的命令
  • 顺序执行 -> 遵循最小执行单元

相关工作流

命令参考

参见 命令文档 了解:

  • /ccw-coordinator - 智能工作流编排器
  • /ccw - 主工作流编排器