team-tech-debt
npx skills add https://github.com/catlog22/claude-code-workflow --skill team-tech-debt
Agent 安装分布
Skill 文档
Team Tech Debt
ææ¯åºå¡è¯å«ä¸æ¸
çå¢éãèå”åºå¡æ«æ”ã”éåè¯ä¼°”ã”æ²»çè§å”ã”æ¸
çæ§è¡”ã”éªè¯åå½”äºå¤§è½ååï¼å½¢æ”æ«æ->è¯ä¼°->è§å->æ¸
ç->éªè¯”éç¯ãéè¿ Scanner å¤ç»´åº¦æ«æãExecutor-Validator ä¿®å¤éªè¯å¾ªç¯ãå
±äº«åºå¡æ¸
åæ°æ®åºï¼å®ç°æ¸è¿å¼ææ¯åºå¡æ²»çãæææåéè¿ --role=xxx è·¯ç±å°è§è²æ§è¡é»è¾ã
Architecture Overview
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Skill(skill="team-tech-debt", args="--role=xxx") â
ââââââââââââââââââââââââââ¬ââââââââââââââââââââââââââââââââââ
â Role Router
ââââââââââ¬ââââââââââââ¼ââââââââââââ¬âââââââââââ¬âââââââââââ
â â â â â â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
âcoordi- ââscanner ââassessor ââplanner ââexecutorââvalidatorâ
ânator ââTDSCAN-*ââTDEVAL-* ââTDPLAN-* ââTDFIX-* ââTDVAL-* â
â roles/ ââ roles/ ââ roles/ ââ roles/ ââ roles/ ââ roles/ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Command Architecture
roles/
âââ coordinator/
â âââ role.md # Pipeline ç¼æï¼æ¨¡å¼éæ©ãä»»å¡ååãçæ§ï¼
â âââ commands/
â âââ dispatch.md # ä»»å¡é¾å建
â âââ monitor.md # è¿åº¦çæ§
âââ scanner/
â âââ role.md # å¤ç»´åº¦ææ¯åºå¡æ«æ
â âââ commands/
â âââ scan-debt.md # å¤ç»´åº¦ CLI Fan-out æ«æ
âââ assessor/
â âââ role.md # éåè¯ä¼°ä¸ä¼å
级æåº
â âââ commands/
â âââ evaluate.md # å½±å/ææ¬ç©éµè¯ä¼°
âââ planner/
â âââ role.md # æ²»çæ¹æ¡è§å
â âââ commands/
â âââ create-plan.md # åé¶æ®µæ²»çæ¹æ¡çæ
âââ executor/
â âââ role.md # åºå¡æ¸
çæ§è¡
â âââ commands/
â âââ remediate.md # éæ/æ¸
ç/æ´æ°æ§è¡
âââ validator/
âââ role.md # æ¸
çç»æéªè¯
âââ commands/
âââ verify.md # å彿µè¯ä¸è´¨ééªè¯
设计åå: role.md ä¿ç Phase 1ï¼Task Discoveryï¼å Phase 5ï¼Reportï¼å
èãPhase 2-4 æ ¹æ®å¤æåº¦å³å®å
èæå§æ´¾å° commands/*.mdã
Role Router
Input Parsing
Parse $ARGUMENTS to extract --role and optional --agent-name, --team (default: “tech-debt”), --mode (scan/remediate/targeted).
If no --role -> Orchestration Mode (auto route to coordinator).
Role Registry
| Role | File | Task Prefix | Type | Compact |
|---|---|---|---|---|
| coordinator | roles/coordinator/role.md | (none) | orchestrator | å缩åå¿ é¡»é读 |
| scanner | roles/scanner/role.md | TDSCAN-* | pipeline | å缩åå¿ é¡»é读 |
| assessor | roles/assessor/role.md | TDEVAL-* | pipeline | å缩åå¿ é¡»é读 |
| planner | roles/planner/role.md | TDPLAN-* | pipeline | å缩åå¿ é¡»é读 |
| executor | roles/executor/role.md | TDFIX-* | pipeline | å缩åå¿ é¡»é读 |
| validator | roles/validator/role.md | TDVAL-* | pipeline | å缩åå¿ é¡»é读 |
COMPACT PROTECTION: è§è²æä»¶æ¯æ§è¡ææ¡£ï¼ä¸æ¯åèèµæãå½ context compression åçåï¼è§è²æä»¤ä» å©æè¦æ¶ï¼å¿ é¡»ç«å³
Readå¯¹åº role.md éæ°å è½½ååç»§ç»æ§è¡ãä¸å¾åºäºæè¦æ§è¡ä»»ä½ Phaseã
Dispatch
- Extract
--rolefrom arguments - If no
--role-> route to coordinator (Orchestration Mode) - Look up role in registry -> Read the role file -> Execute its phases
- Unknown role -> Error with available role list: coordinator, scanner, assessor, planner, executor, validator
Orchestration Mode
å½ä¸å¸¦ --role è°ç¨æ¶ï¼èªå¨è¿å
¥ coordinator ç¼ææ¨¡å¼ã
è§¦åæ¹å¼:
- ç¨æ·è°ç¨ï¼æ –roleï¼:
Skill(skill="team-tech-debt", args="æ«æå¹¶æ¸ ç项ç®ä¸çææ¯åºå¡") - çä»·äº:
Skill(skill="team-tech-debt", args="--role=coordinator æ«æå¹¶æ¸ ç项ç®ä¸çææ¯åºå¡")
宿´è°ç¨é¾:
ç¨æ·: Skill(args="ä»»å¡æè¿°")
â
ââ SKILL.md: æ --role -> Orchestration Mode -> 读å coordinator role.md
â
ââ coordinator Phase 2: TeamCreate + 模å¼éæ©
â æ pipeline é¶æ®µé个 spawn workerï¼åæ¥é»å¡ï¼
â
ââ coordinator Phase 3: dispatch ä»»å¡é¾
â
ââ worker æ¶å°ä»»å¡ -> Skill(args="--role=xxx") -> SKILL.md Role Router -> role.md
â æ¯ä¸ª worker èªå¨è·å:
â ââ è§è²å®ä¹ (role.md: identity, boundaries, message types)
â ââ å¯ç¨å½ä»¤ (commands/*.md)
â ââ æ§è¡é»è¾ (5-phase process)
â
ââ coordinator Phase 4-5: çæ§ -> ç»ææ±æ¥
User Commands (å¤éå·²æåç coordinator):
| Command | Action |
|---|---|
check / status |
è¾åºæ§è¡ç¶æå¾ï¼ä¸æ¨è¿ |
resume / continue |
æ£æ¥ worker ç¶æï¼æ¨è¿ä¸ä¸æ¥ |
Shared Infrastructure
以ä¸ä¸ºç¼æçº§æ¦è§ãå ·ä½å®ç°ä»£ç ï¼Message BusãTask Lifecycleãå·¥å ·æ¹æ³ï¼å¨å role.md ä¸èªå å«ã
Team Configuration
| Key | Value |
|---|---|
| name | tech-debt |
| sessionDir | .workflow/.team/TD-{slug}-{date}/ |
| sharedMemory | shared-memory.json |
| worktree.basePath | .worktrees |
| worktree.branchPrefix | tech-debt/TD- |
| worktree.autoCleanup | true (remove worktree after PR creation) |
| debtDimensions | code, architecture, testing, dependency, documentation |
| priorityMatrix.highImpact_lowCost | ç«å³ä¿®å¤ (Quick Win) |
| priorityMatrix.highImpact_highCost | æç¥è§å (Strategic) |
| priorityMatrix.lowImpact_lowCost | å¾ åå¤ç (Backlog) |
| priorityMatrix.lowImpact_highCost | æç¼æ¥å (Defer) |
Role Isolation Rules
æ ¸å¿åå: æ¯ä¸ªè§è²ä» è½æ§è¡èªå·±èè´£èå´å çå·¥ä½ã
Output Taggingï¼å¼ºå¶ï¼
ææè§è²çè¾åºå¿
须带 [role_name] æ è¯åç¼ã
Coordinator é离
| å 许 | ç¦æ¢ |
|---|---|
| éæ±æ¾æ¸ (AskUserQuestion) | ç´æ¥æ«æä»£ç |
| å建任å¡é¾ (TaskCreate) | ç´æ¥æ§è¡éæææ¸ ç |
| 模å¼éæ© + è´¨é鍿§ | ç´æ¥è¯ä¼°æè§å |
| çæ§è¿åº¦ (æ¶æ¯æ»çº¿) | ç»è¿ worker èªè¡å®æ |
Worker é离
| å 许 | ç¦æ¢ |
|---|---|
| å¤çèªå·±åç¼çä»»å¡ | å¤çå ¶ä»è§è²åç¼çä»»å¡ |
| 读å shared-memory.json (èªå·±çåæ®µ) | ä¸ºå ¶ä»è§è²åå»ºä»»å¡ |
| SendMessage ç» coordinator | ç´æ¥ä¸å ¶ä» worker éä¿¡ |
Worker Phase 1: Task Discovery (ææ worker å ±äº«)
æ¯ä¸ª worker å¯å¨åæ§è¡ç¸åçä»»å¡åç°æµç¨ï¼
- è°ç¨
TaskList()è·åææä»»å¡ - çé: subject å¹é æ¬è§è²åç¼ + owner æ¯æ¬è§è² + status 为 pending + blockedBy 为空
- æ ä»»å¡ -> idle çå¾
- æä»»å¡ ->
TaskGetè·å详æ ->TaskUpdateæ è®° in_progress
Resume Artifact Check (鲿¢æ¢å¤åéå¤äº§åº):
- æ£æ¥æ¬ä»»å¡çè¾åºäº§ç©æ¯å¦å·²åå¨
- 产ç©å®æ´ -> è·³å° Phase 5 æ¥å宿
- 产ç©ä¸å®æ´æä¸åå¨ -> æ£å¸¸æ§è¡ Phase 2-4
Worker Phase 5: Report (ææ worker å ±äº«)
ä»»å¡å®æåçæ åæ¥åæµç¨:
- Message Bus: è°ç¨
mcp__ccw-tools__team_msgè®°å½æ¶æ¯- åæ°: operation=”log”, team=
<team-name>, from=<role>, to=”coordinator”, type=<æ¶æ¯ç±»å>, summary=”[<role>]<æè¦>“, ref=<产ç©è·¯å¾> - CLI fallback: å½ MCP ä¸å¯ç¨æ¶ ->
ccw team log --team <team> --from <role> --to coordinator --type <type> --summary "[<role>] ..." --json
- åæ°: operation=”log”, team=
- SendMessage: åéç»æç» coordinator (content å summary é½å¸¦
[<role>]åç¼) - TaskUpdate: æ è®°ä»»å¡ completed
- Loop: åå° Phase 1 æ£æ¥ä¸ä¸ä¸ªä»»å¡
Three-Mode Pipeline Architecture
Scan Mode (ä»
æ«æè¯ä¼°):
TDSCAN-001(å¹¶è¡å¤ç»´åº¦æ«æ+å¤è§è§Geminiåæ) -> TDEVAL-001(éåè¯ä¼°) -> æ¥å
Remediate Mode (宿´éç¯):
TDSCAN-001(å¹¶è¡æ«æ) -> TDEVAL-001(è¯ä¼°) -> TDPLAN-001(è§å) -> [Plan Approval] -> [Create Worktree] -> TDFIX-001(ä¿®å¤,worktree) -> TDVAL-001(éªè¯,worktree) -> [Commit+PR] -> æ¥å
Targeted Mode (å®åä¿®å¤):
TDPLAN-001(è§å) -> [Plan Approval] -> [Create Worktree] -> TDFIX-001(ä¿®å¤,worktree) -> TDVAL-001(éªè¯,worktree) -> [Commit+PR] -> æ¥å
TDSCAN Parallel Fan-out Architecture
TDSCAN-001 å
é¨å¹¶è¡æ¶æ:
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Scanner Worker â
â â
â Fan-out A: Subagent Exploration (å¹¶è¡ cli-explore) â
â ââââââââââââ ââââââââââââ ââââââââââââ â
â âstructure â âpatterns â âdeps â â
â âè§åº¦ â âè§åº¦ â âè§åº¦ â â
â âââââââ¬âââââ âââââââ¬âââââ âââââââ¬âââââ â
â ââââââââââââââ¼âââââââââââââ â
â â merge â
â Fan-out B: CLI Dimension Analysis (å¹¶è¡ gemini) â
â ââââââââââââââââââââââââââââââââââââââââââ â
â âcode ââarch ââtestingââdeps ââdocs â â
â ââââ¬âââââââââ¬âââââââââ¬âââââââââ¬ââââââââ¬âââ â
â ââââââââââ¼âââââââââ¼âââââââââ â â
â â merge â â
â Fan-out C: Multi-Perspective Gemini (å¹¶è¡) â
â ââââââââââââââââââââââââââââââââââââââââââ â
â âsecurityââperform. ââqualityââarchitectâ â
â âââââ¬âââââââââââ¬ââââââââââ¬âââââââââââ¬âââââ â
â ââââââââââââ¼ââââââââââ â â
â â Fan-in aggregate â
â debt-inventory.json â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Mode Auto-Detection
| Condition | Detected Mode |
|---|---|
--mode=scan explicitly specified |
scan |
--mode=remediate explicitly specified |
remediate |
--mode=targeted explicitly specified |
targeted |
| Task description contains: æ«æ, scan, 审计, audit, è¯ä¼°, assess | scan |
| Task description contains: å®å, targeted, æå®, specific, ä¿®å¤å·²ç¥ | targeted |
| Default (no match) | remediate |
Fix-Verify Loop
TDFIX -> TDVAL -> (if regression or quality drop) -> TDFIX-fix -> TDVAL-2
(if all pass) -> report
Coordinator Spawn Template
Note: This skill uses Stop-Wait coordination (
run_in_background: false). Each role completes before next spawns. This is intentionally different from the v3 default ofrun_in_background: true(Spawn-and-Stop). The Stop-Wait strategy ensures sequential pipeline execution where each phase’s output is fully available before the next phase begins — critical for the scan->assess->plan->execute->validate dependency chain.
以䏿¨¡æ¿ä½ä¸º worker prompt åèãå¨ Stop-Wait çç¥ä¸ï¼coordinator ä¸å¨ Phase 2 é¢å spawn ææ workerãèæ¯å¨ Phase 4 (monitor) ä¸ï¼æ pipeline é¶æ®µé个 spawn workerï¼åæ¥é»å¡
Task(run_in_background: false)ï¼ï¼worker è¿åå³é¶æ®µå®æã详è§roles/coordinator/commands/monitor.mdã
éç¨ Worker Spawn æ ¼å¼:
Task({
subagent_type: "general-purpose",
description: "Spawn <role> worker",
prompt: `ä½ æ¯ team "<team-name>" ç <ROLE>.
## é¦è¦æä»¤ï¼MUSTï¼
ä½ çææå·¥ä½å¿
é¡»éè¿è°ç¨ Skill è·åè§è²å®ä¹åæ§è¡ï¼ç¦æ¢èªè¡åæ¥ï¼
Skill(skill="team-tech-debt", args="--role=<role>")
æ¤è°ç¨ä¼å è½½ä½ çè§è²å®ä¹ï¼role.mdï¼ãå¯ç¨å½ä»¤ï¼commands/*.mdï¼å宿´æ§è¡é»è¾ã
å½åéæ±: <task-description>
约æ: <constraints>
## è§è²ååï¼å¼ºå¶ï¼
- ä½ åªè½å¤ç <PREFIX>-* åç¼çä»»å¡ï¼ä¸å¾æ§è¡å
¶ä»è§è²çå·¥ä½
- ææè¾åºï¼SendMessageãteam_msgï¼å¿
须带 [<role>] æ è¯åç¼
- ä»
ä¸ coordinator éä¿¡ï¼ä¸å¾ç´æ¥èç³»å
¶ä» worker
- ä¸å¾ä½¿ç¨ TaskCreate 为å
¶ä»è§è²å建任å¡
## æ¶æ¯æ»çº¿ï¼å¿
é¡»ï¼
æ¯æ¬¡ SendMessage åï¼å
è°ç¨ mcp__ccw-tools__team_msg è®°å½ã
## 工使µç¨ï¼ä¸¥æ ¼æé¡ºåºï¼
1. è°ç¨ Skill(skill="team-tech-debt", args="--role=<role>") è·åè§è²å®ä¹åæ§è¡é»è¾
2. æ role.md ä¸ç 5-Phase æµç¨æ§è¡ï¼TaskList -> æ¾å° <PREFIX>-* ä»»å¡ -> æ§è¡ -> æ±æ¥ï¼
3. team_msg log + SendMessage ç»æç» coordinatorï¼å¸¦ [<role>] æ è¯ï¼
4. TaskUpdate completed -> æ£æ¥ä¸ä¸ä¸ªä»»å¡ -> åå°æ¥éª¤ 1`,
run_in_background: false // Stop-Wait: 忥é»å¡ï¼çå¾
worker 宿
})
åè§è² Spawn åæ°:
| Role | Prefix | Skill Args |
|---|---|---|
| scanner | TDSCAN-* | --role=scanner |
| assessor | TDEVAL-* | --role=assessor |
| planner | TDPLAN-* | --role=planner |
| executor | TDFIX-* | --role=executor |
| validator | TDVAL-* | --role=validator |
Cadence Control
èææ¨¡å: Sequential 5-beat — æ«æ->è¯ä¼°->è§å->æ§è¡->éªè¯ï¼ä¸¥æ ¼ä¸²è¡ï¼Stop-Wait çç¥ï¼ã
Sequential 5-Beat Cycle (Remediate Mode)
===================================================================
Beat Coordinator Worker
-------------------------------------------------------------------
Beat 1: SCAN ââ spawn scanner âââââââ
â run_in_background: â
â false (é»å¡çå¾
) âââââ¼ââ> [Scanner] Phase 1-5
â scanner è¿å ââââââââ⤠â
ââ æ¶å°ç»æ ââââââââââââ <âââââââ
â
Beat 2: ASSESS ââ spawn assessor ââââââ
â é»å¡çå¾
âââââââââââââ¼ââ> [Assessor] Phase 1-5
ââ æ¶å°ç»æ ââââââââââââ <âââââââ
â
Beat 3: PLAN ââ spawn planner âââââââ
â é»å¡çå¾
âââââââââââââ¼ââ> [Planner] Phase 1-5
ââ æ¶å°ç»æ ââââââââââââ <âââââââ
â
⸠CHECKPOINT ââ Plan Approval (ç¨æ·ç¡®è®¤)
â
Beat 4: FIX ââ Create Worktree âââââ
â spawn executor âââââââ¼ââ> [Executor] Phase 1-5
â é»å¡çå¾
ââââââââââââ⤠â
ââ æ¶å°ç»æ ââââââââââââ <âââââââ
â
Beat 5: VALIDATEââ spawn validator âââââ
â é»å¡çå¾
âââââââââââââ¼ââ> [Validator] Phase 1-5
ââ æ¶å°ç»æ ââââââââââââ <âââââââ
â
ââ Commit + PR âââââââââ
ââ Final Report ââââââââ
===================================================================
Pipeline èæè§å¾ (ææ¨¡å¼):
Scan Mode (2 beats)
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Beat 1 2
â â
TDSCAN -> TDEVAL -> æ¥å
Remediate Mode (5 beats, ä¸¥æ ¼ä¸²è¡ + æ£æ¥ç¹)
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Beat 1 2 3 ⸠4 5
â â â â â â
SCAN -> EVAL -> PLAN -> [OK?] -> FIX -> VAL -> Report
â²
Plan Approval
Targeted Mode (3 beats, è·³è¿æ«æè¯ä¼°)
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Beat 1 ⸠2 3
â â â â
PLAN -> [OK?] -> FIX -> VAL -> Report
æ£æ¥ç¹ (Checkpoint):
| è§¦åæ¡ä»¶ | ä½ç½® | è¡ä¸º |
|---|---|---|
| Plan Approval | TDPLAN 宿å | æåï¼çå¾ ç¨æ·ç¡®è®¤æ²»çæ¹æ¡ |
| Fix-Verify Loop ä¸é | TDVAL max 3 iterations | è¶ åºè½®æ¬¡ -> 忢è¿ä»£ï¼escalate to user |
| Pipeline åæ» | Worker æ ååº | æ¥åçå¾ ä¸çä»»å¡å表 |
Stall æ£æµ (coordinator monitor æ¶æ§è¡):
| æ£æ¥é¡¹ | æ¡ä»¶ | å¤ç |
|---|---|---|
| Worker æ ååº | in_progress ä»»å¡é¿æ¶é´æ è¿å | Stop-Wait ä¸ä¸éç¨ï¼åæ¥é»å¡ï¼ |
| Fix-Verify 循ç¯è¶ é | TDFIX/TDVAL è¿ä»£ > 3 rounds | ç»æ¢å¾ªç¯ï¼è¾åºææ°éªè¯æ¥å |
| Scanner æ åºå¡ | debt-inventory 为空 | æ¥å clean codebaseï¼è·³è¿åç»é¶æ®µ |
Task Metadata Registry
| Task ID | Role | Phase | Dependencies | Description |
|---|---|---|---|---|
| TDSCAN-001 | scanner | scan | (none) | å¤ç»´åº¦ææ¯åºå¡æ«æï¼å¹¶è¡ Fan-outï¼ |
| TDEVAL-001 | assessor | assess | TDSCAN-001 | éåè¯ä¼°ä¸ä¼å 级æåº |
| TDPLAN-001 | planner | plan | TDEVAL-001 (or none in targeted) | åé¶æ®µæ²»çæ¹æ¡è§å |
| TDFIX-001 | executor | fix | TDPLAN-001 + Plan Approval | åºå¡æ¸ çæ§è¡ï¼worktreeï¼ |
| TDVAL-001 | validator | validate | TDFIX-001 | å彿µè¯ä¸è´¨ééªè¯ |
| TDFIX-002 | executor | fix (loop) | TDVAL-001 (if regression) | Fix-Verify 循ç¯ä¿®å¤ |
| TDVAL-002 | validator | validate (loop) | TDFIX-002 | Fix-Verify 循ç¯éªè¯ |
Wisdom Accumulation (ææè§è²)
跨任å¡ç¥è¯ç§¯ç´¯ãCoordinator å¨ session åå§åæ¶å建 wisdom/ ç®å½ã
ç®å½:
<session-folder>/wisdom/
âââ learnings.md # 模å¼åæ´å¯
âââ decisions.md # æ¶æå设计å³ç
âââ conventions.md # 代ç åºçº¦å®
âââ issues.md # å·²ç¥é£é©åé®é¢
Worker å è½½ (Phase 2): ä» task description æå Session: <path>, 读å wisdom ç®å½ä¸åæä»¶ã
Worker è´¡ç® (Phase 4/5): å°æ¬ä»»å¡åç°åå
¥å¯¹åº wisdom æä»¶ã
Unified Session Directory
.workflow/.team/TD-{slug}-{YYYY-MM-DD}/
âââ team-session.json
âââ shared-memory.json # åºå¡æ¸
å / è¯ä¼°ç©éµ / æ²»çæ¹æ¡ / ä¿®å¤ç»æ / éªè¯ç»æ / worktree ä¿¡æ¯
âââ scan/ # Scanner output
â âââ debt-inventory.json
âââ assessment/ # Assessor output
â âââ priority-matrix.json
âââ plan/ # Planner output
â âââ remediation-plan.md
âââ fixes/ # Executor output
â âââ fix-log.json
âââ validation/ # Validator output
â âââ validation-report.json
âââ wisdom/ # Cross-task knowledge
âââ learnings.md
âââ decisions.md
âââ conventions.md
âââ issues.md
# shared-memory.json worktree åæ®µï¼TDFIX åç± coordinator åå
¥ï¼:
# {
# ...
# "worktree": {
# "path": ".worktrees/TD-{slug}-{date}",
# "branch": "tech-debt/TD-{slug}-{date}"
# }
# }
Error Handling
| Scenario | Resolution |
|---|---|
| Unknown –role value | Error with available role list: coordinator, scanner, assessor, planner, executor, validator |
| Missing –role arg | Orchestration Mode -> auto route to coordinator |
| Role file not found | Error with expected path (roles/{name}/role.md) |
| Command file not found | Fall back to inline execution in role.md |
| Task prefix conflict | Log warning, proceed |
| Scanner finds no debt | Report clean codebase, skip to summary |
| Fix introduces regression | Trigger Fix-Verify loop (max 3 iterations) |
| Validation repeatedly fails | Escalate to user with diagnosis |