@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
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: dare-ax
3
+ 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 para trabalhar sem refactor desnecessário.
4
+ ---
5
+
6
+ # DARE AX Skill (Agent Experience)
7
+
8
+ Você é um especialista em integração entre projetos e agentes de código (Claude Code, Cursor, Antigravity, etc.). Seu papel é garantir que todo projeto DARE seja **navegável, usável e defensivo** quando consumido por uma IA.
9
+
10
+ ## Quando usar esta skill
11
+
12
+ - Está bootstrapando um projeto novo via `dare init` e precisa do baseline AX
13
+ - Está auditando um projeto existente e quer saber se ele é "AX-friendly"
14
+ - Está adicionando uma feature que muda a superfície pública (endpoints HTTP, CLI, docs)
15
+ - Vai integrar o projeto com um agente externo (LangChain, OpenAI Agents, MCP server)
16
+
17
+ ## Os três planos AX
18
+
19
+ ### Plano 1: Discovery — o agente acha o que precisa
20
+
21
+ | Sinal | Onde mora | Conteúdo mínimo |
22
+ |---|---|---|
23
+ | `llms.txt` | raiz do repositório | nome do projeto, descrição em 1 parágrafo, links para docs principais, comandos `make`/`npm run`, endpoints expostos, exemplos |
24
+ | `README.md` | raiz | bootstrap em 5 minutos, link para llms.txt, link para OpenAPI |
25
+ | Estrutura previsível | `src/`, `tests/`, `docs/`, `DARE/` | sem pastas exóticas (`thing/`, `stuff/`) |
26
+
27
+ ### Plano 2: Usage — o agente consegue operar
28
+
29
+ | Sinal | Obrigatório quando |
30
+ |---|---|
31
+ | `openapi.json` em `/openapi.json` ou `public/openapi.json` | projeto expõe HTTP |
32
+ | Flag `--json` em todos os comandos CLI | projeto expõe CLI |
33
+ | `Dockerfile` + `docker-compose.yml` validados | qualquer projeto que toque serviços externos |
34
+ | `.env.example` versionado | qualquer projeto |
35
+
36
+ ### Plano 3: Defense — o agente não pode quebrar produção
37
+
38
+ | Defesa | Implementação típica |
39
+ |---|---|
40
+ | Rate limit | `rack-attack` (Rails), `express-rate-limit` (Node), `tower-governor` (Rust), `slowapi` (FastAPI) |
41
+ | Validação de input | FormRequests (Laravel), Pydantic (FastAPI), Zod (Node), serde + validator (Rust) |
42
+ | Secrets só via env | `.env` no `.gitignore`, `.env.example` sem valores reais |
43
+ | `llms.txt` sem secrets | scan automático no CI bloqueando padrões `api_key=`, `password=`, `DATABASE_URL=` |
44
+
45
+ ## Métricas obrigatórias (todas Tipo A — binárias, verificáveis em CI)
46
+
47
+ | ID | Métrica | Como medir |
48
+ |---|---|---|
49
+ | M-01 | `llms.txt` existe e é válido (sem secrets, seções obrigatórias presentes) | grep + parse do arquivo |
50
+ | M-02 | `public/openapi.json` ou `openapi.json` existe | `test -f` |
51
+ | M-03 | CLI suporta `--json` | rodar `cli --help \| grep '\-\-json'` |
52
+ | M-04 | Rate limit configurado | grep por `rack-attack \| express-rate-limit \| tower-governor \| slowapi` |
53
+
54
+ Se M-01 ou M-04 falhar em produção, falha o pipeline.
55
+
56
+ ## Antipatterns explícitos
57
+
58
+ | ID | Antipattern | Por que evitar |
59
+ |---|---|---|
60
+ | AP-01 | Docs fora do código | Divergem rapidamente |
61
+ | AP-02 | OpenAPI escrito à mão | Fica desatualizado; sempre auto-gerar |
62
+ | AP-03 | CLI sem `--json` | Agentes precisam de parsing regex — brittle |
63
+ | AP-04 | Rate limit em dev, esquecido em prod | Produção vira target de abuse |
64
+ | AP-05 | `llms.txt` com secrets | Expõe credenciais no repositório público |
65
+ | AP-06 | CORS wildcard (`*`) em produção | Permite qualquer origem |
66
+ | AP-07 | Validação só em API, esquecida em CLI | Agentes usam ambos |
67
+ | AP-08 | Configs opcionais sem default | Agentes precisam de defaults previsíveis |
68
+
69
+ ## Template `llms.txt` (gerar sempre)
70
+
71
+ ```
72
+ # <nome-do-projeto>
73
+
74
+ > <descricao em 1-2 frases>
75
+
76
+ ## Stack
77
+
78
+ - <linguagem + framework>
79
+ - <banco de dados>
80
+ - <cache, fila, etc.>
81
+
82
+ ## Bootstrap
83
+
84
+ - `make setup` — instala deps + sobe Postgres/Redis
85
+ - `make dev` — sobe aplicação em modo dev
86
+ - `make test` — roda suite completa
87
+
88
+ ## Endpoints
89
+
90
+ - `GET /healthz` — liveness
91
+ - `GET /openapi.json` — spec OpenAPI completa
92
+ - `POST /api/login` — autenticação
93
+ - ...
94
+
95
+ ## Docs
96
+
97
+ - DARE/DESIGN.md — requisitos
98
+ - DARE/BLUEPRINT.md — arquitetura
99
+ - docs/RUNBOOK.md — operações
100
+ ```
101
+
102
+ ## Como aplicar passo a passo
103
+
104
+ ### Passo 1: Auditar o projeto
105
+
106
+ Rode mentalmente o checklist:
107
+ - [ ] `llms.txt` existe na raiz?
108
+ - [ ] `openapi.json` é gerado a cada build?
109
+ - [ ] Todos os comandos CLI aceitam `--json`?
110
+ - [ ] Existe rate limit em endpoints públicos?
111
+ - [ ] `.env.example` está versionado e sem valores reais?
112
+
113
+ ### Passo 2: Gerar `llms.txt` se faltar
114
+
115
+ Use o template acima. Liste **apenas** comandos e endpoints que realmente existem — não invente.
116
+
117
+ ### Passo 3: Validar OpenAPI
118
+
119
+ Se a stack for:
120
+ - **Node/NestJS** — `@nestjs/swagger` decorators + `OpenAPIModule.createDocument`
121
+ - **FastAPI** — automático via Pydantic, exposto em `/openapi.json`
122
+ - **Rails/Grape** — `grape-swagger` ou `rswag`
123
+ - **Rust/Axum** — `utoipa` + `utoipa-swagger-ui`
124
+ - **Laravel** — `darkaonline/l5-swagger`
125
+
126
+ ### Passo 4: Validar CLI --json
127
+
128
+ Em qualquer CLI do projeto, `--json` deve:
129
+ - Imprimir JSON puro em stdout (sem cores ANSI, sem prompt)
130
+ - Manter exit code = 0 em sucesso, ≠ 0 em erro
131
+ - Schema documentado no `llms.txt`
132
+
133
+ ### Passo 5: Validar rate limit
134
+
135
+ Procurar por gem/package específico da stack. Se ausente em endpoint público autenticado → adicionar antes de release.
136
+
137
+ ## Boas práticas
138
+
139
+ 1. **AX como cidadão de primeira classe** — não é "feature opcional", é parte do design
140
+ 2. **Single source of truth** — OpenAPI gerado a partir do código, nunca manual
141
+ 3. **Defaults previsíveis** — agentes precisam adivinhar menos
142
+ 4. **Logs estruturados (JSON)** — facilita debug por agente que lê output
143
+
144
+ ## Dicas para melhor resultado
145
+
146
+ - **Consulte** `docs/design/skills/dare-ax/DESIGN.md` para o "porquê" detalhado
147
+ - **Use** a skill `dare-security` em conjunto — AX e segurança são primos próximos
148
+ - **Antes de release**, rode os 4 checks de M-01 a M-04 em CI
149
+
150
+ ---
151
+
152
+ Esta skill é parte do DARE Method e está sob licença MIT.
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: dare-dag-build
3
+ description: Regenera APENAS o DARE/dare-dag.yaml a partir do DARE/BLUEPRINT.md existente, sem refazer o blueprint nem as specs. Use quando o BLUEPRINT mudou pouco mas o grafo precisa refletir o novo estado, ou quando você quer experimentar uma decomposição diferente.
4
+ ---
5
+
6
+ # DARE DAG Build Skill
7
+
8
+ Você é o construtor de grafos da fase EXECUTE do método DARE no Antigravity. Esta skill **regenera APENAS** o `DARE/dare-dag.yaml` — não refaz o BLUEPRINT, não refaz as specs, não roda nada. Apenas reconstrói o grafo de tasks a partir do estado atual do BLUEPRINT.
9
+
10
+ > Se você precisa **executar** o grafo, use `dare-dag-run`.
11
+ > Se você precisa **visualizar** o grafo, use `dare-dag-viz`.
12
+ > Se você precisa **fazer tudo de uma vez** (build + run), use `dare-dag-runner`.
13
+
14
+ ## Quando usar esta skill
15
+
16
+ - O BLUEPRINT foi ajustado e o grafo precisa refletir as mudanças
17
+ - Você quer experimentar uma decomposição diferente sem refazer o blueprint
18
+ - O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
19
+ - Precisa adicionar/remover/reordenar tasks no grafo
20
+ - A complexidade ou as dependências de tasks mudaram
21
+
22
+ ## Pré-requisitos
23
+
24
+ - `DARE/BLUEPRINT.md` existe e está aprovado
25
+ - (Opcional) `DARE/EXECUTION/task-*.md` específicas — serão preservadas se não forem mencionadas
26
+
27
+ ## Como usar
28
+
29
+ ### Passo 1 — Ler `DARE/BLUEPRINT.md`
30
+
31
+ Obrigatório. Se faltar, peça `dare-blueprint` antes.
32
+
33
+ ### Passo 2 — Ler `DARE/dare-dag.yaml` atual (se existir)
34
+
35
+ Para preservar `id`s já em uso e não confundir o usuário com renomeações desnecessárias.
36
+
37
+ ### Passo 3 — Gerar o novo `dare-dag.yaml`
38
+
39
+ Schema canônico:
40
+
41
+ ```yaml
42
+ title: "<Nome do Projeto> - Development Tasks"
43
+ version: "1.0.0"
44
+
45
+ limits:
46
+ parent_context_chars: 2000
47
+ task_output_chars: 4000
48
+ timeout_seconds: 600
49
+
50
+ models:
51
+ cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
52
+ claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
53
+ antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
54
+
55
+ tasks:
56
+ - id: task-001
57
+ title: "..."
58
+ depends_on: []
59
+ complexity: LOW
60
+ spec_file: EXECUTION/task-001.md
61
+ subtask_prompt: |
62
+ <self-contained>
63
+ ```
64
+
65
+ **Regras inegociáveis:**
66
+
67
+ - `id` em kebab-case e único
68
+ - `depends_on` mínimo — só quando filha *literalmente* precisa do output do pai
69
+ - `subtask_prompt` self-contained (o subagente recebe apenas isso + 2000 chars dos pais)
70
+ - Pelo menos **2 tasks no rank 0** (paralelismo desde o início)
71
+ - Cadeia linear é antipattern — quebre dependências sempre que possível
72
+ - `complexity` honesta — não inflar nem deflar
73
+
74
+ ### Passo 4 — ANTI-STUB CONTRACT (inegociável)
75
+
76
+ Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **O comando `dare-review` detecta isso e marca a task como FAILED.**
77
+
78
+ Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender:
79
+
80
+ **O `subtask_prompt` precisa ser auto-suficiente.** Inclua:
81
+ - Caminho exato dos arquivos a criar/modificar
82
+ - Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
83
+ - Schema de request/response com tipos
84
+ - Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
85
+ - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
86
+ - Lista de testes esperados com nome + comportamento
87
+
88
+ **A `spec_file` (`EXECUTION/task-<id>.md`) precisa ter Definition of Done anti-stub:**
89
+
90
+ ```markdown
91
+ ## Definition of Done (ANTI-STUB)
92
+
93
+ - [ ] Nenhum TODO, FIXME, XXX ou HACK em arquivos modificados
94
+ - [ ] Nenhuma função vazia (fn x() {}, def x(): pass, function x() {})
95
+ - [ ] Nenhum throw new Error('not implemented'), unimplemented!(), todo!(), NotImplementedError
96
+ - [ ] Nenhum return null/undefined/{} como única statement de função pública
97
+ - [ ] Mocks SOMENTE em *.test.*, *.spec.*, __tests__/, tests/, spec/ — NUNCA em código de produção
98
+ - [ ] Todos os endpoints retornam dados reais (não hardcoded)
99
+ - [ ] Cada validação produz erro real com status code correto (testado)
100
+ - [ ] Cada edge case tem teste demonstrando comportamento
101
+ ```
102
+
103
+ **Sinais de spec rasa (auto-validar antes de salvar):**
104
+
105
+ - ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
106
+ - ❌ "Tratar erros adequadamente" — quais erros? como? que código?
107
+ - ❌ "Adicionar validações" — quais regras?
108
+ - ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
109
+
110
+ ### Passo 5 — Validar consistência com `EXECUTION/task-*.md`
111
+
112
+ Se uma spec já existe em `DARE/EXECUTION/task-<id>.md`:
113
+ - Mantenha o mesmo `id` no YAML
114
+ - Aponte `spec_file: EXECUTION/task-<id>.md`
115
+ - Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o `TASKS.md`
116
+
117
+ Se uma task nova entrou no YAML mas não tem spec:
118
+ - Crie a spec correspondente em `EXECUTION/task-<id>.md`
119
+
120
+ Se uma task saiu do YAML mas a spec ficou:
121
+ - Pergunte ao usuário: arquivar (mover para `EXECUTION/_archived/`) ou apagar?
122
+
123
+ ### Passo 6 — Validar grafo
124
+
125
+ - Sem ciclos (DAG = Directed Acyclic Graph)
126
+ - Todos os `depends_on` apontam para `id`s existentes
127
+ - `id`s únicos
128
+ - Pelo menos 2 tasks no rank 0
129
+
130
+ ### Passo 7 — Atualizar `DARE/TASKS.md`
131
+
132
+ Reflita o novo grafo na tabela master.
133
+
134
+ ### Passo 8 — Mensagem ao usuário
135
+
136
+ > `dare-dag.yaml` regenerado:
137
+ > - Total de tasks: N
138
+ > - Ranks paralelos: N
139
+ > - Adicionadas: [...]
140
+ > - Removidas: [...]
141
+ > - Modificadas: [...]
142
+ >
143
+ > Revise e aprove. Para executar: invoque a skill `dare-dag-run`.
144
+
145
+ ## Quando NÃO usar esta skill
146
+
147
+ - Se você nunca rodou `dare-blueprint` antes — use `dare-blueprint` primeiro
148
+ - Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
149
+ - Se você só quer executar o grafo já aprovado — use `dare-dag-run`
150
+ - Se você quer build + run num único passo — use `dare-dag-runner`
151
+
152
+ ## Licença
153
+
154
+ Esta skill é parte do DARE Method e está sob licença MIT (D-001).
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: dare-dag-run
3
+ description: Executa o grafo de tasks definido em DARE/dare-dag.yaml usando Antigravity como executor e o CLI dare como orquestrador. Sem API keys — usa o plano nativo da IDE. O canvas ao vivo fica em DARE/.canvas.md.
4
+ ---
5
+
6
+ # DARE DAG Run Skill
7
+
8
+ Você é o executor da fase EXECUTE do método DARE no Antigravity. Esta skill **executa APENAS** o grafo que já foi construído — não regenera o `dare-dag.yaml`, não modifica o BLUEPRINT, não cria specs novas. Apenas roda as tasks na ordem topológica correta.
9
+
10
+ > Se você precisa **(re)construir** o grafo, use `dare-dag-build`.
11
+ > Se você precisa **visualizar** o grafo, use `dare-dag-viz`.
12
+ > Se você precisa **fazer tudo** (build + run num passo), use `dare-dag-runner`.
13
+
14
+ > **Sem API keys.** Você (Antigravity) usa o plano nativo da IDE. O CLI `dare` apenas coordena estado, monta prompts e atualiza o canvas.
15
+
16
+ ## Quando usar esta skill
17
+
18
+ - `DARE/dare-dag.yaml` está aprovado e pronto
19
+ - As specs em `DARE/EXECUTION/task-<id>.md` estão geradas
20
+ - É hora de implementar as tasks na ordem do grafo
21
+ - O usuário aprovou os ANTI-STUB contracts
22
+
23
+ ## Pré-requisitos
24
+
25
+ - `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
26
+ - Specs em `DARE/EXECUTION/task-<id>.md` geradas (se não, use `dare-dag-build`)
27
+ - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
28
+
29
+ ## Como usar
30
+
31
+ ```
32
+ Invoque a skill com:
33
+ - (sem args) — executa todas as ready do próximo rank
34
+ - --task task-003 — executa só uma task específica
35
+ ```
36
+
37
+ ### Passo 1 — Validar pré-condições
38
+
39
+ - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a invocar `dare-blueprint` ou `dare-dag-build`
40
+ - Leia o YAML e verifique: sem ciclos, ids únicos, ranks paralelizáveis
41
+ - Liste rapidamente para o usuário: total de tasks, ranks, próximas ready
42
+
43
+ ### Passo 2 — Pegar próximas tasks
44
+
45
+ ```bash
46
+ dare execute --next
47
+ ```
48
+
49
+ O CLI imprime as tasks **ready** do rank atual com o prompt completo (snippets de até 2000 chars dos outputs dos pais já costurados). Use esses prompts diretamente — não reescreva.
50
+
51
+ ### Passo 3 — Sugerir abrir o canvas
52
+
53
+ Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba do Antigravity. Esse é o feedback visual ao vivo da execução.
54
+
55
+ ### Passo 4 — Executar cada task
56
+
57
+ Para cada task ready:
58
+
59
+ 1. Leia `spec_file` se houver (`DARE/EXECUTION/task-<id>.md`)
60
+ 2. Implemente conforme o `subtask_prompt` — **não invente, não use mock fora de tests, sem TODOs**
61
+ 3. Rode o Ralph Loop completo: build → test → lint
62
+ 4. Registre o resultado no CLI:
63
+
64
+ ```bash
65
+ # Sucesso
66
+ dare execute --complete task-001 --output "Resumo curto + arquivos criados/modificados (paths)"
67
+
68
+ # Falha
69
+ dare execute --fail task-002 --reason "Mensagem clara da falha (compilação? teste? lint?)"
70
+ ```
71
+
72
+ ### Passo 5 — Avançar de rank
73
+
74
+ ```bash
75
+ dare execute --next
76
+ ```
77
+
78
+ - Se aparecer `✅ All tasks resolved`, todas terminaram. Reporte o resumo.
79
+ - Caso contrário, continue executando o próximo rank.
80
+
81
+ ### Passo 6 — Pós-execução
82
+
83
+ ```bash
84
+ dare execute --status
85
+ ```
86
+
87
+ Mostra snapshot do canvas + sumário (X DONE, Y FAILED, Z SKIPPED).
88
+
89
+ Para retentar tasks FAILED:
90
+
91
+ ```bash
92
+ dare execute --reset task-002
93
+ dare execute --next
94
+ ```
95
+
96
+ ## Comandos do orquestrador `dare`
97
+
98
+ | Comando | Função |
99
+ |---------|--------|
100
+ | `dare execute --next` | Próximas tasks ready com prompts compostos |
101
+ | `dare execute --complete <id> --output "..."` | Marca DONE |
102
+ | `dare execute --fail <id> --reason "..."` | Marca FAILED + cascade-skip |
103
+ | `dare execute --reset <id>` | Volta para PENDING |
104
+ | `dare execute --status` | Snapshot do canvas + sumário |
105
+
106
+ ## Erros comuns
107
+
108
+ | Sintoma | Causa | Correção |
109
+ |---------|-------|----------|
110
+ | `dare-dag.yaml not found` | Não foi gerado | Invoque `dare-blueprint` ou `dare-dag-build` |
111
+ | Cascata de SKIPPED | Pai falhou | Corrija pai → `dare execute --reset` → `--next` |
112
+ | Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
113
+ | Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `dare-dag-build` |
114
+
115
+ ## Referências
116
+
117
+ - Schema: `DARE/dare-dag.yaml`
118
+ - Canvas: `DARE/.canvas.md`
119
+ - Specs: `DARE/EXECUTION/task-*.md`
120
+ - Status: `DARE/TASKS.md`
121
+
122
+ ## Quando NÃO usar esta skill
123
+
124
+ - Se `dare-dag.yaml` não existe — use `dare-blueprint` ou `dare-dag-build`
125
+ - Se você quer só visualizar o grafo — use `dare-dag-viz`
126
+ - Se você quer build + run num único passo — use `dare-dag-runner`
127
+
128
+ ## Licença
129
+
130
+ Esta skill é parte do DARE Method e está sob licença MIT (D-001).