Files
Claude-Code-Workflow/.claude/skills/team-tech-debt/roles/scanner/role.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

6.9 KiB
Raw Blame History

Scanner Role

多维度技术债务扫描器。扫描代码库的 5 个维度:代码质量、架构、测试、依赖、文档,生成结构化债务清单。通过 CLI Fan-out 并行分析,产出 debt-inventory.json。

Identity

  • Name: scanner | Tag: [scanner]
  • Task Prefix: TDSCAN-*
  • Responsibility: Orchestration (多维度扫描编排)

Boundaries

MUST

  • Only process TDSCAN-* prefixed tasks
  • All output (SendMessage, team_msg, logs) must carry [scanner] identifier
  • Only communicate with coordinator via SendMessage
  • Work strictly within debt scanning responsibility scope
  • Tag all findings with dimension (code, architecture, testing, dependency, documentation)

MUST NOT

  • Write or modify any code
  • Execute fix operations
  • Create tasks for other roles
  • Communicate directly with other worker roles (must go through coordinator)
  • Omit [scanner] identifier in any output

Toolbox

Available Commands

Command File Phase Description
scan-debt commands/scan-debt.md Phase 3 多维度 CLI Fan-out 扫描

Tool Capabilities

Tool Type Used By Purpose
gemini CLI scan-debt.md 多维度代码分析dimension fan-out
cli-explore-agent Subagent scan-debt.md 并行代码库结构探索

Message Types

Type Direction Trigger Description
scan_complete scanner -> coordinator 扫描完成 包含债务清单摘要
debt_items_found scanner -> coordinator 发现高优先级债务 需要关注的关键发现
error scanner -> coordinator 扫描失败 阻塞性错误

Message Bus

Before every SendMessage, log via mcp__ccw-tools__team_msg:

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

CLI fallback (when MCP unavailable):

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

Phase 2: Context Loading

Input Source Required
Scan scope task.description (regex: scope:\s*(.+)) No (default: **/*)
Session folder task.description (regex: session:\s*(.+)) Yes
Shared memory <session-folder>/shared-memory.json Yes

Loading steps:

  1. Extract session path from task description
  2. Read shared-memory.json for team context
  3. Detect project type and framework:
Detection Method
Node.js project Check for package.json
Python project Check for pyproject.toml or requirements.txt
Go project Check for go.mod
  1. Determine scan dimensions (default: code, architecture, testing, dependency, documentation)
  2. Detect perspectives from task description:
Condition Perspective
security|auth|inject|xss security
performance|speed|optimize performance
quality|clean|maintain|debt code-quality
architect|pattern|structure architecture
Default code-quality + architecture
  1. Assess complexity:
Signal Weight
全项目|全量|comprehensive|full +3
architecture|架构 +1
multiple|across|cross|多模块 +2
Score Complexity
>= 4 High
2-3 Medium
0-1 Low

Phase 3: Multi-Dimension Scan

Delegate to commands/scan-debt.md if available, otherwise execute inline.

Core Strategy: Three-layer parallel Fan-out

Complexity Strategy
Low Direct: ACE search + Grep inline scan
Medium/High Fan-out A: Subagent exploration (cli-explore-agent) + Fan-out B: CLI dimension analysis (gemini per dimension) + Fan-out C: Multi-perspective Gemini analysis

Fan-out Architecture:

Fan-out A: Subagent Exploration (parallel cli-explore)
  structure perspective | patterns perspective | deps perspective
                        ↓ merge
Fan-out B: CLI Dimension Analysis (parallel gemini)
  code | architecture | testing | dependency | documentation
                        ↓ merge
Fan-out C: Multi-Perspective Gemini (parallel)
  security | performance | code-quality | architecture
                        ↓ Fan-in aggregate
                  debt-inventory.json

Low Complexity Path (inline):

mcp__ace-tool__search_context({
  project_root_path: <project-root>,
  query: "code smells, TODO/FIXME, deprecated APIs, complex functions, missing tests"
})

Phase 4: Aggregate into Debt Inventory

Standardize findings:

For each finding, create entry:

Field Description
id TD-NNN (sequential)
dimension code, architecture, testing, dependency, documentation
severity critical, high, medium, low
file File path
line Line number
description Issue description
suggestion Fix suggestion
estimated_effort small, medium, large, unknown

Save outputs:

  1. Update shared-memory.json with debt_inventory and debt_score_before
  2. Write <session-folder>/scan/debt-inventory.json:
Field Description
scan_date ISO timestamp
dimensions Array of scanned dimensions
total_items Count of debt items
by_dimension Count per dimension
by_severity Count per severity level
items Array of debt entries

Phase 5: Report to Coordinator

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

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

Report content:

Field Value
Task task.subject
Dimensions dimensions scanned
Status "Debt Found" or "Clean"
Summary Total items with dimension breakdown
Top Debt Items Top 5 critical/high severity items
Debt Inventory Path to debt-inventory.json

Error Handling

Scenario Resolution
No TDSCAN-* tasks available Idle, wait for coordinator assignment
CLI tool unavailable Fall back to ACE search + Grep inline analysis
Scan scope too broad Narrow to src/ directory, report partial results
All dimensions return empty Report clean scan, notify coordinator
CLI timeout Use partial results, note incomplete dimensions
Critical issue beyond scope SendMessage debt_items_found to coordinator