claude-code-workflow 7.2.10 → 7.2.12

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 (331) hide show
  1. package/.claude/agents/cli-planning-agent.md +3 -0
  2. package/.claude/agents/debug-explore-agent.md +1 -0
  3. package/.claude/agents/tdd-developer.md +1 -0
  4. package/.claude/agents/team-worker.md +1 -1
  5. package/.claude/agents/test-action-planning-agent.md +3 -0
  6. package/.claude/agents/test-context-search-agent.md +1 -0
  7. package/.claude/agents/test-fix-agent.md +3 -0
  8. package/.claude/commands/workflow/analyze-with-file.md +108 -54
  9. package/.claude/commands/workflow-tune.md +811 -0
  10. package/.claude/skills/review-code/SKILL.md +2 -0
  11. package/.claude/skills/review-cycle/SKILL.md +4 -0
  12. package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
  13. package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
  14. package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
  15. package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
  16. package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
  17. package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
  18. package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
  19. package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
  20. package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
  21. package/.claude/skills/team-testing/roles/executor/role.md +2 -1
  22. package/.claude/skills/team-testing/roles/generator/role.md +2 -1
  23. package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
  24. package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
  25. package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
  26. package/.claude/skills/workflow-lite-execute/SKILL.md +106 -14
  27. package/.claude/skills/workflow-lite-plan/SKILL.md +34 -72
  28. package/.claude/skills/workflow-lite-test-review/SKILL.md +41 -26
  29. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
  30. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
  31. package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
  32. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
  33. package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
  34. package/.codex/skills/analyze-with-file/SKILL.md +2 -0
  35. package/.codex/skills/debug-with-file/SKILL.md +4 -0
  36. package/.codex/skills/issue-discover/SKILL.md +1 -0
  37. package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
  38. package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
  39. package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
  40. package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
  41. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
  42. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
  43. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
  44. package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
  45. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
  46. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
  47. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
  48. package/ccw/dist/commands/spec.d.ts.map +1 -1
  49. package/ccw/dist/commands/spec.js +9 -4
  50. package/ccw/dist/commands/spec.js.map +1 -1
  51. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
  52. package/ccw/dist/core/routes/codexlens-routes.js +3 -1
  53. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
  54. package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
  55. package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
  56. package/ccw/dist/tools/spec-index-builder.js +8 -4
  57. package/ccw/dist/tools/spec-index-builder.js.map +1 -1
  58. package/ccw/dist/tools/spec-init.d.ts +1 -1
  59. package/ccw/dist/tools/spec-init.d.ts.map +1 -1
  60. package/ccw/dist/tools/spec-init.js +127 -0
  61. package/ccw/dist/tools/spec-init.js.map +1 -1
  62. package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
  63. package/ccw/dist/tools/spec-loader.js +2 -1
  64. package/ccw/dist/tools/spec-loader.js.map +1 -1
  65. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
  66. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
  67. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
  68. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
  69. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
  70. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
  71. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
  72. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
  73. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
  74. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
  75. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
  76. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
  77. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
  78. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
  79. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
  80. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
  81. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
  82. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
  83. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
  84. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
  85. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
  86. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
  87. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
  88. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
  89. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
  90. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
  91. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
  92. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
  93. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
  94. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
  95. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
  96. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
  97. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
  98. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
  99. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
  100. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
  101. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
  102. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
  103. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
  104. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
  105. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
  106. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
  107. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
  108. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
  109. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
  110. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
  111. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
  112. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
  113. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
  114. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
  115. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
  116. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
  117. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
  118. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
  119. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
  120. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
  121. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
  122. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
  123. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
  124. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
  125. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
  126. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
  127. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
  128. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
  129. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
  130. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
  131. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
  132. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
  133. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
  134. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
  135. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
  136. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
  137. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
  138. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
  139. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
  140. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
  141. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
  142. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
  143. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
  144. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
  145. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
  146. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
  147. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
  148. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
  149. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
  150. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
  151. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
  152. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
  153. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
  154. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
  155. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
  156. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
  157. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
  158. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
  159. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
  160. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
  161. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
  162. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
  163. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
  164. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
  165. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
  166. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
  167. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
  168. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
  169. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
  170. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
  171. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
  172. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
  173. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
  174. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
  175. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
  176. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
  177. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
  178. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
  179. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
  180. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
  181. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
  182. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
  183. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
  184. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
  185. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
  186. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
  187. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
  188. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
  189. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
  190. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
  191. package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
  192. package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
  193. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
  194. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
  195. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
  196. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
  197. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
  198. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
  199. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
  200. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
  201. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
  202. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
  203. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
  204. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
  205. package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
  206. package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
  207. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
  208. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
  209. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
  210. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
  211. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
  212. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
  213. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
  214. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
  215. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
  216. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
  217. package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
  218. package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
  219. package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
  220. package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
  221. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
  222. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
  223. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
  224. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
  226. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
  228. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
  230. package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
  232. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
  234. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
  236. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
  238. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
  240. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
  242. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
  244. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
  246. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
  248. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
  250. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
  252. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
  254. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
  255. package/ccw/frontend/dist/index.html +1 -1
  256. package/package.json +1 -1
  257. package/.claude/commands/ddd/auto.md +0 -359
  258. package/.claude/commands/ddd/doc-generate.md +0 -222
  259. package/.claude/commands/ddd/doc-refresh.md +0 -218
  260. package/.claude/commands/ddd/execute.md +0 -416
  261. package/.claude/commands/ddd/index-build.md +0 -212
  262. package/.claude/commands/ddd/plan.md +0 -611
  263. package/.claude/commands/ddd/scan.md +0 -365
  264. package/.claude/commands/ddd/sync.md +0 -353
  265. package/.claude/commands/ddd/update.md +0 -160
  266. package/.claude/commands/idaw/add.md +0 -287
  267. package/.claude/commands/idaw/resume.md +0 -442
  268. package/.claude/commands/idaw/run-coordinate.md +0 -648
  269. package/.claude/commands/idaw/run.md +0 -539
  270. package/.claude/commands/idaw/status.md +0 -182
  271. package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
  272. package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
  273. package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
  274. package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
  275. package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
  276. package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
  277. package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
  278. package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
  279. package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
  280. package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
  281. package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
  282. package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
  283. package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
  284. package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
  285. package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
  286. package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
  287. package/.claude/skills/team-issue/role-specs/planner.md +0 -83
  288. package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
  289. package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
  290. package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
  291. package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
  292. package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
  293. package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
  294. package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
  295. package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
  296. package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
  297. package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
  298. package/.claude/skills/team-planex/role-specs/executor.md +0 -90
  299. package/.claude/skills/team-planex/role-specs/planner.md +0 -110
  300. package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
  301. package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
  302. package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
  303. package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
  304. package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
  305. package/.claude/skills/team-review/role-specs/fixer.md +0 -75
  306. package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
  307. package/.claude/skills/team-review/role-specs/scanner.md +0 -70
  308. package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
  309. package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
  310. package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
  311. package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
  312. package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
  313. package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
  314. package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
  315. package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
  316. package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
  317. package/.claude/skills/team-testing/role-specs/executor.md +0 -97
  318. package/.claude/skills/team-testing/role-specs/generator.md +0 -96
  319. package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
  320. package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
  321. package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
  322. package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
  323. package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
  324. package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
  325. package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
  326. package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
  327. package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
  328. package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
  329. package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
  330. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
  331. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
@@ -40,7 +40,7 @@ Produces exploration results, a structured plan (plan.json), independent task fi
40
40
 
41
41
  **Output Directory**: `.workflow/.lite-plan/{task-slug}-{YYYY-MM-DD}/`
42
42
 
43
- **Agent Usage**: Low Direct Claude planning (no agent) | Medium/High → `cli-lite-planning-agent`
43
+ **Agent Usage**: All complexities → `cli-lite-planning-agent`
44
44
 
45
45
  **Schema Reference**: `~/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json`
46
46
 
@@ -51,7 +51,7 @@ Produces exploration results, a structured plan (plan.json), independent task fi
51
51
  | LP-0 | Initialize workflowPreferences | autoYes, forceExplore |
52
52
  | LP-1 | Complexity assessment → parallel cli-explore-agents (1-4) | exploration-*.json + manifest |
53
53
  | LP-2 | Aggregate + dedup clarification_needs → multi-round AskUserQuestion | clarificationContext (in-memory) |
54
- | LP-3 | Low: Direct Claude planning / Medium+High: cli-lite-planning-agent | plan.json + .task/TASK-*.json |
54
+ | LP-3 | cli-lite-planning-agent | plan.json + .task/TASK-*.json |
55
55
  | LP-4 | Display plan → AskUserQuestion (Confirm + Execution + Review) | userSelection |
56
56
  | LP-5 | Build executionContext → Skill("lite-execute") | handoff (Mode 1) |
57
57
 
@@ -85,7 +85,7 @@ bash(`mkdir -p ${sessionFolder} && test -d ${sessionFolder} && echo "SUCCESS: ${
85
85
  TodoWrite({ todos: [
86
86
  { content: `LP-Phase 1: Exploration [${complexity}] ${selectedAngles.length} angles`, status: "in_progress", activeForm: `Exploring: ${selectedAngles.join(', ')}` },
87
87
  { content: "LP-Phase 2: Clarification", status: "pending" },
88
- { content: `LP-Phase 3: Planning [${planningStrategy}]`, status: "pending" },
88
+ { content: "LP-Phase 3: Planning [cli-lite-planning-agent]", status: "pending" },
89
89
  { content: "LP-Phase 4: Confirmation", status: "pending" },
90
90
  { content: "LP-Phase 5: Execution", status: "pending" }
91
91
  ]})
@@ -154,12 +154,7 @@ function selectAngles(taskDescription, count) {
154
154
 
155
155
  const selectedAngles = selectAngles(task_description, complexity === 'High' ? 4 : (complexity === 'Medium' ? 3 : 1))
156
156
 
157
- // Direct Claude planning ONLY for: Low + no prior analysis + single angle
158
- const planningStrategy = (
159
- complexity === 'Low' && !hasPriorAnalysis && selectedAngles.length <= 1
160
- ) ? 'Direct Claude Planning' : 'cli-lite-planning-agent'
161
-
162
- console.log(`Exploration Plan: ${complexity} | ${selectedAngles.join(', ')} | ${planningStrategy}`)
157
+ console.log(`Exploration Plan: ${complexity} | ${selectedAngles.join(', ')} | cli-lite-planning-agent`)
163
158
  ```
164
159
 
165
160
  **Launch Parallel Explorations**:
@@ -328,56 +323,7 @@ taskFiles.forEach(taskPath => {
328
323
  })
329
324
  ```
330
325
 
331
- **Low Complexity** — Direct planning by Claude:
332
- ```javascript
333
- const schema = Bash(`cat ~/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json`)
334
-
335
- const manifest = file_exists(`${sessionFolder}/explorations-manifest.json`)
336
- ? JSON.parse(Read(`${sessionFolder}/explorations-manifest.json`))
337
- : { explorations: [] }
338
- manifest.explorations.forEach(exp => {
339
- console.log(`\n### Exploration: ${exp.angle}\n${Read(exp.path)}`)
340
- })
341
-
342
- // When handoffSpec exists, use it as primary planning input
343
- // implementation_scope[].acceptance_criteria -> convergence.criteria
344
- // implementation_scope[].target_files -> files[]
345
- // implementation_scope[].objective -> task title/description
346
- if (handoffSpec) {
347
- console.log(`\n### Handoff Spec from ${handoffSpec.source}`)
348
- console.log(`Scope items: ${handoffSpec.implementation_scope.length}`)
349
- handoffSpec.implementation_scope.forEach((item, i) => {
350
- console.log(` ${i+1}. ${item.objective} [${item.priority}] — Done when: ${item.acceptance_criteria.join('; ')}`)
351
- })
352
- }
353
-
354
- // Generate tasks — MUST incorporate exploration insights OR handoff spec
355
- // When handoffSpec: map implementation_scope[] → tasks[] (1:1 or group by context)
356
- // Field names: convergence.criteria (not acceptance), files[].change (not modification_points), test (not verification)
357
- const tasks = [
358
- {
359
- id: "TASK-001", title: "...", description: "...", depends_on: [],
360
- convergence: { criteria: ["..."] }, // From handoffSpec: item.acceptance_criteria
361
- files: [{ path: "...", change: "..." }], // From handoffSpec: item.target_files + item.change_summary
362
- implementation: ["..."], test: "..."
363
- }
364
- ]
365
-
366
- const taskDir = `${sessionFolder}/.task`
367
- Bash(`mkdir -p "${taskDir}"`)
368
- tasks.forEach(task => Write(`${taskDir}/${task.id}.json`, JSON.stringify(task, null, 2)))
369
-
370
- const plan = {
371
- summary: "...", approach: "...",
372
- task_ids: tasks.map(t => t.id), task_count: tasks.length,
373
- complexity: "Low", estimated_time: "...", recommended_execution: "Agent",
374
- _metadata: { timestamp: getUtc8ISOString(), source: "direct-planning", planning_mode: "direct", plan_type: "feature" }
375
- }
376
- Write(`${sessionFolder}/plan.json`, JSON.stringify(plan, null, 2))
377
- // MUST continue to LP-Phase 4 — DO NOT execute code here
378
- ```
379
-
380
- **Medium/High Complexity** — Invoke cli-lite-planning-agent:
326
+ **Invoke cli-lite-planning-agent**:
381
327
 
382
328
  ```javascript
383
329
  Task(
@@ -492,8 +438,8 @@ ${tasks.map((t, i) => `${i+1}. ${t.title} (${t.scope || t.files?.[0]?.path || ''
492
438
  let userSelection
493
439
 
494
440
  if (workflowPreferences.autoYes) {
495
- console.log(`[Auto] Allow & Execute | Auto | Skip`)
496
- userSelection = { confirmation: "Allow", execution_method: "Auto", code_review_tool: "Skip" }
441
+ console.log(`[Auto] Allow & Execute | Auto | Skip + Skip`)
442
+ userSelection = { confirmation: "Allow", execution_method: "Auto", code_review_tool: "Skip", convergence_review_tool: "Skip" }
497
443
  } else {
498
444
  // "Other" in Execution allows specifying CLI tools from ~/.claude/cli-tools.json
499
445
  userSelection = AskUserQuestion({
@@ -519,14 +465,25 @@ if (workflowPreferences.autoYes) {
519
465
  ]
520
466
  },
521
467
  {
522
- question: "Code review after execution?",
523
- header: "Review",
468
+ question: "Code review after execution? (runs in lite-execute)",
469
+ header: "Code Review",
524
470
  multiSelect: false,
525
471
  options: [
526
- { label: "Gemini Review", description: "Gemini CLI review" },
527
- { label: "Codex Review", description: "Git-aware review (prompt OR --uncommitted)" },
472
+ { label: "Gemini Review", description: "Gemini CLI: git diff quality review" },
473
+ { label: "Codex Review", description: "Codex CLI: git-aware code review (--mode review)" },
528
474
  { label: "Agent Review", description: "@code-reviewer agent" },
529
- { label: "Skip", description: "No review" }
475
+ { label: "Skip", description: "No code review" }
476
+ ]
477
+ },
478
+ {
479
+ question: "Convergence review in test-review phase?",
480
+ header: "Convergence Review",
481
+ multiSelect: false,
482
+ options: [
483
+ { label: "Agent", description: "Agent: verify convergence criteria against implementation" },
484
+ { label: "Gemini", description: "Gemini CLI: convergence verification" },
485
+ { label: "Codex", description: "Codex CLI: convergence verification" },
486
+ { label: "Skip", description: "Skip convergence review, run tests only" }
530
487
  ]
531
488
  }
532
489
  ]
@@ -534,7 +491,7 @@ if (workflowPreferences.autoYes) {
534
491
  }
535
492
  ```
536
493
 
537
- // TodoWrite: Phase 4 → completed `[${userSelection.execution_method} + ${userSelection.code_review_tool}]`, Phase 5 → in_progress
494
+ // TodoWrite: Phase 4 → completed `[${userSelection.execution_method} | CR:${userSelection.code_review_tool} | CVR:${userSelection.convergence_review_tool}]`, Phase 5 → in_progress
538
495
 
539
496
  ## 10. LP-Phase 5: Handoff to Execution
540
497
 
@@ -561,6 +518,7 @@ executionContext = {
561
518
  clarificationContext: clarificationContext || null,
562
519
  executionMethod: userSelection.execution_method,
563
520
  codeReviewTool: userSelection.code_review_tool,
521
+ convergenceReviewTool: userSelection.convergence_review_tool,
564
522
  originalUserInput: task_description,
565
523
  executorAssignments: executorAssignments, // { taskId: { executor, reason } } — overrides executionMethod
566
524
  session: {
@@ -588,7 +546,7 @@ TodoWrite({ todos: [
588
546
  { content: "LP-Phase 1: Exploration", status: "completed" },
589
547
  { content: "LP-Phase 2: Clarification", status: "completed" },
590
548
  { content: "LP-Phase 3: Planning", status: "completed" },
591
- { content: `LP-Phase 4: Confirmed [${userSelection.execution_method}]`, status: "completed" },
549
+ { content: `LP-Phase 4: Confirmed [${userSelection.execution_method} | CR:${userSelection.code_review_tool} | CVR:${userSelection.convergence_review_tool}]`, status: "completed" },
592
550
  { content: `LP-Phase 5: Handoff → lite-execute`, status: "completed" },
593
551
  { content: `LE-Phase 1: Task Loading [${taskCount} tasks]`, status: "in_progress", activeForm: "Loading tasks" }
594
552
  ]})
@@ -605,6 +563,7 @@ Skill("lite-execute")
605
563
  ├── explorations-manifest.json # Exploration index
606
564
  ├── planning-context.md # Evidence paths + understanding
607
565
  ├── plan.json # Plan overview (task_ids[])
566
+ ├── code-review.md # Generated by lite-execute Step 4
608
567
  ├── test-checklist.json # Generated by lite-test-review
609
568
  ├── test-review.md # Generated by lite-test-review
610
569
  └── .task/
@@ -618,9 +577,12 @@ Skill("lite-execute")
618
577
  ```
619
578
  lite-plan (LP-Phase 1-5)
620
579
  └─ Skill("lite-execute") ← executionContext (global)
621
- ├─ Step 1-4: Execute + Review
580
+ ├─ Step 1-3: Task Execution
581
+ ├─ Step 4: Code Review (quality/correctness/security)
622
582
  └─ Step 5: Skill("lite-test-review") ← testReviewContext (global)
623
- ├─ TR-Phase 1-4: Test + Fix
583
+ ├─ TR-Phase 1: Detect test framework
584
+ ├─ TR-Phase 2: Convergence verification (plan criteria)
585
+ ├─ TR-Phase 3-4: Run tests + Auto-fix
624
586
  └─ TR-Phase 5: Report + Sync specs
625
587
  ```
626
588
 
@@ -629,7 +591,7 @@ lite-plan (LP-Phase 1-5)
629
591
  | Error | Resolution |
630
592
  |-------|------------|
631
593
  | Exploration agent failure | Skip exploration, continue with task description only |
632
- | Planning agent failure | Fallback to direct planning by Claude |
594
+ | Planning agent failure | Retry with reduced complexity or suggest breaking task |
633
595
  | Clarification timeout | Use exploration findings as-is |
634
596
  | Confirmation timeout | Save context, display resume instructions |
635
597
  | Modify loop > 3 times | Suggest breaking task or using /workflow-plan |
@@ -649,7 +611,7 @@ Auto mode authorizes the complete plan-and-execute workflow with a single confir
649
611
  - [ ] Parallel exploration agents launched with run_in_background=false
650
612
  - [ ] Explorations manifest built from auto-discovered files
651
613
  - [ ] Clarification needs aggregated, deduped, and presented in batches of 4
652
- - [ ] Plan generated via direct Claude (Low) or cli-lite-planning-agent (Medium/High)
614
+ - [ ] Plan generated via cli-lite-planning-agent
653
615
  - [ ] Plan output as two-layer: plan.json (task_ids[]) + .task/TASK-*.json
654
616
  - [ ] User confirmation collected (or auto-approved in auto mode)
655
617
  - [ ] executionContext fully built with all artifacts and session references
@@ -8,6 +8,8 @@ allowed-tools: Skill, Agent, AskUserQuestion, TodoWrite, Read, Write, Edit, Bash
8
8
 
9
9
  Test review and fix engine for lite-execute chain or standalone invocation.
10
10
 
11
+ **Project Context**: Run `ccw spec load --category test` for test framework conventions, coverage targets, and fixtures.
12
+
11
13
  ---
12
14
 
13
15
  ## Usage
@@ -29,31 +31,31 @@ Test review and fix engine for lite-execute chain or standalone invocation.
29
31
 
30
32
  **Input Source**: `testReviewContext` global variable set by lite-execute Step 4
31
33
 
32
- **Behavior**: Skip session discovery, inherit reviewTool from execution chain, proceed directly to TR-Phase 1.
34
+ **Behavior**: Skip session discovery, inherit convergenceReviewTool from execution chain, proceed directly to TR-Phase 1.
33
35
 
34
- > **Note**: lite-execute Step 4 is the chain gate. Mode 1 invocation means execution is complete — proceed with test review.
36
+ > **Note**: lite-execute Step 5 is the chain gate. Mode 1 invocation means execution + code review are complete — proceed with convergence verification + tests.
35
37
 
36
38
  ### Mode 2: Standalone
37
39
 
38
40
  **Trigger**: User calls with session path or `--last`
39
41
 
40
- **Behavior**: Discover session → load plan + tasks → `reviewTool = 'agent'` → proceed to TR-Phase 1.
42
+ **Behavior**: Discover session → load plan + tasks → `convergenceReviewTool = 'agent'` → proceed to TR-Phase 1.
41
43
 
42
44
  ```javascript
43
- let sessionPath, plan, taskFiles, reviewTool
45
+ let sessionPath, plan, taskFiles, convergenceReviewTool
44
46
 
45
47
  if (testReviewContext) {
46
48
  // Mode 1: from lite-execute chain
47
49
  sessionPath = testReviewContext.session.folder
48
50
  plan = testReviewContext.planObject
49
51
  taskFiles = testReviewContext.taskFiles.map(tf => JSON.parse(Read(tf.path)))
50
- reviewTool = testReviewContext.reviewTool || 'agent'
52
+ convergenceReviewTool = testReviewContext.convergenceReviewTool || 'agent'
51
53
  } else {
52
54
  // Mode 2: standalone — find last session or use provided path
53
55
  sessionPath = resolveSessionPath($ARGUMENTS) // Glob('.workflow/.lite-plan/*/plan.json'), take last
54
56
  plan = JSON.parse(Read(`${sessionPath}/plan.json`))
55
57
  taskFiles = plan.task_ids.map(id => JSON.parse(Read(`${sessionPath}/.task/${id}.json`)))
56
- reviewTool = 'agent'
58
+ convergenceReviewTool = 'agent'
57
59
  }
58
60
 
59
61
  const skipFix = $ARGUMENTS?.includes('--skip-fix') || false
@@ -64,7 +66,7 @@ const skipFix = $ARGUMENTS?.includes('--skip-fix') || false
64
66
  | Phase | Core Action | Output |
65
67
  |-------|-------------|--------|
66
68
  | TR-Phase 1 | Detect test framework + gather changes | testConfig, changedFiles |
67
- | TR-Phase 2 | Review implementation against convergence criteria | reviewResults[] |
69
+ | TR-Phase 2 | Convergence verification against plan criteria | reviewResults[] |
68
70
  | TR-Phase 3 | Run tests + generate checklist | test-checklist.json |
69
71
  | TR-Phase 4 | Auto-fix failures (iterative, max 3 rounds) | Fixed code + updated checklist |
70
72
  | TR-Phase 5 | Output report + chain to session:sync | test-review.md |
@@ -91,32 +93,45 @@ Output: `testConfig = { command, framework, type }` + `changedFiles[]`
91
93
 
92
94
  // TodoWrite: Phase 1 → completed, Phase 2 → in_progress
93
95
 
94
- ## TR-Phase 2: Review Implementation Against Plan
96
+ ## TR-Phase 2: Convergence Verification
95
97
 
96
- **Skip if**: `reviewTool === 'skip'` — set all tasks to PASS, proceed to Phase 3.
98
+ **Skip if**: `convergenceReviewTool === 'skip'` — set all tasks to PASS, proceed to Phase 3.
97
99
 
98
- For each task, verify convergence criteria and identify test gaps.
100
+ Verify each task's convergence criteria are met in the implementation and identify test gaps.
99
101
 
100
- **Agent Review** (reviewTool === 'agent', default):
102
+ **Agent Convergence Review** (convergenceReviewTool === 'agent', default):
101
103
 
102
104
  For each task in taskFiles:
103
- 1. Extract `convergence.criteria[]` and `test` requirements
104
- 2. Find changed files matching `task.files[].path` against `changedFiles`
105
- 3. Read matched files, evaluate each criterion against implementation
106
- 4. Check test coverage: if `task.test.unit` exists but no test files in changedFiles → mark as test gap
107
- 5. Same for `task.test.integration`
108
- 6. Build `reviewResult = { taskId, title, criteria_met[], criteria_unmet[], test_gaps[], files_reviewed[] }`
105
+ 1. Extract `convergence.criteria[]` from the task
106
+ 2. Match `task.files[].path` against `changedFiles` to find actually-changed files
107
+ 3. Read each matched file, verify each convergence criterion with file:line evidence
108
+ 4. Check test coverage gaps:
109
+ - If `task.test.unit` defined but no matching test files in changedFiles → mark as test gap
110
+ - If `task.test.integration` defined but no integration test in changedFiles mark as test gap
111
+ 5. Build `reviewResult = { taskId, title, criteria_met[], criteria_unmet[], test_gaps[], files_reviewed[] }`
112
+
113
+ **Verdict logic**:
114
+ - PASS = all `convergence.criteria` met + no test gaps
115
+ - PARTIAL = some criteria met OR has test gaps
116
+ - FAIL = no criteria met
109
117
 
110
- **CLI Review** (reviewTool === 'gemini' or 'codex'):
118
+ **CLI Convergence Review** (convergenceReviewTool === 'gemini' or 'codex'):
111
119
 
112
120
  ```javascript
113
- const reviewId = `${sessionId}-tr-review`
114
- Bash(`ccw cli -p "PURPOSE: Post-execution test review — verify convergence criteria met and identify test gaps
115
- TASK: Read plan.json and .task/*.json convergence criteria • For each criterion, check implementation in changed files • Identify missing unit/integration tests • List unmet criteria with file:line evidence
121
+ const reviewId = `${sessionId}-convergence`
122
+ const taskCriteria = taskFiles.map(t => `${t.id}: [${(t.convergence?.criteria || []).join(' | ')}]`).join('\n')
123
+ Bash(`ccw cli -p "PURPOSE: Convergence verification check each task's completion criteria against actual implementation
124
+ TASK: • For each task below, verify every convergence criterion is satisfied in the changed files • Mark each criterion as MET (with file:line evidence) or UNMET (with what's missing) • Identify test coverage gaps (planned tests not found in changes)
125
+
126
+ TASK CRITERIA:
127
+ ${taskCriteria}
128
+
129
+ CHANGED FILES: ${changedFiles.join(', ')}
130
+
116
131
  MODE: analysis
117
- CONTEXT: @${sessionPath}/plan.json @${sessionPath}/.task/*.json @**/* | Memory: lite-execute completed, reviewing convergence
118
- EXPECTED: Per-task verdict table (PASS/PARTIAL/FAIL) + unmet criteria list + test gap list
119
- CONSTRAINTS: Read-only | Focus on convergence verification" --tool ${reviewTool} --mode analysis --id ${reviewId}`, { run_in_background: true })
132
+ CONTEXT: @${sessionPath}/plan.json @${sessionPath}/.task/*.json @**/* | Memory: lite-execute completed
133
+ EXPECTED: Per-task verdict (PASS/PARTIAL/FAIL) with per-criterion evidence + test gap list
134
+ CONSTRAINTS: Read-only | Focus strictly on convergence criteria verification, NOT code quality (code review already done in lite-execute)" --tool ${convergenceReviewTool} --mode analysis --id ${reviewId}`, { run_in_background: true })
120
135
  // STOP - wait for hook callback, then parse CLI output into reviewResults format
121
136
  ```
122
137
 
@@ -205,13 +220,13 @@ Skill({ skill: "workflow:session:sync", args: `-y "Test review: ${testChecklist.
205
220
 
206
221
  ## Data Structures
207
222
 
208
- ### testReviewContext (Input - Mode 1, set by lite-execute)
223
+ ### testReviewContext (Input - Mode 1, set by lite-execute Step 5)
209
224
 
210
225
  ```javascript
211
226
  {
212
227
  planObject: { /* same as executionContext.planObject */ },
213
228
  taskFiles: [{ id: string, path: string }],
214
- reviewTool: "skip" | "agent" | "gemini" | "codex",
229
+ convergenceReviewTool: "skip" | "agent" | "gemini" | "codex",
215
230
  executionResults: [...],
216
231
  originalUserInput: string,
217
232
  session: {
@@ -34,6 +34,10 @@ You **MUST** consider the user input before proceeding (if not empty).
34
34
 
35
35
  ## Execution
36
36
 
37
+ ### Step 5.0: Load Validation Context
38
+
39
+ Run `ccw spec load --category validation` for verification rules and acceptance criteria.
40
+
37
41
  ### Step 5.1: Initialize Analysis Context
38
42
 
39
43
  ```bash
@@ -222,6 +222,7 @@ Execute complete context-search-agent workflow for TDD implementation planning:
222
222
  ### Phase 1: Initialization & Pre-Analysis
223
223
  1. **Project State Loading**:
224
224
  - Run: \`ccw spec load --category execution\` to load project context, tech stack, and guidelines.
225
+ - Run: \`ccw spec load --category test\` to load test framework conventions, coverage targets, and fixtures.
225
226
  - If files don't exist, proceed with fresh analysis.
226
227
  2. **Detection**: Check for existing context-package (early exit if valid)
227
228
  3. **Foundation**: Initialize CodexLens, get project structure, load docs
@@ -237,13 +237,14 @@ MCP Capabilities: {exa_code, exa_web, code_index}
237
237
  These files provide project-level constraints that apply to ALL tasks:
238
238
 
239
239
  1. **ccw spec load --category execution** (project specs and tech analysis)
240
+ 2. **ccw spec load --category test** (test framework, coverage targets, conventions)
240
241
  - Contains: tech_stack, architecture_type, key_components, build_system, test_framework, coding_conventions, naming_rules, forbidden_patterns, quality_gates, custom_constraints
241
242
  - Usage: Populate plan.json shared_context, align task tech choices, set correct test commands
242
243
  - Apply as HARD CONSTRAINTS on all generated tasks — task implementation steps,
243
244
  acceptance criteria, and convergence.verification MUST respect these guidelines
244
245
  - If empty/missing: No additional constraints (proceed normally)
245
246
 
246
- Loading order: \`ccw spec load --category execution\` → planning-notes.md → context-package.json
247
+ Loading order: \`ccw spec load --category execution\` → \`ccw spec load --category test\` → planning-notes.md → context-package.json
247
248
 
248
249
  ## USER CONFIGURATION (from Phase 0)
249
250
  Execution Method: ${userConfig.executionMethod} // agent|hybrid|cli
@@ -346,6 +346,7 @@ Execute complete context-search-agent workflow for implementation planning:
346
346
  ### Phase 1: Initialization & Pre-Analysis
347
347
  1. **Project State Loading**:
348
348
  - Run: \`ccw spec load --category execution\` to load project context, tech stack, and guidelines.
349
+ - Run: \`ccw spec load --category test\` to load test framework conventions, coverage targets, and fixtures.
349
350
  - If files don't exist, proceed with fresh analysis.
350
351
  2. **Detection**: Check for existing context-package (early exit if valid)
351
352
  3. **Foundation**: Initialize CodexLens, get project structure, load docs
@@ -249,7 +249,8 @@ Task(
249
249
  ${selectedStrategy} - ${strategyDescription}
250
250
 
251
251
  ## PROJECT CONTEXT (MANDATORY)
252
- 1. Run: \`ccw spec load --category execution\` (tech stack, test framework, build system, constraints)
252
+ 1. Run: \`ccw spec load --category execution\` (tech stack, build system, constraints)
253
+ 2. Run: \`ccw spec load --category test\` (test framework, coverage targets, conventions)
253
254
 
254
255
  ## MANDATORY FIRST STEPS
255
256
  1. Read test results: ${session.test_results_path}
@@ -96,6 +96,7 @@ Step 1: Topic Understanding
96
96
  Step 2: Exploration (Inline, No Agents)
97
97
  ├─ Detect codebase → search relevant modules, patterns
98
98
  │ ├─ Run `ccw spec load --category exploration` (if spec system available)
99
+ │ ├─ Run `ccw spec load --category debug` (known issues and root-cause notes)
99
100
  │ └─ Use Grep, Glob, Read, mcp__ace-tool__search_context
100
101
  ├─ Multi-perspective analysis (if selected, serial)
101
102
  │ ├─ Single: Comprehensive analysis
@@ -320,6 +321,7 @@ const hasCodebase = Bash(`
320
321
  if (hasCodebase !== 'none') {
321
322
  // 1. Read project metadata (if exists)
322
323
  // - Run `ccw spec load --category exploration` (load project specs)
324
+ // - Run `ccw spec load --category debug` (known issues and root-cause notes)
323
325
  // - .workflow/specs/*.md (project conventions)
324
326
 
325
327
  // 2. Search codebase for relevant content
@@ -22,6 +22,10 @@ Enhanced evidence-based debugging with **documented exploration process**. Recor
22
22
 
23
23
  **$BUG**
24
24
 
25
+ ## Project Context
26
+
27
+ Run `ccw spec load --category debug` for known issues, workarounds, and root-cause notes.
28
+
25
29
  ## Execution Process
26
30
 
27
31
  ```
@@ -232,6 +232,7 @@ const agentId = spawn_agent({
232
232
  ### MANDATORY FIRST STEPS (Agent Execute)
233
233
  1. **Read role definition**: ~/.codex/agents/{agent-type}.md (MUST read first)
234
234
  2. Execute: ccw spec load --category exploration
235
+ 3. Execute: ccw spec load --category debug (known issues cross-reference)
235
236
 
236
237
  ## TASK CONTEXT
237
238
  ${taskContext}
@@ -95,6 +95,7 @@ dimensions.forEach(dimension => {
95
95
  4. Validate file access: bash(ls -la ${targetFiles.join(' ')})
96
96
  5. Execute: cat ~/.ccw/workflows/cli-templates/schemas/review-dimension-results-schema.json (get output schema reference)
97
97
  6. Execute: ccw spec load --category "exploration execution" (technology stack and constraints)
98
+ 7. Execute: ccw spec load --category review (review standards and checklists)
98
99
 
99
100
  ---
100
101
 
@@ -217,6 +218,7 @@ dimensions.forEach(dimension => {
217
218
  5. Read review state: ${reviewStateJsonPath}
218
219
  6. Execute: cat ~/.ccw/workflows/cli-templates/schemas/review-dimension-results-schema.json (get output schema reference)
219
220
  7. Execute: ccw spec load --category "exploration execution" (technology stack and constraints)
221
+ 8. Execute: ccw spec load --category review (review standards and checklists)
220
222
 
221
223
  ---
222
224
 
@@ -335,6 +337,7 @@ const deepDiveAgentId = spawn_agent({
335
337
  5. Read test files: bash(find ${projectDir}/tests -name "*${basename(file, '.ts')}*" -type f)
336
338
  6. Execute: cat ~/.ccw/workflows/cli-templates/schemas/review-deep-dive-results-schema.json (get output schema reference)
337
339
  7. Execute: ccw spec load --category "exploration execution" (technology stack and constraints for remediation)
340
+ 8. Execute: ccw spec load --category review (review standards and checklists)
338
341
 
339
342
  ---
340
343
 
@@ -0,0 +1,186 @@
1
+ # Validation Reporter Agent
2
+
3
+ Validate generated skill package structure and content, reporting results with PASS/WARN/FAIL verdict.
4
+
5
+ ## Identity
6
+
7
+ - **Type**: `interactive`
8
+ - **Role File**: `agents/validation-reporter.md`
9
+ - **Responsibility**: Validate generated skill package structure and content, report results
10
+
11
+ ## Boundaries
12
+
13
+ ### MUST
14
+
15
+ - Load role definition via MANDATORY FIRST STEPS pattern
16
+ - Load the generated skill package from session artifacts
17
+ - Validate all structural integrity checks
18
+ - Produce structured output with clear PASS/WARN/FAIL verdict
19
+ - Include specific file references in findings
20
+
21
+ ### MUST NOT
22
+
23
+ - Skip the MANDATORY FIRST STEPS role loading
24
+ - Modify generated skill files
25
+ - Produce unstructured output
26
+ - Report PASS without actually validating all checks
27
+
28
+ ---
29
+
30
+ ## Toolbox
31
+
32
+ ### Available Tools
33
+
34
+ | Tool | Type | Purpose |
35
+ |------|------|---------|
36
+ | `Read` | builtin | Load generated skill files and verify content |
37
+ | `Glob` | builtin | Find files by pattern in skill package |
38
+ | `Grep` | builtin | Search for cross-references and patterns |
39
+ | `Bash` | builtin | Run validation commands, check JSON syntax |
40
+
41
+ ### Tool Usage Patterns
42
+
43
+ **Read Pattern**: Load skill package files for validation
44
+ ```
45
+ Read("{session_folder}/artifacts/<skill-name>/SKILL.md")
46
+ Read("{session_folder}/artifacts/<skill-name>/team-config.json")
47
+ ```
48
+
49
+ **Glob Pattern**: Discover actual role files
50
+ ```
51
+ Glob("{session_folder}/artifacts/<skill-name>/roles/*.md")
52
+ Glob("{session_folder}/artifacts/<skill-name>/commands/*.md")
53
+ ```
54
+
55
+ **Grep Pattern**: Check cross-references
56
+ ```
57
+ Grep("role:", "{session_folder}/artifacts/<skill-name>/SKILL.md")
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Execution
63
+
64
+ ### Phase 1: Package Loading
65
+
66
+ **Objective**: Load the generated skill package from session artifacts.
67
+
68
+ **Input**:
69
+
70
+ | Source | Required | Description |
71
+ |--------|----------|-------------|
72
+ | Skill package path | Yes | Path to generated skill directory in artifacts/ |
73
+ | teamConfig.json | Yes | Original configuration used for generation |
74
+
75
+ **Steps**:
76
+
77
+ 1. Read SKILL.md from the generated package
78
+ 2. Read team-config.json from the generated package
79
+ 3. Enumerate all files in the package using Glob
80
+ 4. Read teamConfig.json from session folder for comparison
81
+
82
+ **Output**: Loaded skill package contents and file inventory
83
+
84
+ ---
85
+
86
+ ### Phase 2: Structural Validation
87
+
88
+ **Objective**: Validate structural integrity of the generated skill package.
89
+
90
+ **Steps**:
91
+
92
+ 1. **SKILL.md validation**:
93
+ - Verify file exists
94
+ - Verify valid frontmatter (name, description, allowed-tools)
95
+ - Verify Role Registry table is present
96
+
97
+ 2. **Role Registry consistency**:
98
+ - Extract roles listed in SKILL.md Role Registry table
99
+ - Glob actual files in roles/ directory
100
+ - Compare: every registry entry has a matching file, every file has a registry entry
101
+
102
+ 3. **Role file validation**:
103
+ - Read each role.md in roles/ directory
104
+ - Verify valid frontmatter (prefix, inner_loop, message_types)
105
+ - Check frontmatter values are non-empty
106
+
107
+ 4. **Pipeline validation**:
108
+ - Extract pipeline stages from SKILL.md or specs/pipelines.md
109
+ - Verify each stage references an existing role
110
+
111
+ 5. **team-config.json validation**:
112
+ - Verify file exists and is valid JSON
113
+ - Verify roles listed match SKILL.md Role Registry
114
+
115
+ 6. **Cross-reference validation**:
116
+ - Check coordinator commands/ files exist if referenced in SKILL.md
117
+ - Verify no broken file paths in cross-references
118
+
119
+ 7. **Issue classification**:
120
+
121
+ | Finding Severity | Condition | Impact |
122
+ |------------------|-----------|--------|
123
+ | FAIL | Missing required file or broken structure | Package unusable |
124
+ | WARN | Inconsistency between files or missing optional content | Package may have issues |
125
+ | INFO | Style or formatting suggestions | Non-blocking |
126
+
127
+ **Output**: Validation findings with severity classifications
128
+
129
+ ---
130
+
131
+ ### Phase 3: Verdict Report
132
+
133
+ **Objective**: Report validation results with overall verdict.
134
+
135
+ | Verdict | Condition | Action |
136
+ |---------|-----------|--------|
137
+ | PASS | No FAIL findings, zero or few WARN | Package is ready for use |
138
+ | WARN | No FAIL findings, but multiple WARN issues | Package usable with noted issues |
139
+ | FAIL | One or more FAIL findings | Package requires regeneration or manual fix |
140
+
141
+ **Output**: Verdict with detailed findings
142
+
143
+ ---
144
+
145
+ ## Structured Output Template
146
+
147
+ ```
148
+ ## Summary
149
+ - Verdict: PASS | WARN | FAIL
150
+ - Skill: <skill-name>
151
+ - Files checked: <count>
152
+
153
+ ## Findings
154
+ - [FAIL] description with file reference (if any)
155
+ - [WARN] description with file reference (if any)
156
+ - [INFO] description with file reference (if any)
157
+
158
+ ## Validation Details
159
+ - SKILL.md frontmatter: OK | MISSING | INVALID
160
+ - Role Registry vs roles/: OK | MISMATCH (<details>)
161
+ - Role frontmatter: OK | INVALID (<which files>)
162
+ - Pipeline references: OK | BROKEN (<which stages>)
163
+ - team-config.json: OK | MISSING | INVALID
164
+ - Cross-references: OK | BROKEN (<which paths>)
165
+
166
+ ## Verdict
167
+ - PASS: Package is structurally valid and ready for use
168
+ OR
169
+ - WARN: Package is usable but has noted issues
170
+ 1. Issue description
171
+ OR
172
+ - FAIL: Package requires fixes before use
173
+ 1. Issue description + suggested resolution
174
+ ```
175
+
176
+ ---
177
+
178
+ ## Error Handling
179
+
180
+ | Scenario | Resolution |
181
+ |----------|------------|
182
+ | Skill package directory not found | Report as FAIL, request correct path |
183
+ | SKILL.md missing | Report as FAIL finding, cannot proceed with full validation |
184
+ | team-config.json invalid JSON | Report as FAIL, include parse error |
185
+ | Role file unreadable | Report as WARN, note which file |
186
+ | Timeout approaching | Output current findings with "PARTIAL" status |