claude-code-pilot 2.0.0 → 3.1.0

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 (514) hide show
  1. package/README.md +76 -97
  2. package/bin/install.js +267 -250
  3. package/manifest.json +5 -18
  4. package/package.json +5 -7
  5. package/src/agents/build-error-resolver.md +114 -0
  6. package/src/agents/ccp-advisor-researcher.md +104 -0
  7. package/src/agents/ccp-assumptions-analyzer.md +105 -0
  8. package/{gsd/agents/gsd-codebase-mapper.md → src/agents/ccp-codebase-mapper.md} +7 -7
  9. package/{gsd/agents/gsd-debugger.md → src/agents/ccp-debugger.md} +125 -8
  10. package/{gsd/agents/gsd-executor.md → src/agents/ccp-executor.md} +31 -20
  11. package/{gsd/agents/gsd-integration-checker.md → src/agents/ccp-integration-checker.md} +2 -2
  12. package/{gsd/agents/gsd-nyquist-auditor.md → src/agents/ccp-nyquist-auditor.md} +3 -3
  13. package/{gsd/agents/gsd-phase-researcher.md → src/agents/ccp-phase-researcher.md} +127 -13
  14. package/{gsd/agents/gsd-plan-checker.md → src/agents/ccp-plan-checker.md} +57 -21
  15. package/{gsd/agents/gsd-planner.md → src/agents/ccp-planner.md} +61 -23
  16. package/{gsd/agents/gsd-project-researcher.md → src/agents/ccp-project-researcher.md} +33 -6
  17. package/{gsd/agents/gsd-research-synthesizer.md → src/agents/ccp-research-synthesizer.md} +11 -11
  18. package/{gsd/agents/gsd-roadmapper.md → src/agents/ccp-roadmapper.md} +39 -10
  19. package/src/agents/ccp-ui-auditor.md +439 -0
  20. package/src/agents/ccp-ui-checker.md +300 -0
  21. package/src/agents/ccp-ui-researcher.md +357 -0
  22. package/{gsd/agents/gsd-verifier.md → src/agents/ccp-verifier.md} +81 -15
  23. package/src/agents/cpp-build-resolver.md +90 -0
  24. package/src/agents/cpp-reviewer.md +72 -0
  25. package/src/agents/database-reviewer.md +91 -0
  26. package/{ecc → src}/agents/doc-updater.md +1 -1
  27. package/src/agents/docs-lookup.md +68 -0
  28. package/src/agents/flutter-reviewer.md +243 -0
  29. package/src/agents/gan-evaluator.md +209 -0
  30. package/src/agents/gan-generator.md +131 -0
  31. package/src/agents/gan-planner.md +99 -0
  32. package/src/agents/go-build-resolver.md +94 -0
  33. package/src/agents/go-reviewer.md +76 -0
  34. package/src/agents/harness-optimizer.md +35 -0
  35. package/src/agents/java-build-resolver.md +153 -0
  36. package/src/agents/java-reviewer.md +92 -0
  37. package/src/agents/kotlin-build-resolver.md +118 -0
  38. package/src/agents/kotlin-reviewer.md +159 -0
  39. package/src/agents/loop-operator.md +36 -0
  40. package/src/agents/opensource-forker.md +198 -0
  41. package/src/agents/opensource-packager.md +249 -0
  42. package/src/agents/opensource-sanitizer.md +188 -0
  43. package/src/agents/performance-optimizer.md +446 -0
  44. package/src/agents/planner.md +212 -0
  45. package/src/agents/python-reviewer.md +98 -0
  46. package/src/agents/pytorch-build-resolver.md +120 -0
  47. package/src/agents/refactor-cleaner.md +85 -0
  48. package/src/agents/rust-build-resolver.md +148 -0
  49. package/src/agents/rust-reviewer.md +94 -0
  50. package/src/agents/typescript-reviewer.md +112 -0
  51. package/src/available-rules/README.md +80 -0
  52. package/src/available-rules/cpp/coding-style.md +44 -0
  53. package/src/available-rules/cpp/hooks.md +39 -0
  54. package/src/available-rules/cpp/patterns.md +51 -0
  55. package/src/available-rules/cpp/security.md +51 -0
  56. package/src/available-rules/cpp/testing.md +44 -0
  57. package/src/available-rules/csharp/coding-style.md +72 -0
  58. package/src/available-rules/csharp/hooks.md +25 -0
  59. package/src/available-rules/csharp/patterns.md +50 -0
  60. package/src/available-rules/csharp/security.md +58 -0
  61. package/src/available-rules/csharp/testing.md +46 -0
  62. package/src/available-rules/java/coding-style.md +114 -0
  63. package/src/available-rules/java/hooks.md +18 -0
  64. package/src/available-rules/java/patterns.md +146 -0
  65. package/src/available-rules/java/security.md +100 -0
  66. package/src/available-rules/java/testing.md +131 -0
  67. package/src/available-rules/kotlin/hooks.md +17 -0
  68. package/src/available-rules/rust/coding-style.md +151 -0
  69. package/src/available-rules/rust/hooks.md +16 -0
  70. package/src/available-rules/rust/patterns.md +168 -0
  71. package/src/available-rules/rust/security.md +141 -0
  72. package/src/available-rules/rust/testing.md +154 -0
  73. package/src/commands/ccp/add-backlog.md +76 -0
  74. package/{gsd/commands-gsd → src/commands/ccp}/add-phase.md +3 -3
  75. package/{gsd/commands-gsd → src/commands/ccp}/add-tests.md +5 -5
  76. package/{gsd/commands-gsd → src/commands/ccp}/add-todo.md +4 -4
  77. package/src/commands/ccp/aside.md +165 -0
  78. package/{gsd/commands-gsd → src/commands/ccp}/audit-milestone.md +3 -3
  79. package/src/commands/ccp/audit-uat.md +24 -0
  80. package/src/commands/ccp/autonomous.md +41 -0
  81. package/src/commands/ccp/build-fix.md +67 -0
  82. package/{gsd/commands-gsd → src/commands/ccp}/check-todos.md +3 -3
  83. package/{ecc/commands → src/commands/ccp}/checkpoint.md +12 -7
  84. package/{gsd/commands-gsd → src/commands/ccp}/cleanup.md +3 -3
  85. package/src/commands/ccp/code-review.md +45 -0
  86. package/{gsd/commands-gsd → src/commands/ccp}/complete-milestone.md +9 -9
  87. package/src/commands/ccp/context-budget.md +30 -0
  88. package/src/commands/ccp/cpp-build.md +174 -0
  89. package/src/commands/ccp/cpp-review.md +133 -0
  90. package/src/commands/ccp/cpp-test.md +252 -0
  91. package/{gsd/commands-gsd → src/commands/ccp}/debug.md +14 -9
  92. package/src/commands/ccp/discuss-phase.md +64 -0
  93. package/src/commands/ccp/do.md +30 -0
  94. package/src/commands/ccp/docs-update.md +48 -0
  95. package/src/commands/ccp/docs.md +32 -0
  96. package/src/commands/ccp/e2e.md +365 -0
  97. package/src/commands/ccp/eval.md +125 -0
  98. package/{ecc/commands → src/commands/ccp}/evolve.md +5 -5
  99. package/src/commands/ccp/execute-phase.md +59 -0
  100. package/src/commands/ccp/fast.md +30 -0
  101. package/src/commands/ccp/forensics.md +56 -0
  102. package/src/commands/ccp/go-build.md +184 -0
  103. package/src/commands/ccp/go-review.md +149 -0
  104. package/src/commands/ccp/go-test.md +269 -0
  105. package/src/commands/ccp/gradle-build.md +71 -0
  106. package/src/commands/ccp/harness-audit.md +76 -0
  107. package/{gsd/commands-gsd → src/commands/ccp}/health.md +3 -3
  108. package/{gsd/commands-gsd → src/commands/ccp}/help.md +5 -5
  109. package/{gsd/commands-gsd → src/commands/ccp}/insert-phase.md +3 -3
  110. package/src/commands/ccp/kotlin-build.md +175 -0
  111. package/src/commands/ccp/kotlin-review.md +141 -0
  112. package/src/commands/ccp/kotlin-test.md +313 -0
  113. package/{ecc/commands → src/commands/ccp}/learn.md +7 -2
  114. package/{gsd/commands-gsd → src/commands/ccp}/list-phase-assumptions.md +2 -2
  115. package/src/commands/ccp/manager.md +39 -0
  116. package/{gsd/commands-gsd → src/commands/ccp}/map-codebase.md +7 -7
  117. package/src/commands/ccp/milestone-summary.md +51 -0
  118. package/{ecc/commands → src/commands/ccp}/model-route.md +6 -1
  119. package/{gsd/commands-gsd → src/commands/ccp}/new-milestone.md +8 -8
  120. package/{gsd/commands-gsd → src/commands/ccp}/new-project.md +8 -8
  121. package/src/commands/ccp/next.md +24 -0
  122. package/src/commands/ccp/note.md +34 -0
  123. package/src/commands/ccp/orchestrate.md +232 -0
  124. package/{gsd/commands-gsd → src/commands/ccp}/pause-work.md +3 -3
  125. package/{gsd/commands-gsd → src/commands/ccp}/plan-milestone-gaps.md +5 -5
  126. package/{gsd/commands-gsd → src/commands/ccp}/plan-phase.md +9 -7
  127. package/src/commands/ccp/plan.md +115 -0
  128. package/src/commands/ccp/plant-seed.md +28 -0
  129. package/src/commands/ccp/pr-branch.md +25 -0
  130. package/src/commands/ccp/profile-user.md +46 -0
  131. package/{gsd/commands-gsd → src/commands/ccp}/progress.md +3 -3
  132. package/src/commands/ccp/prompt-optimize.md +39 -0
  133. package/src/commands/ccp/prune.md +25 -0
  134. package/src/commands/ccp/python-review.md +298 -0
  135. package/{ecc/commands → src/commands/ccp}/quality-gate.md +7 -2
  136. package/{gsd/commands-gsd → src/commands/ccp}/quick.md +10 -8
  137. package/src/commands/ccp/refactor-clean.md +85 -0
  138. package/{gsd/commands-gsd → src/commands/ccp}/remove-phase.md +3 -3
  139. package/{gsd/commands-gsd → src/commands/ccp}/research-phase.md +17 -12
  140. package/{ecc/commands → src/commands/ccp}/resume-session.md +9 -8
  141. package/{gsd/commands-gsd → src/commands/ccp}/resume-work.md +3 -3
  142. package/src/commands/ccp/review-backlog.md +61 -0
  143. package/src/commands/ccp/review.md +37 -0
  144. package/src/commands/ccp/rules-distill.md +12 -0
  145. package/src/commands/ccp/rust-build.md +188 -0
  146. package/src/commands/ccp/rust-review.md +143 -0
  147. package/src/commands/ccp/rust-test.md +309 -0
  148. package/{ecc/commands → src/commands/ccp}/save-session.md +2 -1
  149. package/src/commands/ccp/secure-phase.md +35 -0
  150. package/src/commands/ccp/session-report.md +19 -0
  151. package/{ecc/commands → src/commands/ccp}/sessions.md +39 -34
  152. package/src/commands/ccp/set-profile.md +12 -0
  153. package/{gsd/commands-gsd → src/commands/ccp}/settings.md +5 -5
  154. package/src/commands/ccp/setup-pm.md +81 -0
  155. package/{kit/commands → src/commands/ccp}/setup-refresh.md +4 -3
  156. package/{kit/commands → src/commands/ccp}/setup.md +67 -40
  157. package/src/commands/ccp/ship.md +23 -0
  158. package/src/commands/ccp/skill-create.md +172 -0
  159. package/src/commands/ccp/skill-health.md +51 -0
  160. package/src/commands/ccp/stats.md +18 -0
  161. package/src/commands/ccp/tdd.md +329 -0
  162. package/src/commands/ccp/test-coverage.md +74 -0
  163. package/src/commands/ccp/thread.md +127 -0
  164. package/{kit/commands → src/commands/ccp}/tool-guide.md +2 -1
  165. package/src/commands/ccp/ui-phase.md +34 -0
  166. package/src/commands/ccp/ui-review.md +32 -0
  167. package/src/commands/ccp/update-codemaps.md +77 -0
  168. package/src/commands/ccp/update-docs.md +89 -0
  169. package/{gsd/commands-gsd → src/commands/ccp}/update.md +5 -5
  170. package/{gsd/commands-gsd → src/commands/ccp}/validate-phase.md +3 -3
  171. package/{gsd/commands-gsd → src/commands/ccp}/verify-work.md +5 -5
  172. package/{ecc/commands → src/commands/ccp}/verify.md +5 -0
  173. package/src/commands/ccp/workstreams.md +68 -0
  174. package/{ecc → src}/examples/CLAUDE.md +4 -4
  175. package/{ecc → src}/examples/django-api-CLAUDE.md +5 -5
  176. package/{ecc → src}/examples/go-microservice-CLAUDE.md +6 -6
  177. package/{ecc → src}/examples/rust-api-CLAUDE.md +4 -4
  178. package/{ecc → src}/examples/saas-nextjs-CLAUDE.md +8 -8
  179. package/{gsd/hooks/gsd-context-monitor.js → src/hooks/ccp-context-monitor.js} +3 -3
  180. package/src/hooks/ccp-prompt-guard.js +96 -0
  181. package/{gsd/hooks/gsd-statusline.js → src/hooks/ccp-statusline.js} +7 -7
  182. package/src/hooks/ccp-workflow-guard.js +94 -0
  183. package/src/hooks/config-protection.js +141 -0
  184. package/{kit → src}/hooks/kit-check-update.js +7 -4
  185. package/src/hooks/mcp-health-check.js +620 -0
  186. package/{ecc/scripts → src}/hooks/run-with-flags-shell.sh +1 -1
  187. package/{ecc/scripts → src}/hooks/run-with-flags.js +74 -13
  188. package/src/hooks/session-end-marker.js +29 -0
  189. package/{ecc/scripts → src}/hooks/session-end.js +83 -40
  190. package/{ecc/scripts → src}/hooks/session-start.js +76 -10
  191. package/{ecc/scripts → src}/lib/hook-flags.js +8 -4
  192. package/{ecc/scripts → src}/lib/project-detect.js +2 -1
  193. package/{ecc/scripts → src}/lib/session-manager.d.ts +5 -1
  194. package/{ecc/scripts → src}/lib/session-manager.js +202 -92
  195. package/{ecc/scripts → src}/lib/utils.d.ts +23 -1
  196. package/{ecc/scripts → src}/lib/utils.js +91 -3
  197. package/{gsd/get-shit-done/bin/gsd-tools.cjs → src/pilot/bin/ccp-tools.cjs} +257 -86
  198. package/{gsd/get-shit-done → src/pilot}/bin/lib/commands.cjs +1 -1
  199. package/src/pilot/bin/lib/config.cjs +444 -0
  200. package/src/pilot/bin/lib/core.cjs +1190 -0
  201. package/src/pilot/bin/lib/init.cjs +1281 -0
  202. package/src/pilot/bin/lib/model-profiles.cjs +67 -0
  203. package/{gsd/get-shit-done → src/pilot}/bin/lib/phase.cjs +2 -2
  204. package/src/pilot/bin/lib/security.cjs +382 -0
  205. package/{gsd/get-shit-done → src/pilot}/bin/lib/state.cjs +1 -1
  206. package/src/pilot/bin/lib/uat.cjs +282 -0
  207. package/{gsd/get-shit-done → src/pilot}/bin/lib/verify.cjs +10 -10
  208. package/{gsd/get-shit-done → src/pilot}/references/continuation-format.md +16 -16
  209. package/{gsd/get-shit-done → src/pilot}/references/decimal-phase-calculation.md +5 -5
  210. package/{gsd/get-shit-done → src/pilot}/references/git-integration.md +5 -5
  211. package/{gsd/get-shit-done → src/pilot}/references/git-planning-commit.md +4 -4
  212. package/src/pilot/references/mcp-servers.json +153 -0
  213. package/{gsd/get-shit-done → src/pilot}/references/model-profile-resolution.md +2 -2
  214. package/{gsd/get-shit-done → src/pilot}/references/model-profiles.md +20 -20
  215. package/{gsd/get-shit-done → src/pilot}/references/phase-argument-parsing.md +4 -4
  216. package/{gsd/get-shit-done → src/pilot}/references/planning-config.md +15 -15
  217. package/{gsd/get-shit-done → src/pilot}/references/ui-brand.md +5 -5
  218. package/{gsd/get-shit-done → src/pilot}/references/verification-patterns.md +1 -1
  219. package/{gsd/get-shit-done → src/pilot}/templates/DEBUG.md +1 -1
  220. package/{gsd/get-shit-done → src/pilot}/templates/UAT.md +3 -3
  221. package/src/pilot/templates/UI-SPEC.md +100 -0
  222. package/{gsd/get-shit-done → src/pilot}/templates/VALIDATION.md +1 -1
  223. package/src/pilot/templates/claude-md.md +122 -0
  224. package/{gsd/get-shit-done → src/pilot}/templates/codebase/architecture.md +2 -2
  225. package/{gsd/get-shit-done → src/pilot}/templates/codebase/structure.md +13 -13
  226. package/{gsd/get-shit-done → src/pilot}/templates/context.md +4 -4
  227. package/src/pilot/templates/copilot-instructions.md +7 -0
  228. package/{gsd/get-shit-done → src/pilot}/templates/debug-subagent-prompt.md +4 -4
  229. package/src/pilot/templates/dev-preferences.md +21 -0
  230. package/{gsd/get-shit-done → src/pilot}/templates/discovery.md +2 -2
  231. package/src/pilot/templates/discussion-log.md +63 -0
  232. package/{gsd/get-shit-done → src/pilot}/templates/phase-prompt.md +12 -12
  233. package/{gsd/get-shit-done → src/pilot}/templates/planner-subagent-prompt.md +7 -7
  234. package/{gsd/get-shit-done → src/pilot}/templates/project.md +1 -1
  235. package/{gsd/get-shit-done → src/pilot}/templates/research.md +2 -2
  236. package/{gsd/get-shit-done → src/pilot}/templates/state.md +2 -2
  237. package/{gsd/get-shit-done → src/pilot}/templates/summary-complex.md +1 -1
  238. package/{gsd/get-shit-done → src/pilot}/workflows/add-phase.md +11 -11
  239. package/{gsd/get-shit-done → src/pilot}/workflows/add-tests.md +15 -15
  240. package/{gsd/get-shit-done → src/pilot}/workflows/add-todo.md +7 -7
  241. package/{gsd/get-shit-done → src/pilot}/workflows/audit-milestone.md +24 -16
  242. package/src/pilot/workflows/audit-uat.md +109 -0
  243. package/src/pilot/workflows/autonomous.md +891 -0
  244. package/{gsd/get-shit-done → src/pilot}/workflows/check-todos.md +10 -10
  245. package/{gsd/get-shit-done → src/pilot}/workflows/cleanup.md +3 -3
  246. package/{gsd/get-shit-done → src/pilot}/workflows/complete-milestone.md +19 -16
  247. package/{gsd/get-shit-done → src/pilot}/workflows/diagnose-issues.md +9 -4
  248. package/{gsd/get-shit-done → src/pilot}/workflows/discovery-phase.md +8 -8
  249. package/src/pilot/workflows/discuss-phase-assumptions.md +653 -0
  250. package/{gsd/get-shit-done → src/pilot}/workflows/discuss-phase.md +407 -49
  251. package/src/pilot/workflows/do.md +104 -0
  252. package/src/pilot/workflows/docs-update.md +1165 -0
  253. package/src/pilot/workflows/execute-phase.md +821 -0
  254. package/{gsd/get-shit-done → src/pilot}/workflows/execute-plan.md +79 -28
  255. package/src/pilot/workflows/fast.md +105 -0
  256. package/src/pilot/workflows/forensics.md +265 -0
  257. package/{gsd/get-shit-done → src/pilot}/workflows/health.md +34 -11
  258. package/src/pilot/workflows/help.md +767 -0
  259. package/{gsd/get-shit-done → src/pilot}/workflows/insert-phase.md +10 -10
  260. package/{gsd/get-shit-done → src/pilot}/workflows/list-phase-assumptions.md +4 -4
  261. package/src/pilot/workflows/manager.md +362 -0
  262. package/{gsd/get-shit-done → src/pilot}/workflows/map-codebase.md +27 -17
  263. package/src/pilot/workflows/milestone-summary.md +223 -0
  264. package/{gsd/get-shit-done → src/pilot}/workflows/new-milestone.md +135 -33
  265. package/{gsd/get-shit-done → src/pilot}/workflows/new-project.md +152 -79
  266. package/src/pilot/workflows/next.md +97 -0
  267. package/src/pilot/workflows/node-repair.md +92 -0
  268. package/src/pilot/workflows/note.md +156 -0
  269. package/src/pilot/workflows/pause-work.md +177 -0
  270. package/{gsd/get-shit-done → src/pilot}/workflows/plan-milestone-gaps.md +10 -11
  271. package/src/pilot/workflows/plan-phase.md +859 -0
  272. package/src/pilot/workflows/plant-seed.md +169 -0
  273. package/src/pilot/workflows/pr-branch.md +129 -0
  274. package/src/pilot/workflows/profile-user.md +452 -0
  275. package/{gsd/get-shit-done → src/pilot}/workflows/progress.md +95 -34
  276. package/{gsd/get-shit-done → src/pilot}/workflows/quick.md +33 -21
  277. package/{gsd/get-shit-done → src/pilot}/workflows/remove-phase.md +14 -14
  278. package/{gsd/get-shit-done → src/pilot}/workflows/research-phase.md +18 -10
  279. package/{gsd/get-shit-done → src/pilot}/workflows/resume-project.md +37 -18
  280. package/src/pilot/workflows/review.md +244 -0
  281. package/src/pilot/workflows/secure-phase.md +164 -0
  282. package/src/pilot/workflows/session-report.md +146 -0
  283. package/{gsd/get-shit-done → src/pilot}/workflows/set-profile.md +7 -7
  284. package/{gsd/get-shit-done → src/pilot}/workflows/settings.md +75 -22
  285. package/src/pilot/workflows/ship.md +228 -0
  286. package/src/pilot/workflows/stats.md +60 -0
  287. package/{gsd/get-shit-done → src/pilot}/workflows/transition.md +57 -17
  288. package/src/pilot/workflows/ui-phase.md +302 -0
  289. package/src/pilot/workflows/ui-review.md +165 -0
  290. package/{gsd/get-shit-done → src/pilot}/workflows/update.md +88 -58
  291. package/{gsd/get-shit-done → src/pilot}/workflows/validate-phase.md +24 -17
  292. package/{gsd/get-shit-done → src/pilot}/workflows/verify-phase.md +26 -15
  293. package/{gsd/get-shit-done → src/pilot}/workflows/verify-work.md +89 -37
  294. package/{ecc → src}/rules/common/agents.md +1 -0
  295. package/src/rules/common/code-review.md +124 -0
  296. package/{ecc → src}/rules/common/coding-style.md +21 -0
  297. package/src/rules/zh/README.md +108 -0
  298. package/src/rules/zh/agents.md +50 -0
  299. package/src/rules/zh/code-review.md +124 -0
  300. package/src/rules/zh/coding-style.md +48 -0
  301. package/src/rules/zh/development-workflow.md +44 -0
  302. package/src/rules/zh/git-workflow.md +24 -0
  303. package/src/rules/zh/hooks.md +30 -0
  304. package/src/rules/zh/patterns.md +31 -0
  305. package/src/rules/zh/performance.md +55 -0
  306. package/src/rules/zh/security.md +29 -0
  307. package/src/rules/zh/testing.md +29 -0
  308. package/src/skills/agentic-engineering/SKILL.md +63 -0
  309. package/src/skills/ai-first-engineering/SKILL.md +51 -0
  310. package/src/skills/ai-regression-testing/SKILL.md +385 -0
  311. package/src/skills/api-design/SKILL.md +523 -0
  312. package/src/skills/architecture-decision-records/SKILL.md +179 -0
  313. package/src/skills/autonomous-agent-harness/SKILL.md +267 -0
  314. package/src/skills/autonomous-loops/SKILL.md +610 -0
  315. package/src/skills/backend-patterns/SKILL.md +598 -0
  316. package/src/skills/benchmark/SKILL.md +87 -0
  317. package/src/skills/blueprint/SKILL.md +90 -0
  318. package/src/skills/browser-qa/SKILL.md +81 -0
  319. package/src/skills/bun-runtime/SKILL.md +84 -0
  320. package/src/skills/claude-api/SKILL.md +337 -0
  321. package/src/skills/codebase-onboarding/SKILL.md +233 -0
  322. package/src/skills/coding-standards/SKILL.md +530 -0
  323. package/src/skills/content-hash-cache-pattern/SKILL.md +161 -0
  324. package/src/skills/context-budget/SKILL.md +135 -0
  325. package/{ecc → src}/skills/continuous-learning-v2/SKILL.md +6 -6
  326. package/{ecc → src}/skills/continuous-learning-v2/agents/observer-loop.sh +1 -1
  327. package/{ecc → src}/skills/continuous-learning-v2/agents/observer.md +1 -1
  328. package/src/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  329. package/src/skills/cpp-coding-standards/SKILL.md +723 -0
  330. package/src/skills/cpp-testing/SKILL.md +324 -0
  331. package/src/skills/database-migrations/SKILL.md +429 -0
  332. package/src/skills/deep-research/SKILL.md +155 -0
  333. package/src/skills/deployment-patterns/SKILL.md +427 -0
  334. package/src/skills/design-system/SKILL.md +82 -0
  335. package/src/skills/django-patterns/SKILL.md +734 -0
  336. package/src/skills/django-security/SKILL.md +593 -0
  337. package/src/skills/django-tdd/SKILL.md +729 -0
  338. package/src/skills/django-verification/SKILL.md +469 -0
  339. package/src/skills/docker-patterns/SKILL.md +364 -0
  340. package/src/skills/documentation-lookup/SKILL.md +90 -0
  341. package/src/skills/e2e-testing/SKILL.md +326 -0
  342. package/src/skills/eval-harness/SKILL.md +270 -0
  343. package/src/skills/exa-search/SKILL.md +103 -0
  344. package/src/skills/flutter-dart-code-review/SKILL.md +435 -0
  345. package/src/skills/frontend-patterns/SKILL.md +642 -0
  346. package/src/skills/gan-style-harness/SKILL.md +278 -0
  347. package/src/skills/git-workflow/SKILL.md +715 -0
  348. package/src/skills/golang-patterns/SKILL.md +674 -0
  349. package/src/skills/golang-testing/SKILL.md +720 -0
  350. package/src/skills/hexagonal-architecture/SKILL.md +276 -0
  351. package/src/skills/iterative-retrieval/SKILL.md +211 -0
  352. package/src/skills/java-coding-standards/SKILL.md +147 -0
  353. package/src/skills/jpa-patterns/SKILL.md +151 -0
  354. package/src/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  355. package/src/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  356. package/src/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  357. package/src/skills/kotlin-patterns/SKILL.md +711 -0
  358. package/src/skills/kotlin-testing/SKILL.md +824 -0
  359. package/src/skills/laravel-patterns/SKILL.md +415 -0
  360. package/src/skills/laravel-plugin-discovery/SKILL.md +229 -0
  361. package/src/skills/laravel-security/SKILL.md +285 -0
  362. package/src/skills/laravel-tdd/SKILL.md +283 -0
  363. package/src/skills/laravel-verification/SKILL.md +179 -0
  364. package/src/skills/mcp-server-patterns/SKILL.md +67 -0
  365. package/src/skills/nextjs-turbopack/SKILL.md +44 -0
  366. package/src/skills/nuxt4-patterns/SKILL.md +100 -0
  367. package/src/skills/opensource-pipeline/SKILL.md +255 -0
  368. package/src/skills/perl-patterns/SKILL.md +504 -0
  369. package/src/skills/perl-security/SKILL.md +503 -0
  370. package/src/skills/perl-testing/SKILL.md +475 -0
  371. package/src/skills/postgres-patterns/SKILL.md +147 -0
  372. package/src/skills/project-flow-ops/SKILL.md +111 -0
  373. package/src/skills/project-guidelines-example/SKILL.md +349 -0
  374. package/src/skills/prompt-optimizer/SKILL.md +397 -0
  375. package/src/skills/python-patterns/SKILL.md +750 -0
  376. package/src/skills/python-testing/SKILL.md +816 -0
  377. package/src/skills/pytorch-patterns/SKILL.md +396 -0
  378. package/src/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  379. package/src/skills/repo-scan/SKILL.md +78 -0
  380. package/src/skills/rules-distill/SKILL.md +264 -0
  381. package/src/skills/rules-distill/scripts/scan-rules.sh +58 -0
  382. package/src/skills/rules-distill/scripts/scan-skills.sh +129 -0
  383. package/src/skills/rust-patterns/SKILL.md +499 -0
  384. package/src/skills/rust-testing/SKILL.md +500 -0
  385. package/src/skills/safety-guard/SKILL.md +69 -0
  386. package/src/skills/search-first/SKILL.md +161 -0
  387. package/src/skills/security-review/SKILL.md +495 -0
  388. package/src/skills/security-review/cloud-infrastructure-security.md +361 -0
  389. package/src/skills/security-scan/SKILL.md +165 -0
  390. package/src/skills/springboot-patterns/SKILL.md +314 -0
  391. package/src/skills/springboot-security/SKILL.md +272 -0
  392. package/src/skills/springboot-tdd/SKILL.md +158 -0
  393. package/src/skills/springboot-verification/SKILL.md +231 -0
  394. package/src/skills/swift-concurrency-6-2/SKILL.md +216 -0
  395. package/src/skills/tdd-workflow/SKILL.md +410 -0
  396. package/src/skills/token-budget-advisor/SKILL.md +133 -0
  397. package/{ecc/skills/verification-loop-SKILL.md → src/skills/verification-loop/SKILL.md} +1 -1
  398. package/src/skills/workspace-surface-audit/SKILL.md +125 -0
  399. package/ecc/scripts/hooks/session-end-marker.js +0 -15
  400. package/gsd/LICENSE +0 -21
  401. package/gsd/commands-gsd/discuss-phase.md +0 -90
  402. package/gsd/commands-gsd/execute-phase.md +0 -41
  403. package/gsd/commands-gsd/join-discord.md +0 -18
  404. package/gsd/commands-gsd/reapply-patches.md +0 -123
  405. package/gsd/commands-gsd/set-profile.md +0 -34
  406. package/gsd/get-shit-done/bin/lib/config.cjs +0 -169
  407. package/gsd/get-shit-done/bin/lib/core.cjs +0 -492
  408. package/gsd/get-shit-done/bin/lib/init.cjs +0 -710
  409. package/gsd/get-shit-done/workflows/execute-phase.md +0 -459
  410. package/gsd/get-shit-done/workflows/help.md +0 -489
  411. package/gsd/get-shit-done/workflows/pause-work.md +0 -122
  412. package/gsd/get-shit-done/workflows/plan-phase.md +0 -560
  413. package/gsd/hooks/gsd-check-update.js +0 -81
  414. package/kit/CLAUDE.md +0 -43
  415. package/kit/commands/kit/update.md +0 -46
  416. package/kit/mcp.json +0 -10
  417. package/kit/rules/code-style.md +0 -24
  418. /package/{ecc → src}/agents/architect.md +0 -0
  419. /package/{ecc → src}/agents/code-reviewer.md +0 -0
  420. /package/{ecc → src}/agents/e2e-runner.md +0 -0
  421. /package/{ecc → src}/agents/security-reviewer.md +0 -0
  422. /package/{ecc → src}/agents/tdd-guide.md +0 -0
  423. /package/{ecc/rules → src/available-rules}/golang/coding-style.md +0 -0
  424. /package/{ecc/rules → src/available-rules}/golang/hooks.md +0 -0
  425. /package/{ecc/rules → src/available-rules}/golang/patterns.md +0 -0
  426. /package/{ecc/rules → src/available-rules}/golang/security.md +0 -0
  427. /package/{ecc/rules → src/available-rules}/golang/testing.md +0 -0
  428. /package/{ecc/rules → src/available-rules}/kotlin/coding-style.md +0 -0
  429. /package/{ecc/rules → src/available-rules}/kotlin/patterns.md +0 -0
  430. /package/{ecc/rules → src/available-rules}/kotlin/security.md +0 -0
  431. /package/{ecc/rules → src/available-rules}/kotlin/testing.md +0 -0
  432. /package/{ecc/rules → src/available-rules}/perl/coding-style.md +0 -0
  433. /package/{ecc/rules → src/available-rules}/perl/hooks.md +0 -0
  434. /package/{ecc/rules → src/available-rules}/perl/patterns.md +0 -0
  435. /package/{ecc/rules → src/available-rules}/perl/security.md +0 -0
  436. /package/{ecc/rules → src/available-rules}/perl/testing.md +0 -0
  437. /package/{ecc/rules → src/available-rules}/php/coding-style.md +0 -0
  438. /package/{ecc/rules → src/available-rules}/php/hooks.md +0 -0
  439. /package/{ecc/rules → src/available-rules}/php/patterns.md +0 -0
  440. /package/{ecc/rules → src/available-rules}/php/security.md +0 -0
  441. /package/{ecc/rules → src/available-rules}/php/testing.md +0 -0
  442. /package/{ecc/rules → src/available-rules}/python/coding-style.md +0 -0
  443. /package/{ecc/rules → src/available-rules}/python/hooks.md +0 -0
  444. /package/{ecc/rules → src/available-rules}/python/patterns.md +0 -0
  445. /package/{ecc/rules → src/available-rules}/python/security.md +0 -0
  446. /package/{ecc/rules → src/available-rules}/python/testing.md +0 -0
  447. /package/{ecc/rules → src/available-rules}/swift/coding-style.md +0 -0
  448. /package/{ecc/rules → src/available-rules}/swift/hooks.md +0 -0
  449. /package/{ecc/rules → src/available-rules}/swift/patterns.md +0 -0
  450. /package/{ecc/rules → src/available-rules}/swift/security.md +0 -0
  451. /package/{ecc/rules → src/available-rules}/swift/testing.md +0 -0
  452. /package/{ecc/rules → src/available-rules}/typescript/coding-style.md +0 -0
  453. /package/{ecc/rules → src/available-rules}/typescript/hooks.md +0 -0
  454. /package/{ecc/rules → src/available-rules}/typescript/patterns.md +0 -0
  455. /package/{ecc/rules → src/available-rules}/typescript/security.md +0 -0
  456. /package/{ecc/rules → src/available-rules}/typescript/testing.md +0 -0
  457. /package/{ecc → src}/contexts/dev.md +0 -0
  458. /package/{ecc → src}/contexts/research.md +0 -0
  459. /package/{ecc → src}/contexts/review.md +0 -0
  460. /package/{ecc → src}/examples/user-CLAUDE.md +0 -0
  461. /package/{ecc/scripts → src}/hooks/check-hook-enabled.js +0 -0
  462. /package/{ecc/scripts → src}/hooks/evaluate-session.js +0 -0
  463. /package/{ecc/scripts → src}/hooks/pre-compact.js +0 -0
  464. /package/{ecc/scripts → src}/hooks/suggest-compact.js +0 -0
  465. /package/{ecc/scripts → src}/lib/package-manager.d.ts +0 -0
  466. /package/{ecc/scripts → src}/lib/package-manager.js +0 -0
  467. /package/{ecc/scripts → src}/lib/resolve-formatter.js +0 -0
  468. /package/{ecc/scripts → src}/lib/session-aliases.d.ts +0 -0
  469. /package/{ecc/scripts → src}/lib/session-aliases.js +0 -0
  470. /package/{ecc/scripts → src}/lib/shell-split.js +0 -0
  471. /package/{gsd/get-shit-done → src/pilot}/bin/lib/frontmatter.cjs +0 -0
  472. /package/{gsd/get-shit-done → src/pilot}/bin/lib/milestone.cjs +0 -0
  473. /package/{gsd/get-shit-done → src/pilot}/bin/lib/roadmap.cjs +0 -0
  474. /package/{gsd/get-shit-done → src/pilot}/bin/lib/template.cjs +0 -0
  475. /package/{gsd/get-shit-done → src/pilot}/references/checkpoints.md +0 -0
  476. /package/{gsd/get-shit-done → src/pilot}/references/questioning.md +0 -0
  477. /package/{gsd/get-shit-done → src/pilot}/references/tdd.md +0 -0
  478. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/concerns.md +0 -0
  479. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/conventions.md +0 -0
  480. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/integrations.md +0 -0
  481. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/stack.md +0 -0
  482. /package/{gsd/get-shit-done → src/pilot}/templates/codebase/testing.md +0 -0
  483. /package/{gsd/get-shit-done → src/pilot}/templates/config.json +0 -0
  484. /package/{gsd/get-shit-done → src/pilot}/templates/continue-here.md +0 -0
  485. /package/{gsd/get-shit-done → src/pilot}/templates/milestone-archive.md +0 -0
  486. /package/{gsd/get-shit-done → src/pilot}/templates/milestone.md +0 -0
  487. /package/{gsd/get-shit-done → src/pilot}/templates/requirements.md +0 -0
  488. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/ARCHITECTURE.md +0 -0
  489. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/FEATURES.md +0 -0
  490. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/PITFALLS.md +0 -0
  491. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/STACK.md +0 -0
  492. /package/{gsd/get-shit-done → src/pilot}/templates/research-project/SUMMARY.md +0 -0
  493. /package/{gsd/get-shit-done → src/pilot}/templates/retrospective.md +0 -0
  494. /package/{gsd/get-shit-done → src/pilot}/templates/roadmap.md +0 -0
  495. /package/{gsd/get-shit-done → src/pilot}/templates/summary-minimal.md +0 -0
  496. /package/{gsd/get-shit-done → src/pilot}/templates/summary-standard.md +0 -0
  497. /package/{gsd/get-shit-done → src/pilot}/templates/summary.md +0 -0
  498. /package/{gsd/get-shit-done → src/pilot}/templates/user-setup.md +0 -0
  499. /package/{gsd/get-shit-done → src/pilot}/templates/verification-report.md +0 -0
  500. /package/{ecc → src}/rules/common/development-workflow.md +0 -0
  501. /package/{ecc → src}/rules/common/git-workflow.md +0 -0
  502. /package/{ecc → src}/rules/common/hooks.md +0 -0
  503. /package/{ecc → src}/rules/common/patterns.md +0 -0
  504. /package/{ecc → src}/rules/common/performance.md +0 -0
  505. /package/{ecc → src}/rules/common/security.md +0 -0
  506. /package/{ecc → src}/rules/common/testing.md +0 -0
  507. /package/{ecc → src}/skills/continuous-learning-v2/agents/start-observer.sh +0 -0
  508. /package/{ecc → src}/skills/continuous-learning-v2/config.json +0 -0
  509. /package/{ecc → src}/skills/continuous-learning-v2/hooks/observe.sh +0 -0
  510. /package/{ecc → src}/skills/continuous-learning-v2/scripts/detect-project.sh +0 -0
  511. /package/{ecc → src}/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -0
  512. /package/{ecc → src}/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -0
  513. /package/{ecc → src}/skills/strategic-compact/SKILL.md +0 -0
  514. /package/{ecc → src}/skills/strategic-compact/suggest-compact.sh +0 -0
@@ -0,0 +1,92 @@
1
+ <purpose>
2
+ Autonomous repair operator for failed task verification. Invoked by execute-plan when a task fails its done-criteria. Proposes and attempts structured fixes before escalating to the user.
3
+ </purpose>
4
+
5
+ <inputs>
6
+ - FAILED_TASK: Task number, name, and done-criteria from the plan
7
+ - ERROR: What verification produced — actual result vs expected
8
+ - PLAN_CONTEXT: Adjacent tasks and phase goal (for constraint awareness)
9
+ - REPAIR_BUDGET: Max repair attempts remaining (default: 2)
10
+ </inputs>
11
+
12
+ <repair_directive>
13
+ Analyze the failure and choose exactly one repair strategy:
14
+
15
+ **RETRY** — The approach was right but execution failed. Try again with a concrete adjustment.
16
+ - Use when: command error, missing dependency, wrong path, env issue, transient failure
17
+ - Output: `RETRY: [specific adjustment to make before retrying]`
18
+
19
+ **DECOMPOSE** — The task is too coarse. Break it into smaller verifiable sub-steps.
20
+ - Use when: done-criteria covers multiple concerns, implementation gaps are structural
21
+ - Output: `DECOMPOSE: [sub-task 1] | [sub-task 2] | ...` (max 3 sub-tasks)
22
+ - Sub-tasks must each have a single verifiable outcome
23
+
24
+ **PRUNE** — The task is infeasible given current constraints. Skip with justification.
25
+ - Use when: prerequisite missing and not fixable here, out of scope, contradicts an earlier decision
26
+ - Output: `PRUNE: [one-sentence justification]`
27
+
28
+ **ESCALATE** — Repair budget exhausted, or this is an architectural decision (Rule 4).
29
+ - Use when: RETRY failed more than once with different approaches, or fix requires structural change
30
+ - Output: `ESCALATE: [what was tried] | [what decision is needed]`
31
+ </repair_directive>
32
+
33
+ <process>
34
+
35
+ <step name="diagnose">
36
+ Read the error and done-criteria carefully. Ask:
37
+ 1. Is this a transient/environmental issue? → RETRY
38
+ 2. Is the task verifiably too broad? → DECOMPOSE
39
+ 3. Is a prerequisite genuinely missing and unfixable in scope? → PRUNE
40
+ 4. Has RETRY already been attempted with this task? Check REPAIR_BUDGET. If 0 → ESCALATE
41
+ </step>
42
+
43
+ <step name="execute_retry">
44
+ If RETRY:
45
+ 1. Apply the specific adjustment stated in the directive
46
+ 2. Re-run the task implementation
47
+ 3. Re-run verification
48
+ 4. If passes → continue normally, log `[Node Repair - RETRY] Task [X]: [adjustment made]`
49
+ 5. If fails again → decrement REPAIR_BUDGET, re-invoke node-repair with updated context
50
+ </step>
51
+
52
+ <step name="execute_decompose">
53
+ If DECOMPOSE:
54
+ 1. Replace the failed task inline with the sub-tasks (do not modify PLAN.md on disk)
55
+ 2. Execute sub-tasks sequentially, each with its own verification
56
+ 3. If all sub-tasks pass → treat original task as succeeded, log `[Node Repair - DECOMPOSE] Task [X] → [N] sub-tasks`
57
+ 4. If a sub-task fails → re-invoke node-repair for that sub-task (REPAIR_BUDGET applies per sub-task)
58
+ </step>
59
+
60
+ <step name="execute_prune">
61
+ If PRUNE:
62
+ 1. Mark task as skipped with justification
63
+ 2. Log to SUMMARY "Issues Encountered": `[Node Repair - PRUNE] Task [X]: [justification]`
64
+ 3. Continue to next task
65
+ </step>
66
+
67
+ <step name="execute_escalate">
68
+ If ESCALATE:
69
+ 1. Surface to user via verification_failure_gate with full repair history
70
+ 2. Present: what was tried (each RETRY/DECOMPOSE attempt), what the blocker is, options available
71
+ 3. Wait for user direction before continuing
72
+ </step>
73
+
74
+ </process>
75
+
76
+ <logging>
77
+ All repair actions must appear in SUMMARY.md under "## Deviations from Plan":
78
+
79
+ | Type | Format |
80
+ |------|--------|
81
+ | RETRY success | `[Node Repair - RETRY] Task X: [adjustment] — resolved` |
82
+ | RETRY fail → ESCALATE | `[Node Repair - RETRY] Task X: [N] attempts exhausted — escalated to user` |
83
+ | DECOMPOSE | `[Node Repair - DECOMPOSE] Task X split into [N] sub-tasks — all passed` |
84
+ | PRUNE | `[Node Repair - PRUNE] Task X skipped: [justification]` |
85
+ </logging>
86
+
87
+ <constraints>
88
+ - REPAIR_BUDGET defaults to 2 per task. Configurable via config.json `workflow.node_repair_budget`.
89
+ - Never modify PLAN.md on disk — decomposed sub-tasks are in-memory only.
90
+ - DECOMPOSE sub-tasks must be more specific than the original, not synonymous rewrites.
91
+ - If config.json `workflow.node_repair` is `false`, skip directly to verification_failure_gate (user retains original behavior).
92
+ </constraints>
@@ -0,0 +1,156 @@
1
+ <purpose>
2
+ Zero-friction idea capture. One Write call, one confirmation line. No questions, no prompts.
3
+ Runs inline — no Task, no AskUserQuestion, no Bash.
4
+ </purpose>
5
+
6
+ <required_reading>
7
+ Read all files referenced by the invoking prompt's execution_context before starting.
8
+ </required_reading>
9
+
10
+ <process>
11
+
12
+ <step name="storage_format">
13
+ **Note storage format.**
14
+
15
+ Notes are stored as individual markdown files:
16
+
17
+ - **Project scope**: `.planning/notes/{YYYY-MM-DD}-{slug}.md` — used when `.planning/` exists in cwd
18
+ - **Global scope**: `~/.claude/notes/{YYYY-MM-DD}-{slug}.md` — fallback when no `.planning/`, or when `--global` flag is present
19
+
20
+ Each note file:
21
+
22
+ ```markdown
23
+ ---
24
+ date: "YYYY-MM-DD HH:mm"
25
+ promoted: false
26
+ ---
27
+
28
+ {note text verbatim}
29
+ ```
30
+
31
+ **`--global` flag**: Strip `--global` from anywhere in `$ARGUMENTS` before parsing. When present, force global scope regardless of whether `.planning/` exists.
32
+
33
+ **Important**: Do NOT create `.planning/` if it doesn't exist. Fall back to global scope silently.
34
+ </step>
35
+
36
+ <step name="parse_subcommand">
37
+ **Parse subcommand from $ARGUMENTS (after stripping --global).**
38
+
39
+ | Condition | Subcommand |
40
+ |-----------|------------|
41
+ | Arguments are exactly `list` (case-insensitive) | **list** |
42
+ | Arguments are exactly `promote <N>` where N is a number | **promote** |
43
+ | Arguments are empty (no text at all) | **list** |
44
+ | Anything else | **append** (the text IS the note) |
45
+
46
+ **Critical**: `list` is only a subcommand when it's the ENTIRE argument. `/ccp:note list of groceries` saves a note with text "list of groceries". Same for `promote` — only a subcommand when followed by exactly one number.
47
+ </step>
48
+
49
+ <step name="append">
50
+ **Subcommand: append — create a timestamped note file.**
51
+
52
+ 1. Determine scope (project or global) per storage format above
53
+ 2. Ensure the notes directory exists (`.planning/notes/` or `~/.claude/notes/`)
54
+ 3. Generate slug: first ~4 meaningful words of the note text, lowercase, hyphen-separated (strip articles/prepositions from the start)
55
+ 4. Generate filename: `{YYYY-MM-DD}-{slug}.md`
56
+ - If a file with that name already exists, append `-2`, `-3`, etc.
57
+ 5. Write the file with frontmatter and note text (see storage format)
58
+ 6. Confirm with exactly one line: `Noted ({scope}): {note text}`
59
+ - Where `{scope}` is "project" or "global"
60
+
61
+ **Constraints:**
62
+ - **Never modify the note text** — capture verbatim, including typos
63
+ - **Never ask questions** — just write and confirm
64
+ - **Timestamp format**: Use local time, `YYYY-MM-DD HH:mm` (24-hour, no seconds)
65
+ </step>
66
+
67
+ <step name="list">
68
+ **Subcommand: list — show notes from both scopes.**
69
+
70
+ 1. Glob `.planning/notes/*.md` (if directory exists) — project notes
71
+ 2. Glob `~/.claude/notes/*.md` (if directory exists) — global notes
72
+ 3. For each file, read frontmatter to get `date` and `promoted` status
73
+ 4. Exclude files where `promoted: true` from active counts (but still show them, dimmed)
74
+ 5. Sort by date, number all active entries sequentially starting at 1
75
+ 6. If total active entries > 20, show only the last 10 with a note about how many were omitted
76
+
77
+ **Display format:**
78
+
79
+ ```
80
+ Notes:
81
+
82
+ Project (.planning/notes/):
83
+ 1. [2026-02-08 14:32] refactor the hook system to support async validators
84
+ 2. [promoted] [2026-02-08 14:40] add rate limiting to the API endpoints
85
+ 3. [2026-02-08 15:10] consider adding a --dry-run flag to build
86
+
87
+ Global (~/.claude/notes/):
88
+ 4. [2026-02-08 10:00] cross-project idea about shared config
89
+
90
+ {count} active note(s). Use `/ccp:note promote <N>` to convert to a todo.
91
+ ```
92
+
93
+ If a scope has no directory or no entries, show: `(no notes)`
94
+ </step>
95
+
96
+ <step name="promote">
97
+ **Subcommand: promote — convert a note into a todo.**
98
+
99
+ 1. Run the **list** logic to build the numbered index (both scopes)
100
+ 2. Find entry N from the numbered list
101
+ 3. If N is invalid or refers to an already-promoted note, tell the user and stop
102
+ 4. **Requires `.planning/` directory** — if it doesn't exist, warn: "Todos require a CCP project. Run `/ccp:new-project` to initialize one."
103
+ 5. Ensure `.planning/todos/pending/` directory exists
104
+ 6. Generate todo ID: `{NNN}-{slug}` where NNN is the next sequential number (scan both `.planning/todos/pending/` and `.planning/todos/done/` for the highest existing number, increment by 1, zero-pad to 3 digits) and slug is the first ~4 meaningful words of the note text
105
+ 7. Extract the note text from the source file (body after frontmatter)
106
+ 8. Create `.planning/todos/pending/{id}.md`:
107
+
108
+ ```yaml
109
+ ---
110
+ title: "{note text}"
111
+ status: pending
112
+ priority: P2
113
+ source: "promoted from /ccp:note"
114
+ created: {YYYY-MM-DD}
115
+ theme: general
116
+ ---
117
+
118
+ ## Goal
119
+
120
+ {note text}
121
+
122
+ ## Context
123
+
124
+ Promoted from quick note captured on {original date}.
125
+
126
+ ## Acceptance Criteria
127
+
128
+ - [ ] {primary criterion derived from note text}
129
+ ```
130
+
131
+ 9. Mark the source note file as promoted: update its frontmatter to `promoted: true`
132
+ 10. Confirm: `Promoted note {N} to todo {id}: {note text}`
133
+ </step>
134
+
135
+ </process>
136
+
137
+ <edge_cases>
138
+ 1. **"list" as note text**: `/ccp:note list of things` saves note "list of things" (subcommand only when `list` is the entire arg)
139
+ 2. **No `.planning/`**: Falls back to global `~/.claude/notes/` — works in any directory
140
+ 3. **Promote without project**: Warns that todos require `.planning/`, suggests `/ccp:new-project`
141
+ 4. **Large files**: `list` shows last 10 when >20 active entries
142
+ 5. **Duplicate slugs**: Append `-2`, `-3` etc. to filename if slug already used on same date
143
+ 6. **`--global` position**: Stripped from anywhere — `--global my idea` and `my idea --global` both save "my idea" globally
144
+ 7. **Promote already-promoted**: Tell user "Note {N} is already promoted" and stop
145
+ 8. **Empty note text after stripping flags**: Treat as `list` subcommand
146
+ </edge_cases>
147
+
148
+ <success_criteria>
149
+ - [ ] Append: Note file written with correct frontmatter and verbatim text
150
+ - [ ] Append: No questions asked — instant capture
151
+ - [ ] List: Both scopes shown with sequential numbering
152
+ - [ ] List: Promoted notes shown but dimmed
153
+ - [ ] Promote: Todo created with correct format
154
+ - [ ] Promote: Source note marked as promoted
155
+ - [ ] Global fallback: Works when no `.planning/` exists
156
+ </success_criteria>
@@ -0,0 +1,177 @@
1
+ <purpose>
2
+ Create structured `.planning/HANDOFF.json` and `.continue-here.md` handoff files to preserve complete work state across sessions. The JSON provides machine-readable state for `/ccp:resume-work`; the markdown provides human-readable context.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ <step name="detect">
12
+ Find current phase directory from most recently modified files:
13
+
14
+ ```bash
15
+ # Find most recent phase directory with work
16
+ (ls -lt .planning/phases/*/PLAN.md 2>/dev/null || true) | head -1 | grep -oP 'phases/\K[^/]+' || true
17
+ ```
18
+
19
+ If no active phase detected, ask user which phase they're pausing work on.
20
+ </step>
21
+
22
+ <step name="gather">
23
+ **Collect complete state for handoff:**
24
+
25
+ 1. **Current position**: Which phase, which plan, which task
26
+ 2. **Work completed**: What got done this session
27
+ 3. **Work remaining**: What's left in current plan/phase
28
+ 4. **Decisions made**: Key decisions and rationale
29
+ 5. **Blockers/issues**: Anything stuck
30
+ 6. **Human actions pending**: Things that need manual intervention (MCP setup, API keys, approvals, manual testing)
31
+ 7. **Background processes**: Any running servers/watchers that were part of the workflow
32
+ 8. **Files modified**: What's changed but not committed
33
+
34
+ Ask user for clarifications if needed via conversational questions.
35
+
36
+ **Also inspect SUMMARY.md files for false completions:**
37
+ ```bash
38
+ # Check for placeholder content in existing summaries
39
+ grep -l "To be filled\|placeholder\|TBD" .planning/phases/*/*.md 2>/dev/null || true
40
+ ```
41
+ Report any summaries with placeholder content as incomplete items.
42
+ </step>
43
+
44
+ <step name="write_structured">
45
+ **Write structured handoff to `.planning/HANDOFF.json`:**
46
+
47
+ ```bash
48
+ timestamp=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" current-timestamp full --raw)
49
+ ```
50
+
51
+ ```json
52
+ {
53
+ "version": "1.0",
54
+ "timestamp": "{timestamp}",
55
+ "phase": "{phase_number}",
56
+ "phase_name": "{phase_name}",
57
+ "phase_dir": "{phase_dir}",
58
+ "plan": {current_plan_number},
59
+ "task": {current_task_number},
60
+ "total_tasks": {total_task_count},
61
+ "status": "paused",
62
+ "completed_tasks": [
63
+ {"id": 1, "name": "{task_name}", "status": "done", "commit": "{short_hash}"},
64
+ {"id": 2, "name": "{task_name}", "status": "done", "commit": "{short_hash}"},
65
+ {"id": 3, "name": "{task_name}", "status": "in_progress", "progress": "{what_done}"}
66
+ ],
67
+ "remaining_tasks": [
68
+ {"id": 4, "name": "{task_name}", "status": "not_started"},
69
+ {"id": 5, "name": "{task_name}", "status": "not_started"}
70
+ ],
71
+ "blockers": [
72
+ {"description": "{blocker}", "type": "technical|human_action|external", "workaround": "{if any}"}
73
+ ],
74
+ "human_actions_pending": [
75
+ {"action": "{what needs to be done}", "context": "{why}", "blocking": true}
76
+ ],
77
+ "decisions": [
78
+ {"decision": "{what}", "rationale": "{why}", "phase": "{phase_number}"}
79
+ ],
80
+ "uncommitted_files": [],
81
+ "next_action": "{specific first action when resuming}",
82
+ "context_notes": "{mental state, approach, what you were thinking}"
83
+ }
84
+ ```
85
+ </step>
86
+
87
+ <step name="write">
88
+ **Write handoff to `.planning/phases/XX-name/.continue-here.md`:**
89
+
90
+ ```markdown
91
+ ---
92
+ phase: XX-name
93
+ task: 3
94
+ total_tasks: 7
95
+ status: in_progress
96
+ last_updated: [timestamp from current-timestamp]
97
+ ---
98
+
99
+ <current_state>
100
+ [Where exactly are we? Immediate context]
101
+ </current_state>
102
+
103
+ <completed_work>
104
+
105
+ - Task 1: [name] - Done
106
+ - Task 2: [name] - Done
107
+ - Task 3: [name] - In progress, [what's done]
108
+ </completed_work>
109
+
110
+ <remaining_work>
111
+
112
+ - Task 3: [what's left]
113
+ - Task 4: Not started
114
+ - Task 5: Not started
115
+ </remaining_work>
116
+
117
+ <decisions_made>
118
+
119
+ - Decided to use [X] because [reason]
120
+ - Chose [approach] over [alternative] because [reason]
121
+ </decisions_made>
122
+
123
+ <blockers>
124
+ - [Blocker 1]: [status/workaround]
125
+ </blockers>
126
+
127
+ <context>
128
+ [Mental state, what were you thinking, the plan]
129
+ </context>
130
+
131
+ <next_action>
132
+ Start with: [specific first action when resuming]
133
+ </next_action>
134
+ ```
135
+
136
+ Be specific enough for a fresh Claude to understand immediately.
137
+
138
+ Use `current-timestamp` for last_updated field. You can use init todos (which provides timestamps) or call directly:
139
+ ```bash
140
+ timestamp=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" current-timestamp full --raw)
141
+ ```
142
+ </step>
143
+
144
+ <step name="commit">
145
+ ```bash
146
+ node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/phases/*/.continue-here.md .planning/HANDOFF.json
147
+ ```
148
+ </step>
149
+
150
+ <step name="confirm">
151
+ ```
152
+ Handoff created:
153
+ - .planning/HANDOFF.json (structured, machine-readable)
154
+ - .planning/phases/[XX-name]/.continue-here.md (human-readable)
155
+
156
+ Current state:
157
+
158
+ - Phase: [XX-name]
159
+ - Task: [X] of [Y]
160
+ - Status: [in_progress/blocked]
161
+ - Blockers: [count] ({human_actions_pending count} need human action)
162
+ - Committed as WIP
163
+
164
+ To resume: /ccp:resume-work
165
+
166
+ ```
167
+ </step>
168
+
169
+ </process>
170
+
171
+ <success_criteria>
172
+ - [ ] .continue-here.md created in correct phase directory
173
+ - [ ] HANDOFF.json created with structured machine-readable state
174
+ - [ ] All sections filled with specific content
175
+ - [ ] Committed as WIP
176
+ - [ ] User knows location and how to resume
177
+ </success_criteria>
@@ -1,5 +1,5 @@
1
1
  <purpose>
2
- Create all phases necessary to close gaps identified by `/gsd:audit-milestone`. Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase. One command creates all fix phases — no manual `/gsd:add-phase` per gap.
2
+ Create all phases necessary to close gaps identified by `/ccp:audit-milestone`. Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase. One command creates all fix phases — no manual `/ccp:add-phase` per gap.
3
3
  </purpose>
4
4
 
5
5
  <required_reading>
@@ -12,7 +12,7 @@ Read all files referenced by the invoking prompt's execution_context before star
12
12
 
13
13
  ```bash
14
14
  # Find the most recent audit file
15
- ls -t .planning/v*-MILESTONE-AUDIT.md 2>/dev/null | head -1
15
+ (ls -t .planning/v*-MILESTONE-AUDIT.md 2>/dev/null || true) | head -1
16
16
  ```
17
17
 
18
18
  Parse YAML frontmatter to extract structured gaps:
@@ -22,7 +22,7 @@ Parse YAML frontmatter to extract structured gaps:
22
22
 
23
23
  If no audit file exists or has no gaps, error:
24
24
  ```
25
- No audit gaps found. Run `/gsd:audit-milestone` first.
25
+ No audit gaps found. Run `/ccp:audit-milestone` first.
26
26
  ```
27
27
 
28
28
  ## 2. Prioritize Gaps
@@ -65,8 +65,7 @@ Gap: Flow "View dashboard" broken at data fetch
65
65
  Find highest existing phase:
66
66
  ```bash
67
67
  # Get sorted phase list, extract last one
68
- PHASES=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" phases list)
69
- HIGHEST=$(printf '%s\n' "$PHASES" | jq -r '.directories[-1]')
68
+ HIGHEST=$(node "$HOME/.claude/pilot/bin/ccp-tools.cjs" phases list --pick directories[-1])
70
69
  ```
71
70
 
72
71
  New phases continue from there:
@@ -147,7 +146,7 @@ mkdir -p ".planning/phases/{NN}-{name}"
147
146
  ## 9. Commit Roadmap and Requirements Update
148
147
 
149
148
  ```bash
150
- node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md .planning/REQUIREMENTS.md
149
+ node "$HOME/.claude/pilot/bin/ccp-tools.cjs" commit "docs(roadmap): add gap closure phases {N}-{M}" --files .planning/ROADMAP.md .planning/REQUIREMENTS.md
151
150
  ```
152
151
 
153
152
  ## 10. Offer Next Steps
@@ -164,22 +163,22 @@ node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs(roadmap): add
164
163
 
165
164
  **Plan first gap closure phase**
166
165
 
167
- `/gsd:plan-phase {N}`
166
+ `/ccp:plan-phase {N}`
168
167
 
169
168
  <sub>`/clear` first → fresh context window</sub>
170
169
 
171
170
  ---
172
171
 
173
172
  **Also available:**
174
- - `/gsd:execute-phase {N}` — if plans already exist
173
+ - `/ccp:execute-phase {N}` — if plans already exist
175
174
  - `cat .planning/ROADMAP.md` — see updated roadmap
176
175
 
177
176
  ---
178
177
 
179
178
  **After all gap phases complete:**
180
179
 
181
- `/gsd:audit-milestone` — re-audit to verify gaps closed
182
- `/gsd:complete-milestone {version}` — archive when audit passes
180
+ `/ccp:audit-milestone` — re-audit to verify gaps closed
181
+ `/ccp:complete-milestone {version}` — archive when audit passes
183
182
  ```
184
183
 
185
184
  </process>
@@ -270,5 +269,5 @@ becomes:
270
269
  - [ ] Coverage count updated in REQUIREMENTS.md
271
270
  - [ ] Phase directories created
272
271
  - [ ] Changes committed (includes REQUIREMENTS.md)
273
- - [ ] User knows to run `/gsd:plan-phase` next
272
+ - [ ] User knows to run `/ccp:plan-phase` next
274
273
  </success_criteria>