claude-code-workflow 7.2.28 → 7.2.30

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 (348) hide show
  1. package/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json +2 -2
  2. package/.ccw/workflows/cli-templates/schemas/task-schema.json +14 -7
  3. package/.claude/agents/action-planning-agent.md +7 -4
  4. package/.claude/agents/cli-explore-agent.md +77 -63
  5. package/.claude/agents/cli-lite-planning-agent.md +11 -10
  6. package/.claude/agents/issue-plan-agent.md +421 -426
  7. package/.claude/commands/workflow/spec/setup.md +1 -1
  8. package/.claude/skills/ccw-chain/SKILL.md +119 -0
  9. package/.claude/skills/ccw-chain/chains/ccw-cycle.json +21 -0
  10. package/.claude/skills/ccw-chain/chains/ccw-exploration.json +47 -0
  11. package/.claude/skills/ccw-chain/chains/ccw-issue.json +33 -0
  12. package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +57 -0
  13. package/.claude/skills/ccw-chain/chains/ccw-main.json +52 -0
  14. package/.claude/skills/ccw-chain/chains/ccw-standard.json +39 -0
  15. package/.claude/skills/ccw-chain/chains/ccw-team.json +10 -0
  16. package/.claude/skills/ccw-chain/chains/ccw-with-file.json +31 -0
  17. package/.claude/skills/ccw-chain/phases/analyze-with-file.md +788 -0
  18. package/.claude/skills/ccw-chain/phases/brainstorm/SKILL.md +408 -0
  19. package/.claude/skills/ccw-chain/phases/brainstorm/phases/01-mode-routing.md +207 -0
  20. package/.claude/skills/ccw-chain/phases/brainstorm/phases/02-artifacts.md +567 -0
  21. package/.claude/skills/ccw-chain/phases/brainstorm/phases/03-role-analysis.md +748 -0
  22. package/.claude/skills/ccw-chain/phases/brainstorm/phases/04-synthesis.md +827 -0
  23. package/.claude/skills/ccw-chain/phases/brainstorm-with-file.md +482 -0
  24. package/.claude/skills/ccw-chain/phases/collaborative-plan-with-file.md +639 -0
  25. package/.claude/skills/ccw-chain/phases/debug-with-file.md +656 -0
  26. package/.claude/skills/ccw-chain/phases/integration-test-cycle.md +936 -0
  27. package/.claude/skills/ccw-chain/phases/issue-convert-to-plan.md +720 -0
  28. package/.claude/skills/ccw-chain/phases/issue-discover.md +483 -0
  29. package/.claude/skills/ccw-chain/phases/issue-execute.md +629 -0
  30. package/.claude/skills/ccw-chain/phases/issue-from-brainstorm.md +382 -0
  31. package/.claude/skills/ccw-chain/phases/issue-plan.md +343 -0
  32. package/.claude/skills/ccw-chain/phases/issue-queue.md +464 -0
  33. package/.claude/skills/ccw-chain/phases/refactor-cycle.md +852 -0
  34. package/.claude/skills/ccw-chain/phases/review-cycle/SKILL.md +132 -0
  35. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-fix.md +760 -0
  36. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-module.md +764 -0
  37. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-session.md +775 -0
  38. package/.claude/skills/ccw-chain/phases/roadmap-with-file.md +544 -0
  39. package/.claude/skills/ccw-chain/phases/spec-generator/SKILL.md +338 -0
  40. package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-5-requirement-clarification.md +404 -0
  41. package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-discovery.md +257 -0
  42. package/.claude/skills/ccw-chain/phases/spec-generator/phases/02-product-brief.md +274 -0
  43. package/.claude/skills/ccw-chain/phases/spec-generator/phases/03-requirements.md +184 -0
  44. package/.claude/skills/ccw-chain/phases/spec-generator/phases/04-architecture.md +248 -0
  45. package/.claude/skills/ccw-chain/phases/spec-generator/phases/05-epics-stories.md +178 -0
  46. package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-5-auto-fix.md +144 -0
  47. package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-readiness-check.md +480 -0
  48. package/.claude/skills/ccw-chain/phases/team-planex.md +123 -0
  49. package/.claude/skills/ccw-chain/phases/ui-design-explore-auto.md +678 -0
  50. package/.claude/skills/ccw-chain/phases/unified-execute-with-file.md +870 -0
  51. package/.claude/skills/ccw-chain/phases/workflow-execute/SKILL.md +625 -0
  52. package/.claude/skills/ccw-chain/phases/workflow-execute/phases/06-review.md +215 -0
  53. package/.claude/skills/ccw-chain/phases/workflow-lite-plan.md +616 -0
  54. package/.claude/skills/ccw-chain/phases/workflow-multi-cli-plan.md +424 -0
  55. package/.claude/skills/ccw-chain/phases/workflow-plan/SKILL.md +466 -0
  56. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/01-session-discovery.md +99 -0
  57. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/02-context-gathering.md +338 -0
  58. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/03-conflict-resolution.md +422 -0
  59. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/04-task-generation.md +440 -0
  60. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/05-plan-verify.md +395 -0
  61. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/06-replan.md +594 -0
  62. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/SKILL.md +527 -0
  63. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/01-session-discovery.md +57 -0
  64. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/02-context-gathering.md +407 -0
  65. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/03-test-coverage-analysis.md +172 -0
  66. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -0
  67. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/05-tdd-task-generation.md +473 -0
  68. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/06-tdd-structure-validation.md +189 -0
  69. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/07-tdd-verify.md +635 -0
  70. package/.claude/skills/ccw-chain/phases/workflow-test-fix/SKILL.md +482 -0
  71. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/01-session-start.md +60 -0
  72. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/02-test-context-gather.md +493 -0
  73. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/03-test-concept-enhanced.md +150 -0
  74. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/04-test-task-generate.md +346 -0
  75. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/05-test-cycle-execute.md +538 -0
  76. package/.claude/skills/ccw-chain/specs/auto-mode.md +47 -0
  77. package/.claude/skills/ccw-chain/specs/intent-patterns.md +60 -0
  78. package/.claude/skills/chain-loader/SKILL.md +78 -0
  79. package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -0
  80. package/.claude/skills/chain-loader/phases/02-design-graph.md +73 -0
  81. package/.claude/skills/chain-loader/phases/03-generate-validate.md +75 -0
  82. package/.claude/skills/chain-loader/specs/chain-schema.md +99 -0
  83. package/.claude/skills/chain-loader/specs/design-patterns.md +99 -0
  84. package/.claude/skills/chain-loader/templates/chain-json.md +63 -0
  85. package/.claude/skills/review-cycle/phases/review-module.md +764 -764
  86. package/.claude/skills/review-cycle/phases/review-session.md +775 -775
  87. package/.claude/skills/workflow-multi-cli-plan/SKILL.md +2 -2
  88. package/.claude/skills/workflow-plan/phases/03-conflict-resolution.md +422 -422
  89. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +395 -395
  90. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +407 -407
  91. package/.claude/skills/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -426
  92. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +493 -493
  93. package/.codex/skills/brainstorm/SKILL.md +3 -3
  94. package/.codex/skills/clean/SKILL.md +3 -3
  95. package/.codex/skills/issue-discover/SKILL.md +13 -13
  96. package/.codex/skills/issue-discover/phases/02-discover.md +4 -4
  97. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +3 -3
  98. package/.codex/skills/parallel-dev-cycle/SKILL.md +4 -4
  99. package/.codex/skills/parallel-dev-cycle/phases/02-agent-execution.md +6 -6
  100. package/.codex/skills/parallel-dev-cycle/phases/03-result-aggregation.md +10 -10
  101. package/.codex/skills/review-cycle/SKILL.md +10 -10
  102. package/.codex/skills/review-cycle/phases/02-parallel-review.md +6 -6
  103. package/.codex/skills/review-cycle/phases/04-iterative-deep-dive.md +4 -4
  104. package/.codex/skills/review-cycle/phases/07-fix-parallel-planning.md +4 -4
  105. package/.codex/skills/review-cycle/phases/08-fix-execution.md +2 -2
  106. package/.codex/skills/roadmap-with-file/SKILL.md +14 -14
  107. package/.codex/skills/spec-generator/README.md +1 -1
  108. package/.codex/skills/spec-generator/SKILL.md +184 -88
  109. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +4 -7
  110. package/.codex/skills/spec-generator/phases/01-discovery.md +30 -11
  111. package/.codex/skills/spec-generator/phases/02-product-brief.md +2 -5
  112. package/.codex/skills/spec-generator/phases/03-requirements.md +4 -6
  113. package/.codex/skills/spec-generator/phases/04-architecture.md +4 -6
  114. package/.codex/skills/spec-generator/phases/05-epics-stories.md +4 -6
  115. package/.codex/skills/spec-generator/phases/06-5-auto-fix.md +4 -5
  116. package/.codex/skills/spec-generator/phases/06-readiness-check.md +8 -8
  117. package/.codex/skills/spec-generator/phases/07-issue-export.md +2 -2
  118. package/.codex/skills/spec-setup/SKILL.md +4 -4
  119. package/.codex/skills/workflow-plan/SKILL.md +6 -6
  120. package/.codex/skills/workflow-tdd-plan/SKILL.md +5 -5
  121. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +19 -19
  122. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +5 -5
  123. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +5 -5
  124. package/README.md +14 -0
  125. package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
  126. package/ccw/dist/core/routes/litellm-api-routes.js +0 -23
  127. package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
  128. package/ccw/dist/tools/chain-loader.d.ts +10 -0
  129. package/ccw/dist/tools/chain-loader.d.ts.map +1 -0
  130. package/ccw/dist/tools/chain-loader.js +642 -0
  131. package/ccw/dist/tools/chain-loader.js.map +1 -0
  132. package/ccw/dist/tools/index.d.ts.map +1 -1
  133. package/ccw/dist/tools/index.js +2 -0
  134. package/ccw/dist/tools/index.js.map +1 -1
  135. package/ccw/dist/tools/json-builder.js +20 -0
  136. package/ccw/dist/tools/json-builder.js.map +1 -1
  137. package/ccw/dist/types/chain-types.d.ts +72 -0
  138. package/ccw/dist/types/chain-types.d.ts.map +1 -0
  139. package/ccw/dist/types/chain-types.js +5 -0
  140. package/ccw/dist/types/chain-types.js.map +1 -0
  141. package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js → AlertDialog-exlTDW81.js} +3 -3
  142. package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js.map → AlertDialog-exlTDW81.js.map} +1 -1
  143. package/ccw/frontend/dist/assets/{AnalysisPage-CAX3xqMf.js → AnalysisPage-cgV9LfAI.js} +2 -2
  144. package/ccw/frontend/dist/assets/{AnalysisPage-CAX3xqMf.js.map → AnalysisPage-cgV9LfAI.js.map} +1 -1
  145. package/ccw/frontend/dist/assets/{ApiSettingsPage-CtWlmztq.js → ApiSettingsPage-Dk5jJdWt.js} +2 -2
  146. package/ccw/frontend/dist/assets/{ApiSettingsPage-CtWlmztq.js.map → ApiSettingsPage-Dk5jJdWt.js.map} +1 -1
  147. package/ccw/frontend/dist/assets/{CliModeToggle-hR4a-eLX.js → CliModeToggle-Be9xsPiv.js} +2 -2
  148. package/ccw/frontend/dist/assets/{CliModeToggle-hR4a-eLX.js.map → CliModeToggle-Be9xsPiv.js.map} +1 -1
  149. package/ccw/frontend/dist/assets/{CliSessionSharePage-DzNPkFN9.js → CliSessionSharePage-Bh9jBtPI.js} +2 -2
  150. package/ccw/frontend/dist/assets/{CliSessionSharePage-DzNPkFN9.js.map → CliSessionSharePage-Bh9jBtPI.js.map} +1 -1
  151. package/ccw/frontend/dist/assets/{CliViewerPage-BPEGN4TT.js → CliViewerPage-BrE-oyEq.js} +2 -2
  152. package/ccw/frontend/dist/assets/{CliViewerPage-BPEGN4TT.js.map → CliViewerPage-BrE-oyEq.js.map} +1 -1
  153. package/ccw/frontend/dist/assets/{CodexLensPage-Cf0r2RHY.js → CodexLensPage-Cd3nrC93.js} +2 -2
  154. package/ccw/frontend/dist/assets/{CodexLensPage-Cf0r2RHY.js.map → CodexLensPage-Cd3nrC93.js.map} +1 -1
  155. package/ccw/frontend/dist/assets/{Collapsible-DEm1rJ4h.js → Collapsible-DXFl3VKF.js} +2 -2
  156. package/ccw/frontend/dist/assets/{Collapsible-DEm1rJ4h.js.map → Collapsible-DXFl3VKF.js.map} +1 -1
  157. package/ccw/frontend/dist/assets/{CommandsManagerPage-BpeWw8HO.js → CommandsManagerPage-IV8zpjgX.js} +2 -2
  158. package/ccw/frontend/dist/assets/{CommandsManagerPage-BpeWw8HO.js.map → CommandsManagerPage-IV8zpjgX.js.map} +1 -1
  159. package/ccw/frontend/dist/assets/{DeepWikiPage-BEsmh2vF.js → DeepWikiPage-CpDxtmRX.js} +2 -2
  160. package/ccw/frontend/dist/assets/{DeepWikiPage-BEsmh2vF.js.map → DeepWikiPage-CpDxtmRX.js.map} +1 -1
  161. package/ccw/frontend/dist/assets/{EndpointsPage-B30SFdtU.js → EndpointsPage-BchjWe7s.js} +2 -2
  162. package/ccw/frontend/dist/assets/{EndpointsPage-B30SFdtU.js.map → EndpointsPage-BchjWe7s.js.map} +1 -1
  163. package/ccw/frontend/dist/assets/{ExplorerPage-BVvMpg1O.js → ExplorerPage-CbWvaJ0y.js} +2 -2
  164. package/ccw/frontend/dist/assets/{ExplorerPage-BVvMpg1O.js.map → ExplorerPage-CbWvaJ0y.js.map} +1 -1
  165. package/ccw/frontend/dist/assets/{FixSessionPage-CL73dHbh.js → FixSessionPage-YMjVRiCk.js} +2 -2
  166. package/ccw/frontend/dist/assets/{FixSessionPage-CL73dHbh.js.map → FixSessionPage-YMjVRiCk.js.map} +1 -1
  167. package/ccw/frontend/dist/assets/{FloatingFileBrowser-BL-28lMZ.js → FloatingFileBrowser-JW2ehYY_.js} +2 -2
  168. package/ccw/frontend/dist/assets/{FloatingFileBrowser-BL-28lMZ.js.map → FloatingFileBrowser-JW2ehYY_.js.map} +1 -1
  169. package/ccw/frontend/dist/assets/{FloatingPanel-BzZDciHZ.js → FloatingPanel-BtqzqDVq.js} +2 -2
  170. package/ccw/frontend/dist/assets/{FloatingPanel-BzZDciHZ.js.map → FloatingPanel-BtqzqDVq.js.map} +1 -1
  171. package/ccw/frontend/dist/assets/{GraphExplorerPage-CDp6-d8P.js → GraphExplorerPage-BsJL_W4d.js} +3 -3
  172. package/ccw/frontend/dist/assets/{GraphExplorerPage-CDp6-d8P.js.map → GraphExplorerPage-BsJL_W4d.js.map} +1 -1
  173. package/ccw/frontend/dist/assets/{HistoryPage-fZY_7O9n.js → HistoryPage-BuWpQ7k5.js} +2 -2
  174. package/ccw/frontend/dist/assets/{HistoryPage-fZY_7O9n.js.map → HistoryPage-BuWpQ7k5.js.map} +1 -1
  175. package/ccw/frontend/dist/assets/{HookManagerPage-4LJeC9bq.js → HookManagerPage-D0BtMIWy.js} +2 -2
  176. package/ccw/frontend/dist/assets/{HookManagerPage-4LJeC9bq.js.map → HookManagerPage-D0BtMIWy.js.map} +1 -1
  177. package/ccw/frontend/dist/assets/{InstallationsPage-Bpigrbhw.js → InstallationsPage-C7dwsAKG.js} +2 -2
  178. package/ccw/frontend/dist/assets/{InstallationsPage-Bpigrbhw.js.map → InstallationsPage-C7dwsAKG.js.map} +1 -1
  179. package/ccw/frontend/dist/assets/{IssueHubPage-BP0zJc1R.js → IssueHubPage-D0nCNaeB.js} +2 -2
  180. package/ccw/frontend/dist/assets/{IssueHubPage-BP0zJc1R.js.map → IssueHubPage-D0nCNaeB.js.map} +1 -1
  181. package/ccw/frontend/dist/assets/{LiteTasksPage-CSt2oVKQ.js → LiteTasksPage-B5c2Kb9r.js} +3 -3
  182. package/ccw/frontend/dist/assets/{LiteTasksPage-CSt2oVKQ.js.map → LiteTasksPage-B5c2Kb9r.js.map} +1 -1
  183. package/ccw/frontend/dist/assets/{McpManagerPage-B-xaMA0w.js → McpManagerPage-C-S5CehM.js} +2 -2
  184. package/ccw/frontend/dist/assets/{McpManagerPage-B-xaMA0w.js.map → McpManagerPage-C-S5CehM.js.map} +1 -1
  185. package/ccw/frontend/dist/assets/{MemoryPage-CJqo_7DY.js → MemoryPage-P_B0JVUQ.js} +2 -2
  186. package/ccw/frontend/dist/assets/{MemoryPage-CJqo_7DY.js.map → MemoryPage-P_B0JVUQ.js.map} +1 -1
  187. package/ccw/frontend/dist/assets/{NotFoundPage-ibZeQA-Y.js → NotFoundPage-S4Jn9LUE.js} +2 -2
  188. package/ccw/frontend/dist/assets/{NotFoundPage-ibZeQA-Y.js.map → NotFoundPage-S4Jn9LUE.js.map} +1 -1
  189. package/ccw/frontend/dist/assets/{OrchestratorPage-DgJ4ctPQ.js → OrchestratorPage-C2Zlr7AC.js} +2 -2
  190. package/ccw/frontend/dist/assets/{OrchestratorPage-DgJ4ctPQ.js.map → OrchestratorPage-C2Zlr7AC.js.map} +1 -1
  191. package/ccw/frontend/dist/assets/{ProjectOverviewPage-Cit0Yq0D.js → ProjectOverviewPage-CMVfz8s5.js} +2 -2
  192. package/ccw/frontend/dist/assets/{ProjectOverviewPage-Cit0Yq0D.js.map → ProjectOverviewPage-CMVfz8s5.js.map} +1 -1
  193. package/ccw/frontend/dist/assets/{PromptHistoryPage-Ce1HDIK0.js → PromptHistoryPage-YEMjFARX.js} +3 -3
  194. package/ccw/frontend/dist/assets/{PromptHistoryPage-Ce1HDIK0.js.map → PromptHistoryPage-YEMjFARX.js.map} +1 -1
  195. package/ccw/frontend/dist/assets/{ReviewSessionPage-J1KikNrk.js → ReviewSessionPage-DnTm55nG.js} +2 -2
  196. package/ccw/frontend/dist/assets/{ReviewSessionPage-J1KikNrk.js.map → ReviewSessionPage-DnTm55nG.js.map} +1 -1
  197. package/ccw/frontend/dist/assets/{RulesManagerPage-CdBjTmth.js → RulesManagerPage-CUwebtO2.js} +2 -2
  198. package/ccw/frontend/dist/assets/{RulesManagerPage-CdBjTmth.js.map → RulesManagerPage-CUwebtO2.js.map} +1 -1
  199. package/ccw/frontend/dist/assets/{SessionDetailPage-B9ZK7LvX.js → SessionDetailPage-0qyH1Z5P.js} +2 -2
  200. package/ccw/frontend/dist/assets/{SessionDetailPage-B9ZK7LvX.js.map → SessionDetailPage-0qyH1Z5P.js.map} +1 -1
  201. package/ccw/frontend/dist/assets/{SessionsPage-CW_nS5UR.js → SessionsPage-BpgP4087.js} +2 -2
  202. package/ccw/frontend/dist/assets/{SessionsPage-CW_nS5UR.js.map → SessionsPage-BpgP4087.js.map} +1 -1
  203. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js +150 -0
  204. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js.map +1 -0
  205. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js +7 -0
  206. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js.map +1 -0
  207. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DJpi9XQL.js → SpecsSettingsPage-DT-yTVkD.js} +4 -4
  208. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DJpi9XQL.js.map → SpecsSettingsPage-DT-yTVkD.js.map} +1 -1
  209. package/ccw/frontend/dist/assets/{Switch-Ac6Ov7uy.js → Switch-CYSPdqWk.js} +2 -2
  210. package/ccw/frontend/dist/assets/{Switch-Ac6Ov7uy.js.map → Switch-CYSPdqWk.js.map} +1 -1
  211. package/ccw/frontend/dist/assets/{TabsNavigation-DZAAspqR.js → TabsNavigation-CPh6Zor1.js} +2 -2
  212. package/ccw/frontend/dist/assets/{TabsNavigation-DZAAspqR.js.map → TabsNavigation-CPh6Zor1.js.map} +1 -1
  213. package/ccw/frontend/dist/assets/{TaskDrawer-BJkwfhIZ.js → TaskDrawer-Ds-8830B.js} +2 -2
  214. package/ccw/frontend/dist/assets/{TaskDrawer-BJkwfhIZ.js.map → TaskDrawer-Ds-8830B.js.map} +1 -1
  215. package/ccw/frontend/dist/assets/{TeamPage-BJgjxBgb.js → TeamPage-CJODUxBk.js} +2 -2
  216. package/ccw/frontend/dist/assets/{TeamPage-BJgjxBgb.js.map → TeamPage-CJODUxBk.js.map} +1 -1
  217. package/ccw/frontend/dist/assets/{TerminalDashboardPage-D1WekoOy.js → TerminalDashboardPage-Cn3fGUuO.js} +3 -3
  218. package/ccw/frontend/dist/assets/{TerminalDashboardPage-D1WekoOy.js.map → TerminalDashboardPage-Cn3fGUuO.js.map} +1 -1
  219. package/ccw/frontend/dist/assets/{archive-DxemgIhF.js → archive-CjwVpw6k.js} +2 -2
  220. package/ccw/frontend/dist/assets/{archive-DxemgIhF.js.map → archive-CjwVpw6k.js.map} +1 -1
  221. package/ccw/frontend/dist/assets/{archive-restore-CjS83f1V.js → archive-restore-2vZa9Ic3.js} +2 -2
  222. package/ccw/frontend/dist/assets/{archive-restore-CjS83f1V.js.map → archive-restore-2vZa9Ic3.js.map} +1 -1
  223. package/ccw/frontend/dist/assets/{arrow-right-B5PUcn8I.js → arrow-right-CUU5XDgT.js} +2 -2
  224. package/ccw/frontend/dist/assets/{arrow-right-B5PUcn8I.js.map → arrow-right-CUU5XDgT.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{bookmark-plus-DCc9aPbb.js → bookmark-plus-Cc3nKRZ5.js} +2 -2
  226. package/ccw/frontend/dist/assets/{bookmark-plus-DCc9aPbb.js.map → bookmark-plus-Cc3nKRZ5.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{bot-DOwFtzak.js → bot-BwpSRDUa.js} +2 -2
  228. package/ccw/frontend/dist/assets/{bot-DOwFtzak.js.map → bot-BwpSRDUa.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{braces-96qH3aFh.js → braces-DBzUW1XC.js} +2 -2
  230. package/ccw/frontend/dist/assets/{braces-96qH3aFh.js.map → braces-DBzUW1XC.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{circle-stop-CCxSuil1.js → circle-stop-CGNNsjvE.js} +2 -2
  232. package/ccw/frontend/dist/assets/{circle-stop-CCxSuil1.js.map → circle-stop-CGNNsjvE.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{cpu-CZNSJFdq.js → cpu-D27G86Ul.js} +2 -2
  234. package/ccw/frontend/dist/assets/{cpu-CZNSJFdq.js.map → cpu-D27G86Ul.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{ellipsis-vertical-h8xtvw2_.js → ellipsis-vertical-C1Ij47Yz.js} +2 -2
  236. package/ccw/frontend/dist/assets/{ellipsis-vertical-h8xtvw2_.js.map → ellipsis-vertical-C1Ij47Yz.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{eye-D3NY0bm6.js → eye-C6MOB7Au.js} +2 -2
  238. package/ccw/frontend/dist/assets/{eye-D3NY0bm6.js.map → eye-C6MOB7Au.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{eye-off-Cy2vkc8p.js → eye-off-BxfBlZ26.js} +2 -2
  240. package/ccw/frontend/dist/assets/{eye-off-Cy2vkc8p.js.map → eye-off-BxfBlZ26.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{file-json-Bzq3U1Mx.js → file-json-NI237wA-.js} +2 -2
  242. package/ccw/frontend/dist/assets/{file-json-Bzq3U1Mx.js.map → file-json-NI237wA-.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{file-text-DwuwPDPi.js → file-text-Byn2_2v6.js} +2 -2
  244. package/ccw/frontend/dist/assets/{file-text-DwuwPDPi.js.map → file-text-Byn2_2v6.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{filter-q9g-bknU.js → filter-D-7PhZjx.js} +2 -2
  246. package/ccw/frontend/dist/assets/{filter-q9g-bknU.js.map → filter-D-7PhZjx.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{folder-CL6vb42J.js → folder-BoAsK_FL.js} +2 -2
  248. package/ccw/frontend/dist/assets/{folder-CL6vb42J.js.map → folder-BoAsK_FL.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{gauge-BkrcQBly.js → gauge-DCSxJIS4.js} +2 -2
  250. package/ccw/frontend/dist/assets/{gauge-BkrcQBly.js.map → gauge-DCSxJIS4.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{globe-BQbwyNeV.js → globe-CHS3prza.js} +2 -2
  252. package/ccw/frontend/dist/assets/{globe-BQbwyNeV.js.map → globe-CHS3prza.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{grid-3x3-x5_7DrN7.js → grid-3x3-D7K35U7S.js} +2 -2
  254. package/ccw/frontend/dist/assets/{grid-3x3-x5_7DrN7.js.map → grid-3x3-D7K35U7S.js.map} +1 -1
  255. package/ccw/frontend/dist/assets/{hard-drive-DTyWXwzf.js → hard-drive-eq9xE07G.js} +2 -2
  256. package/ccw/frontend/dist/assets/{hard-drive-DTyWXwzf.js.map → hard-drive-eq9xE07G.js.map} +1 -1
  257. package/ccw/frontend/dist/assets/{hash-80O0kJO7.js → hash-C1DMpBua.js} +2 -2
  258. package/ccw/frontend/dist/assets/{hash-80O0kJO7.js.map → hash-C1DMpBua.js.map} +1 -1
  259. package/ccw/frontend/dist/assets/{history-DDlN2Bwa.js → history-Di5SBCY-.js} +2 -2
  260. package/ccw/frontend/dist/assets/{history-DDlN2Bwa.js.map → history-Di5SBCY-.js.map} +1 -1
  261. package/ccw/frontend/dist/assets/{index-mbeo62f8.js → index--_R7COnA.js} +2 -2
  262. package/ccw/frontend/dist/assets/{index-mbeo62f8.js.map → index--_R7COnA.js.map} +1 -1
  263. package/ccw/frontend/dist/assets/{index-rLgoBCfV.js → index-BUol9HDD.js} +3 -3
  264. package/ccw/frontend/dist/assets/{index-rLgoBCfV.js.map → index-BUol9HDD.js.map} +1 -1
  265. package/ccw/frontend/dist/assets/{index-Bs80iCX0.js → index-CT9oykfw.js} +2 -2
  266. package/ccw/frontend/dist/assets/{index-Bs80iCX0.js.map → index-CT9oykfw.js.map} +1 -1
  267. package/ccw/frontend/dist/assets/{index-B9A3Hnrk.js → index-Ddwvf87H.js} +2 -2
  268. package/ccw/frontend/dist/assets/{index-B9A3Hnrk.js.map → index-Ddwvf87H.js.map} +1 -1
  269. package/ccw/frontend/dist/assets/{layout-grid-C1niOWJx.js → layout-grid-LiX0qZbN.js} +2 -2
  270. package/ccw/frontend/dist/assets/{layout-grid-C1niOWJx.js.map → layout-grid-LiX0qZbN.js.map} +1 -1
  271. package/ccw/frontend/dist/assets/{lightbulb-BTmI7SUg.js → lightbulb-CL3DVEwb.js} +2 -2
  272. package/ccw/frontend/dist/assets/{lightbulb-BTmI7SUg.js.map → lightbulb-CL3DVEwb.js.map} +1 -1
  273. package/ccw/frontend/dist/assets/{link-2-CB9HKeuZ.js → link-2-CC5cFeq6.js} +2 -2
  274. package/ccw/frontend/dist/assets/{link-2-CB9HKeuZ.js.map → link-2-CC5cFeq6.js.map} +1 -1
  275. package/ccw/frontend/dist/assets/{link-koEYiemK.js → link-ngFQ9bs0.js} +2 -2
  276. package/ccw/frontend/dist/assets/{link-koEYiemK.js.map → link-ngFQ9bs0.js.map} +1 -1
  277. package/ccw/frontend/dist/assets/{list-v2_GaLdC.js → list-BEU6I0KK.js} +2 -2
  278. package/ccw/frontend/dist/assets/{list-v2_GaLdC.js.map → list-BEU6I0KK.js.map} +1 -1
  279. package/ccw/frontend/dist/assets/{map-pin-BQNfAqG_.js → map-pin-BWZdLA6y.js} +2 -2
  280. package/ccw/frontend/dist/assets/{map-pin-BQNfAqG_.js.map → map-pin-BWZdLA6y.js.map} +1 -1
  281. package/ccw/frontend/dist/assets/{messages-square-Dzq5LGg9.js → messages-square-K6_Chm7n.js} +2 -2
  282. package/ccw/frontend/dist/assets/{messages-square-Dzq5LGg9.js.map → messages-square-K6_Chm7n.js.map} +1 -1
  283. package/ccw/frontend/dist/assets/{minimize-2-CtkoJXcz.js → minimize-2-CWkphauf.js} +2 -2
  284. package/ccw/frontend/dist/assets/{minimize-2-CtkoJXcz.js.map → minimize-2-CWkphauf.js.map} +1 -1
  285. package/ccw/frontend/dist/assets/{package-CH3smL37.js → package-DrNgkamn.js} +2 -2
  286. package/ccw/frontend/dist/assets/{package-CH3smL37.js.map → package-DrNgkamn.js.map} +1 -1
  287. package/ccw/frontend/dist/assets/{plug-CZ0aL_yF.js → plug-CMo3sw5_.js} +2 -2
  288. package/ccw/frontend/dist/assets/{plug-CZ0aL_yF.js.map → plug-CMo3sw5_.js.map} +1 -1
  289. package/ccw/frontend/dist/assets/{power-F2A_J4l6.js → power-DppNTW5e.js} +2 -2
  290. package/ccw/frontend/dist/assets/{power-F2A_J4l6.js.map → power-DppNTW5e.js.map} +1 -1
  291. package/ccw/frontend/dist/assets/{save-Byxot0YU.js → save-CD8aPMbZ.js} +2 -2
  292. package/ccw/frontend/dist/assets/{save-Byxot0YU.js.map → save-CD8aPMbZ.js.map} +1 -1
  293. package/ccw/frontend/dist/assets/{send-JjqhUkpw.js → send-B4z90fQD.js} +2 -2
  294. package/ccw/frontend/dist/assets/{send-JjqhUkpw.js.map → send-B4z90fQD.js.map} +1 -1
  295. package/ccw/frontend/dist/assets/{settings-2--SuN9rAt.js → settings-2-CAKRU_QC.js} +2 -2
  296. package/ccw/frontend/dist/assets/{settings-2--SuN9rAt.js.map → settings-2-CAKRU_QC.js.map} +1 -1
  297. package/ccw/frontend/dist/assets/{square-check-big-BbngGB2h.js → square-check-big-KhI3HrzX.js} +2 -2
  298. package/ccw/frontend/dist/assets/{square-check-big-BbngGB2h.js.map → square-check-big-KhI3HrzX.js.map} +1 -1
  299. package/ccw/frontend/dist/assets/{square-pen-CgrHgZSl.js → square-pen-BtdGIpuq.js} +2 -2
  300. package/ccw/frontend/dist/assets/{square-pen-CgrHgZSl.js.map → square-pen-BtdGIpuq.js.map} +1 -1
  301. package/ccw/frontend/dist/assets/{star-BU3TQr7Z.js → star-ZoBUkXoD.js} +2 -2
  302. package/ccw/frontend/dist/assets/{star-BU3TQr7Z.js.map → star-ZoBUkXoD.js.map} +1 -1
  303. package/ccw/frontend/dist/assets/{style-CKs7nnn3.js → style-CltxQP-P.js} +2 -2
  304. package/ccw/frontend/dist/assets/{style-CKs7nnn3.js.map → style-CltxQP-P.js.map} +1 -1
  305. package/ccw/frontend/dist/assets/{target-DW5tsDW6.js → target-C32OUSGf.js} +2 -2
  306. package/ccw/frontend/dist/assets/{target-DW5tsDW6.js.map → target-C32OUSGf.js.map} +1 -1
  307. package/ccw/frontend/dist/assets/{test-tube-BHm7w3ON.js → test-tube-0IxoyAVZ.js} +2 -2
  308. package/ccw/frontend/dist/assets/{test-tube-BHm7w3ON.js.map → test-tube-0IxoyAVZ.js.map} +1 -1
  309. package/ccw/frontend/dist/assets/{upload-DYR7PWwt.js → upload-4eKCkyBn.js} +2 -2
  310. package/ccw/frontend/dist/assets/{upload-DYR7PWwt.js.map → upload-4eKCkyBn.js.map} +1 -1
  311. package/ccw/frontend/dist/assets/{useApiSettings-D0TVgQD_.js → useApiSettings-zLTUWqhi.js} +2 -2
  312. package/ccw/frontend/dist/assets/{useApiSettings-D0TVgQD_.js.map → useApiSettings-zLTUWqhi.js.map} +1 -1
  313. package/ccw/frontend/dist/assets/{useCli-DfY8mAP8.js → useCli-BtN2vpOX.js} +2 -2
  314. package/ccw/frontend/dist/assets/{useCli-DfY8mAP8.js.map → useCli-BtN2vpOX.js.map} +1 -1
  315. package/ccw/frontend/dist/assets/{useCommands-CGusDp0F.js → useCommands-_spj49qL.js} +2 -2
  316. package/ccw/frontend/dist/assets/{useCommands-CGusDp0F.js.map → useCommands-_spj49qL.js.map} +1 -1
  317. package/ccw/frontend/dist/assets/{useDebounce-CIwh0fF1.js → useDebounce-Bm9KFZvd.js} +2 -2
  318. package/ccw/frontend/dist/assets/{useDebounce-CIwh0fF1.js.map → useDebounce-Bm9KFZvd.js.map} +1 -1
  319. package/ccw/frontend/dist/assets/{useFileExplorer-FMyFv39K.js → useFileExplorer-DOmpm6v9.js} +2 -2
  320. package/ccw/frontend/dist/assets/{useFileExplorer-FMyFv39K.js.map → useFileExplorer-DOmpm6v9.js.map} +1 -1
  321. package/ccw/frontend/dist/assets/{useLocale-B2qhsoTb.js → useLocale-D2rj4rea.js} +2 -2
  322. package/ccw/frontend/dist/assets/{useLocale-B2qhsoTb.js.map → useLocale-D2rj4rea.js.map} +1 -1
  323. package/ccw/frontend/dist/assets/{useSkills-cxKXMBm3.js → useSkills-OskEpomF.js} +3 -3
  324. package/ccw/frontend/dist/assets/{useSkills-cxKXMBm3.js.map → useSkills-OskEpomF.js.map} +1 -1
  325. package/ccw/frontend/dist/assets/{useSystemSettings-B-xUT_z-.js → useSystemSettings-BjMgsNSF.js} +2 -2
  326. package/ccw/frontend/dist/assets/{useSystemSettings-B-xUT_z-.js.map → useSystemSettings-BjMgsNSF.js.map} +1 -1
  327. package/ccw/frontend/dist/assets/{wand-sparkles-DZV_3lPr.js → wand-sparkles-CLhyYWa7.js} +2 -2
  328. package/ccw/frontend/dist/assets/{wand-sparkles-DZV_3lPr.js.map → wand-sparkles-CLhyYWa7.js.map} +1 -1
  329. package/ccw/frontend/dist/index.html +1 -1
  330. package/ccw/scripts/prepublish-clean.mjs +0 -1
  331. package/package.json +1 -3
  332. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js +0 -150
  333. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +0 -1
  334. package/ccw/frontend/dist/assets/SkillsManagerPage-CTnWrrwp.js +0 -7
  335. package/ccw/frontend/dist/assets/SkillsManagerPage-CTnWrrwp.js.map +0 -1
  336. package/ccw-litellm/README.md +0 -180
  337. package/ccw-litellm/pyproject.toml +0 -35
  338. package/ccw-litellm/src/ccw_litellm/__init__.py +0 -47
  339. package/ccw-litellm/src/ccw_litellm/cli.py +0 -108
  340. package/ccw-litellm/src/ccw_litellm/clients/__init__.py +0 -12
  341. package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +0 -270
  342. package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +0 -198
  343. package/ccw-litellm/src/ccw_litellm/config/__init__.py +0 -22
  344. package/ccw-litellm/src/ccw_litellm/config/loader.py +0 -343
  345. package/ccw-litellm/src/ccw_litellm/config/models.py +0 -162
  346. package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +0 -14
  347. package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +0 -52
  348. package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +0 -45
@@ -0,0 +1,635 @@
1
+ # Phase 7: TDD Verification
2
+
3
+ Full TDD compliance verification with quality gate reporting. Generates comprehensive TDD_COMPLIANCE_REPORT.md.
4
+
5
+ ## Objective
6
+
7
+ - Verify TDD task chain structure (TEST → IMPL → REFACTOR or internal Red-Green-Refactor)
8
+ - Analyze test coverage metrics
9
+ - Validate TDD cycle execution quality
10
+ - Generate compliance report with quality gate recommendation
11
+
12
+ ## Operating Constraints
13
+
14
+ **ORCHESTRATOR MODE**:
15
+ - This phase coordinates sub-steps and inline TDD coverage analysis
16
+ - MAY write output files: TDD_COMPLIANCE_REPORT.md (primary report), .process/*.json (intermediate artifacts)
17
+ - MUST NOT modify source task files or implementation code
18
+ - MUST NOT create or delete tasks in the workflow
19
+
20
+ **Quality Gate Authority**: The compliance report provides a binding recommendation (BLOCK_MERGE / REQUIRE_FIXES / PROCEED_WITH_CAVEATS / APPROVED) based on objective compliance criteria.
21
+
22
+ ## 4-Step Execution
23
+
24
+ ### Step 7.1: Session Discovery & Validation
25
+
26
+ ```bash
27
+ IF --session parameter provided:
28
+ session_id = provided session
29
+ ELSE:
30
+ # Auto-detect active session
31
+ active_sessions = bash(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null)
32
+ IF active_sessions is empty:
33
+ ERROR: "No active workflow session found. Use --session <session-id>"
34
+ EXIT
35
+ ELSE IF active_sessions has multiple entries:
36
+ # Use most recently modified session
37
+ session_id = bash(ls -td .workflow/active/WFS-*/ 2>/dev/null | head -1 | xargs basename)
38
+ ELSE:
39
+ session_id = basename(active_sessions[0])
40
+
41
+ # Derive paths
42
+ session_dir = .workflow/active/WFS-{session_id}
43
+ task_dir = session_dir/.task
44
+ summaries_dir = session_dir/.summaries
45
+ process_dir = session_dir/.process
46
+ ```
47
+
48
+ **Validate Required Artifacts**:
49
+ ```bash
50
+ # Check task files exist
51
+ task_files = Glob(task_dir/*.json)
52
+ IF task_files.count == 0:
53
+ ERROR: "No task JSON files found. Run /workflow-tdd-plan first"
54
+ EXIT
55
+
56
+ # Check summaries exist (optional but recommended for full analysis)
57
+ summaries_exist = EXISTS(summaries_dir)
58
+ IF NOT summaries_exist:
59
+ WARNING: "No .summaries/ directory found. Some analysis may be limited."
60
+ ```
61
+
62
+ **Output**: session_id, session_dir, task_files list
63
+
64
+ ---
65
+
66
+ ### Step 7.2: Task Chain Structure Validation
67
+
68
+ **Load and Parse Task JSONs**:
69
+ ```bash
70
+ # Single-pass JSON extraction using jq
71
+ cd '{session_dir}/.task'
72
+
73
+ # Extract all task IDs
74
+ task_ids=$(jq -r '.id' *.json 2>/dev/null | sort)
75
+
76
+ # Extract dependencies for IMPL tasks
77
+ impl_deps=$(jq -r 'select(.id | startswith("IMPL")) | .id + ":" + (.context.depends_on[]? // "none")' *.json 2>/dev/null)
78
+
79
+ # Extract dependencies for REFACTOR tasks
80
+ refactor_deps=$(jq -r 'select(.id | startswith("REFACTOR")) | .id + ":" + (.context.depends_on[]? // "none")' *.json 2>/dev/null)
81
+
82
+ # Extract meta fields
83
+ meta_tdd=$(jq -r '.id + ":" + (.meta.tdd_phase // "missing")' *.json 2>/dev/null)
84
+ meta_agent=$(jq -r '.id + ":" + (.meta.agent // "missing")' *.json 2>/dev/null)
85
+
86
+ # Output as JSON
87
+ jq -n --arg ids "$task_ids" \
88
+ --arg impl "$impl_deps" \
89
+ --arg refactor "$refactor_deps" \
90
+ --arg tdd "$meta_tdd" \
91
+ --arg agent "$meta_agent" \
92
+ '{ids: $ids, impl_deps: $impl, refactor_deps: $refactor, tdd: $tdd, agent: $agent}'
93
+ ```
94
+
95
+ **Validate TDD Chain Structure**:
96
+ ```
97
+ Parse validation_data JSON and validate:
98
+
99
+ For each feature N (extracted from task IDs):
100
+ 1. TEST-N.M exists?
101
+ 2. IMPL-N.M exists?
102
+ 3. REFACTOR-N.M exists? (optional but recommended)
103
+ 4. IMPL-N.M.context.depends_on contains TEST-N.M?
104
+ 5. REFACTOR-N.M.context.depends_on contains IMPL-N.M?
105
+ 6. TEST-N.M.meta.tdd_phase == "red"?
106
+ 7. TEST-N.M.meta.agent == "@code-review-test-agent"?
107
+ 8. IMPL-N.M.meta.tdd_phase == "green"?
108
+ 9. IMPL-N.M.meta.agent == "@code-developer"?
109
+ 10. REFACTOR-N.M.meta.tdd_phase == "refactor"?
110
+
111
+ Calculate:
112
+ - chain_completeness_score = (complete_chains / total_chains) * 100
113
+ - dependency_accuracy = (correct_deps / total_deps) * 100
114
+ - meta_field_accuracy = (correct_meta / total_meta) * 100
115
+ ```
116
+
117
+ **Output**: chain_validation_report (JSON structure with validation results)
118
+
119
+ ---
120
+
121
+ ### Step 7.3: Coverage & Cycle Analysis
122
+
123
+ **Execute TDD Coverage Analysis**:
124
+
125
+ #### Phase 3a: Extract Test Tasks
126
+
127
+ ```bash
128
+ # Find TEST task files and extract focus_paths
129
+ find .workflow/active/{session_id}/.task/ -name 'TEST-*.json' -exec jq -r '.context.focus_paths[]' {} \;
130
+ ```
131
+
132
+ **Output**: List of test directories/files from all TEST tasks
133
+
134
+ #### Phase 3b: Run Test Suite
135
+
136
+ ```bash
137
+ # Auto-detect test framework from project
138
+ if [ -f "package.json" ] && grep -q "jest\|mocha\|vitest" package.json; then
139
+ TEST_CMD="npm test -- --coverage --json"
140
+ elif [ -f "pytest.ini" ] || [ -f "setup.py" ]; then
141
+ TEST_CMD="pytest --cov --json-report"
142
+ elif [ -f "Cargo.toml" ]; then
143
+ TEST_CMD="cargo test -- --test-threads=1 --nocapture"
144
+ elif [ -f "go.mod" ]; then
145
+ TEST_CMD="go test -coverprofile=coverage.out -json ./..."
146
+ else
147
+ TEST_CMD="echo 'No supported test framework found'"
148
+ fi
149
+
150
+ # Execute test suite with coverage
151
+ $TEST_CMD > .workflow/active/{session_id}/.process/test-results.json
152
+ ```
153
+
154
+ **Output**: test-results.json with coverage data
155
+
156
+ #### Phase 3c: Parse Coverage Data
157
+
158
+ ```bash
159
+ jq '.coverage' .workflow/active/{session_id}/.process/test-results.json > .workflow/active/{session_id}/.process/coverage-report.json
160
+ ```
161
+
162
+ **Extract**:
163
+ - Line coverage percentage
164
+ - Branch coverage percentage
165
+ - Function coverage percentage
166
+ - Uncovered lines/branches
167
+
168
+ #### Phase 3d: Verify TDD Cycle
169
+
170
+ For each TDD chain (TEST-N.M -> IMPL-N.M -> REFACTOR-N.M):
171
+
172
+ **1. Red Phase Verification**
173
+ ```bash
174
+ cat .workflow/active/{session_id}/.summaries/TEST-N.M-summary.md
175
+ ```
176
+
177
+ Verify:
178
+ - Tests were created
179
+ - Tests failed initially
180
+ - Failure messages were clear
181
+
182
+ **2. Green Phase Verification**
183
+ ```bash
184
+ cat .workflow/active/{session_id}/.summaries/IMPL-N.M-summary.md
185
+ ```
186
+
187
+ Verify:
188
+ - Implementation was completed
189
+ - Tests now pass
190
+ - Implementation was minimal
191
+
192
+ **3. Refactor Phase Verification**
193
+ ```bash
194
+ cat .workflow/active/{session_id}/.summaries/REFACTOR-N.M-summary.md
195
+ ```
196
+
197
+ Verify:
198
+ - Refactoring was completed
199
+ - Tests still pass
200
+ - Code quality improved
201
+
202
+ #### TDD Cycle Verification Algorithm
203
+
204
+ ```
205
+ For each feature N:
206
+ 1. Load TEST-N.M-summary.md
207
+ IF summary missing:
208
+ Mark: "Red phase incomplete"
209
+ SKIP to next feature
210
+
211
+ CHECK: Contains "test" AND "fail"
212
+ IF NOT found:
213
+ Mark: "Red phase verification failed"
214
+ ELSE:
215
+ Mark: "Red phase [PASS]"
216
+
217
+ 2. Load IMPL-N.M-summary.md
218
+ IF summary missing:
219
+ Mark: "Green phase incomplete"
220
+ SKIP to next feature
221
+
222
+ CHECK: Contains "pass" OR "green"
223
+ IF NOT found:
224
+ Mark: "Green phase verification failed"
225
+ ELSE:
226
+ Mark: "Green phase [PASS]"
227
+
228
+ 3. Load REFACTOR-N.M-summary.md
229
+ IF summary missing:
230
+ Mark: "Refactor phase incomplete"
231
+ CONTINUE (refactor is optional)
232
+
233
+ CHECK: Contains "refactor" AND "pass"
234
+ IF NOT found:
235
+ Mark: "Refactor phase verification failed"
236
+ ELSE:
237
+ Mark: "Refactor phase [PASS]"
238
+
239
+ 4. Calculate chain score:
240
+ - Red + Green + Refactor all [PASS] = 100%
241
+ - Red + Green [PASS], Refactor missing = 80%
242
+ - Red [PASS], Green missing = 40%
243
+ - All missing = 0%
244
+ ```
245
+
246
+ #### Phase 3e: Generate Analysis Report
247
+
248
+ Create `.workflow/active/{session_id}/.process/tdd-cycle-report.md`:
249
+
250
+ ```markdown
251
+ # TDD Cycle Analysis - {Session ID}
252
+
253
+ ## Coverage Metrics
254
+ - **Line Coverage**: {percentage}%
255
+ - **Branch Coverage**: {percentage}%
256
+ - **Function Coverage**: {percentage}%
257
+
258
+ ## Coverage Details
259
+ ### Covered
260
+ - {covered_lines} lines
261
+ - {covered_branches} branches
262
+ - {covered_functions} functions
263
+
264
+ ### Uncovered
265
+ - Lines: {uncovered_line_numbers}
266
+ - Branches: {uncovered_branch_locations}
267
+
268
+ ## TDD Cycle Verification
269
+
270
+ ### Feature 1: {Feature Name}
271
+ **Chain**: TEST-1.1 -> IMPL-1.1 -> REFACTOR-1.1
272
+
273
+ - [PASS] **Red Phase**: Tests created and failed initially
274
+ - [PASS] **Green Phase**: Implementation made tests pass
275
+ - [PASS] **Refactor Phase**: Refactoring maintained green tests
276
+
277
+ [Repeat for all features]
278
+
279
+ ## TDD Compliance Summary
280
+ - **Total Chains**: {N}
281
+ - **Complete Cycles**: {N}
282
+ - **Incomplete Cycles**: {0}
283
+ - **Compliance Score**: {score}/100
284
+
285
+ ## Gaps Identified
286
+ - {gap descriptions}
287
+
288
+ ## Recommendations
289
+ - {improvement suggestions}
290
+ ```
291
+
292
+ #### Coverage Metrics Calculation
293
+
294
+ ```bash
295
+ line_coverage=$(jq '.coverage.lineCoverage' test-results.json)
296
+ branch_coverage=$(jq '.coverage.branchCoverage' test-results.json)
297
+ function_coverage=$(jq '.coverage.functionCoverage' test-results.json)
298
+
299
+ overall_score=$(echo "($line_coverage + $branch_coverage + $function_coverage) / 3" | bc)
300
+ ```
301
+
302
+ **Parse Output Files**:
303
+ ```bash
304
+ # Check required outputs exist
305
+ IF NOT EXISTS(process_dir/test-results.json):
306
+ WARNING: "test-results.json not found. Coverage analysis incomplete."
307
+ coverage_data = null
308
+ ELSE:
309
+ coverage_data = Read(process_dir/test-results.json)
310
+
311
+ IF NOT EXISTS(process_dir/coverage-report.json):
312
+ WARNING: "coverage-report.json not found. Coverage metrics incomplete."
313
+ metrics = null
314
+ ELSE:
315
+ metrics = Read(process_dir/coverage-report.json)
316
+
317
+ IF NOT EXISTS(process_dir/tdd-cycle-report.md):
318
+ WARNING: "tdd-cycle-report.md not found. Cycle validation incomplete."
319
+ cycle_data = null
320
+ ELSE:
321
+ cycle_data = Read(process_dir/tdd-cycle-report.md)
322
+ ```
323
+
324
+ **Extract Coverage Metrics**:
325
+ ```
326
+ If coverage_data exists:
327
+ - line_coverage_percent
328
+ - branch_coverage_percent
329
+ - function_coverage_percent
330
+ - uncovered_files (list)
331
+ - uncovered_lines (map: file -> line ranges)
332
+
333
+ If cycle_data exists:
334
+ - red_phase_compliance (tests failed initially?)
335
+ - green_phase_compliance (tests pass after impl?)
336
+ - refactor_phase_compliance (tests stay green during refactor?)
337
+ - minimal_implementation_score (was impl minimal?)
338
+ ```
339
+
340
+ **Output**: coverage_analysis, cycle_analysis
341
+
342
+ ---
343
+
344
+ ### Step 7.4: Compliance Report Generation
345
+
346
+ **Calculate Compliance Score**:
347
+ ```
348
+ Base Score: 100 points
349
+
350
+ Deductions:
351
+ Chain Structure:
352
+ - Missing TEST task: -30 points per feature
353
+ - Missing IMPL task: -30 points per feature
354
+ - Missing REFACTOR task: -10 points per feature
355
+ - Wrong dependency: -15 points per error
356
+ - Wrong agent: -5 points per error
357
+ - Wrong tdd_phase: -5 points per error
358
+
359
+ TDD Cycle Compliance:
360
+ - Test didn't fail initially: -10 points per feature
361
+ - Tests didn't pass after IMPL: -20 points per feature
362
+ - Tests broke during REFACTOR: -15 points per feature
363
+ - Over-engineered IMPL: -10 points per feature
364
+
365
+ Coverage Quality:
366
+ - Line coverage < 80%: -5 points
367
+ - Branch coverage < 70%: -5 points
368
+ - Function coverage < 80%: -5 points
369
+ - Critical paths uncovered: -10 points
370
+
371
+ Final Score: Max(0, Base Score - Total Deductions)
372
+ ```
373
+
374
+ **Determine Quality Gate**:
375
+ ```
376
+ IF score >= 90 AND no_critical_violations:
377
+ recommendation = "APPROVED"
378
+ ELSE IF score >= 70 AND critical_violations == 0:
379
+ recommendation = "PROCEED_WITH_CAVEATS"
380
+ ELSE IF score >= 50:
381
+ recommendation = "REQUIRE_FIXES"
382
+ ELSE:
383
+ recommendation = "BLOCK_MERGE"
384
+ ```
385
+
386
+ **Quality Gate Criteria**:
387
+
388
+ | Recommendation | Score Range | Critical Violations | Action |
389
+ |----------------|-------------|---------------------|--------|
390
+ | **APPROVED** | ≥90 | 0 | Safe to merge |
391
+ | **PROCEED_WITH_CAVEATS** | ≥70 | 0 | Can proceed, address minor issues |
392
+ | **REQUIRE_FIXES** | ≥50 | Any | Must fix before merge |
393
+ | **BLOCK_MERGE** | <50 | Any | Block merge until resolved |
394
+
395
+ **Critical Violations**:
396
+ - Missing TEST or IMPL task for any feature
397
+ - Tests didn't fail initially (Red phase violation)
398
+ - Tests didn't pass after IMPL (Green phase violation)
399
+ - Tests broke during REFACTOR (Refactor phase violation)
400
+
401
+ **Generate Report**:
402
+ ```javascript
403
+ const report_content = generateComplianceReport(/* see template below */)
404
+ const report_path = `${session_dir}/TDD_COMPLIANCE_REPORT.md`
405
+ Write(report_path, report_content)
406
+ ```
407
+
408
+ **Display Summary to User**:
409
+ ```
410
+ === TDD Verification Complete ===
411
+ Session: {session_id}
412
+ Report: {report_path}
413
+
414
+ Quality Gate: {recommendation}
415
+ Compliance Score: {score}/100
416
+
417
+ Chain Validation: {chain_completeness_score}%
418
+ Line Coverage: {line_coverage}%
419
+ Branch Coverage: {branch_coverage}%
420
+
421
+ Next: Review full report for detailed findings
422
+ ```
423
+
424
+ ## TDD Compliance Report Template
425
+
426
+ ```markdown
427
+ # TDD Compliance Report - {Session ID}
428
+
429
+ **Generated**: {timestamp}
430
+ **Session**: WFS-{sessionId}
431
+ **Workflow Type**: TDD
432
+
433
+ ---
434
+
435
+ ## Executive Summary
436
+
437
+ ### Quality Gate Decision
438
+
439
+ | Metric | Value | Status |
440
+ |--------|-------|--------|
441
+ | Compliance Score | {score}/100 | {status_emoji} |
442
+ | Chain Completeness | {percentage}% | {status} |
443
+ | Line Coverage | {percentage}% | {status} |
444
+ | Branch Coverage | {percentage}% | {status} |
445
+ | Function Coverage | {percentage}% | {status} |
446
+
447
+ ### Recommendation
448
+
449
+ **{RECOMMENDATION}**
450
+
451
+ **Decision Rationale**:
452
+ {brief explanation based on score and violations}
453
+
454
+ **Quality Gate Criteria**:
455
+ - **APPROVED**: Score ≥90, no critical violations
456
+ - **PROCEED_WITH_CAVEATS**: Score ≥70, no critical violations
457
+ - **REQUIRE_FIXES**: Score ≥50 or critical violations exist
458
+ - **BLOCK_MERGE**: Score <50
459
+
460
+ ---
461
+
462
+ ## Chain Analysis
463
+
464
+ ### Feature 1: {Feature Name}
465
+ **Status**: ✅ Complete
466
+ **Chain**: TEST-1.1 → IMPL-1.1 → REFACTOR-1.1
467
+
468
+ | Phase | Task | Status | Details |
469
+ |-------|------|--------|---------|
470
+ | Red | TEST-1.1 | ✅ Pass | Test created and failed with clear message |
471
+ | Green | IMPL-1.1 | ✅ Pass | Minimal implementation made test pass |
472
+ | Refactor | REFACTOR-1.1 | ✅ Pass | Code improved, tests remained green |
473
+
474
+ ### Chain Validation Summary
475
+
476
+ | Metric | Value |
477
+ |--------|-------|
478
+ | Total Features | {count} |
479
+ | Complete Chains | {count} ({percent}%) |
480
+ | Incomplete Chains | {count} |
481
+ | Missing TEST | {count} |
482
+ | Missing IMPL | {count} |
483
+ | Missing REFACTOR | {count} |
484
+ | Dependency Errors | {count} |
485
+ | Meta Field Errors | {count} |
486
+
487
+ ---
488
+
489
+ ## Test Coverage Analysis
490
+
491
+ ### Coverage Metrics
492
+
493
+ | Metric | Coverage | Target | Status |
494
+ |--------|----------|--------|--------|
495
+ | Line Coverage | {percentage}% | ≥80% | {status} |
496
+ | Branch Coverage | {percentage}% | ≥70% | {status} |
497
+ | Function Coverage | {percentage}% | ≥80% | {status} |
498
+
499
+ ### Coverage Gaps
500
+
501
+ | File | Lines | Issue | Priority |
502
+ |------|-------|-------|----------|
503
+ | {file} | {lines} | {issue} | {priority} |
504
+
505
+ ---
506
+
507
+ ## TDD Cycle Validation
508
+
509
+ ### Red Phase (Write Failing Test)
510
+ - {N}/{total} features had failing tests initially ({percent}%)
511
+ - ✅ Compliant features: {list}
512
+ - ❌ Non-compliant features: {list}
513
+
514
+ ### Green Phase (Make Test Pass)
515
+ - {N}/{total} implementations made tests pass ({percent}%)
516
+ - ✅ Compliant features: {list}
517
+ - ❌ Non-compliant features: {list}
518
+
519
+ ### Refactor Phase (Improve Quality)
520
+ - {N}/{total} features completed refactoring ({percent}%)
521
+ - ✅ Compliant features: {list}
522
+ - ❌ Non-compliant features: {list}
523
+
524
+ ---
525
+
526
+ ## Best Practices Assessment
527
+
528
+ ### Strengths
529
+ - {strengths}
530
+
531
+ ### Areas for Improvement
532
+ - {improvements}
533
+
534
+ ---
535
+
536
+ ## Detailed Findings by Severity
537
+
538
+ ### Critical Issues ({count})
539
+ {List of critical issues with impact and remediation}
540
+
541
+ ### High Priority Issues ({count})
542
+ {List of high priority issues}
543
+
544
+ ### Medium Priority Issues ({count})
545
+ {List of medium priority issues}
546
+
547
+ ### Low Priority Issues ({count})
548
+ {List of low priority issues}
549
+
550
+ ---
551
+
552
+ ## Recommendations
553
+
554
+ ### Required Fixes (Before Merge)
555
+ 1. {required fixes}
556
+
557
+ ### Recommended Improvements
558
+ 1. {recommended improvements}
559
+
560
+ ### Optional Enhancements
561
+ 1. {optional enhancements}
562
+
563
+ ---
564
+
565
+ ## Metrics Summary
566
+
567
+ | Metric | Value |
568
+ |--------|-------|
569
+ | Total Features | {count} |
570
+ | Complete Chains | {count} ({percent}%) |
571
+ | Compliance Score | {score}/100 |
572
+ | Critical Issues | {count} |
573
+ | High Issues | {count} |
574
+ | Medium Issues | {count} |
575
+ | Low Issues | {count} |
576
+ | Line Coverage | {percent}% |
577
+ | Branch Coverage | {percent}% |
578
+ | Function Coverage | {percent}% |
579
+
580
+ ---
581
+
582
+ **Report End**
583
+ ```
584
+
585
+ ## Error Handling
586
+
587
+ ### Session Discovery Errors
588
+
589
+ | Error | Cause | Resolution |
590
+ |-------|-------|------------|
591
+ | No active session | No WFS-* directories | Provide --session explicitly |
592
+ | Multiple active sessions | Multiple WFS-* directories | Provide --session explicitly |
593
+ | Session not found | Invalid session-id | Check available sessions |
594
+
595
+ ### Validation Errors
596
+
597
+ | Error | Cause | Resolution |
598
+ |-------|-------|------------|
599
+ | Task files missing | Incomplete planning | Run /workflow-tdd-plan first |
600
+ | Invalid JSON | Corrupted task files | Regenerate tasks |
601
+ | Missing summaries | Tasks not executed | Execute tasks before verify |
602
+
603
+ ### Analysis Errors
604
+
605
+ | Error | Cause | Resolution |
606
+ |-------|-------|------------|
607
+ | Coverage tool missing | No test framework | Configure testing first |
608
+ | Tests fail to run | Code errors | Fix errors before verify |
609
+ | Coverage analysis fails | Test framework or coverage tool error | Check test framework configuration |
610
+
611
+ ## Output
612
+
613
+ - **File**: `TDD_COMPLIANCE_REPORT.md` (comprehensive compliance report)
614
+ - **Files**: `.process/test-results.json`, `.process/coverage-report.json`, `.process/tdd-cycle-report.md`
615
+
616
+ ## Output Files Structure
617
+
618
+ ```
619
+ .workflow/active/WFS-{session-id}/
620
+ ├── TDD_COMPLIANCE_REPORT.md # Comprehensive compliance report ⭐
621
+ └── .process/
622
+ ├── test-results.json # From coverage analysis (Step 7.3)
623
+ ├── coverage-report.json # From coverage analysis (Step 7.3)
624
+ └── tdd-cycle-report.md # From coverage analysis (Step 7.3)
625
+ ```
626
+
627
+ ## Next Steps Decision Table
628
+
629
+ | Situation | Recommended Command | Purpose |
630
+ |-----------|---------------------|---------|
631
+ | APPROVED | `workflow-execute` skill | Start TDD implementation |
632
+ | PROCEED_WITH_CAVEATS | `workflow-execute` skill | Start with noted caveats |
633
+ | REQUIRE_FIXES | Review report, refine tasks | Address issues before proceed |
634
+ | BLOCK_MERGE | `workflow-plan` skill (replan phase) | Significant restructuring needed |
635
+ | After implementation | Re-run `workflow-tdd-plan` skill (tdd-verify phase) | Verify post-execution compliance |