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,30 @@
1
+ ---
2
+ name: ccp:do
3
+ description: Route freeform text to the right CCP command automatically
4
+ argument-hint: "<description of what you want to do>"
5
+ allowed-tools:
6
+ - Read
7
+ - Bash
8
+ - AskUserQuestion
9
+ ---
10
+ <objective>
11
+ Analyze freeform natural language input and dispatch to the most appropriate CCP command.
12
+
13
+ Acts as a smart dispatcher — never does the work itself. Matches intent to the best CCP command using routing rules, confirms the match, then hands off.
14
+
15
+ Use when you know what you want but don't know which `/ccp:*` command to run.
16
+ </objective>
17
+
18
+ <execution_context>
19
+ @~/.claude/pilot/workflows/do.md
20
+ @~/.claude/pilot/references/ui-brand.md
21
+ </execution_context>
22
+
23
+ <context>
24
+ $ARGUMENTS
25
+ </context>
26
+
27
+ <process>
28
+ Execute the do workflow from @~/.claude/pilot/workflows/do.md end-to-end.
29
+ Route user intent to the best CCP command and invoke it.
30
+ </process>
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: ccp:docs-update
3
+ description: Generate or update project documentation verified against the codebase
4
+ argument-hint: "[--force] [--verify-only]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Task
13
+ - AskUserQuestion
14
+ ---
15
+ <objective>
16
+ Generate and update up to 9 documentation files for the current project. Each doc type is written by a ccp-doc-writer subagent that explores the codebase directly — no hallucinated paths, phantom endpoints, or stale signatures.
17
+
18
+ Flag handling rule:
19
+ - The optional flags documented below are available behaviors, not implied active behaviors
20
+ - A flag is active only when its literal token appears in `$ARGUMENTS`
21
+ - If a documented flag is absent from `$ARGUMENTS`, treat it as inactive
22
+ - `--force`: skip preservation prompts, regenerate all docs regardless of existing content or GSD markers
23
+ - `--verify-only`: check existing docs for accuracy against codebase, no generation (full verification requires Phase 4 verifier)
24
+ - If `--force` and `--verify-only` both appear in `$ARGUMENTS`, `--force` takes precedence
25
+ </objective>
26
+
27
+ <execution_context>
28
+ @~/.claude/pilot/workflows/docs-update.md
29
+ </execution_context>
30
+
31
+ <context>
32
+ Arguments: $ARGUMENTS
33
+
34
+ **Available optional flags (documentation only — not automatically active):**
35
+ - `--force` — Regenerate all docs. Overwrites hand-written and GSD docs alike. No preservation prompts.
36
+ - `--verify-only` — Check existing docs for accuracy against the codebase. No files are written. Reports VERIFY marker count. Full codebase fact-checking requires the ccp-doc-verifier agent (Phase 4).
37
+
38
+ **Active flags must be derived from `$ARGUMENTS`:**
39
+ - `--force` is active only if the literal `--force` token is present in `$ARGUMENTS`
40
+ - `--verify-only` is active only if the literal `--verify-only` token is present in `$ARGUMENTS`
41
+ - If neither token appears, run the standard full-phase generation flow
42
+ - Do not infer that a flag is active just because it is documented in this prompt
43
+ </context>
44
+
45
+ <process>
46
+ Execute the docs-update workflow from @~/.claude/pilot/workflows/docs-update.md end-to-end.
47
+ Preserve all workflow gates (preservation_check, flag handling, wave execution, monorepo dispatch, commit, reporting).
48
+ </process>
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: ccp:docs
3
+ description: Look up current documentation for a library or topic via Context7.
4
+ ---
5
+
6
+ # /ccp:docs
7
+
8
+ ## Purpose
9
+
10
+ Look up up-to-date documentation for a library, framework, or API and return a summarized answer with relevant code snippets. Uses the Context7 MCP (resolve-library-id and query-docs) so answers reflect current docs, not training data.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /ccp:docs [library name] [question]
16
+ ```
17
+
18
+ Use quotes for multi-word arguments so they are parsed as a single token. Example: `/ccp:docs "Next.js" "How do I configure middleware?"`
19
+
20
+ If library or question is omitted, prompt the user for:
21
+ 1. The library or product name (e.g. Next.js, Prisma, Supabase).
22
+ 2. The specific question or task (e.g. "How do I set up middleware?", "Auth methods").
23
+
24
+ ## Workflow
25
+
26
+ 1. **Resolve library ID** — Call the Context7 tool `resolve-library-id` with the library name and the user's question to get a Context7-compatible library ID (e.g. `/vercel/next.js`).
27
+ 2. **Query docs** — Call `query-docs` with that library ID and the user's question.
28
+ 3. **Summarize** — Return a concise answer and include relevant code examples from the fetched documentation. Mention the library (and version if relevant).
29
+
30
+ ## Output
31
+
32
+ The user receives a short, accurate answer backed by current docs, plus any code snippets that help. If Context7 is not available, say so and answer from training data with a note that docs may be outdated.
@@ -0,0 +1,365 @@
1
+ ---
2
+ name: ccp:e2e
3
+ description: Generate and run end-to-end tests with Playwright. Creates test journeys, runs tests, captures screenshots/videos/traces, and uploads artifacts.
4
+ ---
5
+
6
+ # E2E Command
7
+
8
+ This command invokes the **e2e-runner** agent to generate, maintain, and execute end-to-end tests using Playwright.
9
+
10
+ ## What This Command Does
11
+
12
+ 1. **Generate Test Journeys** - Create Playwright tests for user flows
13
+ 2. **Run E2E Tests** - Execute tests across browsers
14
+ 3. **Capture Artifacts** - Screenshots, videos, traces on failures
15
+ 4. **Upload Results** - HTML reports and JUnit XML
16
+ 5. **Identify Flaky Tests** - Quarantine unstable tests
17
+
18
+ ## When to Use
19
+
20
+ Use `/ccp:e2e` when:
21
+ - Testing critical user journeys (login, trading, payments)
22
+ - Verifying multi-step flows work end-to-end
23
+ - Testing UI interactions and navigation
24
+ - Validating integration between frontend and backend
25
+ - Preparing for production deployment
26
+
27
+ ## How It Works
28
+
29
+ The e2e-runner agent will:
30
+
31
+ 1. **Analyze user flow** and identify test scenarios
32
+ 2. **Generate Playwright test** using Page Object Model pattern
33
+ 3. **Run tests** across multiple browsers (Chrome, Firefox, Safari)
34
+ 4. **Capture failures** with screenshots, videos, and traces
35
+ 5. **Generate report** with results and artifacts
36
+ 6. **Identify flaky tests** and recommend fixes
37
+
38
+ ## Example Usage
39
+
40
+ ```
41
+ User: /ccp:e2e Test the market search and view flow
42
+
43
+ Agent (e2e-runner):
44
+ # E2E Test Generation: Market Search and View Flow
45
+
46
+ ## Test Scenario Identified
47
+
48
+ **User Journey:** Market Search → View Results → Click Market → View Details
49
+
50
+ **Test Coverage:**
51
+ 1. Navigate to markets page
52
+ 2. Perform semantic search
53
+ 3. Verify search results
54
+ 4. Click on first result
55
+ 5. Verify market details page loads
56
+ 6. Verify chart renders
57
+
58
+ ## Generated Test Code
59
+
60
+ ```typescript
61
+ // tests/e2e/markets/search-and-view.spec.ts
62
+ import { test, expect } from '@playwright/test'
63
+ import { MarketsPage } from '../../pages/MarketsPage'
64
+ import { MarketDetailsPage } from '../../pages/MarketDetailsPage'
65
+
66
+ test.describe('Market Search and View Flow', () => {
67
+ test('user can search markets and view details', async ({ page }) => {
68
+ // 1. Navigate to markets page
69
+ const marketsPage = new MarketsPage(page)
70
+ await marketsPage.goto()
71
+
72
+ // Verify page loaded
73
+ await expect(page).toHaveTitle(/Markets/)
74
+ await expect(page.locator('h1')).toContainText('Markets')
75
+
76
+ // 2. Perform semantic search
77
+ await marketsPage.searchMarkets('election')
78
+
79
+ // Wait for API response
80
+ await page.waitForResponse(resp =>
81
+ resp.url().includes('/api/markets/search') && resp.status() === 200
82
+ )
83
+
84
+ // 3. Verify search results
85
+ const marketCards = marketsPage.marketCards
86
+ await expect(marketCards.first()).toBeVisible()
87
+ const resultCount = await marketCards.count()
88
+ expect(resultCount).toBeGreaterThan(0)
89
+
90
+ // Take screenshot of search results
91
+ await page.screenshot({ path: 'artifacts/search-results.png' })
92
+
93
+ // 4. Click on first result
94
+ const firstMarketTitle = await marketCards.first().textContent()
95
+ await marketCards.first().click()
96
+
97
+ // 5. Verify market details page loads
98
+ await expect(page).toHaveURL(/\/markets\/[a-z0-9-]+/)
99
+
100
+ const detailsPage = new MarketDetailsPage(page)
101
+ await expect(detailsPage.marketName).toBeVisible()
102
+ await expect(detailsPage.marketDescription).toBeVisible()
103
+
104
+ // 6. Verify chart renders
105
+ await expect(detailsPage.priceChart).toBeVisible()
106
+
107
+ // Verify market name matches
108
+ const detailsTitle = await detailsPage.marketName.textContent()
109
+ expect(detailsTitle?.toLowerCase()).toContain(
110
+ firstMarketTitle?.toLowerCase().substring(0, 20) || ''
111
+ )
112
+
113
+ // Take screenshot of market details
114
+ await page.screenshot({ path: 'artifacts/market-details.png' })
115
+ })
116
+
117
+ test('search with no results shows empty state', async ({ page }) => {
118
+ const marketsPage = new MarketsPage(page)
119
+ await marketsPage.goto()
120
+
121
+ // Search for non-existent market
122
+ await marketsPage.searchMarkets('xyznonexistentmarket123456')
123
+
124
+ // Verify empty state
125
+ await expect(page.locator('[data-testid="no-results"]')).toBeVisible()
126
+ await expect(page.locator('[data-testid="no-results"]')).toContainText(
127
+ /no.*results|no.*markets/i
128
+ )
129
+
130
+ const marketCount = await marketsPage.marketCards.count()
131
+ expect(marketCount).toBe(0)
132
+ })
133
+
134
+ test('can clear search and see all markets again', async ({ page }) => {
135
+ const marketsPage = new MarketsPage(page)
136
+ await marketsPage.goto()
137
+
138
+ // Initial market count
139
+ const initialCount = await marketsPage.marketCards.count()
140
+
141
+ // Perform search
142
+ await marketsPage.searchMarkets('trump')
143
+ await page.waitForLoadState('networkidle')
144
+
145
+ // Verify filtered results
146
+ const filteredCount = await marketsPage.marketCards.count()
147
+ expect(filteredCount).toBeLessThan(initialCount)
148
+
149
+ // Clear search
150
+ await marketsPage.searchInput.clear()
151
+ await page.waitForLoadState('networkidle')
152
+
153
+ // Verify all markets shown again
154
+ const finalCount = await marketsPage.marketCards.count()
155
+ expect(finalCount).toBe(initialCount)
156
+ })
157
+ })
158
+ ```
159
+
160
+ ## Running Tests
161
+
162
+ ```bash
163
+ # Run the generated test
164
+ npx playwright test tests/e2e/markets/search-and-view.spec.ts
165
+
166
+ Running 3 tests using 3 workers
167
+
168
+ ✓ [chromium] › search-and-view.spec.ts:5:3 › user can search markets and view details (4.2s)
169
+ ✓ [chromium] › search-and-view.spec.ts:52:3 › search with no results shows empty state (1.8s)
170
+ ✓ [chromium] › search-and-view.spec.ts:67:3 › can clear search and see all markets again (2.9s)
171
+
172
+ 3 passed (9.1s)
173
+
174
+ Artifacts generated:
175
+ - artifacts/search-results.png
176
+ - artifacts/market-details.png
177
+ - playwright-report/index.html
178
+ ```
179
+
180
+ ## Test Report
181
+
182
+ ```
183
+ ╔══════════════════════════════════════════════════════════════╗
184
+ ║ E2E Test Results ║
185
+ ╠══════════════════════════════════════════════════════════════╣
186
+ ║ Status: ✅ ALL TESTS PASSED ║
187
+ ║ Total: 3 tests ║
188
+ ║ Passed: 3 (100%) ║
189
+ ║ Failed: 0 ║
190
+ ║ Flaky: 0 ║
191
+ ║ Duration: 9.1s ║
192
+ ╚══════════════════════════════════════════════════════════════╝
193
+
194
+ Artifacts:
195
+ 📸 Screenshots: 2 files
196
+ 📹 Videos: 0 files (only on failure)
197
+ 🔍 Traces: 0 files (only on failure)
198
+ 📊 HTML Report: playwright-report/index.html
199
+
200
+ View report: npx playwright show-report
201
+ ```
202
+
203
+ ✅ E2E test suite ready for CI/CD integration!
204
+ ```
205
+
206
+ ## Test Artifacts
207
+
208
+ When tests run, the following artifacts are captured:
209
+
210
+ **On All Tests:**
211
+ - HTML Report with timeline and results
212
+ - JUnit XML for CI integration
213
+
214
+ **On Failure Only:**
215
+ - Screenshot of the failing state
216
+ - Video recording of the test
217
+ - Trace file for debugging (step-by-step replay)
218
+ - Network logs
219
+ - Console logs
220
+
221
+ ## Viewing Artifacts
222
+
223
+ ```bash
224
+ # View HTML report in browser
225
+ npx playwright show-report
226
+
227
+ # View specific trace file
228
+ npx playwright show-trace artifacts/trace-abc123.zip
229
+
230
+ # Screenshots are saved in artifacts/ directory
231
+ open artifacts/search-results.png
232
+ ```
233
+
234
+ ## Flaky Test Detection
235
+
236
+ If a test fails intermittently:
237
+
238
+ ```
239
+ ⚠️ FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
240
+
241
+ Test passed 7/10 runs (70% pass rate)
242
+
243
+ Common failure:
244
+ "Timeout waiting for element '[data-testid="confirm-btn"]'"
245
+
246
+ Recommended fixes:
247
+ 1. Add explicit wait: await page.waitForSelector('[data-testid="confirm-btn"]')
248
+ 2. Increase timeout: { timeout: 10000 }
249
+ 3. Check for race conditions in component
250
+ 4. Verify element is not hidden by animation
251
+
252
+ Quarantine recommendation: Mark as test.fixme() until fixed
253
+ ```
254
+
255
+ ## Browser Configuration
256
+
257
+ Tests run on multiple browsers by default:
258
+ - ✅ Chromium (Desktop Chrome)
259
+ - ✅ Firefox (Desktop)
260
+ - ✅ WebKit (Desktop Safari)
261
+ - ✅ Mobile Chrome (optional)
262
+
263
+ Configure in `playwright.config.ts` to adjust browsers.
264
+
265
+ ## CI/CD Integration
266
+
267
+ Add to your CI pipeline:
268
+
269
+ ```yaml
270
+ # .github/workflows/e2e.yml
271
+ - name: Install Playwright
272
+ run: npx playwright install --with-deps
273
+
274
+ - name: Run E2E tests
275
+ run: npx playwright test
276
+
277
+ - name: Upload artifacts
278
+ if: always()
279
+ uses: actions/upload-artifact@v3
280
+ with:
281
+ name: playwright-report
282
+ path: playwright-report/
283
+ ```
284
+
285
+ ## PMX-Specific Critical Flows
286
+
287
+ For PMX, prioritize these E2E tests:
288
+
289
+ **🔴 CRITICAL (Must Always Pass):**
290
+ 1. User can connect wallet
291
+ 2. User can browse markets
292
+ 3. User can search markets (semantic search)
293
+ 4. User can view market details
294
+ 5. User can place trade (with test funds)
295
+ 6. Market resolves correctly
296
+ 7. User can withdraw funds
297
+
298
+ **🟡 IMPORTANT:**
299
+ 1. Market creation flow
300
+ 2. User profile updates
301
+ 3. Real-time price updates
302
+ 4. Chart rendering
303
+ 5. Filter and sort markets
304
+ 6. Mobile responsive layout
305
+
306
+ ## Best Practices
307
+
308
+ **DO:**
309
+ - ✅ Use Page Object Model for maintainability
310
+ - ✅ Use data-testid attributes for selectors
311
+ - ✅ Wait for API responses, not arbitrary timeouts
312
+ - ✅ Test critical user journeys end-to-end
313
+ - ✅ Run tests before merging to main
314
+ - ✅ Review artifacts when tests fail
315
+
316
+ **DON'T:**
317
+ - ❌ Use brittle selectors (CSS classes can change)
318
+ - ❌ Test implementation details
319
+ - ❌ Run tests against production
320
+ - ❌ Ignore flaky tests
321
+ - ❌ Skip artifact review on failures
322
+ - ❌ Test every edge case with E2E (use unit tests)
323
+
324
+ ## Important Notes
325
+
326
+ **CRITICAL for PMX:**
327
+ - E2E tests involving real money MUST run on testnet/staging only
328
+ - Never run trading tests against production
329
+ - Set `test.skip(process.env.NODE_ENV === 'production')` for financial tests
330
+ - Use test wallets with small test funds only
331
+
332
+ ## Integration with Other Commands
333
+
334
+ - Use `/ccp:plan` to identify critical journeys to test
335
+ - Use `/ccp:tdd` for unit tests (faster, more granular)
336
+ - Use `/ccp:e2e` for integration and user journey tests
337
+ - Use `/ccp:code-review` to verify test quality
338
+
339
+ ## Related Agents
340
+
341
+ This command invokes the `e2e-runner` agent.
342
+
343
+ Source file: `~/.claude/agents/e2e-runner.md`
344
+
345
+ ## Quick Commands
346
+
347
+ ```bash
348
+ # Run all E2E tests
349
+ npx playwright test
350
+
351
+ # Run specific test file
352
+ npx playwright test tests/e2e/markets/search.spec.ts
353
+
354
+ # Run in headed mode (see browser)
355
+ npx playwright test --headed
356
+
357
+ # Debug test
358
+ npx playwright test --debug
359
+
360
+ # Generate test code
361
+ npx playwright codegen http://localhost:3000
362
+
363
+ # View report
364
+ npx playwright show-report
365
+ ```
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: ccp:eval
3
+ description: "Manage eval-driven development workflow"
4
+ ---
5
+
6
+ # Eval Command
7
+
8
+ Manage eval-driven development workflow.
9
+
10
+ ## Usage
11
+
12
+ `/ccp:eval [define|check|report|list] [feature-name]`
13
+
14
+ ## Define Evals
15
+
16
+ `/ccp:eval define feature-name`
17
+
18
+ Create a new eval definition:
19
+
20
+ 1. Create `.claude/evals/feature-name.md` with template:
21
+
22
+ ```markdown
23
+ ## EVAL: feature-name
24
+ Created: $(date)
25
+
26
+ ### Capability Evals
27
+ - [ ] [Description of capability 1]
28
+ - [ ] [Description of capability 2]
29
+
30
+ ### Regression Evals
31
+ - [ ] [Existing behavior 1 still works]
32
+ - [ ] [Existing behavior 2 still works]
33
+
34
+ ### Success Criteria
35
+ - pass@3 > 90% for capability evals
36
+ - pass^3 = 100% for regression evals
37
+ ```
38
+
39
+ 2. Prompt user to fill in specific criteria
40
+
41
+ ## Check Evals
42
+
43
+ `/ccp:eval check feature-name`
44
+
45
+ Run evals for a feature:
46
+
47
+ 1. Read eval definition from `.claude/evals/feature-name.md`
48
+ 2. For each capability eval:
49
+ - Attempt to verify criterion
50
+ - Record PASS/FAIL
51
+ - Log attempt in `.claude/evals/feature-name.log`
52
+ 3. For each regression eval:
53
+ - Run relevant tests
54
+ - Compare against baseline
55
+ - Record PASS/FAIL
56
+ 4. Report current status:
57
+
58
+ ```
59
+ EVAL CHECK: feature-name
60
+ ========================
61
+ Capability: X/Y passing
62
+ Regression: X/Y passing
63
+ Status: IN PROGRESS / READY
64
+ ```
65
+
66
+ ## Report Evals
67
+
68
+ `/ccp:eval report feature-name`
69
+
70
+ Generate comprehensive eval report:
71
+
72
+ ```
73
+ EVAL REPORT: feature-name
74
+ =========================
75
+ Generated: $(date)
76
+
77
+ CAPABILITY EVALS
78
+ ----------------
79
+ [eval-1]: PASS (pass@1)
80
+ [eval-2]: PASS (pass@2) - required retry
81
+ [eval-3]: FAIL - see notes
82
+
83
+ REGRESSION EVALS
84
+ ----------------
85
+ [test-1]: PASS
86
+ [test-2]: PASS
87
+ [test-3]: PASS
88
+
89
+ METRICS
90
+ -------
91
+ Capability pass@1: 67%
92
+ Capability pass@3: 100%
93
+ Regression pass^3: 100%
94
+
95
+ NOTES
96
+ -----
97
+ [Any issues, edge cases, or observations]
98
+
99
+ RECOMMENDATION
100
+ --------------
101
+ [SHIP / NEEDS WORK / BLOCKED]
102
+ ```
103
+
104
+ ## List Evals
105
+
106
+ `/ccp:eval list`
107
+
108
+ Show all eval definitions:
109
+
110
+ ```
111
+ EVAL DEFINITIONS
112
+ ================
113
+ feature-auth [3/5 passing] IN PROGRESS
114
+ feature-search [5/5 passing] READY
115
+ feature-export [0/4 passing] NOT STARTED
116
+ ```
117
+
118
+ ## Arguments
119
+
120
+ $ARGUMENTS:
121
+ - `define <name>` - Create new eval definition
122
+ - `check <name>` - Run and check evals
123
+ - `report <name>` - Generate full report
124
+ - `list` - Show all evals
125
+ - `clean` - Remove old eval logs (keeps last 10 runs)
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: evolve
2
+ name: ccp:evolve
3
3
  description: Analyze instincts and suggest or generate evolved structures
4
4
  command: true
5
5
  ---
@@ -11,10 +11,10 @@ command: true
11
11
  Run the instinct CLI using the plugin root path:
12
12
 
13
13
  ```bash
14
- python3 "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/scripts/instinct-cli.py" evolve [--generate]
14
+ python3 "$(getClaudeDir)/skills/continuous-learning-v2/scripts/instinct-cli.py" evolve [--generate]
15
15
  ```
16
16
 
17
- Or if `CLAUDE_PLUGIN_ROOT` is not set (manual installation):
17
+ Or if `CCP_CLAUDE_DIR` is not set (manual installation):
18
18
 
19
19
  ```bash
20
20
  python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py evolve [--generate]
@@ -28,8 +28,8 @@ Analyzes instincts and clusters related ones into higher-level structures:
28
28
  ## Usage
29
29
 
30
30
  ```
31
- /evolve # Analyze all instincts and suggest evolutions
32
- /evolve --generate # Also generate files under evolved/{skills,commands,agents}
31
+ /ccp:evolve # Analyze all instincts and suggest evolutions
32
+ /ccp:evolve --generate # Also generate files under evolved/{skills,commands,agents}
33
33
  ```
34
34
 
35
35
  ## Evolution Rules
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: ccp:execute-phase
3
+ description: Execute all plans in a phase with wave-based parallelization
4
+ argument-hint: "<phase-number> [--wave N] [--gaps-only] [--interactive]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Glob
10
+ - Grep
11
+ - Bash
12
+ - Task
13
+ - TodoWrite
14
+ - AskUserQuestion
15
+ ---
16
+ <objective>
17
+ Execute all plans in a phase using wave-based parallel execution.
18
+
19
+ Orchestrator stays lean: discover plans, analyze dependencies, group into waves, spawn subagents, collect results. Each subagent loads the full execute-plan context and handles its own plan.
20
+
21
+ Optional wave filter:
22
+ - `--wave N` executes only Wave `N` for pacing, quota management, or staged rollout
23
+ - phase verification/completion still only happens when no incomplete plans remain after the selected wave finishes
24
+
25
+ Flag handling rule:
26
+ - The optional flags documented below are available behaviors, not implied active behaviors
27
+ - A flag is active only when its literal token appears in `$ARGUMENTS`
28
+ - If a documented flag is absent from `$ARGUMENTS`, treat it as inactive
29
+
30
+ Context budget: ~15% orchestrator, 100% fresh per subagent.
31
+ </objective>
32
+
33
+ <execution_context>
34
+ @~/.claude/pilot/workflows/execute-phase.md
35
+ @~/.claude/pilot/references/ui-brand.md
36
+ </execution_context>
37
+
38
+ <context>
39
+ Phase: $ARGUMENTS
40
+
41
+ **Available optional flags (documentation only — not automatically active):**
42
+ - `--wave N` — Execute only Wave `N` in the phase. Use when you want to pace execution or stay inside usage limits.
43
+ - `--gaps-only` — Execute only gap closure plans (plans with `gap_closure: true` in frontmatter). Use after verify-work creates fix plans.
44
+ - `--interactive` — Execute plans sequentially inline (no subagents) with user checkpoints between tasks. Lower token usage, pair-programming style. Best for small phases, bug fixes, and verification gaps.
45
+
46
+ **Active flags must be derived from `$ARGUMENTS`:**
47
+ - `--wave N` is active only if the literal `--wave` token is present in `$ARGUMENTS`
48
+ - `--gaps-only` is active only if the literal `--gaps-only` token is present in `$ARGUMENTS`
49
+ - `--interactive` is active only if the literal `--interactive` token is present in `$ARGUMENTS`
50
+ - If none of these tokens appear, run the standard full-phase execution flow with no flag-specific filtering
51
+ - Do not infer that a flag is active just because it is documented in this prompt
52
+
53
+ Context files are resolved inside the workflow via `ccp-tools init execute-phase` and per-subagent `<files_to_read>` blocks.
54
+ </context>
55
+
56
+ <process>
57
+ Execute the execute-phase workflow from @~/.claude/pilot/workflows/execute-phase.md end-to-end.
58
+ Preserve all workflow gates (wave execution, checkpoint handling, verification, state updates, routing).
59
+ </process>