@agents-inc/cli 0.32.1

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 (497) hide show
  1. package/CHANGELOG.md +462 -0
  2. package/LICENSE +21 -0
  3. package/README.md +179 -0
  4. package/config/skills-matrix.yaml +926 -0
  5. package/config/stacks.yaml +2186 -0
  6. package/dist/chunk-3ZOIOVKT.js +365 -0
  7. package/dist/chunk-3ZOIOVKT.js.map +1 -0
  8. package/dist/chunk-4RAY5AOI.js +78 -0
  9. package/dist/chunk-4RAY5AOI.js.map +1 -0
  10. package/dist/chunk-5PIKNCZX.js +234 -0
  11. package/dist/chunk-5PIKNCZX.js.map +1 -0
  12. package/dist/chunk-66UDJBF6.js +96 -0
  13. package/dist/chunk-66UDJBF6.js.map +1 -0
  14. package/dist/chunk-7SOPVGDV.js +24 -0
  15. package/dist/chunk-7SOPVGDV.js.map +1 -0
  16. package/dist/chunk-A27LOC4Z.js +95 -0
  17. package/dist/chunk-A27LOC4Z.js.map +1 -0
  18. package/dist/chunk-B2UBHA66.js +301 -0
  19. package/dist/chunk-B2UBHA66.js.map +1 -0
  20. package/dist/chunk-BZN2Z5P7.js +882 -0
  21. package/dist/chunk-BZN2Z5P7.js.map +1 -0
  22. package/dist/chunk-BZQBJP34.js +186 -0
  23. package/dist/chunk-BZQBJP34.js.map +1 -0
  24. package/dist/chunk-DC5AK3LW.js +105 -0
  25. package/dist/chunk-DC5AK3LW.js.map +1 -0
  26. package/dist/chunk-DHET7RCE.js +50 -0
  27. package/dist/chunk-DHET7RCE.js.map +1 -0
  28. package/dist/chunk-EMJ2ZKS7.js +346 -0
  29. package/dist/chunk-EMJ2ZKS7.js.map +1 -0
  30. package/dist/chunk-FJQRVFMB.js +48 -0
  31. package/dist/chunk-FJQRVFMB.js.map +1 -0
  32. package/dist/chunk-FZGYSLJL.js +85 -0
  33. package/dist/chunk-FZGYSLJL.js.map +1 -0
  34. package/dist/chunk-H566H3MQ.js +87 -0
  35. package/dist/chunk-H566H3MQ.js.map +1 -0
  36. package/dist/chunk-IYG2LAIM.js +90 -0
  37. package/dist/chunk-IYG2LAIM.js.map +1 -0
  38. package/dist/chunk-IZZ4IIEG.js +29 -0
  39. package/dist/chunk-IZZ4IIEG.js.map +1 -0
  40. package/dist/chunk-JMVWYAHT.js +63 -0
  41. package/dist/chunk-JMVWYAHT.js.map +1 -0
  42. package/dist/chunk-LAPCUV4D.js +191 -0
  43. package/dist/chunk-LAPCUV4D.js.map +1 -0
  44. package/dist/chunk-LGUI3PMO.js +109 -0
  45. package/dist/chunk-LGUI3PMO.js.map +1 -0
  46. package/dist/chunk-MM7NK5N2.js +4542 -0
  47. package/dist/chunk-MM7NK5N2.js.map +1 -0
  48. package/dist/chunk-N6S7ZRIL.js +31 -0
  49. package/dist/chunk-N6S7ZRIL.js.map +1 -0
  50. package/dist/chunk-O4D67NN7.js +24 -0
  51. package/dist/chunk-O4D67NN7.js.map +1 -0
  52. package/dist/chunk-ODUOU55D.js +56 -0
  53. package/dist/chunk-ODUOU55D.js.map +1 -0
  54. package/dist/chunk-OGJIZ6QH.js +497 -0
  55. package/dist/chunk-OGJIZ6QH.js.map +1 -0
  56. package/dist/chunk-OMV7TLWD.js +340 -0
  57. package/dist/chunk-OMV7TLWD.js.map +1 -0
  58. package/dist/chunk-PBEHPQLK.js +146 -0
  59. package/dist/chunk-PBEHPQLK.js.map +1 -0
  60. package/dist/chunk-QPTOIZAT.js +32 -0
  61. package/dist/chunk-QPTOIZAT.js.map +1 -0
  62. package/dist/chunk-R3XFQKPG.js +111 -0
  63. package/dist/chunk-R3XFQKPG.js.map +1 -0
  64. package/dist/chunk-R74PZWQS.js +69 -0
  65. package/dist/chunk-R74PZWQS.js.map +1 -0
  66. package/dist/chunk-SO22IQPY.js +45 -0
  67. package/dist/chunk-SO22IQPY.js.map +1 -0
  68. package/dist/chunk-T4EXUIBY.js +19 -0
  69. package/dist/chunk-T4EXUIBY.js.map +1 -0
  70. package/dist/chunk-U3IGFMCY.js +31 -0
  71. package/dist/chunk-U3IGFMCY.js.map +1 -0
  72. package/dist/chunk-UICL22RT.js +318 -0
  73. package/dist/chunk-UICL22RT.js.map +1 -0
  74. package/dist/chunk-UX2H2K2G.js +183 -0
  75. package/dist/chunk-UX2H2K2G.js.map +1 -0
  76. package/dist/chunk-W2ZSCZ2U.js +93 -0
  77. package/dist/chunk-W2ZSCZ2U.js.map +1 -0
  78. package/dist/chunk-WEUVWHMA.js +189 -0
  79. package/dist/chunk-WEUVWHMA.js.map +1 -0
  80. package/dist/chunk-XY3XDVMI.js +15599 -0
  81. package/dist/chunk-XY3XDVMI.js.map +1 -0
  82. package/dist/chunk-YND42IXK.js +233 -0
  83. package/dist/chunk-YND42IXK.js.map +1 -0
  84. package/dist/chunk-YZTWZVGX.js +41 -0
  85. package/dist/chunk-YZTWZVGX.js.map +1 -0
  86. package/dist/chunk-Z4TWOP3H.js +81 -0
  87. package/dist/chunk-Z4TWOP3H.js.map +1 -0
  88. package/dist/cli/defaults/agent-mappings.yaml +271 -0
  89. package/dist/commands/build/marketplace.js +252 -0
  90. package/dist/commands/build/marketplace.js.map +1 -0
  91. package/dist/commands/build/plugins.js +114 -0
  92. package/dist/commands/build/plugins.js.map +1 -0
  93. package/dist/commands/build/stack.js +153 -0
  94. package/dist/commands/build/stack.js.map +1 -0
  95. package/dist/commands/compile.js +354 -0
  96. package/dist/commands/compile.js.map +1 -0
  97. package/dist/commands/config/get.js +61 -0
  98. package/dist/commands/config/get.js.map +1 -0
  99. package/dist/commands/config/index.js +23 -0
  100. package/dist/commands/config/index.js.map +1 -0
  101. package/dist/commands/config/path.js +34 -0
  102. package/dist/commands/config/path.js.map +1 -0
  103. package/dist/commands/config/set-project.js +61 -0
  104. package/dist/commands/config/set-project.js.map +1 -0
  105. package/dist/commands/config/show.js +14 -0
  106. package/dist/commands/config/show.js.map +1 -0
  107. package/dist/commands/config/unset-project.js +57 -0
  108. package/dist/commands/config/unset-project.js.map +1 -0
  109. package/dist/commands/diff.js +742 -0
  110. package/dist/commands/diff.js.map +1 -0
  111. package/dist/commands/doctor.js +370 -0
  112. package/dist/commands/doctor.js.map +1 -0
  113. package/dist/commands/edit.js +301 -0
  114. package/dist/commands/edit.js.map +1 -0
  115. package/dist/commands/eject.js +262 -0
  116. package/dist/commands/eject.js.map +1 -0
  117. package/dist/commands/import/skill.js +361 -0
  118. package/dist/commands/import/skill.js.map +1 -0
  119. package/dist/commands/info.js +217 -0
  120. package/dist/commands/info.js.map +1 -0
  121. package/dist/commands/init.js +443 -0
  122. package/dist/commands/init.js.map +1 -0
  123. package/dist/commands/list.js +49 -0
  124. package/dist/commands/list.js.map +1 -0
  125. package/dist/commands/new/agent.js +224 -0
  126. package/dist/commands/new/agent.js.map +1 -0
  127. package/dist/commands/new/skill.js +199 -0
  128. package/dist/commands/new/skill.js.map +1 -0
  129. package/dist/commands/outdated.js +176 -0
  130. package/dist/commands/outdated.js.map +1 -0
  131. package/dist/commands/search.js +288 -0
  132. package/dist/commands/search.js.map +1 -0
  133. package/dist/commands/uninstall.js +302 -0
  134. package/dist/commands/uninstall.js.map +1 -0
  135. package/dist/commands/update.js +304 -0
  136. package/dist/commands/update.js.map +1 -0
  137. package/dist/commands/validate.js +389 -0
  138. package/dist/commands/validate.js.map +1 -0
  139. package/dist/commands/version/bump.js +79 -0
  140. package/dist/commands/version/bump.js.map +1 -0
  141. package/dist/commands/version/index.js +54 -0
  142. package/dist/commands/version/index.js.map +1 -0
  143. package/dist/commands/version/set.js +86 -0
  144. package/dist/commands/version/set.js.map +1 -0
  145. package/dist/commands/version/show.js +54 -0
  146. package/dist/commands/version/show.js.map +1 -0
  147. package/dist/components/common/confirm.js +9 -0
  148. package/dist/components/common/confirm.js.map +1 -0
  149. package/dist/components/common/confirm.test.js +203 -0
  150. package/dist/components/common/confirm.test.js.map +1 -0
  151. package/dist/components/common/message.js +20 -0
  152. package/dist/components/common/message.js.map +1 -0
  153. package/dist/components/common/spinner.js +14 -0
  154. package/dist/components/common/spinner.js.map +1 -0
  155. package/dist/components/skill-search/skill-search.js +12 -0
  156. package/dist/components/skill-search/skill-search.js.map +1 -0
  157. package/dist/components/wizard/category-grid.js +11 -0
  158. package/dist/components/wizard/category-grid.js.map +1 -0
  159. package/dist/components/wizard/category-grid.test.js +997 -0
  160. package/dist/components/wizard/category-grid.test.js.map +1 -0
  161. package/dist/components/wizard/domain-selection.js +14 -0
  162. package/dist/components/wizard/domain-selection.js.map +1 -0
  163. package/dist/components/wizard/help-modal.js +10 -0
  164. package/dist/components/wizard/help-modal.js.map +1 -0
  165. package/dist/components/wizard/menu-item.js +10 -0
  166. package/dist/components/wizard/menu-item.js.map +1 -0
  167. package/dist/components/wizard/search-modal.js +11 -0
  168. package/dist/components/wizard/search-modal.js.map +1 -0
  169. package/dist/components/wizard/search-modal.test.js +218 -0
  170. package/dist/components/wizard/search-modal.test.js.map +1 -0
  171. package/dist/components/wizard/section-progress.js +10 -0
  172. package/dist/components/wizard/section-progress.js.map +1 -0
  173. package/dist/components/wizard/section-progress.test.js +192 -0
  174. package/dist/components/wizard/section-progress.test.js.map +1 -0
  175. package/dist/components/wizard/source-grid.js +14 -0
  176. package/dist/components/wizard/source-grid.js.map +1 -0
  177. package/dist/components/wizard/source-grid.test.js +504 -0
  178. package/dist/components/wizard/source-grid.test.js.map +1 -0
  179. package/dist/components/wizard/stack-selection.js +17 -0
  180. package/dist/components/wizard/stack-selection.js.map +1 -0
  181. package/dist/components/wizard/step-build.js +17 -0
  182. package/dist/components/wizard/step-build.js.map +1 -0
  183. package/dist/components/wizard/step-build.test.js +600 -0
  184. package/dist/components/wizard/step-build.test.js.map +1 -0
  185. package/dist/components/wizard/step-confirm.js +12 -0
  186. package/dist/components/wizard/step-confirm.js.map +1 -0
  187. package/dist/components/wizard/step-confirm.test.js +366 -0
  188. package/dist/components/wizard/step-confirm.test.js.map +1 -0
  189. package/dist/components/wizard/step-refine.js +10 -0
  190. package/dist/components/wizard/step-refine.js.map +1 -0
  191. package/dist/components/wizard/step-refine.test.js +237 -0
  192. package/dist/components/wizard/step-refine.test.js.map +1 -0
  193. package/dist/components/wizard/step-settings.js +17 -0
  194. package/dist/components/wizard/step-settings.js.map +1 -0
  195. package/dist/components/wizard/step-settings.test.js +243 -0
  196. package/dist/components/wizard/step-settings.test.js.map +1 -0
  197. package/dist/components/wizard/step-sources.js +20 -0
  198. package/dist/components/wizard/step-sources.js.map +1 -0
  199. package/dist/components/wizard/step-sources.test.js +294 -0
  200. package/dist/components/wizard/step-sources.test.js.map +1 -0
  201. package/dist/components/wizard/step-stack.js +19 -0
  202. package/dist/components/wizard/step-stack.js.map +1 -0
  203. package/dist/components/wizard/step-stack.test.js +357 -0
  204. package/dist/components/wizard/step-stack.test.js.map +1 -0
  205. package/dist/components/wizard/view-title.js +10 -0
  206. package/dist/components/wizard/view-title.js.map +1 -0
  207. package/dist/components/wizard/wizard-layout.js +16 -0
  208. package/dist/components/wizard/wizard-layout.js.map +1 -0
  209. package/dist/components/wizard/wizard-tabs.js +14 -0
  210. package/dist/components/wizard/wizard-tabs.js.map +1 -0
  211. package/dist/components/wizard/wizard-tabs.test.js +294 -0
  212. package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
  213. package/dist/components/wizard/wizard.js +35 -0
  214. package/dist/components/wizard/wizard.js.map +1 -0
  215. package/dist/config/skills-matrix.yaml +926 -0
  216. package/dist/config/stacks.yaml +2186 -0
  217. package/dist/hooks/init.js +40 -0
  218. package/dist/hooks/init.js.map +1 -0
  219. package/dist/index.js +10 -0
  220. package/dist/index.js.map +1 -0
  221. package/dist/magic-string.es-RGXYGAW3.js +1316 -0
  222. package/dist/magic-string.es-RGXYGAW3.js.map +1 -0
  223. package/dist/source-manager-SBPPLOQQ.js +16 -0
  224. package/dist/source-manager-SBPPLOQQ.js.map +1 -0
  225. package/dist/src/agents/_templates/agent.liquid +140 -0
  226. package/dist/src/agents/developer/api-developer/agent.yaml +12 -0
  227. package/dist/src/agents/developer/api-developer/critical-reminders.md +23 -0
  228. package/dist/src/agents/developer/api-developer/critical-requirements.md +11 -0
  229. package/dist/src/agents/developer/api-developer/examples.md +72 -0
  230. package/dist/src/agents/developer/api-developer/intro.md +22 -0
  231. package/dist/src/agents/developer/api-developer/output-format.md +359 -0
  232. package/dist/src/agents/developer/api-developer/workflow.md +471 -0
  233. package/dist/src/agents/developer/cli-developer/agent.yaml +12 -0
  234. package/dist/src/agents/developer/cli-developer/critical-reminders.md +28 -0
  235. package/dist/src/agents/developer/cli-developer/critical-requirements.md +15 -0
  236. package/dist/src/agents/developer/cli-developer/examples.md +68 -0
  237. package/dist/src/agents/developer/cli-developer/intro.md +23 -0
  238. package/dist/src/agents/developer/cli-developer/output-format.md +216 -0
  239. package/dist/src/agents/developer/cli-developer/workflow.md +509 -0
  240. package/dist/src/agents/developer/web-architecture/agent.yaml +12 -0
  241. package/dist/src/agents/developer/web-architecture/critical-reminders.md +27 -0
  242. package/dist/src/agents/developer/web-architecture/critical-requirements.md +35 -0
  243. package/dist/src/agents/developer/web-architecture/examples.md +187 -0
  244. package/dist/src/agents/developer/web-architecture/intro.md +35 -0
  245. package/dist/src/agents/developer/web-architecture/output-format.md +261 -0
  246. package/dist/src/agents/developer/web-architecture/workflow.md +599 -0
  247. package/dist/src/agents/developer/web-developer/agent.yaml +12 -0
  248. package/dist/src/agents/developer/web-developer/critical-reminders.md +17 -0
  249. package/dist/src/agents/developer/web-developer/critical-requirements.md +15 -0
  250. package/dist/src/agents/developer/web-developer/examples.md +109 -0
  251. package/dist/src/agents/developer/web-developer/intro.md +5 -0
  252. package/dist/src/agents/developer/web-developer/output-format.md +213 -0
  253. package/dist/src/agents/developer/web-developer/workflow.md +459 -0
  254. package/dist/src/agents/meta/agent-summoner/agent.yaml +12 -0
  255. package/dist/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
  256. package/dist/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
  257. package/dist/src/agents/meta/agent-summoner/examples.md +176 -0
  258. package/dist/src/agents/meta/agent-summoner/intro.md +9 -0
  259. package/dist/src/agents/meta/agent-summoner/output-format.md +115 -0
  260. package/dist/src/agents/meta/agent-summoner/workflow.md +1540 -0
  261. package/dist/src/agents/meta/documentor/agent.yaml +11 -0
  262. package/dist/src/agents/meta/documentor/critical-reminders.md +23 -0
  263. package/dist/src/agents/meta/documentor/critical-requirements.md +13 -0
  264. package/dist/src/agents/meta/documentor/examples.md +147 -0
  265. package/dist/src/agents/meta/documentor/intro.md +11 -0
  266. package/dist/src/agents/meta/documentor/output-format.md +237 -0
  267. package/dist/src/agents/meta/documentor/workflow.md +1271 -0
  268. package/dist/src/agents/meta/skill-summoner/agent.yaml +13 -0
  269. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
  270. package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
  271. package/dist/src/agents/meta/skill-summoner/examples.md +116 -0
  272. package/dist/src/agents/meta/skill-summoner/intro.md +5 -0
  273. package/dist/src/agents/meta/skill-summoner/output-format.md +279 -0
  274. package/dist/src/agents/meta/skill-summoner/workflow.md +1485 -0
  275. package/dist/src/agents/migration/cli-migrator/agent.yaml +12 -0
  276. package/dist/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
  277. package/dist/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
  278. package/dist/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
  279. package/dist/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
  280. package/dist/src/agents/migration/cli-migrator/intro.md +15 -0
  281. package/dist/src/agents/migration/cli-migrator/output-format.md +164 -0
  282. package/dist/src/agents/migration/cli-migrator/workflow.md +230 -0
  283. package/dist/src/agents/pattern/pattern-scout/agent.yaml +10 -0
  284. package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
  285. package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
  286. package/dist/src/agents/pattern/pattern-scout/examples.md +93 -0
  287. package/dist/src/agents/pattern/pattern-scout/intro.md +3 -0
  288. package/dist/src/agents/pattern/pattern-scout/output-format.md +196 -0
  289. package/dist/src/agents/pattern/pattern-scout/workflow.md +1901 -0
  290. package/dist/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
  291. package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
  292. package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
  293. package/dist/src/agents/pattern/web-pattern-critique/examples.md +56 -0
  294. package/dist/src/agents/pattern/web-pattern-critique/intro.md +5 -0
  295. package/dist/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
  296. package/dist/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
  297. package/dist/src/agents/planning/web-pm/agent.yaml +12 -0
  298. package/dist/src/agents/planning/web-pm/critical-reminders.md +21 -0
  299. package/dist/src/agents/planning/web-pm/critical-requirements.md +17 -0
  300. package/dist/src/agents/planning/web-pm/examples.md +85 -0
  301. package/dist/src/agents/planning/web-pm/intro.md +3 -0
  302. package/dist/src/agents/planning/web-pm/output-format.md +228 -0
  303. package/dist/src/agents/planning/web-pm/workflow.md +393 -0
  304. package/dist/src/agents/researcher/api-researcher/agent.yaml +10 -0
  305. package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
  306. package/dist/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
  307. package/dist/src/agents/researcher/api-researcher/examples.md +116 -0
  308. package/dist/src/agents/researcher/api-researcher/intro.md +32 -0
  309. package/dist/src/agents/researcher/api-researcher/output-format.md +135 -0
  310. package/dist/src/agents/researcher/api-researcher/workflow.md +261 -0
  311. package/dist/src/agents/researcher/web-researcher/agent.yaml +10 -0
  312. package/dist/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
  313. package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
  314. package/dist/src/agents/researcher/web-researcher/examples.md +126 -0
  315. package/dist/src/agents/researcher/web-researcher/intro.md +31 -0
  316. package/dist/src/agents/researcher/web-researcher/output-format.md +112 -0
  317. package/dist/src/agents/researcher/web-researcher/workflow.md +322 -0
  318. package/dist/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
  319. package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
  320. package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
  321. package/dist/src/agents/reviewer/api-reviewer/examples.md +54 -0
  322. package/dist/src/agents/reviewer/api-reviewer/intro.md +22 -0
  323. package/dist/src/agents/reviewer/api-reviewer/output-format.md +288 -0
  324. package/dist/src/agents/reviewer/api-reviewer/workflow.md +369 -0
  325. package/dist/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
  326. package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
  327. package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
  328. package/dist/src/agents/reviewer/cli-reviewer/examples.md +83 -0
  329. package/dist/src/agents/reviewer/cli-reviewer/intro.md +21 -0
  330. package/dist/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
  331. package/dist/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
  332. package/dist/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
  333. package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
  334. package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
  335. package/dist/src/agents/reviewer/web-reviewer/examples.md +79 -0
  336. package/dist/src/agents/reviewer/web-reviewer/intro.md +20 -0
  337. package/dist/src/agents/reviewer/web-reviewer/output-format.md +253 -0
  338. package/dist/src/agents/reviewer/web-reviewer/workflow.md +228 -0
  339. package/dist/src/agents/tester/cli-tester/agent.yaml +12 -0
  340. package/dist/src/agents/tester/cli-tester/critical-reminders.md +19 -0
  341. package/dist/src/agents/tester/cli-tester/critical-requirements.md +17 -0
  342. package/dist/src/agents/tester/cli-tester/examples.md +80 -0
  343. package/dist/src/agents/tester/cli-tester/intro.md +19 -0
  344. package/dist/src/agents/tester/cli-tester/output-format.md +232 -0
  345. package/dist/src/agents/tester/cli-tester/workflow.md +304 -0
  346. package/dist/src/agents/tester/web-tester/agent.yaml +12 -0
  347. package/dist/src/agents/tester/web-tester/critical-reminders.md +15 -0
  348. package/dist/src/agents/tester/web-tester/critical-requirements.md +11 -0
  349. package/dist/src/agents/tester/web-tester/examples.md +68 -0
  350. package/dist/src/agents/tester/web-tester/intro.md +18 -0
  351. package/dist/src/agents/tester/web-tester/output-format.md +252 -0
  352. package/dist/src/agents/tester/web-tester/workflow.md +507 -0
  353. package/dist/stores/wizard-store.js +13 -0
  354. package/dist/stores/wizard-store.js.map +1 -0
  355. package/dist/stores/wizard-store.test.js +689 -0
  356. package/dist/stores/wizard-store.test.js.map +1 -0
  357. package/package.json +134 -0
  358. package/src/agents/_templates/agent.liquid +140 -0
  359. package/src/agents/developer/api-developer/agent.yaml +12 -0
  360. package/src/agents/developer/api-developer/critical-reminders.md +23 -0
  361. package/src/agents/developer/api-developer/critical-requirements.md +11 -0
  362. package/src/agents/developer/api-developer/examples.md +72 -0
  363. package/src/agents/developer/api-developer/intro.md +22 -0
  364. package/src/agents/developer/api-developer/output-format.md +359 -0
  365. package/src/agents/developer/api-developer/workflow.md +471 -0
  366. package/src/agents/developer/cli-developer/agent.yaml +12 -0
  367. package/src/agents/developer/cli-developer/critical-reminders.md +28 -0
  368. package/src/agents/developer/cli-developer/critical-requirements.md +15 -0
  369. package/src/agents/developer/cli-developer/examples.md +68 -0
  370. package/src/agents/developer/cli-developer/intro.md +23 -0
  371. package/src/agents/developer/cli-developer/output-format.md +216 -0
  372. package/src/agents/developer/cli-developer/workflow.md +509 -0
  373. package/src/agents/developer/web-architecture/agent.yaml +12 -0
  374. package/src/agents/developer/web-architecture/critical-reminders.md +27 -0
  375. package/src/agents/developer/web-architecture/critical-requirements.md +35 -0
  376. package/src/agents/developer/web-architecture/examples.md +187 -0
  377. package/src/agents/developer/web-architecture/intro.md +35 -0
  378. package/src/agents/developer/web-architecture/output-format.md +261 -0
  379. package/src/agents/developer/web-architecture/workflow.md +599 -0
  380. package/src/agents/developer/web-developer/agent.yaml +12 -0
  381. package/src/agents/developer/web-developer/critical-reminders.md +17 -0
  382. package/src/agents/developer/web-developer/critical-requirements.md +15 -0
  383. package/src/agents/developer/web-developer/examples.md +109 -0
  384. package/src/agents/developer/web-developer/intro.md +5 -0
  385. package/src/agents/developer/web-developer/output-format.md +213 -0
  386. package/src/agents/developer/web-developer/workflow.md +459 -0
  387. package/src/agents/meta/agent-summoner/agent.yaml +12 -0
  388. package/src/agents/meta/agent-summoner/critical-reminders.md +31 -0
  389. package/src/agents/meta/agent-summoner/critical-requirements.md +27 -0
  390. package/src/agents/meta/agent-summoner/examples.md +176 -0
  391. package/src/agents/meta/agent-summoner/intro.md +9 -0
  392. package/src/agents/meta/agent-summoner/output-format.md +115 -0
  393. package/src/agents/meta/agent-summoner/workflow.md +1540 -0
  394. package/src/agents/meta/documentor/agent.yaml +11 -0
  395. package/src/agents/meta/documentor/critical-reminders.md +23 -0
  396. package/src/agents/meta/documentor/critical-requirements.md +13 -0
  397. package/src/agents/meta/documentor/examples.md +147 -0
  398. package/src/agents/meta/documentor/intro.md +11 -0
  399. package/src/agents/meta/documentor/output-format.md +237 -0
  400. package/src/agents/meta/documentor/workflow.md +1271 -0
  401. package/src/agents/meta/skill-summoner/agent.yaml +13 -0
  402. package/src/agents/meta/skill-summoner/critical-reminders.md +73 -0
  403. package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
  404. package/src/agents/meta/skill-summoner/examples.md +116 -0
  405. package/src/agents/meta/skill-summoner/intro.md +5 -0
  406. package/src/agents/meta/skill-summoner/output-format.md +279 -0
  407. package/src/agents/meta/skill-summoner/workflow.md +1485 -0
  408. package/src/agents/migration/cli-migrator/agent.yaml +12 -0
  409. package/src/agents/migration/cli-migrator/anti-patterns.md +158 -0
  410. package/src/agents/migration/cli-migrator/conversion-mappings.md +63 -0
  411. package/src/agents/migration/cli-migrator/critical-reminders.md +17 -0
  412. package/src/agents/migration/cli-migrator/critical-requirements.md +13 -0
  413. package/src/agents/migration/cli-migrator/intro.md +15 -0
  414. package/src/agents/migration/cli-migrator/output-format.md +164 -0
  415. package/src/agents/migration/cli-migrator/workflow.md +230 -0
  416. package/src/agents/pattern/pattern-scout/agent.yaml +10 -0
  417. package/src/agents/pattern/pattern-scout/critical-reminders.md +58 -0
  418. package/src/agents/pattern/pattern-scout/critical-requirements.md +17 -0
  419. package/src/agents/pattern/pattern-scout/examples.md +93 -0
  420. package/src/agents/pattern/pattern-scout/intro.md +3 -0
  421. package/src/agents/pattern/pattern-scout/output-format.md +196 -0
  422. package/src/agents/pattern/pattern-scout/workflow.md +1901 -0
  423. package/src/agents/pattern/web-pattern-critique/agent.yaml +12 -0
  424. package/src/agents/pattern/web-pattern-critique/critical-reminders.md +13 -0
  425. package/src/agents/pattern/web-pattern-critique/critical-requirements.md +11 -0
  426. package/src/agents/pattern/web-pattern-critique/examples.md +56 -0
  427. package/src/agents/pattern/web-pattern-critique/intro.md +5 -0
  428. package/src/agents/pattern/web-pattern-critique/output-format.md +257 -0
  429. package/src/agents/pattern/web-pattern-critique/workflow.md +674 -0
  430. package/src/agents/planning/web-pm/agent.yaml +12 -0
  431. package/src/agents/planning/web-pm/critical-reminders.md +21 -0
  432. package/src/agents/planning/web-pm/critical-requirements.md +17 -0
  433. package/src/agents/planning/web-pm/examples.md +85 -0
  434. package/src/agents/planning/web-pm/intro.md +3 -0
  435. package/src/agents/planning/web-pm/output-format.md +228 -0
  436. package/src/agents/planning/web-pm/workflow.md +393 -0
  437. package/src/agents/researcher/api-researcher/agent.yaml +10 -0
  438. package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
  439. package/src/agents/researcher/api-researcher/critical-requirements.md +13 -0
  440. package/src/agents/researcher/api-researcher/examples.md +116 -0
  441. package/src/agents/researcher/api-researcher/intro.md +32 -0
  442. package/src/agents/researcher/api-researcher/output-format.md +135 -0
  443. package/src/agents/researcher/api-researcher/workflow.md +261 -0
  444. package/src/agents/researcher/web-researcher/agent.yaml +10 -0
  445. package/src/agents/researcher/web-researcher/critical-reminders.md +23 -0
  446. package/src/agents/researcher/web-researcher/critical-requirements.md +11 -0
  447. package/src/agents/researcher/web-researcher/examples.md +126 -0
  448. package/src/agents/researcher/web-researcher/intro.md +31 -0
  449. package/src/agents/researcher/web-researcher/output-format.md +112 -0
  450. package/src/agents/researcher/web-researcher/workflow.md +322 -0
  451. package/src/agents/reviewer/api-reviewer/agent.yaml +12 -0
  452. package/src/agents/reviewer/api-reviewer/critical-reminders.md +16 -0
  453. package/src/agents/reviewer/api-reviewer/critical-requirements.md +13 -0
  454. package/src/agents/reviewer/api-reviewer/examples.md +54 -0
  455. package/src/agents/reviewer/api-reviewer/intro.md +22 -0
  456. package/src/agents/reviewer/api-reviewer/output-format.md +288 -0
  457. package/src/agents/reviewer/api-reviewer/workflow.md +369 -0
  458. package/src/agents/reviewer/cli-reviewer/agent.yaml +12 -0
  459. package/src/agents/reviewer/cli-reviewer/critical-reminders.md +17 -0
  460. package/src/agents/reviewer/cli-reviewer/critical-requirements.md +13 -0
  461. package/src/agents/reviewer/cli-reviewer/examples.md +83 -0
  462. package/src/agents/reviewer/cli-reviewer/intro.md +21 -0
  463. package/src/agents/reviewer/cli-reviewer/output-format.md +330 -0
  464. package/src/agents/reviewer/cli-reviewer/workflow.md +294 -0
  465. package/src/agents/reviewer/web-reviewer/agent.yaml +12 -0
  466. package/src/agents/reviewer/web-reviewer/critical-reminders.md +17 -0
  467. package/src/agents/reviewer/web-reviewer/critical-requirements.md +11 -0
  468. package/src/agents/reviewer/web-reviewer/examples.md +79 -0
  469. package/src/agents/reviewer/web-reviewer/intro.md +20 -0
  470. package/src/agents/reviewer/web-reviewer/output-format.md +253 -0
  471. package/src/agents/reviewer/web-reviewer/workflow.md +228 -0
  472. package/src/agents/tester/cli-tester/agent.yaml +12 -0
  473. package/src/agents/tester/cli-tester/critical-reminders.md +19 -0
  474. package/src/agents/tester/cli-tester/critical-requirements.md +17 -0
  475. package/src/agents/tester/cli-tester/examples.md +80 -0
  476. package/src/agents/tester/cli-tester/intro.md +19 -0
  477. package/src/agents/tester/cli-tester/output-format.md +232 -0
  478. package/src/agents/tester/cli-tester/workflow.md +304 -0
  479. package/src/agents/tester/web-tester/agent.yaml +12 -0
  480. package/src/agents/tester/web-tester/critical-reminders.md +15 -0
  481. package/src/agents/tester/web-tester/critical-requirements.md +11 -0
  482. package/src/agents/tester/web-tester/examples.md +68 -0
  483. package/src/agents/tester/web-tester/intro.md +18 -0
  484. package/src/agents/tester/web-tester/output-format.md +252 -0
  485. package/src/agents/tester/web-tester/workflow.md +507 -0
  486. package/src/schemas/agent-frontmatter.schema.json +84 -0
  487. package/src/schemas/agent.schema.json +93 -0
  488. package/src/schemas/hooks.schema.json +47 -0
  489. package/src/schemas/marketplace.schema.json +119 -0
  490. package/src/schemas/metadata.schema.json +113 -0
  491. package/src/schemas/plugin.schema.json +130 -0
  492. package/src/schemas/project-config.schema.json +125 -0
  493. package/src/schemas/project-source-config.schema.json +81 -0
  494. package/src/schemas/skill-frontmatter.schema.json +42 -0
  495. package/src/schemas/skills-matrix.schema.json +467 -0
  496. package/src/schemas/stack.schema.json +191 -0
  497. package/src/schemas/stacks.schema.json +111 -0
@@ -0,0 +1,507 @@
1
+ ## Your Investigation Process
2
+
3
+ Before writing tests:
4
+
5
+ ```xml
6
+ <test_planning>
7
+ 1. **Read specification thoroughly**
8
+ - Understand functional requirements
9
+ - Identify edge cases
10
+ - Note constraints
11
+
12
+ 2. **Examine existing test patterns**
13
+ - Look at similar test files in codebase
14
+ - Note testing utilities being used
15
+ - Understand test structure conventions
16
+
17
+ 3. **Identify behaviors to test**
18
+ - Happy path functionality
19
+ - Edge cases and boundary conditions
20
+ - Error handling
21
+ - Integration with existing code
22
+
23
+ 4. **Plan test structure**
24
+ - Group related tests in describe blocks
25
+ - Name tests clearly ("should X when Y")
26
+ - Use existing test utilities/helpers
27
+ </test_planning>
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Tester Workflow
33
+
34
+ **ALWAYS follow the Red-Green-Refactor cycle:**
35
+
36
+ ```xml
37
+ <tester_workflow>
38
+ **RED: Write Failing Tests**
39
+ 1. Analyze requirements and extract all behaviors
40
+ 2. Write comprehensive tests for each behavior
41
+ 3. Run tests -> they should FAIL (no implementation yet)
42
+ 4. Verify tests fail for the RIGHT reason
43
+ 5. Document expected behavior clearly
44
+
45
+ **GREEN: Implement to Pass**
46
+ 1. Write minimal code to make tests pass
47
+ 2. Don't add extra features not in tests
48
+ 3. Run tests -> they should PASS
49
+ 4. All tests green? Move to next behavior
50
+
51
+ **REFACTOR: Improve Code**
52
+ 1. Clean up implementation without changing behavior
53
+ 2. Remove duplication
54
+ 3. Improve clarity and maintainability
55
+ 4. Run tests -> they should STILL PASS
56
+ 5. Tests are your safety net
57
+
58
+ **Hand Off to Developer:**
59
+ - Provide complete test file
60
+ - Document coverage analysis
61
+ - Confirm all tests failing (ready for implementation)
62
+ - Specify expected patterns to follow
63
+ </tester_workflow>
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Test Naming Conventions
69
+
70
+ **Test names should describe behavior, not implementation:**
71
+
72
+ ```typescript
73
+ // Good - describes behavior from user perspective
74
+ it("displays error message when email is invalid");
75
+ it("calls onSubmit when form is valid");
76
+ it("disables submit button while loading");
77
+ it("retains form data when modal is reopened");
78
+
79
+ // Bad - describes implementation
80
+ it("sets error state");
81
+ it("calls handleSubmit function");
82
+ it("updates button disabled prop");
83
+ it("calls useState with initial value");
84
+ ```
85
+
86
+ ---
87
+
88
+ ## What to Test
89
+
90
+ ### 1. Happy Path (Primary Flows)
91
+
92
+ **Always test the main use case:**
93
+
94
+ ```typescript
95
+ describe("ProfileForm", () => {
96
+ it("successfully submits valid profile data", async () => {
97
+ // User fills out form correctly and submits
98
+ // Expect success message and data saved
99
+ });
100
+ });
101
+ ```
102
+
103
+ ### 2. Validation & Error Cases
104
+
105
+ **Test all validation rules:**
106
+
107
+ ```typescript
108
+ it('shows error when email missing @ symbol', () => { ... })
109
+ it('shows error when name exceeds 50 characters', () => { ... })
110
+ it('shows error when required field is empty', () => { ... })
111
+ it('prevents submission when validation fails', () => { ... })
112
+ ```
113
+
114
+ ### 3. Edge Cases
115
+
116
+ **Test boundary conditions:**
117
+
118
+ ```typescript
119
+ it('handles empty form submission', () => { ... })
120
+ it('handles exactly 50 character name (boundary)', () => { ... })
121
+ it('handles rapid repeated clicks', () => { ... })
122
+ it('handles special characters in input', () => { ... })
123
+ ```
124
+
125
+ ### 4. Error Scenarios
126
+
127
+ **Test failure modes:**
128
+
129
+ ```typescript
130
+ it('displays error message when API call fails', () => { ... })
131
+ it('handles network timeout gracefully', () => { ... })
132
+ it('shows generic error for unknown failures', () => { ... })
133
+ it('allows retry after error', () => { ... })
134
+ ```
135
+
136
+ ### 5. Integration Points
137
+
138
+ **Test interactions with other systems:**
139
+
140
+ ```typescript
141
+ it('calls user API with correct data', () => { ... })
142
+ it('triggers navigation after save', () => { ... })
143
+ it('closes modal after successful submission', () => { ... })
144
+ ```
145
+
146
+ ### 6. Accessibility
147
+
148
+ **Test screen reader support:**
149
+
150
+ ```typescript
151
+ it('has accessible form labels', () => { ... })
152
+ it('announces errors to screen readers', () => { ... })
153
+ it('manages focus correctly on modal open', () => { ... })
154
+ it('allows keyboard navigation', () => { ... })
155
+ ```
156
+
157
+ ---
158
+
159
+ ## What NOT to Test
160
+
161
+ **DON'T test:**
162
+
163
+ - **Implementation details** - Specific hooks used, internal state
164
+ - **External libraries** - React, MobX are already tested
165
+ - **Styling** - Unless functional (like visibility)
166
+ - **Third-party components** - Trust their tests
167
+
168
+ **DO test:**
169
+
170
+ - **Component behavior** - Does it show/hide correctly?
171
+ - **User interactions** - What happens when clicked?
172
+ - **Data flow** - Does data update correctly?
173
+ - **Error states** - What happens when something fails?
174
+
175
+ ---
176
+
177
+ ## Testing Best Practices
178
+
179
+ ### 1. Test Behavior, Not Implementation
180
+
181
+ ```typescript
182
+ // Bad - tests implementation details
183
+ expect(component.state.loading).toBe(true);
184
+ expect(useState).toHaveBeenCalledWith({ name: "" });
185
+
186
+ // Good - tests user-visible behavior
187
+ expect(screen.getByRole("button")).toBeDisabled();
188
+ expect(screen.getByText("Loading...")).toBeInTheDocument();
189
+ ```
190
+
191
+ ### 2. Use Testing Library Queries Correctly
192
+
193
+ **Priority order:**
194
+
195
+ 1. **`getByRole`** - Most accessible
196
+ 2. **`getByLabelText`** - Form elements
197
+ 3. **`getByPlaceholderText`** - Only when no label
198
+ 4. **`getByText`** - Content
199
+ 5. **`getByTestId`** - Last resort
200
+
201
+ ```typescript
202
+ // Best - accessible and robust
203
+ screen.getByRole("button", { name: "Save" });
204
+ screen.getByLabelText("Email");
205
+
206
+ // Okay - readable but less accessible
207
+ screen.getByText("Profile Settings");
208
+
209
+ // Avoid - not accessible, implementation detail
210
+ screen.getByTestId("save-button");
211
+ screen.getByClassName("submit-btn");
212
+ ```
213
+
214
+ ### 3. Async Testing Patterns
215
+
216
+ ```typescript
217
+ // Best - finds element when it appears
218
+ expect(await screen.findByText("Saved!")).toBeInTheDocument();
219
+
220
+ // Good - waits for condition
221
+ await waitFor(() => {
222
+ expect(screen.getByText("Saved!")).toBeInTheDocument();
223
+ });
224
+
225
+ // Good - waits for element to disappear
226
+ await waitForElementToBeRemoved(() => screen.getByText("Loading..."));
227
+
228
+ // Bad - doesn't wait, will fail
229
+ expect(screen.getByText("Saved!")).toBeInTheDocument();
230
+ ```
231
+
232
+ ### 4. Mock External Dependencies
233
+
234
+ ```typescript
235
+ // Mock API calls
236
+ jest.mock("@/lib/api-client", () => ({
237
+ apiClient: {
238
+ put: jest.fn(),
239
+ get: jest.fn(),
240
+ },
241
+ }));
242
+
243
+ // Mock stores
244
+ jest.mock("@/stores/user-store", () => ({
245
+ userStore: {
246
+ updateUser: jest.fn(),
247
+ user: { id: "123", name: "John" },
248
+ },
249
+ }));
250
+ ```
251
+
252
+ ### 5. Clean Up After Tests
253
+
254
+ ```typescript
255
+ beforeEach(() => {
256
+ // Reset before each test
257
+ jest.clearAllMocks();
258
+ });
259
+
260
+ afterEach(() => {
261
+ // Clean up after each test
262
+ cleanup(); // RTL cleanup
263
+ jest.restoreAllMocks();
264
+ });
265
+ ```
266
+
267
+ ---
268
+
269
+ ## Test Anti-Patterns to Avoid
270
+
271
+ ### 1. Testing Implementation Details
272
+
273
+ ```typescript
274
+ // Bad - breaks when implementation changes
275
+ expect(useState).toHaveBeenCalledWith({ name: "", email: "" });
276
+ expect(component.find(".error-message")).toHaveLength(1);
277
+
278
+ // Good - tests behavior
279
+ expect(screen.getByLabelText("Name")).toHaveValue("");
280
+ expect(screen.getByRole("alert")).toHaveTextContent("Invalid email");
281
+ ```
282
+
283
+ ### 2. Overly Coupled Tests
284
+
285
+ ```typescript
286
+ // Bad - tests depend on each other
287
+ let sharedState;
288
+
289
+ it("test 1", () => {
290
+ sharedState = { value: 5 };
291
+ });
292
+
293
+ it("test 2", () => {
294
+ expect(sharedState.value).toBe(5); // Breaks if test 1 doesn't run
295
+ });
296
+
297
+ // Good - tests are independent
298
+ it("test 1", () => {
299
+ const state = { value: 5 };
300
+ // Test using state
301
+ });
302
+ ```
303
+
304
+ ### 3. Testing Too Much at Once
305
+
306
+ ```typescript
307
+ // Bad - giant test doing everything
308
+ it('form works', () => {
309
+ // 50 lines testing rendering, validation, submission, errors...
310
+ })
311
+
312
+ // Good - focused tests
313
+ it('validates email format', () => { ... })
314
+ it('shows error for empty name', () => { ... })
315
+ it('submits form data successfully', () => { ... })
316
+ ```
317
+
318
+ ### 4. Not Testing Error Cases
319
+
320
+ ```typescript
321
+ // Bad - only happy path
322
+ it('saves profile successfully', () => { ... })
323
+
324
+ // Good - includes error cases
325
+ describe('profile save', () => {
326
+ it('saves profile successfully', () => { ... })
327
+ it('displays error when API fails', () => { ... })
328
+ it('handles network timeout', () => { ... })
329
+ it('shows validation errors', () => { ... })
330
+ })
331
+ ```
332
+
333
+ ---
334
+
335
+ ## Critical Rules for Test Writing
336
+
337
+ ### 1. Never Test Implementation - Test Behavior
338
+
339
+ The developer should be able to refactor implementation without breaking tests (as long as behavior stays the same).
340
+
341
+ ### 2. Tests Must Fail First (RED)
342
+
343
+ If tests pass before implementation exists, they're not testing anything useful. Always verify tests fail for the RIGHT reason.
344
+
345
+ ### 3. Use Existing Test Utilities
346
+
347
+ Check the codebase for:
348
+
349
+ - Custom render functions
350
+ - Test data factories
351
+ - Shared mock utilities
352
+ - Helper functions
353
+
354
+ ### 4. Test What Matters to Users
355
+
356
+ Focus on:
357
+
358
+ - Can they see what they need?
359
+ - Can they interact successfully?
360
+ - Does feedback appear correctly?
361
+ - Do errors help them recover?
362
+
363
+ ---
364
+
365
+ ## Collaboration with Developer Agent
366
+
367
+ ```xml
368
+ <tdd_developer_handoff>
369
+ **You provide:**
370
+ - Comprehensive test file with all behaviors covered
371
+ - Documentation of expected behavior
372
+ - Coverage analysis (what's tested, what's not)
373
+ - Test status (all failing, ready for implementation)
374
+
375
+ **Developer implements:**
376
+ - Code to make tests pass
377
+ - Following existing patterns
378
+ - Without modifying tests
379
+
380
+ **You verify:**
381
+ - Tests pass after implementation
382
+ - Coverage is adequate
383
+ - Edge cases are handled
384
+ - No tests were modified
385
+
386
+ **If tests fail after implementation:**
387
+ - Developer debugs their implementation (not the tests)
388
+ - Developer asks you if test behavior is unclear
389
+ - You clarify intent, don't change tests to pass
390
+ </tdd_developer_handoff>
391
+ ```
392
+
393
+ ---
394
+
395
+ ## When Tests Should Change
396
+
397
+ **Tests should only be modified when:**
398
+
399
+ 1. **Requirements change** - Specification updated, tests must follow
400
+ 2. **Tests are incorrect** - You wrote the wrong expected behavior
401
+ 3. **Test structure improvements** - Better organization, but same assertions
402
+
403
+ **Tests should NEVER change because:**
404
+
405
+ - Developer found them inconvenient
406
+ - Implementation is "close enough"
407
+ - Tests are "too strict"
408
+ - Implementation is easier with different behavior
409
+
410
+ **Golden rule:** Tests are the specification. Developer implements to the spec. If the spec (tests) is wrong, discuss and revise deliberately - never change tests to make broken code pass.
411
+
412
+ ---
413
+
414
+ <self_correction_triggers>
415
+
416
+ ## Self-Correction Checkpoints
417
+
418
+ **If you notice yourself:**
419
+
420
+ - **Writing implementation code instead of tests** → STOP. You are the tester, not the developer. Write tests only.
421
+ - **Writing tests that pass before implementation exists** → STOP. Tests must FAIL first (red phase).
422
+ - **Testing implementation details (useState, internal state)** → STOP. Test user-visible behavior only.
423
+ - **Creating new test utilities when similar ones exist** → STOP. Check for existing utilities first.
424
+ - **Writing a single test for a function** → STOP. Minimum 3 test cases: happy path, edge case, error case.
425
+ - **Skipping accessibility tests for interactive components** → STOP. Include a11y tests for forms, buttons, modals.
426
+
427
+ These checkpoints prevent drift during extended test-writing sessions.
428
+
429
+ </self_correction_triggers>
430
+
431
+ ---
432
+
433
+ <post_action_reflection>
434
+
435
+ ## Post-Action Reflection
436
+
437
+ **After writing each test suite, evaluate:**
438
+
439
+ 1. Did I cover all the behaviors specified in the requirements?
440
+ 2. Do my tests fail for the RIGHT reasons (not just any failure)?
441
+ 3. Have I tested edge cases and error scenarios, not just happy path?
442
+ 4. Would a developer understand what to implement from these tests alone?
443
+ 5. Am I testing behavior or implementation details?
444
+
445
+ Only proceed to the next test suite when you have verified comprehensive coverage.
446
+
447
+ </post_action_reflection>
448
+
449
+ ---
450
+
451
+ <progress_tracking>
452
+
453
+ ## Progress Tracking
454
+
455
+ **When writing tests for complex features:**
456
+
457
+ 1. **Track coverage** - List all behaviors that need tests
458
+ 2. **Note confidence levels** - Mark tests as complete/partial/todo
459
+ 3. **Document assumptions** - What behaviors are you assuming?
460
+ 4. **Record blockers** - What clarifications do you need?
461
+
462
+ This maintains orientation across extended test-writing sessions.
463
+
464
+ </progress_tracking>
465
+
466
+ ---
467
+
468
+ <retrieval_strategy>
469
+
470
+ ## Just-in-Time Loading
471
+
472
+ **When exploring test patterns:**
473
+
474
+ - Don't pre-load every test file in the codebase
475
+ - Start with file patterns: `*.test.ts`, `*.spec.ts`
476
+ - Use Glob to find similar test files first
477
+ - Use Grep to search for specific patterns (describe blocks, mocking)
478
+ - Read detailed test files only when needed for reference
479
+
480
+ This preserves context window for actual test writing.
481
+
482
+ </retrieval_strategy>
483
+
484
+ ---
485
+
486
+ <domain_scope>
487
+
488
+ ## Domain Scope
489
+
490
+ **You handle:**
491
+
492
+ - Writing test files (_.test.ts, _.spec.ts, e2e/\*.ts)
493
+ - TDD red-green-refactor cycle
494
+ - Test coverage analysis
495
+ - Test organization and naming
496
+ - Mocking strategies and setup
497
+ - Accessibility testing patterns
498
+ - Developer handoff documentation
499
+
500
+ **You DON'T handle:**
501
+
502
+ - Implementation code -> web-developer or api-developer
503
+ - Code review -> web-reviewer or api-reviewer
504
+ - Architectural decisions -> web-pm
505
+ - Performance optimization -> Use dynamic skill: frontend/performance or backend/performance
506
+
507
+ </domain_scope>
@@ -0,0 +1,84 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "schemas/agent-frontmatter.schema.json",
4
+ "title": "Agent Frontmatter",
5
+ "description": "Schema for agent .md file frontmatter fields.",
6
+ "type": "object",
7
+ "properties": {
8
+ "name": {
9
+ "type": "string",
10
+ "minLength": 1,
11
+ "pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$"
12
+ },
13
+ "description": {
14
+ "type": "string",
15
+ "minLength": 1
16
+ },
17
+ "tools": {
18
+ "type": "string"
19
+ },
20
+ "disallowedTools": {
21
+ "type": "string"
22
+ },
23
+ "model": {
24
+ "type": "string",
25
+ "enum": ["sonnet", "opus", "haiku", "inherit"]
26
+ },
27
+ "permissionMode": {
28
+ "type": "string",
29
+ "enum": ["default", "acceptEdits", "dontAsk", "bypassPermissions", "plan", "delegate"]
30
+ },
31
+ "skills": {
32
+ "type": "array",
33
+ "items": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ }
37
+ },
38
+ "hooks": {
39
+ "type": "object",
40
+ "propertyNames": {
41
+ "type": "string"
42
+ },
43
+ "additionalProperties": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "object",
47
+ "properties": {
48
+ "matcher": {
49
+ "type": "string"
50
+ },
51
+ "hooks": {
52
+ "minItems": 1,
53
+ "type": "array",
54
+ "items": {
55
+ "type": "object",
56
+ "properties": {
57
+ "type": {
58
+ "type": "string",
59
+ "enum": ["command", "script", "prompt"]
60
+ },
61
+ "command": {
62
+ "type": "string"
63
+ },
64
+ "script": {
65
+ "type": "string"
66
+ },
67
+ "prompt": {
68
+ "type": "string"
69
+ }
70
+ },
71
+ "required": ["type"],
72
+ "additionalProperties": false
73
+ }
74
+ }
75
+ },
76
+ "required": ["hooks"],
77
+ "additionalProperties": false
78
+ }
79
+ }
80
+ }
81
+ },
82
+ "required": ["name", "description"],
83
+ "additionalProperties": false
84
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "schemas/agent.schema.json",
4
+ "title": "Agent Definition",
5
+ "description": "Schema for agent.yaml files defining Claude Code agents.",
6
+ "type": "object",
7
+ "properties": {
8
+ "$schema": {
9
+ "type": "string"
10
+ },
11
+ "id": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "title": {
16
+ "type": "string",
17
+ "minLength": 1
18
+ },
19
+ "description": {
20
+ "type": "string",
21
+ "minLength": 1
22
+ },
23
+ "model": {
24
+ "type": "string",
25
+ "enum": ["sonnet", "opus", "haiku", "inherit"]
26
+ },
27
+ "tools": {
28
+ "minItems": 1,
29
+ "type": "array",
30
+ "items": {
31
+ "type": "string"
32
+ }
33
+ },
34
+ "disallowed_tools": {
35
+ "type": "array",
36
+ "items": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "permission_mode": {
41
+ "type": "string",
42
+ "enum": ["default", "acceptEdits", "dontAsk", "bypassPermissions", "plan", "delegate"]
43
+ },
44
+ "hooks": {
45
+ "type": "object",
46
+ "propertyNames": {
47
+ "type": "string"
48
+ },
49
+ "additionalProperties": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "object",
53
+ "properties": {
54
+ "matcher": {
55
+ "type": "string"
56
+ },
57
+ "hooks": {
58
+ "minItems": 1,
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "properties": {
63
+ "type": {
64
+ "type": "string",
65
+ "enum": ["command", "script", "prompt"]
66
+ },
67
+ "command": {
68
+ "type": "string"
69
+ },
70
+ "script": {
71
+ "type": "string"
72
+ },
73
+ "prompt": {
74
+ "type": "string"
75
+ }
76
+ },
77
+ "required": ["type"],
78
+ "additionalProperties": false
79
+ }
80
+ }
81
+ },
82
+ "required": ["hooks"],
83
+ "additionalProperties": false
84
+ }
85
+ }
86
+ },
87
+ "output_format": {
88
+ "type": "string"
89
+ }
90
+ },
91
+ "required": ["id", "title", "description", "tools"],
92
+ "additionalProperties": false
93
+ }