claude-code-workflow 7.2.27 → 7.2.28

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 (382) hide show
  1. package/.ccw/specs/architecture-constraints.md +5 -0
  2. package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
  3. package/.claude/skills/investigate/SKILL.md +110 -0
  4. package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
  5. package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
  6. package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
  7. package/.claude/skills/investigate/phases/04-implementation.md +139 -0
  8. package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
  9. package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
  10. package/.claude/skills/investigate/specs/iron-law.md +101 -0
  11. package/.claude/skills/security-audit/SKILL.md +125 -0
  12. package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
  13. package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
  14. package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
  15. package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
  16. package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
  17. package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
  18. package/.claude/skills/ship/SKILL.md +105 -0
  19. package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
  20. package/.claude/skills/ship/phases/02-code-review.md +137 -0
  21. package/.claude/skills/ship/phases/03-version-bump.md +171 -0
  22. package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
  23. package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
  24. package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
  25. package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
  26. package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
  27. package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  28. package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
  29. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  30. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
  31. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
  32. package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
  33. package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  34. package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  35. package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  36. package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
  37. package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
  38. package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  39. package/.claude/skills/team-motion-design/SKILL.md +129 -0
  40. package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
  41. package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
  42. package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  43. package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
  44. package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
  45. package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
  46. package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  47. package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  48. package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  49. package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
  50. package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
  51. package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
  52. package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
  53. package/.claude/skills/team-ui-polish/SKILL.md +127 -0
  54. package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  55. package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
  56. package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
  57. package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
  58. package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
  59. package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
  60. package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
  61. package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
  62. package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  63. package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
  64. package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  65. package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
  66. package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  67. package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
  68. package/.claude/skills/team-uidesign/SKILL.md +6 -1
  69. package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
  70. package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
  71. package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
  72. package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
  73. package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
  74. package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
  75. package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
  76. package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
  77. package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
  78. package/.claude/skills/team-ux-improve/SKILL.md +3 -0
  79. package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
  80. package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
  81. package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
  82. package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
  83. package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
  84. package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
  85. package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
  86. package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
  87. package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
  88. package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
  89. package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
  90. package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  91. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  92. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
  93. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
  94. package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
  95. package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  96. package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  97. package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  98. package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  99. package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  100. package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  101. package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
  102. package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
  103. package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  104. package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  105. package/.codex/skills/investigate/agents/investigator.md +392 -0
  106. package/.codex/skills/investigate/orchestrator.md +362 -0
  107. package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
  108. package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
  109. package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
  110. package/.codex/skills/investigate/phases/04-implementation.md +195 -0
  111. package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
  112. package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
  113. package/.codex/skills/security-audit/orchestrator.md +384 -0
  114. package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
  115. package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
  116. package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
  117. package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
  118. package/.codex/skills/ship/agents/ship-operator.md +318 -0
  119. package/.codex/skills/ship/orchestrator.md +426 -0
  120. package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
  121. package/.codex/skills/ship/phases/02-code-review.md +228 -0
  122. package/.codex/skills/ship/phases/03-version-bump.md +259 -0
  123. package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
  124. package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
  125. package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
  126. package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  127. package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
  128. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  129. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
  130. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
  131. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
  132. package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  133. package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  134. package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  135. package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
  136. package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
  137. package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  138. package/.codex/skills/team-motion-design/SKILL.md +222 -0
  139. package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
  140. package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
  141. package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  142. package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
  143. package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
  144. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
  145. package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  146. package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  147. package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  148. package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
  149. package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
  150. package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
  151. package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
  152. package/.codex/skills/team-ui-polish/SKILL.md +218 -0
  153. package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  154. package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
  155. package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
  156. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
  157. package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
  158. package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
  159. package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
  160. package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
  161. package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  162. package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
  163. package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  164. package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
  165. package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  166. package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
  167. package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
  168. package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  169. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  170. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
  171. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
  172. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
  173. package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  174. package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  175. package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  176. package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  177. package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  178. package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  179. package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
  180. package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
  181. package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  182. package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  183. package/README.md +8 -0
  184. package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
  185. package/ccw/dist/core/hooks/hook-templates.js +114 -1
  186. package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
  187. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  188. package/ccw/dist/core/routes/cli-routes.js +34 -0
  189. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  190. package/ccw/dist/core/routes/system-routes.js +2 -2
  191. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  192. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
  193. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
  195. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
  197. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
  199. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
  200. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
  201. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
  202. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
  203. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
  204. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
  205. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
  206. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
  207. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
  208. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
  209. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
  210. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
  211. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
  212. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
  213. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
  214. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
  215. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
  216. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
  217. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
  218. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
  219. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
  220. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
  221. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
  222. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
  223. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
  224. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
  225. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
  226. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
  227. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
  228. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
  229. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
  230. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
  231. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
  232. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
  233. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
  234. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
  235. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
  236. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
  237. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
  238. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
  239. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
  240. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
  241. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
  242. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
  243. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
  244. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
  245. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
  246. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
  247. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
  248. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
  249. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
  250. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
  251. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
  252. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
  253. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
  254. package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
  255. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
  256. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
  257. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
  258. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
  259. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
  260. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
  261. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
  262. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
  263. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
  264. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
  265. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
  266. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
  267. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
  268. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
  269. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
  270. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
  271. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
  272. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
  273. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
  274. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
  275. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
  276. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
  277. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
  278. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
  279. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
  280. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
  281. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
  282. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
  283. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
  284. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
  285. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
  286. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
  287. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
  288. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
  289. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
  290. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
  291. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
  292. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
  293. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
  294. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
  295. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
  296. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
  297. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
  298. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
  299. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
  300. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
  301. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
  302. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
  303. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
  304. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
  305. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
  306. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
  307. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
  308. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
  309. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
  310. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
  311. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
  312. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
  313. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
  314. package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
  315. package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
  316. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
  317. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
  318. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
  319. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
  320. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
  321. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
  322. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
  323. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
  324. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
  325. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
  326. package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
  327. package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
  328. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
  329. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
  330. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
  331. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
  332. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
  333. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
  334. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
  335. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
  336. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
  337. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
  338. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
  339. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
  340. package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
  341. package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
  342. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
  343. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
  344. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
  345. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
  346. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
  347. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
  348. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
  349. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
  350. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
  351. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
  352. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
  353. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
  354. package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
  355. package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
  356. package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
  357. package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
  358. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
  359. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
  360. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
  361. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
  362. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
  363. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
  364. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
  365. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
  366. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
  367. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
  368. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
  369. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
  370. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
  371. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
  372. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
  373. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
  374. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
  375. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
  376. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
  377. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
  378. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
  379. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
  380. package/ccw/frontend/dist/index.html +1 -1
  381. package/package.json +105 -105
  382. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
@@ -14,3 +14,8 @@ keywords: [architecture, constraint, schema, compatibility, portability, design,
14
14
 
15
15
  - [compatibility] When enhancing existing schemas, use optional fields and additionalProperties rather than creating new schemas. Avoid breaking changes.
16
16
  - [portability] Use relative paths for cross-artifact navigation to ensure portability across different environments and installations.
17
+
18
+ ## Skill Design
19
+
20
+ - [decision:skills] All skills must follow Completion Status Protocol (DONE/DONE_WITH_CONCERNS/BLOCKED/NEEDS_CONTEXT) defined in SKILL-DESIGN-SPEC.md sections 13-14. New skills created via skill-generator auto-include the protocol reference. (2026-03-29)
21
+ - [decision:hooks] Hook safety guardrails use TypeScript HookTemplate pattern (not standalone bash scripts) for integration with CCW hook endpoint system. Templates: careful-destructive-guard, freeze-edit-boundary. (2026-03-29)
@@ -18,6 +18,8 @@
18
18
  10. [质量控制规范](#10-质量控制规范)
19
19
  11. [最佳实践清单](#11-最佳实践清单)
20
20
  12. [示例模板](#12-示例模板)
21
+ 13. [Completion Status Protocol](#13-completion-status-protocol)
22
+ 14. [Escalation Protocol](#14-escalation-protocol)
21
23
 
22
24
  ---
23
25
 
@@ -665,6 +667,144 @@ Generate XXX through multi-phase analysis.
665
667
 
666
668
  ---
667
669
 
670
+ ## 13. Completion Status Protocol
671
+
672
+ ### 13.1 Status Definitions
673
+
674
+ Every Skill execution MUST terminate with one of the following four statuses:
675
+
676
+ | Status | Exit Code | Definition |
677
+ |--------|-----------|------------|
678
+ | **DONE** | 0 | All acceptance criteria met, outputs generated successfully |
679
+ | **DONE_WITH_CONCERNS** | 0 | Completed but with warnings or non-blocking issues |
680
+ | **BLOCKED** | 1 | Cannot proceed, requires external action or resource |
681
+ | **NEEDS_CONTEXT** | 2 | Missing information needed to make a decision |
682
+
683
+ ### 13.2 When to Use
684
+
685
+ | Status | Use When |
686
+ |--------|----------|
687
+ | **DONE** | All phases completed, quality gates passed, outputs validated |
688
+ | **DONE_WITH_CONCERNS** | Core task completed but: deprecation warnings found, quality score 60-79%, non-critical checks failed, partial data used as fallback |
689
+ | **BLOCKED** | Required file/service unavailable, dependency not installed, permission denied, prerequisite task not completed |
690
+ | **NEEDS_CONTEXT** | Ambiguous user requirement, multiple valid interpretations, missing configuration value, unclear scope boundary |
691
+
692
+ ### 13.3 Output Format
693
+
694
+ Each status MUST use the following structured output at the end of Skill execution:
695
+
696
+ ```
697
+ ## STATUS: {DONE|DONE_WITH_CONCERNS|BLOCKED|NEEDS_CONTEXT}
698
+
699
+ **Summary**: {one-line description of outcome}
700
+
701
+ ### Details
702
+ {status-specific content — see below}
703
+
704
+ ### Outputs
705
+ - {list of files created/modified, if any}
706
+ ```
707
+
708
+ **DONE details**:
709
+ ```
710
+ ### Details
711
+ - Phases completed: {N}/{N}
712
+ - Quality score: {score}%
713
+ - Key outputs: {list of primary deliverables}
714
+ ```
715
+
716
+ **DONE_WITH_CONCERNS details**:
717
+ ```
718
+ ### Details
719
+ - Phases completed: {N}/{N}
720
+ - Concerns:
721
+ 1. {concern description} — Impact: {low|medium} — Suggested fix: {action}
722
+ 2. ...
723
+ ```
724
+
725
+ **BLOCKED details**:
726
+ ```
727
+ ### Details
728
+ - Blocked at: Phase {N}, Step {M}
729
+ - Blocker: {specific description of what is blocking}
730
+ - Need: {specific action or resource required to unblock}
731
+ - Attempted: {what was tried before declaring blocked}
732
+ ```
733
+
734
+ **NEEDS_CONTEXT details**:
735
+ ```
736
+ ### Details
737
+ - Paused at: Phase {N}, Step {M}
738
+ - Questions:
739
+ 1. {specific question requiring user/caller input}
740
+ 2. ...
741
+ - Context available: {what is already known}
742
+ - Impact: {what cannot proceed without answers}
743
+ ```
744
+
745
+ ---
746
+
747
+ ## 14. Escalation Protocol
748
+
749
+ ### 14.1 Three-Strike Rule
750
+
751
+ When a Skill encounters consecutive failures on the **same step**, the following escalation applies:
752
+
753
+ | Strike | Action |
754
+ |--------|--------|
755
+ | 1st failure | Log error, retry with adjusted approach |
756
+ | 2nd failure | Log error, try alternative strategy |
757
+ | 3rd failure | **STOP execution immediately**, output diagnostic dump, request human intervention |
758
+
759
+ ### 14.2 Failure Tracking
760
+
761
+ Track failures per step, not globally. A success on any step resets that step's failure counter.
762
+
763
+ ```
764
+ Step failure counter:
765
+ Phase 2, Step 3: [fail] [fail] [STOP] → escalate
766
+ Phase 2, Step 4: [fail] [success] → counter reset, continue
767
+ ```
768
+
769
+ ### 14.3 Diagnostic Dump Format
770
+
771
+ On the 3rd consecutive failure, output the following diagnostic block:
772
+
773
+ ```
774
+ ## ESCALATION: 3-Strike Limit Reached
775
+
776
+ ### Failed Step
777
+ - Phase: {phase_number} — {phase_name}
778
+ - Step: {step_number} — {step_name}
779
+
780
+ ### Error History
781
+ 1. Attempt 1: {error message or description}
782
+ Strategy: {what was tried}
783
+ 2. Attempt 2: {error message or description}
784
+ Strategy: {alternative approach tried}
785
+ 3. Attempt 3: {error message or description}
786
+ Strategy: {final approach tried}
787
+
788
+ ### Current State
789
+ - Last successful phase/step: {phase.step}
790
+ - Files generated so far: {list}
791
+ - Files touched in failed attempts: {list}
792
+
793
+ ### Diagnosis
794
+ - Likely root cause: {assessment}
795
+ - Suggested human action: {specific recommendation}
796
+ ```
797
+
798
+ ### 14.4 Post-Escalation Behavior
799
+
800
+ After outputting the diagnostic dump:
801
+ 1. Set Skill status to **BLOCKED** (see Section 13)
802
+ 2. Do NOT attempt further retries
803
+ 3. Preserve all intermediate outputs for debugging
804
+ 4. Wait for human intervention before resuming
805
+
806
+ ---
807
+
668
808
  ## 附录 A: 设计对比
669
809
 
670
810
  | 设计点 | software-manual | copyright-docs |
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: investigate
3
+ description: Systematic debugging with Iron Law methodology. 5-phase investigation from evidence collection to verified fix. Triggers on "investigate", "debug", "root cause".
4
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
5
+ ---
6
+
7
+ # Investigate
8
+
9
+ Systematic debugging skill that enforces the Iron Law: never fix without a confirmed root cause. Produces a structured debug report with full evidence chain, minimal fix, and regression test.
10
+
11
+ ## Iron Law Principle
12
+
13
+ **No fix without confirmed root cause.** Every investigation follows a strict evidence chain:
14
+ 1. Reproduce the bug with concrete evidence
15
+ 2. Analyze patterns to assess scope
16
+ 3. Form and test hypotheses (max 3 strikes)
17
+ 4. Implement minimal fix ONLY after root cause is confirmed
18
+ 5. Verify fix and generate structured report
19
+
20
+ Violation of the Iron Law (skipping to Phase 4 without Phase 3 confirmation) is prohibited.
21
+
22
+ ## Key Design Principles
23
+
24
+ 1. **Evidence-First**: Collect before theorizing. Logs, stack traces, and reproduction steps are mandatory inputs.
25
+ 2. **Minimal Fix**: Change only what is necessary. Refactoring is not debugging.
26
+ 3. **3-Strike Escalation**: If 3 consecutive hypothesis tests fail, STOP and escalate with a diagnostic dump.
27
+ 4. **Regression Coverage**: Every fix must include a test that fails without the fix and passes with it.
28
+ 5. **Structured Output**: All findings are recorded in machine-readable JSON for future reference.
29
+
30
+ ## Execution Flow
31
+
32
+ ```
33
+ Phase 1: Root Cause Investigation
34
+ Reproduce bug, collect evidence (errors, logs, traces)
35
+ Use ccw cli --tool gemini --mode analysis for initial diagnosis
36
+ Output: investigation-report.json
37
+ |
38
+ v
39
+ Phase 2: Pattern Analysis
40
+ Search codebase for similar patterns (same error, module, antipattern)
41
+ Assess scope: isolated vs systemic
42
+ Output: pattern-analysis section in report
43
+ |
44
+ v
45
+ Phase 3: Hypothesis Testing
46
+ Form max 3 hypotheses from evidence
47
+ Test each with minimal read-only probes
48
+ 3-strike rule: STOP and escalate on 3 consecutive failures
49
+ Output: confirmed root cause with evidence chain
50
+ |
51
+ v
52
+ Phase 4: Implementation [GATE: requires Phase 3 confirmed root cause]
53
+ Implement minimal fix
54
+ Add regression test
55
+ Verify fix resolves reproduction case
56
+ |
57
+ v
58
+ Phase 5: Verification & Report
59
+ Run full test suite
60
+ Check for regressions
61
+ Generate structured debug report to .workflow/.debug/
62
+ ```
63
+
64
+ ## Directory Setup
65
+
66
+ ```bash
67
+ mkdir -p .workflow/.debug
68
+ ```
69
+
70
+ ## Output Structure
71
+
72
+ ```
73
+ .workflow/.debug/
74
+ debug-report-{YYYY-MM-DD}-{slug}.json # Structured debug report
75
+ ```
76
+
77
+ ## Completion Status Protocol
78
+
79
+ This skill follows the Completion Status Protocol defined in `_shared/SKILL-DESIGN-SPEC.md` sections 13-14.
80
+
81
+ | Status | When |
82
+ |--------|------|
83
+ | **DONE** | Root cause confirmed, fix applied, regression test passes, no regressions |
84
+ | **DONE_WITH_CONCERNS** | Fix applied but partial test coverage or minor warnings |
85
+ | **BLOCKED** | Cannot reproduce bug, or 3-strike escalation triggered in Phase 3 |
86
+ | **NEEDS_CONTEXT** | Missing reproduction steps, unclear error conditions |
87
+
88
+ ## Reference Documents
89
+
90
+ | Document | Purpose |
91
+ |----------|---------|
92
+ | [phases/01-root-cause-investigation.md](phases/01-root-cause-investigation.md) | Evidence collection and reproduction |
93
+ | [phases/02-pattern-analysis.md](phases/02-pattern-analysis.md) | Codebase pattern search and scope assessment |
94
+ | [phases/03-hypothesis-testing.md](phases/03-hypothesis-testing.md) | Hypothesis formation, testing, and 3-strike rule |
95
+ | [phases/04-implementation.md](phases/04-implementation.md) | Minimal fix with Iron Law gate |
96
+ | [phases/05-verification-report.md](phases/05-verification-report.md) | Test suite, regression check, report generation |
97
+ | [specs/iron-law.md](specs/iron-law.md) | Iron Law rules definition |
98
+ | [specs/debug-report-format.md](specs/debug-report-format.md) | Structured debug report JSON schema |
99
+
100
+ ## CLI Integration
101
+
102
+ This skill leverages `ccw cli` for multi-model analysis at key points:
103
+
104
+ | Phase | CLI Usage | Mode |
105
+ |-------|-----------|------|
106
+ | Phase 1 | Initial diagnosis from error evidence | `--mode analysis` |
107
+ | Phase 2 | Cross-file pattern search | `--mode analysis` |
108
+ | Phase 3 | Hypothesis validation assistance | `--mode analysis` |
109
+
110
+ All CLI calls use `--mode analysis` (read-only). No write-mode CLI calls during investigation phases 1-3.
@@ -0,0 +1,132 @@
1
+ # Phase 1: Root Cause Investigation
2
+
3
+ Reproduce the bug and collect all available evidence before forming any theories.
4
+
5
+ ## Objective
6
+
7
+ - Reproduce the bug with concrete, observable symptoms
8
+ - Collect all evidence: error messages, logs, stack traces, affected files
9
+ - Establish a baseline understanding of what goes wrong and where
10
+ - Use CLI analysis for initial diagnosis
11
+
12
+ ## Execution Steps
13
+
14
+ ### Step 1: Understand the Bug Report
15
+
16
+ Parse the user's description to extract:
17
+ - **Symptom**: What observable behavior is wrong?
18
+ - **Expected**: What should happen instead?
19
+ - **Context**: When/where does it occur? (specific input, environment, timing)
20
+
21
+ ```javascript
22
+ const bugReport = {
23
+ symptom: "extracted from user description",
24
+ expected_behavior: "what should happen",
25
+ context: "when/where it occurs",
26
+ user_provided_files: ["files mentioned by user"],
27
+ user_provided_errors: ["error messages provided"]
28
+ }
29
+ ```
30
+
31
+ ### Step 2: Reproduce the Bug
32
+
33
+ Attempt to reproduce using the most direct method available:
34
+
35
+ 1. **Run the failing test** (if one exists):
36
+ ```bash
37
+ # Identify and run the specific failing test
38
+ ```
39
+
40
+ 2. **Run the failing command** (if CLI/script):
41
+ ```bash
42
+ # Execute the command that triggers the bug
43
+ ```
44
+
45
+ 3. **Read error-producing code path** (if reproduction requires complex setup):
46
+ - Use `Grep` to find the error message in source code
47
+ - Use `Read` to trace the code path that produces the error
48
+ - Document the theoretical reproduction path
49
+
50
+ **If reproduction fails**: Document what was attempted. The investigation can continue with static analysis, but note this as a concern.
51
+
52
+ ### Step 3: Collect Evidence
53
+
54
+ Gather all available evidence using project tools:
55
+
56
+ ```javascript
57
+ // 1. Find error messages in source
58
+ Grep({ pattern: "error message text", path: "src/" })
59
+
60
+ // 2. Find related log output
61
+ Grep({ pattern: "relevant log pattern", path: "." })
62
+
63
+ // 3. Read stack trace files or test output
64
+ Read({ file_path: "path/to/failing-test-output" })
65
+
66
+ // 4. Identify affected files and modules
67
+ Glob({ pattern: "**/*relevant-module*" })
68
+ ```
69
+
70
+ ### Step 4: Initial Diagnosis via CLI Analysis
71
+
72
+ Use `ccw cli` for a broader diagnostic perspective:
73
+
74
+ ```bash
75
+ ccw cli -p "PURPOSE: Diagnose root cause of bug from collected evidence
76
+ TASK: Analyze error context | Trace data flow | Identify suspicious code patterns
77
+ MODE: analysis
78
+ CONTEXT: @{affected_files} | Evidence: {error_messages_and_traces}
79
+ EXPECTED: Top 3 likely root causes ranked by evidence strength
80
+ CONSTRAINTS: Read-only analysis | Focus on {affected_module}" \
81
+ --tool gemini --mode analysis
82
+ ```
83
+
84
+ ### Step 5: Write Investigation Report
85
+
86
+ Generate `investigation-report.json` in memory (carried to next phase):
87
+
88
+ ```json
89
+ {
90
+ "phase": 1,
91
+ "bug_description": "concise description of the bug",
92
+ "reproduction": {
93
+ "reproducible": true,
94
+ "steps": [
95
+ "step 1: ...",
96
+ "step 2: ...",
97
+ "step 3: observe error"
98
+ ],
99
+ "reproduction_method": "test|command|static_analysis"
100
+ },
101
+ "evidence": {
102
+ "error_messages": ["exact error text"],
103
+ "stack_traces": ["relevant stack trace"],
104
+ "affected_files": ["file1.ts", "file2.ts"],
105
+ "affected_modules": ["module-name"],
106
+ "log_output": ["relevant log lines"]
107
+ },
108
+ "initial_diagnosis": {
109
+ "cli_tool_used": "gemini",
110
+ "top_suspects": [
111
+ { "description": "suspect 1", "evidence_strength": "strong|moderate|weak", "files": [] }
112
+ ]
113
+ }
114
+ }
115
+ ```
116
+
117
+ ## Output
118
+
119
+ - **Data**: `investigation-report` (in-memory, passed to Phase 2)
120
+ - **Format**: JSON structure as defined above
121
+
122
+ ## Quality Checks
123
+
124
+ - [ ] Bug symptom clearly documented
125
+ - [ ] Reproduction attempted (success or documented failure)
126
+ - [ ] At least one piece of concrete evidence collected (error message, stack trace, or failing test)
127
+ - [ ] Affected files identified
128
+ - [ ] Initial diagnosis generated
129
+
130
+ ## Next Phase
131
+
132
+ Proceed to [Phase 2: Pattern Analysis](02-pattern-analysis.md) with the investigation report.
@@ -0,0 +1,126 @@
1
+ # Phase 2: Pattern Analysis
2
+
3
+ Search for similar patterns in the codebase to determine if the bug is isolated or systemic.
4
+
5
+ ## Objective
6
+
7
+ - Search for similar error patterns, antipatterns, or code smells across the codebase
8
+ - Determine if the bug is an isolated incident or part of a systemic issue
9
+ - Identify related code that may be affected by the same root cause
10
+ - Refine the scope of the investigation
11
+
12
+ ## Execution Steps
13
+
14
+ ### Step 1: Search for Similar Error Patterns
15
+
16
+ Look for the same error type or message elsewhere in the codebase:
17
+
18
+ ```javascript
19
+ // Search for identical or similar error messages
20
+ Grep({ pattern: "error_message_fragment", path: "src/", output_mode: "content", context: 3 })
21
+
22
+ // Search for the same exception/error type
23
+ Grep({ pattern: "ErrorClassName|error_code", path: "src/", output_mode: "files_with_matches" })
24
+
25
+ // Search for similar error handling patterns
26
+ Grep({ pattern: "catch.*{similar_pattern}", path: "src/", output_mode: "content" })
27
+ ```
28
+
29
+ ### Step 2: Search for Same Antipattern
30
+
31
+ If the initial diagnosis suggests a coding antipattern, search for it globally:
32
+
33
+ ```javascript
34
+ // Examples of antipattern searches:
35
+ // Missing null checks
36
+ Grep({ pattern: "variable\\.property", path: "src/", glob: "*.ts" })
37
+
38
+ // Unchecked async operations
39
+ Grep({ pattern: "async.*without.*await", path: "src/" })
40
+
41
+ // Direct mutation of shared state
42
+ Grep({ pattern: "shared_state_pattern", path: "src/" })
43
+ ```
44
+
45
+ ### Step 3: Module-Level Analysis
46
+
47
+ Examine the affected module for structural issues:
48
+
49
+ ```javascript
50
+ // List all files in the affected module
51
+ Glob({ pattern: "src/affected-module/**/*" })
52
+
53
+ // Check imports and dependencies
54
+ Grep({ pattern: "import.*from.*affected-module", path: "src/" })
55
+
56
+ // Check for circular dependencies or unusual patterns
57
+ Grep({ pattern: "require.*affected-module", path: "src/" })
58
+ ```
59
+
60
+ ### Step 4: CLI Cross-File Pattern Analysis (Optional)
61
+
62
+ For complex patterns that span multiple files, use CLI analysis:
63
+
64
+ ```bash
65
+ ccw cli -p "PURPOSE: Identify all instances of antipattern across codebase; success = complete scope map
66
+ TASK: Search for pattern '{antipattern_description}' | Map all occurrences | Assess systemic risk
67
+ MODE: analysis
68
+ CONTEXT: @src/**/*.{ext} | Bug in {module}, pattern: {pattern_description}
69
+ EXPECTED: List of all files with same pattern, risk assessment per occurrence
70
+ CONSTRAINTS: Focus on {antipattern} pattern only | Ignore test files for scope" \
71
+ --tool gemini --mode analysis
72
+ ```
73
+
74
+ ### Step 5: Scope Assessment
75
+
76
+ Classify the bug scope based on findings:
77
+
78
+ ```json
79
+ {
80
+ "phase": 2,
81
+ "pattern_analysis": {
82
+ "scope": "isolated|module-wide|systemic",
83
+ "similar_occurrences": [
84
+ {
85
+ "file": "path/to/file.ts",
86
+ "line": 42,
87
+ "pattern": "description of similar pattern",
88
+ "risk": "same_bug|potential_bug|safe"
89
+ }
90
+ ],
91
+ "total_occurrences": 1,
92
+ "affected_modules": ["module-name"],
93
+ "antipattern_identified": "description or null",
94
+ "scope_justification": "why this scope classification"
95
+ }
96
+ }
97
+ ```
98
+
99
+ **Scope Definitions**:
100
+ - **isolated**: Bug exists in a single location, no similar patterns found
101
+ - **module-wide**: Same pattern exists in multiple files within the same module
102
+ - **systemic**: Pattern spans multiple modules, may require broader fix
103
+
104
+ ## Output
105
+
106
+ - **Data**: `pattern-analysis` section added to investigation report (in-memory)
107
+ - **Format**: JSON structure as defined above
108
+
109
+ ## Decision Point
110
+
111
+ | Scope | Action |
112
+ |-------|--------|
113
+ | isolated | Proceed to Phase 3 with narrow focus |
114
+ | module-wide | Proceed to Phase 3, note all occurrences for Phase 4 fix |
115
+ | systemic | Proceed to Phase 3, but flag for potential multi-phase fix or separate tracking |
116
+
117
+ ## Quality Checks
118
+
119
+ - [ ] At least 3 search queries executed against the codebase
120
+ - [ ] Scope classified as isolated, module-wide, or systemic
121
+ - [ ] Similar occurrences documented with file:line references
122
+ - [ ] Scope justification provided with evidence
123
+
124
+ ## Next Phase
125
+
126
+ Proceed to [Phase 3: Hypothesis Testing](03-hypothesis-testing.md) with the pattern analysis results.