team-issue

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Team Issue Resolution

团队问题解决

Unified team skill for issue processing pipeline. All team members invoke this skill with
--role=xxx
for role-specific execution.
Scope: Issue 处理流程(plan → queue → execute)。Issue 创建/发现由
issue-discover
独立处理,CRUD 管理由
issue-manage
独立处理。
用于问题处理流程的统一团队Skill。所有团队成员可通过传入
--role=xxx
参数调用该Skill,执行对应角色的任务。
适用范围:Issue 处理流程(plan → queue → execute)。Issue 的创建/发现由
issue-discover
独立处理,CRUD管理由
issue-manage
独立处理。

Architecture Overview

架构总览

┌───────────────────────────────────────────┐
│  Skill(skill="team-issue")                │
│  args="--role=xxx [issue-ids] [--mode=M]" │
└───────────────┬───────────────────────────┘
                │ Role Router
    ┌───────────┼───────────┬───────────┬───────────┬───────────┐
    ↓           ↓           ↓           ↓           ↓           ↓
┌──────────┐┌──────────┐┌──────────┐┌──────────┐┌──────────┐┌──────────┐
│coordinator││explorer  ││planner   ││reviewer  ││integrator││implementer│
│ 编排调度  ││EXPLORE-* ││SOLVE-*   ││AUDIT-*   ││MARSHAL-* ││BUILD-*   │
└──────────┘└──────────┘└──────────┘└──────────┘└──────────┘└──────────┘
┌───────────────────────────────────────────┐
│  Skill(skill="team-issue")                │
│  args="--role=xxx [issue-ids] [--mode=M]" │
└───────────────┬───────────────────────────┘
                │ Role Router
    ┌───────────┼───────────┬───────────┬───────────┬───────────┐
    ↓           ↓           ↓           ↓           ↓           ↓
┌──────────┐┌──────────┐┌──────────┐┌──────────┐┌──────────┐┌──────────┐
│coordinator││explorer  ││planner   ││reviewer  ││integrator││implementer│
│ 编排调度  ││EXPLORE-* ││SOLVE-*   ││AUDIT-*   ││MARSHAL-* ││BUILD-*   │
└──────────┘└──────────┘└──────────┘└──────────┘└──────────┘└──────────┘

Command Architecture

命令架构

roles/
├── coordinator.md      # Pipeline 编排(Phase 1/5 inline, Phase 2-4 core logic)
├── explorer.md         # 上下文分析(ACE + cli-explore-agent)
├── planner.md          # 方案设计(wraps issue-plan-agent)
├── reviewer.md         # 方案审查(技术可行性 + 风险评估)
├── integrator.md       # 队列编排(wraps issue-queue-agent)
└── implementer.md      # 代码实现(wraps code-developer)
roles/
├── coordinator.md      # Pipeline编排(第1/5阶段内联执行,第2-4阶段为核心逻辑)
├── explorer.md         # 上下文分析(ACE + cli-explore-agent)
├── planner.md          # 方案设计(封装issue-plan-agent)
├── reviewer.md         # 方案审查(技术可行性 + 风险评估)
├── integrator.md       # 队列编排(封装issue-queue-agent)
└── implementer.md      # 代码实现(封装code-developer)

Role Router

角色路由

Input Parsing

输入解析

Parse
$ARGUMENTS
to extract
--role
:
javascript
const args = "$ARGUMENTS"
const roleMatch = args.match(/--role[=\s]+(\w+)/)

if (!roleMatch) {
  // No --role: this is a coordinator entry point
  // Extract issue IDs and mode from args directly
  // → Read roles/coordinator.md and execute
  Read("roles/coordinator.md")
  return
}

const role = roleMatch[1]
const teamName = "issue"
解析
$ARGUMENTS
以提取
--role
参数:
javascript
const args = "$ARGUMENTS"
const roleMatch = args.match(/--role[=\s]+(\w+)/)

if (!roleMatch) {
  // 未传入--role参数:默认以coordinator角色启动
  // 直接从参数中提取issue ID和模式
  // → 读取roles/coordinator.md并执行
  Read("roles/coordinator.md")
  return
}

const role = roleMatch[1]
const teamName = "issue"

Role Dispatch

角色分发

javascript
const VALID_ROLES = {
  "coordinator": { file: "roles/coordinator.md", prefix: null },
  "explorer":    { file: "roles/explorer.md", prefix: "EXPLORE" },
  "planner":     { file: "roles/planner.md", prefix: "SOLVE" },
  "reviewer":    { file: "roles/reviewer.md", prefix: "AUDIT" },
  "integrator":  { file: "roles/integrator.md", prefix: "MARSHAL" },
  "implementer": { file: "roles/implementer.md", prefix: "BUILD" }
}

if (!VALID_ROLES[role]) {
  throw new Error(`Unknown role: ${role}. Available: ${Object.keys(VALID_ROLES).join(', ')}`)
}

// Read and execute role-specific logic
Read(VALID_ROLES[role].file)
// → Execute the 5-phase process defined in that file
javascript
const VALID_ROLES = {
  "coordinator": { file: "roles/coordinator.md", prefix: null },
  "explorer":    { file: "roles/explorer.md", prefix: "EXPLORE" },
  "planner":     { file: "roles/planner.md", prefix: "SOLVE" },
  "reviewer":    { file: "roles/reviewer.md", prefix: "AUDIT" },
  "integrator":  { file: "roles/integrator.md", prefix: "MARSHAL" },
  "implementer": { file: "roles/implementer.md", prefix: "BUILD" }
}

if (!VALID_ROLES[role]) {
  throw new Error(`Unknown role: ${role}. Available: ${Object.keys(VALID_ROLES).join(', ')}`)
}

// 读取并执行对应角色的逻辑
Read(VALID_ROLES[role].file)
// → 执行该文件中定义的5阶段流程

Available Roles

可用角色

RoleTask PrefixResponsibilityReuses AgentRole File
coordinator
N/APipeline 编排、模式选择、任务分派-roles/coordinator.md
explorer
EXPLORE-*上下文分析、影响面评估cli-explore-agentroles/explorer.md
planner
SOLVE-*方案设计、任务分解issue-plan-agentroles/planner.md
reviewer
AUDIT-*方案审查、风险评估- (新角色)roles/reviewer.md
integrator
MARSHAL-*冲突检测、队列编排issue-queue-agentroles/integrator.md
implementer
BUILD-*代码实现、结果提交code-developerroles/implementer.md
角色任务前缀职责复用Agent角色文件
coordinator
Pipeline编排、模式选择、任务分派-roles/coordinator.md
explorer
EXPLORE-*上下文分析、影响面评估cli-explore-agentroles/explorer.md
planner
SOLVE-*方案设计、任务分解issue-plan-agentroles/planner.md
reviewer
AUDIT-*方案审查、风险评估- (新角色)roles/reviewer.md
integrator
MARSHAL-*冲突检测、队列编排issue-queue-agentroles/integrator.md
implementer
BUILD-*代码实现、结果提交code-developerroles/implementer.md

Shared Infrastructure

共享基础设施

Role Isolation Rules

角色隔离规则

核心原则: 每个角色仅能执行自己职责范围内的工作。
核心原则: 每个角色仅能执行自己职责范围内的工作。

Output Tagging(强制)

输出标识(强制要求)

所有角色的输出必须带
[role_name]
标识前缀:
javascript
// SendMessage — content 和 summary 都必须带标识
SendMessage({
  content: `## [${role}] ...`,
  summary: `[${role}] ...`
})

// team_msg — summary 必须带标识
mcp__ccw-tools__team_msg({
  summary: `[${role}] ...`
})
所有角色的输出必须带有
[role_name]
标识前缀:
javascript
// SendMessage — content和summary都必须带标识
SendMessage({
  content: `## [${role}] ...`,
  summary: `[${role}] ...`
})

// team_msg — summary必须带标识
mcp__ccw-tools__team_msg({
  summary: `[${role}] ...`
})

Coordinator 隔离

Coordinator隔离

允许禁止
需求澄清 (AskUserQuestion)❌ 直接编写/修改代码
创建任务链 (TaskCreate)❌ 调用 issue-plan-agent 等实现类 agent
分发任务给 worker❌ 直接执行分析/审查
监控进度 (消息总线)❌ 绕过 worker 自行完成任务
汇报结果给用户❌ 修改源代码或产物文件
允许禁止
需求澄清 (AskUserQuestion)❌ 直接编写/修改代码
创建任务链 (TaskCreate)❌ 调用issue-plan-agent等实现类Agent
分发任务给worker❌ 直接执行分析/审查
监控进度 (消息总线)❌ 绕过worker自行完成任务
汇报结果给用户❌ 修改源代码或产物文件

Worker 隔离

Worker隔离

允许禁止
处理自己前缀的任务❌ 处理其他角色前缀的任务
SendMessage 给 coordinator❌ 直接与其他 worker 通信
使用 Toolbox 中声明的工具❌ 为其他角色创建任务 (TaskCreate)
委派给复用的 agent❌ 修改不属于本职责的资源
允许禁止
处理自己前缀的任务❌ 处理其他角色前缀的任务
向coordinator发送SendMessage❌ 直接与其他worker通信
使用Toolbox中声明的工具❌ 为其他角色创建任务 (TaskCreate)
委派给复用的Agent❌ 修改不属于本职责的资源

Team Configuration

团队配置

javascript
const TEAM_CONFIG = {
  name: "issue",
  sessionDir: ".workflow/.team-plan/issue/",
  msgDir: ".workflow/.team-msg/issue/",
  issueDataDir: ".workflow/issues/"
}
javascript
const TEAM_CONFIG = {
  name: "issue",
  sessionDir: ".workflow/.team-plan/issue/",
  msgDir: ".workflow/.team-msg/issue/",
  issueDataDir: ".workflow/issues/"
}

Message Bus (All Roles)

消息总线(所有角色)

Every SendMessage before, must call
mcp__ccw-tools__team_msg
to log:
javascript
mcp__ccw-tools__team_msg({
  operation: "log",
  team: "issue",
  from: role,          // current role name
  to: "coordinator",
  type: "<type>",
  summary: "[role] <summary>",
  ref: "<file_path>"   // optional
})
Message types by role:
RoleTypes
coordinator
task_assigned
,
pipeline_update
,
escalation
,
shutdown
,
error
explorer
context_ready
,
impact_assessed
,
error
planner
solution_ready
,
multi_solution
,
error
reviewer
approved
,
rejected
,
concerns
,
error
integrator
queue_ready
,
conflict_found
,
error
implementer
impl_complete
,
impl_failed
,
error
所有SendMessage调用之前,必须先调用
mcp__ccw-tools__team_msg
进行日志记录:
javascript
mcp__ccw-tools__team_msg({
  operation: "log",
  team: "issue",
  from: role,          // 当前角色名称
  to: "coordinator",
  type: "<type>",
  summary: "[role] <summary>",
  ref: "<file_path>"   // 可选参数
})
各角色对应的消息类型
角色消息类型
coordinator
task_assigned
,
pipeline_update
,
escalation
,
shutdown
,
error
explorer
context_ready
,
impact_assessed
,
error
planner
solution_ready
,
multi_solution
,
error
reviewer
approved
,
rejected
,
concerns
,
error
integrator
queue_ready
,
conflict_found
,
error
implementer
impl_complete
,
impl_failed
,
error

CLI 回退

CLI 回退方案

mcp__ccw-tools__team_msg
MCP 不可用时:
javascript
Bash(`ccw team log --team "issue" --from "${role}" --to "coordinator" --type "<type>" --summary "<摘要>" --json`)
mcp__ccw-tools__team_msg
MCP不可用时:
javascript
Bash(`ccw team log --team "issue" --from "${role}" --to "coordinator" --type "<type>" --summary "<摘要>" --json`)

Task Lifecycle (All Roles)

任务生命周期(所有角色)

javascript
// Standard task lifecycle every role follows
// Phase 1: Discovery
const tasks = TaskList()
const myTasks = tasks.filter(t =>
  t.subject.startsWith(`${VALID_ROLES[role].prefix}-`) &&
  t.owner === role &&
  t.status === 'pending' &&
  t.blockedBy.length === 0
)
if (myTasks.length === 0) return // idle
const task = TaskGet({ taskId: myTasks[0].id })
TaskUpdate({ taskId: task.id, status: 'in_progress' })

// Phase 2-4: Role-specific (see roles/{role}.md)

// Phase 5: Report + Loop — 所有输出必须带 [role] 标识
mcp__ccw-tools__team_msg({ operation: "log", team: "issue", from: role, to: "coordinator", type: "...", summary: `[${role}] ...` })
SendMessage({ type: "message", recipient: "coordinator", content: `## [${role}] ...`, summary: `[${role}] ...` })
TaskUpdate({ taskId: task.id, status: 'completed' })
// Check for next task → back to Phase 1
javascript
// 所有角色遵循的标准任务生命周期
// 阶段1:任务发现
const tasks = TaskList()
const myTasks = tasks.filter(t =>
  t.subject.startsWith(`${VALID_ROLES[role].prefix}-`) &&
  t.owner === role &&
  t.status === 'pending' &&
  t.blockedBy.length === 0
)
if (myTasks.length === 0) return // 无待处理任务
const task = TaskGet({ taskId: myTasks[0].id })
TaskUpdate({ taskId: task.id, status: 'in_progress' })

// 阶段2-4:角色专属逻辑(详见roles/{role}.md)

// 阶段5:结果汇报 + 循环 — 所有输出必须带[role]标识
mcp__ccw-tools__team_msg({ operation: "log", team: "issue", from: role, to: "coordinator", type: "...", summary: `[${role}] ...` })
SendMessage({ type: "message", recipient: "coordinator", content: `## [${role}] ...`, summary: `[${role}] ...` })
TaskUpdate({ taskId: task.id, status: 'completed' })
// 检查下一个任务 → 返回阶段1

Pipeline Modes

流水线模式

Quick Mode (1-2 simple issues):
  EXPLORE-001 → SOLVE-001 → MARSHAL-001 → BUILD-001

Full Mode (complex issues, with review):
  EXPLORE-001 → SOLVE-001 → AUDIT-001 ─┬─(approved)→ MARSHAL-001 → BUILD-001..N(parallel)
                                         └─(rejected)→ SOLVE-fix → AUDIT-002(re-review, max 2x)

Batch Mode (5-100 issues):
  EXPLORE-001..N(batch≤5) → SOLVE-001..N(batch≤3) → AUDIT-001(batch) → MARSHAL-001 → BUILD-001..M(DAG parallel)
快速模式(1-2个简单问题):
  EXPLORE-001 → SOLVE-001 → MARSHAL-001 → BUILD-001

完整模式(复杂问题,包含审查环节):
  EXPLORE-001 → SOLVE-001 → AUDIT-001 ─┬─(通过)→ MARSHAL-001 → BUILD-001..N(并行执行)
                                         └─(拒绝)→ SOLVE-fix → AUDIT-002(重新审查,最多2次)

批量模式(5-100个问题):
  EXPLORE-001..N(批量≤5) → SOLVE-001..N(批量≤3) → AUDIT-001(批量) → MARSHAL-001 → BUILD-001..M(DAG并行执行)

Mode Auto-Detection

模式自动检测

javascript
function detectMode(issueIds, userMode) {
  if (userMode) return userMode  // 用户显式指定

  const count = issueIds.length
  if (count <= 2) {
    // Check complexity via issue priority
    const issues = issueIds.map(id => JSON.parse(Bash(`ccw issue status ${id} --json`)))
    const hasHighPriority = issues.some(i => i.priority >= 4)
    return hasHighPriority ? 'full' : 'quick'
  }
  return 'batch'
}
javascript
function detectMode(issueIds, userMode) {
  if (userMode) return userMode  // 用户显式指定模式

  const count = issueIds.length
  if (count <= 2) {
    // 通过问题优先级判断复杂度
    const issues = issueIds.map(id => JSON.parse(Bash(`ccw issue status ${id} --json`)))
    const hasHighPriority = issues.some(i => i.priority >= 4)
    return hasHighPriority ? 'full' : 'quick'
  }
  return 'batch'
}

Coordinator Spawn Template

Coordinator 生成模板

javascript
TeamCreate({ team_name: "issue" })

// Explorer
Task({
  subagent_type: "general-purpose",
  team_name: "issue",
  name: "explorer",
  prompt: `你是 team "issue"EXPLORER
当你收到 EXPLORE-* 任务时,调用 Skill(skill="team-issue", args="--role=explorer") 执行。

当前需求: ${taskDescription}
约束: ${constraints}
javascript
TeamCreate({ team_name: "issue" })

// Explorer
Task({
  subagent_type: "general-purpose",
  team_name: "issue",
  name: "explorer",
  prompt: `你是team "issue"EXPLORER
当你收到EXPLORE-*任务时,调用Skill(skill="team-issue", args="--role=explorer")执行。

当前需求: ${taskDescription}
约束: ${constraints}

角色准则(强制)

角色准则(强制要求)

  • 你只能处理 EXPLORE-* 前缀的任务,不得执行其他角色的工作
  • 所有输出(SendMessage、team_msg)必须带 [explorer] 标识前缀
  • 仅与 coordinator 通信,不得直接联系其他 worker
  • 不得使用 TaskCreate 为其他角色创建任务
  • 你只能处理EXPLORE-*前缀的任务,不得执行其他角色的工作
  • 所有输出(SendMessage、team_msg)必须带[explorer]标识前缀
  • 仅与coordinator通信,不得直接联系其他worker
  • 不得使用TaskCreate为其他角色创建任务

消息总线(必须)

消息总线(必须遵守)

每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。
工作流程:
  1. TaskList → 找到 EXPLORE-* 任务
  2. Skill(skill="team-issue", args="--role=explorer") 执行
  3. team_msg log + SendMessage 结果给 coordinator(带 [explorer] 标识)
  4. TaskUpdate completed → 检查下一个任务` })
// Planner Task({ subagent_type: "general-purpose", team_name: "issue", name: "planner", prompt: `你是 team "issue" 的 PLANNER。
当你收到 SOLVE-* 任务时,调用 Skill(skill="team-issue", args="--role=planner") 执行。
当前需求: ${taskDescription} 约束: ${constraints}
每次SendMessage前,先调用mcp__ccw-tools__team_msg记录日志。
工作流程:
  1. TaskList → 找到EXPLORE-*任务
  2. 调用Skill(skill="team-issue", args="--role=explorer")执行
  3. 调用team_msg记录日志 + 向coordinator发送SendMessage结果(带[explorer]标识)
  4. 更新任务状态为completed → 检查下一个任务` })
// Planner Task({ subagent_type: "general-purpose", team_name: "issue", name: "planner", prompt: `你是team "issue"的PLANNER。
当你收到SOLVE-*任务时,调用Skill(skill="team-issue", args="--role=planner")执行。
当前需求: ${taskDescription} 约束: ${constraints}

角色准则(强制)

角色准则(强制要求)

  • 你只能处理 SOLVE-* 前缀的任务
  • 所有输出必须带 [planner] 标识前缀
  • 仅与 coordinator 通信
  • 你只能处理SOLVE-*前缀的任务
  • 所有输出必须带[planner]标识前缀
  • 仅与coordinator通信

消息总线(必须)

消息总线(必须遵守)

每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。
工作流程:
  1. TaskList → 找到 SOLVE-* 任务
  2. Skill(skill="team-issue", args="--role=planner") 执行
  3. team_msg log + SendMessage 结果给 coordinator
  4. TaskUpdate completed → 检查下一个任务` })
// Reviewer Task({ subagent_type: "general-purpose", team_name: "issue", name: "reviewer", prompt: `你是 team "issue" 的 REVIEWER。
当你收到 AUDIT-* 任务时,调用 Skill(skill="team-issue", args="--role=reviewer") 执行。
当前需求: ${taskDescription} 约束: ${constraints}
每次SendMessage前,先调用mcp__ccw-tools__team_msg记录日志。
工作流程:
  1. TaskList → 找到SOLVE-*任务
  2. 调用Skill(skill="team-issue", args="--role=planner")执行
  3. 调用team_msg记录日志 + 向coordinator发送SendMessage结果
  4. 更新任务状态为completed → 检查下一个任务` })
// Reviewer Task({ subagent_type: "general-purpose", team_name: "issue", name: "reviewer", prompt: `你是team "issue"的REVIEWER。
当你收到AUDIT-*任务时,调用Skill(skill="team-issue", args="--role=reviewer")执行。
当前需求: ${taskDescription} 约束: ${constraints}

角色准则(强制)

角色准则(强制要求)

  • 你只能处理 AUDIT-* 前缀的任务
  • 所有输出必须带 [reviewer] 标识前缀
  • 仅与 coordinator 通信
  • 你是质量门控角色,审查方案但不修改代码
  • 你只能处理AUDIT-*前缀的任务
  • 所有输出必须带[reviewer]标识前缀
  • 仅与coordinator通信
  • 你是质量门控角色,审查方案但不修改代码

消息总线(必须)

消息总线(必须遵守)

每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。
工作流程:
  1. TaskList → 找到 AUDIT-* 任务
  2. Skill(skill="team-issue", args="--role=reviewer") 执行
  3. team_msg log + SendMessage 结果给 coordinator
  4. TaskUpdate completed → 检查下一个任务` })
// Integrator Task({ subagent_type: "general-purpose", team_name: "issue", name: "integrator", prompt: `你是 team "issue" 的 INTEGRATOR。
当你收到 MARSHAL-* 任务时,调用 Skill(skill="team-issue", args="--role=integrator") 执行。
当前需求: ${taskDescription} 约束: ${constraints}
每次SendMessage前,先调用mcp__ccw-tools__team_msg记录日志。
工作流程:
  1. TaskList → 找到AUDIT-*任务
  2. 调用Skill(skill="team-issue", args="--role=reviewer")执行
  3. 调用team_msg记录日志 + 向coordinator发送SendMessage结果
  4. 更新任务状态为completed → 检查下一个任务` })
// Integrator Task({ subagent_type: "general-purpose", team_name: "issue", name: "integrator", prompt: `你是team "issue"的INTEGRATOR。
当你收到MARSHAL-*任务时,调用Skill(skill="team-issue", args="--role=integrator")执行。
当前需求: ${taskDescription} 约束: ${constraints}

角色准则(强制)

角色准则(强制要求)

  • 你只能处理 MARSHAL-* 前缀的任务
  • 所有输出必须带 [integrator] 标识前缀
  • 仅与 coordinator 通信
  • 你只能处理MARSHAL-*前缀的任务
  • 所有输出必须带[integrator]标识前缀
  • 仅与coordinator通信

消息总线(必须)

消息总线(必须遵守)

每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。
工作流程:
  1. TaskList → 找到 MARSHAL-* 任务
  2. Skill(skill="team-issue", args="--role=integrator") 执行
  3. team_msg log + SendMessage 结果给 coordinator
  4. TaskUpdate completed → 检查下一个任务` })
// Implementer Task({ subagent_type: "general-purpose", team_name: "issue", name: "implementer", prompt: `你是 team "issue" 的 IMPLEMENTER。
当你收到 BUILD-* 任务时,调用 Skill(skill="team-issue", args="--role=implementer") 执行。
当前需求: ${taskDescription} 约束: ${constraints}
每次SendMessage前,先调用mcp__ccw-tools__team_msg记录日志。
工作流程:
  1. TaskList → 找到MARSHAL-*任务
  2. 调用Skill(skill="team-issue", args="--role=integrator")执行
  3. 调用team_msg记录日志 + 向coordinator发送SendMessage结果
  4. 更新任务状态为completed → 检查下一个任务` })
// Implementer Task({ subagent_type: "general-purpose", team_name: "issue", name: "implementer", prompt: `你是team "issue"的IMPLEMENTER。
当你收到BUILD-*任务时,调用Skill(skill="team-issue", args="--role=implementer")执行。
当前需求: ${taskDescription} 约束: ${constraints}

角色准则(强制)

角色准则(强制要求)

  • 你只能处理 BUILD-* 前缀的任务
  • 所有输出必须带 [implementer] 标识前缀
  • 仅与 coordinator 通信
  • 你只能处理BUILD-*前缀的任务
  • 所有输出必须带[implementer]标识前缀
  • 仅与coordinator通信

消息总线(必须)

消息总线(必须遵守)

每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。
工作流程:
  1. TaskList → 找到 BUILD-* 任务
  2. Skill(skill="team-issue", args="--role=implementer") 执行
  3. team_msg log + SendMessage 结果给 coordinator
  4. TaskUpdate completed → 检查下一个任务` })
undefined
每次SendMessage前,先调用mcp__ccw-tools__team_msg记录日志。
工作流程:
  1. TaskList → 找到BUILD-*任务
  2. 调用Skill(skill="team-issue", args="--role=implementer")执行
  3. 调用team_msg记录日志 + 向coordinator发送SendMessage结果
  4. 更新任务状态为completed → 检查下一个任务` })
undefined

Error Handling

错误处理

ScenarioResolution
Unknown --role valueError with available role list
Missing --role argDefault to coordinator role
Role file not foundError with expected path (roles/{name}.md)
Task prefix conflictLog warning, proceed
场景处理方案
未知的--role参数值返回错误信息,列出所有可用角色
缺少--role参数默认使用coordinator角色
角色文件未找到返回错误信息,给出预期文件路径(roles/{name}.md)
任务前缀冲突记录警告日志,继续执行