maestro-flow 0.4.10 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/.agents/agents/cli-explore-agent.md +189 -0
  2. package/.agents/agents/conceptual-planning-agent.md +247 -0
  3. package/.agents/agents/impeccable-agent.md +101 -0
  4. package/.agents/agents/team-supervisor.md +145 -0
  5. package/.agents/agents/team-worker.md +239 -0
  6. package/.agents/agents/ui-design-agent.md +289 -0
  7. package/.agents/agents/workflow-analyzer.md +117 -0
  8. package/.agents/agents/workflow-codebase-mapper.md +79 -0
  9. package/.agents/agents/workflow-collab-planner.md +145 -0
  10. package/.agents/agents/workflow-debugger.md +105 -0
  11. package/.agents/agents/workflow-executor.md +134 -0
  12. package/.agents/agents/workflow-external-researcher.md +88 -0
  13. package/.agents/agents/workflow-integration-checker.md +85 -0
  14. package/.agents/agents/workflow-nyquist-auditor.md +87 -0
  15. package/.agents/agents/workflow-phase-researcher.md +87 -0
  16. package/.agents/agents/workflow-plan-checker.md +92 -0
  17. package/.agents/agents/workflow-planner.md +197 -0
  18. package/.agents/agents/workflow-project-researcher.md +76 -0
  19. package/.agents/agents/workflow-research-synthesizer.md +72 -0
  20. package/.agents/agents/workflow-reviewer.md +84 -0
  21. package/.agents/agents/workflow-roadmapper.md +83 -0
  22. package/.agents/agents/workflow-verifier.md +122 -0
  23. package/.agents/skills/codify-to-knowhow/SKILL.md +169 -0
  24. package/.agents/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
  25. package/.agents/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
  26. package/.agents/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
  27. package/.agents/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
  28. package/.agents/skills/learn-decompose/SKILL.md +118 -0
  29. package/.agents/skills/learn-follow/SKILL.md +129 -0
  30. package/.agents/skills/learn-investigate/SKILL.md +154 -0
  31. package/.agents/skills/learn-retro/SKILL.md +159 -0
  32. package/.agents/skills/learn-second-opinion/SKILL.md +124 -0
  33. package/.agents/skills/maestro/SKILL.md +224 -0
  34. package/.agents/skills/maestro-amend/SKILL.md +165 -0
  35. package/.agents/skills/maestro-analyze/SKILL.md +135 -0
  36. package/.agents/skills/maestro-brainstorm/SKILL.md +118 -0
  37. package/.agents/skills/maestro-collab/SKILL.md +174 -0
  38. package/.agents/skills/maestro-composer/SKILL.md +181 -0
  39. package/.agents/skills/maestro-execute/SKILL.md +133 -0
  40. package/.agents/skills/maestro-fork/SKILL.md +88 -0
  41. package/.agents/skills/maestro-guard/SKILL.md +103 -0
  42. package/.agents/skills/maestro-help/SKILL.md +266 -0
  43. package/.agents/skills/maestro-help/index/catalog.json +184 -0
  44. package/.agents/skills/maestro-help/phases/01-parse-intent.md +122 -0
  45. package/.agents/skills/maestro-help/phases/02-search-present.md +181 -0
  46. package/.agents/skills/maestro-help/phases/03-workflow-guide.md +186 -0
  47. package/.agents/skills/maestro-impeccable/SKILL.md +251 -0
  48. package/.agents/skills/maestro-init/SKILL.md +80 -0
  49. package/.agents/skills/maestro-learn/SKILL.md +142 -0
  50. package/.agents/skills/maestro-merge/SKILL.md +66 -0
  51. package/.agents/skills/maestro-milestone-audit/SKILL.md +70 -0
  52. package/.agents/skills/maestro-milestone-complete/SKILL.md +77 -0
  53. package/.agents/skills/maestro-milestone-release/SKILL.md +98 -0
  54. package/.agents/skills/maestro-overlay/SKILL.md +180 -0
  55. package/.agents/skills/maestro-plan/SKILL.md +172 -0
  56. package/.agents/skills/maestro-player/SKILL.md +177 -0
  57. package/.agents/skills/maestro-quick/SKILL.md +67 -0
  58. package/.agents/skills/maestro-ralph/SKILL.md +685 -0
  59. package/.agents/skills/maestro-ralph-execute/SKILL.md +259 -0
  60. package/.agents/skills/maestro-roadmap/SKILL.md +170 -0
  61. package/.agents/skills/maestro-tools-execute/SKILL.md +119 -0
  62. package/.agents/skills/maestro-tools-register/SKILL.md +159 -0
  63. package/.agents/skills/maestro-ui-codify/SKILL.md +82 -0
  64. package/.agents/skills/maestro-update/SKILL.md +178 -0
  65. package/.agents/skills/maestro-verify/SKILL.md +111 -0
  66. package/.agents/skills/manage-codebase-rebuild/SKILL.md +77 -0
  67. package/.agents/skills/manage-codebase-refresh/SKILL.md +59 -0
  68. package/.agents/skills/manage-harvest/SKILL.md +96 -0
  69. package/.agents/skills/manage-issue/SKILL.md +75 -0
  70. package/.agents/skills/manage-issue-discover/SKILL.md +83 -0
  71. package/.agents/skills/manage-knowhow/SKILL.md +79 -0
  72. package/.agents/skills/manage-knowhow-capture/SKILL.md +81 -0
  73. package/.agents/skills/manage-learn/SKILL.md +67 -0
  74. package/.agents/skills/manage-status/SKILL.md +54 -0
  75. package/.agents/skills/manage-wiki/SKILL.md +64 -0
  76. package/.agents/skills/quality-auto-test/SKILL.md +138 -0
  77. package/.agents/skills/quality-debug/SKILL.md +122 -0
  78. package/.agents/skills/quality-refactor/SKILL.md +69 -0
  79. package/.agents/skills/quality-retrospective/SKILL.md +79 -0
  80. package/.agents/skills/quality-review/SKILL.md +130 -0
  81. package/.agents/skills/quality-sync/SKILL.md +53 -0
  82. package/.agents/skills/quality-test/SKILL.md +119 -0
  83. package/.agents/skills/security-audit/SKILL.md +157 -0
  84. package/.agents/skills/skill-iter-tune/SKILL.md +384 -0
  85. package/.agents/skills/skill-iter-tune/phases/01-setup.md +144 -0
  86. package/.agents/skills/skill-iter-tune/phases/02-execute.md +292 -0
  87. package/.agents/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  88. package/.agents/skills/skill-iter-tune/phases/04-improve.md +186 -0
  89. package/.agents/skills/skill-iter-tune/phases/05-report.md +166 -0
  90. package/.agents/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  91. package/.agents/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  92. package/.agents/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  93. package/.agents/skills/spec-add/SKILL.md +70 -0
  94. package/.agents/skills/spec-load/SKILL.md +73 -0
  95. package/.agents/skills/spec-remove/SKILL.md +53 -0
  96. package/.agents/skills/spec-setup/SKILL.md +50 -0
  97. package/.agents/skills/team-coordinate/SKILL.md +268 -0
  98. package/.agents/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  99. package/.agents/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
  100. package/.agents/skills/team-coordinate/roles/coordinator/commands/monitor.md +358 -0
  101. package/.agents/skills/team-coordinate/roles/coordinator/role.md +365 -0
  102. package/.agents/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  103. package/.agents/skills/team-coordinate/specs/pipelines.md +97 -0
  104. package/.agents/skills/team-coordinate/specs/quality-gates.md +112 -0
  105. package/.agents/skills/team-coordinate/specs/role-spec-template.md +198 -0
  106. package/.agents/skills/team-executor/SKILL.md +191 -0
  107. package/.agents/skills/team-executor/roles/executor/commands/monitor.md +239 -0
  108. package/.agents/skills/team-executor/roles/executor/role.md +171 -0
  109. package/.agents/skills/team-executor/specs/session-schema.md +264 -0
  110. package/.agents/skills/team-lifecycle-v4/SKILL.md +211 -0
  111. package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +96 -0
  112. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  113. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
  114. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
  115. package/.agents/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
  116. package/.agents/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  117. package/.agents/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
  118. package/.agents/skills/team-lifecycle-v4/roles/executor/role.md +69 -0
  119. package/.agents/skills/team-lifecycle-v4/roles/planner/role.md +87 -0
  120. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
  121. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  122. package/.agents/skills/team-lifecycle-v4/roles/reviewer/role.md +71 -0
  123. package/.agents/skills/team-lifecycle-v4/roles/supervisor/role.md +194 -0
  124. package/.agents/skills/team-lifecycle-v4/roles/tester/role.md +89 -0
  125. package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +97 -0
  126. package/.agents/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
  127. package/.agents/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
  128. package/.agents/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  129. package/.agents/skills/team-lifecycle-v4/templates/architecture.md +254 -0
  130. package/.agents/skills/team-lifecycle-v4/templates/epics.md +196 -0
  131. package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
  132. package/.agents/skills/team-lifecycle-v4/templates/requirements.md +224 -0
  133. package/.agents/skills/team-quality-assurance/SKILL.md +149 -0
  134. package/.agents/skills/team-quality-assurance/roles/analyst/role.md +90 -0
  135. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  136. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
  137. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +250 -0
  138. package/.agents/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  139. package/.agents/skills/team-quality-assurance/roles/executor/role.md +68 -0
  140. package/.agents/skills/team-quality-assurance/roles/generator/role.md +70 -0
  141. package/.agents/skills/team-quality-assurance/roles/scout/role.md +77 -0
  142. package/.agents/skills/team-quality-assurance/roles/strategist/role.md +73 -0
  143. package/.agents/skills/team-quality-assurance/specs/pipelines.md +115 -0
  144. package/.agents/skills/team-quality-assurance/specs/team-config.json +131 -0
  145. package/.agents/skills/team-review/SKILL.md +149 -0
  146. package/.agents/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  147. package/.agents/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
  148. package/.agents/skills/team-review/roles/coordinator/commands/monitor.md +224 -0
  149. package/.agents/skills/team-review/roles/coordinator/role.md +132 -0
  150. package/.agents/skills/team-review/roles/fixer/role.md +78 -0
  151. package/.agents/skills/team-review/roles/reviewer/role.md +70 -0
  152. package/.agents/skills/team-review/roles/scanner/role.md +81 -0
  153. package/.agents/skills/team-review/specs/dimensions.md +82 -0
  154. package/.agents/skills/team-review/specs/finding-schema.json +82 -0
  155. package/.agents/skills/team-review/specs/pipelines.md +102 -0
  156. package/.agents/skills/team-review/specs/team-config.json +27 -0
  157. package/.agents/skills/team-tech-debt/SKILL.md +130 -0
  158. package/.agents/skills/team-tech-debt/roles/assessor/role.md +79 -0
  159. package/.agents/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  160. package/.agents/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
  161. package/.agents/skills/team-tech-debt/roles/coordinator/commands/monitor.md +209 -0
  162. package/.agents/skills/team-tech-debt/roles/coordinator/role.md +123 -0
  163. package/.agents/skills/team-tech-debt/roles/executor/role.md +78 -0
  164. package/.agents/skills/team-tech-debt/roles/planner/role.md +71 -0
  165. package/.agents/skills/team-tech-debt/roles/scanner/role.md +92 -0
  166. package/.agents/skills/team-tech-debt/roles/validator/role.md +80 -0
  167. package/.agents/skills/team-tech-debt/specs/pipelines.md +47 -0
  168. package/.agents/skills/team-tech-debt/specs/team-config.json +129 -0
  169. package/.agents/skills/team-testing/SKILL.md +145 -0
  170. package/.agents/skills/team-testing/roles/analyst/role.md +105 -0
  171. package/.agents/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  172. package/.agents/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
  173. package/.agents/skills/team-testing/roles/coordinator/commands/monitor.md +257 -0
  174. package/.agents/skills/team-testing/roles/coordinator/role.md +134 -0
  175. package/.agents/skills/team-testing/roles/executor/role.md +101 -0
  176. package/.agents/skills/team-testing/roles/generator/role.md +100 -0
  177. package/.agents/skills/team-testing/roles/strategist/role.md +85 -0
  178. package/.agents/skills/team-testing/specs/pipelines.md +101 -0
  179. package/.agents/skills/team-testing/specs/team-config.json +93 -0
  180. package/.agents/skills/wiki-connect/SKILL.md +64 -0
  181. package/.agents/skills/wiki-digest/SKILL.md +70 -0
  182. package/.agents/skills/workflow-skill-designer/SKILL.md +498 -0
  183. package/.agents/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  184. package/.agents/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  185. package/.agents/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  186. package/.agents/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  187. package/.agy/skills/maestro/SKILL.md +13 -11
  188. package/.agy/skills/maestro-ralph/SKILL.md +222 -87
  189. package/.claude/commands/maestro-ralph.md +222 -87
  190. package/.claude/commands/maestro.md +13 -11
  191. package/.codex/skills/maestro/SKILL.md +23 -17
  192. package/.codex/skills/maestro-ralph/SKILL.md +177 -67
  193. package/dist/src/commands/install-backend.d.ts +12 -0
  194. package/dist/src/commands/install-backend.d.ts.map +1 -1
  195. package/dist/src/commands/install-backend.js +144 -0
  196. package/dist/src/commands/install-backend.js.map +1 -1
  197. package/dist/src/core/component-defs.d.ts +6 -0
  198. package/dist/src/core/component-defs.d.ts.map +1 -1
  199. package/dist/src/core/component-defs.js +97 -0
  200. package/dist/src/core/component-defs.js.map +1 -1
  201. package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts +11 -0
  202. package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts.map +1 -0
  203. package/dist/src/tui/install-ui/ExtraMcpConfig.js +61 -0
  204. package/dist/src/tui/install-ui/ExtraMcpConfig.js.map +1 -0
  205. package/dist/src/tui/install-ui/InstallConfirm.d.ts +3 -0
  206. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  207. package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
  208. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  209. package/dist/src/tui/install-ui/InstallExecution.d.ts +2 -0
  210. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  211. package/dist/src/tui/install-ui/InstallExecution.js +14 -2
  212. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  213. package/dist/src/tui/install-ui/InstallFlow.d.ts +1 -1
  214. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  215. package/dist/src/tui/install-ui/InstallFlow.js +16 -3
  216. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  217. package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
  218. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  219. package/dist/src/tui/install-ui/InstallHub.js +8 -0
  220. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  221. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  222. package/dist/src/tui/install-ui/InstallResult.js +3 -1
  223. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  224. package/dist/src/utils/update-notices.js +19 -0
  225. package/dist/src/utils/update-notices.js.map +1 -1
  226. package/package.json +5 -2
@@ -0,0 +1,79 @@
1
+ ---
2
+ role: assessor
3
+ prefix: TDEVAL
4
+ inner_loop: false
5
+ message_types: [state_update]
6
+ ---
7
+ <!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
8
+
9
+
10
+ # Tech Debt Assessor
11
+
12
+ Quantitative evaluator for tech debt items. Score each debt item on business impact (1-5) and fix cost (1-5), classify into priority quadrants, produce priority-matrix.json.
13
+
14
+ ## Phase 2: Load Debt Inventory
15
+
16
+ | Input | Source | Required |
17
+ |-------|--------|----------|
18
+ | Session path | task description (regex: `session:\s*(.+)`) | Yes |
19
+ | .msg/meta.json | <session>/.msg/meta.json | Yes |
20
+ | Debt inventory | meta.json:debt_inventory OR <session>/scan/debt-inventory.json | Yes |
21
+
22
+ 1. Extract session path from task description
23
+ 2. Read .msg/meta.json for team context
24
+ 3. Load debt_inventory from shared memory or fallback to debt-inventory.json file
25
+ 4. If debt_inventory is empty -> report empty assessment and exit
26
+
27
+ ## Phase 3: Evaluate Each Item
28
+
29
+ **Strategy selection**:
30
+
31
+ | Item Count | Strategy |
32
+ |------------|----------|
33
+ | <= 10 | Heuristic: severity-based impact + effort-based cost |
34
+ | 11-50 | CLI batch: single gemini analysis call |
35
+ | > 50 | CLI chunked: batches of 25 items |
36
+
37
+ **Impact Score Mapping** (heuristic):
38
+
39
+ | Severity | Impact Score |
40
+ |----------|-------------|
41
+ | critical | 5 |
42
+ | high | 4 |
43
+ | medium | 3 |
44
+ | low | 1 |
45
+
46
+ **Cost Score Mapping** (heuristic):
47
+
48
+ | Estimated Effort | Cost Score |
49
+ |------------------|------------|
50
+ | small | 1 |
51
+ | medium | 3 |
52
+ | large | 5 |
53
+ | unknown | 3 |
54
+
55
+ **Priority Quadrant Classification**:
56
+
57
+ | Impact | Cost | Quadrant |
58
+ |--------|------|----------|
59
+ | >= 4 | <= 2 | quick-win |
60
+ | >= 4 | >= 3 | strategic |
61
+ | <= 3 | <= 2 | backlog |
62
+ | <= 3 | >= 3 | defer |
63
+
64
+ For CLI mode, prompt gemini with full debt summary requesting JSON array of `{id, impact_score, cost_score, risk_if_unfixed, priority_quadrant}`. Unevaluated items fall back to heuristic scoring.
65
+
66
+ ### Tech Profile Scan
67
+
68
+ After assessment, emit context-aware trigger signals (based on detected codebase characteristics):
69
+
70
+ 1. Check debt items → signals (`legacy_patterns`, `perf_sensitive`, `test_gap`)
71
+ 2. Check code patterns → risk signals (`sql_detected`, `auth_detected`, `scaling_concern`)
72
+ 3. Include `tech_profile` in Phase 5 state_update data
73
+
74
+ ## Phase 4: Generate Priority Matrix
75
+
76
+ 1. Build matrix structure: evaluation_date, total_items, by_quadrant (grouped), summary (counts per quadrant)
77
+ 2. Sort within each quadrant by impact_score descending
78
+ 3. Write `<session>/assessment/priority-matrix.json`
79
+ 4. Update .msg/meta.json with `priority_matrix` summary and evaluated `debt_inventory`
@@ -0,0 +1,47 @@
1
+ # Analyze Task
2
+
3
+ Parse user task -> detect tech debt signals -> assess complexity -> determine pipeline mode and roles.
4
+
5
+ **CONSTRAINT**: Text-level analysis only. NO source code reading, NO codebase exploration.
6
+
7
+ ## Signal Detection
8
+
9
+ | Keywords | Signal | Mode Hint |
10
+ |----------|--------|-----------|
11
+ | 扫描, scan, 审计, audit | debt-scan | scan |
12
+ | 评估, assess, quantify | debt-assess | scan |
13
+ | 规划, plan, roadmap | debt-plan | targeted |
14
+ | 修复, fix, remediate, clean | debt-fix | remediate |
15
+ | 验证, validate, verify | debt-validate | remediate |
16
+ | 定向, targeted, specific | debt-targeted | targeted |
17
+
18
+ ## Complexity Scoring
19
+
20
+ | Factor | Points |
21
+ |--------|--------|
22
+ | Full codebase scope | +2 |
23
+ | Multiple debt dimensions | +1 per dimension (max 3) |
24
+ | Large codebase (implied) | +1 |
25
+ | Targeted specific items | -1 |
26
+
27
+ Results: 1-3 Low (scan mode), 4-6 Medium (remediate), 7+ High (remediate + full pipeline)
28
+
29
+ ## Pipeline Mode Determination
30
+
31
+ | Score + Signals | Mode |
32
+ |----------------|------|
33
+ | scan/audit keywords | scan |
34
+ | targeted/specific keywords | targeted |
35
+ | Default | remediate |
36
+
37
+ ## Output
38
+
39
+ Write scope context to coordinator memory:
40
+ ```json
41
+ {
42
+ "pipeline_mode": "<scan|remediate|targeted>",
43
+ "scope": "<detected-scope>",
44
+ "focus_dimensions": ["code", "architecture", "testing", "dependency", "documentation"],
45
+ "complexity": { "score": 0, "level": "Low|Medium|High" }
46
+ }
47
+ ```
@@ -0,0 +1,156 @@
1
+ # Command: dispatch
2
+
3
+ > 任务链创建与依赖管理。根据 pipeline 模式创建技术债务治理任务链并分配给 worker 角色。
4
+
5
+ ## When to Use
6
+
7
+ - Phase 3 of Coordinator
8
+ - Pipeline 模式已确定,需要创建任务链
9
+ - 团队已创建,worker 已 spawn
10
+
11
+ **Trigger conditions**:
12
+ - Coordinator Phase 2 完成后
13
+ - 模式切换需要重建任务链
14
+ - Fix-Verify 循环需要创建修复任务
15
+
16
+ ## Strategy
17
+
18
+ ### Delegation Mode
19
+
20
+ **Mode**: Direct(coordinator 直接操作 create_task/update_task)
21
+
22
+ ### Decision Logic
23
+
24
+ ```javascript
25
+ // 根据 pipelineMode 选择 pipeline
26
+ function buildPipeline(pipelineMode, sessionFolder, taskDescription) {
27
+ const pipelines = {
28
+ 'scan': [
29
+ { prefix: 'TDSCAN', owner: 'scanner', desc: '多维度技术债务扫描', blockedBy: [] },
30
+ { prefix: 'TDEVAL', owner: 'assessor', desc: '量化评估与优先级排序', blockedBy: ['TDSCAN'] }
31
+ ],
32
+ 'remediate': [
33
+ { prefix: 'TDSCAN', owner: 'scanner', desc: '多维度技术债务扫描', blockedBy: [] },
34
+ { prefix: 'TDEVAL', owner: 'assessor', desc: '量化评估与优先级排序', blockedBy: ['TDSCAN'] },
35
+ { prefix: 'TDPLAN', owner: 'planner', desc: '分阶段治理方案规划', blockedBy: ['TDEVAL'] },
36
+ { prefix: 'TDFIX', owner: 'executor', desc: '债务清理执行', blockedBy: ['TDPLAN'] },
37
+ { prefix: 'TDVAL', owner: 'validator', desc: '清理结果验证', blockedBy: ['TDFIX'] }
38
+ ],
39
+ 'targeted': [
40
+ { prefix: 'TDPLAN', owner: 'planner', desc: '定向修复方案规划', blockedBy: [] },
41
+ { prefix: 'TDFIX', owner: 'executor', desc: '债务清理执行', blockedBy: ['TDPLAN'] },
42
+ { prefix: 'TDVAL', owner: 'validator', desc: '清理结果验证', blockedBy: ['TDFIX'] }
43
+ ]
44
+ }
45
+ return pipelines[pipelineMode] || pipelines['scan']
46
+ }
47
+ ```
48
+
49
+ ## Execution Steps
50
+
51
+ ### Step 1: Context Preparation
52
+
53
+ ```javascript
54
+ const pipeline = buildPipeline(pipelineMode, sessionFolder, taskDescription)
55
+ ```
56
+
57
+ ### Step 2: Execute Strategy
58
+
59
+ ```javascript
60
+ const taskIds = {}
61
+
62
+ for (const stage of pipeline) {
63
+ // 构建任务描述(包含 session 和上下文信息)
64
+ const fullDesc = [
65
+ stage.desc,
66
+ `\nsession: ${sessionFolder}`,
67
+ `\n\n目标: ${taskDescription}`
68
+ ].join('')
69
+
70
+ // 创建任务
71
+ create_task({
72
+ subject: `${stage.prefix}-001: ${stage.desc}`,
73
+ description: fullDesc,
74
+ activeForm: `${stage.desc}进行中`
75
+ })
76
+
77
+ // 记录任务 ID
78
+ const allTasks = list_tasks()
79
+ const newTask = allTasks.find(t => t.subject.startsWith(`${stage.prefix}-001`))
80
+ taskIds[stage.prefix] = newTask.id
81
+
82
+ // 设置 owner 和依赖
83
+ const blockedByIds = stage.blockedBy
84
+ .map(dep => taskIds[dep])
85
+ .filter(Boolean)
86
+
87
+ update_task({
88
+ taskId: newTask.id,
89
+ owner: stage.owner,
90
+ addBlockedBy: blockedByIds
91
+ })
92
+ }
93
+ ```
94
+
95
+ ### Step 3: Result Processing
96
+
97
+ ```javascript
98
+ // 验证任务链
99
+ const allTasks = list_tasks()
100
+ const chainTasks = pipeline.map(s => taskIds[s.prefix]).filter(Boolean)
101
+ const chainValid = chainTasks.length === pipeline.length
102
+
103
+ if (!chainValid) {
104
+ mcp__ccw-tools__team_msg({
105
+ operation: "log", session_id: sessionId, from: "coordinator", // team must be session ID (e.g., TD-xxx-date), NOT team name
106
+ type: "error",
107
+ })
108
+ }
109
+ ```
110
+
111
+ ## Fix-Verify Loop Task Creation
112
+
113
+ 当 validator 报告回归问题时,coordinator 调用此逻辑追加任务:
114
+
115
+ ```javascript
116
+ function createFixVerifyTasks(fixVerifyIteration, sessionFolder) {
117
+ // 创建修复任务
118
+ create_task({
119
+ subject: `TDFIX-fix-${fixVerifyIteration}: 修复回归问题 (Fix-Verify #${fixVerifyIteration})`,
120
+ description: `修复验证发现的回归问题\nsession: ${sessionFolder}\ntype: fix-verify`,
121
+ activeForm: `Fix-Verify #${fixVerifyIteration} 修复中`
122
+ })
123
+
124
+ // 创建重新验证任务
125
+ create_task({
126
+ subject: `TDVAL-verify-${fixVerifyIteration}: 重新验证 (Fix-Verify #${fixVerifyIteration})`,
127
+ description: `重新验证修复结果\nsession: ${sessionFolder}`,
128
+ activeForm: `Fix-Verify #${fixVerifyIteration} 验证中`
129
+ })
130
+
131
+ // 设置依赖: TDVAL-verify 依赖 TDFIX-fix
132
+ // ... update_task addBlockedBy
133
+ }
134
+ ```
135
+
136
+ ## Output Format
137
+
138
+ ```
139
+ ## Task Chain Created
140
+
141
+ ### Mode: [scan|remediate|targeted]
142
+ ### Pipeline Stages: [count]
143
+ - [prefix]-001: [description] (owner: [role], blocked by: [deps])
144
+
145
+ ### Verification: PASS/FAIL
146
+ ```
147
+
148
+ ## Error Handling
149
+
150
+ | Scenario | Resolution |
151
+ |----------|------------|
152
+ | Task creation fails | Retry once, then report to user |
153
+ | Dependency cycle detected | Flatten dependencies, warn coordinator |
154
+ | Invalid pipelineMode | Default to 'scan' mode |
155
+ | Agent/CLI failure | Retry once, then fallback to inline execution |
156
+ | Timeout (>5 min) | Report partial results, notify coordinator |
@@ -0,0 +1,209 @@
1
+ # monitor_process Pipeline
2
+
3
+ Event-driven pipeline coordination. Beat model: coordinator wake -> process -> spawn -> STOP.
4
+
5
+ ## Constants
6
+
7
+ - SPAWN_MODE: background
8
+ - ONE_STEP_PER_INVOCATION: true
9
+ - FAST_ADVANCE_AWARE: true
10
+ - WORKER_AGENT: team-worker
11
+ - MAX_GC_ROUNDS: 3
12
+
13
+ ## Handler Router
14
+
15
+ | Source | Handler |
16
+ |--------|---------|
17
+ | Message contains [scanner], [assessor], [planner], [executor], [validator] | handleCallback |
18
+ | "capability_gap" | handleAdapt |
19
+ | "check" or "status" | handleCheck |
20
+ | "resume" or "continue" | handleResume |
21
+ | All tasks completed | handleComplete |
22
+ | Default | handleSpawnNext |
23
+
24
+ ## handleCallback
25
+
26
+ Worker completed. Process and advance.
27
+
28
+ 1. Find matching worker by role tag in message
29
+ 2. Check if progress update (inner loop) or final completion
30
+ 3. Progress update -> update session state, STOP
31
+ 4. Completion -> mark task done:
32
+ ```
33
+ update_task({ taskId: "<task-id>", status: "completed" })
34
+ ```
35
+ 5. Remove from active_workers, record completion in session
36
+
37
+ 6. Check for checkpoints:
38
+ - **TDPLAN-001 completes** -> Plan Approval Gate:
39
+ ```
40
+ ask_user({
41
+ questions: [{ question: "Remediation plan generated. Review and decide:",
42
+ header: "Plan Review", multiSelect: false,
43
+ options: [
44
+ { label: "Approve", description: "Proceed with fix execution" },
45
+ { label: "Revise", description: "Re-run planner with feedback" },
46
+ { label: "Abort", description: "Stop pipeline" }
47
+ ]
48
+ }]
49
+ })
50
+ ```
51
+ - Approve -> Worktree Creation -> handleSpawnNext
52
+ - Revise -> Create TDPLAN-revised task -> handleSpawnNext
53
+ - Abort -> Log shutdown -> handleComplete
54
+
55
+ - **Worktree Creation** (before TDFIX):
56
+ ```
57
+ shell("git worktree add .worktrees/TD-<slug>-<date> -b tech-debt/TD-<slug>-<date>")
58
+ ```
59
+ Update .msg/meta.json with worktree info.
60
+
61
+ - **TDVAL-* completes** -> GC Loop Check:
62
+ Read validation results from .msg/meta.json
63
+
64
+ | Condition | Action |
65
+ |-----------|--------|
66
+ | No regressions | -> handleSpawnNext (pipeline complete) |
67
+ | Regressions AND gc_rounds < 3 | Create fix-verify tasks, increment gc_rounds |
68
+ | Regressions AND gc_rounds >= 3 | Accept current state -> handleComplete |
69
+
70
+ Fix-Verify Task Creation:
71
+ ```
72
+ create_task({ subject: "TDFIX-fix-<round>", description: "PURPOSE: Fix regressions | Session: <session>" })
73
+ create_task({ subject: "TDVAL-recheck-<round>", description: "..." })
74
+ update_task({ taskId: "TDVAL-recheck-<round>", addBlockedBy: ["TDFIX-fix-<round>"] })
75
+ ```
76
+
77
+ 7. -> handleSpawnNext
78
+
79
+ ## handleCheck
80
+
81
+ Read-only status report, then STOP.
82
+
83
+ **Worker Progress** (from message bus):
84
+
85
+ Before generating status output, read worker milestones:
86
+
87
+ ```javascript
88
+ const progressMsgs = mcp__ccw-tools__team_msg({
89
+ operation: "list", session_id: sessionId, type: "progress", last: 50
90
+ })
91
+ const blockerMsgs = mcp__ccw-tools__team_msg({
92
+ operation: "list", session_id: sessionId, type: "blocker", last: 10
93
+ })
94
+
95
+ // Aggregate latest milestone per task
96
+ const taskProgress = {}
97
+ for (const msg of (progressMsgs.result?.messages || [])) {
98
+ const tid = msg.data?.task_id
99
+ if (tid && (!taskProgress[tid] || msg.ts > taskProgress[tid].ts)) {
100
+ taskProgress[tid] = { phase: msg.data.phase, pct: msg.data.progress_pct, ts: msg.ts }
101
+ }
102
+ }
103
+ ```
104
+
105
+ Include in status output:
106
+ - Per-worker latest milestone (phase + progress_pct) next to task status
107
+ - Active blockers section (if any blockerMsgs found)
108
+
109
+ ```
110
+ Pipeline Status (<mode>):
111
+ [DONE] TDSCAN-001 (scanner) -> scan complete
112
+ [DONE] TDEVAL-001 (assessor) -> assessment ready
113
+ [RUN] TDPLAN-001 (planner) -> planning...
114
+ [WAIT] TDFIX-001 (executor) -> blocked by TDPLAN-001
115
+ [WAIT] TDVAL-001 (validator) -> blocked by TDFIX-001
116
+
117
+ GC Rounds: 0/3
118
+ Session: <session-id>
119
+ Commands: 'resume' to advance | 'check' to refresh
120
+ ```
121
+
122
+ Output status -- do NOT advance pipeline.
123
+
124
+ ## handleResume
125
+
126
+ 1. Audit task list:
127
+ - Tasks stuck in "in_progress" -> reset to "pending"
128
+ - Tasks with completed blockers but still "pending" -> include in spawn list
129
+ 2. -> handleSpawnNext
130
+
131
+ ## handleSpawnNext
132
+
133
+ Find ready tasks, spawn workers, STOP.
134
+
135
+ 1. Collect: completedSubjects, inProgressSubjects, readySubjects (pending + all blockedBy completed)
136
+ 2. No ready + work in progress -> report waiting, STOP
137
+ 3. No ready + nothing in progress -> handleComplete
138
+ 4. Has ready -> for each:
139
+ a. Check inner loop role with active worker -> skip (worker picks up)
140
+ b. update_task -> in_progress
141
+ c. team_msg log -> task_unblocked
142
+ d. Spawn team-worker:
143
+
144
+ ```
145
+ delegate_subagent({
146
+ subagent_type: "team-worker",
147
+ description: "Spawn <role> worker for <task-id>",
148
+ team_name: "tech-debt",
149
+ name: "<role>",
150
+ run_in_background: true,
151
+ prompt: `## Role Assignment
152
+ role: <role>
153
+ role_spec: ~ or <project>/.claude/skills/team-tech-debt/roles/<role>/role.md
154
+ session: <session-folder>
155
+ session_id: <session-id>
156
+ team_name: tech-debt
157
+ requirement: <task-description>
158
+ inner_loop: <true|false>
159
+
160
+ ## Progress Milestones
161
+ session_id: <session-id>
162
+ Report progress via team_msg at natural phase boundaries (context loaded -> core work done -> verification).
163
+ Report blockers immediately via team_msg type="blocker".
164
+ Report completion via team_msg type="task_complete" after final send_message.
165
+
166
+ Read role_spec file to load Phase 2-4 domain instructions.
167
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
168
+ })
169
+ ```
170
+
171
+ Stage-to-role mapping:
172
+ | Task Prefix | Role |
173
+ |-------------|------|
174
+ | TDSCAN | scanner |
175
+ | TDEVAL | assessor |
176
+ | TDPLAN | planner |
177
+ | TDFIX | executor |
178
+ | TDVAL | validator |
179
+
180
+ 5. Add to active_workers, update session, output summary, STOP
181
+
182
+ ## handleComplete
183
+
184
+ Pipeline done. Generate report and completion action.
185
+
186
+ 1. Verify all tasks (including fix-verify tasks) have status "completed"
187
+ 2. If any not completed -> handleSpawnNext
188
+ 3. If all completed:
189
+ - Read final state from .msg/meta.json
190
+ - If worktree exists and validation passed: commit, push, gh pr create, cleanup worktree
191
+ - Compile summary: total tasks, completed, gc_rounds, debt_score_before, debt_score_after
192
+ - Transition to coordinator Phase 5
193
+
194
+ ## handleAdapt
195
+
196
+ Capability gap reported mid-pipeline.
197
+
198
+ 1. Parse gap description
199
+ 2. Check if existing role covers it -> redirect
200
+ 3. Role count < 5 -> generate dynamic role spec in <session>/role-specs/
201
+ 4. Create new task, spawn worker
202
+ 5. Role count >= 5 -> merge or pause
203
+
204
+ ## Fast-Advance Reconciliation
205
+
206
+ On every coordinator wake:
207
+ 1. Read team_msg entries with type="fast_advance"
208
+ 2. Sync active_workers with spawned successors
209
+ 3. No duplicate spawns
@@ -0,0 +1,123 @@
1
+ # Coordinator Role
2
+
3
+ 技术债务治理团队协调者。编排 pipeline:需求澄清 -> 模式选择(scan/remediate/targeted) -> 团队创建 -> 任务分发 -> 监控协调 -> Fix-Verify 循环 -> 债务消减报告。
4
+
5
+ ## Identity
6
+ - **Name**: coordinator | **Tag**: [coordinator]
7
+ - **Responsibility**: Parse requirements -> Create team -> Dispatch tasks -> monitor_process progress -> Report results
8
+
9
+ ## Boundaries
10
+
11
+ ### MUST
12
+ - All output (send_message, team_msg, logs) must carry `[coordinator]` identifier
13
+ - Only responsible for: requirement clarification, mode selection, task creation/dispatch, progress monitoring, quality gates, result reporting
14
+ - Create tasks via create_task and assign to worker roles
15
+ - monitor_process worker progress via message bus and route messages
16
+ - Maintain session state persistence
17
+
18
+ ### MUST NOT
19
+ - Execute tech debt work directly (delegate to workers)
20
+ - Modify task outputs (workers own their deliverables)
21
+ - Call CLI tools for analysis, exploration, or code generation
22
+ - Modify source code or generate artifact files directly
23
+ - Bypass worker roles to complete delegated work
24
+ - Skip dependency validation when creating task chains
25
+ - Omit `[coordinator]` identifier in any output
26
+
27
+ ## Command Execution Protocol
28
+
29
+ When coordinator needs to execute a command (analyze, dispatch, monitor):
30
+
31
+ 1. Read `commands/<command>.md`
32
+ 2. Follow the workflow defined in the command
33
+ 3. Commands are inline execution guides, NOT separate agents
34
+ 4. Execute synchronously, complete before proceeding
35
+
36
+ ## Entry Router
37
+
38
+ | Detection | Condition | Handler |
39
+ |-----------|-----------|---------|
40
+ | Worker callback | Message contains [scanner], [assessor], [planner], [executor], [validator] | -> handleCallback (monitor.md) |
41
+ | Status check | Arguments contain "check" or "status" | -> handleCheck (monitor.md) |
42
+ | Manual resume | Arguments contain "resume" or "continue" | -> handleResume (monitor.md) |
43
+ | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
44
+ | Interrupted session | Active/paused session exists in .workflow/.team/TD-* | -> Phase 0 |
45
+ | New session | None of above | -> Phase 1 |
46
+
47
+ For callback/check/resume/complete: load `@commands/monitor.md`, execute matched handler, STOP.
48
+
49
+ ## Phase 0: Session Resume Check
50
+
51
+ 1. Scan `.workflow/.team/TD-*/.msg/meta.json` for active/paused sessions
52
+ 2. No sessions -> Phase 1
53
+ 3. Single session -> reconcile (audit list_tasks, reset in_progress->pending, rebuild team, kick first ready task)
54
+ 4. Multiple -> ask_user for selection
55
+
56
+ ## Phase 1: Requirement Clarification
57
+
58
+ TEXT-LEVEL ONLY. No source code reading.
59
+
60
+ 1. Parse arguments for explicit settings: mode, scope, focus areas
61
+ 2. Detect mode:
62
+
63
+ | Condition | Mode |
64
+ |-----------|------|
65
+ | `--mode=scan` or keywords: 扫描, scan, 审计, audit, 评估, assess | scan |
66
+ | `--mode=targeted` or keywords: 定向, targeted, 指定, specific, 修复已知 | targeted |
67
+ | `-y` or `--yes` specified | Skip confirmations |
68
+ | Default | remediate |
69
+
70
+ 3. Ask for missing parameters (skip if auto mode):
71
+ - ask_user: Tech Debt Target (自定义 / 全项目扫描 / 完整治理 / 定向修复)
72
+ 4. Store: mode, scope, focus, constraints
73
+ 5. Delegate to @commands/analyze.md -> output task-analysis context
74
+
75
+ ## Phase 2: Create Team + Initialize Session
76
+
77
+ 1. Resolve workspace paths (MUST do first):
78
+ - `project_root` = result of `shell({ command: "pwd" })`
79
+ - `skill_root` = `<project_root>/.claude/skills/team-tech-debt`
80
+ 2. Generate session ID: `TD-<slug>-<YYYY-MM-DD>`
81
+ 3. Create session folder structure (scan/, assessment/, plan/, fixes/, validation/, wisdom/)
82
+ 4. Initialize .msg/meta.json via team_msg state_update with pipeline metadata
83
+ 5. create_team(team_name="tech-debt")
84
+ 6. Do NOT spawn workers yet - deferred to Phase 4
85
+
86
+ ## Phase 3: Create Task Chain
87
+
88
+ Delegate to @commands/dispatch.md. Task chain by mode:
89
+
90
+ | Mode | Task Chain |
91
+ |------|------------|
92
+ | scan | TDSCAN-001 -> TDEVAL-001 |
93
+ | remediate | TDSCAN-001 -> TDEVAL-001 -> TDPLAN-001 -> TDFIX-001 -> TDVAL-001 |
94
+ | targeted | TDPLAN-001 -> TDFIX-001 -> TDVAL-001 |
95
+
96
+ ## Phase 4: Spawn-and-Stop
97
+
98
+ Delegate to @commands/monitor.md#handleSpawnNext:
99
+ 1. Find ready tasks (pending + blockedBy resolved)
100
+ 2. Spawn team-worker agents (see SKILL.md Spawn Template)
101
+ 3. Output status summary
102
+ 4. STOP
103
+
104
+ ## Phase 5: Report + Debt Reduction Metrics + PR
105
+
106
+ 1. Read shared memory -> collect all results
107
+ 2. PR Creation (worktree mode, validation passed): commit, push, gh pr create, cleanup worktree
108
+ 3. Calculate: debt_items_found, items_fixed, reduction_rate
109
+ 4. Generate report with mode, debt scores, validation status
110
+ 5. Output with [coordinator] prefix
111
+ 6. Execute completion action (ask_user: 新目标 / 深度修复 / 关闭团队)
112
+
113
+ ## Error Handling
114
+
115
+ | Error | Resolution |
116
+ |-------|------------|
117
+ | Task timeout | Log, mark failed, ask user to retry or skip |
118
+ | Worker crash | Respawn worker, reassign task |
119
+ | Dependency cycle | Detect, report to user, halt |
120
+ | Invalid mode | Reject with error, ask to clarify |
121
+ | Session corruption | Attempt recovery, fallback to manual reconciliation |
122
+ | Scanner finds no debt | Report clean codebase, skip to summary |
123
+ | Fix-Verify loop stuck >3 iterations | Accept current state, continue pipeline |
@@ -0,0 +1,78 @@
1
+ ---
2
+ role: executor
3
+ prefix: TDFIX
4
+ inner_loop: true
5
+ message_types: [state_update]
6
+ ---
7
+ <!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
8
+
9
+
10
+ # Tech Debt Executor
11
+
12
+ Debt cleanup executor. Apply remediation plan actions in worktree: refactor code, update dependencies, add tests, add documentation. Batch-delegate to CLI tools, self-validate after each batch.
13
+
14
+ ## Phase 2: Load Remediation Plan
15
+
16
+ | Input | Source | Required |
17
+ |-------|--------|----------|
18
+ | Session path | task description (regex: `session:\s*(.+)`) | Yes |
19
+ | .msg/meta.json | <session>/.msg/meta.json | Yes |
20
+ | Remediation plan | <session>/plan/remediation-plan.json | Yes |
21
+ | Worktree info | meta.json:worktree.path, worktree.branch | Yes |
22
+ | Context accumulator | From prior TDFIX tasks (inner loop) | Yes (inner loop) |
23
+
24
+ 1. Extract session path from task description
25
+ 2. Read .msg/meta.json for worktree path and branch
26
+ 3. Read remediation-plan.json, extract all actions from plan phases
27
+ 4. Group actions by type: refactor, restructure, add-tests, update-deps, add-docs
28
+ 5. Split large groups (> 10 items) into sub-batches of 10
29
+ 6. For inner loop (fix-verify cycle): load context_accumulator from prior TDFIX tasks, parse review/validation feedback for specific issues
30
+
31
+ **Batch order**: refactor -> update-deps -> add-tests -> add-docs -> restructure
32
+
33
+ ## Phase 3: Execute Fixes
34
+
35
+ For each batch, use CLI tool for implementation:
36
+
37
+ **Worktree constraint**: ALL file operations and commands must execute within worktree path. Use `cd "<worktree-path>" && ...` prefix for all Bash commands.
38
+
39
+ **Per-batch delegation**:
40
+
41
+ ```bash
42
+ maestro delegate "PURPOSE: Apply tech debt fixes in batch; success = all items fixed without breaking changes
43
+ TASK: <batch-type-specific-tasks>
44
+ MODE: write
45
+ CONTEXT: @<worktree-path>/**/* | Memory: Remediation plan context
46
+ EXPECTED: Code changes that fix debt items, maintain backward compatibility, pass existing tests
47
+ CONSTRAINTS: Minimal changes only | No new features | No suppressions | Read files before modifying
48
+ Batch type: <refactor|update-deps|add-tests|add-docs|restructure>
49
+ Items: <list-of-items-with-file-paths-and-descriptions>" --tool gemini --mode write --cd "<worktree-path>"
50
+ ```
51
+
52
+ Wait for CLI completion before proceeding to next batch.
53
+
54
+ **Fix Results Tracking**:
55
+
56
+ | Field | Description |
57
+ |-------|-------------|
58
+ | items_fixed | Count of successfully fixed items |
59
+ | items_failed | Count of failed items |
60
+ | items_remaining | Remaining items count |
61
+ | batches_completed | Completed batch count |
62
+ | files_modified | Array of modified file paths |
63
+ | errors | Array of error messages |
64
+
65
+ After each batch, verify file modifications via `git diff --name-only` in worktree.
66
+
67
+ ## Phase 4: Self-Validation
68
+
69
+ All commands in worktree:
70
+
71
+ | Check | Command | Pass Criteria |
72
+ |-------|---------|---------------|
73
+ | Syntax | `tsc --noEmit` or `python -m py_compile` | No new errors |
74
+ | Lint | `eslint --no-error-on-unmatched-pattern` | No new errors |
75
+
76
+ Write `<session>/fixes/fix-log.json` with fix results. Update .msg/meta.json with `fix_results`.
77
+
78
+ Append to context_accumulator for next TDFIX task (inner loop): files modified, fixes applied, validation results, discovered caveats.