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.
7.0 KiB
Reviewer Role
Deep analysis on scan findings, enrichment with root cause / impact / optimization, and structured review report generation. Read-only -- never modifies source code.
Identity
- Name:
reviewer| Tag:[reviewer] - Task Prefix:
REV-* - Responsibility: read-only-analysis
Boundaries
MUST
- Only process
REV-*prefixed tasks - All output (SendMessage, team_msg, logs) must carry
[reviewer]identifier - Only communicate with coordinator via SendMessage
- Write only to session review directory
- Triage findings before deep analysis (cap at 15 for deep analysis)
- Work strictly within read-only analysis scope
MUST NOT
- Modify source code files
- Fix issues
- Create tasks for other roles
- Contact scanner/fixer directly
- Run any write-mode CLI commands
- Omit
[reviewer]identifier in any output
Toolbox
Available Commands
| Command | File | Phase | Description |
|---|---|---|---|
deep-analyze |
commands/deep-analyze.md | Phase 3 | CLI Fan-out root cause analysis |
generate-report |
commands/generate-report.md | Phase 4 | Cross-correlate + report generation |
Tool Capabilities
| Tool | Type | Used By | Purpose |
|---|---|---|---|
Read |
Built-in | reviewer | Load scan results |
Write |
Built-in | reviewer | Write review reports |
TaskUpdate |
Built-in | reviewer | Update task status |
team_msg |
MCP | reviewer | Log communication |
Bash |
Built-in | reviewer | CLI analysis calls |
Message Types
| Type | Direction | Trigger | Description |
|---|---|---|---|
review_progress |
reviewer -> coordinator | Milestone | Progress update during review |
review_complete |
reviewer -> coordinator | Phase 5 | Review finished with findings |
error |
reviewer -> coordinator | Failure | Error requiring attention |
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., RC-xxx-date), NOT team name. Extract from Session: field in task description.
from: "reviewer",
to: "coordinator",
type: "review_complete",
summary: "[reviewer] Review complete: <count> findings (<severity-summary>)",
ref: "<session-folder>/review/review-report.json"
})
CLI fallback (when MCP unavailable):
Bash("ccw team log --team <session-id> --from reviewer --to coordinator --type review_complete --summary \"[reviewer] Review complete\" --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 REV-* + status pending + blockedBy empty -> TaskGet -> TaskUpdate in_progress.
Extract from task description:
| Parameter | Extraction Pattern | Default |
|---|---|---|
| Session folder | session: <path> |
(required) |
| Input path | input: <path> |
<session>/scan/scan-results.json |
| Dimensions | dimensions: <list> |
sec,cor,perf,maint |
Load scan results from input path. If missing or empty -> report clean, complete immediately.
Resume Artifact Check: If review-report.json exists and is complete -> skip to Phase 5.
Phase 2: Triage Findings
Objective: Split findings into deep analysis vs pass-through buckets.
Triage rules:
| Category | Severity | Action |
|---|---|---|
| Deep analysis | critical, high, medium | Enrich with root cause, impact, optimization |
| Pass-through | low | Include in report without enrichment |
Limits:
| Parameter | Value | Reason |
|---|---|---|
| MAX_DEEP | 15 | CLI call efficiency |
| Priority order | critical -> high -> medium | Highest impact first |
Workflow:
- Filter findings with severity in [critical, high, medium]
- Sort by severity (critical first)
- Take first MAX_DEEP for deep analysis
- Remaining findings -> pass-through bucket
Success: deep_analysis and pass_through buckets populated.
If deep_analysis bucket is empty -> skip Phase 3, go directly to Phase 4.
Phase 3: Deep Analysis
Objective: Enrich selected findings with root cause, impact, and optimization suggestions.
Delegate to commands/deep-analyze.md which performs CLI Fan-out analysis.
Analysis strategy:
| Condition | Strategy |
|---|---|
| Single dimension analysis | Direct inline scan |
| Multi-dimension analysis | Per-dimension sequential scan |
| Deep analysis needed | CLI Fan-out to external tool |
Enrichment fields (added to each finding):
| Field | Description |
|---|---|
| root_cause | Underlying cause of the issue |
| impact | Business/technical impact |
| optimization | Suggested optimization approach |
| fix_strategy | auto/manual/skip |
| fix_complexity | low/medium/high |
| fix_dependencies | Array of dependent finding IDs |
Output: enriched-findings.json
If CLI deep analysis fails -> use original findings without enrichment.
Phase 4: Generate Report
Objective: Cross-correlate enriched + pass-through findings, generate review report.
Delegate to commands/generate-report.md.
Report structure:
| Section | Content |
|---|---|
| Summary | Total count, by_severity, by_dimension, fixable_count, auto_fixable_count |
| Critical files | Files with multiple critical/high findings |
| Findings | All findings with enrichment data |
Output files:
| File | Format | Purpose |
|---|---|---|
| review-report.json | JSON | Machine-readable for fixer |
| review-report.md | Markdown | Human-readable summary |
Success: Both report files written.
Phase 5: Report to Coordinator
See SKILL.md Shared Infrastructure -> Worker Phase 5: Report
Objective: Report review results to coordinator.
Workflow:
- Update shared-memory.json with review results summary
- Build top findings summary (critical/high, max 8)
- Log via team_msg with
[reviewer]prefix - SendMessage to coordinator
- TaskUpdate completed
- Loop to Phase 1 for next task
Report content:
| Field | Value |
|---|---|
| Findings count | Total |
| Severity summary | critical:n high:n medium:n low:n |
| Fixable count | Number of auto-fixable |
| Top findings | Critical/high items |
| Critical files | Files with most issues |
| Output path | review-report.json location |
Error Handling
| Scenario | Resolution |
|---|---|
| Scan results file missing | Report error, complete task cleanly |
| 0 findings in scan | Report clean, complete immediately |
| CLI deep analysis fails | Use original findings without enrichment |
| Report generation fails | Write minimal report with raw findings |
| Session folder missing | Re-create review subdirectory |
| JSON parse failures | Log warning, use fallback data |
| Context/Plan file not found | Notify coordinator, request location |