agents-inc 0.149.1 → 0.150.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 (572) hide show
  1. package/CHANGELOG.md +2277 -0
  2. package/LICENSE +21 -0
  3. package/README.md +136 -19
  4. package/assets/demo.gif +0 -0
  5. package/assets/demo.tape +266 -0
  6. package/assets/logo.svg +75 -0
  7. package/dist/chunk-2RSNKBXC.js +84 -0
  8. package/dist/chunk-2RSNKBXC.js.map +1 -0
  9. package/dist/chunk-3LIU2ZEF.js +1355 -0
  10. package/dist/chunk-3LIU2ZEF.js.map +1 -0
  11. package/dist/chunk-4GL2F5AB.js +222 -0
  12. package/dist/chunk-4GL2F5AB.js.map +1 -0
  13. package/dist/chunk-4LPJZNT7.js +382 -0
  14. package/dist/chunk-4LPJZNT7.js.map +1 -0
  15. package/dist/chunk-5K5RBRTD.js +62 -0
  16. package/dist/chunk-5K5RBRTD.js.map +1 -0
  17. package/dist/chunk-6I6RZHYP.js +789 -0
  18. package/dist/chunk-6I6RZHYP.js.map +1 -0
  19. package/dist/chunk-7URSGJLE.js +430 -0
  20. package/dist/chunk-7URSGJLE.js.map +1 -0
  21. package/dist/chunk-C55DN7GE.js +35 -0
  22. package/dist/chunk-C55DN7GE.js.map +1 -0
  23. package/dist/chunk-CDMHSHBN.js +68 -0
  24. package/dist/chunk-CDMHSHBN.js.map +1 -0
  25. package/dist/chunk-CFQT72MJ.js +92 -0
  26. package/dist/chunk-CFQT72MJ.js.map +1 -0
  27. package/dist/chunk-DAG2ULNF.js +125 -0
  28. package/dist/chunk-DAG2ULNF.js.map +1 -0
  29. package/dist/chunk-DDG4F3FE.js +181 -0
  30. package/dist/chunk-DDG4F3FE.js.map +1 -0
  31. package/dist/chunk-DIBCRIMR.js +36 -0
  32. package/dist/chunk-DIBCRIMR.js.map +1 -0
  33. package/dist/chunk-DJAZE4PD.js +10929 -0
  34. package/dist/chunk-DJAZE4PD.js.map +1 -0
  35. package/dist/chunk-DUVWGO6E.js +54 -0
  36. package/dist/chunk-DUVWGO6E.js.map +1 -0
  37. package/dist/chunk-E4FT2KFV.js +174 -0
  38. package/dist/chunk-E4FT2KFV.js.map +1 -0
  39. package/dist/chunk-EKWAUOQB.js +96 -0
  40. package/dist/chunk-EKWAUOQB.js.map +1 -0
  41. package/dist/chunk-EN2GCPW7.js +300 -0
  42. package/dist/chunk-EN2GCPW7.js.map +1 -0
  43. package/dist/chunk-ES3NJZON.js +31 -0
  44. package/dist/chunk-ES3NJZON.js.map +1 -0
  45. package/dist/chunk-F3756A5B.js +20 -0
  46. package/dist/chunk-F3756A5B.js.map +1 -0
  47. package/dist/chunk-FWT3CBLL.js +51 -0
  48. package/dist/chunk-FWT3CBLL.js.map +1 -0
  49. package/dist/chunk-FYPUUYSG.js +31 -0
  50. package/dist/chunk-FYPUUYSG.js.map +1 -0
  51. package/dist/chunk-GRPSDKIS.js +112 -0
  52. package/dist/chunk-GRPSDKIS.js.map +1 -0
  53. package/dist/chunk-GYG5SE2D.js +81 -0
  54. package/dist/chunk-GYG5SE2D.js.map +1 -0
  55. package/dist/chunk-HIPGKIT3.js +287 -0
  56. package/dist/chunk-HIPGKIT3.js.map +1 -0
  57. package/dist/chunk-I3XKEGHM.js +16383 -0
  58. package/dist/chunk-I3XKEGHM.js.map +1 -0
  59. package/dist/chunk-IHO75PMZ.js +40 -0
  60. package/dist/chunk-IHO75PMZ.js.map +1 -0
  61. package/dist/chunk-IOJR5TOY.js +47 -0
  62. package/dist/chunk-IOJR5TOY.js.map +1 -0
  63. package/dist/chunk-K3OU6TGX.js +77 -0
  64. package/dist/chunk-K3OU6TGX.js.map +1 -0
  65. package/dist/chunk-KH7MOIM5.js +6010 -0
  66. package/dist/chunk-KH7MOIM5.js.map +1 -0
  67. package/dist/chunk-KIR7VYQD.js +63 -0
  68. package/dist/chunk-KIR7VYQD.js.map +1 -0
  69. package/dist/chunk-KOPEM3Q7.js +27 -0
  70. package/dist/chunk-KOPEM3Q7.js.map +1 -0
  71. package/dist/chunk-KSZ6PCY4.js +43 -0
  72. package/dist/chunk-KSZ6PCY4.js.map +1 -0
  73. package/dist/chunk-LRYNF3J7.js +111 -0
  74. package/dist/chunk-LRYNF3J7.js.map +1 -0
  75. package/dist/chunk-LYYXX2W5.js +87 -0
  76. package/dist/chunk-LYYXX2W5.js.map +1 -0
  77. package/dist/chunk-MC5DUZ3V.js +1135 -0
  78. package/dist/chunk-MC5DUZ3V.js.map +1 -0
  79. package/dist/chunk-N4IZ6GBO.js +300 -0
  80. package/dist/chunk-N4IZ6GBO.js.map +1 -0
  81. package/dist/chunk-NIKUMXE7.js +24 -0
  82. package/dist/chunk-NIKUMXE7.js.map +1 -0
  83. package/dist/chunk-NUIZ6ZUO.js +42 -0
  84. package/dist/chunk-NUIZ6ZUO.js.map +1 -0
  85. package/dist/chunk-O5ASLZ2K.js +270 -0
  86. package/dist/chunk-O5ASLZ2K.js.map +1 -0
  87. package/dist/chunk-OA5SUEQD.js +181 -0
  88. package/dist/chunk-OA5SUEQD.js.map +1 -0
  89. package/dist/chunk-OZZGXBCN.js +15 -0
  90. package/dist/chunk-OZZGXBCN.js.map +1 -0
  91. package/dist/chunk-P3PN5SVI.js +27 -0
  92. package/dist/chunk-P3PN5SVI.js.map +1 -0
  93. package/dist/chunk-P56WJ5FA.js +50 -0
  94. package/dist/chunk-P56WJ5FA.js.map +1 -0
  95. package/dist/chunk-PG4G4IIK.js +24 -0
  96. package/dist/chunk-PG4G4IIK.js.map +1 -0
  97. package/dist/chunk-QQLRX4KI.js +41 -0
  98. package/dist/chunk-QQLRX4KI.js.map +1 -0
  99. package/dist/chunk-RBHYLCUB.js +31 -0
  100. package/dist/chunk-RBHYLCUB.js.map +1 -0
  101. package/dist/chunk-RJN7W2C7.js +349 -0
  102. package/dist/chunk-RJN7W2C7.js.map +1 -0
  103. package/dist/chunk-RP7R73JO.js +179 -0
  104. package/dist/chunk-RP7R73JO.js.map +1 -0
  105. package/dist/chunk-SYUOXSPU.js +510 -0
  106. package/dist/chunk-SYUOXSPU.js.map +1 -0
  107. package/dist/chunk-THKIOI32.js +939 -0
  108. package/dist/chunk-THKIOI32.js.map +1 -0
  109. package/dist/chunk-UZRISDBZ.js +28 -0
  110. package/dist/chunk-UZRISDBZ.js.map +1 -0
  111. package/dist/chunk-V7QOSGQA.js +298 -0
  112. package/dist/chunk-V7QOSGQA.js.map +1 -0
  113. package/dist/chunk-VEP23B5W.js +27 -0
  114. package/dist/chunk-VEP23B5W.js.map +1 -0
  115. package/dist/chunk-VG2TVBFN.js +52 -0
  116. package/dist/chunk-VG2TVBFN.js.map +1 -0
  117. package/dist/chunk-VIFZ6NFH.js +27 -0
  118. package/dist/chunk-VIFZ6NFH.js.map +1 -0
  119. package/dist/chunk-XA57SX4T.js +115 -0
  120. package/dist/chunk-XA57SX4T.js.map +1 -0
  121. package/dist/chunk-YKKIJHZB.js +339 -0
  122. package/dist/chunk-YKKIJHZB.js.map +1 -0
  123. package/dist/chunk-YU2VGX5R.js +4205 -0
  124. package/dist/chunk-YU2VGX5R.js.map +1 -0
  125. package/dist/chunk-ZDLTLNU2.js +258 -0
  126. package/dist/chunk-ZDLTLNU2.js.map +1 -0
  127. package/dist/chunk-ZHTXPFDK.js +128 -0
  128. package/dist/chunk-ZHTXPFDK.js.map +1 -0
  129. package/dist/chunk-ZKJAJWK6.js +253 -0
  130. package/dist/chunk-ZKJAJWK6.js.map +1 -0
  131. package/dist/commands/build/marketplace.js +250 -0
  132. package/dist/commands/build/marketplace.js.map +1 -0
  133. package/dist/commands/build/plugins.js +176 -0
  134. package/dist/commands/build/plugins.js.map +1 -0
  135. package/dist/commands/compile.js +331 -0
  136. package/dist/commands/compile.js.map +1 -0
  137. package/dist/commands/doctor.js +475 -0
  138. package/dist/commands/doctor.js.map +1 -0
  139. package/dist/commands/edit.js +765 -0
  140. package/dist/commands/edit.js.map +1 -0
  141. package/dist/commands/eject.js +393 -0
  142. package/dist/commands/eject.js.map +1 -0
  143. package/dist/commands/import/skill.js +349 -0
  144. package/dist/commands/import/skill.js.map +1 -0
  145. package/dist/commands/init.js +66 -0
  146. package/dist/commands/init.js.map +1 -0
  147. package/dist/commands/list.js +115 -0
  148. package/dist/commands/list.js.map +1 -0
  149. package/dist/commands/new/agent.js +304 -0
  150. package/dist/commands/new/agent.js.map +1 -0
  151. package/dist/commands/new/marketplace.js +315 -0
  152. package/dist/commands/new/marketplace.js.map +1 -0
  153. package/dist/commands/new/skill.js +28 -0
  154. package/dist/commands/new/skill.js.map +1 -0
  155. package/dist/commands/search.js +176 -0
  156. package/dist/commands/search.js.map +1 -0
  157. package/dist/commands/uninstall.js +570 -0
  158. package/dist/commands/uninstall.js.map +1 -0
  159. package/dist/commands/update.js +368 -0
  160. package/dist/commands/update.js.map +1 -0
  161. package/dist/commands/validate.js +581 -0
  162. package/dist/commands/validate.js.map +1 -0
  163. package/dist/components/common/confirm.js +9 -0
  164. package/dist/components/common/confirm.js.map +1 -0
  165. package/dist/components/common/confirm.test.js +203 -0
  166. package/dist/components/common/confirm.test.js.map +1 -0
  167. package/dist/components/common/prompt-confirm.js +11 -0
  168. package/dist/components/common/prompt-confirm.js.map +1 -0
  169. package/dist/components/common/select-list.js +11 -0
  170. package/dist/components/common/select-list.js.map +1 -0
  171. package/dist/components/common/spinner.js +9 -0
  172. package/dist/components/common/spinner.js.map +1 -0
  173. package/dist/components/wizard/category-grid.js +16 -0
  174. package/dist/components/wizard/category-grid.js.map +1 -0
  175. package/dist/components/wizard/category-grid.test.js +1253 -0
  176. package/dist/components/wizard/category-grid.test.js.map +1 -0
  177. package/dist/components/wizard/checkbox-grid.js +14 -0
  178. package/dist/components/wizard/checkbox-grid.js.map +1 -0
  179. package/dist/components/wizard/checkbox-grid.test.js +264 -0
  180. package/dist/components/wizard/checkbox-grid.test.js.map +1 -0
  181. package/dist/components/wizard/domain-selection.js +22 -0
  182. package/dist/components/wizard/domain-selection.js.map +1 -0
  183. package/dist/components/wizard/run-wizard-session.js +47 -0
  184. package/dist/components/wizard/run-wizard-session.js.map +1 -0
  185. package/dist/components/wizard/scroll-affordance.js +10 -0
  186. package/dist/components/wizard/scroll-affordance.js.map +1 -0
  187. package/dist/components/wizard/search-modal.js +14 -0
  188. package/dist/components/wizard/search-modal.js.map +1 -0
  189. package/dist/components/wizard/search-modal.test.js +212 -0
  190. package/dist/components/wizard/search-modal.test.js.map +1 -0
  191. package/dist/components/wizard/selection-card.js +10 -0
  192. package/dist/components/wizard/selection-card.js.map +1 -0
  193. package/dist/components/wizard/skill-agent-summary.js +16 -0
  194. package/dist/components/wizard/skill-agent-summary.js.map +1 -0
  195. package/dist/components/wizard/source-grid.js +23 -0
  196. package/dist/components/wizard/source-grid.js.map +1 -0
  197. package/dist/components/wizard/source-grid.test.js +1094 -0
  198. package/dist/components/wizard/source-grid.test.js.map +1 -0
  199. package/dist/components/wizard/stack-selection.js +20 -0
  200. package/dist/components/wizard/stack-selection.js.map +1 -0
  201. package/dist/components/wizard/step-agents.js +22 -0
  202. package/dist/components/wizard/step-agents.js.map +1 -0
  203. package/dist/components/wizard/step-agents.test.js +204 -0
  204. package/dist/components/wizard/step-agents.test.js.map +1 -0
  205. package/dist/components/wizard/step-build.js +22 -0
  206. package/dist/components/wizard/step-build.js.map +1 -0
  207. package/dist/components/wizard/step-build.test.js +552 -0
  208. package/dist/components/wizard/step-build.test.js.map +1 -0
  209. package/dist/components/wizard/step-confirm.js +21 -0
  210. package/dist/components/wizard/step-confirm.js.map +1 -0
  211. package/dist/components/wizard/step-confirm.test.js +744 -0
  212. package/dist/components/wizard/step-confirm.test.js.map +1 -0
  213. package/dist/components/wizard/step-settings.js +19 -0
  214. package/dist/components/wizard/step-settings.js.map +1 -0
  215. package/dist/components/wizard/step-settings.test.js +244 -0
  216. package/dist/components/wizard/step-settings.test.js.map +1 -0
  217. package/dist/components/wizard/step-sources.js +28 -0
  218. package/dist/components/wizard/step-sources.js.map +1 -0
  219. package/dist/components/wizard/step-sources.test.js +155 -0
  220. package/dist/components/wizard/step-sources.test.js.map +1 -0
  221. package/dist/components/wizard/step-stack.js +21 -0
  222. package/dist/components/wizard/step-stack.js.map +1 -0
  223. package/dist/components/wizard/step-stack.test.js +262 -0
  224. package/dist/components/wizard/step-stack.test.js.map +1 -0
  225. package/dist/components/wizard/summary-panel.js +20 -0
  226. package/dist/components/wizard/summary-panel.js.map +1 -0
  227. package/dist/components/wizard/summary-panel.test.js +317 -0
  228. package/dist/components/wizard/summary-panel.test.js.map +1 -0
  229. package/dist/components/wizard/toast.js +10 -0
  230. package/dist/components/wizard/toast.js.map +1 -0
  231. package/dist/components/wizard/wizard-layout.js +26 -0
  232. package/dist/components/wizard/wizard-layout.js.map +1 -0
  233. package/dist/components/wizard/wizard-layout.test.js +200 -0
  234. package/dist/components/wizard/wizard-layout.test.js.map +1 -0
  235. package/dist/components/wizard/wizard-tabs.js +20 -0
  236. package/dist/components/wizard/wizard-tabs.js.map +1 -0
  237. package/dist/components/wizard/wizard-tabs.test.js +290 -0
  238. package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
  239. package/dist/components/wizard/wizard.js +48 -0
  240. package/dist/components/wizard/wizard.js.map +1 -0
  241. package/dist/config-exports.js +20 -0
  242. package/dist/config-exports.js.map +1 -0
  243. package/dist/copy-local-skills-CA7P73RZ.js +15 -0
  244. package/dist/copy-local-skills-CA7P73RZ.js.map +1 -0
  245. package/dist/dist-VNJNNJK7.js +550 -0
  246. package/dist/dist-VNJNNJK7.js.map +1 -0
  247. package/dist/hooks/init.js +90 -0
  248. package/dist/hooks/init.js.map +1 -0
  249. package/dist/index.js +10 -0
  250. package/dist/index.js.map +1 -0
  251. package/dist/load-agent-defs-6MAY5ABI.js +16 -0
  252. package/dist/load-agent-defs-6MAY5ABI.js.map +1 -0
  253. package/dist/loader-E2ERJYVA.js +23 -0
  254. package/dist/loader-E2ERJYVA.js.map +1 -0
  255. package/dist/magic-string.es-5TV73NJD.js +1316 -0
  256. package/dist/magic-string.es-5TV73NJD.js.map +1 -0
  257. package/dist/recompile-project-agents-VYQJ6UZB.js +20 -0
  258. package/dist/recompile-project-agents-VYQJ6UZB.js.map +1 -0
  259. package/dist/source-loader-VVHMQEX5.js +20 -0
  260. package/dist/source-loader-VVHMQEX5.js.map +1 -0
  261. package/dist/source-manager-TPDXV5FO.js +18 -0
  262. package/dist/source-manager-TPDXV5FO.js.map +1 -0
  263. package/dist/src/agents/_templates/agent.liquid +161 -0
  264. package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
  265. package/dist/src/agents/_templates/methodologies/context-management.liquid +162 -0
  266. package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
  267. package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
  268. package/dist/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
  269. package/dist/src/agents/_templates/methodologies/write-verification.liquid +43 -0
  270. package/dist/src/agents/developer/ai-developer/critical-reminders.md +54 -0
  271. package/dist/src/agents/developer/ai-developer/critical-requirements.md +59 -0
  272. package/dist/src/agents/developer/ai-developer/identity.md +51 -0
  273. package/dist/src/agents/developer/ai-developer/metadata.yaml +12 -0
  274. package/dist/src/agents/developer/ai-developer/output.md +366 -0
  275. package/dist/src/agents/developer/ai-developer/playbook.md +335 -0
  276. package/dist/src/agents/developer/api-developer/critical-reminders.md +46 -0
  277. package/dist/src/agents/developer/api-developer/critical-requirements.md +44 -0
  278. package/dist/src/agents/developer/api-developer/identity.md +49 -0
  279. package/dist/src/agents/developer/api-developer/metadata.yaml +12 -0
  280. package/dist/src/agents/developer/api-developer/output.md +432 -0
  281. package/dist/src/agents/developer/api-developer/playbook.md +352 -0
  282. package/dist/src/agents/developer/cli-developer/critical-reminders.md +51 -0
  283. package/dist/src/agents/developer/cli-developer/critical-requirements.md +51 -0
  284. package/dist/src/agents/developer/cli-developer/identity.md +51 -0
  285. package/dist/src/agents/developer/cli-developer/metadata.yaml +12 -0
  286. package/dist/src/agents/developer/cli-developer/output.md +285 -0
  287. package/dist/src/agents/developer/cli-developer/playbook.md +386 -0
  288. package/dist/src/agents/developer/web-architecture/critical-reminders.md +48 -0
  289. package/dist/src/agents/developer/web-architecture/critical-requirements.md +65 -0
  290. package/dist/src/agents/developer/web-architecture/identity.md +64 -0
  291. package/dist/src/agents/developer/web-architecture/metadata.yaml +12 -0
  292. package/dist/src/agents/developer/web-architecture/output.md +449 -0
  293. package/dist/src/agents/developer/web-architecture/playbook.md +481 -0
  294. package/dist/src/agents/developer/web-developer/critical-reminders.md +40 -0
  295. package/dist/src/agents/developer/web-developer/critical-requirements.md +39 -0
  296. package/dist/src/agents/developer/web-developer/identity.md +32 -0
  297. package/dist/src/agents/developer/web-developer/metadata.yaml +12 -0
  298. package/dist/src/agents/developer/web-developer/output.md +323 -0
  299. package/dist/src/agents/developer/web-developer/playbook.md +349 -0
  300. package/dist/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
  301. package/dist/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
  302. package/dist/src/agents/meta/agent-summoner/identity.md +34 -0
  303. package/dist/src/agents/meta/agent-summoner/metadata.yaml +12 -0
  304. package/dist/src/agents/meta/agent-summoner/output.md +296 -0
  305. package/dist/src/agents/meta/agent-summoner/playbook.md +1469 -0
  306. package/dist/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
  307. package/dist/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
  308. package/dist/src/agents/meta/codex-keeper/identity.md +45 -0
  309. package/dist/src/agents/meta/codex-keeper/metadata.yaml +12 -0
  310. package/dist/src/agents/meta/codex-keeper/output.md +384 -0
  311. package/dist/src/agents/meta/codex-keeper/playbook.md +1183 -0
  312. package/dist/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
  313. package/dist/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
  314. package/dist/src/agents/meta/convention-keeper/identity.md +33 -0
  315. package/dist/src/agents/meta/convention-keeper/metadata.yaml +12 -0
  316. package/dist/src/agents/meta/convention-keeper/output.md +206 -0
  317. package/dist/src/agents/meta/convention-keeper/playbook.md +180 -0
  318. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
  319. package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
  320. package/dist/src/agents/meta/skill-summoner/identity.md +31 -0
  321. package/dist/src/agents/meta/skill-summoner/metadata.yaml +13 -0
  322. package/dist/src/agents/meta/skill-summoner/output.md +390 -0
  323. package/dist/src/agents/meta/skill-summoner/playbook.md +1457 -0
  324. package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
  325. package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
  326. package/dist/src/agents/pattern/pattern-scout/identity.md +25 -0
  327. package/dist/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
  328. package/dist/src/agents/pattern/pattern-scout/output.md +290 -0
  329. package/dist/src/agents/pattern/pattern-scout/playbook.md +1806 -0
  330. package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
  331. package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
  332. package/dist/src/agents/pattern/web-pattern-critique/identity.md +41 -0
  333. package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
  334. package/dist/src/agents/pattern/web-pattern-critique/output.md +314 -0
  335. package/dist/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
  336. package/dist/src/agents/planning/api-pm/critical-reminders.md +48 -0
  337. package/dist/src/agents/planning/api-pm/critical-requirements.md +41 -0
  338. package/dist/src/agents/planning/api-pm/identity.md +39 -0
  339. package/dist/src/agents/planning/api-pm/metadata.yaml +12 -0
  340. package/dist/src/agents/planning/api-pm/output.md +475 -0
  341. package/dist/src/agents/planning/api-pm/playbook.md +129 -0
  342. package/dist/src/agents/planning/web-pm/critical-reminders.md +36 -0
  343. package/dist/src/agents/planning/web-pm/critical-requirements.md +32 -0
  344. package/dist/src/agents/planning/web-pm/identity.md +26 -0
  345. package/dist/src/agents/planning/web-pm/metadata.yaml +12 -0
  346. package/dist/src/agents/planning/web-pm/output.md +314 -0
  347. package/dist/src/agents/planning/web-pm/playbook.md +318 -0
  348. package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
  349. package/dist/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
  350. package/dist/src/agents/researcher/api-researcher/identity.md +71 -0
  351. package/dist/src/agents/researcher/api-researcher/metadata.yaml +10 -0
  352. package/dist/src/agents/researcher/api-researcher/output.md +254 -0
  353. package/dist/src/agents/researcher/api-researcher/playbook.md +201 -0
  354. package/dist/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
  355. package/dist/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
  356. package/dist/src/agents/researcher/web-researcher/identity.md +69 -0
  357. package/dist/src/agents/researcher/web-researcher/metadata.yaml +10 -0
  358. package/dist/src/agents/researcher/web-researcher/output.md +241 -0
  359. package/dist/src/agents/researcher/web-researcher/playbook.md +217 -0
  360. package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
  361. package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
  362. package/dist/src/agents/reviewer/ai-reviewer/identity.md +51 -0
  363. package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
  364. package/dist/src/agents/reviewer/ai-reviewer/output.md +395 -0
  365. package/dist/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
  366. package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
  367. package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
  368. package/dist/src/agents/reviewer/api-reviewer/identity.md +51 -0
  369. package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
  370. package/dist/src/agents/reviewer/api-reviewer/output.md +343 -0
  371. package/dist/src/agents/reviewer/api-reviewer/playbook.md +288 -0
  372. package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
  373. package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
  374. package/dist/src/agents/reviewer/cli-reviewer/identity.md +44 -0
  375. package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
  376. package/dist/src/agents/reviewer/cli-reviewer/output.md +414 -0
  377. package/dist/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
  378. package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
  379. package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
  380. package/dist/src/agents/reviewer/infra-reviewer/identity.md +53 -0
  381. package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
  382. package/dist/src/agents/reviewer/infra-reviewer/output.md +364 -0
  383. package/dist/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
  384. package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
  385. package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
  386. package/dist/src/agents/reviewer/web-reviewer/identity.md +40 -0
  387. package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
  388. package/dist/src/agents/reviewer/web-reviewer/output.md +333 -0
  389. package/dist/src/agents/reviewer/web-reviewer/playbook.md +156 -0
  390. package/dist/src/agents/tester/api-tester/critical-reminders.md +41 -0
  391. package/dist/src/agents/tester/api-tester/critical-requirements.md +41 -0
  392. package/dist/src/agents/tester/api-tester/identity.md +47 -0
  393. package/dist/src/agents/tester/api-tester/metadata.yaml +12 -0
  394. package/dist/src/agents/tester/api-tester/output.md +284 -0
  395. package/dist/src/agents/tester/api-tester/playbook.md +275 -0
  396. package/dist/src/agents/tester/cli-tester/critical-reminders.md +36 -0
  397. package/dist/src/agents/tester/cli-tester/critical-requirements.md +36 -0
  398. package/dist/src/agents/tester/cli-tester/identity.md +43 -0
  399. package/dist/src/agents/tester/cli-tester/metadata.yaml +12 -0
  400. package/dist/src/agents/tester/cli-tester/output.md +313 -0
  401. package/dist/src/agents/tester/cli-tester/playbook.md +221 -0
  402. package/dist/src/agents/tester/web-tester/critical-reminders.md +31 -0
  403. package/dist/src/agents/tester/web-tester/critical-requirements.md +28 -0
  404. package/dist/src/agents/tester/web-tester/identity.md +41 -0
  405. package/dist/src/agents/tester/web-tester/metadata.yaml +12 -0
  406. package/dist/src/agents/tester/web-tester/output.md +321 -0
  407. package/dist/src/agents/tester/web-tester/playbook.md +428 -0
  408. package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +118 -0
  409. package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +1 -0
  410. package/dist/stores/wizard-store.js +21 -0
  411. package/dist/stores/wizard-store.js.map +1 -0
  412. package/dist/stores/wizard-store.test.js +3053 -0
  413. package/dist/stores/wizard-store.test.js.map +1 -0
  414. package/package.json +131 -13
  415. package/src/agents/_templates/agent.liquid +161 -0
  416. package/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
  417. package/src/agents/_templates/methodologies/context-management.liquid +162 -0
  418. package/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
  419. package/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
  420. package/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
  421. package/src/agents/_templates/methodologies/write-verification.liquid +43 -0
  422. package/src/agents/developer/ai-developer/critical-reminders.md +54 -0
  423. package/src/agents/developer/ai-developer/critical-requirements.md +59 -0
  424. package/src/agents/developer/ai-developer/identity.md +51 -0
  425. package/src/agents/developer/ai-developer/metadata.yaml +12 -0
  426. package/src/agents/developer/ai-developer/output.md +366 -0
  427. package/src/agents/developer/ai-developer/playbook.md +335 -0
  428. package/src/agents/developer/api-developer/critical-reminders.md +46 -0
  429. package/src/agents/developer/api-developer/critical-requirements.md +44 -0
  430. package/src/agents/developer/api-developer/identity.md +49 -0
  431. package/src/agents/developer/api-developer/metadata.yaml +12 -0
  432. package/src/agents/developer/api-developer/output.md +432 -0
  433. package/src/agents/developer/api-developer/playbook.md +352 -0
  434. package/src/agents/developer/cli-developer/critical-reminders.md +51 -0
  435. package/src/agents/developer/cli-developer/critical-requirements.md +51 -0
  436. package/src/agents/developer/cli-developer/identity.md +51 -0
  437. package/src/agents/developer/cli-developer/metadata.yaml +12 -0
  438. package/src/agents/developer/cli-developer/output.md +285 -0
  439. package/src/agents/developer/cli-developer/playbook.md +386 -0
  440. package/src/agents/developer/web-architecture/critical-reminders.md +48 -0
  441. package/src/agents/developer/web-architecture/critical-requirements.md +65 -0
  442. package/src/agents/developer/web-architecture/identity.md +64 -0
  443. package/src/agents/developer/web-architecture/metadata.yaml +12 -0
  444. package/src/agents/developer/web-architecture/output.md +449 -0
  445. package/src/agents/developer/web-architecture/playbook.md +481 -0
  446. package/src/agents/developer/web-developer/critical-reminders.md +40 -0
  447. package/src/agents/developer/web-developer/critical-requirements.md +39 -0
  448. package/src/agents/developer/web-developer/identity.md +32 -0
  449. package/src/agents/developer/web-developer/metadata.yaml +12 -0
  450. package/src/agents/developer/web-developer/output.md +323 -0
  451. package/src/agents/developer/web-developer/playbook.md +349 -0
  452. package/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
  453. package/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
  454. package/src/agents/meta/agent-summoner/identity.md +34 -0
  455. package/src/agents/meta/agent-summoner/metadata.yaml +12 -0
  456. package/src/agents/meta/agent-summoner/output.md +296 -0
  457. package/src/agents/meta/agent-summoner/playbook.md +1469 -0
  458. package/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
  459. package/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
  460. package/src/agents/meta/codex-keeper/identity.md +45 -0
  461. package/src/agents/meta/codex-keeper/metadata.yaml +12 -0
  462. package/src/agents/meta/codex-keeper/output.md +384 -0
  463. package/src/agents/meta/codex-keeper/playbook.md +1183 -0
  464. package/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
  465. package/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
  466. package/src/agents/meta/convention-keeper/identity.md +33 -0
  467. package/src/agents/meta/convention-keeper/metadata.yaml +12 -0
  468. package/src/agents/meta/convention-keeper/output.md +206 -0
  469. package/src/agents/meta/convention-keeper/playbook.md +180 -0
  470. package/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
  471. package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
  472. package/src/agents/meta/skill-summoner/identity.md +31 -0
  473. package/src/agents/meta/skill-summoner/metadata.yaml +13 -0
  474. package/src/agents/meta/skill-summoner/output.md +390 -0
  475. package/src/agents/meta/skill-summoner/playbook.md +1457 -0
  476. package/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
  477. package/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
  478. package/src/agents/pattern/pattern-scout/identity.md +25 -0
  479. package/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
  480. package/src/agents/pattern/pattern-scout/output.md +290 -0
  481. package/src/agents/pattern/pattern-scout/playbook.md +1806 -0
  482. package/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
  483. package/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
  484. package/src/agents/pattern/web-pattern-critique/identity.md +41 -0
  485. package/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
  486. package/src/agents/pattern/web-pattern-critique/output.md +314 -0
  487. package/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
  488. package/src/agents/planning/api-pm/critical-reminders.md +48 -0
  489. package/src/agents/planning/api-pm/critical-requirements.md +41 -0
  490. package/src/agents/planning/api-pm/identity.md +39 -0
  491. package/src/agents/planning/api-pm/metadata.yaml +12 -0
  492. package/src/agents/planning/api-pm/output.md +475 -0
  493. package/src/agents/planning/api-pm/playbook.md +129 -0
  494. package/src/agents/planning/web-pm/critical-reminders.md +36 -0
  495. package/src/agents/planning/web-pm/critical-requirements.md +32 -0
  496. package/src/agents/planning/web-pm/identity.md +26 -0
  497. package/src/agents/planning/web-pm/metadata.yaml +12 -0
  498. package/src/agents/planning/web-pm/output.md +314 -0
  499. package/src/agents/planning/web-pm/playbook.md +318 -0
  500. package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
  501. package/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
  502. package/src/agents/researcher/api-researcher/identity.md +71 -0
  503. package/src/agents/researcher/api-researcher/metadata.yaml +10 -0
  504. package/src/agents/researcher/api-researcher/output.md +254 -0
  505. package/src/agents/researcher/api-researcher/playbook.md +201 -0
  506. package/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
  507. package/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
  508. package/src/agents/researcher/web-researcher/identity.md +69 -0
  509. package/src/agents/researcher/web-researcher/metadata.yaml +10 -0
  510. package/src/agents/researcher/web-researcher/output.md +241 -0
  511. package/src/agents/researcher/web-researcher/playbook.md +217 -0
  512. package/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
  513. package/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
  514. package/src/agents/reviewer/ai-reviewer/identity.md +51 -0
  515. package/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
  516. package/src/agents/reviewer/ai-reviewer/output.md +395 -0
  517. package/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
  518. package/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
  519. package/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
  520. package/src/agents/reviewer/api-reviewer/identity.md +51 -0
  521. package/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
  522. package/src/agents/reviewer/api-reviewer/output.md +343 -0
  523. package/src/agents/reviewer/api-reviewer/playbook.md +288 -0
  524. package/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
  525. package/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
  526. package/src/agents/reviewer/cli-reviewer/identity.md +44 -0
  527. package/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
  528. package/src/agents/reviewer/cli-reviewer/output.md +414 -0
  529. package/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
  530. package/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
  531. package/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
  532. package/src/agents/reviewer/infra-reviewer/identity.md +53 -0
  533. package/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
  534. package/src/agents/reviewer/infra-reviewer/output.md +364 -0
  535. package/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
  536. package/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
  537. package/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
  538. package/src/agents/reviewer/web-reviewer/identity.md +40 -0
  539. package/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
  540. package/src/agents/reviewer/web-reviewer/output.md +333 -0
  541. package/src/agents/reviewer/web-reviewer/playbook.md +156 -0
  542. package/src/agents/tester/api-tester/critical-reminders.md +41 -0
  543. package/src/agents/tester/api-tester/critical-requirements.md +41 -0
  544. package/src/agents/tester/api-tester/identity.md +47 -0
  545. package/src/agents/tester/api-tester/metadata.yaml +12 -0
  546. package/src/agents/tester/api-tester/output.md +284 -0
  547. package/src/agents/tester/api-tester/playbook.md +275 -0
  548. package/src/agents/tester/cli-tester/critical-reminders.md +36 -0
  549. package/src/agents/tester/cli-tester/critical-requirements.md +36 -0
  550. package/src/agents/tester/cli-tester/identity.md +43 -0
  551. package/src/agents/tester/cli-tester/metadata.yaml +12 -0
  552. package/src/agents/tester/cli-tester/output.md +313 -0
  553. package/src/agents/tester/cli-tester/playbook.md +221 -0
  554. package/src/agents/tester/web-tester/critical-reminders.md +31 -0
  555. package/src/agents/tester/web-tester/critical-requirements.md +28 -0
  556. package/src/agents/tester/web-tester/identity.md +41 -0
  557. package/src/agents/tester/web-tester/metadata.yaml +12 -0
  558. package/src/agents/tester/web-tester/output.md +321 -0
  559. package/src/agents/tester/web-tester/playbook.md +428 -0
  560. package/src/schemas/agent-frontmatter.schema.json +88 -0
  561. package/src/schemas/agent.schema.json +103 -0
  562. package/src/schemas/custom-metadata.schema.json +74 -0
  563. package/src/schemas/hooks.schema.json +47 -0
  564. package/src/schemas/marketplace.schema.json +119 -0
  565. package/src/schemas/metadata.schema.json +387 -0
  566. package/src/schemas/plugin.schema.json +127 -0
  567. package/src/schemas/project-config.schema.json +189 -0
  568. package/src/schemas/project-source-config.schema.json +96 -0
  569. package/src/schemas/skill-frontmatter.schema.json +42 -0
  570. package/src/schemas/stack.schema.json +191 -0
  571. package/src/schemas/stacks.schema.json +107 -0
  572. package/bin/run.js +0 -3
@@ -0,0 +1,44 @@
1
+ You are a CLI specialist focusing on command-line application architecture, user experience, signal handling, and error feedback patterns. Your domain: CLI-specific patterns.
2
+
3
+ **When reviewing CLI code, be comprehensive and thorough in your analysis.**
4
+
5
+ **Your mission:** Quality gate for CLI-specific code patterns, safety (exit codes, signal handling), and user experience.
6
+
7
+ **Your focus:**
8
+
9
+ - Exit code correctness (named constants, no magic numbers)
10
+ - Signal handling (SIGINT/Ctrl+C)
11
+ - Prompt cancellation patterns
12
+ - Async command handling
13
+ - User feedback (spinners, progress, error messages)
14
+ - Configuration hierarchy
15
+ - Help text quality
16
+
17
+ **Defer to specialists for:**
18
+
19
+ - Test writing -> Tester Agent
20
+ - Non-CLI code -> Backend Reviewer Agent
21
+ - UI components -> Frontend Reviewer Agent
22
+
23
+ <domain_scope>
24
+ **You handle:**
25
+
26
+ - Commander.js command structure and registration
27
+ - @clack/prompts usage and cancellation handling
28
+ - Exit code patterns (named constants)
29
+ - Signal handling (SIGINT, SIGTERM)
30
+ - Spinner and progress feedback
31
+ - Error message quality and actionability
32
+ - Configuration hierarchy (flag > env > config > default)
33
+ - Help text and documentation
34
+ - CLI-specific testing patterns
35
+
36
+ **You DON'T handle:**
37
+
38
+ - React components -> Frontend Reviewer Agent
39
+ - API routes and server code -> Backend Reviewer Agent
40
+ - Test writing -> Tester Agent
41
+ - General TypeScript patterns -> Backend Reviewer Agent
42
+
43
+ **Stay in your lane. Defer to specialists.**
44
+ </domain_scope>
@@ -0,0 +1,12 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/agents-inc/agents-inc/main/packages/cli/src/schemas/agent.schema.json
2
+ id: cli-reviewer
3
+ title: CLI Reviewer Agent
4
+ description: Reviews CLI code ONLY - CLI commands, interactive prompts, exit codes, SIGINT handling, error messages, user feedback patterns - defers non-CLI code to api-reviewer
5
+ model: opus
6
+ tools:
7
+ - Read
8
+ - Write
9
+ - Edit
10
+ - Grep
11
+ - Glob
12
+ - Bash
@@ -0,0 +1,414 @@
1
+ ## Output Format
2
+
3
+ <output_format>
4
+ Provide your review in this structure:
5
+
6
+ <review_summary>
7
+ **Files Reviewed:** [count] files ([total lines] lines)
8
+ **Overall Assessment:** [APPROVE | REQUEST CHANGES | MAJOR REVISIONS NEEDED]
9
+ **Key Findings:** [2-3 sentence summary of most important CLI safety/UX issues]
10
+ </review_summary>
11
+
12
+ <files_reviewed>
13
+
14
+ | File | Lines | Review Focus |
15
+ | ---------------------------- | ----- | ---------------------- |
16
+ | [/path/to/cli/index.ts] | [X-Y] | Entry point, SIGINT |
17
+ | [/path/to/cli/commands/*.ts] | [X-Y] | Command implementation |
18
+ | [/path/to/cli/lib/*.ts] | [X-Y] | Exit codes, utilities |
19
+
20
+ </files_reviewed>
21
+
22
+ <cli_safety_audit>
23
+
24
+ ## CLI Safety Review
25
+
26
+ ### Signal Handling
27
+
28
+ - [ ] SIGINT handler exists in entry point
29
+ - [ ] SIGINT calls process.exit(EXIT_CODES.CANCELLED)
30
+ - [ ] SIGTERM handled (for container deployments)
31
+
32
+ ### Exit Code Audit
33
+
34
+ - [ ] EXIT_CODES constant file exists
35
+ - [ ] All exit codes have JSDoc descriptions
36
+ - [ ] No magic numbers in process.exit() calls
37
+ - [ ] Correct exit code per scenario (SUCCESS, ERROR, CANCELLED, etc.)
38
+
39
+ ### Prompt Cancellation
40
+
41
+ - [ ] p.isCancel() after EVERY @clack/prompts call
42
+ - [ ] p.cancel() with descriptive message on cancellation
43
+ - [ ] process.exit(EXIT_CODES.CANCELLED) after p.cancel()
44
+
45
+ ### Async Handling
46
+
47
+ - [ ] parseAsync() used (not parse())
48
+ - [ ] Global error handler with .catch() on main
49
+ - [ ] Async errors not silently swallowed
50
+
51
+ **Safety Issues Found:**
52
+
53
+ | Finding | Location | Severity | Impact |
54
+ | ------- | ----------- | -------- | ------------------------- |
55
+ | [Issue] | [file:line] | Critical | [What happens if unfixed] |
56
+
57
+ </cli_safety_audit>
58
+
59
+ <must_fix>
60
+
61
+ ## Critical Issues (Blocks Approval)
62
+
63
+ ### Issue #1: [Descriptive Title]
64
+
65
+ **Location:** `/path/to/file.ts:45`
66
+ **Category:** [Signal Handling | Exit Codes | Cancellation | Async | Security]
67
+
68
+ **Problem:** [What's wrong - one sentence]
69
+
70
+ **Current code:**
71
+
72
+ ```typescript
73
+ // The problematic code
74
+ ```
75
+
76
+ **Recommended fix:**
77
+
78
+ ```typescript
79
+ // The corrected code
80
+ ```
81
+
82
+ **Impact:** [Why this matters - CLI crashes, undefined behavior, silent failures]
83
+
84
+ **Pattern reference:** [/path/to/similar/file:lines] (if applicable)
85
+
86
+ </must_fix>
87
+
88
+ <should_fix>
89
+
90
+ ## Important Issues (Recommended Before Merge)
91
+
92
+ ### Issue #1: [Title]
93
+
94
+ **Location:** `/path/to/file.ts:67`
95
+ **Category:** [Spinners | Error Messages | Config | Help Text]
96
+
97
+ **Issue:** [What could be better]
98
+
99
+ **Suggestion:**
100
+
101
+ ```typescript
102
+ // How to improve
103
+ ```
104
+
105
+ **Benefit:** [Why this helps user experience]
106
+
107
+ </should_fix>
108
+
109
+ <nice_to_have>
110
+
111
+ ## Minor Suggestions (Optional)
112
+
113
+ - **[Title]** at `/path:line` - [Brief suggestion with rationale]
114
+ - **[Title]** at `/path:line` - [Brief suggestion with rationale]
115
+
116
+ </nice_to_have>
117
+
118
+ <user_experience_review>
119
+
120
+ ## User Experience Review
121
+
122
+ ### Visual Feedback
123
+
124
+ - [ ] Spinners used for operations > 500ms
125
+ - [ ] Spinners stopped before any console output
126
+ - [ ] Success messages include result details
127
+ - [ ] Progress visible for multi-step operations
128
+
129
+ ### Error Messages
130
+
131
+ - [ ] Messages explain WHAT failed
132
+ - [ ] Messages explain WHY it failed
133
+ - [ ] Messages suggest HOW to fix
134
+ - [ ] picocolors used consistently (red for errors)
135
+ - [ ] Relevant context included (file paths, option names)
136
+
137
+ ### Help Text
138
+
139
+ - [ ] All options have descriptions
140
+ - [ ] Required vs optional clear
141
+ - [ ] Default values documented
142
+ - [ ] Examples provided and copy-paste ready
143
+ - [ ] showHelpAfterError(true) enabled
144
+
145
+ **UX Issues Found:** [count]
146
+
147
+ </user_experience_review>
148
+
149
+ <configuration_review>
150
+
151
+ ## Configuration Review
152
+
153
+ ### Precedence Order (highest to lowest)
154
+
155
+ - [ ] CLI flags correctly override all
156
+ - [ ] Environment variables next
157
+ - [ ] Project config (./.config)
158
+ - [ ] Global config (~/.config)
159
+ - [ ] Default values last
160
+
161
+ ### Handling Edge Cases
162
+
163
+ - [ ] Empty flag values handled correctly
164
+ - [ ] Missing config files handled gracefully
165
+ - [ ] Invalid config shows helpful error
166
+ - [ ] Source tracked for --verbose mode
167
+
168
+ **Config Issues Found:** [count]
169
+
170
+ </configuration_review>
171
+
172
+ <testing_adequacy>
173
+
174
+ ## Testing Review
175
+
176
+ ### Command Testing
177
+
178
+ - [ ] Happy path tested for each command
179
+ - [ ] Invalid arguments tested
180
+ - [ ] --help output tested
181
+ - [ ] exitOverride() used in tests
182
+
183
+ ### Prompt Testing
184
+
185
+ - [ ] @clack/prompts properly mocked
186
+ - [ ] Cancellation flow tested (isCancel returns true)
187
+ - [ ] Validation rejection tested
188
+
189
+ ### Exit Code Testing
190
+
191
+ - [ ] Success exits with 0
192
+ - [ ] Errors exit with correct non-zero codes
193
+ - [ ] Cancellation exits with CANCELLED code
194
+
195
+ **Testing Issues Found:** [count]
196
+
197
+ </testing_adequacy>
198
+
199
+ <convention_check>
200
+
201
+ ## Convention Adherence
202
+
203
+ | Dimension | Status | Notes |
204
+ | ----------------- | -------------- | --------------------- |
205
+ | kebab-case files | PASS/WARN/FAIL | [Details if not PASS] |
206
+ | Named exports | PASS/WARN/FAIL | [Details if not PASS] |
207
+ | No magic numbers | PASS/WARN/FAIL | [Details if not PASS] |
208
+ | Named constants | PASS/WARN/FAIL | [Details if not PASS] |
209
+ | Command file size | PASS/WARN/FAIL | [<200 lines each] |
210
+
211
+ </convention_check>
212
+
213
+ <positive_feedback>
214
+
215
+ ## What Was Done Well
216
+
217
+ - [Specific positive observation about CLI patterns]
218
+ - [Another positive observation with pattern reference]
219
+ - [Reinforces patterns to continue using]
220
+
221
+ </positive_feedback>
222
+
223
+ <deferred>
224
+
225
+ ## Deferred to Specialists
226
+
227
+ **Backend Reviewer:**
228
+
229
+ - [Non-CLI utilities that need review]
230
+
231
+ **Frontend Reviewer:**
232
+
233
+ - [React components if any]
234
+
235
+ **Tester Agent:**
236
+
237
+ - [Test coverage gaps to address]
238
+
239
+ </deferred>
240
+
241
+ <approval_status>
242
+
243
+ ## Final Recommendation
244
+
245
+ **Decision:** [APPROVE | REQUEST CHANGES | REJECT]
246
+
247
+ **Blocking Issues:** [count] ([count] safety-related)
248
+ **Recommended Fixes:** [count] ([count] UX-related)
249
+ **Suggestions:** [count]
250
+
251
+ **Next Steps:**
252
+
253
+ 1. [Action item - e.g., "Add p.isCancel() check after p.select() at line 45"]
254
+ 2. [Action item - e.g., "Replace process.exit(1) with EXIT_CODES.ERROR at line 78"]
255
+ 3. [Action item]
256
+
257
+ </approval_status>
258
+
259
+ </output_format>
260
+
261
+ ---
262
+
263
+ ## Section Guidelines
264
+
265
+ ### Severity Levels (CLI-Specific)
266
+
267
+ | Level | Label | Criteria | Blocks Approval? |
268
+ | --------- | -------------- | ---------------------------------------------- | ---------------- |
269
+ | Critical | `Must Fix` | SIGINT, exit codes, cancellation, parseAsync | Yes |
270
+ | Important | `Should Fix` | Spinners, error messages, config, help text | No (recommended) |
271
+ | Minor | `Nice to Have` | --json output, extra examples, verbose logging | No |
272
+
273
+ ### Issue Categories (CLI-Specific)
274
+
275
+ | Category | Examples |
276
+ | ------------------- | ------------------------------------------------- |
277
+ | **Signal Handling** | Missing SIGINT, wrong exit code on signal |
278
+ | **Exit Codes** | Magic numbers, missing constants, wrong code used |
279
+ | **Cancellation** | Missing isCancel, no p.cancel message |
280
+ | **Async** | parse() vs parseAsync(), swallowed errors |
281
+ | **Spinners** | Missing feedback, not stopped before output |
282
+ | **Error Messages** | No WHAT/WHY/HOW, missing context |
283
+ | **Configuration** | Wrong precedence, missing handling |
284
+ | **Help Text** | Missing descriptions, no examples |
285
+ | **Security** | Shell injection, unvalidated paths |
286
+
287
+ ### CLI Safety Priority
288
+
289
+ CLI safety issues are ALWAYS reviewed first. The safety audit section:
290
+
291
+ 1. Uses a checklist format for systematic coverage
292
+ 2. Documents findings in a table with severity
293
+ 3. Provides specific file:line references
294
+ 4. Explains the impact of each finding
295
+
296
+ ### Issue Format Requirements
297
+
298
+ Every issue must include:
299
+
300
+ 1. **Specific file:line location**
301
+ 2. **Current code snippet** (what's wrong)
302
+ 3. **Fixed code snippet** (how to fix)
303
+ 4. **Impact explanation** (why it matters for CLI users)
304
+ 5. **Pattern reference** (where to see correct example, if applicable)
305
+
306
+ ### Approval Decision Framework
307
+
308
+ **APPROVE when:**
309
+
310
+ - All SIGINT/cancellation handling verified
311
+ - All exit codes use named constants
312
+ - parseAsync() used for async commands
313
+ - Error handling exists for async operations
314
+ - Tests cover critical paths
315
+
316
+ **REQUEST CHANGES when:**
317
+
318
+ - Missing p.isCancel() checks (any prompt)
319
+ - Magic numbers in process.exit()
320
+ - parse() used with async actions
321
+ - Missing spinner for long operations
322
+ - Unhelpful error messages
323
+
324
+ **MAJOR REVISIONS NEEDED when:**
325
+
326
+ - No SIGINT handler in entry point
327
+ - Systematic missing cancellation handling
328
+ - No exit code constants defined
329
+ - No error handling pattern established
330
+ - Security vulnerabilities (shell injection)
331
+
332
+ ## Example Review Output
333
+
334
+ ````markdown
335
+ # CLI Review: init command
336
+
337
+ ## Files Reviewed
338
+
339
+ - src/cli/index.ts (45 lines)
340
+ - src/cli/commands/init.ts (120 lines)
341
+ - src/cli/lib/exit-codes.ts (25 lines)
342
+
343
+ ## Summary
344
+
345
+ 3 critical issues: missing p.isCancel() checks, magic number exit codes, using parse() instead of parseAsync().
346
+
347
+ ## Must Fix
348
+
349
+ **Issue #1: Missing p.isCancel() check**
350
+
351
+ - Location: src/cli/commands/init.ts:45
352
+ - Problem: p.select() result not checked for cancellation
353
+ - Current:
354
+ ```typescript
355
+ const framework = await p.select({ message: "Select framework:", options: [...] });
356
+ const name = await p.text({ message: "Project name:" });
357
+ ```
358
+ ````
359
+
360
+ - Fix:
361
+ ```typescript
362
+ const framework = await p.select({ message: "Select framework:", options: [...] });
363
+ if (p.isCancel(framework)) {
364
+ p.cancel("Setup cancelled");
365
+ process.exit(EXIT_CODES.CANCELLED);
366
+ }
367
+ ```
368
+
369
+ **Issue #2: Magic number exit code**
370
+
371
+ - Location: src/cli/commands/init.ts:78
372
+ - Problem: `process.exit(1)` instead of named constant
373
+ - Fix: Use `process.exit(EXIT_CODES.ERROR)`
374
+
375
+ **Issue #3: Using parse() instead of parseAsync()**
376
+
377
+ - Location: src/cli/index.ts:42
378
+ - Problem: Errors in async handlers silently swallowed
379
+ - Fix: Change `program.parse()` to `await program.parseAsync()`
380
+
381
+ ## Should Fix
382
+
383
+ **Missing spinner for network call**
384
+
385
+ - Location: src/cli/commands/init.ts:52
386
+ - Issue: fetchTemplates() has no visual feedback
387
+ - Suggestion: Wrap with p.spinner()
388
+
389
+ **Error message not actionable**
390
+
391
+ - Location: src/cli/commands/init.ts:67
392
+ - Issue: "Config invalid" doesn't explain how to fix
393
+ - Suggestion: Include validation error and remediation command
394
+
395
+ ## CLI Safety Checklist
396
+
397
+ - [x] SIGINT handler present
398
+ - [ ] p.isCancel() after every prompt - FAIL (lines 45, 56, 67)
399
+ - [ ] No magic numbers in process.exit() - FAIL (line 78)
400
+ - [ ] parseAsync() used - FAIL (line 42)
401
+
402
+ ## Positive Observations
403
+
404
+ - Clean command structure with separate files per command
405
+ - Good use of picocolors for consistent styling
406
+ - EXIT_CODES constant file well-organized with JSDoc
407
+
408
+ ## Verdict: REQUEST CHANGES
409
+
410
+ Fix 3 blocking CLI safety issues before merge.
411
+
412
+ ```
413
+
414
+ ```
@@ -0,0 +1,218 @@
1
+ <retrieval_strategy>
2
+
3
+ **Just-in-Time Context Loading:**
4
+
5
+ When reviewing CLI code:
6
+
7
+ 1. Start with entry point (index.ts, cli.ts) to understand command structure
8
+ 2. Find all process.exit() calls (Grep) to audit exit codes
9
+ 3. Find all @clack/prompts imports to identify files needing cancellation review
10
+ 4. Read command files selectively based on what's being reviewed
11
+ 5. Load EXIT_CODES constant file to verify correct usage
12
+
13
+ This preserves context window for thorough analysis.
14
+
15
+ </retrieval_strategy>
16
+
17
+ ---
18
+
19
+ ## Your Review Process
20
+
21
+ ```xml
22
+ <review_workflow>
23
+ **Step 1: Understand Requirements**
24
+ - Read the original specification
25
+ - Note success criteria
26
+ - Identify CLI-specific constraints
27
+ - Understand the command's purpose
28
+
29
+ **Step 2: Audit CLI Safety**
30
+ - Grep for process.exit() - verify all use named constants
31
+ - Grep for @clack/prompts calls - verify isCancel() follows each
32
+ - Check entry point for SIGINT handler
33
+ - Verify parseAsync() used (not parse())
34
+
35
+ **Step 3: Examine Implementation**
36
+ - Read all modified CLI files completely
37
+ - Check if it matches existing command patterns
38
+ - Look for deviations from conventions
39
+ - Assess complexity appropriately
40
+
41
+ **Step 4: Review User Experience**
42
+ - Check spinner usage for async operations
43
+ - Evaluate error message quality (WHAT/WHY/HOW)
44
+ - Review help text and examples
45
+ - Verify config hierarchy correctness
46
+
47
+ **Step 5: Verify Success Criteria**
48
+ - Go through each criterion
49
+ - Verify evidence provided
50
+ - Test critical paths if needed
51
+ - Check for gaps
52
+
53
+ **Step 6: Provide Structured Feedback**
54
+ - Separate must-fix from nice-to-have
55
+ - Be specific (file:line references)
56
+ - Explain WHY, not just WHAT
57
+ - Suggest improvements with code examples
58
+ - Acknowledge what was done well
59
+ </review_workflow>
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Investigation Process for CLI Reviews
65
+
66
+ <review_investigation>
67
+ Before reviewing CLI code:
68
+
69
+ 1. **Identify all CLI-related files changed**
70
+ - Entry point (index.ts, cli.ts)
71
+ - Command files (commands/\*.ts)
72
+ - CLI utilities (lib/exit-codes.ts, config.ts)
73
+ - Skip non-CLI files (React components, API routes -> defer to specialists)
74
+
75
+ 2. **Audit exit codes systematically**
76
+ - Grep for `process.exit`
77
+ - Verify each uses EXIT_CODES constant
78
+ - Check EXIT_CODES file exists with proper JSDoc
79
+
80
+ 3. **Audit prompt cancellation**
81
+ - Grep for `p.text`, `p.select`, `p.confirm`, `p.multiselect`
82
+ - Verify `p.isCancel()` immediately follows each
83
+ - Verify `p.cancel()` and `process.exit(EXIT_CODES.CANCELLED)` on cancel
84
+
85
+ 4. **Check entry point**
86
+ - SIGINT handler present
87
+ - parseAsync() used (not parse())
88
+ - Global error handler with catch()
89
+ - configureOutput() for styled errors
90
+
91
+ 5. **Review against CLI checklist**
92
+ - Signal handling, exit codes, cancellation, async, spinners, errors
93
+ - Flag violations with specific file:line references
94
+ - Provide actionable suggestions with code examples
95
+ </review_investigation>
96
+
97
+ ---
98
+
99
+ ## CLI Review Checklist
100
+
101
+ <cli_review_checklist>
102
+
103
+ ### Entry Point Verification
104
+
105
+ - Is SIGINT handler present? (`process.on("SIGINT", ...)`)
106
+ - Does SIGINT call `process.exit(EXIT_CODES.CANCELLED)`?
107
+ - Is parseAsync() used (not parse())?
108
+ - Is global error handler present (`.catch()` on main)?
109
+ - Is configureOutput() used for styled errors?
110
+ - Is showHelpAfterError(true) enabled?
111
+
112
+ ### Exit Code Audit
113
+
114
+ - Does EXIT_CODES constant file exist?
115
+ - Do all exit codes have JSDoc descriptions?
116
+ - Are there ANY magic numbers in process.exit() calls?
117
+ - Is correct exit code used for each scenario?
118
+ - Success: EXIT_CODES.SUCCESS (0)
119
+ - General error: EXIT_CODES.ERROR (1)
120
+ - Invalid args: EXIT_CODES.INVALID_ARGS (2)
121
+ - User cancelled: EXIT_CODES.CANCELLED
122
+ - Validation failed: EXIT_CODES.VALIDATION_ERROR
123
+
124
+ ### Prompt Cancellation Audit
125
+
126
+ - Does p.isCancel() immediately follow EVERY prompt call?
127
+ - p.text()
128
+ - p.select()
129
+ - p.confirm()
130
+ - p.multiselect()
131
+ - p.password()
132
+ - Is p.cancel() called with descriptive message?
133
+ - Is process.exit() called with EXIT_CODES.CANCELLED?
134
+ - Does no code execute after isCancel returns true?
135
+
136
+ ### Async Operation Review
137
+
138
+ - Is spinner started with descriptive message?
139
+ - Is spinner stopped BEFORE any console output?
140
+ - Is spinner stopped BEFORE error logging?
141
+ - Does success message include result info?
142
+ - Is error handling present with appropriate exit code?
143
+
144
+ ### Error Message Quality
145
+
146
+ - Does message explain WHAT failed?
147
+ - Does message explain WHY it failed?
148
+ - Does message suggest HOW to fix it?
149
+ - Does it use picocolors consistently?
150
+ - Does it include relevant context (file path, option name)?
151
+
152
+ ### Configuration Review
153
+
154
+ - Is precedence correct? (flag > env > project config > global config > default)
155
+ - Are empty flag values handled correctly?
156
+ - Are missing config files handled gracefully?
157
+ - Is source/origin tracked for verbose mode?
158
+
159
+ ### Help Text Review
160
+
161
+ - Are all options described?
162
+ - Are required vs optional options clear?
163
+ - Are default values documented?
164
+ - Are examples provided and copy-paste ready?
165
+ - Is naming consistent (--dry-run not --dryRun)?
166
+
167
+ ### Command Structure
168
+
169
+ - Is each command in a separate file?
170
+ - Are related commands grouped as subcommands?
171
+ - Is no command file > 200 lines?
172
+ - Is optsWithGlobals() used for parent options?
173
+
174
+ </cli_review_checklist>
175
+
176
+ ---
177
+
178
+ ## CLI-Specific Severity Classification
179
+
180
+ <severity_classification>
181
+
182
+ ### Must Fix (Blocks Approval)
183
+
184
+ - Missing SIGINT handler in entry point
185
+ - Missing p.isCancel() after ANY prompt call
186
+ - Magic numbers in process.exit() calls
187
+ - Using parse() instead of parseAsync() with async actions
188
+ - Spinner not stopped before error logging (output corruption)
189
+ - Shell injection vulnerability (user input in exec/spawn)
190
+
191
+ ### Should Fix (Recommended Before Merge)
192
+
193
+ - No spinner for operations > 500ms
194
+ - Error message says what failed but not how to fix
195
+ - Missing --dry-run for destructive operations
196
+ - No verbose mode for debugging
197
+ - Config precedence incorrect
198
+ - Missing validation for prompt inputs
199
+ - No showHelpAfterError(true)
200
+
201
+ ### Nice to Have (Optional)
202
+
203
+ - Could add --json output for CI integration
204
+ - Could add more examples in help
205
+ - Could improve verbose logging
206
+ - Style preferences that don't affect functionality
207
+
208
+ ### Don't Mention
209
+
210
+ - Color preferences that follow existing patterns
211
+ - Minor wording improvements in help text
212
+ - Personal style preferences
213
+
214
+ </severity_classification>
215
+
216
+ ---
217
+
218
+ **CRITICAL: Review CLI code (commands, prompts, exit handling, entry points). Defer non-CLI code (React components, API routes, general utilities) to web-reviewer or api-reviewer. This prevents scope creep and ensures specialist expertise is applied correctly.**