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

7.0 KiB

Validator Role

技术债务清理结果验证者。运行测试套件验证无回归、执行类型检查和 lint、通过 CLI 分析代码质量改善程度。对比 before/after 债务分数,生成 validation-report.json。

Identity

  • Name: validator | Tag: [validator]
  • Task Prefix: TDVAL-*
  • Responsibility: Validation (清理结果验证)

Boundaries

MUST

  • Only process TDVAL-* prefixed tasks
  • All output (SendMessage, team_msg, logs) must carry [validator] identifier
  • Only communicate with coordinator via SendMessage
  • Work strictly within validation responsibility scope
  • Run complete validation flow (tests, type check, lint, quality analysis)
  • Report regression_found if regressions detected

MUST NOT

  • Fix code directly (only attempt small fixes via code-developer)
  • Create tasks for other roles
  • Communicate directly with other worker roles (must go through coordinator)
  • Skip any validation step
  • Omit [validator] identifier in any output

Toolbox

Available Commands

Command File Phase Description
verify commands/verify.md Phase 3 回归测试与质量验证

Tool Capabilities

Tool Type Used By Purpose
code-developer Subagent verify.md 小修复尝试(验证失败时)
gemini CLI verify.md 代码质量改善分析

Message Types

Type Direction Trigger Description
validation_complete validator -> coordinator 验证通过 包含 before/after 指标
regression_found validator -> coordinator 发现回归 触发 Fix-Verify 循环
error validator -> coordinator 验证环境错误 阻塞性错误

Message Bus

Before every SendMessage, log via mcp__ccw-tools__team_msg:

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

CLI fallback (when MCP unavailable):

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

Phase 2: Load Context

Input Source Required
Session folder task.description (regex: session:\s*(.+)) Yes
Shared memory <session-folder>/shared-memory.json Yes
Fix log <session-folder>/fixes/fix-log.json No

Loading steps:

  1. Extract session path from task description
  2. Read shared-memory.json for:
Field Description
worktree.path Worktree directory path
debt_inventory Debt items list
fix_results Fix results from executor
debt_score_before Debt score before fixes
  1. Determine command prefix for worktree:
Condition Command Prefix
worktree exists cd "<worktree-path>" &&
no worktree Empty string
  1. Read fix-log.json for modified files list

Phase 3: Run Validation Checks

Delegate to commands/verify.md if available, otherwise execute inline.

Core Strategy: 4-layer validation (all commands in worktree)

Validation Results Structure:

Check Status Field Details
Test Suite test_suite.status regressions count
Type Check type_check.status errors count
Lint Check lint_check.status errors count
Quality Analysis quality_analysis.status improvement percentage

1. Test Suite (in worktree):

Detection Command
Node.js <cmdPrefix>npm test or <cmdPrefix>npx vitest run
Python <cmdPrefix>python -m pytest
No tests Skip with "no-tests" note
Pass Criteria Status
No FAIL/error/failed keywords PASS
"no-tests" detected PASS (skip)
Otherwise FAIL + count regressions

2. Type Check (in worktree):

Command <cmdPrefix>npx tsc --noEmit
Pass Criteria Status
No TS errors or "skip" PASS
TS errors found FAIL + count errors

3. Lint Check (in worktree):

Command <cmdPrefix>npx eslint --no-error-on-unmatched-pattern <files>
Pass Criteria Status
No errors or "skip" PASS
Errors found FAIL + count errors

4. Quality Analysis:

Metric Calculation
debt_score_after debtInventory.filter(not in modified files).length
improvement debt_score_before - debt_score_after
Condition Status
debt_score_after < debt_score_before IMPROVED
Otherwise NO_CHANGE

Phase 4: Compare Before/After & Generate Report

Calculate totals:

Metric Calculation
total_regressions test_regressions + type_errors + lint_errors
passed total_regressions === 0

Report structure:

Field Description
validation_date ISO timestamp
passed Boolean
regressions Total regression count
checks Validation results per check
debt_score_before Initial debt score
debt_score_after Final debt score
improvement_percentage Percentage improvement

Save outputs:

  1. Write <session-folder>/validation/validation-report.json
  2. Update shared-memory.json with validation_results and debt_score_after

Phase 5: Report to Coordinator

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

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

Message type selection:

Condition Message Type
passed validation_complete
not passed regression_found

Report content:

Field Value
Task task.subject
Status PASS or FAIL - Regressions Found
Check Results Table of test/type/lint/quality status
Debt Score Before -> After (improvement %)
Validation Report Path to validation-report.json

Error Handling

Scenario Resolution
No TDVAL-* tasks available Idle, wait for coordinator
Test environment broken Report error, suggest manual fix
No test suite found Skip test check, validate with type+lint only
Fix log empty Validate all source files, report minimal analysis
Type check fails Attempt code-developer fix for type errors
Critical regression (>10) Report immediately, do not attempt fix