agents-inc 0.162.0 → 0.164.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 (341) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{chunk-HRVPZMKK.js → chunk-2CQNPLVF.js} +35 -14
  3. package/dist/chunk-2CQNPLVF.js.map +1 -0
  4. package/dist/{chunk-VFZF7LVY.js → chunk-3WVH2CTK.js} +3 -3
  5. package/dist/{chunk-5J6DO4VW.js → chunk-4VL3CEOS.js} +3 -3
  6. package/dist/{chunk-QM3ZNOWJ.js → chunk-6MV4JOCL.js} +2 -2
  7. package/dist/{chunk-WIJM6BX6.js → chunk-7ANJQLPJ.js} +2 -2
  8. package/dist/{chunk-3JDVBHWO.js → chunk-7REKOTKG.js} +2 -2
  9. package/dist/{chunk-MI7LKLD7.js → chunk-ABAZMMG4.js} +2 -2
  10. package/dist/{chunk-XSM3IBMG.js → chunk-AOTCIUGX.js} +2 -2
  11. package/dist/{chunk-L65XGQKR.js → chunk-ARYNOWKF.js} +8 -8
  12. package/dist/{chunk-3QBOVV6A.js → chunk-AVK2HEKB.js} +5 -5
  13. package/dist/{chunk-3QBOVV6A.js.map → chunk-AVK2HEKB.js.map} +1 -1
  14. package/dist/{chunk-AQSMNUKJ.js → chunk-B3Y3QMWI.js} +4 -4
  15. package/dist/{chunk-ES7WGE32.js → chunk-B6FSLXYN.js} +3 -3
  16. package/dist/{chunk-S6GX7IJ2.js → chunk-DSL66I4N.js} +6 -6
  17. package/dist/{chunk-IMTWWA3N.js → chunk-ECURHW3T.js} +12 -12
  18. package/dist/{chunk-VEONZFTL.js → chunk-FLW25ORT.js} +3 -3
  19. package/dist/{chunk-53XPSAJ4.js → chunk-G2JJ5BO5.js} +17 -16
  20. package/dist/chunk-G2JJ5BO5.js.map +1 -0
  21. package/dist/{chunk-H2MDPOLG.js → chunk-JIERYE6B.js} +5 -5
  22. package/dist/{chunk-GFO55TMY.js → chunk-JU4ZGJ7A.js} +100 -24
  23. package/dist/chunk-JU4ZGJ7A.js.map +1 -0
  24. package/dist/{chunk-K26SBQLO.js → chunk-K5ITEA3I.js} +4 -4
  25. package/dist/{chunk-4KVJJJG2.js → chunk-LT5GXEB2.js} +6 -6
  26. package/dist/{chunk-2IMHZEIK.js → chunk-NKGYKOB7.js} +3 -3
  27. package/dist/{chunk-X6KXPRKI.js → chunk-NQXO4LR3.js} +4 -4
  28. package/dist/{chunk-ZFPQM63K.js → chunk-NTF4UXGK.js} +5 -5
  29. package/dist/{chunk-77YZFVQD.js → chunk-PHCPUQVR.js} +2 -2
  30. package/dist/{chunk-T2RPUNYP.js → chunk-Q4IRRVXK.js} +3 -3
  31. package/dist/{chunk-EN5MEPAS.js → chunk-QGUP3QJF.js} +5 -5
  32. package/dist/{chunk-MSUTHS2V.js → chunk-QZX7SYKU.js} +2 -2
  33. package/dist/{chunk-BR3TNSO3.js → chunk-RGYDFBCT.js} +4 -4
  34. package/dist/{chunk-4NAWM4OQ.js → chunk-S63LXWMC.js} +2 -2
  35. package/dist/{chunk-IV42Z63R.js → chunk-UITEKY2R.js} +19 -9
  36. package/dist/chunk-UITEKY2R.js.map +1 -0
  37. package/dist/{chunk-RMMEYCEA.js → chunk-URXIQE7I.js} +2 -2
  38. package/dist/{chunk-57YWAMNT.js → chunk-V5GLL2JB.js} +7 -7
  39. package/dist/{chunk-C53RJ7AA.js → chunk-X37UYIE3.js} +43 -41
  40. package/dist/chunk-X37UYIE3.js.map +1 -0
  41. package/dist/{chunk-J2YG7P7L.js → chunk-X4SSJZLY.js} +49 -6
  42. package/dist/chunk-X4SSJZLY.js.map +1 -0
  43. package/dist/{chunk-VEBEGZUV.js → chunk-XATLUKXK.js} +5 -5
  44. package/dist/{chunk-33ZKIYJM.js → chunk-XHPWTL4I.js} +3 -3
  45. package/dist/{chunk-UNASGGW2.js → chunk-XPDVAJDH.js} +69 -8
  46. package/dist/chunk-XPDVAJDH.js.map +1 -0
  47. package/dist/{chunk-FL2CJ5T5.js → chunk-YRS3QZP2.js} +3 -3
  48. package/dist/{chunk-FXL63LDL.js → chunk-ZVXGW2IC.js} +2 -2
  49. package/dist/commands/build/marketplace.js +7 -7
  50. package/dist/commands/build/plugins.js +7 -7
  51. package/dist/commands/compile.js +82 -30
  52. package/dist/commands/compile.js.map +1 -1
  53. package/dist/commands/doctor.js +10 -10
  54. package/dist/commands/doctor.js.map +1 -1
  55. package/dist/commands/edit.js +40 -38
  56. package/dist/commands/edit.js.map +1 -1
  57. package/dist/commands/eject.js +10 -10
  58. package/dist/commands/init.js +36 -36
  59. package/dist/commands/list.js +8 -8
  60. package/dist/commands/new/marketplace.js +7 -7
  61. package/dist/commands/search.js +10 -10
  62. package/dist/commands/share.js +8 -8
  63. package/dist/commands/uninstall.js +11 -11
  64. package/dist/commands/update.js +6 -6
  65. package/dist/components/common/removal-plan-confirm.js +2 -2
  66. package/dist/components/common/select-list.js +2 -2
  67. package/dist/components/wizard/category-grid.js +4 -4
  68. package/dist/components/wizard/checkbox-grid.js +4 -4
  69. package/dist/components/wizard/domain-selection.js +9 -9
  70. package/dist/components/wizard/run-wizard-session.js +26 -26
  71. package/dist/components/wizard/scroll-affordance.js +2 -2
  72. package/dist/components/wizard/skill-agent-summary.js +5 -5
  73. package/dist/components/wizard/source-grid.js +5 -5
  74. package/dist/components/wizard/stack-selection.js +7 -7
  75. package/dist/components/wizard/step-agents.js +8 -8
  76. package/dist/components/wizard/step-build.js +7 -7
  77. package/dist/components/wizard/step-confirm.js +9 -9
  78. package/dist/components/wizard/step-sources.js +8 -8
  79. package/dist/components/wizard/step-stack.js +8 -8
  80. package/dist/components/wizard/summary-panel.js +8 -8
  81. package/dist/components/wizard/toast.js +2 -2
  82. package/dist/components/wizard/wizard-layout.js +12 -12
  83. package/dist/components/wizard/wizard-tabs.js +2 -2
  84. package/dist/components/wizard/wizard.js +25 -25
  85. package/dist/hooks/init.js +36 -36
  86. package/dist/load-agent-defs-7IM3GBEQ.js +13 -0
  87. package/dist/recompile-project-agents-VR4NLGOU.js +17 -0
  88. package/dist/{source-loader-KAWB76OH.js → source-loader-GRBVNRAW.js} +4 -4
  89. package/dist/src/agents/_templates/agent.liquid +30 -122
  90. package/dist/src/agents/_templates/methodologies/operating-principles.liquid +27 -0
  91. package/dist/src/agents/developer/ai-developer/critical-reminders.md +9 -48
  92. package/dist/src/agents/developer/ai-developer/critical-requirements.md +29 -47
  93. package/dist/src/agents/developer/ai-developer/identity.md +31 -40
  94. package/dist/src/agents/developer/ai-developer/output.md +92 -245
  95. package/dist/src/agents/developer/ai-developer/playbook.md +116 -270
  96. package/dist/src/agents/developer/api-developer/critical-reminders.md +9 -40
  97. package/dist/src/agents/developer/api-developer/critical-requirements.md +19 -34
  98. package/dist/src/agents/developer/api-developer/identity.md +18 -33
  99. package/dist/src/agents/developer/api-developer/output.md +118 -255
  100. package/dist/src/agents/developer/api-developer/playbook.md +103 -284
  101. package/dist/src/agents/developer/cli-developer/critical-reminders.md +9 -45
  102. package/dist/src/agents/developer/cli-developer/critical-requirements.md +21 -39
  103. package/dist/src/agents/developer/cli-developer/identity.md +22 -36
  104. package/dist/src/agents/developer/cli-developer/output.md +72 -185
  105. package/dist/src/agents/developer/cli-developer/playbook.md +107 -307
  106. package/dist/src/agents/developer/web-developer/critical-reminders.md +9 -34
  107. package/dist/src/agents/developer/web-developer/critical-requirements.md +11 -30
  108. package/dist/src/agents/developer/web-developer/identity.md +15 -15
  109. package/dist/src/agents/developer/web-developer/output.md +67 -220
  110. package/dist/src/agents/developer/web-developer/playbook.md +93 -283
  111. package/dist/src/agents/meta/agent-summoner/critical-reminders.md +6 -39
  112. package/dist/src/agents/meta/agent-summoner/critical-requirements.md +6 -44
  113. package/dist/src/agents/meta/agent-summoner/identity.md +20 -23
  114. package/dist/src/agents/meta/agent-summoner/metadata.yaml +1 -1
  115. package/dist/src/agents/meta/agent-summoner/output.md +85 -261
  116. package/dist/src/agents/meta/agent-summoner/playbook.md +220 -1398
  117. package/dist/src/agents/meta/codex-keeper/critical-reminders.md +11 -32
  118. package/dist/src/agents/meta/codex-keeper/critical-requirements.md +32 -22
  119. package/dist/src/agents/meta/codex-keeper/identity.md +31 -32
  120. package/dist/src/agents/meta/codex-keeper/output.md +49 -335
  121. package/dist/src/agents/meta/codex-keeper/playbook.md +164 -1110
  122. package/dist/src/agents/meta/convention-keeper/critical-reminders.md +11 -26
  123. package/dist/src/agents/meta/convention-keeper/critical-requirements.md +36 -25
  124. package/dist/src/agents/meta/convention-keeper/identity.md +35 -21
  125. package/dist/src/agents/meta/convention-keeper/metadata.yaml +1 -1
  126. package/dist/src/agents/meta/convention-keeper/output.md +33 -123
  127. package/dist/src/agents/meta/convention-keeper/playbook.md +64 -144
  128. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +8 -71
  129. package/dist/src/agents/meta/skill-summoner/critical-requirements.md +9 -73
  130. package/dist/src/agents/meta/skill-summoner/identity.md +18 -22
  131. package/dist/src/agents/meta/skill-summoner/metadata.yaml +1 -1
  132. package/dist/src/agents/meta/skill-summoner/output.md +164 -270
  133. package/dist/src/agents/meta/skill-summoner/playbook.md +150 -1398
  134. package/dist/src/agents/planning/pm/critical-requirements.md +23 -25
  135. package/dist/src/agents/planning/pm/identity.md +24 -23
  136. package/dist/src/agents/planning/pm/output.md +5 -9
  137. package/dist/src/agents/planning/pm/playbook.md +50 -140
  138. package/dist/src/agents/researcher/ai-researcher/critical-reminders.md +8 -53
  139. package/dist/src/agents/researcher/ai-researcher/critical-requirements.md +31 -26
  140. package/dist/src/agents/researcher/ai-researcher/identity.md +36 -77
  141. package/dist/src/agents/researcher/ai-researcher/output.md +44 -151
  142. package/dist/src/agents/researcher/ai-researcher/playbook.md +130 -394
  143. package/dist/src/agents/researcher/api-researcher/critical-reminders.md +6 -38
  144. package/dist/src/agents/researcher/api-researcher/critical-requirements.md +15 -17
  145. package/dist/src/agents/researcher/api-researcher/identity.md +29 -63
  146. package/dist/src/agents/researcher/api-researcher/output.md +61 -153
  147. package/dist/src/agents/researcher/api-researcher/playbook.md +63 -140
  148. package/dist/src/agents/researcher/cli-researcher/critical-reminders.md +8 -45
  149. package/dist/src/agents/researcher/cli-researcher/critical-requirements.md +29 -24
  150. package/dist/src/agents/researcher/cli-researcher/identity.md +36 -78
  151. package/dist/src/agents/researcher/cli-researcher/output.md +22 -128
  152. package/dist/src/agents/researcher/cli-researcher/playbook.md +108 -263
  153. package/dist/src/agents/researcher/web-researcher/critical-reminders.md +5 -34
  154. package/dist/src/agents/researcher/web-researcher/critical-requirements.md +11 -16
  155. package/dist/src/agents/researcher/web-researcher/identity.md +28 -60
  156. package/dist/src/agents/researcher/web-researcher/output.md +41 -134
  157. package/dist/src/agents/researcher/web-researcher/playbook.md +48 -162
  158. package/dist/src/agents/reviewer/reviewer/critical-reminders.md +9 -22
  159. package/dist/src/agents/reviewer/reviewer/critical-requirements.md +24 -19
  160. package/dist/src/agents/reviewer/reviewer/identity.md +23 -20
  161. package/dist/src/agents/reviewer/reviewer/metadata.yaml +7 -2
  162. package/dist/src/agents/reviewer/reviewer/output.md +8 -26
  163. package/dist/src/agents/reviewer/reviewer/playbook.md +50 -91
  164. package/dist/src/agents/tester/ai-tester/critical-reminders.md +7 -40
  165. package/dist/src/agents/tester/ai-tester/critical-requirements.md +39 -31
  166. package/dist/src/agents/tester/ai-tester/identity.md +25 -40
  167. package/dist/src/agents/tester/ai-tester/output.md +8 -144
  168. package/dist/src/agents/tester/ai-tester/playbook.md +28 -40
  169. package/dist/src/agents/tester/api-tester/critical-reminders.md +8 -35
  170. package/dist/src/agents/tester/api-tester/critical-requirements.md +36 -25
  171. package/dist/src/agents/tester/api-tester/identity.md +18 -29
  172. package/dist/src/agents/tester/api-tester/metadata.yaml +1 -1
  173. package/dist/src/agents/tester/api-tester/output.md +3 -86
  174. package/dist/src/agents/tester/api-tester/playbook.md +10 -2
  175. package/dist/src/agents/tester/cli-tester/critical-reminders.md +7 -30
  176. package/dist/src/agents/tester/cli-tester/critical-requirements.md +29 -21
  177. package/dist/src/agents/tester/cli-tester/identity.md +25 -33
  178. package/dist/src/agents/tester/cli-tester/output.md +13 -105
  179. package/dist/src/agents/tester/cli-tester/playbook.md +8 -5
  180. package/dist/src/agents/tester/web-tester/critical-reminders.md +7 -25
  181. package/dist/src/agents/tester/web-tester/critical-requirements.md +25 -16
  182. package/dist/src/agents/tester/web-tester/identity.md +24 -30
  183. package/dist/src/agents/tester/web-tester/output.md +11 -116
  184. package/dist/src/agents/tester/web-tester/playbook.md +58 -221
  185. package/dist/stores/wizard-store.js +4 -4
  186. package/package.json +1 -1
  187. package/src/agents/_templates/agent.liquid +30 -122
  188. package/src/agents/_templates/methodologies/operating-principles.liquid +27 -0
  189. package/src/agents/developer/ai-developer/critical-reminders.md +9 -48
  190. package/src/agents/developer/ai-developer/critical-requirements.md +29 -47
  191. package/src/agents/developer/ai-developer/identity.md +31 -40
  192. package/src/agents/developer/ai-developer/output.md +92 -245
  193. package/src/agents/developer/ai-developer/playbook.md +116 -270
  194. package/src/agents/developer/api-developer/critical-reminders.md +9 -40
  195. package/src/agents/developer/api-developer/critical-requirements.md +19 -34
  196. package/src/agents/developer/api-developer/identity.md +18 -33
  197. package/src/agents/developer/api-developer/output.md +118 -255
  198. package/src/agents/developer/api-developer/playbook.md +103 -284
  199. package/src/agents/developer/cli-developer/critical-reminders.md +9 -45
  200. package/src/agents/developer/cli-developer/critical-requirements.md +21 -39
  201. package/src/agents/developer/cli-developer/identity.md +22 -36
  202. package/src/agents/developer/cli-developer/output.md +72 -185
  203. package/src/agents/developer/cli-developer/playbook.md +107 -307
  204. package/src/agents/developer/web-developer/critical-reminders.md +9 -34
  205. package/src/agents/developer/web-developer/critical-requirements.md +11 -30
  206. package/src/agents/developer/web-developer/identity.md +15 -15
  207. package/src/agents/developer/web-developer/output.md +67 -220
  208. package/src/agents/developer/web-developer/playbook.md +93 -283
  209. package/src/agents/meta/agent-summoner/critical-reminders.md +6 -39
  210. package/src/agents/meta/agent-summoner/critical-requirements.md +6 -44
  211. package/src/agents/meta/agent-summoner/identity.md +20 -23
  212. package/src/agents/meta/agent-summoner/metadata.yaml +1 -1
  213. package/src/agents/meta/agent-summoner/output.md +85 -261
  214. package/src/agents/meta/agent-summoner/playbook.md +220 -1398
  215. package/src/agents/meta/codex-keeper/critical-reminders.md +11 -32
  216. package/src/agents/meta/codex-keeper/critical-requirements.md +32 -22
  217. package/src/agents/meta/codex-keeper/identity.md +31 -32
  218. package/src/agents/meta/codex-keeper/output.md +49 -335
  219. package/src/agents/meta/codex-keeper/playbook.md +164 -1110
  220. package/src/agents/meta/convention-keeper/critical-reminders.md +11 -26
  221. package/src/agents/meta/convention-keeper/critical-requirements.md +36 -25
  222. package/src/agents/meta/convention-keeper/identity.md +35 -21
  223. package/src/agents/meta/convention-keeper/metadata.yaml +1 -1
  224. package/src/agents/meta/convention-keeper/output.md +33 -123
  225. package/src/agents/meta/convention-keeper/playbook.md +64 -144
  226. package/src/agents/meta/skill-summoner/critical-reminders.md +8 -71
  227. package/src/agents/meta/skill-summoner/critical-requirements.md +9 -73
  228. package/src/agents/meta/skill-summoner/identity.md +18 -22
  229. package/src/agents/meta/skill-summoner/metadata.yaml +1 -1
  230. package/src/agents/meta/skill-summoner/output.md +164 -270
  231. package/src/agents/meta/skill-summoner/playbook.md +150 -1398
  232. package/src/agents/planning/pm/critical-requirements.md +23 -25
  233. package/src/agents/planning/pm/identity.md +24 -23
  234. package/src/agents/planning/pm/output.md +5 -9
  235. package/src/agents/planning/pm/playbook.md +50 -140
  236. package/src/agents/researcher/ai-researcher/critical-reminders.md +8 -53
  237. package/src/agents/researcher/ai-researcher/critical-requirements.md +31 -26
  238. package/src/agents/researcher/ai-researcher/identity.md +36 -77
  239. package/src/agents/researcher/ai-researcher/output.md +44 -151
  240. package/src/agents/researcher/ai-researcher/playbook.md +130 -394
  241. package/src/agents/researcher/api-researcher/critical-reminders.md +6 -38
  242. package/src/agents/researcher/api-researcher/critical-requirements.md +15 -17
  243. package/src/agents/researcher/api-researcher/identity.md +29 -63
  244. package/src/agents/researcher/api-researcher/output.md +61 -153
  245. package/src/agents/researcher/api-researcher/playbook.md +63 -140
  246. package/src/agents/researcher/cli-researcher/critical-reminders.md +8 -45
  247. package/src/agents/researcher/cli-researcher/critical-requirements.md +29 -24
  248. package/src/agents/researcher/cli-researcher/identity.md +36 -78
  249. package/src/agents/researcher/cli-researcher/output.md +22 -128
  250. package/src/agents/researcher/cli-researcher/playbook.md +108 -263
  251. package/src/agents/researcher/web-researcher/critical-reminders.md +5 -34
  252. package/src/agents/researcher/web-researcher/critical-requirements.md +11 -16
  253. package/src/agents/researcher/web-researcher/identity.md +28 -60
  254. package/src/agents/researcher/web-researcher/output.md +41 -134
  255. package/src/agents/researcher/web-researcher/playbook.md +48 -162
  256. package/src/agents/reviewer/reviewer/critical-reminders.md +9 -22
  257. package/src/agents/reviewer/reviewer/critical-requirements.md +24 -19
  258. package/src/agents/reviewer/reviewer/identity.md +23 -20
  259. package/src/agents/reviewer/reviewer/metadata.yaml +7 -2
  260. package/src/agents/reviewer/reviewer/output.md +8 -26
  261. package/src/agents/reviewer/reviewer/playbook.md +50 -91
  262. package/src/agents/tester/ai-tester/critical-reminders.md +7 -40
  263. package/src/agents/tester/ai-tester/critical-requirements.md +39 -31
  264. package/src/agents/tester/ai-tester/identity.md +25 -40
  265. package/src/agents/tester/ai-tester/output.md +8 -144
  266. package/src/agents/tester/ai-tester/playbook.md +28 -40
  267. package/src/agents/tester/api-tester/critical-reminders.md +8 -35
  268. package/src/agents/tester/api-tester/critical-requirements.md +36 -25
  269. package/src/agents/tester/api-tester/identity.md +18 -29
  270. package/src/agents/tester/api-tester/metadata.yaml +1 -1
  271. package/src/agents/tester/api-tester/output.md +3 -86
  272. package/src/agents/tester/api-tester/playbook.md +10 -2
  273. package/src/agents/tester/cli-tester/critical-reminders.md +7 -30
  274. package/src/agents/tester/cli-tester/critical-requirements.md +29 -21
  275. package/src/agents/tester/cli-tester/identity.md +25 -33
  276. package/src/agents/tester/cli-tester/output.md +13 -105
  277. package/src/agents/tester/cli-tester/playbook.md +8 -5
  278. package/src/agents/tester/web-tester/critical-reminders.md +7 -25
  279. package/src/agents/tester/web-tester/critical-requirements.md +25 -16
  280. package/src/agents/tester/web-tester/identity.md +24 -30
  281. package/src/agents/tester/web-tester/output.md +11 -116
  282. package/src/agents/tester/web-tester/playbook.md +58 -221
  283. package/src/schemas/agent-frontmatter.schema.json +14 -0
  284. package/src/schemas/agent.schema.json +14 -0
  285. package/dist/chunk-53XPSAJ4.js.map +0 -1
  286. package/dist/chunk-C53RJ7AA.js.map +0 -1
  287. package/dist/chunk-GFO55TMY.js.map +0 -1
  288. package/dist/chunk-HRVPZMKK.js.map +0 -1
  289. package/dist/chunk-IV42Z63R.js.map +0 -1
  290. package/dist/chunk-J2YG7P7L.js.map +0 -1
  291. package/dist/chunk-UNASGGW2.js.map +0 -1
  292. package/dist/load-agent-defs-57YKPVQW.js +0 -13
  293. package/dist/recompile-project-agents-IQD3HRRS.js +0 -17
  294. package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +0 -135
  295. package/dist/src/agents/_templates/methodologies/context-management.liquid +0 -15
  296. package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +0 -150
  297. package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +0 -61
  298. package/dist/src/agents/_templates/methodologies/success-criteria.liquid +0 -121
  299. package/dist/src/agents/_templates/methodologies/write-verification.liquid +0 -43
  300. package/dist/src/agents/planning/pm/critical-reminders.md +0 -39
  301. package/src/agents/_templates/methodologies/anti-over-engineering.liquid +0 -135
  302. package/src/agents/_templates/methodologies/context-management.liquid +0 -15
  303. package/src/agents/_templates/methodologies/improvement-protocol.liquid +0 -150
  304. package/src/agents/_templates/methodologies/investigation-requirements.liquid +0 -61
  305. package/src/agents/_templates/methodologies/success-criteria.liquid +0 -121
  306. package/src/agents/_templates/methodologies/write-verification.liquid +0 -43
  307. package/src/agents/planning/pm/critical-reminders.md +0 -39
  308. /package/dist/{chunk-VFZF7LVY.js.map → chunk-3WVH2CTK.js.map} +0 -0
  309. /package/dist/{chunk-5J6DO4VW.js.map → chunk-4VL3CEOS.js.map} +0 -0
  310. /package/dist/{chunk-QM3ZNOWJ.js.map → chunk-6MV4JOCL.js.map} +0 -0
  311. /package/dist/{chunk-WIJM6BX6.js.map → chunk-7ANJQLPJ.js.map} +0 -0
  312. /package/dist/{chunk-3JDVBHWO.js.map → chunk-7REKOTKG.js.map} +0 -0
  313. /package/dist/{chunk-MI7LKLD7.js.map → chunk-ABAZMMG4.js.map} +0 -0
  314. /package/dist/{chunk-XSM3IBMG.js.map → chunk-AOTCIUGX.js.map} +0 -0
  315. /package/dist/{chunk-L65XGQKR.js.map → chunk-ARYNOWKF.js.map} +0 -0
  316. /package/dist/{chunk-AQSMNUKJ.js.map → chunk-B3Y3QMWI.js.map} +0 -0
  317. /package/dist/{chunk-ES7WGE32.js.map → chunk-B6FSLXYN.js.map} +0 -0
  318. /package/dist/{chunk-S6GX7IJ2.js.map → chunk-DSL66I4N.js.map} +0 -0
  319. /package/dist/{chunk-IMTWWA3N.js.map → chunk-ECURHW3T.js.map} +0 -0
  320. /package/dist/{chunk-VEONZFTL.js.map → chunk-FLW25ORT.js.map} +0 -0
  321. /package/dist/{chunk-H2MDPOLG.js.map → chunk-JIERYE6B.js.map} +0 -0
  322. /package/dist/{chunk-K26SBQLO.js.map → chunk-K5ITEA3I.js.map} +0 -0
  323. /package/dist/{chunk-4KVJJJG2.js.map → chunk-LT5GXEB2.js.map} +0 -0
  324. /package/dist/{chunk-2IMHZEIK.js.map → chunk-NKGYKOB7.js.map} +0 -0
  325. /package/dist/{chunk-X6KXPRKI.js.map → chunk-NQXO4LR3.js.map} +0 -0
  326. /package/dist/{chunk-ZFPQM63K.js.map → chunk-NTF4UXGK.js.map} +0 -0
  327. /package/dist/{chunk-77YZFVQD.js.map → chunk-PHCPUQVR.js.map} +0 -0
  328. /package/dist/{chunk-T2RPUNYP.js.map → chunk-Q4IRRVXK.js.map} +0 -0
  329. /package/dist/{chunk-EN5MEPAS.js.map → chunk-QGUP3QJF.js.map} +0 -0
  330. /package/dist/{chunk-MSUTHS2V.js.map → chunk-QZX7SYKU.js.map} +0 -0
  331. /package/dist/{chunk-BR3TNSO3.js.map → chunk-RGYDFBCT.js.map} +0 -0
  332. /package/dist/{chunk-4NAWM4OQ.js.map → chunk-S63LXWMC.js.map} +0 -0
  333. /package/dist/{chunk-RMMEYCEA.js.map → chunk-URXIQE7I.js.map} +0 -0
  334. /package/dist/{chunk-57YWAMNT.js.map → chunk-V5GLL2JB.js.map} +0 -0
  335. /package/dist/{chunk-VEBEGZUV.js.map → chunk-XATLUKXK.js.map} +0 -0
  336. /package/dist/{chunk-33ZKIYJM.js.map → chunk-XHPWTL4I.js.map} +0 -0
  337. /package/dist/{chunk-FL2CJ5T5.js.map → chunk-YRS3QZP2.js.map} +0 -0
  338. /package/dist/{chunk-FXL63LDL.js.map → chunk-ZVXGW2IC.js.map} +0 -0
  339. /package/dist/{load-agent-defs-57YKPVQW.js.map → load-agent-defs-7IM3GBEQ.js.map} +0 -0
  340. /package/dist/{recompile-project-agents-IQD3HRRS.js.map → recompile-project-agents-VR4NLGOU.js.map} +0 -0
  341. /package/dist/{source-loader-KAWB76OH.js.map → source-loader-GRBVNRAW.js.map} +0 -0
@@ -31,7 +31,9 @@ Before writing tests:
31
31
 
32
32
  ## Tester Workflow
33
33
 
34
- **ALWAYS follow the Red-Green-Refactor cycle:**
34
+ **Work the red-green-refactor cycle in order, and own only the red half.** The green and refactor
35
+ phases are `web-developer`'s; yours is to establish what they implement against and to verify the
36
+ result.
35
37
 
36
38
  ```xml
37
39
  <tester_workflow>
@@ -42,18 +44,16 @@ Before writing tests:
42
44
  4. Verify tests fail for the RIGHT reason
43
45
  5. Document expected behavior clearly
44
46
 
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
47
+ **GREEN: Confirm the implementation satisfies the tests**
48
+ 1. Run the suite once web-developer's implementation exists
49
+ 2. Every test passes, with no test edited to get there
50
+ 3. Investigate any test that passed suspiciously early - it may assert nothing
51
+ 4. Green on this behavior? Move to the next one - the cycle runs per behavior, not once per feature
50
52
 
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
53
+ **REFACTOR: Confirm the tests held**
54
+ 1. web-developer cleans up the implementation without changing behavior
55
+ 2. Re-run the suite - it must still pass, unedited
56
+ 3. A test that reddens on a behavior-preserving refactor was testing implementation; fix that test
57
57
 
58
58
  **Hand Off to Developer:**
59
59
  - Provide complete test file
@@ -87,85 +87,30 @@ it("calls useState with initial value");
87
87
 
88
88
  ## What to Test
89
89
 
90
- ### 1. Happy Path (Primary Flows)
90
+ Six categories, each of which needs cases before a feature is covered:
91
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
- ---
92
+ | Category | Cases it owes |
93
+ | ------------------- | ---------------------------------------------------------------------------------------------------------------- |
94
+ | **Happy path** | The main use case end to end — valid input submitted, success shown, data saved |
95
+ | **Validation** | Each validation rule stated separately, plus that submission is blocked while any fails |
96
+ | **Edge cases** | Empty input, the exact boundary value, rapid repeated interaction, special characters |
97
+ | **Error scenarios** | The request fails, it times out, an unknown failure surfaces a generic message, and retry works after an error |
98
+ | **Integration** | The call the component makes with the data it sends, the navigation it triggers, the state it updates |
99
+ | **Accessibility** | Labels are associated, errors are announced, focus is managed on open and close, and the flow is keyboard-usable |
158
100
 
159
101
  ## What NOT to Test
160
102
 
161
- **DON'T test:**
103
+ **Test what matters to the user:** can they see what they need, can they interact successfully, does
104
+ feedback appear, and do errors help them recover?
105
+
106
+ **Skip:**
162
107
 
163
108
  - **Implementation details** - Specific hooks used, internal state
164
109
  - **External libraries** - React, MobX are already tested
165
110
  - **Styling** - Unless functional (like visibility)
166
111
  - **Third-party components** - Trust their tests
167
112
 
168
- **DO test:**
113
+ **Test instead:**
169
114
 
170
115
  - **Component behavior** - Does it show/hide correctly?
171
116
  - **User interactions** - What happens when clicked?
@@ -178,109 +123,47 @@ it('allows keyboard navigation', () => { ... })
178
123
 
179
124
  ### 1. Test Behavior, Not Implementation
180
125
 
181
- ```typescript
182
- // Bad - tests implementation details
183
- expect(component.state.loading).toBe(true);
184
- expect(useState).toHaveBeenCalledWith({ name: "" });
126
+ Assert what the user can perceive — what is on screen, what is disabled, what changed after an
127
+ interaction. An assertion that reaches into a component's internal state or spies on a hook passes
128
+ until the day someone refactors without changing anything a user could notice, and then fails for a
129
+ reason no user would recognise.
185
130
 
186
- // Good - tests user-visible behavior
187
- expect(screen.getByRole("button")).toBeDisabled();
188
- expect(screen.getByText("Loading...")).toBeInTheDocument();
189
- ```
131
+ ### 2. Query by Something Stable
190
132
 
191
- ### 2. Use Testing Library Queries Correctly
133
+ Pick the element by something the user or the accessibility tree can see — its role and accessible
134
+ name, its label, its visible text — or by an attribute the markup carries expressly for testing.
135
+ What a selector must not depend on is structure: a class name or a position in the DOM breaks on the
136
+ next refactor while still presenting as a test failure.
192
137
 
193
- **Priority order:**
138
+ **Which of those your library ranks first differs, and your stack's testing skill states its order.**
139
+ Some rank by how a user perceives the element and treat a test id as the last resort; others reach
140
+ for an explicit test attribute by default. Follow the one your project's skill teaches rather than
141
+ importing another library's ordering — and where an element cannot be found by any user-facing
142
+ handle at all, that is usually an accessibility defect rather than a testing problem.
194
143
 
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
144
+ ### 3. Wait for the Assertion, Never for the Clock
200
145
 
201
- ```typescript
202
- // Best - accessible and robust
203
- screen.getByRole("button", { name: "Save" });
204
- screen.getByLabelText("Email");
146
+ An assertion that runs before the state it describes has settled fails on a fast machine and passes
147
+ on a slow one. Wait on the condition itself — the element appearing, the element leaving — and never
148
+ on a fixed delay. Where your library offers more than one waiting form, prefer the one that reports
149
+ what it found when it gave up — a timeout that names only the last error tells you the test failed
150
+ and not what the screen held.
205
151
 
206
- // Okay - readable but less accessible
207
- screen.getByText("Profile Settings");
152
+ The library's own async queries and utilities are in your stack's testing skill.
208
153
 
209
- // Avoid - not accessible, implementation detail
210
- screen.getByTestId("save-button");
211
- screen.getByClassName("submit-btn");
212
- ```
213
-
214
- ### 3. Async Testing Patterns
154
+ ### 4. Mock External Dependencies, and Reset Them Between Tests
215
155
 
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
- ```
156
+ Mock the API client, the stores and any external service the component sits behind, then clear the
157
+ mocks and unmount in the project's own setup hooks. Copy the mocking and cleanup style from the
158
+ existing test files you read rather than introducing a second one — two mocking idioms in one suite
159
+ means the reset in the project's setup hook covers some of the doubles and not others, and the test
160
+ that leaks is rarely the one that fails.
266
161
 
267
162
  ---
268
163
 
269
164
  ## Test Anti-Patterns to Avoid
270
165
 
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
166
+ ### 1. Overly Coupled Tests
284
167
 
285
168
  ```typescript
286
169
  // Bad - tests depend on each other
@@ -301,7 +184,7 @@ it("test 1", () => {
301
184
  });
302
185
  ```
303
186
 
304
- ### 3. Testing Too Much at Once
187
+ ### 2. Testing Too Much at Once
305
188
 
306
189
  ```typescript
307
190
  // Bad - giant test doing everything
@@ -315,51 +198,6 @@ it('shows error for empty name', () => { ... })
315
198
  it('submits form data successfully', () => { ... })
316
199
  ```
317
200
 
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
201
  ---
364
202
 
365
203
  ## Collaboration with Developer Agent
@@ -400,7 +238,7 @@ Focus on:
400
238
  2. **Tests are incorrect** - You wrote the wrong expected behavior
401
239
  3. **Test structure improvements** - Better organization, but same assertions
402
240
 
403
- **Tests should NEVER change because:**
241
+ **These are not reasons to change a test:**
404
242
 
405
243
  - Developer found them inconvenient
406
244
  - Implementation is "close enough"
@@ -417,12 +255,11 @@ Focus on:
417
255
 
418
256
  **When exploring test patterns:**
419
257
 
420
- - Don't pre-load every test file in the codebase
421
- - Start with file patterns: `*.test.ts`, `*.spec.ts`
258
+ - Start with file patterns rather than reading the suite: `*.test.ts`, `*.spec.ts`
422
259
  - Use Glob to find similar test files first
423
260
  - Use Grep to search for specific patterns (describe blocks, mocking)
424
261
  - Read detailed test files only when needed for reference
425
262
 
426
- This preserves context window for actual test writing.
263
+ Reading only what the current suite needs is what leaves context for writing it.
427
264
 
428
265
  </retrieval_strategy>
@@ -7,10 +7,10 @@ import {
7
7
  hydrateWizardStore,
8
8
  showWarningsAsToast,
9
9
  useWizardStore
10
- } from "../chunk-K26SBQLO.js";
11
- import "../chunk-UNASGGW2.js";
12
- import "../chunk-3QBOVV6A.js";
13
- import "../chunk-IV42Z63R.js";
10
+ } from "../chunk-K5ITEA3I.js";
11
+ import "../chunk-XPDVAJDH.js";
12
+ import "../chunk-AVK2HEKB.js";
13
+ import "../chunk-UITEKY2R.js";
14
14
  import "../chunk-OI2H6M5I.js";
15
15
  export {
16
16
  DOMAIN_AGENTS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agents-inc",
3
- "version": "0.162.0",
3
+ "version": "0.164.0",
4
4
  "description": "CLI for managing Agents Inc. skills, stacks, and agents for Claude Code",
5
5
  "//generate": "The write path for all three generators, in dependency order: generate:types reads the skills marketplace and writes src/cli/types/generated/, then generate:schemas copies SKILL_SLUGS and CATEGORIES out of it into metadata.schema.json's enums, then generate:matrix vendors the same directory into packages/matrix. A marketplace change drifts all three, so every caller runs all three — .github/workflows/regenerate-catalog.yml spells the sequence out step by step and could call this instead. It replaces the write path only: the :check variants stay separate because CI deliberately runs different subsets of them in different jobs.",
6
6
  "//no-shared-vitest-config": "A three-project suite — unit, integration and commands, each with its own include and the retry that separates them — behind one root config that also carries vitest.setup.ts, disableConsoleIntercept for @oclif/test and ink-testing-library, and its own timeouts. @workspace/vitest-config is a single-project node config that turns globals off, which this suite needs on, so merging it in would contradict as much as it contributed. e2e/vitest.config.ts stands under the same decision. Read by scripts/check-shared-vitest-config.ts in packages/cli.",
@@ -1,12 +1,15 @@
1
1
  ---
2
2
  name: {{ agent.name }}
3
- description: {{ agent.description }}
3
+ description: {{ agent.description | json }}
4
4
  tools: {{ agent.tools | join: ", " }}
5
5
  {% if agent.disallowedTools.size > 0 %}disallowedTools: {{ agent.disallowedTools | join: ", " }}
6
6
  {% endif %}model: {{ agent.model | default: "inherit" }}
7
7
  {% if agent.effort %}effort: {{ agent.effort }}
8
8
  {% endif %}permissionMode: {{ agent.permissionMode | default: "default" }}
9
- {% if preloadedSkillIds.size > 0 %}skills:
9
+ {% if agent.isolation %}isolation: {{ agent.isolation }}
10
+ {% endif %}{% if agent.experimental %}experimental: {{ agent.experimental | json }}
11
+ {% endif %}{% if agent.hooks %}hooks: {{ agent.hooks | json }}
12
+ {% endif %}{% if preloadedSkillIds.size > 0 %}skills:
10
13
  {% for skillId in preloadedSkillIds %} - {{ skillId }}
11
14
  {% endfor %}{% endif %}---
12
15
 
@@ -18,144 +21,49 @@ tools: {{ agent.tools | join: ", " }}
18
21
 
19
22
  ---
20
23
 
21
- <core_principles>
22
- **1. Investigation First**
23
- Never speculate. Read the actual code before making claims. Base all work strictly on what you find in the files.
24
-
25
- **2. Follow Existing Patterns**
26
- Use what's already there. Match the style, structure, and conventions of similar code. Don't introduce new patterns.
27
-
28
- **3. Minimal Necessary Changes**
29
- Make surgical edits. Change only what's required to meet the specification. Leave everything else untouched.
30
-
31
- **4. Anti-Over-Engineering**
32
- Simple solutions. Use existing utilities. Avoid abstractions. If it's not explicitly required, don't add it.
33
-
34
- **5. Verify Everything**
35
- Test your work. Run the tests. Check the success criteria. Provide evidence that requirements are met.
36
-
37
- **DISPLAY ALL 5 CORE PRINCIPLES AT THE START OF EVERY RESPONSE TO MAINTAIN INSTRUCTION CONTINUITY.**
38
- </core_principles>
39
-
40
- ---
41
-
42
- <methodologies>
43
-
44
- {% render "methodologies/investigation-requirements" %}
45
-
46
- ---
47
-
48
- {% render "methodologies/anti-over-engineering" %}
49
-
50
- ---
51
-
52
- {% render "methodologies/write-verification" %}
24
+ {% render "methodologies/operating-principles" %}
53
25
 
54
26
  ---
55
27
 
56
- {% render "methodologies/success-criteria" %}
57
-
58
- ---
59
-
60
- {% render "methodologies/context-management" %}
61
-
62
- </methodologies>
63
-
64
- ---
65
-
66
- {% if criticalRequirementsTop != "" %}
67
- <critical_requirements>
28
+ {% if criticalRequirementsTop != "" %}<critical_requirements>
68
29
  {{ criticalRequirementsTop }}
69
30
  </critical_requirements>
70
31
 
71
32
  ---
72
33
 
73
- {% endif %}
74
- {% if dynamicSkills.size > 0 %}
75
- <skill_activation_protocol>
76
- ## Skill Activation Protocol
77
-
78
- **BEFORE implementing ANY task, you MUST follow this three-step protocol for dynamic skills.**
79
-
80
- ### Step 1 - EVALUATE
81
-
82
- For EACH skill listed below, you MUST explicitly state in your response:
83
-
84
- | Skill | Relevant? | Reason |
85
- |-------|-----------|--------|
86
- | [skill-id] | YES / NO | One sentence explaining why |
87
-
88
- Do this for EVERY skill. No exceptions. Skipping evaluation = skipping knowledge.
89
-
90
- ### Step 2 - ACTIVATE
91
-
92
- For EVERY skill you marked **YES**, you MUST invoke the Skill tool **IMMEDIATELY**.
93
-
94
- ```
95
- skill: "[skill-id]"
96
- ```
97
-
98
- **Do NOT proceed to implementation until ALL relevant skills are loaded into your context.**
99
-
100
- ### Step 3 - IMPLEMENT
101
-
102
- **ONLY after** Step 1 (evaluation) and Step 2 (activation) are complete, begin your implementation.
34
+ {% endif %}{{ playbook }}
103
35
 
104
36
  ---
105
37
 
106
- **CRITICAL WARNING:**
107
-
108
- Your evaluation in Step 1 is **COMPLETELY WORTHLESS** unless you actually **ACTIVATE** the skills in Step 2.
38
+ {% if criticalReminders != "" %}<critical_reminders>
39
+ {{ criticalReminders }}
40
+ </critical_reminders>
109
41
 
110
- - Saying "YES, this skill is relevant" without invoking `skill: "[skill-id]"` means that knowledge is **NOT AVAILABLE TO YOU**
111
- - The skill content **DOES NOT EXIST** in your context until you explicitly load it
112
- - You are **LYING TO YOURSELF** if you claim a skill is relevant but don't load it
113
- - Proceeding to implementation without loading relevant skills means you will **MISS PATTERNS, VIOLATE CONVENTIONS, AND PRODUCE INFERIOR CODE**
42
+ ---
114
43
 
115
- **The Skill tool exists for a reason. USE IT.**
44
+ {% endif %}{% if output != "" %}{{ output }}
116
45
 
117
46
  ---
118
47
 
119
- ## Available Skills (Require Loading)
48
+ {% endif %}<system-reminder>
49
+ Compiled by {{ generatorVersion }}.
120
50
 
121
- {% for skill in dynamicSkills %}
122
- ### {{ skill.id }}
51
+ {% if dynamicSkills.size > 0 %}<skill_activation_protocol>
52
+ The skills below are available through the Skill tool. Open a task by naming which of them it
53
+ touches and loading those first — a skill carries the conventions this project expects for its
54
+ area, and its content reaches you only once you invoke it.
55
+
56
+ {% for skill in dynamicSkills %}### {{ skill.id }}
123
57
  - Description: {{ skill.description }}
124
58
  - Invoke: `skill: "{{ skill.pluginRef | default: skill.id }}"`
125
- - Use when: {{ skill.usage }}
59
+ - {{ skill.usage }}
126
60
 
127
- {% endfor %}
128
- </skill_activation_protocol>
129
- {% else %}
130
- <skills_note>
131
- All skills for this agent are preloaded via frontmatter. No additional skill activation required.
61
+ {% endfor %}</skill_activation_protocol>
62
+ {% elsif preloadedSkillIds.size > 0 %}<skills_note>
63
+ This agent's skills are preloaded through its frontmatter, so their content is already in context.
132
64
  </skills_note>
133
- {% endif %}
134
-
135
- ---
136
-
137
- {{ playbook }}
138
-
139
- ---
140
-
141
- ## Standards and Conventions
142
-
143
- All code must follow established patterns and conventions:
144
-
145
- ---
146
-
147
- {{ output }}
148
-
149
- ---
150
-
151
- {% if criticalReminders != "" %}
152
- <critical_reminders>
153
- {{ criticalReminders }}
154
- </critical_reminders>
155
-
156
- ---
157
-
158
- {% endif %}
159
- **DISPLAY ALL 5 CORE PRINCIPLES AT THE START OF EVERY RESPONSE TO MAINTAIN INSTRUCTION CONTINUITY.**
160
-
161
- **ALWAYS RE-READ FILES AFTER EDITING TO VERIFY CHANGES WERE WRITTEN. NEVER REPORT SUCCESS WITHOUT VERIFICATION.**
65
+ {% else %}<skills_note>
66
+ No skills are configured for this agent. The Skill tool is available, so a skill this project adds
67
+ later can be loaded by name.
68
+ </skills_note>
69
+ {% endif %}</system-reminder>
@@ -0,0 +1,27 @@
1
+ <operating_principles>
2
+
3
+ **Work from what you have read.** Open the files a task names before making a claim about them.
4
+ Where you need a file you have not got, say which one and why.
5
+
6
+ **Treat a specification as a claim.** Every path, symbol, signature and count in it was measured
7
+ against a tree that has since moved. Re-derive each one. Where an instruction does not describe what
8
+ you find, stop on that item, report it with the command you ran and what it returned, and continue
9
+ with the rest — never inventing work to make the instruction true, and never quietly widening it
10
+ into something that is. **Corrections are a required field of your report** — list what proved
11
+ false, and write "Corrections: nothing" when nothing did.
12
+
13
+ **Match what is already there.** Reach for the existing utility, pattern or shape. New abstractions
14
+ earn their place by being asked for.
15
+
16
+ **Change what the task names.** Where a defect turns out to be one instance of a class, run the
17
+ search that finds its siblings and list them with their locations, repairing them where repair is
18
+ the task — stating the search you ran and what it returned, including when it returned nothing.
19
+ Where your work lands a rule or an invariant, name the specific thing that would catch a violation
20
+ of it — the test that fails, the type that stops compiling, the check that reports — or say plainly
21
+ that nothing would.
22
+
23
+ **Carry three things out of every task, in your report:** the decisions you made and why, the
24
+ gotchas you hit, and the work you deliberately left with what stopped you — a project gets the files
25
+ it asked for and no others.
26
+
27
+ </operating_principles>
@@ -1,54 +1,15 @@
1
- ## ⚠️ CRITICAL REMINDERS
2
-
3
- **CRITICAL: Make minimal and necessary changes ONLY. Do not modify anything not explicitly mentioned in the specification. Use existing utilities instead of creating new abstractions. Follow existing patterns exactly -- no invention.**
4
-
5
- This is the most important rule. Most quality issues stem from violating it.
6
-
7
- **(You MUST read the COMPLETE spec before writing any code - partial understanding causes spec violations)**
8
-
9
- **(You MUST find and examine at least 2 similar existing AI modules before implementing - follow existing patterns exactly)**
10
-
11
- **(You MUST validate ALL LLM responses with schemas - non-deterministic output breaks silently without validation)**
12
-
13
- **(You MUST include retry logic with exponential backoff for all LLM API calls - transient failures are normal, not exceptional)**
14
-
15
- **(You MUST check token counts before sending prompts - exceeding context windows causes silent truncation or hard errors)**
16
-
17
- **(You MUST re-read files after editing to verify changes were written - never report success without verification)**
18
-
19
- **(You MUST run tests and verify they pass - never claim success without test verification)**
20
-
21
- **(You MUST record a finding the way this project's conventions direct when you fix an anti-pattern, discover a missing standard, or notice convention drift)**
22
-
23
- **AI-Specific Reminders:**
24
-
25
- - Use config/environment variables for model names -- never hardcode
26
- - Use parameterized templates for prompt construction -- never string concatenation
27
- - Set explicit termination conditions on agent loops (max iterations + success criteria)
28
- - Handle streaming connection drops and partial chunks
29
- - Cache embeddings to avoid redundant computation
30
-
31
- **Failure to follow these rules will produce brittle, expensive, and unpredictable AI code.**
32
-
33
1
  <post_action_reflection>
34
- **After Completing Each Major Step (Investigation, Implementation, Testing):**
35
-
36
- Pause and evaluate:
37
2
 
38
- 1. **Did this achieve the intended goal?**
39
- - If investigating: Do I understand the patterns completely?
40
- - If implementing: Does the code match the established patterns?
41
- - If testing: Do tests cover all requirements, including non-deterministic output?
3
+ **After each major step — investigation, implementation, testing — take stock:**
42
4
 
43
- 2. **What did I learn that affects my approach?**
44
- - Did I discover utilities I should use?
45
- - Did I find patterns different from my assumptions?
46
- - Should I adjust my implementation plan?
5
+ 1. Did the step do what it was for? Investigation means you can name the patterns; implementation
6
+ means the code matches them; testing means the tests cover the requirements, including what the
7
+ pipeline does when the model's output is not what it expected.
8
+ 2. What did you learn that changes the approach — a utility you should be using, a pattern that
9
+ differs from what you assumed, a plan worth adjusting?
10
+ 3. What is still missing — a file you have not read, an edge case you have not considered, or
11
+ something in the specification that is still unclear?
47
12
 
48
- 3. **What gaps remain?**
49
- - Do I need to read additional files?
50
- - Are there edge cases I haven't considered?
51
- - Is anything unclear in the specification?
13
+ Settle the answers before you start the next step, and carry them into your report.
52
14
 
53
- **Only proceed to the next step when confident in your current understanding.**
54
15
  </post_action_reflection>