@dewtech/dare-cli 2.17.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (788) hide show
  1. package/README.md +140 -39
  2. package/dist/__tests__/confidence.test.d.ts +2 -0
  3. package/dist/__tests__/confidence.test.d.ts.map +1 -0
  4. package/dist/__tests__/confidence.test.js +73 -0
  5. package/dist/__tests__/confidence.test.js.map +1 -0
  6. package/dist/__tests__/datamodel.test.d.ts +2 -0
  7. package/dist/__tests__/datamodel.test.d.ts.map +1 -0
  8. package/dist/__tests__/datamodel.test.js +131 -0
  9. package/dist/__tests__/datamodel.test.js.map +1 -0
  10. package/dist/__tests__/dna-detector.test.d.ts +2 -0
  11. package/dist/__tests__/dna-detector.test.d.ts.map +1 -0
  12. package/dist/__tests__/dna-detector.test.js +97 -0
  13. package/dist/__tests__/dna-detector.test.js.map +1 -0
  14. package/dist/__tests__/dna-facts.test.d.ts +2 -0
  15. package/dist/__tests__/dna-facts.test.d.ts.map +1 -0
  16. package/dist/__tests__/dna-facts.test.js +44 -0
  17. package/dist/__tests__/dna-facts.test.js.map +1 -0
  18. package/dist/__tests__/graph-renderer.test.d.ts +2 -0
  19. package/dist/__tests__/graph-renderer.test.d.ts.map +1 -0
  20. package/dist/__tests__/graph-renderer.test.js +85 -0
  21. package/dist/__tests__/graph-renderer.test.js.map +1 -0
  22. package/dist/__tests__/migration.test.d.ts +2 -0
  23. package/dist/__tests__/migration.test.d.ts.map +1 -0
  24. package/dist/__tests__/migration.test.js +77 -0
  25. package/dist/__tests__/migration.test.js.map +1 -0
  26. package/dist/__tests__/module-detector.test.d.ts +2 -0
  27. package/dist/__tests__/module-detector.test.d.ts.map +1 -0
  28. package/dist/__tests__/module-detector.test.js +83 -0
  29. package/dist/__tests__/module-detector.test.js.map +1 -0
  30. package/dist/__tests__/refine.test.js +49 -49
  31. package/dist/__tests__/reverse-facts.test.d.ts +2 -0
  32. package/dist/__tests__/reverse-facts.test.d.ts.map +1 -0
  33. package/dist/__tests__/reverse-facts.test.js +78 -0
  34. package/dist/__tests__/reverse-facts.test.js.map +1 -0
  35. package/dist/__tests__/review.test.js +38 -38
  36. package/dist/__tests__/validate.test.js +65 -65
  37. package/dist/bin/dare.js +30 -3
  38. package/dist/bin/dare.js.map +1 -1
  39. package/dist/commands/__tests__/init.integration.spec.d.ts +2 -0
  40. package/dist/commands/__tests__/init.integration.spec.d.ts.map +1 -0
  41. package/dist/commands/__tests__/init.integration.spec.js +134 -0
  42. package/dist/commands/__tests__/init.integration.spec.js.map +1 -0
  43. package/dist/commands/blueprint.js +122 -122
  44. package/dist/commands/dag.d.ts.map +1 -1
  45. package/dist/commands/dag.js +43 -79
  46. package/dist/commands/dag.js.map +1 -1
  47. package/dist/commands/dna.d.ts +3 -0
  48. package/dist/commands/dna.d.ts.map +1 -0
  49. package/dist/commands/dna.js +69 -0
  50. package/dist/commands/dna.js.map +1 -0
  51. package/dist/commands/init.d.ts.map +1 -1
  52. package/dist/commands/init.js +84 -1
  53. package/dist/commands/init.js.map +1 -1
  54. package/dist/commands/migrate.d.ts +3 -0
  55. package/dist/commands/migrate.d.ts.map +1 -0
  56. package/dist/commands/migrate.js +101 -0
  57. package/dist/commands/migrate.js.map +1 -0
  58. package/dist/commands/new.d.ts +16 -0
  59. package/dist/commands/new.d.ts.map +1 -0
  60. package/dist/commands/new.js +104 -0
  61. package/dist/commands/new.js.map +1 -0
  62. package/dist/commands/reverse.d.ts +3 -0
  63. package/dist/commands/reverse.d.ts.map +1 -0
  64. package/dist/commands/reverse.js +201 -0
  65. package/dist/commands/reverse.js.map +1 -0
  66. package/dist/commands/welcome.d.ts +14 -0
  67. package/dist/commands/welcome.d.ts.map +1 -0
  68. package/dist/commands/welcome.js +29 -0
  69. package/dist/commands/welcome.js.map +1 -0
  70. package/dist/mcp-server/bin/server.js +0 -0
  71. package/dist/skills/commands/add.d.ts +23 -0
  72. package/dist/skills/commands/add.d.ts.map +1 -0
  73. package/dist/skills/commands/add.js +206 -0
  74. package/dist/skills/commands/add.js.map +1 -0
  75. package/dist/skills/commands/info.d.ts +14 -0
  76. package/dist/skills/commands/info.d.ts.map +1 -0
  77. package/dist/skills/commands/info.js +99 -0
  78. package/dist/skills/commands/info.js.map +1 -0
  79. package/dist/skills/commands/list.d.ts +19 -0
  80. package/dist/skills/commands/list.d.ts.map +1 -0
  81. package/dist/skills/commands/list.js +163 -0
  82. package/dist/skills/commands/list.js.map +1 -0
  83. package/dist/skills/commands/publish.d.ts +56 -0
  84. package/dist/skills/commands/publish.d.ts.map +1 -0
  85. package/dist/skills/commands/publish.js +272 -0
  86. package/dist/skills/commands/publish.js.map +1 -0
  87. package/dist/skills/commands/remove.d.ts +19 -0
  88. package/dist/skills/commands/remove.d.ts.map +1 -0
  89. package/dist/skills/commands/remove.js +96 -0
  90. package/dist/skills/commands/remove.js.map +1 -0
  91. package/dist/skills/commands/update.d.ts +31 -0
  92. package/dist/skills/commands/update.d.ts.map +1 -0
  93. package/dist/skills/commands/update.js +132 -0
  94. package/dist/skills/commands/update.js.map +1 -0
  95. package/dist/skills/index.d.ts +22 -0
  96. package/dist/skills/index.d.ts.map +1 -0
  97. package/dist/skills/index.js +33 -0
  98. package/dist/skills/index.js.map +1 -0
  99. package/dist/skills/manifest.d.ts +54 -0
  100. package/dist/skills/manifest.d.ts.map +1 -0
  101. package/dist/skills/manifest.js +162 -0
  102. package/dist/skills/manifest.js.map +1 -0
  103. package/dist/skills/registry-local.d.ts +67 -0
  104. package/dist/skills/registry-local.d.ts.map +1 -0
  105. package/dist/skills/registry-local.js +130 -0
  106. package/dist/skills/registry-local.js.map +1 -0
  107. package/dist/skills/registry-mock.json +109 -0
  108. package/dist/skills/registry-remote.d.ts +110 -0
  109. package/dist/skills/registry-remote.d.ts.map +1 -0
  110. package/dist/skills/registry-remote.js +246 -0
  111. package/dist/skills/registry-remote.js.map +1 -0
  112. package/dist/skills/registry.d.ts +49 -0
  113. package/dist/skills/registry.d.ts.map +1 -0
  114. package/dist/skills/registry.js +94 -0
  115. package/dist/skills/registry.js.map +1 -0
  116. package/dist/skills/tests/manifest.spec.d.ts +8 -0
  117. package/dist/skills/tests/manifest.spec.d.ts.map +1 -0
  118. package/dist/skills/tests/manifest.spec.js +176 -0
  119. package/dist/skills/tests/manifest.spec.js.map +1 -0
  120. package/dist/skills/tests/publish.spec.d.ts +12 -0
  121. package/dist/skills/tests/publish.spec.d.ts.map +1 -0
  122. package/dist/skills/tests/publish.spec.js +276 -0
  123. package/dist/skills/tests/publish.spec.js.map +1 -0
  124. package/dist/skills/tests/registry-local.spec.d.ts +8 -0
  125. package/dist/skills/tests/registry-local.spec.d.ts.map +1 -0
  126. package/dist/skills/tests/registry-local.spec.js +231 -0
  127. package/dist/skills/tests/registry-local.spec.js.map +1 -0
  128. package/dist/skills/tests/registry.spec.d.ts +7 -0
  129. package/dist/skills/tests/registry.spec.d.ts.map +1 -0
  130. package/dist/skills/tests/registry.spec.js +58 -0
  131. package/dist/skills/tests/registry.spec.js.map +1 -0
  132. package/dist/skills/tests/remote-registry.spec.d.ts +9 -0
  133. package/dist/skills/tests/remote-registry.spec.d.ts.map +1 -0
  134. package/dist/skills/tests/remote-registry.spec.js +357 -0
  135. package/dist/skills/tests/remote-registry.spec.js.map +1 -0
  136. package/dist/skills/tests/update.spec.d.ts +9 -0
  137. package/dist/skills/tests/update.spec.d.ts.map +1 -0
  138. package/dist/skills/tests/update.spec.js +166 -0
  139. package/dist/skills/tests/update.spec.js.map +1 -0
  140. package/dist/stacks/__tests__/dna-emitter.spec.d.ts +2 -0
  141. package/dist/stacks/__tests__/dna-emitter.spec.d.ts.map +1 -0
  142. package/dist/stacks/__tests__/dna-emitter.spec.js +207 -0
  143. package/dist/stacks/__tests__/dna-emitter.spec.js.map +1 -0
  144. package/dist/stacks/__tests__/dna.spec.d.ts +2 -0
  145. package/dist/stacks/__tests__/dna.spec.d.ts.map +1 -0
  146. package/dist/stacks/__tests__/dna.spec.js +211 -0
  147. package/dist/stacks/__tests__/dna.spec.js.map +1 -0
  148. package/dist/stacks/__tests__/parity-rails.fixture.json +228 -0
  149. package/dist/stacks/__tests__/parity-rails.spec.d.ts +2 -0
  150. package/dist/stacks/__tests__/parity-rails.spec.d.ts.map +1 -0
  151. package/dist/stacks/__tests__/parity-rails.spec.js +99 -0
  152. package/dist/stacks/__tests__/parity-rails.spec.js.map +1 -0
  153. package/dist/stacks/__tests__/registry.spec.d.ts +2 -0
  154. package/dist/stacks/__tests__/registry.spec.d.ts.map +1 -0
  155. package/dist/stacks/__tests__/registry.spec.js +101 -0
  156. package/dist/stacks/__tests__/registry.spec.js.map +1 -0
  157. package/dist/stacks/__tests__/template-engine.spec.d.ts +2 -0
  158. package/dist/stacks/__tests__/template-engine.spec.d.ts.map +1 -0
  159. package/dist/stacks/__tests__/template-engine.spec.js +149 -0
  160. package/dist/stacks/__tests__/template-engine.spec.js.map +1 -0
  161. package/dist/stacks/dna-emitter.d.ts +45 -0
  162. package/dist/stacks/dna-emitter.d.ts.map +1 -0
  163. package/dist/stacks/dna-emitter.js +267 -0
  164. package/dist/stacks/dna-emitter.js.map +1 -0
  165. package/dist/stacks/go-gin/__tests__/scaffold.spec.d.ts +2 -0
  166. package/dist/stacks/go-gin/__tests__/scaffold.spec.d.ts.map +1 -0
  167. package/dist/stacks/go-gin/__tests__/scaffold.spec.js +221 -0
  168. package/dist/stacks/go-gin/__tests__/scaffold.spec.js.map +1 -0
  169. package/dist/stacks/go-gin/scaffold.d.ts +3 -0
  170. package/dist/stacks/go-gin/scaffold.d.ts.map +1 -0
  171. package/dist/stacks/go-gin/scaffold.js +105 -0
  172. package/dist/stacks/go-gin/scaffold.js.map +1 -0
  173. package/dist/stacks/go-stdlib/__tests__/scaffold.spec.d.ts +2 -0
  174. package/dist/stacks/go-stdlib/__tests__/scaffold.spec.d.ts.map +1 -0
  175. package/dist/stacks/go-stdlib/__tests__/scaffold.spec.js +215 -0
  176. package/dist/stacks/go-stdlib/__tests__/scaffold.spec.js.map +1 -0
  177. package/dist/stacks/go-stdlib/scaffold.d.ts +3 -0
  178. package/dist/stacks/go-stdlib/scaffold.d.ts.map +1 -0
  179. package/dist/stacks/go-stdlib/scaffold.js +106 -0
  180. package/dist/stacks/go-stdlib/scaffold.js.map +1 -0
  181. package/dist/stacks/mcp-go/__tests__/scaffold.spec.d.ts +2 -0
  182. package/dist/stacks/mcp-go/__tests__/scaffold.spec.d.ts.map +1 -0
  183. package/dist/stacks/mcp-go/__tests__/scaffold.spec.js +203 -0
  184. package/dist/stacks/mcp-go/__tests__/scaffold.spec.js.map +1 -0
  185. package/dist/stacks/mcp-go/scaffold.d.ts +3 -0
  186. package/dist/stacks/mcp-go/scaffold.d.ts.map +1 -0
  187. package/dist/stacks/mcp-go/scaffold.js +94 -0
  188. package/dist/stacks/mcp-go/scaffold.js.map +1 -0
  189. package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.d.ts +2 -0
  190. package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.d.ts.map +1 -0
  191. package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.js +236 -0
  192. package/dist/stacks/mcp-node-ts/__tests__/scaffold.spec.js.map +1 -0
  193. package/dist/stacks/mcp-node-ts/scaffold.d.ts +3 -0
  194. package/dist/stacks/mcp-node-ts/scaffold.d.ts.map +1 -0
  195. package/dist/stacks/mcp-node-ts/scaffold.js +95 -0
  196. package/dist/stacks/mcp-node-ts/scaffold.js.map +1 -0
  197. package/dist/stacks/mcp-python/__tests__/scaffold.spec.d.ts +2 -0
  198. package/dist/stacks/mcp-python/__tests__/scaffold.spec.d.ts.map +1 -0
  199. package/dist/stacks/mcp-python/__tests__/scaffold.spec.js +228 -0
  200. package/dist/stacks/mcp-python/__tests__/scaffold.spec.js.map +1 -0
  201. package/dist/stacks/mcp-python/scaffold.d.ts +3 -0
  202. package/dist/stacks/mcp-python/scaffold.d.ts.map +1 -0
  203. package/dist/stacks/mcp-python/scaffold.js +98 -0
  204. package/dist/stacks/mcp-python/scaffold.js.map +1 -0
  205. package/dist/stacks/mcp-rust/__tests__/scaffold.spec.d.ts +2 -0
  206. package/dist/stacks/mcp-rust/__tests__/scaffold.spec.d.ts.map +1 -0
  207. package/dist/stacks/mcp-rust/__tests__/scaffold.spec.js +213 -0
  208. package/dist/stacks/mcp-rust/__tests__/scaffold.spec.js.map +1 -0
  209. package/dist/stacks/mcp-rust/scaffold.d.ts +3 -0
  210. package/dist/stacks/mcp-rust/scaffold.d.ts.map +1 -0
  211. package/dist/stacks/mcp-rust/scaffold.js +98 -0
  212. package/dist/stacks/mcp-rust/scaffold.js.map +1 -0
  213. package/dist/stacks/node-nestjs/__tests__/scaffold.spec.d.ts +2 -0
  214. package/dist/stacks/node-nestjs/__tests__/scaffold.spec.d.ts.map +1 -0
  215. package/dist/stacks/node-nestjs/__tests__/scaffold.spec.js +172 -0
  216. package/dist/stacks/node-nestjs/__tests__/scaffold.spec.js.map +1 -0
  217. package/dist/stacks/node-nestjs/scaffold.d.ts +3 -0
  218. package/dist/stacks/node-nestjs/scaffold.d.ts.map +1 -0
  219. package/dist/stacks/node-nestjs/scaffold.js +117 -0
  220. package/dist/stacks/node-nestjs/scaffold.js.map +1 -0
  221. package/dist/stacks/php-laravel/__tests__/scaffold.spec.d.ts +2 -0
  222. package/dist/stacks/php-laravel/__tests__/scaffold.spec.d.ts.map +1 -0
  223. package/dist/stacks/php-laravel/__tests__/scaffold.spec.js +205 -0
  224. package/dist/stacks/php-laravel/__tests__/scaffold.spec.js.map +1 -0
  225. package/dist/stacks/php-laravel/scaffold.d.ts +3 -0
  226. package/dist/stacks/php-laravel/scaffold.d.ts.map +1 -0
  227. package/dist/stacks/php-laravel/scaffold.js +109 -0
  228. package/dist/stacks/php-laravel/scaffold.js.map +1 -0
  229. package/dist/stacks/python-fastapi/__tests__/scaffold.spec.d.ts +2 -0
  230. package/dist/stacks/python-fastapi/__tests__/scaffold.spec.d.ts.map +1 -0
  231. package/dist/stacks/python-fastapi/__tests__/scaffold.spec.js +168 -0
  232. package/dist/stacks/python-fastapi/__tests__/scaffold.spec.js.map +1 -0
  233. package/dist/stacks/python-fastapi/scaffold.d.ts +3 -0
  234. package/dist/stacks/python-fastapi/scaffold.d.ts.map +1 -0
  235. package/dist/stacks/python-fastapi/scaffold.js +108 -0
  236. package/dist/stacks/python-fastapi/scaffold.js.map +1 -0
  237. package/dist/stacks/registry.d.ts +38 -0
  238. package/dist/stacks/registry.d.ts.map +1 -0
  239. package/dist/stacks/registry.js +153 -0
  240. package/dist/stacks/registry.js.map +1 -0
  241. package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.d.ts +6 -0
  242. package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.d.ts.map +1 -0
  243. package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.js +604 -0
  244. package/dist/stacks/ruby-rails-8/__tests__/scaffold.spec.js.map +1 -0
  245. package/dist/stacks/ruby-rails-8/scaffold.d.ts +91 -0
  246. package/dist/stacks/ruby-rails-8/scaffold.d.ts.map +1 -0
  247. package/dist/stacks/ruby-rails-8/scaffold.js +410 -0
  248. package/dist/stacks/ruby-rails-8/scaffold.js.map +1 -0
  249. package/dist/stacks/rust-axum/__tests__/scaffold.spec.d.ts +2 -0
  250. package/dist/stacks/rust-axum/__tests__/scaffold.spec.d.ts.map +1 -0
  251. package/dist/stacks/rust-axum/__tests__/scaffold.spec.js +203 -0
  252. package/dist/stacks/rust-axum/__tests__/scaffold.spec.js.map +1 -0
  253. package/dist/stacks/rust-axum/scaffold.d.ts +3 -0
  254. package/dist/stacks/rust-axum/scaffold.d.ts.map +1 -0
  255. package/dist/stacks/rust-axum/scaffold.js +105 -0
  256. package/dist/stacks/rust-axum/scaffold.js.map +1 -0
  257. package/dist/stacks/template-engine.d.ts +38 -0
  258. package/dist/stacks/template-engine.d.ts.map +1 -0
  259. package/dist/stacks/template-engine.js +134 -0
  260. package/dist/stacks/template-engine.js.map +1 -0
  261. package/dist/stacks/types.d.ts +69 -0
  262. package/dist/stacks/types.d.ts.map +1 -0
  263. package/dist/stacks/types.js +29 -0
  264. package/dist/stacks/types.js.map +1 -0
  265. package/dist/utils/banner.d.ts +28 -0
  266. package/dist/utils/banner.d.ts.map +1 -0
  267. package/dist/utils/banner.js +77 -0
  268. package/dist/utils/banner.js.map +1 -0
  269. package/dist/utils/banner.spec.d.ts +5 -0
  270. package/dist/utils/banner.spec.d.ts.map +1 -0
  271. package/dist/utils/banner.spec.js +253 -0
  272. package/dist/utils/banner.spec.js.map +1 -0
  273. package/dist/utils/confidence.d.ts +41 -0
  274. package/dist/utils/confidence.d.ts.map +1 -0
  275. package/dist/utils/confidence.js +101 -0
  276. package/dist/utils/confidence.js.map +1 -0
  277. package/dist/utils/datamodel.d.ts +41 -0
  278. package/dist/utils/datamodel.d.ts.map +1 -0
  279. package/dist/utils/datamodel.js +535 -0
  280. package/dist/utils/datamodel.js.map +1 -0
  281. package/dist/utils/dna-detector.d.ts +61 -0
  282. package/dist/utils/dna-detector.d.ts.map +1 -0
  283. package/dist/utils/dna-detector.js +354 -0
  284. package/dist/utils/dna-detector.js.map +1 -0
  285. package/dist/utils/dna-facts.d.ts +13 -0
  286. package/dist/utils/dna-facts.d.ts.map +1 -0
  287. package/dist/utils/dna-facts.js +109 -0
  288. package/dist/utils/dna-facts.js.map +1 -0
  289. package/dist/utils/excalidraw-renderer.d.ts +11 -71
  290. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  291. package/dist/utils/excalidraw-renderer.js +29 -162
  292. package/dist/utils/excalidraw-renderer.js.map +1 -1
  293. package/dist/utils/graph-renderer.d.ts +115 -0
  294. package/dist/utils/graph-renderer.d.ts.map +1 -0
  295. package/dist/utils/graph-renderer.js +216 -0
  296. package/dist/utils/graph-renderer.js.map +1 -0
  297. package/dist/utils/migration.d.ts +64 -0
  298. package/dist/utils/migration.d.ts.map +1 -0
  299. package/dist/utils/migration.js +183 -0
  300. package/dist/utils/migration.js.map +1 -0
  301. package/dist/utils/module-detector.d.ts +46 -0
  302. package/dist/utils/module-detector.d.ts.map +1 -0
  303. package/dist/utils/module-detector.js +348 -0
  304. package/dist/utils/module-detector.js.map +1 -0
  305. package/dist/utils/project-generator.d.ts +1 -1
  306. package/dist/utils/project-generator.d.ts.map +1 -1
  307. package/dist/utils/project-generator.js +268 -259
  308. package/dist/utils/project-generator.js.map +1 -1
  309. package/dist/utils/reverse-facts.d.ts +50 -0
  310. package/dist/utils/reverse-facts.d.ts.map +1 -0
  311. package/dist/utils/reverse-facts.js +291 -0
  312. package/dist/utils/reverse-facts.js.map +1 -0
  313. package/dist/utils/stack-bootstrap.d.ts +3 -2
  314. package/dist/utils/stack-bootstrap.d.ts.map +1 -1
  315. package/dist/utils/stack-bootstrap.js +417 -387
  316. package/dist/utils/stack-bootstrap.js.map +1 -1
  317. package/package.json +91 -82
  318. package/templates/DARE-dag-example.yaml +280 -280
  319. package/templates/UPDATE-MANIFEST.json +48 -48
  320. package/templates/backend/node-nestjs/.env.example +9 -9
  321. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  322. package/templates/backend/node-nestjs/package.json +50 -50
  323. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  324. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  325. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  326. package/templates/backend/node-nestjs/src/main.ts +24 -24
  327. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  328. package/templates/backend/php-laravel/.env.example +22 -22
  329. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  330. package/templates/backend/php-laravel/composer.json +40 -40
  331. package/templates/backend/python-fastapi/.env.example +4 -4
  332. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  333. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  334. package/templates/backend/python-fastapi/main.py +35 -35
  335. package/templates/backend/python-fastapi/requirements.txt +13 -13
  336. package/templates/backend/rust-axum/.env.example +3 -3
  337. package/templates/backend/rust-axum/Cargo.toml +23 -23
  338. package/templates/backend/rust-axum/src/errors.rs +30 -30
  339. package/templates/backend/rust-axum/src/main.rs +32 -32
  340. package/templates/backend/rust-axum/src/routes.rs +6 -6
  341. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  342. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  343. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  344. package/templates/frontend/leptos-csr/index.html +11 -11
  345. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  346. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  347. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  348. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  349. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  350. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  351. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  352. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  353. package/templates/frontend/react/index.html +12 -12
  354. package/templates/frontend/react/package.json +35 -35
  355. package/templates/frontend/react/src/App.tsx +25 -25
  356. package/templates/frontend/react/src/main.tsx +9 -9
  357. package/templates/frontend/vue/package.json +32 -32
  358. package/templates/frontend/vue/src/App.vue +7 -7
  359. package/templates/frontend/vue/src/main.ts +10 -10
  360. package/templates/frontend/vue/src/router/index.ts +14 -14
  361. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  362. package/templates/hooks/pre-commit-dare-validate +24 -24
  363. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -0
  364. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -0
  365. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -0
  366. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  367. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -0
  368. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -0
  369. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -0
  370. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -0
  371. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -0
  372. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -0
  373. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -0
  374. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -0
  375. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -0
  376. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
  377. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
  378. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
  379. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -0
  380. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  381. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -0
  382. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
  383. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -0
  384. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -0
  385. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -0
  386. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -0
  387. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -0
  388. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -0
  389. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  390. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  391. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
  392. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
  393. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
  394. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
  395. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
  396. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  397. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -0
  398. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  399. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  400. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -0
  401. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -0
  402. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  403. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -0
  404. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -0
  405. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -0
  406. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -0
  407. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -0
  408. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -0
  409. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -0
  410. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -0
  411. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
  412. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
  413. package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
  414. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  415. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  416. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  417. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  418. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -0
  419. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -0
  420. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -0
  421. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -0
  422. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -0
  423. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -0
  424. package/templates/ide/claude/.claude/settings.example.json +35 -35
  425. package/templates/ide/claude/CLAUDE.md +146 -146
  426. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  427. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  428. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
  429. package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
  430. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -86
  431. package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
  432. package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -184
  433. package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -107
  434. package/templates/ide/cursor/.cursor/commands/review-task.md +91 -91
  435. package/templates/ide/cursor/.cursor/commands/run-dag.md +110 -110
  436. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -0
  437. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -0
  438. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -0
  439. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  440. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -0
  441. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -0
  442. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -0
  443. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -0
  444. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -0
  445. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -0
  446. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -0
  447. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -0
  448. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -0
  449. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -0
  450. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -0
  451. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -0
  452. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -0
  453. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -0
  454. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  455. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  456. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  457. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  458. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
  459. package/templates/shared/docker-compose.yml +41 -41
  460. package/templates/stacks/go-gin/.dare/skills.yml +11 -0
  461. package/templates/stacks/go-gin/.env.example +24 -0
  462. package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -0
  463. package/templates/stacks/go-gin/README.md.tpl +38 -0
  464. package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -0
  465. package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -0
  466. package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -0
  467. package/templates/stacks/go-gin/db/queries/users.sql +23 -0
  468. package/templates/stacks/go-gin/gitignore +7 -0
  469. package/templates/stacks/go-gin/go.mod.tpl +17 -0
  470. package/templates/stacks/go-gin/internal/config/config.go +41 -0
  471. package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -0
  472. package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -0
  473. package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -0
  474. package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -0
  475. package/templates/stacks/go-gin/internal/llm/dummy.go +14 -0
  476. package/templates/stacks/go-gin/internal/llm/provider.go +8 -0
  477. package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -0
  478. package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -0
  479. package/templates/stacks/go-gin/internal/model/user.go +17 -0
  480. package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -0
  481. package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -0
  482. package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -0
  483. package/templates/stacks/go-gin/llms.txt.tpl +54 -0
  484. package/templates/stacks/go-gin/openapi.json.tpl +46 -0
  485. package/templates/stacks/go-gin/sqlc.yaml +14 -0
  486. package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -0
  487. package/templates/stacks/go-stdlib/.dare/skills.yml +11 -0
  488. package/templates/stacks/go-stdlib/.env.example +24 -0
  489. package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -0
  490. package/templates/stacks/go-stdlib/README.md.tpl +41 -0
  491. package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -0
  492. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -0
  493. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -0
  494. package/templates/stacks/go-stdlib/db/queries/users.sql +23 -0
  495. package/templates/stacks/go-stdlib/gitignore +6 -0
  496. package/templates/stacks/go-stdlib/go.mod.tpl +15 -0
  497. package/templates/stacks/go-stdlib/internal/config/config.go +41 -0
  498. package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -0
  499. package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -0
  500. package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -0
  501. package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -0
  502. package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -0
  503. package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -0
  504. package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -0
  505. package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -0
  506. package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -0
  507. package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -0
  508. package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -0
  509. package/templates/stacks/go-stdlib/internal/model/user.go +17 -0
  510. package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -0
  511. package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -0
  512. package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -0
  513. package/templates/stacks/go-stdlib/llms.txt.tpl +60 -0
  514. package/templates/stacks/go-stdlib/openapi.json.tpl +46 -0
  515. package/templates/stacks/go-stdlib/sqlc.yaml +14 -0
  516. package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -0
  517. package/templates/stacks/mcp-go/.dare/skills.yml +8 -0
  518. package/templates/stacks/mcp-go/.env.example +14 -0
  519. package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -0
  520. package/templates/stacks/mcp-go/README.md.tpl +50 -0
  521. package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -0
  522. package/templates/stacks/mcp-go/gitignore +6 -0
  523. package/templates/stacks/mcp-go/go.mod.tpl +9 -0
  524. package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -0
  525. package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -0
  526. package/templates/stacks/mcp-go/internal/tools/echo.go +15 -0
  527. package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -0
  528. package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -0
  529. package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -0
  530. package/templates/stacks/mcp-go/llms.txt.tpl +60 -0
  531. package/templates/stacks/mcp-go/openapi.json.tpl +31 -0
  532. package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -0
  533. package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -0
  534. package/templates/stacks/mcp-node-ts/.env.example +16 -0
  535. package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -0
  536. package/templates/stacks/mcp-node-ts/README.md.hbs +49 -0
  537. package/templates/stacks/mcp-node-ts/gitignore +7 -0
  538. package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -0
  539. package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -0
  540. package/templates/stacks/mcp-node-ts/package.json.hbs +35 -0
  541. package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -0
  542. package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -0
  543. package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -0
  544. package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -0
  545. package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -0
  546. package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -0
  547. package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -0
  548. package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -0
  549. package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -0
  550. package/templates/stacks/mcp-node-ts/tsconfig.json +17 -0
  551. package/templates/stacks/mcp-python/.dare/skills.yml +8 -0
  552. package/templates/stacks/mcp-python/.env.example +14 -0
  553. package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -0
  554. package/templates/stacks/mcp-python/README.md.j2 +49 -0
  555. package/templates/stacks/mcp-python/gitignore +12 -0
  556. package/templates/stacks/mcp-python/llms.txt.j2 +56 -0
  557. package/templates/stacks/mcp-python/openapi.json.j2 +33 -0
  558. package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -0
  559. package/templates/stacks/mcp-python/src/__init__.py +0 -0
  560. package/templates/stacks/mcp-python/src/cli.py.j2 +68 -0
  561. package/templates/stacks/mcp-python/src/prompts/__init__.py +0 -0
  562. package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -0
  563. package/templates/stacks/mcp-python/src/server.py.j2 +28 -0
  564. package/templates/stacks/mcp-python/src/tools/__init__.py +0 -0
  565. package/templates/stacks/mcp-python/src/tools/echo.py +12 -0
  566. package/templates/stacks/mcp-python/src/transports/__init__.py +0 -0
  567. package/templates/stacks/mcp-python/src/transports/http.py +12 -0
  568. package/templates/stacks/mcp-python/src/transports/sse.py +13 -0
  569. package/templates/stacks/mcp-python/src/transports/stdio.py +6 -0
  570. package/templates/stacks/mcp-python/tests/__init__.py +0 -0
  571. package/templates/stacks/mcp-python/tests/test_echo.py +28 -0
  572. package/templates/stacks/mcp-rust/.dare/skills.yml +8 -0
  573. package/templates/stacks/mcp-rust/.env.example +14 -0
  574. package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -0
  575. package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -0
  576. package/templates/stacks/mcp-rust/README.md.tera +50 -0
  577. package/templates/stacks/mcp-rust/gitignore +5 -0
  578. package/templates/stacks/mcp-rust/llms.txt.tera +60 -0
  579. package/templates/stacks/mcp-rust/openapi.json.tera +31 -0
  580. package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -0
  581. package/templates/stacks/mcp-rust/src/lib.rs +6 -0
  582. package/templates/stacks/mcp-rust/src/main.rs.tera +30 -0
  583. package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -0
  584. package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -0
  585. package/templates/stacks/mcp-rust/src/server.rs.tera +38 -0
  586. package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -0
  587. package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -0
  588. package/templates/stacks/mcp-rust/src/transports/http.rs +27 -0
  589. package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -0
  590. package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -0
  591. package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -0
  592. package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -0
  593. package/templates/stacks/node-nestjs/.dare/skills.yml +11 -0
  594. package/templates/stacks/node-nestjs/.env.example +21 -0
  595. package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -0
  596. package/templates/stacks/node-nestjs/README.md.hbs +35 -0
  597. package/templates/stacks/node-nestjs/gitignore +7 -0
  598. package/templates/stacks/node-nestjs/llms.txt.hbs +47 -0
  599. package/templates/stacks/node-nestjs/nest-cli.json +16 -0
  600. package/templates/stacks/node-nestjs/openapi.json.hbs +75 -0
  601. package/templates/stacks/node-nestjs/package.json.hbs +57 -0
  602. package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -0
  603. package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -0
  604. package/templates/stacks/node-nestjs/src/app.module.ts +39 -0
  605. package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -0
  606. package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -0
  607. package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -0
  608. package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -0
  609. package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -0
  610. package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -0
  611. package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -0
  612. package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -0
  613. package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -0
  614. package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -0
  615. package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -0
  616. package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -0
  617. package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -0
  618. package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -0
  619. package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -0
  620. package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -0
  621. package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -0
  622. package/templates/stacks/node-nestjs/tsconfig.build.json +4 -0
  623. package/templates/stacks/node-nestjs/tsconfig.json +28 -0
  624. package/templates/stacks/php-laravel/.dare/skills.yml +11 -0
  625. package/templates/stacks/php-laravel/.env.example +41 -0
  626. package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -0
  627. package/templates/stacks/php-laravel/README.md.hbs +36 -0
  628. package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -0
  629. package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -0
  630. package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -0
  631. package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -0
  632. package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -0
  633. package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -0
  634. package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -0
  635. package/templates/stacks/php-laravel/app/Models/User.php +44 -0
  636. package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -0
  637. package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -0
  638. package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -0
  639. package/templates/stacks/php-laravel/artisan +12 -0
  640. package/templates/stacks/php-laravel/bootstrap/app.php +29 -0
  641. package/templates/stacks/php-laravel/bootstrap/providers.php +5 -0
  642. package/templates/stacks/php-laravel/composer.json.hbs +58 -0
  643. package/templates/stacks/php-laravel/config/l5-swagger.php +41 -0
  644. package/templates/stacks/php-laravel/config/reverb.php +34 -0
  645. package/templates/stacks/php-laravel/config/sanctum.php +15 -0
  646. package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -0
  647. package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -0
  648. package/templates/stacks/php-laravel/gitignore +23 -0
  649. package/templates/stacks/php-laravel/llms.txt.hbs +53 -0
  650. package/templates/stacks/php-laravel/openapi.json.hbs +43 -0
  651. package/templates/stacks/php-laravel/phpstan.neon +9 -0
  652. package/templates/stacks/php-laravel/routes/api.php +13 -0
  653. package/templates/stacks/php-laravel/routes/channels.php +7 -0
  654. package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -0
  655. package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -0
  656. package/templates/stacks/php-laravel/tests/Pest.php +5 -0
  657. package/templates/stacks/python-fastapi/.dare/skills.yml +11 -0
  658. package/templates/stacks/python-fastapi/.env.example +21 -0
  659. package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -0
  660. package/templates/stacks/python-fastapi/README.md.j2 +35 -0
  661. package/templates/stacks/python-fastapi/alembic/env.py +46 -0
  662. package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -0
  663. package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -0
  664. package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -0
  665. package/templates/stacks/python-fastapi/app/__init__.py +0 -0
  666. package/templates/stacks/python-fastapi/app/core/__init__.py +0 -0
  667. package/templates/stacks/python-fastapi/app/core/config.py +24 -0
  668. package/templates/stacks/python-fastapi/app/core/security.py +34 -0
  669. package/templates/stacks/python-fastapi/app/db/__init__.py +0 -0
  670. package/templates/stacks/python-fastapi/app/db/session.py +22 -0
  671. package/templates/stacks/python-fastapi/app/main.py.j2 +36 -0
  672. package/templates/stacks/python-fastapi/app/models/__init__.py +3 -0
  673. package/templates/stacks/python-fastapi/app/models/user.py +30 -0
  674. package/templates/stacks/python-fastapi/app/repositories/__init__.py +0 -0
  675. package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -0
  676. package/templates/stacks/python-fastapi/app/routers/__init__.py +0 -0
  677. package/templates/stacks/python-fastapi/app/routers/auth.py +37 -0
  678. package/templates/stacks/python-fastapi/app/routers/users.py +46 -0
  679. package/templates/stacks/python-fastapi/app/schemas/__init__.py +0 -0
  680. package/templates/stacks/python-fastapi/app/schemas/user.py +56 -0
  681. package/templates/stacks/python-fastapi/app/services/__init__.py +0 -0
  682. package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -0
  683. package/templates/stacks/python-fastapi/app/services/user_service.py +31 -0
  684. package/templates/stacks/python-fastapi/gitignore +12 -0
  685. package/templates/stacks/python-fastapi/llms.txt.j2 +53 -0
  686. package/templates/stacks/python-fastapi/openapi.json.j2 +43 -0
  687. package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -0
  688. package/templates/stacks/python-fastapi/tests/__init__.py +0 -0
  689. package/templates/stacks/python-fastapi/tests/test_auth.py +22 -0
  690. package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -0
  691. package/templates/stacks/ruby-rails-8/.env.example +20 -0
  692. package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -0
  693. package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -0
  694. package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -0
  695. package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -0
  696. package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -0
  697. package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -0
  698. package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -0
  699. package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -0
  700. package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -0
  701. package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -0
  702. package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -0
  703. package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -0
  704. package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -0
  705. package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -0
  706. package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -0
  707. package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -0
  708. package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -0
  709. package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -0
  710. package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -0
  711. package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -0
  712. package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -0
  713. package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -0
  714. package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -0
  715. package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -0
  716. package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -0
  717. package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -0
  718. package/templates/stacks/ruby-rails-8/config/dare.yml +42 -0
  719. package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -0
  720. package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -0
  721. package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -0
  722. package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -0
  723. package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -0
  724. package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -0
  725. package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -0
  726. package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -0
  727. package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -0
  728. package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -0
  729. package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -0
  730. package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -0
  731. package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -0
  732. package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -0
  733. package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -0
  734. package/templates/stacks/rust-axum/.dare/skills.yml +11 -0
  735. package/templates/stacks/rust-axum/.env.example +26 -0
  736. package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -0
  737. package/templates/stacks/rust-axum/Cargo.toml.tera +53 -0
  738. package/templates/stacks/rust-axum/README.md.tera +37 -0
  739. package/templates/stacks/rust-axum/gitignore +5 -0
  740. package/templates/stacks/rust-axum/llms.txt.tera +54 -0
  741. package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -0
  742. package/templates/stacks/rust-axum/openapi.json.tera +46 -0
  743. package/templates/stacks/rust-axum/src/config.rs +45 -0
  744. package/templates/stacks/rust-axum/src/errors.rs +48 -0
  745. package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -0
  746. package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -0
  747. package/templates/stacks/rust-axum/src/handlers/users.rs +81 -0
  748. package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -0
  749. package/templates/stacks/rust-axum/src/lib.rs +19 -0
  750. package/templates/stacks/rust-axum/src/llm/mod.rs +1 -0
  751. package/templates/stacks/rust-axum/src/llm/provider.rs +48 -0
  752. package/templates/stacks/rust-axum/src/main.rs.tera +64 -0
  753. package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -0
  754. package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -0
  755. package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -0
  756. package/templates/stacks/rust-axum/src/models/mod.rs +1 -0
  757. package/templates/stacks/rust-axum/src/models/user.rs +13 -0
  758. package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -0
  759. package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -0
  760. package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -0
  761. package/templates/stacks/rust-axum/src/services/mod.rs +2 -0
  762. package/templates/stacks/rust-axum/src/services/user_service.rs +53 -0
  763. package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -0
  764. package/LICENSE +0 -21
  765. package/dist/__tests__/dag-runner/adapters.test.d.ts +0 -2
  766. package/dist/__tests__/dag-runner/adapters.test.d.ts.map +0 -1
  767. package/dist/__tests__/dag-runner/adapters.test.js +0 -134
  768. package/dist/__tests__/dag-runner/adapters.test.js.map +0 -1
  769. package/dist/dag-runner/adapters/antigravity.d.ts +0 -6
  770. package/dist/dag-runner/adapters/antigravity.d.ts.map +0 -1
  771. package/dist/dag-runner/adapters/antigravity.js +0 -54
  772. package/dist/dag-runner/adapters/antigravity.js.map +0 -1
  773. package/dist/dag-runner/adapters/claude.d.ts +0 -6
  774. package/dist/dag-runner/adapters/claude.d.ts.map +0 -1
  775. package/dist/dag-runner/adapters/claude.js +0 -48
  776. package/dist/dag-runner/adapters/claude.js.map +0 -1
  777. package/dist/dag-runner/adapters/cursor.d.ts +0 -6
  778. package/dist/dag-runner/adapters/cursor.d.ts.map +0 -1
  779. package/dist/dag-runner/adapters/cursor.js +0 -58
  780. package/dist/dag-runner/adapters/cursor.js.map +0 -1
  781. package/dist/dag-runner/adapters/index.d.ts +0 -46
  782. package/dist/dag-runner/adapters/index.d.ts.map +0 -1
  783. package/dist/dag-runner/adapters/index.js +0 -55
  784. package/dist/dag-runner/adapters/index.js.map +0 -1
  785. package/dist/dag-runner/utils/timeout.d.ts +0 -27
  786. package/dist/dag-runner/utils/timeout.d.ts.map +0 -1
  787. package/dist/dag-runner/utils/timeout.js +0 -55
  788. package/dist/dag-runner/utils/timeout.js.map +0 -1
@@ -1,91 +1,91 @@
1
- # Comando: /review-task
2
-
3
- ## Descrição
4
-
5
- Audita uma task **implementada** cruzando a spec (`DARE/EXECUTION/<id>.md`) com os arquivos reais que ela tocou. Detecta stubs, mocks fora de testes, funções vazias, TODOs, retorno-fantasma — **e** valida critério-a-critério se a implementação satisfaz o que a spec prometeu.
6
-
7
- Esta é a camada **semântica** do review. A camada estática (regex / patterns) já é feita automaticamente pelo CLI quando você roda `dare review <task-id>`. Este comando combina as duas: rode a estática via CLI, gere um verdito semântico aqui, e produza um relatório fundido.
8
-
9
- ## Quando rodar
10
-
11
- - Antes de marcar uma task como DONE (gate obrigatório no Definition of Done do TASK-SPEC)
12
- - Quando o `dare review <id>` estático passa mas você quer validação adicional contra a spec
13
- - Quando o dev pede revisão manual: `/review-task task-034`
14
-
15
- ## Instruções para o Cursor Composer
16
-
17
- ### 1. Validar argumento
18
-
19
- `$ARGUMENTS` deve conter o `task-id`. Se vazio, peça.
20
-
21
- ### 2. Rodar a camada estática primeiro
22
-
23
- ```bash
24
- dare review $ARGUMENTS --format json > .dare/review-static-$ARGUMENTS.json
25
- ```
26
-
27
- Leia esse JSON. Se houver erros estáticos, reporte-os e pergunte se quer prosseguir com a análise semântica (geralmente não vale — corrija primeiro).
28
-
29
- ### 3. Carregar contexto
30
-
31
- - `DARE/EXECUTION/$ARGUMENTS.md` — spec
32
- - Cada arquivo listado na seção 3 da spec
33
- - `DARE/BLUEPRINT.md` — contratos referenciados
34
-
35
- ### 4. Auditoria critério-a-critério
36
-
37
- Para **cada** item das seções abaixo da spec, marque ✅ / ❌ com evidência (arquivo + linha):
38
-
39
- - **4.1 Objetivo (seção 1):** estado observável foi atingido?
40
- - **4.2 Arquivos (seção 3):** todos existem com conteúdo descrito? Há arquivos extras suspeitos?
41
- - **4.3 Implementação (seção 4):** cada passo executado? assinaturas exatas? validações com regras concretas (não "valida email" — a regex específica)?
42
- - **4.4 Testes:** cada teste listado existe? Tem assertions reais? Edge cases cobertos?
43
- - **4.5 Segurança (seção 5):** input validation, autorização, secrets, SQL injection — tudo conforme spec?
44
- - **4.6 Anti-Stub (seção 7):** a camada estática já checou — só anote se você encontrar algo que regex não pegaria (ex.: dados hardcoded disfarçados de "do banco").
45
-
46
- ### 5. Emitir verdito semântico
47
-
48
- Salve em `.dare/review-semantic-$ARGUMENTS.json`:
49
-
50
- ```json
51
- {
52
- "passed": true,
53
- "unmetCriteria": [],
54
- "notes": "Resumo de 1-3 frases do que foi verificado"
55
- }
56
- ```
57
-
58
- Se algo falhou:
59
-
60
- ```json
61
- {
62
- "passed": false,
63
- "unmetCriteria": [
64
- "Seção 4.3: validação de senha não implementa regex de força",
65
- "Seção 4.4: teste de 'email duplicado' não existe"
66
- ],
67
- "notes": "2 critérios não atendidos em src/auth/register.ts"
68
- }
69
- ```
70
-
71
- ### 6. Rodar o review fundido
72
-
73
- ```bash
74
- dare review $ARGUMENTS --from-agent .dare/review-semantic-$ARGUMENTS.json
75
- ```
76
-
77
- Exit code 0 = task pode ir para DONE; 1 = não pode.
78
-
79
- ### 7. Mensagem final
80
-
81
- Se passou:
82
- > ✅ Task `$ARGUMENTS` aprovada. Marque como DONE: `dare execute --complete $ARGUMENTS`
83
-
84
- Se falhou:
85
- > ❌ Task `$ARGUMENTS` não passou. Itens a corrigir: [lista]. Após corrigir, rode `/review-task $ARGUMENTS` novamente.
86
-
87
- ## Regras inegociáveis
88
-
89
- - **Não invente** que algo está implementado se você não viu o código.
90
- - **Não aceite** mocks/stubs em código de produção mesmo que "façam o teste passar".
91
- - **Mocks são OK** dentro de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/`.
1
+ # Comando: /review-task
2
+
3
+ ## Descrição
4
+
5
+ Audita uma task **implementada** cruzando a spec (`DARE/EXECUTION/<id>.md`) com os arquivos reais que ela tocou. Detecta stubs, mocks fora de testes, funções vazias, TODOs, retorno-fantasma — **e** valida critério-a-critério se a implementação satisfaz o que a spec prometeu.
6
+
7
+ Esta é a camada **semântica** do review. A camada estática (regex / patterns) já é feita automaticamente pelo CLI quando você roda `dare review <task-id>`. Este comando combina as duas: rode a estática via CLI, gere um verdito semântico aqui, e produza um relatório fundido.
8
+
9
+ ## Quando rodar
10
+
11
+ - Antes de marcar uma task como DONE (gate obrigatório no Definition of Done do TASK-SPEC)
12
+ - Quando o `dare review <id>` estático passa mas você quer validação adicional contra a spec
13
+ - Quando o dev pede revisão manual: `/review-task task-034`
14
+
15
+ ## Instruções para o Cursor Composer
16
+
17
+ ### 1. Validar argumento
18
+
19
+ `$ARGUMENTS` deve conter o `task-id`. Se vazio, peça.
20
+
21
+ ### 2. Rodar a camada estática primeiro
22
+
23
+ ```bash
24
+ dare review $ARGUMENTS --format json > .dare/review-static-$ARGUMENTS.json
25
+ ```
26
+
27
+ Leia esse JSON. Se houver erros estáticos, reporte-os e pergunte se quer prosseguir com a análise semântica (geralmente não vale — corrija primeiro).
28
+
29
+ ### 3. Carregar contexto
30
+
31
+ - `DARE/EXECUTION/$ARGUMENTS.md` — spec
32
+ - Cada arquivo listado na seção 3 da spec
33
+ - `DARE/BLUEPRINT.md` — contratos referenciados
34
+
35
+ ### 4. Auditoria critério-a-critério
36
+
37
+ Para **cada** item das seções abaixo da spec, marque ✅ / ❌ com evidência (arquivo + linha):
38
+
39
+ - **4.1 Objetivo (seção 1):** estado observável foi atingido?
40
+ - **4.2 Arquivos (seção 3):** todos existem com conteúdo descrito? Há arquivos extras suspeitos?
41
+ - **4.3 Implementação (seção 4):** cada passo executado? assinaturas exatas? validações com regras concretas (não "valida email" — a regex específica)?
42
+ - **4.4 Testes:** cada teste listado existe? Tem assertions reais? Edge cases cobertos?
43
+ - **4.5 Segurança (seção 5):** input validation, autorização, secrets, SQL injection — tudo conforme spec?
44
+ - **4.6 Anti-Stub (seção 7):** a camada estática já checou — só anote se você encontrar algo que regex não pegaria (ex.: dados hardcoded disfarçados de "do banco").
45
+
46
+ ### 5. Emitir verdito semântico
47
+
48
+ Salve em `.dare/review-semantic-$ARGUMENTS.json`:
49
+
50
+ ```json
51
+ {
52
+ "passed": true,
53
+ "unmetCriteria": [],
54
+ "notes": "Resumo de 1-3 frases do que foi verificado"
55
+ }
56
+ ```
57
+
58
+ Se algo falhou:
59
+
60
+ ```json
61
+ {
62
+ "passed": false,
63
+ "unmetCriteria": [
64
+ "Seção 4.3: validação de senha não implementa regex de força",
65
+ "Seção 4.4: teste de 'email duplicado' não existe"
66
+ ],
67
+ "notes": "2 critérios não atendidos em src/auth/register.ts"
68
+ }
69
+ ```
70
+
71
+ ### 6. Rodar o review fundido
72
+
73
+ ```bash
74
+ dare review $ARGUMENTS --from-agent .dare/review-semantic-$ARGUMENTS.json
75
+ ```
76
+
77
+ Exit code 0 = task pode ir para DONE; 1 = não pode.
78
+
79
+ ### 7. Mensagem final
80
+
81
+ Se passou:
82
+ > ✅ Task `$ARGUMENTS` aprovada. Marque como DONE: `dare execute --complete $ARGUMENTS`
83
+
84
+ Se falhou:
85
+ > ❌ Task `$ARGUMENTS` não passou. Itens a corrigir: [lista]. Após corrigir, rode `/review-task $ARGUMENTS` novamente.
86
+
87
+ ## Regras inegociáveis
88
+
89
+ - **Não invente** que algo está implementado se você não viu o código.
90
+ - **Não aceite** mocks/stubs em código de produção mesmo que "façam o teste passar".
91
+ - **Mocks são OK** dentro de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/`.
@@ -1,110 +1,110 @@
1
- # Comando: /run-dag
2
-
3
- ## Descrição
4
-
5
- Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando o **Cursor
6
- como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica em
7
- `DARE/.canvas.md`.
8
-
9
- > **Sem API keys.** Você (Cursor) usa o plano da IDE em que o usuário já está
10
- > logado. O CLI apenas coordena estado, monta prompts e atualiza canvas.
11
-
12
- ## Pré-requisitos
13
-
14
- - `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
15
- - Specs em `DARE/EXECUTION/task-<id>.md` geradas
16
- - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
17
-
18
- ## Instruções para o Cursor Composer
19
-
20
- ### 1. Validar pré-condições
21
-
22
- - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a rodar
23
- `/generate-tasks` primeiro
24
- - Leia o YAML e verifique:
25
- - Sem ciclos
26
- - Pelo menos 2 tasks no rank 0 (paralelismo lógico)
27
- - Cada task tem `id` único, `complexity`, `subtask_prompt`
28
-
29
- ### 2. Pegar próximas tasks
30
-
31
- ```bash
32
- dare execute --next
33
- ```
34
-
35
- O CLI imprime as tasks ready do rank atual com o prompt completo (já com
36
- snippets dos outputs dos pais costurados). Use exatamente esses prompts.
37
-
38
- ### 3. Sugerir abrir o canvas
39
-
40
- Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em uma aba para
41
- acompanhar o progresso ao vivo.
42
-
43
- ### 4. Executar cada task
44
-
45
- Para cada task ready:
46
-
47
- 1. Leia `spec_file` se houver
48
- 2. Implemente conforme o prompt
49
- 3. Rode Ralph Loop: build → test → lint
50
- 4. Registre o resultado:
51
-
52
- ```bash
53
- # Sucesso
54
- dare execute --complete task-001 --output "Resumo + arquivos criados/modificados (paths)"
55
-
56
- # Falha
57
- dare execute --fail task-002 --reason "Mensagem clara da falha"
58
- ```
59
-
60
- ### 5. Avançar de rank
61
-
62
- Após registrar todos os `--complete`/`--fail` do rank atual:
63
-
64
- ```bash
65
- dare execute --next
66
- ```
67
-
68
- Se aparece `✅ All tasks resolved`, todas as tasks terminaram. Caso contrário,
69
- continue executando o próximo rank.
70
-
71
- ### 6. Pós-execução
72
-
73
- Ao terminar:
74
-
75
- - Rode `dare execute --status` para ver o sumário final
76
- - Se houver FAILED: leia `DARE/EXECUTION/task-<id>.md` da que falhou,
77
- corrija a spec ou o prompt, depois:
78
-
79
- ```bash
80
- dare execute --reset task-002 # volta para PENDING
81
- dare execute --next # tente novamente
82
- ```
83
-
84
- ## Comandos disponíveis
85
-
86
- | Comando | Função |
87
- |---------|--------|
88
- | `dare execute --next` | Imprime tasks ready do rank atual com prompts |
89
- | `dare execute --complete <id> --output "…"` | Marca DONE |
90
- | `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
91
- | `dare execute --reset <id>` | Volta para PENDING (retry) |
92
- | `dare execute --status` | Snapshot do canvas + sumário |
93
-
94
- ## Erros comuns
95
-
96
- | Sintoma | Causa | Correção |
97
- |---------|-------|----------|
98
- | `dare-dag.yaml not found` | Não foi gerado | Rode `/generate-tasks` |
99
- | Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
100
- | Output truncado em 4000 chars | Cap normal | Faça a task escrever em arquivo, retorne resumo |
101
- | Tudo no rank 0 disputa o mesmo arquivo | Ausência de deps reais | Edite `dare-dag.yaml` adicionando `depends_on` |
102
-
103
- ## Referências
104
-
105
- - Skill: `.cursor/rules/skill-dag-runner.mdc`
106
- - Schema: `DARE/dare-dag.yaml`
107
- - Canvas: `DARE/.canvas.md`
108
- - Specs: `DARE/EXECUTION/task-*.md`
109
-
110
- $ARGUMENTS
1
+ # Comando: /run-dag
2
+
3
+ ## Descrição
4
+
5
+ Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando o **Cursor
6
+ como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica em
7
+ `DARE/.canvas.md`.
8
+
9
+ > **Sem API keys.** Você (Cursor) usa o plano da IDE em que o usuário já está
10
+ > logado. O CLI apenas coordena estado, monta prompts e atualiza canvas.
11
+
12
+ ## Pré-requisitos
13
+
14
+ - `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
15
+ - Specs em `DARE/EXECUTION/task-<id>.md` geradas
16
+ - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
17
+
18
+ ## Instruções para o Cursor Composer
19
+
20
+ ### 1. Validar pré-condições
21
+
22
+ - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a rodar
23
+ `/generate-tasks` primeiro
24
+ - Leia o YAML e verifique:
25
+ - Sem ciclos
26
+ - Pelo menos 2 tasks no rank 0 (paralelismo lógico)
27
+ - Cada task tem `id` único, `complexity`, `subtask_prompt`
28
+
29
+ ### 2. Pegar próximas tasks
30
+
31
+ ```bash
32
+ dare execute --next
33
+ ```
34
+
35
+ O CLI imprime as tasks ready do rank atual com o prompt completo (já com
36
+ snippets dos outputs dos pais costurados). Use exatamente esses prompts.
37
+
38
+ ### 3. Sugerir abrir o canvas
39
+
40
+ Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em uma aba para
41
+ acompanhar o progresso ao vivo.
42
+
43
+ ### 4. Executar cada task
44
+
45
+ Para cada task ready:
46
+
47
+ 1. Leia `spec_file` se houver
48
+ 2. Implemente conforme o prompt
49
+ 3. Rode Ralph Loop: build → test → lint
50
+ 4. Registre o resultado:
51
+
52
+ ```bash
53
+ # Sucesso
54
+ dare execute --complete task-001 --output "Resumo + arquivos criados/modificados (paths)"
55
+
56
+ # Falha
57
+ dare execute --fail task-002 --reason "Mensagem clara da falha"
58
+ ```
59
+
60
+ ### 5. Avançar de rank
61
+
62
+ Após registrar todos os `--complete`/`--fail` do rank atual:
63
+
64
+ ```bash
65
+ dare execute --next
66
+ ```
67
+
68
+ Se aparece `✅ All tasks resolved`, todas as tasks terminaram. Caso contrário,
69
+ continue executando o próximo rank.
70
+
71
+ ### 6. Pós-execução
72
+
73
+ Ao terminar:
74
+
75
+ - Rode `dare execute --status` para ver o sumário final
76
+ - Se houver FAILED: leia `DARE/EXECUTION/task-<id>.md` da que falhou,
77
+ corrija a spec ou o prompt, depois:
78
+
79
+ ```bash
80
+ dare execute --reset task-002 # volta para PENDING
81
+ dare execute --next # tente novamente
82
+ ```
83
+
84
+ ## Comandos disponíveis
85
+
86
+ | Comando | Função |
87
+ |---------|--------|
88
+ | `dare execute --next` | Imprime tasks ready do rank atual com prompts |
89
+ | `dare execute --complete <id> --output "…"` | Marca DONE |
90
+ | `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
91
+ | `dare execute --reset <id>` | Volta para PENDING (retry) |
92
+ | `dare execute --status` | Snapshot do canvas + sumário |
93
+
94
+ ## Erros comuns
95
+
96
+ | Sintoma | Causa | Correção |
97
+ |---------|-------|----------|
98
+ | `dare-dag.yaml not found` | Não foi gerado | Rode `/generate-tasks` |
99
+ | Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
100
+ | Output truncado em 4000 chars | Cap normal | Faça a task escrever em arquivo, retorne resumo |
101
+ | Tudo no rank 0 disputa o mesmo arquivo | Ausência de deps reais | Edite `dare-dag.yaml` adicionando `depends_on` |
102
+
103
+ ## Referências
104
+
105
+ - Skill: `.cursor/rules/skill-dag-runner.mdc`
106
+ - Schema: `DARE/dare-dag.yaml`
107
+ - Canvas: `DARE/.canvas.md`
108
+ - Specs: `DARE/EXECUTION/task-*.md`
109
+
110
+ $ARGUMENTS
@@ -0,0 +1,263 @@
1
+ ---
2
+ description: Agent Experience (AX) — codifica padrões para desenvolvimento assistido por IA em três planos (Discovery, Usage, Defense). Garante que todo projeto DARE exponha sinais estruturados (llms.txt, OpenAPI, --json, rate limit) que agentes de código precisam.
3
+ globs: llms.txt,openapi.json,public/openapi.json,README.md,.env.example,DARE/DESIGN.md
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Skill: Agent Experience (AX) DARE
8
+
9
+ Você é um especialista em integração entre projetos e agentes de código (Claude Code, Cursor, Antigravity, MCP servers). Esta skill define o **padrão AX DARE** que todo projeto novo deve seguir e contra o qual todo projeto existente deve ser auditado.
10
+
11
+ ## Por que AX é design-first
12
+
13
+ Projetos podem ter código correto e arquitetura limpa mas **carecer de sinais estruturados** para agentes:
14
+ - Sem `llms.txt`, o agente precisa adivinhar a estrutura
15
+ - Sem OpenAPI, o agente faz parsing regex de docs HTML
16
+ - Sem `--json` no CLI, o agente lida com tabelas ASCII coloridas
17
+ - Sem rate limit, um prompt mal feito vira DDoS
18
+
19
+ A skill `dare-ax` codifica três planos:
20
+
21
+ | Plano | Pergunta que responde |
22
+ |---|---|
23
+ | **Discovery** | "Como o agente acha o que precisa?" |
24
+ | **Usage** | "Como o agente opera sem refactor desnecessário?" |
25
+ | **Defense** | "Como o projeto resiste a prompts ruins?" |
26
+
27
+ ---
28
+
29
+ ## Plano 1 — Discovery
30
+
31
+ ### `llms.txt` na raiz (obrigatório)
32
+
33
+ Arquivo público com a "ficha técnica" do projeto. Formato livre mas seções fixas:
34
+
35
+ ```
36
+ # <nome-do-projeto>
37
+
38
+ > <descrição em 1-2 frases — o que é, qual problema resolve>
39
+
40
+ ## Stack
41
+ - <linguagem + framework>
42
+ - <banco>
43
+ - <cache, fila, etc.>
44
+
45
+ ## Bootstrap
46
+ - `make setup` — instala deps + sobe Postgres/Redis local
47
+ - `make dev` — sobe aplicação
48
+ - `make test` — roda suite
49
+
50
+ ## Endpoints
51
+ - `GET /healthz` — liveness
52
+ - `GET /openapi.json` — spec completa
53
+ - `POST /api/login` — autenticação
54
+ ...
55
+
56
+ ## CLI (se aplicável)
57
+ - `<bin> users create --email <e> --json`
58
+ - `<bin> migrate run --json`
59
+
60
+ ## Docs internas
61
+ - DARE/DESIGN.md — requisitos
62
+ - DARE/BLUEPRINT.md — arquitetura
63
+ - docs/RUNBOOK.md — operações
64
+ ```
65
+
66
+ **Critério objetivo:** o arquivo deve ser navegável em < 2 minutos por um agente.
67
+
68
+ ### Estrutura previsível
69
+
70
+ | Pasta | Conteúdo |
71
+ |---|---|
72
+ | `src/` ou `crates/<projeto>-*/` | código de produção |
73
+ | `tests/` | testes (mirror de `src/` quando possível) |
74
+ | `docs/` | documentação humana extensa |
75
+ | `DARE/` | DESIGN.md, BLUEPRINT.md, EXECUTION/, dare-dag.yaml |
76
+ | `infra/` ou `deploy/` | Dockerfile, compose, k8s manifests |
77
+
78
+ Nomes esotéricos (`thing/`, `stuff/`, `misc/`) — proibidos.
79
+
80
+ ---
81
+
82
+ ## Plano 2 — Usage
83
+
84
+ ### `openapi.json` (HTTP)
85
+
86
+ Toda API HTTP deve expor spec OpenAPI 3.x em `/openapi.json` ou `public/openapi.json`.
87
+
88
+ | Stack | Como gerar |
89
+ |---|---|
90
+ | FastAPI | Automático (Pydantic models) |
91
+ | NestJS | `@nestjs/swagger` decorators |
92
+ | Laravel | `darkaonline/l5-swagger` |
93
+ | Rails | `grape-swagger` ou `rswag` |
94
+ | Rust/Axum | `utoipa` + `utoipa-swagger-ui` |
95
+ | Go/Gin | `swaggo/swag` |
96
+
97
+ **Antipattern:** escrever OpenAPI à mão em YAML — desatualiza no primeiro PR.
98
+
99
+ ### CLI com `--json`
100
+
101
+ Todo comando de CLI exposto a humanos deve ter alternativa machine-readable:
102
+
103
+ ```bash
104
+ # Para humanos
105
+ $ dare metrics
106
+ ┌──────┬──────────┐
107
+ │ ID │ Status │
108
+ ├──────┼──────────┤
109
+ │ M-01 │ PASS │
110
+ └──────┴──────────┘
111
+
112
+ # Para agentes
113
+ $ dare metrics --json
114
+ {"metrics":[{"id":"M-01","status":"PASS","value":1.0}]}
115
+ ```
116
+
117
+ Regras:
118
+ - JSON puro em stdout, sem cores ANSI, sem prompt
119
+ - Exit code 0 em sucesso, ≠ 0 em erro
120
+ - Schema documentado em `llms.txt`
121
+
122
+ ### `.env.example` versionado
123
+
124
+ Sempre commitado, com **chaves e tipos**, sem valores reais:
125
+
126
+ ```
127
+ DATABASE_URL=postgres://user:password@localhost:5432/dbname
128
+ REDIS_URL=redis://localhost:6379/0
129
+ JWT_SECRET=replace-with-256-bit-random-string
130
+ STRIPE_SECRET_KEY=sk_test_xxx
131
+ ```
132
+
133
+ `.env` real fica no `.gitignore`.
134
+
135
+ ---
136
+
137
+ ## Plano 3 — Defense
138
+
139
+ ### Rate limit
140
+
141
+ Endpoint público sem rate limit = vulnerável. Use o middleware da stack:
142
+
143
+ | Stack | Middleware típico |
144
+ |---|---|
145
+ | Rails | `rack-attack` |
146
+ | Node/Express | `express-rate-limit` |
147
+ | NestJS | `@nestjs/throttler` |
148
+ | FastAPI | `slowapi` |
149
+ | Rust/Axum | `tower-governor` |
150
+ | Go/Gin | `gin-contrib/limit` ou middleware custom |
151
+ | Laravel | `ThrottleRequests` middleware (nativo) |
152
+
153
+ **Padrão recomendado:**
154
+ - Login: 5 req / 15 min por IP + por usuário
155
+ - API autenticada geral: 100 req / min por usuário
156
+ - API pública: 30 req / min por IP
157
+
158
+ ### Validação de input
159
+
160
+ Sempre no servidor, mesmo que o frontend valide:
161
+
162
+ | Stack | Tooling |
163
+ |---|---|
164
+ | Laravel | FormRequest classes |
165
+ | FastAPI | Pydantic models |
166
+ | Node | Zod, class-validator |
167
+ | Rust/Axum | `serde` + `validator` crate |
168
+ | Rails | strong params + ActiveModel validations |
169
+ | Go | `go-playground/validator` |
170
+
171
+ ### Secrets só via env
172
+
173
+ Nada de `password = "..."` no código. Configure scanner no CI:
174
+
175
+ ```bash
176
+ pip install detect-secrets
177
+ detect-secrets scan > .secrets.baseline
178
+ ```
179
+
180
+ ### `llms.txt` sem secrets
181
+
182
+ `llms.txt` é público — o scanner do CI deve bloquear commits onde apareçam:
183
+ - `api_key=`, `password=`, `DATABASE_URL=postgres://user:pwd@`
184
+ - `Bearer ...`, `Authorization: ...`
185
+ - Chaves PEM, AWS access keys, GCP service account JSON inline
186
+
187
+ ---
188
+
189
+ ## Métricas obrigatórias (CI)
190
+
191
+ | ID | Métrica | Comando de validação |
192
+ |---|---|---|
193
+ | M-01 | `llms.txt` existe e é válido (sem secrets, seções obrigatórias) | `dare ax validate --llms` |
194
+ | M-02 | `openapi.json` ou `public/openapi.json` existe | `test -f public/openapi.json \|\| test -f openapi.json` |
195
+ | M-03 | CLI suporta `--json` | `cli --help \| grep -- '--json'` |
196
+ | M-04 | Rate limit configurado | grep pelo middleware da stack |
197
+
198
+ Falha M-01 ou M-04 em produção = release bloqueado.
199
+
200
+ ---
201
+
202
+ ## Antipatterns
203
+
204
+ | AP | Antipattern | Por que evitar |
205
+ |---|---|---|
206
+ | AP-01 | Docs fora do código | Divergem rapidamente |
207
+ | AP-02 | OpenAPI escrito à mão | Desatualiza no primeiro PR |
208
+ | AP-03 | CLI sem `--json` | Agentes fazem regex no output, frágil |
209
+ | AP-04 | Rate limit em dev, faltando em prod | Endpoint vira target de abuse |
210
+ | AP-05 | `llms.txt` com secrets | Credenciais em repositório público |
211
+ | AP-06 | CORS `*` em produção | Origem qualquer permitida |
212
+ | AP-07 | Validação só em API, esquecida em CLI | Agentes usam ambos |
213
+ | AP-08 | Configs opcionais sem default | Agentes precisam de defaults previsíveis |
214
+
215
+ ---
216
+
217
+ ## Aplicação por fase DARE
218
+
219
+ ### Design (`/generate-design`)
220
+
221
+ DESIGN.md deve ter seção **## Agent Experience (AX)** com:
222
+ - Como o projeto será descoberto por agentes
223
+ - Quais CLIs/endpoints expostos terão `--json`/OpenAPI
224
+ - Estratégia de rate limit para endpoints públicos
225
+
226
+ ### Blueprint (`/generate-blueprint`)
227
+
228
+ BLUEPRINT.md deve listar:
229
+ - Geração automática de OpenAPI (qual tooling)
230
+ - Middleware de rate limit por endpoint
231
+ - Estratégia de logging estruturado (JSON)
232
+
233
+ ### Tasks (`/generate-tasks`)
234
+
235
+ Crie tasks dedicadas:
236
+ - "Gerar `llms.txt`"
237
+ - "Expor OpenAPI em /openapi.json"
238
+ - "Adicionar `--json` ao CLI"
239
+ - "Configurar rate limit em endpoints públicos"
240
+
241
+ ### Execute (`/execute-task`)
242
+
243
+ Em qualquer task que mexa em endpoint HTTP ou comando CLI, valide:
244
+ - OpenAPI atualizado?
245
+ - `--json` disponível?
246
+ - Rate limit aplicado?
247
+
248
+ ---
249
+
250
+ ## Checklist final
251
+
252
+ - [ ] `llms.txt` na raiz com seções obrigatórias
253
+ - [ ] OpenAPI 3.x gerado a partir do código
254
+ - [ ] Todos os CLIs aceitam `--json`
255
+ - [ ] Rate limit em todos os endpoints públicos
256
+ - [ ] `.env.example` versionado sem valores reais
257
+ - [ ] Scanner de secrets no CI
258
+ - [ ] Seção AX em DESIGN.md
259
+ - [ ] Métricas M-01 a M-04 verificáveis em CI
260
+
261
+ ---
262
+
263
+ Skill licenciada MIT — parte do DARE Method v3.