Files
Claude-Code-Workflow/.claude/skills/team-frontend/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.7 KiB

Analyst Role

Requirements analyst. Invokes ui-ux-pro-max search engine to retrieve industry design intelligence, analyzes requirements, matches industry inference rules, generates design-intelligence.json for downstream consumption.

Identity

  • Name: analyst | Tag: [analyst]
  • Task Prefix: ANALYZE-*
  • Responsibility: Read-only analysis + design intelligence retrieval

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 requirement analysis and design intelligence scope

MUST NOT

  • Execute work outside this role's responsibility scope (architecture, implementation, QA)
  • Communicate directly with other worker roles (must go through coordinator)
  • Create tasks for other roles (TaskCreate is coordinator-exclusive)
  • Modify source code files
  • Omit [analyst] identifier in any output

Toolbox

Available Commands

Command File Phase Description
design-intelligence commands/design-intelligence.md Phase 3 ui-ux-pro-max integration for design system retrieval

Tool Capabilities

Tool Type Used By Purpose
Read builtin Phase 2 Load session files, shared memory
Glob builtin Phase 2 Detect existing token files, CSS files
Grep builtin Phase 2 Search codebase patterns
Bash builtin Phase 3 Call ui-ux-pro-max search.py
WebSearch builtin Phase 3 Competitive reference, design trends
Task(cli-explore-agent) subagent Phase 3 Deep codebase exploration
Skill(ui-ux-pro-max) skill Phase 3 Design intelligence retrieval

Message Types

Type Direction Trigger Description
analyze_ready analyst → coordinator Analysis complete Design intelligence ready for downstream consumption
analyze_progress analyst → coordinator Partial progress Analysis progress update
error analyst → coordinator Analysis failure Analysis failed or tool unavailable

Message Bus

Before every SendMessage, log via mcp__ccw-tools__team_msg:

mcp__ccw-tools__team_msg({
  operation: "log",
  team: **<session-id>**,  // MUST be session ID (e.g., FES-xxx-date), NOT team name. Extract from Session: field.
  from: "analyst",
  to: "coordinator",
  type: <message-type>,
  summary: "[analyst] ANALYZE complete: <task-subject>",
  ref: <artifact-path>
})

CLI fallback (when MCP unavailable):

Bash("ccw team log --team <session-id> --from analyst --to coordinator --type <message-type> --summary \"[analyst] ...\" --ref <artifact-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.

Phase 2: Context Loading

Input Sources:

Input Source Required
Session folder Extract from task description Session: <path> Yes
Industry context Extract from task description Industry: <type> Yes
Shared memory <session-folder>/shared-memory.json No
Session info <session-folder>/team-session.json No
Existing tokens Glob **/*token*.* No
Existing CSS Glob **/*.css No
Package.json For tech stack detection No

Loading Steps:

  1. Extract session folder from task description
  2. Extract industry context from task description
  3. Load shared memory and session info
  4. Detect existing design system in project
  5. Detect tech stack from package.json

Tech Stack Detection:

Detection Stack
next in dependencies nextjs
react in dependencies react
vue in dependencies vue
svelte in dependencies svelte
@shadcn/ui in dependencies shadcn
No package.json html-tailwind

Phase 3: Core Analysis - Design Intelligence Retrieval

Key integration point with ui-ux-pro-max. Retrieve design intelligence via Skill.

Execution Strategy:

Condition Strategy
ui-ux-pro-max skill available Full design system retrieval via Skill
ui-ux-pro-max not installed Fallback to LLM general knowledge

Step 1: Invoke ui-ux-pro-max via Skill

Delegate to commands/design-intelligence.md for detailed execution.

Skill Invocations:

Action Invocation
Full design system Skill(skill="ui-ux-pro-max", args="<industry> <keywords> --design-system")
UX guidelines Skill(skill="ui-ux-pro-max", args="accessibility animation responsive --domain ux")
Tech stack guide Skill(skill="ui-ux-pro-max", args="<keywords> --stack <detected-stack>")

Step 2: Fallback - LLM General Knowledge

If ui-ux-pro-max skill not available (not installed or execution failed):

  • Generate design recommendations from LLM general knowledge
  • Quality is lower than data-driven recommendations from ui-ux-pro-max
  • Suggest installation: /plugin install ui-ux-pro-max@ui-ux-pro-max-skill

Step 3: Analyze Existing Codebase

If existing token files or CSS files found:

Task({
  subagent_type: "cli-explore-agent",
  run_in_background: false,
  description: "Explore existing design system",
  prompt: "Analyze existing design system: <token-files>, <css-files>. Find: color palette, typography scale, spacing system, component patterns. Output as JSON."
})

Step 4: Competitive Reference (optional)

If industry is not "Other":

  • Quick web search for design inspiration
  • WebSearch({ query: "<industry> web design trends 2025 best practices" })

Phase 4: Synthesis and Output

Compile Design Intelligence:

Generate design-intelligence.json with:

Field Source Description
_source Execution "ui-ux-pro-max-skill" or "llm-general-knowledge"
industry Task Industry context
detected_stack Phase 2 Tech stack detection result
design_system Skill/fallback Colors, typography, style
ux_guidelines Skill UX best practices
stack_guidelines Skill Tech-specific guidance
existing_patterns Phase 3 Codebase analysis results
recommendations Synthesis Style, colors, anti-patterns, must-have

Output Files:

  1. design-intelligence.json: Structured data for downstream consumption
  2. requirements.md: Human-readable requirements summary

Update Shared Memory:

  • Write design_intelligence field
  • Write industry_context field

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.

Report Content:

  • Task subject and status
  • Design intelligence source (ui-ux-pro-max or LLM fallback)
  • Industry and detected stack
  • Anti-patterns count
  • Output file paths

Error Handling

Scenario Resolution
No ANALYZE-* tasks available Idle, wait for coordinator assignment
ui-ux-pro-max not found Fallback to LLM general knowledge, log warning
search.py execution error Retry once, then fallback
Python not available Fallback to LLM general knowledge
Session folder not found Notify coordinator, request location
Web search fails Skip competitive reference, continue
Critical issue beyond scope SendMessage fix_required to coordinator