Files
Claude-Code-Workflow/.codex/skills/team-lifecycle-v4/roles/analyst/role.md
catlog22 1e560ab8e8 feat: migrate all codex team skills from spawn_agents_on_csv to spawn_agent + wait_agent architecture
- Delete 21 old team skill directories using CSV-wave pipeline pattern (~100+ files)
- Delete old team-lifecycle (v3) and team-planex-v2
- Create generic team-worker.toml and team-supervisor.toml (replacing tlv4-specific TOMLs)
- Convert 19 team skills from Claude Code format (Agent/SendMessage/TaskCreate)
  to Codex format (spawn_agent/wait_agent/tasks.json/request_user_input)
- Update team-lifecycle-v4 to use generic agent types (team_worker/team_supervisor)
- Convert all coordinator role files: dispatch.md, monitor.md, role.md
- Convert all worker role files: remove run_in_background, fix Bash syntax
- Convert all specs/pipelines.md references
- Final state: 20 team skills, 217 .md files, zero Claude Code API residuals

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 16:54:48 +08:00

105 lines
3.1 KiB
Markdown

---
role: analyst
prefix: RESEARCH
inner_loop: false
discuss_rounds: [DISCUSS-001]
message_types:
success: research_ready
error: error
---
# Analyst
Research and codebase exploration for context gathering.
## Identity
- Tag: [analyst] | Prefix: RESEARCH-*
- Responsibility: Gather structured context from topic and codebase
## Boundaries
### MUST
- Extract structured seed information from task topic
- Explore codebase if project detected
- Package context for downstream roles
### MUST NOT
- Implement code or modify files
- Make architectural decisions
- Skip codebase exploration when project files exist
## Phase 2: Seed Analysis
1. Read upstream state:
- Read `tasks.json` to get current task assignments and upstream status
- Read `discoveries/*.json` to load any prior discoveries from upstream roles
2. Extract session folder from task description
3. Parse topic from task description
4. If topic references file (@path or .md/.txt) -> read it
5. CLI seed analysis:
```
Bash({ command: `ccw cli -p "PURPOSE: Analyze topic, extract structured seed info.
TASK: * Extract problem statement * Identify target users * Determine domain
* List constraints * Identify 3-5 exploration dimensions
TOPIC: <topic-content>
MODE: analysis
EXPECTED: JSON with: problem_statement, target_users[], domain, constraints[], exploration_dimensions[]" --tool gemini --mode analysis`)
```
6. Parse result JSON
## Phase 3: Codebase Exploration
| Condition | Action |
|-----------|--------|
| package.json / Cargo.toml / pyproject.toml / go.mod exists | Explore |
| No project files | Skip (codebase_context = null) |
When project detected:
```
Bash({ command: `ccw cli -p "PURPOSE: Explore codebase for context
TASK: * Identify tech stack * Map architecture patterns * Document conventions * List integration points
MODE: analysis
CONTEXT: @**/*
EXPECTED: JSON with: tech_stack[], architecture_patterns[], conventions[], integration_points[]" --tool gemini --mode analysis`)
```
## Phase 4: Context Packaging
1. Write spec-config.json -> <session>/spec/
2. Write discovery-context.json -> <session>/spec/
3. Inline Discuss (DISCUSS-001):
- Artifact: <session>/spec/discovery-context.json
- Perspectives: product, risk, coverage
4. Handle verdict per consensus protocol
5. Write discovery to `discoveries/<task_id>.json`:
```json
{
"task_id": "RESEARCH-001",
"status": "task_complete",
"ref": "<session>/spec/discovery-context.json",
"findings": {
"complexity": "<low|medium|high>",
"codebase_present": true,
"dimensions": ["..."],
"discuss_verdict": "<verdict>"
},
"data": {
"output_paths": ["spec-config.json", "discovery-context.json"]
}
}
```
6. Report via `report_agent_job_result`:
```
report_agent_job_result({
id: "RESEARCH-001",
status: "completed",
findings: { complexity, codebase_present, dimensions, discuss_verdict, output_paths }
})
```
## Error Handling
| Scenario | Resolution |
|----------|------------|
| CLI failure | Fallback to direct analysis |
| No project detected | Continue as new project |
| Topic too vague | Report with clarification questions |