@arthai/agents 1.0.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 (390) hide show
  1. package/README.md +123 -0
  2. package/VERSION +1 -0
  3. package/agents/ai-consultant.md +999 -0
  4. package/agents/architect.md +174 -0
  5. package/agents/code-reviewer.md +115 -0
  6. package/agents/competitive-analyst.md +688 -0
  7. package/agents/content-strategist.md +607 -0
  8. package/agents/design-studio-create.md +304 -0
  9. package/agents/design-studio-critique.md +258 -0
  10. package/agents/design-studio-think.md +79 -0
  11. package/agents/domain-hunter.md +519 -0
  12. package/agents/explore-light.md +52 -0
  13. package/agents/frontend.md +261 -0
  14. package/agents/gtm-expert.md +811 -0
  15. package/agents/meeting-prep.md +318 -0
  16. package/agents/ops.md +149 -0
  17. package/agents/product-manager.md +563 -0
  18. package/agents/python-backend.md +286 -0
  19. package/agents/qa-baseline-updater.md +45 -0
  20. package/agents/qa-challenger.md +97 -0
  21. package/agents/qa-domain.md +145 -0
  22. package/agents/qa-e2e.md +184 -0
  23. package/agents/qa-test-promoter.md +97 -0
  24. package/agents/qa.md +226 -0
  25. package/agents/setup.md +134 -0
  26. package/agents/sre.md +165 -0
  27. package/agents/stakeholder-reporter.md +94 -0
  28. package/agents/user-researcher.md +602 -0
  29. package/bin/cli.js +322 -0
  30. package/bundles/canvas.json +16 -0
  31. package/bundles/compass.json +16 -0
  32. package/bundles/counsel.json +31 -0
  33. package/bundles/cruise.json +11 -0
  34. package/bundles/forge.json +26 -0
  35. package/bundles/prime.json +10 -0
  36. package/bundles/prism.json +23 -0
  37. package/bundles/scalpel.json +17 -0
  38. package/bundles/sentinel.json +19 -0
  39. package/bundles/shield.json +14 -0
  40. package/bundles/spark.json +19 -0
  41. package/compiler.sh +305 -0
  42. package/dist/plugins/canvas/.claude-plugin/plugin.json +6 -0
  43. package/dist/plugins/canvas/agents/design-studio-create.md +304 -0
  44. package/dist/plugins/canvas/agents/design-studio-critique.md +258 -0
  45. package/dist/plugins/canvas/agents/design-studio-think.md +79 -0
  46. package/dist/plugins/canvas/agents/frontend.md +261 -0
  47. package/dist/plugins/canvas/skills/planning/SKILL.md +436 -0
  48. package/dist/plugins/compass/.claude-plugin/plugin.json +6 -0
  49. package/dist/plugins/compass/agents/content-strategist.md +607 -0
  50. package/dist/plugins/compass/agents/gtm-expert.md +811 -0
  51. package/dist/plugins/compass/agents/product-manager.md +563 -0
  52. package/dist/plugins/compass/agents/user-researcher.md +602 -0
  53. package/dist/plugins/compass/skills/planning/SKILL.md +436 -0
  54. package/dist/plugins/counsel/.claude-plugin/plugin.json +6 -0
  55. package/dist/plugins/counsel/agents/ai-consultant.md +999 -0
  56. package/dist/plugins/counsel/agents/competitive-analyst.md +688 -0
  57. package/dist/plugins/counsel/agents/meeting-prep.md +318 -0
  58. package/dist/plugins/counsel/agents/stakeholder-reporter.md +94 -0
  59. package/dist/plugins/counsel/hooks/check-deliverable.sh +65 -0
  60. package/dist/plugins/counsel/hooks/ensure-client-dir.sh +59 -0
  61. package/dist/plugins/counsel/hooks/hooks.json +28 -0
  62. package/dist/plugins/counsel/skills/client-discovery/SKILL.md +266 -0
  63. package/dist/plugins/counsel/skills/consulting/SKILL.md +282 -0
  64. package/dist/plugins/counsel/skills/deliverable-builder/SKILL.md +928 -0
  65. package/dist/plugins/counsel/skills/engagement-tracker/SKILL.md +380 -0
  66. package/dist/plugins/counsel/skills/market-research/SKILL.md +300 -0
  67. package/dist/plugins/counsel/skills/opportunity-map/SKILL.md +307 -0
  68. package/dist/plugins/counsel/skills/pitch-generator/SKILL.md +378 -0
  69. package/dist/plugins/counsel/skills/roi-calculator/SKILL.md +469 -0
  70. package/dist/plugins/counsel/skills/share/SKILL.md +211 -0
  71. package/dist/plugins/counsel/skills/solution-architect/SKILL.md +566 -0
  72. package/dist/plugins/counsel/skills/templates/SKILL.md +194 -0
  73. package/dist/plugins/counsel/skills/welcome/SKILL.md +136 -0
  74. package/dist/plugins/counsel/skills/wizard/SKILL.md +411 -0
  75. package/dist/plugins/cruise/.claude-plugin/plugin.json +6 -0
  76. package/dist/plugins/cruise/skills/autopilot/SKILL.md +425 -0
  77. package/dist/plugins/forge/.claude-plugin/plugin.json +6 -0
  78. package/dist/plugins/forge/agents/architect.md +174 -0
  79. package/dist/plugins/forge/agents/code-reviewer.md +115 -0
  80. package/dist/plugins/forge/agents/frontend.md +261 -0
  81. package/dist/plugins/forge/agents/product-manager.md +563 -0
  82. package/dist/plugins/forge/agents/python-backend.md +286 -0
  83. package/dist/plugins/forge/agents/qa.md +226 -0
  84. package/dist/plugins/forge/hooks/hooks.json +28 -0
  85. package/dist/plugins/forge/hooks/post-test-summary.sh +115 -0
  86. package/dist/plugins/forge/hooks/triage-router.sh +740 -0
  87. package/dist/plugins/forge/skills/implement/SKILL.md +532 -0
  88. package/dist/plugins/forge/skills/planning/SKILL.md +436 -0
  89. package/dist/plugins/forge/skills/pr/SKILL.md +275 -0
  90. package/dist/plugins/forge/skills/precheck/SKILL.md +159 -0
  91. package/dist/plugins/forge/skills/qa/SKILL.md +127 -0
  92. package/dist/plugins/forge/skills/review-pr/SKILL.md +367 -0
  93. package/dist/plugins/prime/.claude-plugin/plugin.json +6 -0
  94. package/dist/plugins/prime/agents/ai-consultant.md +999 -0
  95. package/dist/plugins/prime/agents/architect.md +174 -0
  96. package/dist/plugins/prime/agents/code-reviewer.md +115 -0
  97. package/dist/plugins/prime/agents/competitive-analyst.md +688 -0
  98. package/dist/plugins/prime/agents/content-strategist.md +607 -0
  99. package/dist/plugins/prime/agents/design-studio-create.md +304 -0
  100. package/dist/plugins/prime/agents/design-studio-critique.md +258 -0
  101. package/dist/plugins/prime/agents/design-studio-think.md +79 -0
  102. package/dist/plugins/prime/agents/explore-light.md +52 -0
  103. package/dist/plugins/prime/agents/frontend.md +261 -0
  104. package/dist/plugins/prime/agents/gtm-expert.md +811 -0
  105. package/dist/plugins/prime/agents/meeting-prep.md +318 -0
  106. package/dist/plugins/prime/agents/ops.md +149 -0
  107. package/dist/plugins/prime/agents/product-manager.md +563 -0
  108. package/dist/plugins/prime/agents/python-backend.md +286 -0
  109. package/dist/plugins/prime/agents/qa-baseline-updater.md +45 -0
  110. package/dist/plugins/prime/agents/qa-challenger.md +97 -0
  111. package/dist/plugins/prime/agents/qa-domain.md +145 -0
  112. package/dist/plugins/prime/agents/qa-e2e.md +184 -0
  113. package/dist/plugins/prime/agents/qa-test-promoter.md +97 -0
  114. package/dist/plugins/prime/agents/qa.md +226 -0
  115. package/dist/plugins/prime/agents/setup.md +134 -0
  116. package/dist/plugins/prime/agents/sre.md +165 -0
  117. package/dist/plugins/prime/agents/stakeholder-reporter.md +94 -0
  118. package/dist/plugins/prime/agents/user-researcher.md +602 -0
  119. package/dist/plugins/prime/hooks/check-deliverable.sh +65 -0
  120. package/dist/plugins/prime/hooks/ensure-client-dir.sh +59 -0
  121. package/dist/plugins/prime/hooks/hooks.json +184 -0
  122. package/dist/plugins/prime/hooks/post-deploy-health.sh +83 -0
  123. package/dist/plugins/prime/hooks/post-diff-test-compare.sh +125 -0
  124. package/dist/plugins/prime/hooks/post-edit-lint.sh +92 -0
  125. package/dist/plugins/prime/hooks/post-git-state.sh +54 -0
  126. package/dist/plugins/prime/hooks/post-merge-cleanup.sh +101 -0
  127. package/dist/plugins/prime/hooks/post-test-summary.sh +115 -0
  128. package/dist/plugins/prime/hooks/pre-bash-guard.sh +142 -0
  129. package/dist/plugins/prime/hooks/pre-edit-guard.sh +121 -0
  130. package/dist/plugins/prime/hooks/pre-task-context.sh +113 -0
  131. package/dist/plugins/prime/hooks/session-bootstrap.sh +379 -0
  132. package/dist/plugins/prime/hooks/session-end.sh +107 -0
  133. package/dist/plugins/prime/hooks/session-summary.sh +97 -0
  134. package/dist/plugins/prime/hooks/sync-agents.sh +269 -0
  135. package/dist/plugins/prime/hooks/triage-router.sh +740 -0
  136. package/dist/plugins/prime/skills/arth/SKILL.md +165 -0
  137. package/dist/plugins/prime/skills/autopilot/SKILL.md +425 -0
  138. package/dist/plugins/prime/skills/calibrate/SKILL.md +1807 -0
  139. package/dist/plugins/prime/skills/ci-fix/SKILL.md +293 -0
  140. package/dist/plugins/prime/skills/client-discovery/SKILL.md +266 -0
  141. package/dist/plugins/prime/skills/consulting/SKILL.md +282 -0
  142. package/dist/plugins/prime/skills/custom-domain/SKILL.md +261 -0
  143. package/dist/plugins/prime/skills/deliverable-builder/SKILL.md +928 -0
  144. package/dist/plugins/prime/skills/discord-ops/SKILL.md +125 -0
  145. package/dist/plugins/prime/skills/engagement-tracker/SKILL.md +380 -0
  146. package/dist/plugins/prime/skills/explore.md +43 -0
  147. package/dist/plugins/prime/skills/fix/SKILL.md +1058 -0
  148. package/dist/plugins/prime/skills/implement/SKILL.md +532 -0
  149. package/dist/plugins/prime/skills/incident/SKILL.md +910 -0
  150. package/dist/plugins/prime/skills/issue/SKILL.md +134 -0
  151. package/dist/plugins/prime/skills/market-research/SKILL.md +300 -0
  152. package/dist/plugins/prime/skills/onboard/SKILL.md +344 -0
  153. package/dist/plugins/prime/skills/opportunity-map/SKILL.md +307 -0
  154. package/dist/plugins/prime/skills/pitch-generator/SKILL.md +378 -0
  155. package/dist/plugins/prime/skills/planning/SKILL.md +436 -0
  156. package/dist/plugins/prime/skills/pr/SKILL.md +275 -0
  157. package/dist/plugins/prime/skills/precheck/SKILL.md +159 -0
  158. package/dist/plugins/prime/skills/qa/SKILL.md +127 -0
  159. package/dist/plugins/prime/skills/qa-incident/SKILL.md +54 -0
  160. package/dist/plugins/prime/skills/qa-learn/SKILL.md +47 -0
  161. package/dist/plugins/prime/skills/restart/SKILL.md +70 -0
  162. package/dist/plugins/prime/skills/review-pr/SKILL.md +367 -0
  163. package/dist/plugins/prime/skills/roi-calculator/SKILL.md +469 -0
  164. package/dist/plugins/prime/skills/scan/SKILL.md +232 -0
  165. package/dist/plugins/prime/skills/setup/SKILL.md +691 -0
  166. package/dist/plugins/prime/skills/share/SKILL.md +211 -0
  167. package/dist/plugins/prime/skills/solution-architect/SKILL.md +566 -0
  168. package/dist/plugins/prime/skills/sre/SKILL.md +362 -0
  169. package/dist/plugins/prime/skills/sync/SKILL.md +188 -0
  170. package/dist/plugins/prime/skills/templates/SKILL.md +194 -0
  171. package/dist/plugins/prime/skills/welcome/SKILL.md +136 -0
  172. package/dist/plugins/prime/skills/wizard/SKILL.md +411 -0
  173. package/dist/plugins/prism/.claude-plugin/plugin.json +6 -0
  174. package/dist/plugins/prism/agents/qa-baseline-updater.md +45 -0
  175. package/dist/plugins/prism/agents/qa-challenger.md +97 -0
  176. package/dist/plugins/prism/agents/qa-domain.md +145 -0
  177. package/dist/plugins/prism/agents/qa-e2e.md +184 -0
  178. package/dist/plugins/prism/agents/qa-test-promoter.md +97 -0
  179. package/dist/plugins/prism/agents/qa.md +226 -0
  180. package/dist/plugins/prism/hooks/hooks.json +26 -0
  181. package/dist/plugins/prism/hooks/post-diff-test-compare.sh +125 -0
  182. package/dist/plugins/prism/hooks/post-test-summary.sh +115 -0
  183. package/dist/plugins/prism/skills/qa/SKILL.md +127 -0
  184. package/dist/plugins/prism/skills/qa-incident/SKILL.md +54 -0
  185. package/dist/plugins/prism/skills/qa-learn/SKILL.md +47 -0
  186. package/dist/plugins/scalpel/.claude-plugin/plugin.json +6 -0
  187. package/dist/plugins/scalpel/agents/code-reviewer.md +115 -0
  188. package/dist/plugins/scalpel/hooks/hooks.json +26 -0
  189. package/dist/plugins/scalpel/hooks/pre-edit-guard.sh +121 -0
  190. package/dist/plugins/scalpel/skills/ci-fix/SKILL.md +293 -0
  191. package/dist/plugins/scalpel/skills/fix/SKILL.md +1058 -0
  192. package/dist/plugins/scalpel/skills/issue/SKILL.md +134 -0
  193. package/dist/plugins/sentinel/.claude-plugin/plugin.json +6 -0
  194. package/dist/plugins/sentinel/agents/ops.md +149 -0
  195. package/dist/plugins/sentinel/agents/sre.md +165 -0
  196. package/dist/plugins/sentinel/hooks/hooks.json +26 -0
  197. package/dist/plugins/sentinel/hooks/post-deploy-health.sh +83 -0
  198. package/dist/plugins/sentinel/hooks/post-git-state.sh +54 -0
  199. package/dist/plugins/sentinel/skills/incident/SKILL.md +910 -0
  200. package/dist/plugins/sentinel/skills/restart/SKILL.md +70 -0
  201. package/dist/plugins/sentinel/skills/sre/SKILL.md +362 -0
  202. package/dist/plugins/shield/.claude-plugin/plugin.json +6 -0
  203. package/dist/plugins/shield/hooks/hooks.json +60 -0
  204. package/dist/plugins/shield/hooks/pre-bash-guard.sh +142 -0
  205. package/dist/plugins/shield/hooks/pre-edit-guard.sh +121 -0
  206. package/dist/plugins/shield/hooks/session-bootstrap.sh +379 -0
  207. package/dist/plugins/shield/hooks/triage-router.sh +740 -0
  208. package/dist/plugins/spark/.claude-plugin/plugin.json +6 -0
  209. package/dist/plugins/spark/agents/explore-light.md +52 -0
  210. package/dist/plugins/spark/agents/setup.md +134 -0
  211. package/dist/plugins/spark/hooks/hooks.json +16 -0
  212. package/dist/plugins/spark/hooks/session-bootstrap.sh +379 -0
  213. package/dist/plugins/spark/skills/calibrate/SKILL.md +1807 -0
  214. package/dist/plugins/spark/skills/onboard/SKILL.md +344 -0
  215. package/dist/plugins/spark/skills/scan/SKILL.md +232 -0
  216. package/dist/plugins/spark/skills/setup/SKILL.md +691 -0
  217. package/hook-defs.json +104 -0
  218. package/hooks/check-deliverable.sh +65 -0
  219. package/hooks/ensure-client-dir.sh +59 -0
  220. package/hooks/hooks.json +16 -0
  221. package/hooks/post-deploy-health.sh +83 -0
  222. package/hooks/post-diff-test-compare.sh +125 -0
  223. package/hooks/post-edit-lint.sh +92 -0
  224. package/hooks/post-git-state.sh +54 -0
  225. package/hooks/post-merge-cleanup.sh +101 -0
  226. package/hooks/post-test-summary.sh +115 -0
  227. package/hooks/pre-bash-guard.sh +142 -0
  228. package/hooks/pre-edit-guard.sh +121 -0
  229. package/hooks/pre-task-context.sh +113 -0
  230. package/hooks/session-bootstrap.sh +379 -0
  231. package/hooks/session-end.sh +107 -0
  232. package/hooks/session-start.sh +46 -0
  233. package/hooks/session-summary.sh +97 -0
  234. package/hooks/sync-agents.sh +269 -0
  235. package/hooks/triage-router.sh +740 -0
  236. package/install.sh +3185 -0
  237. package/package.json +40 -0
  238. package/portable.manifest +112 -0
  239. package/skills/arth/SKILL.md +165 -0
  240. package/skills/autopilot/SKILL.md +425 -0
  241. package/skills/calibrate/SKILL.md +1807 -0
  242. package/skills/ci-fix/SKILL.md +293 -0
  243. package/skills/client-discovery/SKILL.md +266 -0
  244. package/skills/consulting/SKILL.md +282 -0
  245. package/skills/continue/SKILL.md +174 -0
  246. package/skills/custom-domain/SKILL.md +261 -0
  247. package/skills/deliverable-builder/SKILL.md +928 -0
  248. package/skills/discord-ops/SKILL.md +125 -0
  249. package/skills/engagement-tracker/SKILL.md +380 -0
  250. package/skills/explore.md +43 -0
  251. package/skills/fix/SKILL.md +1058 -0
  252. package/skills/implement/SKILL.md +532 -0
  253. package/skills/incident/SKILL.md +910 -0
  254. package/skills/issue/SKILL.md +134 -0
  255. package/skills/market-research/SKILL.md +300 -0
  256. package/skills/onboard/SKILL.md +344 -0
  257. package/skills/opportunity-map/SKILL.md +307 -0
  258. package/skills/pitch-generator/SKILL.md +378 -0
  259. package/skills/planning/SKILL.md +436 -0
  260. package/skills/pr/SKILL.md +275 -0
  261. package/skills/precheck/SKILL.md +159 -0
  262. package/skills/qa/SKILL.md +127 -0
  263. package/skills/qa-incident/SKILL.md +54 -0
  264. package/skills/qa-learn/SKILL.md +47 -0
  265. package/skills/railway/central-station/SKILL.md +226 -0
  266. package/skills/railway/central-station/references/environment-config.md +183 -0
  267. package/skills/railway/central-station/references/monorepo.md +216 -0
  268. package/skills/railway/central-station/references/railpack.md +257 -0
  269. package/skills/railway/central-station/references/variables.md +170 -0
  270. package/skills/railway/database/SKILL.md +284 -0
  271. package/skills/railway/database/references/environment-config.md +183 -0
  272. package/skills/railway/database/references/monorepo.md +216 -0
  273. package/skills/railway/database/references/railpack.md +257 -0
  274. package/skills/railway/database/references/variables.md +170 -0
  275. package/skills/railway/database/scripts/railway-api.sh +41 -0
  276. package/skills/railway/deploy/SKILL.md +128 -0
  277. package/skills/railway/deploy/references/environment-config.md +183 -0
  278. package/skills/railway/deploy/references/monorepo.md +216 -0
  279. package/skills/railway/deploy/references/railpack.md +257 -0
  280. package/skills/railway/deploy/references/variables.md +170 -0
  281. package/skills/railway/deployment/SKILL.md +222 -0
  282. package/skills/railway/deployment/references/environment-config.md +183 -0
  283. package/skills/railway/deployment/references/monorepo.md +216 -0
  284. package/skills/railway/deployment/references/railpack.md +257 -0
  285. package/skills/railway/deployment/references/variables.md +170 -0
  286. package/skills/railway/domain/SKILL.md +137 -0
  287. package/skills/railway/domain/references/environment-config.md +183 -0
  288. package/skills/railway/domain/references/monorepo.md +216 -0
  289. package/skills/railway/domain/references/railpack.md +257 -0
  290. package/skills/railway/domain/references/variables.md +170 -0
  291. package/skills/railway/environment/SKILL.md +266 -0
  292. package/skills/railway/environment/references/environment-config.md +183 -0
  293. package/skills/railway/environment/references/monorepo.md +216 -0
  294. package/skills/railway/environment/references/railpack.md +257 -0
  295. package/skills/railway/environment/references/variables.md +170 -0
  296. package/skills/railway/metrics/SKILL.md +211 -0
  297. package/skills/railway/metrics/references/environment-config.md +183 -0
  298. package/skills/railway/metrics/references/monorepo.md +216 -0
  299. package/skills/railway/metrics/references/railpack.md +257 -0
  300. package/skills/railway/metrics/references/variables.md +170 -0
  301. package/skills/railway/metrics/scripts/railway-api.sh +41 -0
  302. package/skills/railway/new/SKILL.md +489 -0
  303. package/skills/railway/new/references/environment-config.md +183 -0
  304. package/skills/railway/new/references/monorepo.md +216 -0
  305. package/skills/railway/new/references/railpack.md +257 -0
  306. package/skills/railway/new/references/variables.md +170 -0
  307. package/skills/railway/projects/SKILL.md +142 -0
  308. package/skills/railway/projects/references/environment-config.md +183 -0
  309. package/skills/railway/projects/references/monorepo.md +216 -0
  310. package/skills/railway/projects/references/railpack.md +257 -0
  311. package/skills/railway/projects/references/variables.md +170 -0
  312. package/skills/railway/projects/scripts/railway-api.sh +41 -0
  313. package/skills/railway/railway-docs/SKILL.md +47 -0
  314. package/skills/railway/railway-docs/references/environment-config.md +183 -0
  315. package/skills/railway/railway-docs/references/monorepo.md +216 -0
  316. package/skills/railway/railway-docs/references/railpack.md +257 -0
  317. package/skills/railway/railway-docs/references/variables.md +170 -0
  318. package/skills/railway/service/SKILL.md +249 -0
  319. package/skills/railway/service/references/environment-config.md +183 -0
  320. package/skills/railway/service/references/monorepo.md +216 -0
  321. package/skills/railway/service/references/railpack.md +257 -0
  322. package/skills/railway/service/references/variables.md +170 -0
  323. package/skills/railway/service/scripts/railway-api.sh +41 -0
  324. package/skills/railway/status/SKILL.md +91 -0
  325. package/skills/railway/status/references/environment-config.md +183 -0
  326. package/skills/railway/status/references/monorepo.md +216 -0
  327. package/skills/railway/status/references/railpack.md +257 -0
  328. package/skills/railway/status/references/variables.md +170 -0
  329. package/skills/railway/templates/SKILL.md +275 -0
  330. package/skills/railway/templates/references/environment-config.md +183 -0
  331. package/skills/railway/templates/references/monorepo.md +216 -0
  332. package/skills/railway/templates/references/railpack.md +257 -0
  333. package/skills/railway/templates/references/variables.md +170 -0
  334. package/skills/railway/templates/scripts/railway-api.sh +41 -0
  335. package/skills/restart/SKILL.md +70 -0
  336. package/skills/review-pr/SKILL.md +367 -0
  337. package/skills/roi-calculator/SKILL.md +469 -0
  338. package/skills/scan/SKILL.md +232 -0
  339. package/skills/setup/SKILL.md +691 -0
  340. package/skills/share/SKILL.md +211 -0
  341. package/skills/solution-architect/SKILL.md +566 -0
  342. package/skills/sre/SKILL.md +362 -0
  343. package/skills/superpowers/brainstorming/SKILL.md +96 -0
  344. package/skills/superpowers/dispatching-parallel-agents/SKILL.md +180 -0
  345. package/skills/superpowers/executing-plans/SKILL.md +84 -0
  346. package/skills/superpowers/finishing-a-development-branch/SKILL.md +200 -0
  347. package/skills/superpowers/receiving-code-review/SKILL.md +213 -0
  348. package/skills/superpowers/requesting-code-review/SKILL.md +105 -0
  349. package/skills/superpowers/requesting-code-review/code-reviewer.md +146 -0
  350. package/skills/superpowers/subagent-driven-development/SKILL.md +242 -0
  351. package/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  352. package/skills/superpowers/subagent-driven-development/implementer-prompt.md +78 -0
  353. package/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  354. package/skills/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  355. package/skills/superpowers/systematic-debugging/SKILL.md +296 -0
  356. package/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  357. package/skills/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  358. package/skills/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  359. package/skills/superpowers/systematic-debugging/find-polluter.sh +63 -0
  360. package/skills/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  361. package/skills/superpowers/systematic-debugging/test-academic.md +14 -0
  362. package/skills/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  363. package/skills/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  364. package/skills/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  365. package/skills/superpowers/test-driven-development/SKILL.md +371 -0
  366. package/skills/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  367. package/skills/superpowers/using-git-worktrees/SKILL.md +218 -0
  368. package/skills/superpowers/using-superpowers/SKILL.md +95 -0
  369. package/skills/superpowers/verification-before-completion/SKILL.md +139 -0
  370. package/skills/superpowers/writing-plans/SKILL.md +116 -0
  371. package/skills/superpowers/writing-skills/SKILL.md +655 -0
  372. package/skills/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  373. package/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  374. package/skills/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  375. package/skills/superpowers/writing-skills/persuasion-principles.md +187 -0
  376. package/skills/superpowers/writing-skills/render-graphs.js +168 -0
  377. package/skills/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  378. package/skills/sync/SKILL.md +188 -0
  379. package/skills/templates/SKILL.md +194 -0
  380. package/skills/welcome/SKILL.md +136 -0
  381. package/skills/wizard/SKILL.md +411 -0
  382. package/templates/CLAUDE.md.managed-block +123 -0
  383. package/templates/CLAUDE.md.template +111 -0
  384. package/templates/consulting/engagement-tracker-template.md +181 -0
  385. package/templates/consulting/executive-summary-template.md +83 -0
  386. package/templates/consulting/maturity-assessment-template.md +182 -0
  387. package/templates/consulting/proposal-template.md +209 -0
  388. package/templates/consulting/roi-model-template.md +139 -0
  389. package/templates/consulting/solution-architecture-template.md +313 -0
  390. package/templates/settings.json +130 -0
@@ -0,0 +1,125 @@
1
+ #!/bin/bash
2
+ # PostToolUse hook (Bash): Auto-compare test results against /fix baseline.
3
+ # When a /fix is in progress (baseline files exist), any test run is automatically
4
+ # compared against the pre-fix baseline to detect regressions.
5
+ #
6
+ # Detects: pytest, jest, vitest, go test, cargo test, npm test
7
+ # Compares: pass/fail counts + specific test name changes
8
+ #
9
+ # stdout is injected as context — flags PASS→FAIL regressions immediately.
10
+
11
+ set -euo pipefail
12
+
13
+ COMMAND="${CLAUDE_TOOL_INPUT_COMMAND:-}"
14
+ if [ -z "$COMMAND" ] && [ -n "${CLAUDE_TOOL_INPUT:-}" ]; then
15
+ COMMAND=$(echo "$CLAUDE_TOOL_INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('command',''))" 2>/dev/null) || true
16
+ fi
17
+
18
+ OUTPUT="${CLAUDE_TOOL_OUTPUT:-}"
19
+ PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
20
+
21
+ [ -z "$COMMAND" ] && exit 0
22
+ [ -z "$OUTPUT" ] && exit 0
23
+
24
+ # ---------------------------------------------------------------------------
25
+ # Only run if a /fix baseline exists
26
+ # ---------------------------------------------------------------------------
27
+
28
+ BASELINE_BACKEND="$PROJECT_DIR/.claude/.fix-baseline-backend.txt"
29
+ BASELINE_FRONTEND="$PROJECT_DIR/.claude/.fix-baseline-frontend.txt"
30
+
31
+ # No baselines = no /fix in progress = nothing to compare
32
+ [ -f "$BASELINE_BACKEND" ] || [ -f "$BASELINE_FRONTEND" ] || exit 0
33
+
34
+ # ---------------------------------------------------------------------------
35
+ # Detect test runner
36
+ # ---------------------------------------------------------------------------
37
+
38
+ IS_TEST=false
39
+ BASELINE_FILE=""
40
+
41
+ # Python (pytest)
42
+ if echo "$COMMAND" | grep -qE '\bpytest\b|python\s+-m\s+pytest'; then
43
+ IS_TEST=true
44
+ BASELINE_FILE="$BASELINE_BACKEND"
45
+ fi
46
+
47
+ # Node (jest, vitest, npm test)
48
+ if echo "$COMMAND" | grep -qE '\bjest\b|\bvitest\b|npm\s+test|npx\s+(jest|vitest)'; then
49
+ IS_TEST=true
50
+ BASELINE_FILE="$BASELINE_FRONTEND"
51
+ fi
52
+
53
+ # Go
54
+ if echo "$COMMAND" | grep -qE '\bgo\s+test\b'; then
55
+ IS_TEST=true
56
+ BASELINE_FILE="$BASELINE_BACKEND"
57
+ fi
58
+
59
+ # Rust
60
+ if echo "$COMMAND" | grep -qE '\bcargo\s+test\b'; then
61
+ IS_TEST=true
62
+ BASELINE_FILE="$BASELINE_BACKEND"
63
+ fi
64
+
65
+ $IS_TEST || exit 0
66
+ [ -f "$BASELINE_FILE" ] || exit 0
67
+
68
+ # ---------------------------------------------------------------------------
69
+ # Extract pass/fail from current run
70
+ # ---------------------------------------------------------------------------
71
+
72
+ extract_counts() {
73
+ local text="$1"
74
+ local passed=0 failed=0
75
+
76
+ # pytest: "X passed, Y failed"
77
+ passed=$(echo "$text" | grep -oE '[0-9]+ passed' | grep -oE '[0-9]+' | head -1) || true
78
+ failed=$(echo "$text" | grep -oE '[0-9]+ failed' | grep -oE '[0-9]+' | head -1) || true
79
+
80
+ # jest/vitest: "Tests: X passed, Y failed"
81
+ if [ -z "$passed" ]; then
82
+ passed=$(echo "$text" | grep -oE 'Tests:.*[0-9]+ passed' | grep -oE '[0-9]+ passed' | grep -oE '[0-9]+') || true
83
+ failed=$(echo "$text" | grep -oE 'Tests:.*[0-9]+ failed' | grep -oE '[0-9]+ failed' | grep -oE '[0-9]+') || true
84
+ fi
85
+
86
+ # go test: "ok" lines = passed, "FAIL" lines = failed
87
+ if [ -z "$passed" ]; then
88
+ passed=$(echo "$text" | grep -c "^ok" 2>/dev/null) || true
89
+ failed=$(echo "$text" | grep -c "^FAIL" 2>/dev/null) || true
90
+ fi
91
+
92
+ echo "${passed:-0} ${failed:-0}"
93
+ }
94
+
95
+ # Extract from baseline
96
+ read BASELINE_PASSED BASELINE_FAILED <<< "$(extract_counts "$(cat "$BASELINE_FILE")")"
97
+
98
+ # Extract from current run
99
+ read CURRENT_PASSED CURRENT_FAILED <<< "$(extract_counts "$OUTPUT")"
100
+
101
+ # ---------------------------------------------------------------------------
102
+ # Compare and report
103
+ # ---------------------------------------------------------------------------
104
+
105
+ # Calculate changes
106
+ NEW_FAILURES=$((${CURRENT_FAILED:-0} - ${BASELINE_FAILED:-0}))
107
+ NEW_PASSES=$((${CURRENT_PASSED:-0} - ${BASELINE_PASSED:-0}))
108
+
109
+ if [ "${NEW_FAILURES:-0}" -gt 0 ]; then
110
+ echo "⚠️ DIFFERENTIAL TEST WARNING: ${NEW_FAILURES} new failure(s) detected vs pre-fix baseline"
111
+ echo " Baseline: ${BASELINE_PASSED} passed, ${BASELINE_FAILED} failed"
112
+ echo " Current: ${CURRENT_PASSED} passed, ${CURRENT_FAILED} failed"
113
+ echo " → ${NEW_FAILURES} test(s) went from PASS → FAIL — fix may have side effects"
114
+ echo " Check the behavior contract: are these expected changes or regressions?"
115
+ elif [ "${NEW_PASSES:-0}" -gt 0 ] && [ "${NEW_FAILURES:-0}" -le 0 ]; then
116
+ echo "✓ Differential test: ${NEW_PASSES} new pass(es), 0 new failures (fix looks clean)"
117
+ echo " Baseline: ${BASELINE_PASSED} passed, ${BASELINE_FAILED} failed"
118
+ echo " Current: ${CURRENT_PASSED} passed, ${CURRENT_FAILED} failed"
119
+ elif [ "${CURRENT_PASSED:-0}" -eq "${BASELINE_PASSED:-0}" ] && [ "${CURRENT_FAILED:-0}" -eq "${BASELINE_FAILED:-0}" ]; then
120
+ echo "ℹ️ Differential test: no change from baseline (${CURRENT_PASSED} passed, ${CURRENT_FAILED} failed)"
121
+ echo " If this is after applying the fix, the bug-related tests should have changed."
122
+ echo " Check: did the fix actually change the test outcomes?"
123
+ fi
124
+
125
+ exit 0
@@ -0,0 +1,115 @@
1
+ #!/bin/bash
2
+ # PostToolUse hook (Bash): Summarize test results after test runs.
3
+ # Detects pytest, jest, vitest, playwright output and injects a compact summary.
4
+ #
5
+ # stdout is injected as context.
6
+
7
+ set -euo pipefail
8
+
9
+ # Extract the command that was run
10
+ COMMAND="${CLAUDE_TOOL_INPUT_COMMAND:-}"
11
+ if [ -z "$COMMAND" ] && [ -n "${CLAUDE_TOOL_INPUT:-}" ]; then
12
+ COMMAND=$(echo "$CLAUDE_TOOL_INPUT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('command',''))" 2>/dev/null) || true
13
+ fi
14
+
15
+ # Get the tool output
16
+ OUTPUT="${CLAUDE_TOOL_OUTPUT:-}"
17
+
18
+ [ -z "$COMMAND" ] && exit 0
19
+ [ -z "$OUTPUT" ] && exit 0
20
+
21
+ # ---------------------------------------------------------------------------
22
+ # Detect test runner and parse results
23
+ # ---------------------------------------------------------------------------
24
+
25
+ # pytest
26
+ if echo "$COMMAND" | grep -qE '\bpytest\b|python\s+-m\s+pytest'; then
27
+ # Look for the summary line: "X passed, Y failed, Z errors in Ns"
28
+ summary_line=$(echo "$OUTPUT" | grep -oE '[0-9]+ passed|[0-9]+ failed|[0-9]+ error' | head -5) || true
29
+
30
+ if [ -n "$summary_line" ]; then
31
+ passed=$(echo "$summary_line" | grep -oE '[0-9]+ passed' | grep -oE '[0-9]+') || echo "0"
32
+ failed=$(echo "$summary_line" | grep -oE '[0-9]+ failed' | grep -oE '[0-9]+') || echo "0"
33
+ errors=$(echo "$summary_line" | grep -oE '[0-9]+ error' | grep -oE '[0-9]+') || echo "0"
34
+
35
+ echo "TEST SUMMARY (pytest): ${passed:-0} passed, ${failed:-0} failed, ${errors:-0} errors"
36
+
37
+ # Extract failure names (FAILED lines)
38
+ if [ "${failed:-0}" -gt 0 ] || [ "${errors:-0}" -gt 0 ]; then
39
+ echo " Failures:"
40
+ echo "$OUTPUT" | grep -E '^FAILED |^ERROR ' | head -5 | while read -r line; do
41
+ echo " ${line}"
42
+ done
43
+ fi
44
+ fi
45
+ exit 0
46
+ fi
47
+
48
+ # jest / vitest
49
+ if echo "$COMMAND" | grep -qE '\bnpm\s+test\b|\bnpx\s+(jest|vitest)\b|\bvitest\b'; then
50
+ # Jest summary: "Test Suites: X passed, Y failed" / "Tests: X passed, Y failed"
51
+ suite_line=$(echo "$OUTPUT" | grep -oE 'Test Suites:.*' | head -1) || true
52
+ test_line=$(echo "$OUTPUT" | grep -oE 'Tests:.*' | head -1) || true
53
+
54
+ if [ -n "$suite_line" ] || [ -n "$test_line" ]; then
55
+ echo "TEST SUMMARY (jest/vitest):"
56
+ [ -n "$suite_line" ] && echo " ${suite_line}"
57
+ [ -n "$test_line" ] && echo " ${test_line}"
58
+
59
+ # Extract failed test names
60
+ echo "$OUTPUT" | grep -E '✕|✗|FAIL ' | head -5 | while read -r line; do
61
+ echo " ${line}"
62
+ done
63
+ fi
64
+ exit 0
65
+ fi
66
+
67
+ # playwright
68
+ if echo "$COMMAND" | grep -qE '\bplaywright\s+test\b'; then
69
+ # Playwright summary: "X passed" / "X failed"
70
+ summary=$(echo "$OUTPUT" | grep -oE '[0-9]+ passed|[0-9]+ failed|[0-9]+ skipped' | head -5) || true
71
+
72
+ if [ -n "$summary" ]; then
73
+ passed=$(echo "$summary" | grep -oE '[0-9]+ passed' | grep -oE '[0-9]+') || echo "0"
74
+ failed=$(echo "$summary" | grep -oE '[0-9]+ failed' | grep -oE '[0-9]+') || echo "0"
75
+
76
+ echo "TEST SUMMARY (playwright): ${passed:-0} passed, ${failed:-0} failed"
77
+
78
+ if [ "${failed:-0}" -gt 0 ]; then
79
+ echo " Failed tests:"
80
+ echo "$OUTPUT" | grep -E '✘|FAILED|failed' | head -5 | while read -r line; do
81
+ echo " ${line}"
82
+ done
83
+ fi
84
+ fi
85
+ exit 0
86
+ fi
87
+
88
+ # Lint checks (ruff, eslint)
89
+ if echo "$COMMAND" | grep -qE '\bruff\s+check\b'; then
90
+ error_count=$(echo "$OUTPUT" | grep -cE '^\S+:\d+:\d+:' 2>/dev/null) || echo "0"
91
+ if [ "${error_count:-0}" -gt 0 ]; then
92
+ echo "LINT SUMMARY (ruff): ${error_count} issues found"
93
+ # Show first 3 errors
94
+ echo "$OUTPUT" | grep -E '^\S+:\d+:\d+:' | head -3 | while read -r line; do
95
+ echo " ${line}"
96
+ done
97
+ [ "$error_count" -gt 3 ] && echo " ... and $((error_count - 3)) more"
98
+ fi
99
+ exit 0
100
+ fi
101
+
102
+ # TypeScript type check
103
+ if echo "$COMMAND" | grep -qE '\btsc\s+--noEmit\b'; then
104
+ error_count=$(echo "$OUTPUT" | grep -cE '^.+\(\d+,\d+\): error' 2>/dev/null) || echo "0"
105
+ if [ "${error_count:-0}" -gt 0 ]; then
106
+ echo "TYPE CHECK SUMMARY (tsc): ${error_count} type errors"
107
+ echo "$OUTPUT" | grep -E '^.+\(\d+,\d+\): error' | head -3 | while read -r line; do
108
+ echo " ${line}"
109
+ done
110
+ [ "$error_count" -gt 3 ] && echo " ... and $((error_count - 3)) more"
111
+ fi
112
+ exit 0
113
+ fi
114
+
115
+ exit 0
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: qa
3
+ description: "Run QA checks. Usage: /qa (commit), /qa full (comprehensive), /qa staging (deployed), /qa prod (read-only)."
4
+ user-invocable: true
5
+ arguments: "<mode>"
6
+ ---
7
+
8
+ # Universal QA Framework
9
+
10
+ ## Mode Detection
11
+
12
+ Parse the mode from the argument:
13
+ - No argument / empty / "commit" → **commit** mode
14
+ - "full" → **full** mode
15
+ - "staging" → **staging** deployment verification
16
+ - "prod" / "production" → **prod** deployment verification
17
+
18
+ ## Mode: {{ mode }}
19
+
20
+ You are the Chief QA Agent. Execute the QA framework in **{{ mode }}** mode.
21
+
22
+ ### Quick Reference
23
+ - **commit mode**: Analyze `git diff HEAD~1`, run targeted checks on changed files only, spawn 2-4 agents, generate 5-8 test scenarios, produce targeted report (~1-3 min)
24
+ - **full mode**: Analyze `git diff main...HEAD`, run ALL checks across full codebase, spawn ALL worker agents, generate 10-15 test scenarios, comprehensive report (~10-20 min)
25
+ - **staging mode**: Resolve staging URLs from CLAUDE.md Infrastructure table, run health + smoke + E2E against deployed staging
26
+ - **prod mode**: Resolve production URLs from CLAUDE.md, READ-ONLY health + smoke (NO mutations)
27
+
28
+ ### Execution Steps
29
+
30
+ 1. **Read configuration**: Load `CLAUDE.md` for test commands, services, infrastructure. Also load `qa-manifest.yml` if it exists.
31
+
32
+ 2. **Analyze changes**:
33
+ - commit mode: `git diff HEAD~1 --name-only`
34
+ - full mode: `git diff main...HEAD --name-only` + `git log --oneline -10`
35
+ - staging/prod: `git log --oneline -1` (just for commit hash in report)
36
+
37
+ 2b. **Find related test files with explore-light** (cost: 1x Haiku):
38
+
39
+ Before planning which agents to spawn, find what tests already exist for the changed files:
40
+
41
+ ```
42
+ subagent_type: "explore-light"
43
+ prompt: "For each of these changed files, find:
44
+ 1. Existing test files that test this code (by import, naming convention, or directory)
45
+ 2. Whether the test file has been updated in this diff (or is stale)
46
+ 3. Related files that SHOULD be tested but might not have tests
47
+
48
+ Changed files: {from step 2}
49
+ Return: mapping of source file → test file (or 'NO TEST' if missing)"
50
+ ```
51
+
52
+ Use the results to:
53
+ - Skip spawning test agents for files that have no tests (flag as coverage gap instead)
54
+ - Focus test agents on files that DO have tests (verify they still pass)
55
+ - Identify new code without tests (recommend adding them)
56
+
57
+ 3. **Plan test strategy** using the directory heuristic:
58
+ | Changed files in... | Spawn agent... |
59
+ |---------------------|----------------|
60
+ | Backend directory | backend-qa (Haiku): lint, type check, tests |
61
+ | Frontend directory | frontend-qa (Haiku): lint, type check, tests, build |
62
+ | Frontend pages/routes or E2E tests | e2e-qa (Sonnet): Playwright/Cypress |
63
+ | Schema/type files (both sides) | contract-qa (Haiku): schema diff |
64
+ | Migration files | contract-qa: migration validation |
65
+ | Domain-specific files | domain-qa (Sonnet): business logic checks |
66
+ | 5+ files changed (commit) or full mode | code-review (Sonnet): architectural review |
67
+
68
+ 4. **Generate test scenarios**: Think like real users. What user-facing behavior changed? What edge cases matter? What could break elsewhere?
69
+
70
+ 5. **Create team and spawn agents**: Use TeamCreate + TaskCreate + Task tool. Spawn ALL agents in ONE message for maximum parallelism.
71
+
72
+ 6. **Collect results**: Monitor TaskList, collect SendMessage results from all agents.
73
+
74
+ 7. **Run coverage audit**: Review if existing tests still match the codebase. Flag new code without tests, stale tests, dead tests.
75
+
76
+ 8. **Produce report**: Structured QA report with change analysis, check results, failures, warnings, coverage, E2E results, domain quality, code review, scenario results, and actionable next steps.
77
+
78
+ 9. **Cleanup**: Shutdown all agents, TeamDelete, stop QA-started servers.
79
+
80
+ ### Three-Layer Test Strategy
81
+ Every QA run uses three complementary layers:
82
+ 1. **Baseline Tests** — existing test suites (regression anchor, same every run)
83
+ 2. **Generated Scenarios** — fresh every run, thinks like real users based on diff
84
+ 3. **Coverage Audit** — reviews if existing tests still match the codebase
85
+
86
+ ### Important Notes
87
+ - Read CLAUDE.md for ALL project-specific paths, commands, ports, and conventions
88
+ - Generated scenarios are NOT persisted as test files — they're one-off explorations
89
+ - If a generated scenario catches a bug, recommend adding a permanent baseline test
90
+ - Domain validation Tier 3 is ADVISORY ONLY — never gates deployment
91
+ - Use 600000ms timeout for E2E Bash calls
92
+
93
+ ## Continuation (Workflow Chaining)
94
+
95
+ After QA completes:
96
+
97
+ **If autopilot is active** (check `.claude/.workflow-state.json` mode == "autopilot"):
98
+ - If QA **passed**: proceed to `/review-pr` then `/pr`
99
+ - Detect change type: if `.claude/.fix-scope-lock.json` exists → bug fix, else → feature
100
+ - Run `/review-pr --type {bug|feature}` for automated review
101
+ - If review passes → update workflow state: `phase: "pr"`, create PR
102
+ - If review has blocking issues → attempt fix, re-run QA + review
103
+ - If QA **failed**: attempt fix (max 2 rounds), then re-run QA
104
+ - If still failing after 2 attempts: STOP, report failures, wait for human
105
+ - Update workflow state: `phase: "blocked"`, increment `attempts.qa_fixes`
106
+
107
+ **If guided mode** (no autopilot or mode != "autopilot"):
108
+ - If QA **passed**:
109
+ - Detect change type:
110
+ - `.claude/.fix-scope-lock.json` exists → this is a **bug fix**
111
+ - `.claude/plans/*.md` was referenced → this is a **feature**
112
+ - Neither → ask user or default to feature
113
+ - Present:
114
+ ```
115
+ QA passed. Next step: code review before creating PR.
116
+
117
+ Detected: {bug fix | feature}
118
+ Recommended: /review-pr {--type bug | --type feature}
119
+
120
+ This will check: {scope compliance + regression test (bug) | plan completeness + test coverage (feature)}
121
+ Then: /pr to create the pull request.
122
+
123
+ Run /review-pr now? Or skip to /pr?
124
+ ```
125
+ - If user says "skip" → proceed to `/pr` directly
126
+ - If user approves → run `/review-pr`, then suggest `/pr`
127
+ - If QA **failed**: "QA found N failures. Here's what went wrong: [details]. Should I fix and re-run?"
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: qa-incident
3
+ description: "Manually create a QA incident from a known issue. Usage: /qa-incident <description>"
4
+ user-invocable: true
5
+ arguments: "<description>"
6
+ ---
7
+
8
+ # Create QA Incident
9
+
10
+ Manually log a production incident or known issue to the QA knowledge base, so the next `/qa` run generates a regression test for it.
11
+
12
+ ## Process
13
+
14
+ 1. **Parse the description** from the argument.
15
+
16
+ 2. **Ask clarifying questions** (use AskUserQuestion):
17
+ - Severity: high / medium / low
18
+ - Affected files (if known)
19
+ - Root cause (if known)
20
+
21
+ 3. **Create incident file** at `.claude/qa-knowledge/incidents/{date}-{slug}.md`:
22
+
23
+ ```markdown
24
+ ---
25
+ date: {today YYYY-MM-DD}
26
+ severity: {from user}
27
+ status: uncovered
28
+ affected_files:
29
+ - {from user, or "unknown"}
30
+ ---
31
+ # {Title from description}
32
+
33
+ ## Root Cause
34
+ {From user, or "To be investigated"}
35
+
36
+ ## How QA Missed It
37
+ {Infer from context, or "Unknown -- needs investigation"}
38
+
39
+ ## Regression Test Recommendation
40
+ {Suggest based on description and affected files}
41
+ ```
42
+
43
+ 4. **Confirm to user**: "Incident logged. Next `/qa` run will generate a regression test targeting this issue."
44
+
45
+ ## If No Description Provided
46
+
47
+ Ask: "Describe the issue you want to log (e.g., 'admin page crashes when user has no sessions')"
48
+
49
+ ## If Knowledge Base Doesn't Exist
50
+
51
+ Create the directory structure first:
52
+ ```bash
53
+ mkdir -p .claude/qa-knowledge/incidents
54
+ ```
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: qa-learn
3
+ description: "Review QA knowledge base stats, prune stale entries, show learning metrics. Usage: /qa-learn [prune]"
4
+ user-invocable: true
5
+ arguments: "<command>"
6
+ ---
7
+
8
+ # QA Learning Review
9
+
10
+ Review the self-improving QA system's accumulated knowledge.
11
+
12
+ ## Default: Show Stats
13
+
14
+ Read and summarize the QA knowledge base:
15
+
16
+ 1. **Incidents**: Count files in `.claude/qa-knowledge/incidents/`. Show covered vs uncovered.
17
+ 2. **Promoted tests**: Count files in `.claude/qa-knowledge/promoted-tests/`. List test file paths.
18
+ 3. **Bug patterns**: Count patterns in `.claude/qa-knowledge/bug-patterns.md`.
19
+ 4. **Coverage gaps**: Count gaps in `.claude/qa-knowledge/coverage-gaps.md`.
20
+ 5. **Challenger log**: Count entries in `.claude/qa-knowledge/challenger-log.md`. Show hit rate (attacks that found issues / total attacks).
21
+
22
+ Present as a structured table:
23
+
24
+ | Metric | Count | Details |
25
+ |--------|-------|---------|
26
+ | Incidents (uncovered) | N | {list titles} |
27
+ | Incidents (covered) | N | {list titles} |
28
+ | Promoted tests | N | {list file paths} |
29
+ | Bug patterns | N | |
30
+ | Coverage gaps | N | |
31
+ | Challenger attacks (total) | N | |
32
+ | Challenger hit rate | X% | {found issues / total} |
33
+
34
+ ## `/qa-learn prune`
35
+
36
+ Remove stale entries:
37
+ 1. Incidents with `status: covered` older than 30 days -> archive or delete
38
+ 2. Promoted tests whose source test file no longer exists -> remove provenance
39
+ 3. Coverage gaps that now have test coverage -> remove
40
+ 4. Challenger log entries older than 90 days -> truncate
41
+
42
+ Report what was pruned.
43
+
44
+ ## If Knowledge Base Doesn't Exist
45
+
46
+ If `.claude/qa-knowledge/` doesn't exist, report:
47
+ "QA knowledge base not initialized. Run `/qa commit` or `/qa full` to start accumulating knowledge."
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "scalpel",
3
+ "description": "Surgical bug fixing — targeted fixes, CI repair, issue triage",
4
+ "version": "1.0.0",
5
+ "author": "Arth AI"
6
+ }
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: code-reviewer
3
+ description: |
4
+ Use this agent when a major project step has been completed and needs to be reviewed against the original plan and coding standards. Examples: <example>Context: The user is creating a code-review agent that should be called after a logical chunk of code is written. user: "I've finished implementing the user authentication system as outlined in step 3 of our plan" assistant: "Great work! Now let me use the code-reviewer agent to review the implementation against our plan and coding standards" <commentary>Since a major project step has been completed, use the code-reviewer agent to validate the work against the plan and identify any issues.</commentary></example> <example>Context: User has completed a significant feature implementation. user: "The API endpoints for the task management system are now complete - that covers step 2 from our architecture document" assistant: "Excellent! Let me have the code-reviewer agent examine this implementation to ensure it aligns with our plan and follows best practices" <commentary>A numbered step from the planning document has been completed, so the code-reviewer agent should review the work.</commentary></example>
5
+ model: inherit
6
+ ---
7
+
8
+ You are a Senior Code Reviewer with expertise in software architecture, design patterns, and best practices. Your role is to review completed project steps against original plans and ensure code quality standards are met.
9
+
10
+ ## Project Context Discovery
11
+
12
+ ### Project Context Sources
13
+
14
+ Read these before reviewing ANY code:
15
+ 1. `.claude/project-profile.md` — architecture, conventions, domain model (from /calibrate)
16
+ 2. `.claude/knowledge/shared/conventions.md` — coding rules learned from corrections
17
+ 3. `.claude/knowledge/shared/patterns.md` — established architecture patterns
18
+ 4. `.claude/knowledge/skills/review-pr.md` — past review patterns for this project
19
+ 5. `.claude/qa-knowledge/bug-patterns.md` — known bug patterns to watch for
20
+
21
+ Use these to calibrate your review:
22
+ - Match code quality checks to the project's ACTUAL conventions (not generic best practices)
23
+ - Flag violations of established patterns from the knowledge base
24
+ - Check if changed files have had past bugs (from incidents/)
25
+ - Apply project-specific review criteria from the profile
26
+
27
+ Before reviewing, read `CLAUDE.md` in the project root for:
28
+ - Tech stack, frameworks, and conventions
29
+ - Security requirements and auth patterns
30
+ - Testing standards and coverage thresholds
31
+
32
+ ## CRITICAL: Always Produce Structured Output
33
+
34
+ Your review MUST ALWAYS include a structured findings section with explicit severity labels.
35
+ Even if no issues are found, output the structure with "No issues found" under each category.
36
+
37
+ **Required output format:**
38
+ ```
39
+ ## Security Review
40
+ - **[CRITICAL]** / **[HIGH]** / **[MEDIUM]** / **[LOW]** — description of finding
41
+ - File: path/to/file.py:line
42
+ - Risk: what could go wrong
43
+ - Fix: specific remediation
44
+
45
+ ## Code Quality Review
46
+ - **[severity]** — description
47
+ ...
48
+
49
+ ## Summary
50
+ - Security issues: N (X critical, Y high, Z medium)
51
+ - Code quality issues: N
52
+ - Recommendation: APPROVE / REQUEST CHANGES / BLOCK
53
+ ```
54
+
55
+ When reviewing for security specifically, ALWAYS check for:
56
+ - Missing authentication on endpoints (especially DELETE, PUT, PATCH)
57
+ - SQL injection via string interpolation/f-strings in queries
58
+ - Missing input validation/sanitization
59
+ - Hardcoded secrets or credentials
60
+ - Missing authorization checks (ownership, role-based access)
61
+
62
+ When reviewing completed work, you will:
63
+
64
+ 1. **Plan Alignment Analysis**:
65
+ - Compare the implementation against the original planning document or step description
66
+ - Identify any deviations from the planned approach, architecture, or requirements
67
+ - Assess whether deviations are justified improvements or problematic departures
68
+ - Verify that all planned functionality has been implemented
69
+
70
+ 2. **Code Quality Assessment**:
71
+ - Review code for adherence to established patterns and conventions
72
+ - Check for proper error handling, type safety, and defensive programming
73
+ - Evaluate code organization, naming conventions, and maintainability
74
+ - Assess test coverage and quality of test implementations
75
+ - Look for potential security vulnerabilities or performance issues
76
+
77
+ 3. **Architecture and Design Review**:
78
+ - Ensure the implementation follows SOLID principles and established architectural patterns
79
+ - Check for proper separation of concerns and loose coupling
80
+ - Verify that the code integrates well with existing systems
81
+ - Assess scalability and extensibility considerations
82
+
83
+ 4. **Documentation and Standards**:
84
+ - Verify that code includes appropriate comments and documentation
85
+ - Check that file headers, function documentation, and inline comments are present and accurate
86
+ - Ensure adherence to project-specific coding standards and conventions
87
+
88
+ 5. **Issue Identification and Recommendations**:
89
+ - Clearly categorize issues as: Critical (must fix), Important (should fix), or Suggestions (nice to have)
90
+ - For each issue, provide specific examples and actionable recommendations
91
+ - When you identify plan deviations, explain whether they're problematic or beneficial
92
+ - Suggest specific improvements with code examples when helpful
93
+
94
+ 6. **Communication Protocol**:
95
+ - If you find significant deviations from the plan, ask the coding agent to review and confirm the changes
96
+ - If you identify issues with the original plan itself, recommend plan updates
97
+ - For implementation problems, provide clear guidance on fixes needed
98
+ - Always acknowledge what was done well before highlighting issues
99
+
100
+ Your output should be structured, actionable, and focused on helping maintain high code quality while ensuring project goals are met. Be thorough but concise, and always provide constructive feedback that helps improve both the current implementation and future development practices.
101
+
102
+ ## Knowledge Base Integration
103
+
104
+ ### On every review:
105
+ 1. Read `knowledge/shared/conventions.md` — review against actual project conventions
106
+ 2. Read `knowledge/skills/review-pr.md` — check for recurring review patterns
107
+ 3. Read `qa-knowledge/bug-patterns.md` — flag code in areas with known bugs
108
+
109
+ ### After review:
110
+ - Append recurring findings to `knowledge/skills/review-pr.md`
111
+ - If you discover a convention not in the knowledge base, append to `knowledge/shared/conventions.md`
112
+
113
+ ### /calibrate Integration
114
+ If project-profile.md exists, use its conventions for review criteria.
115
+ If it doesn't, recommend running /calibrate for better code review accuracy.
@@ -0,0 +1,26 @@
1
+ {
2
+ "hooks": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "Edit",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/pre-edit-guard.sh",
10
+ "timeout": 5
11
+ }
12
+ ]
13
+ },
14
+ {
15
+ "matcher": "Write",
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/pre-edit-guard.sh",
20
+ "timeout": 5
21
+ }
22
+ ]
23
+ }
24
+ ]
25
+ }
26
+ }