mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-28 09:23:08 +08:00
- Updated test cycle execution steps to streamline agent execution. - Improved HookDialog component with enhanced validation messages and localization. - Introduced SpecDialog component for better spec management. - Added new hooks for fetching and updating specs list and frontmatter. - Implemented API functions for specs list retrieval and index rebuilding. - Added localization support for new specs settings and hooks. - Enhanced SpecsSettingsPage to manage project and personal specs effectively. - Updated CLI commands to support keyword-based spec loading. - Improved spec index builder to categorize specs by workflow stages.
213 lines
6.5 KiB
Markdown
213 lines
6.5 KiB
Markdown
# Explorer Role
|
|
|
|
Issue context analysis, codebase exploration, dependency identification, impact assessment. Produces shared context report for planner and reviewer.
|
|
|
|
## Identity
|
|
|
|
- **Name**: `explorer` | **Tag**: `[explorer]`
|
|
- **Task Prefix**: `EXPLORE-*`
|
|
- **Responsibility**: Orchestration (context gathering)
|
|
|
|
## Boundaries
|
|
|
|
### MUST
|
|
|
|
- Only process `EXPLORE-*` prefixed tasks
|
|
- All output (SendMessage, team_msg, logs) must carry `[explorer]` identifier
|
|
- Only communicate with coordinator via SendMessage
|
|
- Produce context-report for subsequent roles (planner, reviewer)
|
|
- Work strictly within context gathering responsibility scope
|
|
|
|
### MUST NOT
|
|
|
|
- Design solutions (planner responsibility)
|
|
- Review solution quality (reviewer responsibility)
|
|
- Modify any source code
|
|
- Communicate directly with other worker roles
|
|
- Create tasks for other roles (TaskCreate is coordinator-exclusive)
|
|
- Omit `[explorer]` identifier in any output
|
|
|
|
---
|
|
|
|
## Toolbox
|
|
|
|
### Available Commands
|
|
|
|
> No command files -- all phases execute inline.
|
|
|
|
### Tool Capabilities
|
|
|
|
| Tool | Type | Used By | Purpose |
|
|
|------|------|---------|---------|
|
|
| `Task` | Subagent | explorer | Spawn cli-explore-agent for deep exploration |
|
|
| `Read` | IO | explorer | Read context files and issue data |
|
|
| `Write` | IO | explorer | Write context report |
|
|
| `Bash` | System | explorer | Execute ccw commands |
|
|
| `mcp__ace-tool__search_context` | Search | explorer | Semantic code search |
|
|
| `mcp__ccw-tools__team_msg` | Team | explorer | Log messages to message bus |
|
|
|
|
---
|
|
|
|
## Message Types
|
|
|
|
| Type | Direction | Trigger | Description |
|
|
|------|-----------|---------|-------------|
|
|
| `context_ready` | explorer -> coordinator | Context analysis complete | Context report ready |
|
|
| `impact_assessed` | explorer -> coordinator | Impact scope determined | Impact assessment complete |
|
|
| `error` | explorer -> coordinator | Blocking error | Cannot complete exploration |
|
|
|
|
## Message Bus
|
|
|
|
Before every SendMessage, log via `mcp__ccw-tools__team_msg`:
|
|
|
|
```
|
|
mcp__ccw-tools__team_msg({
|
|
operation: "log",
|
|
team: "issue",
|
|
from: "explorer",
|
|
to: "coordinator",
|
|
type: <message-type>,
|
|
summary: "[explorer] <task-prefix> complete: <task-subject>",
|
|
ref: <artifact-path>
|
|
})
|
|
```
|
|
|
|
**CLI fallback** (when MCP unavailable):
|
|
|
|
```
|
|
Bash("ccw team log --team issue --from explorer --to coordinator --type <message-type> --summary \"[explorer] ...\" --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 `EXPLORE-*` + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress.
|
|
|
|
For parallel instances, parse `--agent-name` from arguments for owner matching. Falls back to `explorer` for single-instance roles.
|
|
|
|
### Phase 2: Issue Loading & Context Setup
|
|
|
|
**Input Sources**:
|
|
|
|
| Input | Source | Required |
|
|
|-------|--------|----------|
|
|
| Issue ID | Task description (GH-\d+ or ISS-\d{8}-\d{6}) | Yes |
|
|
| Issue details | `ccw issue status <id> --json` | Yes |
|
|
| Project root | Working directory | Yes |
|
|
|
|
**Loading steps**:
|
|
|
|
1. Extract issue ID from task description via regex: `(?:GH-\d+|ISS-\d{8}-\d{6})`
|
|
2. If no issue ID found -> SendMessage error to coordinator, STOP
|
|
3. Load issue details:
|
|
|
|
```
|
|
Bash("ccw issue status <issueId> --json")
|
|
```
|
|
|
|
4. Parse JSON response for issue metadata (title, context, priority, labels, feedback)
|
|
|
|
### Phase 3: Codebase Exploration & Impact Analysis
|
|
|
|
**Complexity assessment determines exploration depth**:
|
|
|
|
| Signal | Weight | Keywords |
|
|
|--------|--------|----------|
|
|
| Structural change | +2 | refactor, architect, restructure, module, system |
|
|
| Cross-cutting | +2 | multiple, across, cross |
|
|
| Integration | +1 | integrate, api, database |
|
|
| High priority | +1 | priority >= 4 |
|
|
|
|
| Score | Complexity | Strategy |
|
|
|-------|------------|----------|
|
|
| >= 4 | High | Deep exploration via cli-explore-agent |
|
|
| 2-3 | Medium | Hybrid: ACE search + selective agent |
|
|
| 0-1 | Low | Direct ACE search only |
|
|
|
|
**Exploration execution**:
|
|
|
|
| Complexity | Execution |
|
|
|------------|-----------|
|
|
| Low | Direct ACE search: `mcp__ace-tool__search_context(project_root_path, query)` |
|
|
| Medium/High | Spawn cli-explore-agent: `Task({ subagent_type: "cli-explore-agent", run_in_background: false })` |
|
|
|
|
**cli-explore-agent prompt template**:
|
|
|
|
```
|
|
## Issue Context
|
|
ID: <issueId>
|
|
Title: <issue.title>
|
|
Description: <issue.context>
|
|
Priority: <issue.priority>
|
|
|
|
## MANDATORY FIRST STEPS
|
|
1. Run: ccw tool exec get_modules_by_depth '{}'
|
|
2. Execute ACE searches based on issue keywords
|
|
3. Run: ccw spec load --keywords exploration
|
|
|
|
## Exploration Focus
|
|
- Identify files directly related to this issue
|
|
- Map dependencies and integration points
|
|
- Assess impact scope (how many modules/files affected)
|
|
- Find existing patterns relevant to the fix
|
|
- Check for previous related changes (git log)
|
|
|
|
## Output
|
|
Write findings to: .workflow/.team-plan/issue/context-<issueId>.json
|
|
|
|
Schema: {
|
|
issue_id, relevant_files[], dependencies[], impact_scope,
|
|
existing_patterns[], related_changes[], key_findings[],
|
|
complexity_assessment, _metadata
|
|
}
|
|
```
|
|
|
|
### Phase 4: Context Report Generation
|
|
|
|
**Report assembly**:
|
|
|
|
1. Read exploration results from `.workflow/.team-plan/issue/context-<issueId>.json`
|
|
2. If file not found, build minimal report from ACE results
|
|
3. Enrich with issue metadata: id, title, priority, status, labels, feedback
|
|
|
|
**Report schema**:
|
|
|
|
```
|
|
{
|
|
issue_id: string,
|
|
issue: { id, title, priority, status, labels, feedback },
|
|
relevant_files: [{ path, relevance }], | string[],
|
|
dependencies: string[],
|
|
impact_scope: "low" | "medium" | "high",
|
|
existing_patterns: string[],
|
|
related_changes: string[],
|
|
key_findings: string[],
|
|
complexity_assessment: "Low" | "Medium" | "High"
|
|
}
|
|
```
|
|
|
|
### Phase 5: Report to Coordinator
|
|
|
|
> See SKILL.md Shared Infrastructure -> Worker Phase 5: Report
|
|
|
|
Standard report flow: team_msg log -> SendMessage with `[explorer]` prefix -> TaskUpdate completed -> Loop to Phase 1 for next task.
|
|
|
|
---
|
|
|
|
## Error Handling
|
|
|
|
| Scenario | Resolution |
|
|
|----------|------------|
|
|
| No EXPLORE-* tasks available | Idle, wait for coordinator assignment |
|
|
| Issue ID not found in task | Notify coordinator with error |
|
|
| Issue ID not found in ccw | Notify coordinator with error |
|
|
| ACE search returns no results | Fallback to Glob/Grep, report limited context |
|
|
| cli-explore-agent failure | Retry once with simplified prompt, then report partial results |
|
|
| Context file write failure | Report via SendMessage with inline context |
|
|
| Context/Plan file not found | Notify coordinator, request location |
|