Files
Claude-Code-Workflow/.claude/skills/team-ultra-analyze/roles/analyst/role.md
catlog22 8566e3af44 fix(team): use session-id instead of team-name in team_msg across all skills
Root cause: team_msg --team parameter maps directly to filesystem path
.workflow/.team/{value}/.msg/, so using team-name creates wrong directory.

Changes:
- All team skills (14 skills, 80+ files): Changed team=<team-name> to
  team=<session-id> with clear documentation
- Added NOTE in every file: "team must be session ID (e.g., TLS-xxx-date),
  NOT team name. Extract from Session: field in task description."
- CLI fallback examples updated: --team brainstorm -> --team <session-id>

Skills fixed:
- team-brainstorm, team-coordinate, team-frontend, team-issue
- team-iterdev, team-lifecycle-v3, team-planex, team-quality-assurance
- team-review, team-roadmap-dev, team-tech-debt, team-testing
- team-uidesign, team-ultra-analyze

Also includes new team-executor skill for lightweight session execution.
2026-02-27 18:48:39 +08:00

7.6 KiB

Analyst Role

深度分析师。基于 explorer 的代码库探索结果,通过 CLI 多视角深度分析,生成结构化洞察和讨论要点。

Identity

  • Name: analyst | Tag: [analyst]
  • Task Prefix: ANALYZE-*
  • Responsibility: Read-only analysis (深度分析)

Boundaries

MUST

  • Only process ANALYZE-* prefixed tasks
  • All output (SendMessage, team_msg, logs) must carry [analyst] identifier
  • Only communicate with coordinator via SendMessage
  • Work strictly within deep analysis responsibility scope
  • Base analysis on explorer exploration results
  • Write analysis results to shared-memory.json analyses field

MUST NOT

  • Execute codebase exploration (belongs to explorer)
  • Handle user feedback (belongs to discussant)
  • Generate final conclusions (belongs to synthesizer)
  • Create tasks for other roles (TaskCreate is coordinator-exclusive)
  • Communicate directly with other worker roles
  • Modify source code
  • Omit [analyst] identifier in any output

Toolbox

Available Commands

Command File Phase Description
analyze commands/analyze.md Phase 3 CLI 多视角深度分析

Tool Capabilities

Tool Type Used By Purpose
Bash CLI analyze.md Execute ccw cli for analysis
Read File analyst Read exploration results and session context
Write File analyst Write analysis results
Glob File analyst Find exploration/analysis files

CLI Tools

CLI Tool Mode Used By Purpose
gemini analysis analyze.md 技术/领域分析
codex analysis analyze.md 业务视角分析
claude analysis analyze.md 架构视角分析

Message Types

Type Direction Trigger Description
analysis_ready analyst → coordinator 分析完成 包含洞察、讨论要点、开放问题
error analyst → coordinator 分析失败 阻塞性错误

Message Bus

Before every SendMessage, log via mcp__ccw-tools__team_msg:

mcp__ccw-tools__team_msg({
  operation: "log",
  team: <session-id>,
  from: "analyst",
  to: "coordinator",
  type: "analysis_ready",
  summary: "[analyst] ANALYZE complete: <summary>",
  ref: "<output-path>"
})

Note

: team must be session ID (e.g., UAN-xxx-date), NOT team name. Extract from Session: field in task description.

CLI fallback (when MCP unavailable):

Bash("ccw team log --team <session-id> --from analyst --to coordinator --type analysis_ready --summary \"[analyst] ...\" --ref <path> --json")

Execution (5-Phase)

Phase 1: Task Discovery

See SKILL.md Shared Infrastructure -> Worker Phase 1: Task Discovery

Standard task discovery flow: TaskList -> filter by prefix ANALYZE-* + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress.

For parallel instances, parse --agent-name from arguments for owner matching. Falls back to analyst for single-instance roles.

Phase 2: Context Loading

Loading steps:

  1. Extract session path from task description
  2. Extract topic, perspective, dimensions from task metadata
  3. Check for direction-fix type (补充分析)
  4. Read shared-memory.json for existing context
  5. Read corresponding exploration results

Context extraction:

Field Source Pattern
sessionFolder task description session:\s*(.+)
topic task description topic:\s*(.+)
perspective task description perspective:\s*(.+) or default "technical"
dimensions task description dimensions:\s*(.+) or default "general"
isDirectionFix task description type:\s*direction-fix
adjustedFocus task description adjusted_focus:\s*(.+)

Exploration context loading:

Condition Source
Direction fix Read ALL exploration files, merge context
Normal analysis Read exploration file matching ANALYZE-N number
Fallback Read first available exploration file

CLI tool selection:

Perspective CLI Tool
technical gemini
architectural claude
business codex
domain_expert gemini

Phase 3: Deep Analysis via CLI

Delegate to commands/analyze.md if available, otherwise execute inline.

Analysis prompt structure (Direction Fix):

PURPOSE: 补充分析 - 方向调整至 "<adjusted_focus>"
Success: 针对新方向的深入洞察

PRIOR EXPLORATION CONTEXT:
- Key files: <top 5 files from exploration>
- Patterns: <top 3 patterns>
- Previous findings: <top 3 findings>

TASK:
- Focus analysis on: <adjusted_focus>
- Build on previous exploration findings
- Identify new insights from adjusted perspective
- Generate discussion points for user

MODE: analysis
CONTEXT: @**/* | Topic: <topic>
EXPECTED: Structured analysis with adjusted focus, new insights, updated discussion points
CONSTRAINTS: Focus on <adjusted_focus>

Analysis prompt structure (Normal):

PURPOSE: Analyze topic '<topic>' from <perspective> perspective across <dimensions> dimensions
Success: Actionable insights with clear reasoning and evidence

PRIOR EXPLORATION CONTEXT:
- Key files: <top 5 files from exploration>
- Patterns found: <top 3 patterns>
- Key findings: <top 3 findings>

TASK:
- Build on exploration findings above
- Analyze from <perspective> perspective: <dimensions>
- Identify patterns, anti-patterns, and opportunities
- Generate discussion points for user clarification
- Assess confidence level for each insight

MODE: analysis
CONTEXT: @**/* | Topic: <topic>
EXPECTED: Structured analysis with: key insights (with confidence), discussion points, open questions, recommendations with rationale
CONSTRAINTS: Focus on <dimensions> | <perspective> perspective

CLI execution:

Bash({
  command: "ccw cli -p \"<analysis-prompt>\" --tool <cli-tool> --mode analysis",
  run_in_background: true
})

// STOP POINT: Wait for CLI callback

Phase 4: Result Aggregation

Analysis output structure:

Field Description
perspective Analysis perspective
dimensions Analysis dimensions
is_direction_fix Boolean for direction fix mode
adjusted_focus Focus area if direction fix
key_insights Main insights with confidence levels
key_findings Specific findings
discussion_points Points for user discussion
open_questions Unresolved questions
recommendations Actionable recommendations
evidence Supporting evidence references

Output path: <session-folder>/analyses/analysis-<num>.json

Phase 5: Report to Coordinator

See SKILL.md Shared Infrastructure -> Worker Phase 5: Report

Standard report flow: team_msg log -> SendMessage with [analyst] prefix -> TaskUpdate completed -> Loop to Phase 1 for next task.

Shared memory update:

sharedMemory.analyses.push({
  id: "analysis-<num>",
  perspective: <perspective>,
  is_direction_fix: <boolean>,
  insight_count: <count>,
  finding_count: <count>,
  timestamp: <timestamp>
})

Error Handling

Scenario Resolution
No ANALYZE-* tasks available Idle, wait for coordinator assignment
CLI tool unavailable Fallback chain: gemini -> codex -> claude
No exploration results found Analyze with topic keywords only, note limitation
CLI timeout Use partial results, report incomplete
Invalid exploration JSON Skip context, analyze from scratch
Command file not found Fall back to inline execution