claude-code-workflow 7.2.10 → 7.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) 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/skills/review-code/SKILL.md +2 -0
  9. package/.claude/skills/review-cycle/SKILL.md +4 -0
  10. package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
  11. package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
  12. package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
  13. package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
  14. package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
  15. package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
  16. package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
  17. package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
  18. package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
  19. package/.claude/skills/team-testing/roles/executor/role.md +2 -1
  20. package/.claude/skills/team-testing/roles/generator/role.md +2 -1
  21. package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
  22. package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
  23. package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
  24. package/.claude/skills/workflow-lite-test-review/SKILL.md +2 -0
  25. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
  26. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
  27. package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
  28. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
  29. package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
  30. package/.claude/skills/workflow-tune/SKILL.md +487 -0
  31. package/.claude/skills/workflow-tune/phases/01-setup.md +548 -0
  32. package/.claude/skills/workflow-tune/phases/02-step-execute.md +197 -0
  33. package/.claude/skills/workflow-tune/phases/03-step-analyze.md +386 -0
  34. package/.claude/skills/workflow-tune/phases/04-synthesize.md +257 -0
  35. package/.claude/skills/workflow-tune/phases/05-optimize-report.md +246 -0
  36. package/.claude/skills/workflow-tune/specs/workflow-eval-criteria.md +57 -0
  37. package/.claude/skills/workflow-tune/templates/step-analysis-prompt.md +88 -0
  38. package/.claude/skills/workflow-tune/templates/synthesis-prompt.md +90 -0
  39. package/.codex/skills/analyze-with-file/SKILL.md +2 -0
  40. package/.codex/skills/debug-with-file/SKILL.md +4 -0
  41. package/.codex/skills/issue-discover/SKILL.md +1 -0
  42. package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
  43. package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
  44. package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
  45. package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
  46. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
  47. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
  48. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
  49. package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
  50. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
  51. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
  52. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
  53. package/ccw/dist/commands/spec.d.ts.map +1 -1
  54. package/ccw/dist/commands/spec.js +9 -4
  55. package/ccw/dist/commands/spec.js.map +1 -1
  56. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
  57. package/ccw/dist/core/routes/codexlens-routes.js +3 -1
  58. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
  59. package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
  60. package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
  61. package/ccw/dist/tools/spec-index-builder.js +8 -4
  62. package/ccw/dist/tools/spec-index-builder.js.map +1 -1
  63. package/ccw/dist/tools/spec-init.d.ts +1 -1
  64. package/ccw/dist/tools/spec-init.d.ts.map +1 -1
  65. package/ccw/dist/tools/spec-init.js +127 -0
  66. package/ccw/dist/tools/spec-init.js.map +1 -1
  67. package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
  68. package/ccw/dist/tools/spec-loader.js +2 -1
  69. package/ccw/dist/tools/spec-loader.js.map +1 -1
  70. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
  71. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
  72. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
  73. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
  74. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
  75. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
  76. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
  77. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
  78. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
  79. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
  80. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
  81. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
  82. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
  83. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
  84. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
  85. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
  86. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
  87. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
  88. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
  89. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
  90. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
  91. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
  92. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
  93. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
  94. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
  95. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
  96. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
  97. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
  98. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
  99. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
  100. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
  101. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
  102. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
  103. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
  104. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
  105. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
  106. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
  107. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
  108. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
  109. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
  110. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
  111. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
  112. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
  113. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
  114. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
  115. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
  116. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
  117. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
  118. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
  119. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
  120. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
  121. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
  122. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
  123. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
  124. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
  125. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
  126. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
  127. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
  128. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
  129. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
  130. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
  131. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
  132. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
  133. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
  134. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
  135. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
  136. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
  137. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
  138. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
  139. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
  140. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
  141. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
  142. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
  143. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
  144. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
  145. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
  146. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
  147. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
  148. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
  149. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
  150. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
  151. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
  152. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
  153. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
  154. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
  155. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
  156. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
  157. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
  158. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
  159. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
  160. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
  161. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
  162. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
  163. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
  164. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
  165. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
  166. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
  167. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
  168. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
  169. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
  170. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
  171. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
  172. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
  173. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
  174. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
  175. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
  176. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
  177. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
  178. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
  179. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
  180. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
  181. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
  182. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
  183. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
  184. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
  185. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
  186. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
  187. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
  188. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
  189. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
  190. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
  191. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
  192. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
  193. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
  195. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
  197. package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
  199. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
  200. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
  201. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
  202. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
  203. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
  204. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
  205. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
  206. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
  207. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
  208. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
  209. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
  210. package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
  211. package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
  212. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
  213. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
  214. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
  215. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
  216. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
  217. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
  218. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
  219. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
  220. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
  221. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
  222. package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
  223. package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
  224. package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
  225. package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
  226. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
  227. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
  228. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
  229. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
  230. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
  231. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
  232. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
  233. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
  234. package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
  235. package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
  236. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
  237. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
  238. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
  239. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
  240. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
  241. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
  242. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
  243. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
  244. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
  245. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
  246. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
  247. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
  248. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
  249. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
  250. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
  251. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
  252. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
  253. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
  254. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
  255. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
  256. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
  257. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
  258. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
  259. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
  260. package/ccw/frontend/dist/index.html +1 -1
  261. package/package.json +1 -1
  262. package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
  263. package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
  264. package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
  265. package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
  266. package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
  267. package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
  268. package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
  269. package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
  270. package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
  271. package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
  272. package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
  273. package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
  274. package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
  275. package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
  276. package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
  277. package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
  278. package/.claude/skills/team-issue/role-specs/planner.md +0 -83
  279. package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
  280. package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
  281. package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
  282. package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
  283. package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
  284. package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
  285. package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
  286. package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
  287. package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
  288. package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
  289. package/.claude/skills/team-planex/role-specs/executor.md +0 -90
  290. package/.claude/skills/team-planex/role-specs/planner.md +0 -110
  291. package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
  292. package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
  293. package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
  294. package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
  295. package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
  296. package/.claude/skills/team-review/role-specs/fixer.md +0 -75
  297. package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
  298. package/.claude/skills/team-review/role-specs/scanner.md +0 -70
  299. package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
  300. package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
  301. package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
  302. package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
  303. package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
  304. package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
  305. package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
  306. package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
  307. package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
  308. package/.claude/skills/team-testing/role-specs/executor.md +0 -97
  309. package/.claude/skills/team-testing/role-specs/generator.md +0 -96
  310. package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
  311. package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
  312. package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
  313. package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
  314. package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
  315. package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
  316. package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
  317. package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
  318. package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
  319. package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
  320. package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
  321. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
  322. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
@@ -0,0 +1,487 @@
1
+ ---
2
+ name: workflow-tune
3
+ description: Workflow tuning skill for multi-command/skill pipelines. Executes each step sequentially, inspects artifacts after each command, analyzes quality via ccw cli resume, builds process documentation, and generates optimization suggestions. Triggers on "workflow tune", "tune workflow", "workflow optimization".
4
+ allowed-tools: Skill, Agent, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep
5
+ ---
6
+
7
+ # Workflow Tune
8
+
9
+ Tune multi-step workflows composed of commands or skills. Execute each step, inspect artifacts, analyze via ccw cli resume, build process documentation, and produce actionable optimization suggestions.
10
+
11
+ ## Architecture Overview
12
+
13
+ ```
14
+ ┌──────────────────────────────────────────────────────────────────────┐
15
+ │ Workflow Tune Orchestrator (SKILL.md) │
16
+ │ → Parse → Decompose → Confirm → Setup → Step Loop → Synthesize │
17
+ └──────────────────────┬───────────────────────────────────────────────┘
18
+
19
+ ┌───────────────────┼───────────────────────────────────┐
20
+ ↓ ↓ ↓
21
+ ┌──────────┐ ┌─────────────────────────────┐ ┌──────────────┐
22
+ │ Phase 1 │ │ Step Loop (2→3 per step) │ │ Phase 4 + 5 │
23
+ │ Setup │ │ ┌─────┐ ┌─────┐ │ │ Synthesize + │
24
+ │ │──→│ │ P2 │→ │ P3 │ │────→│ Report │
25
+ │ Parse + │ │ │Exec │ │Anal │ │ │ │
26
+ │ Decomp + │ │ └─────┘ └─────┘ │ └──────────────┘
27
+ │ Confirm │ │ ↑ │ next step │
28
+ └──────────┘ │ └───────┘ │
29
+ └─────────────────────────────┘
30
+
31
+ Phase 1 Detail:
32
+ Input → [Format 1-3: direct parse] ──→ Command Doc → Confirm → Init
33
+ → [Format 4: natural lang] ──→ Semantic Decompose → Command Doc → Confirm → Init
34
+ ```
35
+
36
+ ## Key Design Principles
37
+
38
+ 1. **Test-First Evaluation**: Auto-generate per-step acceptance criteria before execution — judge results against concrete requirements, not vague quality
39
+ 2. **Step-by-Step Execution**: Each workflow step executes independently, artifacts inspected before proceeding
40
+ 3. **Resume-Based Analysis**: Uses ccw cli `--resume` to maintain analysis context across steps
41
+ 4. **Process Documentation**: Running `process-log.md` accumulates observations per step
42
+ 5. **Two-Tool Pipeline**: Claude/target tool (execute) + Gemini (analyze) = complementary perspectives
43
+ 6. **Pure Orchestrator**: SKILL.md coordinates only — execution detail in phase files
44
+ 7. **Progressive Phase Loading**: Phase docs read only when that phase executes
45
+
46
+ ## Interactive Preference Collection
47
+
48
+ ```javascript
49
+ // ★ Auto mode detection
50
+ const autoYes = /\b(-y|--yes)\b/.test($ARGUMENTS)
51
+
52
+ if (autoYes) {
53
+ workflowPreferences = {
54
+ autoYes: true,
55
+ analysisDepth: 'standard',
56
+ autoFix: false
57
+ }
58
+ } else {
59
+ const prefResponse = AskUserQuestion({
60
+ questions: [
61
+ {
62
+ question: "选择 Workflow 调优配置:",
63
+ header: "Tune Config",
64
+ multiSelect: false,
65
+ options: [
66
+ { label: "Quick (轻量分析)", description: "每步简要检查,快速产出建议" },
67
+ { label: "Standard (标准分析) (Recommended)", description: "每步详细分析,完整过程文档" },
68
+ { label: "Deep (深度分析)", description: "每步深度审查,含性能和架构建议" }
69
+ ]
70
+ },
71
+ {
72
+ question: "是否自动应用优化建议?",
73
+ header: "Auto Fix",
74
+ multiSelect: false,
75
+ options: [
76
+ { label: "No (仅生成报告) (Recommended)", description: "只分析,不修改" },
77
+ { label: "Yes (自动应用)", description: "分析后自动应用高优先级建议" }
78
+ ]
79
+ }
80
+ ]
81
+ })
82
+
83
+ const depthMap = {
84
+ "Quick": "quick",
85
+ "Standard": "standard",
86
+ "Deep": "deep"
87
+ }
88
+ const selectedDepth = Object.keys(depthMap).find(k =>
89
+ prefResponse["Tune Config"].startsWith(k)
90
+ ) || "Standard"
91
+
92
+ workflowPreferences = {
93
+ autoYes: false,
94
+ analysisDepth: depthMap[selectedDepth],
95
+ autoFix: prefResponse["Auto Fix"].startsWith("Yes")
96
+ }
97
+ }
98
+ ```
99
+
100
+ ## Input Processing
101
+
102
+ ```
103
+ $ARGUMENTS → Parse:
104
+ ├─ Workflow definition: one of:
105
+ │ ├─ Format 1: Inline steps — "step1 | step2 | step3" (pipe-separated commands)
106
+ │ ├─ Format 2: Skill names — "skill-a,skill-b,skill-c" (comma-separated)
107
+ │ ├─ Format 3: File path — "--file workflow.json" (JSON definition)
108
+ │ └─ Format 4: Natural language — free-text description, auto-decomposed into steps
109
+ ├─ Test context: --context "description of what the workflow should achieve"
110
+ └─ Flags: --depth quick|standard|deep, -y/--yes, --auto-fix
111
+ ```
112
+
113
+ ### Format Detection Priority
114
+
115
+ ```
116
+ 1. --file flag present → Format 3 (JSON)
117
+ 2. Contains pipe "|" → Format 1 (inline commands)
118
+ 3. Matches skill-name pattern → Format 2 (comma-separated skills)
119
+ 4. Everything else → Format 4 (natural language → semantic decomposition)
120
+ ```
121
+
122
+ ### Format 4: Semantic Decomposition (Natural Language)
123
+
124
+ When input is free-text (e.g., "分析 src 目录代码质量,做代码评审,然后修复高优先级问题"), the orchestrator:
125
+
126
+ 1. **Semantic Parse**: Identify intent verbs and targets → map to available skills/commands
127
+ 2. **Step Chain Generation**: Produce ordered step chain with tool/mode selection
128
+ 3. **Command Doc**: Generate formatted execution plan document
129
+ 4. **User Confirmation**: Display plan, ask user to confirm/edit before execution
130
+
131
+ ```javascript
132
+ // Semantic decomposition uses intent-to-tool mapping
133
+ const intentMap = {
134
+ // Analysis intents
135
+ '分析|analyze|审查|inspect|scan': { tool: 'gemini', mode: 'analysis', rule: 'analysis-analyze-code-patterns' },
136
+ '评审|review|code review': { tool: 'gemini', mode: 'analysis', rule: 'analysis-review-code-quality' },
137
+ '诊断|debug|排查|diagnose': { tool: 'gemini', mode: 'analysis', rule: 'analysis-diagnose-bug-root-cause' },
138
+ '安全|security|漏洞': { tool: 'gemini', mode: 'analysis', rule: 'analysis-assess-security-risks' },
139
+ '性能|performance|perf': { tool: 'gemini', mode: 'analysis', rule: 'analysis-analyze-performance' },
140
+ '架构|architecture': { tool: 'gemini', mode: 'analysis', rule: 'analysis-review-architecture' },
141
+ // Write intents
142
+ '修复|fix|repair|解决': { tool: 'claude', mode: 'write', rule: 'development-debug-runtime-issues' },
143
+ '实现|implement|开发|create': { tool: 'claude', mode: 'write', rule: 'development-implement-feature' },
144
+ '重构|refactor': { tool: 'claude', mode: 'write', rule: 'development-refactor-codebase' },
145
+ '测试|test|generate test': { tool: 'claude', mode: 'write', rule: 'development-generate-tests' },
146
+ // Planning intents
147
+ '规划|plan|设计|design': { tool: 'gemini', mode: 'analysis', rule: 'planning-plan-architecture-design' },
148
+ '拆解|breakdown|分解': { tool: 'gemini', mode: 'analysis', rule: 'planning-breakdown-task-steps' },
149
+ };
150
+
151
+ // Match input segments to intents, produce step chain
152
+ // See phases/01-setup.md Step 1.1b for full algorithm
153
+ ```
154
+
155
+ ### Workflow JSON Format (when using --file)
156
+
157
+ ```json
158
+ {
159
+ "name": "my-workflow",
160
+ "description": "What this workflow achieves",
161
+ "steps": [
162
+ {
163
+ "name": "step-1-name",
164
+ "type": "skill|command|ccw-cli",
165
+ "command": "/skill-name args" | "ccw cli -p '...' --tool gemini --mode analysis",
166
+ "expected_artifacts": ["output.md", "report.json"],
167
+ "success_criteria": "description of what success looks like"
168
+ }
169
+ ]
170
+ }
171
+ ```
172
+
173
+ ### Inline Step Parsing
174
+
175
+ ```javascript
176
+ // Pipe-separated: each segment is a command
177
+ // "ccw cli -p 'analyze' --tool gemini --mode analysis | /review-code src/ | ccw cli -p 'fix' --tool claude --mode write"
178
+ const steps = input.split('|').map((cmd, i) => ({
179
+ name: `step-${i + 1}`,
180
+ type: cmd.trim().startsWith('/') ? 'skill' : 'command',
181
+ command: cmd.trim(),
182
+ expected_artifacts: [],
183
+ success_criteria: ''
184
+ }));
185
+ ```
186
+
187
+ ## Pre-Execution Confirmation
188
+
189
+ After parsing (all formats) or decomposition (Format 4), generate a **Command Document** and ask for user confirmation before executing.
190
+
191
+ ### Command Document Format
192
+
193
+ ```markdown
194
+ # Workflow Tune — Execution Plan
195
+
196
+ **Workflow**: {name}
197
+ **Goal**: {context}
198
+ **Steps**: {count}
199
+ **Analysis Depth**: {depth}
200
+
201
+ ## Step Chain
202
+
203
+ | # | Name | Type | Command | Tool | Mode |
204
+ |---|------|------|---------|------|------|
205
+ | 1 | {name} | {type} | {command} | {tool} | {mode} |
206
+ | 2 | ... | ... | ... | ... | ... |
207
+
208
+ ## Execution Flow
209
+
210
+ ```
211
+ Step 1: {name}
212
+ → Command: {command}
213
+ → Expected: {artifacts}
214
+ → Feeds into: Step 2
215
+
216
+ Step 2: {name}
217
+ → Command: {command}
218
+ → Expected: {artifacts}
219
+ → Feeds into: Step 3
220
+
221
+ ...
222
+ ```
223
+
224
+ ## Estimated Scope
225
+
226
+ - Total CLI calls: {N} (execute) + {N} (analyze) + 1 (synthesize)
227
+ - Analysis tool: gemini (--resume chain)
228
+ - Process documentation: process-log.md (accumulated)
229
+ ```
230
+
231
+ ### Confirmation Flow
232
+
233
+ ```javascript
234
+ // ★ Skip confirmation only if -y/--yes flag
235
+ if (!workflowPreferences.autoYes) {
236
+ // Display command document to user
237
+ // Output the formatted plan (direct text output, NOT a file)
238
+
239
+ const confirmation = AskUserQuestion({
240
+ questions: [{
241
+ question: "确认执行以上 Workflow 调优计划?",
242
+ header: "Confirm Execution",
243
+ multiSelect: false,
244
+ options: [
245
+ { label: "Execute (确认执行)", description: "按计划开始执行" },
246
+ { label: "Edit steps (修改步骤)", description: "我想调整某些步骤" },
247
+ { label: "Cancel (取消)", description: "取消本次调优" }
248
+ ]
249
+ }]
250
+ });
251
+
252
+ if (confirmation["Confirm Execution"].startsWith("Cancel")) {
253
+ // Abort workflow
254
+ return;
255
+ }
256
+
257
+ if (confirmation["Confirm Execution"].startsWith("Edit")) {
258
+ // Ask user for modifications
259
+ const editResponse = AskUserQuestion({
260
+ questions: [{
261
+ question: "请描述要修改的内容(如:删除步骤2、步骤3改用codex、在步骤1后加入安全扫描):",
262
+ header: "Edit Steps"
263
+ }]
264
+ });
265
+ // Apply user edits to steps[] → re-display command doc → re-confirm
266
+ // (recursive confirmation loop until Execute or Cancel)
267
+ }
268
+ }
269
+ ```
270
+
271
+ ## Execution Flow
272
+
273
+ > **COMPACT DIRECTIVE**: Context compression MUST check TaskUpdate phase status.
274
+ > The phase currently marked `in_progress` is the active execution phase — preserve its FULL content.
275
+ > Only compress phases marked `completed` or `pending`.
276
+
277
+ ### Phase 1: Setup (one-time)
278
+
279
+ Read and execute: `Ref: phases/01-setup.md`
280
+
281
+ - Parse workflow steps from input (Format 1-3: direct parse, Format 4: semantic decomposition)
282
+ - Generate Command Document (formatted execution plan)
283
+ - **User Confirmation**: Display plan, wait for confirm/edit/cancel
284
+ - **Generate Test Requirements**: Auto-create per-step acceptance criteria via Gemini (expected outputs, content signals, quality thresholds, pass/fail criteria, handoff contracts)
285
+ - Create workspace at `.workflow/.scratchpad/workflow-tune-{ts}/`
286
+ - Initialize workflow-state.json (with test_requirements per step)
287
+ - Create process-log.md template
288
+
289
+ Output: `workDir`, `steps[]` (with test_requirements), `workflowContext`, `commandDoc`, initialized state
290
+
291
+ ### Step Loop (Phase 2 + Phase 3, per step)
292
+
293
+ ```javascript
294
+ // Track analysis session ID for resume chain
295
+ let analysisSessionId = null;
296
+
297
+ for (let stepIdx = 0; stepIdx < state.steps.length; stepIdx++) {
298
+ const step = state.steps[stepIdx];
299
+
300
+ TaskUpdate(stepLoopTask, {
301
+ subject: `Step ${stepIdx + 1}/${state.steps.length}: ${step.name}`,
302
+ status: 'in_progress'
303
+ });
304
+
305
+ // === Phase 2: Execute Step ===
306
+ // Read: phases/02-step-execute.md
307
+ // Execute command/skill → collect artifacts
308
+ // Write step-{N}-artifacts-manifest.json
309
+
310
+ // === Phase 3: Analyze Step ===
311
+ // Read: phases/03-step-analyze.md
312
+ // Inspect artifacts → ccw cli gemini --resume analysisSessionId
313
+ // Write step-{N}-analysis.md → append to process-log.md
314
+ // Update analysisSessionId for next step's resume
315
+
316
+ // Update state
317
+ state.steps[stepIdx].status = 'completed';
318
+ Write(`${state.work_dir}/workflow-state.json`, JSON.stringify(state, null, 2));
319
+ }
320
+ ```
321
+
322
+ ### Phase 2: Execute Step (per step)
323
+
324
+ Read and execute: `Ref: phases/02-step-execute.md`
325
+
326
+ - Create step working directory
327
+ - Execute command/skill via ccw cli or Skill tool
328
+ - Collect output artifacts
329
+ - Write artifacts manifest
330
+
331
+ ### Phase 3: Analyze Step (per step)
332
+
333
+ Read and execute: `Ref: phases/03-step-analyze.md`
334
+
335
+ - Inspect step artifacts (file list, content summary, quality signals)
336
+ - **Compare actual output against test requirements** (pass_criteria, content_signals, fail_signals, handoff_contract)
337
+ - Build analysis prompt with step context + test requirements + previous process log
338
+ - Execute: `ccw cli --tool gemini --mode analysis [--resume sessionId]`
339
+ - Parse analysis → write step-{N}-analysis.md (with requirement match: PASS/FAIL)
340
+ - Append findings to process-log.md
341
+ - Return analysis session ID for resume chain
342
+
343
+ ### Phase 4: Synthesize (one-time)
344
+
345
+ Read and execute: `Ref: phases/04-synthesize.md`
346
+
347
+ - Read complete process-log.md + all step analyses
348
+ - Build synthesis prompt with full workflow context
349
+ - Execute: `ccw cli --tool gemini --mode analysis --resume analysisSessionId`
350
+ - Generate cross-step optimization insights
351
+ - Write synthesis.md
352
+
353
+ ### Phase 5: Optimization Report (one-time)
354
+
355
+ Read and execute: `Ref: phases/05-optimize-report.md`
356
+
357
+ - Aggregate all analyses and synthesis
358
+ - Generate structured optimization report
359
+ - Optionally apply high-priority fixes (if autoFix enabled)
360
+ - Write final-report.md
361
+ - Display summary to user
362
+
363
+ **Phase Reference Documents**:
364
+
365
+ | Phase | Document | Purpose | Compact |
366
+ |-------|----------|---------|---------|
367
+ | 1 | [phases/01-setup.md](phases/01-setup.md) | Initialize workspace and state | TaskUpdate driven |
368
+ | 2 | [phases/02-step-execute.md](phases/02-step-execute.md) | Execute workflow step | TaskUpdate driven |
369
+ | 3 | [phases/03-step-analyze.md](phases/03-step-analyze.md) | Analyze step artifacts | TaskUpdate driven + resume |
370
+ | 4 | [phases/04-synthesize.md](phases/04-synthesize.md) | Cross-step synthesis | TaskUpdate driven + resume |
371
+ | 5 | [phases/05-optimize-report.md](phases/05-optimize-report.md) | Generate final report | TaskUpdate driven |
372
+
373
+ ## Data Flow
374
+
375
+ ```
376
+ User Input (workflow steps / natural language + context)
377
+
378
+ Phase 1: Setup
379
+ ├─ [Format 1-3] Direct parse → steps[]
380
+ ├─ [Format 4] Semantic decompose → steps[]
381
+
382
+ Command Document (formatted plan)
383
+
384
+ User Confirmation (Execute / Edit / Cancel)
385
+ ↓ (Execute confirmed)
386
+
387
+ Generate Test Requirements (Gemini) → per-step acceptance criteria
388
+ ↓ workDir, steps[] (with test_requirements), workflow-state.json, process-log.md
389
+
390
+ ┌─→ Phase 2: Execute Step N (ccw cli / Skill)
391
+ │ ↓ step-N/ artifacts
392
+ │ ↓
393
+ │ Phase 3: Analyze Step N (ccw cli gemini --resume)
394
+ │ ↓ step-N-analysis.md, process-log.md updated
395
+ │ ↓ analysisSessionId carried forward
396
+ │ ↓
397
+ │ [More steps?]─── YES ──→ next step (Phase 2)
398
+ │ ↓ NO
399
+ │ ↓
400
+ └───┘
401
+
402
+ Phase 4: Synthesize (ccw cli gemini --resume)
403
+ ↓ synthesis.md
404
+
405
+ Phase 5: Report
406
+ ↓ final-report.md + optional auto-fix
407
+
408
+ Done
409
+ ```
410
+
411
+ ## TaskUpdate Pattern
412
+
413
+ ```javascript
414
+ // Initial state
415
+ TaskCreate({ subject: "Phase 1: Setup workspace", activeForm: "Parsing workflow" })
416
+ TaskCreate({ subject: "Step Loop", activeForm: "Executing steps" })
417
+ TaskCreate({ subject: "Phase 4-5: Synthesize & Report", activeForm: "Pending" })
418
+
419
+ // Per-step tracking
420
+ for (const step of state.steps) {
421
+ TaskCreate({
422
+ subject: `Step: ${step.name}`,
423
+ activeForm: `Pending`,
424
+ description: `${step.type}: ${step.command}`
425
+ })
426
+ }
427
+
428
+ // During step execution
429
+ TaskUpdate(stepTask, {
430
+ subject: `Step: ${step.name} — Executing`,
431
+ activeForm: `Running ${step.command}`
432
+ })
433
+
434
+ // After step analysis
435
+ TaskUpdate(stepTask, {
436
+ subject: `Step: ${step.name} — Analyzed`,
437
+ activeForm: `Quality: ${stepQuality} | Issues: ${issueCount}`,
438
+ status: 'completed'
439
+ })
440
+
441
+ // Final
442
+ TaskUpdate(synthesisTask, {
443
+ subject: `Synthesis & Report (${state.steps.length} steps, ${totalIssues} issues)`,
444
+ status: 'completed'
445
+ })
446
+ ```
447
+
448
+ ## Resume Chain Strategy
449
+
450
+ ```
451
+ Step 1 Execute → artifacts
452
+ Step 1 Analyze → ccw cli gemini --mode analysis → sessionId_1
453
+ Step 2 Execute → artifacts
454
+ Step 2 Analyze → ccw cli gemini --mode analysis --resume sessionId_1 → sessionId_2
455
+ ...
456
+ Step N Analyze → sessionId_N
457
+ Synthesize → ccw cli gemini --mode analysis --resume sessionId_N → final
458
+ ```
459
+
460
+ Each analysis step resumes the previous session, maintaining full context of:
461
+ - All prior step observations
462
+ - Accumulated quality patterns
463
+ - Cross-step dependency insights
464
+
465
+ ## Error Handling
466
+
467
+ | Phase | Error | Recovery |
468
+ |-------|-------|----------|
469
+ | 2: Execute | CLI timeout/crash | Retry once, then record failure and continue to next step |
470
+ | 2: Execute | Skill not found | Skip step, note in process-log |
471
+ | 3: Analyze | CLI fails | Retry without --resume, start fresh session |
472
+ | 3: Analyze | Resume session not found | Start fresh analysis session |
473
+ | 4: Synthesize | CLI fails | Generate report from individual step analyses only |
474
+ | Any | 3+ consecutive errors | Terminate with partial report |
475
+
476
+ **Error Budget**: Each step gets 1 retry. 3 consecutive failures triggers early termination.
477
+
478
+ ## Core Rules
479
+
480
+ 1. **Start Immediately**: First action is preference collection → Phase 1 setup
481
+ 2. **Progressive Loading**: Read phase doc ONLY when that phase is about to execute
482
+ 3. **Inspect Before Proceed**: Always check step artifacts before moving to next step
483
+ 4. **Background CLI**: ccw cli runs in background, wait for hook callback before proceeding
484
+ 5. **Resume Chain**: Maintain analysis session continuity via --resume
485
+ 6. **Process Documentation**: Every step observation goes into process-log.md
486
+ 7. **Single State Source**: `workflow-state.json` is the only source of truth
487
+ 8. **DO NOT STOP**: Continuous execution until all steps processed