团队超能分析Skill team-ultra-analyze

团队超能分析技能是一个深度协作分析框架,用于将单体分析工作流拆分为探索、分析、讨论、综合五个角色,通过协调器管理,支持快速、标准、深度三种管道模式,实现用户引导的渐进式理解深化。适用于代码库探索、系统评估、数据分析和团队协作场景,提高分析效率和准确性。关键词:团队协作、深度分析、代码探索、AI代理、工作流管理、管道模式、讨论循环、SEO优化。

架构设计 0 次安装 0 次浏览 更新于 3/16/2026

名称: team-ultra-analyze 描述: 统一团队技能,用于深度协作分析。所有角色通过 --role 参数调用此技能以执行角色特定任务。触发词为 “team ultra-analyze”、“team analyze”。 允许工具: TeamCreate(), TeamDelete(), SendMessage(), TaskCreate(), TaskUpdate(), TaskList(), TaskGet(), Task(), AskUserQuestion(), Read(), Write(), Edit(), Bash(), Glob(), Grep(*)

团队超能分析

深度协作分析团队技能。将单体分析工作流拆分为 5 个角色协作:探索→分析→讨论→综合。支持快速/标准/深度三种管道模式,通过讨论循环实现用户引导的渐进式理解深化。所有成员通过 --role=xxx 路由到角色执行逻辑。

架构概述

┌─────────────────────────────────────────────────────────┐
│  技能(skill="team-ultra-analyze", args="--role=xxx")    │
└──────────────────────┬──────────────────────────────────┘
                       │ 角色路由器
    ┌──────────┬───────┼───────────┬───────────┐
    ↓          ↓       ↓           ↓           ↓
┌────────┐┌────────┐┌────────┐┌──────────┐┌───────────┐
│协调器  ││探索者  ││分析员  ││讨论者    ││综合器    │
│协调-*  ││探索-*  ││分析-*  ││讨论-*    ││综合-*    │
│角色/   ││角色/   ││角色/   ││角色/     ││角色/     │
└────────┘└────────┘└────────┘└──────────┘└───────────┘

命令架构

角色/
├── 协调器/
│   ├── 角色.md              # 编排:话题澄清、管道选择、讨论循环、结果汇报
│   └── 命令/
│       ├── 分发.md         # 任务链创建与依赖管理
│       └── 监控.md         # 进度监控 + 讨论循环
├── 探索者/
│   ├── 角色.md              # 代码库探索
│   └── 命令/
│       └── 探索.md         # cli-explore-agent 并行探索
├── 分析员/
│   ├── 角色.md              # 深度分析
│   └── 命令/
│       └── 分析.md         # CLI 多视角分析
├── 讨论者/
│   ├── 角色.md              # 讨论处理 + 方向调整
│   └── 命令/
│       └── 深化.md         # 深入探索
└── 综合器/
    ├── 角色.md              # 综合结论
    └── 命令/
        └── 综合.md         # 跨视角整合

设计原则: 角色.md 保留阶段 1(任务发现)和阶段 5(报告)内联。阶段 2-4 根据复杂度决定内联或委派到 命令/*.md

角色路由器

输入解析

解析 $ARGUMENTS 以提取 --role

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

if (!roleMatch) {
  throw new Error("缺少 --role 参数。可用角色:协调器, 探索者, 分析员, 讨论者, 综合器")
}

const role = roleMatch[1]
const teamName = args.match(/--team[=\s]+([\w-]+)/)?.[1] || "ultra-analyze"

角色分发

const VALID_ROLES = {
  "coordinator":  { file: "角色/协调器/角色.md",  prefix: null },
  "explorer":     { file: "角色/探索者/角色.md",     prefix: "EXPLORE" },
  "analyst":      { file: "角色/分析员/角色.md",       prefix: "ANALYZE" },
  "discussant":   { file: "角色/讨论者/角色.md",    prefix: "DISCUSS" },
  "synthesizer":  { file: "角色/综合器/角色.md",   prefix: "SYNTH" }
}

if (!VALID_ROLES[role]) {
  throw new Error(`未知角色: ${role}。可用: ${Object.keys(VALID_ROLES).join(', ')}`)
}

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

可用角色

角色 任务前缀 责任 角色文件
coordinator 话题澄清、管道选择、会话管理、讨论循环 角色/协调器/角色.md
explorer EXPLORE-* cli-explore-agent 多角度并行代码库探索 角色/探索者/角色.md
analyst ANALYZE-* CLI 多视角深度分析 角色/分析员/角色.md
discussant DISCUSS-* 用户反馈处理、方向调整、深入分析 角色/讨论者/角色.md
synthesizer SYNTH-* 跨视角整合、结论生成、决策追踪 角色/综合器/角色.md

共享基础设施

角色隔离规则

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

输出标记(强制)

所有角色的输出必须带 [角色名称] 标识前缀:

SendMessage({ content: `## [${role}] ...`, summary: `[${role}] ...` })
mcp__ccw-tools__team_msg({ summary: `[${role}] ...` })

协调器 隔离

允许 禁止
话题澄清 (AskUserQuestion) ❌ 直接执行代码探索或分析
创建任务链 (TaskCreate) ❌ 直接调用 cli-explore-agent
管道选择 + 讨论循环驱动 ❌ 直接调用 CLI 分析工具
监控进度 (消息总线) ❌ 绕过工作器自行完成

工作器 隔离

允许 禁止
处理自己前缀的任务 ❌ 处理其他角色前缀的任务
读写 shared-memory.json (自己的字段) ❌ 为其他角色创建任务
SendMessage 给协调器 ❌ 直接与其他工作器通信

团队配置

const TEAM_CONFIG = {
  name: "ultra-analyze",
  sessionDir: ".workflow/.team/UAN-{slug}-{date}/",
  msgDir: ".workflow/.team-msg/ultra-analyze/",
  sharedMemory: "shared-memory.json",
  analysisDimensions: ["architecture", "implementation", "performance", "security", "concept", "comparison", "decision"],
  maxDiscussionRounds: 5
}

共享记忆(核心产物)

// 各角色读取共享记忆
const memoryPath = `${sessionFolder}/shared-memory.json`
let sharedMemory = {}
try { sharedMemory = JSON.parse(Read(memoryPath)) } catch {}

// 各角色写入自己负责的字段:
// explorer    → sharedMemory.explorations
// analyst     → sharedMemory.analyses
// discussant  → sharedMemory.discussions
// synthesizer → sharedMemory.synthesis
// coordinator → sharedMemory.decision_trail + current_understanding
Write(memoryPath, JSON.stringify(sharedMemory, null, 2))

消息总线 (所有角色)

mcp__ccw-tools__team_msg({
  operation: "log",
  team: teamName,
  from: role,
  to: "coordinator",
  type: "<type>",
  summary: `[${role}] <summary>`,
  ref: "<file_path>"
})
角色 类型
coordinator pipeline_selected, discussion_round, direction_adjusted, task_unblocked, error, shutdown
explorer exploration_ready, error
analyst analysis_ready, error
discussant discussion_processed, error
synthesizer synthesis_ready, error

CLI 回退

Bash(`ccw team log --team "${teamName}" --from "${role}" --to "coordinator" --type "<type>" --summary "<摘要>" --json`)

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

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: 角色特定
// 阶段 5: 报告 + 循环
mcp__ccw-tools__team_msg({ operation: "log", team: teamName, from: role, to: "coordinator", type: "...", summary: `[${role}] ...` })
SendMessage({ type: "message", recipient: "coordinator", content: `## [${role}] ...`, summary: `[${role}] ...` })
TaskUpdate({ taskId: task.id, status: 'completed' })

三种模式管道架构

快速:    EXPLORE-001 → ANALYZE-001 → SYNTH-001
标准: [EXPLORE-001..N](并行) → [ANALYZE-001..N](并行) → DISCUSS-001 → SYNTH-001
深度:     [EXPLORE-001..N] → [ANALYZE-001..N] → DISCUSS-001 → ANALYZE-fix → DISCUSS-002 → ... → SYNTH-001

模式自动检测

function detectPipelineMode(args, taskDescription) {
  const modeMatch = args.match(/--mode[=\s]+(quick|standard|deep)/)
  if (modeMatch) return modeMatch[1]
  // 自动检测
  if (/快速|quick|overview|概览/.test(taskDescription)) return 'quick'
  if (/深入|deep|thorough|详细|全面/.test(taskDescription)) return 'deep'
  return 'standard'
}

讨论循环 (深度模式)

协调器(询问用户) → DISCUSS-N(深化) → [可选 ANALYZE-fix] → 协调器(询问用户) → ... → SYNTH

决策记录协议

⚠️ 关键: 继承自原 analyze-with-file 命令。分析过程中以下情况必须立即记录到 discussion.md

触发条件 记录内容 目标部分
方向选择 选择了什么、为什么、放弃了哪些替代方案 #### 决策日志
关键发现 发现内容、影响范围、置信度 #### 关键发现
假设变更 旧假设→新理解、变更原因、影响 #### 修正假设
用户反馈 用户原始输入、采纳/调整理由 #### 用户输入

统一会话目录

.workflow/.team/UAN-{slug}-{YYYY-MM-DD}/
├── shared-memory.json          # 探索/分析/讨论/综合 共享记忆
├── discussion.md               # ⭐ 理解演进 & 讨论时间线
├── explorations/               # 探索者输出
│   ├── exploration-001.json
│   └── exploration-002.json
├── analyses/                   # 分析员输出
│   ├── analysis-001.json
│   └── analysis-002.json
├── discussions/                # 讨论者输出
│   └── discussion-round-001.json
└── conclusions.json            # 综合器输出

协调器生成模板

TeamCreate({ team_name: teamName })

// 探索者
Task({
  subagent_type: "general-purpose",
  team_name: teamName,
  name: "explorer",
  prompt: `你是 team "${teamName}" 的 EXPLORER。

当你收到 EXPLORE-* 任务时,调用 Skill(skill="team-ultra-analyze", args="--role=explorer") 执行。

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

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

## 消息总线(必须)
每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。

工作流程:
1. TaskList → 找到 EXPLORE-* 任务
2. Skill(skill="team-ultra-analyze", args="--role=explorer") 执行
3. team_msg log + SendMessage 结果给 coordinator(带 [explorer] 标识)
4. TaskUpdate completed → 检查下一个任务`
})

// 分析员
Task({
  subagent_type: "general-purpose",
  team_name: teamName,
  name: "analyst",
  prompt: `你是 team "${teamName}" 的 ANALYST。

当你收到 ANALYZE-* 任务时,调用 Skill(skill="team-ultra-analyze", args="--role=analyst") 执行。

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

## 角色准则(强制)
- 你只能处理 ANALYZE-* 前缀的任务
- 所有输出必须带 [analyst] 标识前缀
- 仅与 coordinator 通信

## 消息总线(必须)
每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。

工作流程:
1. TaskList → 找到 ANALYZE-* 任务
2. Skill(skill="team-ultra-analyze", args="--role=analyst") 执行
3. team_msg log + SendMessage 结果给 coordinator
4. TaskUpdate completed → 检查下一个任务`
})

// 讨论者
Task({
  subagent_type: "general-purpose",
  team_name: teamName,
  name: "discussant",
  prompt: `你是 team "${teamName}" 的 DISCUSSANT。

当你收到 DISCUSS-* 任务时,调用 Skill(skill="team-ultra-analyze", args="--role=discussant") 执行。

当前需求: ${taskDescription}

## 角色准则(强制)
- 你只能处理 DISCUSS-* 前缀的任务
- 所有输出必须带 [discussant] 标识前缀

## 消息总线(必须)
每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。

工作流程:
1. TaskList → 找到 DISCUSS-* 任务
2. Skill(skill="team-ultra-analyze", args="--role=discussant") 执行
3. team_msg log + SendMessage
4. TaskUpdate completed → 检查下一个任务`
})

// 综合器
Task({
  subagent_type: "general-purpose",
  team_name: teamName,
  name: "synthesizer",
  prompt: `你是 team "${teamName}" 的 SYNTHESIZER。

当你收到 SYNTH-* 任务时,调用 Skill(skill="team-ultra-analyze", args="--role=synthesizer") 执行。

当前需求: ${taskDescription}

## 角色准则(强制)
- 你只能处理 SYNTH-* 前缀的任务
- 所有输出必须带 [synthesizer] 标识前缀

## 消息总线(必须)
每次 SendMessage 前,先调用 mcp__ccw-tools__team_msg 记录。

工作流程:
1. TaskList → 找到 SYNTH-* 任务
2. Skill(skill="team-ultra-analyze", args="--role=synthesizer") 执行
3. team_msg log + SendMessage
4. TaskUpdate completed → 检查下一个任务`
})

错误处理

场景 解决方案
未知 --role 值 错误并显示可用角色列表
缺少 --role 参数 错误并显示使用提示
角色文件未找到 错误并显示预期路径 (角色/{名称}/角色.md)
任务前缀冲突 记录警告,继续执行
讨论循环卡住 >5 轮 强制综合,提供继续选项
CLI 工具不可用 回退链: gemini → codex → 手动分析
探索者代理失败 使用可用上下文继续,记录限制