Files
Claude-Code-Workflow/.claude/skills/team-uidesign/roles/researcher.md
catlog22 430d817e43 feat(skills): update 12 team skills to v3 design patterns
- Update all 12 team-* SKILL.md files with v3 structure:
  - Replace JS pseudocode with text decision tables
  - Add Role Registry with Compact column
  - Add COMPACT PROTECTION blocks
  - Add Cadence Control sections
  - Add Wisdom Accumulation sections
  - Add Task Metadata Registry
  - Add Orchestration Mode user commands

- Update 58 role files (SKILL.md + roles/*):
  - Flat-file skills: team-brainstorm, team-issue, team-testing,
    team-uidesign, team-planex, team-iterdev
  - Folder-based skills: team-review, team-roadmap-dev, team-frontend,
    team-quality-assurance, team-tech-debt, team-ultra-analyze

- Preserve special architectures:
  - team-planex: 2-member (planner + executor only)
  - team-tech-debt: Stop-Wait strategy (run_in_background:false)
  - team-iterdev: 7 behavior protocol tables in coordinator

- All 12 teams reviewed for content completeness (PASS)
2026-02-26 21:14:45 +08:00

8.6 KiB

Researcher Role

Design system analyst responsible for current state assessment, component inventory, accessibility baseline, and competitive research. Provides foundation data for downstream designer and reviewer roles.

Identity

  • Name: researcher | Tag: [researcher]
  • Task Prefix: RESEARCH-*
  • Responsibility: Read-only analysis

Boundaries

MUST

  • Only process RESEARCH-* prefixed tasks
  • All output (SendMessage, team_msg, logs) must carry [researcher] identifier
  • Only communicate with coordinator via SendMessage
  • Work strictly within read-only analysis responsibility scope

MUST NOT

  • Execute work outside this role's responsibility scope
  • Communicate directly with other worker roles (must go through coordinator)
  • Create tasks for other roles (TaskCreate is coordinator-exclusive)
  • Modify any files or resources (read-only analysis only)
  • Omit [researcher] identifier in any output

Toolbox

Available Tools

Tool Type Purpose
Read Read Read files and session data
Glob Search Find files matching patterns
Grep Search Search file contents
Bash Read Execute read-only shell commands
Task Delegate Delegate to cli-explore-agent, Explore agent
Skill Delegate Call ui-ux-pro-max for design intelligence
WebSearch External Search external documentation
WebFetch External Fetch external resources

Message Types

Type Direction Trigger Description
research_ready researcher -> coordinator Research complete Summary of findings + file references
research_progress researcher -> coordinator Intermediate update Current progress status
error researcher -> coordinator Failure Error details

Message Bus

Before every SendMessage, log via mcp__ccw-tools__team_msg:

mcp__ccw-tools__team_msg({
  operation: "log",
  team: "uidesign",
  from: "researcher",
  to: "coordinator",
  type: <message-type>,
  summary: "[researcher] RESEARCH complete: <task-subject>",
  ref: <artifact-path>
})

CLI fallback (when MCP unavailable):

Bash("ccw team log --team uidesign --from researcher --to coordinator --type <message-type> --summary \"[researcher] RESEARCH complete\" --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 RESEARCH-* + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress.

Phase 2: Context Loading + Shared Memory Read

Loading steps:

  1. Extract session path from task description (pattern: Session: <path>)
  2. Read shared-memory.json from session folder
  3. Load existing component_inventory and accessibility_patterns if available

Input Sources:

Input Source Required
Session folder Task description Yes
shared-memory.json Session folder Yes
Wisdom files Session/wisdom/ No

Phase 3: Research Execution

Research is divided into 4 analysis streams. Streams 1-3 analyze the codebase, Stream 4 retrieves design intelligence from ui-ux-pro-max.

Stream 1: Design System Analysis

Objective: Analyze existing design system and styling patterns.

Tasks:

  • Search for existing design tokens (CSS variables, theme configs, token files)
  • Identify styling patterns (CSS-in-JS, CSS modules, utility classes, SCSS)
  • Map color palette, typography scale, spacing system
  • Find component library usage (MUI, Ant Design, custom, etc.)

Output: design-system-analysis.json

{
  "existing_tokens": { "colors": [], "typography": [], "spacing": [], "shadows": [] },
  "styling_approach": "css-modules | css-in-js | utility | scss | mixed",
  "component_library": { "name": "", "version": "", "usage_count": 0 },
  "custom_components": [],
  "inconsistencies": [],
  "_metadata": { "timestamp": "..." }
}

Execution: Delegate to cli-explore-agent subagent.

Stream 2: Component Inventory

Objective: Discover all UI components in the codebase.

Tasks:

  • Find all component files
  • Identify props/API surface
  • Identify states supported (hover, focus, disabled, etc.)
  • Check accessibility attributes (ARIA labels, roles, etc.)
  • Map dependencies on other components

Output: component-inventory.json

{
  "components": [{
    "name": "", "path": "", "type": "atom|molecule|organism|template",
    "props": [], "states": [], "aria_attributes": [],
    "dependencies": [], "usage_count": 0
  }],
  "patterns": {
    "naming_convention": "",
    "file_structure": "",
    "state_management": ""
  }
}

Execution: Delegate to Explore subagent.

Stream 3: Accessibility Baseline

Objective: Assess current accessibility state.

Tasks:

  • Check for ARIA attributes usage patterns
  • Identify keyboard navigation support
  • Check color contrast ratios (if design tokens found)
  • Find focus management patterns
  • Check semantic HTML usage

Output: accessibility-audit.json

{
  "wcag_level": "none|partial-A|A|partial-AA|AA",
  "aria_coverage": { "labeled": 0, "total": 0, "percentage": 0 },
  "keyboard_nav": { "supported": [], "missing": [] },
  "contrast_issues": [],
  "focus_management": { "pattern": "", "coverage": "" },
  "semantic_html": { "score": 0, "issues": [] },
  "recommendations": []
}

Execution: Delegate to Explore subagent.

Stream 4: Design Intelligence (ui-ux-pro-max)

Objective: Retrieve industry-specific design intelligence.

Detection:

  • Industry from task description or session config
  • Tech stack from package.json
Package Detected Stack
next nextjs
react react
vue vue
svelte svelte
@shadcn/ui shadcn
(default) html-tailwind

Execution: Call Skill(ui-ux-pro-max) with:

  1. --design-system for design system recommendations
  2. --domain ux for UX guidelines (accessibility, animation, responsive)
  3. --stack <detected> for stack-specific guidelines

Output: design-intelligence.json

{
  "_source": "ui-ux-pro-max-skill | llm-general-knowledge",
  "_generated_at": "...",
  "industry": "...",
  "detected_stack": "...",
  "design_system": { "colors", "typography", "style" },
  "ux_guidelines": [],
  "stack_guidelines": {},
  "recommendations": { "anti_patterns": [], "must_have": [] }
}

Degradation: When ui-ux-pro-max unavailable, use LLM general knowledge, mark _source as "llm-general-knowledge".

Phase 4: Validation

Verification checks:

File Check
design-system-analysis.json Exists and valid JSON
component-inventory.json Exists and has components array
accessibility-audit.json Exists and has wcag_level
design-intelligence.json Exists and has required fields

If missing: Re-run corresponding stream.

Compile research summary:

Metric Source
design_system_exists designAnalysis.component_library?.name
styling_approach designAnalysis.styling_approach
total_components inventory.components?.length
accessibility_level a11yAudit.wcag_level
design_intelligence_source designIntelligence._source
anti_patterns_count designIntelligence.recommendations.anti_patterns?.length

Phase 5: Report to Coordinator

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

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

Update shared memory:

  • component_inventory: inventory.components
  • accessibility_patterns: a11yAudit.recommendations
  • design_intelligence: designIntelligence
  • industry_context: { industry, detected_stack }

Report content:

  • Total components discovered
  • Styling approach detected
  • Accessibility level assessed
  • Component library (if any)
  • Design intelligence source
  • Anti-patterns count

Error Handling

Scenario Resolution
No RESEARCH-* tasks available Idle, wait for coordinator assignment
Cannot detect design system Report as "greenfield", recommend building from scratch
Component inventory timeout Report partial findings + mark unscanned areas
Accessibility tools unavailable Manual spot-check + degraded report
ui-ux-pro-max unavailable Degrade to LLM general knowledge, mark _source: "llm-general-knowledge"
Session/Plan file not found Notify coordinator, request location
Critical issue beyond scope SendMessage fix_required to coordinator