@dewtech/dare-cli 3.3.0 → 3.5.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 (750) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +764 -764
  3. package/dist/__tests__/confidence.test.js +13 -13
  4. package/dist/__tests__/dag-converter.test.js +56 -56
  5. package/dist/__tests__/dag-runner/buildLocateContext.test.d.ts +2 -0
  6. package/dist/__tests__/dag-runner/buildLocateContext.test.d.ts.map +1 -0
  7. package/dist/__tests__/dag-runner/buildLocateContext.test.js +53 -0
  8. package/dist/__tests__/dag-runner/buildLocateContext.test.js.map +1 -0
  9. package/dist/__tests__/dual-graph.test.d.ts +2 -0
  10. package/dist/__tests__/dual-graph.test.d.ts.map +1 -0
  11. package/dist/__tests__/dual-graph.test.js +141 -0
  12. package/dist/__tests__/dual-graph.test.js.map +1 -0
  13. package/dist/__tests__/graphrag/contract/traverse.contract.d.ts +9 -0
  14. package/dist/__tests__/graphrag/contract/traverse.contract.d.ts.map +1 -0
  15. package/dist/__tests__/graphrag/contract/traverse.contract.js +58 -0
  16. package/dist/__tests__/graphrag/contract/traverse.contract.js.map +1 -0
  17. package/dist/__tests__/graphrag/contract/traverse.contract.test.d.ts +2 -0
  18. package/dist/__tests__/graphrag/contract/traverse.contract.test.d.ts.map +1 -0
  19. package/dist/__tests__/graphrag/contract/traverse.contract.test.js +100 -0
  20. package/dist/__tests__/graphrag/contract/traverse.contract.test.js.map +1 -0
  21. package/dist/__tests__/graphrag/factory.test.js +10 -1
  22. package/dist/__tests__/graphrag/factory.test.js.map +1 -1
  23. package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.d.ts +11 -0
  24. package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.d.ts.map +1 -0
  25. package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.js +34 -0
  26. package/dist/__tests__/graphrag/fixtures/dual-graph/build-fixture-graph.js.map +1 -0
  27. package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.d.ts +2 -0
  28. package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.d.ts.map +1 -0
  29. package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.js +46 -0
  30. package/dist/__tests__/graphrag/fixtures/dual-graph/fixtures.test.js.map +1 -0
  31. package/dist/__tests__/graphrag/graph-rag.test.js +31 -0
  32. package/dist/__tests__/graphrag/graph-rag.test.js.map +1 -1
  33. package/dist/__tests__/graphrag/json-graph.test.js +57 -0
  34. package/dist/__tests__/graphrag/json-graph.test.js.map +1 -1
  35. package/dist/__tests__/graphrag/neo4j-graph.test.d.ts +2 -0
  36. package/dist/__tests__/graphrag/neo4j-graph.test.d.ts.map +1 -0
  37. package/dist/__tests__/graphrag/neo4j-graph.test.js +104 -0
  38. package/dist/__tests__/graphrag/neo4j-graph.test.js.map +1 -0
  39. package/dist/__tests__/graphrag/neo4j-persistence.test.d.ts +2 -0
  40. package/dist/__tests__/graphrag/neo4j-persistence.test.d.ts.map +1 -0
  41. package/dist/__tests__/graphrag/neo4j-persistence.test.js +110 -0
  42. package/dist/__tests__/graphrag/neo4j-persistence.test.js.map +1 -0
  43. package/dist/__tests__/mcp-server/server.test.js +3 -16
  44. package/dist/__tests__/mcp-server/server.test.js.map +1 -1
  45. package/dist/__tests__/project-generator.test.js +2 -2
  46. package/dist/__tests__/project-generator.test.js.map +1 -1
  47. package/dist/__tests__/refine.test.js +49 -49
  48. package/dist/__tests__/reverse-collection.test.js +6 -6
  49. package/dist/__tests__/review.test.js +38 -38
  50. package/dist/__tests__/security-hardening.test.d.ts +2 -0
  51. package/dist/__tests__/security-hardening.test.d.ts.map +1 -0
  52. package/dist/__tests__/security-hardening.test.js +101 -0
  53. package/dist/__tests__/security-hardening.test.js.map +1 -0
  54. package/dist/__tests__/validate.test.js +65 -65
  55. package/dist/bin/dare.js +0 -0
  56. package/dist/commands/__tests__/execute.telemetry.spec.js +9 -0
  57. package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -1
  58. package/dist/commands/__tests__/graph-viz-layers.test.d.ts +2 -0
  59. package/dist/commands/__tests__/graph-viz-layers.test.d.ts.map +1 -0
  60. package/dist/commands/__tests__/graph-viz-layers.test.js +36 -0
  61. package/dist/commands/__tests__/graph-viz-layers.test.js.map +1 -0
  62. package/dist/commands/__tests__/impact.test.d.ts +2 -0
  63. package/dist/commands/__tests__/impact.test.d.ts.map +1 -0
  64. package/dist/commands/__tests__/impact.test.js +26 -0
  65. package/dist/commands/__tests__/impact.test.js.map +1 -0
  66. package/dist/commands/__tests__/init-validation.test.d.ts +2 -0
  67. package/dist/commands/__tests__/init-validation.test.d.ts.map +1 -0
  68. package/dist/commands/__tests__/init-validation.test.js +81 -0
  69. package/dist/commands/__tests__/init-validation.test.js.map +1 -0
  70. package/dist/commands/__tests__/init.integration.spec.js +6 -4
  71. package/dist/commands/__tests__/init.integration.spec.js.map +1 -1
  72. package/dist/commands/__tests__/init.spec.d.ts +2 -0
  73. package/dist/commands/__tests__/init.spec.d.ts.map +1 -0
  74. package/dist/commands/__tests__/init.spec.js +88 -0
  75. package/dist/commands/__tests__/init.spec.js.map +1 -0
  76. package/dist/commands/__tests__/locate.test.d.ts +2 -0
  77. package/dist/commands/__tests__/locate.test.d.ts.map +1 -0
  78. package/dist/commands/__tests__/locate.test.js +35 -0
  79. package/dist/commands/__tests__/locate.test.js.map +1 -0
  80. package/dist/commands/__tests__/owners.test.d.ts +2 -0
  81. package/dist/commands/__tests__/owners.test.d.ts.map +1 -0
  82. package/dist/commands/__tests__/owners.test.js +34 -0
  83. package/dist/commands/__tests__/owners.test.js.map +1 -0
  84. package/dist/commands/__tests__/trace.test.d.ts +2 -0
  85. package/dist/commands/__tests__/trace.test.d.ts.map +1 -0
  86. package/dist/commands/__tests__/trace.test.js +29 -0
  87. package/dist/commands/__tests__/trace.test.js.map +1 -0
  88. package/dist/commands/blueprint.js +122 -122
  89. package/dist/commands/design.js +20 -20
  90. package/dist/commands/execute.d.ts.map +1 -1
  91. package/dist/commands/execute.js +11 -6
  92. package/dist/commands/execute.js.map +1 -1
  93. package/dist/commands/graph-queries.d.ts +48 -0
  94. package/dist/commands/graph-queries.d.ts.map +1 -0
  95. package/dist/commands/graph-queries.js +204 -0
  96. package/dist/commands/graph-queries.js.map +1 -0
  97. package/dist/commands/graph.d.ts +13 -0
  98. package/dist/commands/graph.d.ts.map +1 -1
  99. package/dist/commands/graph.js +212 -8
  100. package/dist/commands/graph.js.map +1 -1
  101. package/dist/commands/init-validation.d.ts +22 -0
  102. package/dist/commands/init-validation.d.ts.map +1 -0
  103. package/dist/commands/init-validation.js +54 -0
  104. package/dist/commands/init-validation.js.map +1 -0
  105. package/dist/commands/init.d.ts.map +1 -1
  106. package/dist/commands/init.js +26 -10
  107. package/dist/commands/init.js.map +1 -1
  108. package/dist/dag-runner/__tests__/fixtures/src/math.d.ts +3 -0
  109. package/dist/dag-runner/__tests__/fixtures/src/math.d.ts.map +1 -0
  110. package/dist/dag-runner/__tests__/fixtures/src/math.js +7 -0
  111. package/dist/dag-runner/__tests__/fixtures/src/math.js.map +1 -0
  112. package/dist/dag-runner/__tests__/graph-ingest-symbols.test.d.ts +2 -0
  113. package/dist/dag-runner/__tests__/graph-ingest-symbols.test.d.ts.map +1 -0
  114. package/dist/dag-runner/__tests__/graph-ingest-symbols.test.js +81 -0
  115. package/dist/dag-runner/__tests__/graph-ingest-symbols.test.js.map +1 -0
  116. package/dist/dag-runner/graph-ingest.d.ts.map +1 -1
  117. package/dist/dag-runner/graph-ingest.js +46 -0
  118. package/dist/dag-runner/graph-ingest.js.map +1 -1
  119. package/dist/dag-runner/graph-locate.d.ts +11 -0
  120. package/dist/dag-runner/graph-locate.d.ts.map +1 -0
  121. package/dist/dag-runner/graph-locate.js +74 -0
  122. package/dist/dag-runner/graph-locate.js.map +1 -0
  123. package/dist/dag-runner/run_dag.d.ts +3 -1
  124. package/dist/dag-runner/run_dag.d.ts.map +1 -1
  125. package/dist/dag-runner/run_dag.js +2 -1
  126. package/dist/dag-runner/run_dag.js.map +1 -1
  127. package/dist/dag-runner/utils/stitch-context.d.ts +3 -1
  128. package/dist/dag-runner/utils/stitch-context.d.ts.map +1 -1
  129. package/dist/dag-runner/utils/stitch-context.js +8 -2
  130. package/dist/dag-runner/utils/stitch-context.js.map +1 -1
  131. package/dist/graphrag/__tests__/code-index.test.d.ts +2 -0
  132. package/dist/graphrag/__tests__/code-index.test.d.ts.map +1 -0
  133. package/dist/graphrag/__tests__/code-index.test.js +75 -0
  134. package/dist/graphrag/__tests__/code-index.test.js.map +1 -0
  135. package/dist/graphrag/__tests__/fixtures/code-index/sample.d.ts +5 -0
  136. package/dist/graphrag/__tests__/fixtures/code-index/sample.d.ts.map +1 -0
  137. package/dist/graphrag/__tests__/fixtures/code-index/sample.js +10 -0
  138. package/dist/graphrag/__tests__/fixtures/code-index/sample.js.map +1 -0
  139. package/dist/graphrag/__tests__/locate.test.d.ts +2 -0
  140. package/dist/graphrag/__tests__/locate.test.d.ts.map +1 -0
  141. package/dist/graphrag/__tests__/locate.test.js +43 -0
  142. package/dist/graphrag/__tests__/locate.test.js.map +1 -0
  143. package/dist/graphrag/__tests__/requirement-ingest.test.d.ts +2 -0
  144. package/dist/graphrag/__tests__/requirement-ingest.test.d.ts.map +1 -0
  145. package/dist/graphrag/__tests__/requirement-ingest.test.js +66 -0
  146. package/dist/graphrag/__tests__/requirement-ingest.test.js.map +1 -0
  147. package/dist/graphrag/__tests__/traverse.test.d.ts +2 -0
  148. package/dist/graphrag/__tests__/traverse.test.d.ts.map +1 -0
  149. package/dist/graphrag/__tests__/traverse.test.js +71 -0
  150. package/dist/graphrag/__tests__/traverse.test.js.map +1 -0
  151. package/dist/graphrag/__tests__/types.test.d.ts +2 -0
  152. package/dist/graphrag/__tests__/types.test.d.ts.map +1 -0
  153. package/dist/graphrag/__tests__/types.test.js +52 -0
  154. package/dist/graphrag/__tests__/types.test.js.map +1 -0
  155. package/dist/graphrag/code-index.d.ts +15 -0
  156. package/dist/graphrag/code-index.d.ts.map +1 -0
  157. package/dist/graphrag/code-index.js +205 -0
  158. package/dist/graphrag/code-index.js.map +1 -0
  159. package/dist/graphrag/factory.d.ts.map +1 -1
  160. package/dist/graphrag/factory.js +5 -0
  161. package/dist/graphrag/factory.js.map +1 -1
  162. package/dist/graphrag/graph-rag.d.ts +6 -2
  163. package/dist/graphrag/graph-rag.d.ts.map +1 -1
  164. package/dist/graphrag/graph-rag.js +64 -26
  165. package/dist/graphrag/graph-rag.js.map +1 -1
  166. package/dist/graphrag/index.d.ts +8 -2
  167. package/dist/graphrag/index.d.ts.map +1 -1
  168. package/dist/graphrag/index.js +5 -1
  169. package/dist/graphrag/index.js.map +1 -1
  170. package/dist/graphrag/json-graph.d.ts +8 -0
  171. package/dist/graphrag/json-graph.d.ts.map +1 -1
  172. package/dist/graphrag/json-graph.js +50 -4
  173. package/dist/graphrag/json-graph.js.map +1 -1
  174. package/dist/graphrag/knowledge-graph.d.ts +8 -3
  175. package/dist/graphrag/knowledge-graph.d.ts.map +1 -1
  176. package/dist/graphrag/neo4j-graph.d.ts +19 -18
  177. package/dist/graphrag/neo4j-graph.d.ts.map +1 -1
  178. package/dist/graphrag/neo4j-graph.js +164 -38
  179. package/dist/graphrag/neo4j-graph.js.map +1 -1
  180. package/dist/graphrag/requirement-ingest.d.ts +15 -0
  181. package/dist/graphrag/requirement-ingest.d.ts.map +1 -0
  182. package/dist/graphrag/requirement-ingest.js +158 -0
  183. package/dist/graphrag/requirement-ingest.js.map +1 -0
  184. package/dist/graphrag/traverse.d.ts +5 -0
  185. package/dist/graphrag/traverse.d.ts.map +1 -0
  186. package/dist/graphrag/traverse.js +139 -0
  187. package/dist/graphrag/traverse.js.map +1 -0
  188. package/dist/graphrag/types.d.ts +60 -2
  189. package/dist/graphrag/types.d.ts.map +1 -1
  190. package/dist/graphrag/types.js +34 -1
  191. package/dist/graphrag/types.js.map +1 -1
  192. package/dist/mcp-server/__tests__/auth.test.d.ts +2 -0
  193. package/dist/mcp-server/__tests__/auth.test.d.ts.map +1 -0
  194. package/dist/mcp-server/__tests__/auth.test.js +72 -0
  195. package/dist/mcp-server/__tests__/auth.test.js.map +1 -0
  196. package/dist/mcp-server/__tests__/boot-config.test.d.ts +2 -0
  197. package/dist/mcp-server/__tests__/boot-config.test.d.ts.map +1 -0
  198. package/dist/mcp-server/__tests__/boot-config.test.js +29 -0
  199. package/dist/mcp-server/__tests__/boot-config.test.js.map +1 -0
  200. package/dist/mcp-server/__tests__/error-sanitize.test.d.ts +2 -0
  201. package/dist/mcp-server/__tests__/error-sanitize.test.d.ts.map +1 -0
  202. package/dist/mcp-server/__tests__/error-sanitize.test.js +66 -0
  203. package/dist/mcp-server/__tests__/error-sanitize.test.js.map +1 -0
  204. package/dist/mcp-server/__tests__/mcp-graph.test.d.ts +2 -0
  205. package/dist/mcp-server/__tests__/mcp-graph.test.d.ts.map +1 -0
  206. package/dist/mcp-server/__tests__/mcp-graph.test.js +85 -0
  207. package/dist/mcp-server/__tests__/mcp-graph.test.js.map +1 -0
  208. package/dist/mcp-server/__tests__/path-confinement.test.d.ts +2 -0
  209. package/dist/mcp-server/__tests__/path-confinement.test.d.ts.map +1 -0
  210. package/dist/mcp-server/__tests__/path-confinement.test.js +135 -0
  211. package/dist/mcp-server/__tests__/path-confinement.test.js.map +1 -0
  212. package/dist/mcp-server/bin/server.js +18 -6
  213. package/dist/mcp-server/bin/server.js.map +1 -1
  214. package/dist/mcp-server/boot-config.d.ts +6 -0
  215. package/dist/mcp-server/boot-config.d.ts.map +1 -0
  216. package/dist/mcp-server/boot-config.js +17 -0
  217. package/dist/mcp-server/boot-config.js.map +1 -0
  218. package/dist/mcp-server/middleware/auth.d.ts +10 -0
  219. package/dist/mcp-server/middleware/auth.d.ts.map +1 -0
  220. package/dist/mcp-server/middleware/auth.js +44 -0
  221. package/dist/mcp-server/middleware/auth.js.map +1 -0
  222. package/dist/mcp-server/middleware/cors.d.ts +6 -0
  223. package/dist/mcp-server/middleware/cors.d.ts.map +1 -0
  224. package/dist/mcp-server/middleware/cors.js +30 -0
  225. package/dist/mcp-server/middleware/cors.js.map +1 -0
  226. package/dist/mcp-server/middleware/error-handler.d.ts +11 -0
  227. package/dist/mcp-server/middleware/error-handler.d.ts.map +1 -0
  228. package/dist/mcp-server/middleware/error-handler.js +14 -0
  229. package/dist/mcp-server/middleware/error-handler.js.map +1 -0
  230. package/dist/mcp-server/server.d.ts +7 -2
  231. package/dist/mcp-server/server.d.ts.map +1 -1
  232. package/dist/mcp-server/server.js +290 -105
  233. package/dist/mcp-server/server.js.map +1 -1
  234. package/dist/skills/registry-mock.json +109 -109
  235. package/dist/skills/tests/manifest.spec.js +20 -20
  236. package/dist/stacks/__tests__/dna-emitter.spec.js +6 -6
  237. package/dist/stacks/dna-emitter.js +69 -69
  238. package/dist/stacks/ruby-rails-8/scaffold.js +15 -15
  239. package/dist/utils/__tests__/static-analyzer-exports.test.d.ts +2 -0
  240. package/dist/utils/__tests__/static-analyzer-exports.test.d.ts.map +1 -0
  241. package/dist/utils/__tests__/static-analyzer-exports.test.js +21 -0
  242. package/dist/utils/__tests__/static-analyzer-exports.test.js.map +1 -0
  243. package/dist/utils/project-generator.d.ts.map +1 -1
  244. package/dist/utils/project-generator.js +266 -252
  245. package/dist/utils/project-generator.js.map +1 -1
  246. package/dist/utils/stack-bootstrap.js +371 -371
  247. package/dist/utils/static-analyzer.d.ts +9 -0
  248. package/dist/utils/static-analyzer.d.ts.map +1 -1
  249. package/dist/utils/static-analyzer.js +2 -2
  250. package/dist/utils/static-analyzer.js.map +1 -1
  251. package/dist/utils/templates.js +394 -394
  252. package/dist/verification/__tests__/anti-tamper.test.js +13 -13
  253. package/dist/verification/__tests__/telemetry.test.js +9 -0
  254. package/dist/verification/__tests__/telemetry.test.js.map +1 -1
  255. package/package.json +96 -93
  256. package/templates/DARE-dag-example.yaml +280 -280
  257. package/templates/UPDATE-MANIFEST.json +68 -68
  258. package/templates/backend/node-nestjs/.env.example +9 -9
  259. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  260. package/templates/backend/node-nestjs/package.json +50 -50
  261. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  262. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  263. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  264. package/templates/backend/node-nestjs/src/main.ts +24 -24
  265. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  266. package/templates/backend/php-laravel/.env.example +22 -22
  267. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  268. package/templates/backend/php-laravel/composer.json +40 -40
  269. package/templates/backend/python-fastapi/.env.example +4 -4
  270. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  271. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  272. package/templates/backend/python-fastapi/main.py +35 -35
  273. package/templates/backend/python-fastapi/requirements.txt +13 -13
  274. package/templates/backend/rust-axum/.env.example +3 -3
  275. package/templates/backend/rust-axum/Cargo.toml +23 -23
  276. package/templates/backend/rust-axum/src/errors.rs +30 -30
  277. package/templates/backend/rust-axum/src/main.rs +32 -32
  278. package/templates/backend/rust-axum/src/routes.rs +6 -6
  279. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  280. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  281. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  282. package/templates/frontend/leptos-csr/index.html +11 -11
  283. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  284. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  285. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  286. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  287. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  288. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  289. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  290. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  291. package/templates/frontend/react/index.html +12 -12
  292. package/templates/frontend/react/package.json +35 -35
  293. package/templates/frontend/react/src/App.tsx +25 -25
  294. package/templates/frontend/react/src/main.tsx +9 -9
  295. package/templates/frontend/vue/package.json +32 -32
  296. package/templates/frontend/vue/src/App.vue +7 -7
  297. package/templates/frontend/vue/src/main.ts +10 -10
  298. package/templates/frontend/vue/src/router/index.ts +14 -14
  299. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  300. package/templates/hooks/pre-commit-dare-validate +24 -24
  301. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -152
  302. package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -21
  303. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +368 -368
  304. package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -32
  305. package/templates/ide/antigravity/.agents/skills/dare-bugfix-design/SKILL.md +76 -76
  306. package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -32
  307. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -154
  308. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -130
  309. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  310. package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +180 -180
  311. package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -33
  312. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -63
  313. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -315
  314. package/templates/ide/antigravity/.agents/skills/dare-execute/SKILL.md +264 -264
  315. package/templates/ide/antigravity/.agents/skills/dare-feature-design/SKILL.md +74 -74
  316. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -192
  317. package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -35
  318. package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -31
  319. package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -35
  320. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -337
  321. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -166
  322. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -217
  323. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -61
  324. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -187
  325. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -217
  326. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
  327. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -108
  328. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
  329. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -263
  330. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  331. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -274
  332. package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -35
  333. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
  334. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -188
  335. package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -33
  336. package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -33
  337. package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -30
  338. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -343
  339. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -377
  340. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -382
  341. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -326
  342. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -393
  343. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  344. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  345. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
  346. package/templates/ide/antigravity/templates/TASKS-template.md +26 -26
  347. package/templates/ide/antigravity/templates/TELEMETRY-template.md +125 -125
  348. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -131
  349. package/templates/ide/claude/.claude/commands/dare-bench.md +18 -18
  350. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
  351. package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -27
  352. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -119
  353. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
  354. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  355. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -117
  356. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  357. package/templates/ide/claude/.claude/commands/dare-dag.md +27 -27
  358. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  359. package/templates/ide/claude/.claude/commands/dare-discover.md +28 -28
  360. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -75
  361. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -207
  362. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  363. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -147
  364. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -149
  365. package/templates/ide/claude/.claude/commands/dare-graph.md +30 -30
  366. package/templates/ide/claude/.claude/commands/dare-info.md +26 -26
  367. package/templates/ide/claude/.claude/commands/dare-init.md +30 -30
  368. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -211
  369. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -124
  370. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -148
  371. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -72
  372. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -166
  373. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -159
  374. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
  375. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -139
  376. package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
  377. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  378. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  379. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  380. package/templates/ide/claude/.claude/commands/dare-skill.md +30 -30
  381. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  382. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -132
  383. package/templates/ide/claude/.claude/commands/dare-update.md +28 -28
  384. package/templates/ide/claude/.claude/commands/dare-validate.md +28 -28
  385. package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -25
  386. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -205
  387. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -232
  388. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -228
  389. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -210
  390. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -236
  391. package/templates/ide/claude/.claude/settings.example.json +35 -35
  392. package/templates/ide/claude/CLAUDE.md +146 -146
  393. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  394. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  395. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
  396. package/templates/ide/claude/templates/TASKS-template.md +26 -26
  397. package/templates/ide/claude/templates/TELEMETRY-template.md +125 -125
  398. package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -18
  399. package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +86 -86
  400. package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -27
  401. package/templates/ide/cursor/.cursor/commands/dare-bugfix-design.md +64 -64
  402. package/templates/ide/cursor/.cursor/commands/dare-dag-run.md +110 -110
  403. package/templates/ide/cursor/.cursor/commands/dare-dag-viz.md +139 -139
  404. package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -27
  405. package/templates/ide/cursor/.cursor/commands/dare-design.md +35 -35
  406. package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -28
  407. package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -75
  408. package/templates/ide/cursor/.cursor/commands/dare-docker-compose.md +18 -18
  409. package/templates/ide/cursor/.cursor/commands/dare-dockerfile.md +17 -17
  410. package/templates/ide/cursor/.cursor/commands/dare-execute.md +19 -19
  411. package/templates/ide/cursor/.cursor/commands/dare-feature-design.md +64 -64
  412. package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -30
  413. package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -26
  414. package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -30
  415. package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -72
  416. package/templates/ide/cursor/.cursor/commands/dare-refine.md +107 -107
  417. package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -139
  418. package/templates/ide/cursor/.cursor/commands/dare-review.md +91 -91
  419. package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -30
  420. package/templates/ide/cursor/.cursor/commands/dare-tasks.md +184 -184
  421. package/templates/ide/cursor/.cursor/commands/dare-telemetry.md +42 -42
  422. package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -28
  423. package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -28
  424. package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -25
  425. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -263
  426. package/templates/ide/cursor/.cursor/rules/skill-bugfix-design.mdc +51 -51
  427. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -173
  428. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -134
  429. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  430. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -63
  431. package/templates/ide/cursor/.cursor/rules/skill-docker.mdc +33 -33
  432. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -352
  433. package/templates/ide/cursor/.cursor/rules/skill-feature-design.mdc +43 -43
  434. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -244
  435. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -371
  436. package/templates/ide/cursor/.cursor/rules/skill-laravel-api.mdc +44 -44
  437. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -266
  438. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -295
  439. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -367
  440. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -58
  441. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -346
  442. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -248
  443. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -400
  444. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -262
  445. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -107
  446. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -281
  447. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  448. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  449. package/templates/ide/cursor/.cursor/rules/skill-telemetry.mdc +156 -156
  450. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  451. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  452. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
  453. package/templates/ide/cursor/templates/TASKS-template.md +26 -26
  454. package/templates/ide/cursor/templates/TELEMETRY-template.md +125 -125
  455. package/templates/shared/docker-compose.yml +41 -41
  456. package/templates/stacks/go-gin/.dare/skills.yml +11 -11
  457. package/templates/stacks/go-gin/.env.example +24 -24
  458. package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -42
  459. package/templates/stacks/go-gin/README.md.tpl +38 -38
  460. package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -78
  461. package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -2
  462. package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -12
  463. package/templates/stacks/go-gin/db/queries/users.sql +23 -23
  464. package/templates/stacks/go-gin/gitignore +7 -7
  465. package/templates/stacks/go-gin/go.mod.tpl +17 -17
  466. package/templates/stacks/go-gin/internal/config/config.go +41 -41
  467. package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -25
  468. package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -72
  469. package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -72
  470. package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -37
  471. package/templates/stacks/go-gin/internal/llm/dummy.go +14 -14
  472. package/templates/stacks/go-gin/internal/llm/provider.go +8 -8
  473. package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -58
  474. package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -55
  475. package/templates/stacks/go-gin/internal/model/user.go +17 -17
  476. package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -79
  477. package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -55
  478. package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -53
  479. package/templates/stacks/go-gin/llms.txt.tpl +54 -54
  480. package/templates/stacks/go-gin/openapi.json.tpl +46 -46
  481. package/templates/stacks/go-gin/sqlc.yaml +14 -14
  482. package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -22
  483. package/templates/stacks/go-stdlib/.dare/skills.yml +11 -11
  484. package/templates/stacks/go-stdlib/.env.example +24 -24
  485. package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -42
  486. package/templates/stacks/go-stdlib/README.md.tpl +41 -41
  487. package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -82
  488. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -2
  489. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -12
  490. package/templates/stacks/go-stdlib/db/queries/users.sql +23 -23
  491. package/templates/stacks/go-stdlib/gitignore +6 -6
  492. package/templates/stacks/go-stdlib/go.mod.tpl +15 -15
  493. package/templates/stacks/go-stdlib/internal/config/config.go +41 -41
  494. package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -24
  495. package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -71
  496. package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -84
  497. package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -36
  498. package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -32
  499. package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -14
  500. package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -8
  501. package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -21
  502. package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -27
  503. package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -51
  504. package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -81
  505. package/templates/stacks/go-stdlib/internal/model/user.go +17 -17
  506. package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -75
  507. package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -55
  508. package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -53
  509. package/templates/stacks/go-stdlib/llms.txt.tpl +60 -60
  510. package/templates/stacks/go-stdlib/openapi.json.tpl +46 -46
  511. package/templates/stacks/go-stdlib/sqlc.yaml +14 -14
  512. package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -45
  513. package/templates/stacks/mcp-go/.dare/skills.yml +8 -8
  514. package/templates/stacks/mcp-go/.env.example +14 -14
  515. package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -42
  516. package/templates/stacks/mcp-go/README.md.tpl +50 -50
  517. package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -62
  518. package/templates/stacks/mcp-go/gitignore +6 -6
  519. package/templates/stacks/mcp-go/go.mod.tpl +9 -9
  520. package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -9
  521. package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -80
  522. package/templates/stacks/mcp-go/internal/tools/echo.go +15 -15
  523. package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -21
  524. package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -17
  525. package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -14
  526. package/templates/stacks/mcp-go/llms.txt.tpl +60 -60
  527. package/templates/stacks/mcp-go/openapi.json.tpl +31 -31
  528. package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -37
  529. package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -8
  530. package/templates/stacks/mcp-node-ts/.env.example +16 -16
  531. package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -54
  532. package/templates/stacks/mcp-node-ts/README.md.hbs +49 -49
  533. package/templates/stacks/mcp-node-ts/gitignore +7 -7
  534. package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -61
  535. package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -39
  536. package/templates/stacks/mcp-node-ts/package.json.hbs +35 -35
  537. package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -71
  538. package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -36
  539. package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -45
  540. package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -23
  541. package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -18
  542. package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -68
  543. package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -58
  544. package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -5
  545. package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -50
  546. package/templates/stacks/mcp-node-ts/tsconfig.json +17 -17
  547. package/templates/stacks/mcp-python/.dare/skills.yml +8 -8
  548. package/templates/stacks/mcp-python/.env.example +14 -14
  549. package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -42
  550. package/templates/stacks/mcp-python/README.md.j2 +49 -49
  551. package/templates/stacks/mcp-python/gitignore +12 -12
  552. package/templates/stacks/mcp-python/llms.txt.j2 +56 -56
  553. package/templates/stacks/mcp-python/openapi.json.j2 +33 -33
  554. package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -37
  555. package/templates/stacks/mcp-python/src/cli.py.j2 +68 -68
  556. package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -10
  557. package/templates/stacks/mcp-python/src/server.py.j2 +28 -28
  558. package/templates/stacks/mcp-python/src/tools/echo.py +12 -12
  559. package/templates/stacks/mcp-python/src/transports/http.py +12 -12
  560. package/templates/stacks/mcp-python/src/transports/sse.py +13 -13
  561. package/templates/stacks/mcp-python/src/transports/stdio.py +6 -6
  562. package/templates/stacks/mcp-python/tests/test_echo.py +28 -28
  563. package/templates/stacks/mcp-rust/.dare/skills.yml +8 -8
  564. package/templates/stacks/mcp-rust/.env.example +14 -14
  565. package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -38
  566. package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -35
  567. package/templates/stacks/mcp-rust/README.md.tera +50 -50
  568. package/templates/stacks/mcp-rust/gitignore +5 -5
  569. package/templates/stacks/mcp-rust/llms.txt.tera +60 -60
  570. package/templates/stacks/mcp-rust/openapi.json.tera +31 -31
  571. package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -33
  572. package/templates/stacks/mcp-rust/src/lib.rs +6 -6
  573. package/templates/stacks/mcp-rust/src/main.rs.tera +30 -30
  574. package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -1
  575. package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -5
  576. package/templates/stacks/mcp-rust/src/server.rs.tera +38 -38
  577. package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -18
  578. package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -22
  579. package/templates/stacks/mcp-rust/src/transports/http.rs +27 -27
  580. package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -3
  581. package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -33
  582. package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -14
  583. package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -27
  584. package/templates/stacks/node-nestjs/.dare/skills.yml +11 -11
  585. package/templates/stacks/node-nestjs/.env.example +21 -21
  586. package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -54
  587. package/templates/stacks/node-nestjs/README.md.hbs +35 -35
  588. package/templates/stacks/node-nestjs/gitignore +7 -7
  589. package/templates/stacks/node-nestjs/llms.txt.hbs +47 -47
  590. package/templates/stacks/node-nestjs/nest-cli.json +16 -16
  591. package/templates/stacks/node-nestjs/openapi.json.hbs +75 -75
  592. package/templates/stacks/node-nestjs/package.json.hbs +57 -57
  593. package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -25
  594. package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -25
  595. package/templates/stacks/node-nestjs/src/app.module.ts +39 -39
  596. package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -29
  597. package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -25
  598. package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -36
  599. package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -9
  600. package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -17
  601. package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -25
  602. package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -38
  603. package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -13
  604. package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -44
  605. package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -9
  606. package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -9
  607. package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -22
  608. package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -15
  609. package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -41
  610. package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -11
  611. package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -38
  612. package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -38
  613. package/templates/stacks/node-nestjs/tsconfig.build.json +4 -4
  614. package/templates/stacks/node-nestjs/tsconfig.json +28 -28
  615. package/templates/stacks/php-laravel/.dare/skills.yml +11 -11
  616. package/templates/stacks/php-laravel/.env.example +41 -41
  617. package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -43
  618. package/templates/stacks/php-laravel/README.md.hbs +36 -36
  619. package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -36
  620. package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -33
  621. package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -26
  622. package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -34
  623. package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -12
  624. package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -13
  625. package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -33
  626. package/templates/stacks/php-laravel/app/Models/User.php +44 -44
  627. package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -32
  628. package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -37
  629. package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -57
  630. package/templates/stacks/php-laravel/artisan +12 -12
  631. package/templates/stacks/php-laravel/bootstrap/app.php +29 -29
  632. package/templates/stacks/php-laravel/bootstrap/providers.php +5 -5
  633. package/templates/stacks/php-laravel/composer.json.hbs +58 -58
  634. package/templates/stacks/php-laravel/config/l5-swagger.php +41 -41
  635. package/templates/stacks/php-laravel/config/reverb.php +34 -34
  636. package/templates/stacks/php-laravel/config/sanctum.php +15 -15
  637. package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -27
  638. package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -21
  639. package/templates/stacks/php-laravel/gitignore +23 -23
  640. package/templates/stacks/php-laravel/llms.txt.hbs +53 -53
  641. package/templates/stacks/php-laravel/openapi.json.hbs +43 -43
  642. package/templates/stacks/php-laravel/phpstan.neon +9 -9
  643. package/templates/stacks/php-laravel/routes/api.php +13 -13
  644. package/templates/stacks/php-laravel/routes/channels.php +7 -7
  645. package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -35
  646. package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -30
  647. package/templates/stacks/php-laravel/tests/Pest.php +5 -5
  648. package/templates/stacks/python-fastapi/.dare/skills.yml +11 -11
  649. package/templates/stacks/python-fastapi/.env.example +21 -21
  650. package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -43
  651. package/templates/stacks/python-fastapi/README.md.j2 +35 -35
  652. package/templates/stacks/python-fastapi/alembic/env.py +46 -46
  653. package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -26
  654. package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -37
  655. package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -39
  656. package/templates/stacks/python-fastapi/app/core/config.py +24 -24
  657. package/templates/stacks/python-fastapi/app/core/security.py +34 -34
  658. package/templates/stacks/python-fastapi/app/db/session.py +22 -22
  659. package/templates/stacks/python-fastapi/app/main.py.j2 +36 -36
  660. package/templates/stacks/python-fastapi/app/models/__init__.py +3 -3
  661. package/templates/stacks/python-fastapi/app/models/user.py +30 -30
  662. package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -34
  663. package/templates/stacks/python-fastapi/app/routers/auth.py +37 -37
  664. package/templates/stacks/python-fastapi/app/routers/users.py +46 -46
  665. package/templates/stacks/python-fastapi/app/schemas/user.py +56 -56
  666. package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -22
  667. package/templates/stacks/python-fastapi/app/services/user_service.py +31 -31
  668. package/templates/stacks/python-fastapi/gitignore +12 -12
  669. package/templates/stacks/python-fastapi/llms.txt.j2 +53 -53
  670. package/templates/stacks/python-fastapi/openapi.json.j2 +43 -43
  671. package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -45
  672. package/templates/stacks/python-fastapi/tests/test_auth.py +22 -22
  673. package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -50
  674. package/templates/stacks/ruby-rails-8/.env.example +20 -20
  675. package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -112
  676. package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -61
  677. package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -11
  678. package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -34
  679. package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -18
  680. package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -23
  681. package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -44
  682. package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -93
  683. package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -33
  684. package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -68
  685. package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -44
  686. package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -54
  687. package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -12
  688. package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -35
  689. package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -67
  690. package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -62
  691. package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -82
  692. package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -21
  693. package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -52
  694. package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -36
  695. package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -48
  696. package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -57
  697. package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -73
  698. package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -67
  699. package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -53
  700. package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -57
  701. package/templates/stacks/ruby-rails-8/config/dare.yml +42 -42
  702. package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -31
  703. package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -64
  704. package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -12
  705. package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -159
  706. package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -69
  707. package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -56
  708. package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -72
  709. package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -61
  710. package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -56
  711. package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -27
  712. package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -88
  713. package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -31
  714. package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -88
  715. package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -142
  716. package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -73
  717. package/templates/stacks/rust-axum/.dare/skills.yml +11 -11
  718. package/templates/stacks/rust-axum/.env.example +26 -26
  719. package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -40
  720. package/templates/stacks/rust-axum/Cargo.toml.tera +53 -53
  721. package/templates/stacks/rust-axum/README.md.tera +37 -37
  722. package/templates/stacks/rust-axum/gitignore +5 -5
  723. package/templates/stacks/rust-axum/llms.txt.tera +54 -54
  724. package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -13
  725. package/templates/stacks/rust-axum/openapi.json.tera +46 -46
  726. package/templates/stacks/rust-axum/src/config.rs +45 -45
  727. package/templates/stacks/rust-axum/src/errors.rs +48 -48
  728. package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -48
  729. package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -3
  730. package/templates/stacks/rust-axum/src/handlers/users.rs +81 -81
  731. package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -24
  732. package/templates/stacks/rust-axum/src/lib.rs +19 -19
  733. package/templates/stacks/rust-axum/src/llm/mod.rs +1 -1
  734. package/templates/stacks/rust-axum/src/llm/provider.rs +48 -48
  735. package/templates/stacks/rust-axum/src/main.rs.tera +64 -64
  736. package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -20
  737. package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -2
  738. package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -27
  739. package/templates/stacks/rust-axum/src/models/mod.rs +1 -1
  740. package/templates/stacks/rust-axum/src/models/user.rs +13 -13
  741. package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -1
  742. package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -62
  743. package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -50
  744. package/templates/stacks/rust-axum/src/services/mod.rs +2 -2
  745. package/templates/stacks/rust-axum/src/services/user_service.rs +53 -53
  746. package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -13
  747. package/dist/commands/new.d.ts +0 -16
  748. package/dist/commands/new.d.ts.map +0 -1
  749. package/dist/commands/new.js +0 -104
  750. package/dist/commands/new.js.map +0 -1
@@ -1,145 +1,145 @@
1
- # Comando: /dare-refine
2
-
3
- ## Descrição
4
-
5
- Analisa a complexidade de uma task e, quando alta, **quebra em sub-tasks menores** com escopo bem delimitado. Pode ser chamada:
6
-
7
- - Automaticamente pela skill `dare-tasks` logo após gerar o DAG (para cada task ≥ MED)
8
- - Manualmente pelo dev: `/dare-refine task-034`
9
- - Após mudança de escopo: quando o BLUEPRINT mudou e uma task ficou grande demais
10
-
11
- A camada determinística (heurística de complexidade) já é feita pelo CLI: `dare refine <id>`. Este comando adiciona a camada **semântica** — você lê a spec, decide se a quebra é necessária e, se for, produz sub-tasks coerentes.
12
-
13
- ## Quando rodar
14
-
15
- - Logo após `/dare-tasks` para cada task com complexity HIGH no `dare-dag.yaml`
16
- - Quando o dev pede explicitamente: `/dare-refine task-034`
17
- - Quando você gerou uma task e ela "te parece grande" mesmo marcada MED — confie no instinto
18
-
19
- ## Como executar
20
-
21
- ### 1. Validar argumento
22
-
23
- `$ARGUMENTS` deve ter o `task-id`. Se vazio, peça.
24
-
25
- ### 2. Rodar a camada determinística
26
-
27
- ```bash
28
- dare refine $ARGUMENTS --split --format json > .dare/refine-$ARGUMENTS.json
29
- ```
30
-
31
- Esse JSON traz:
32
- - `report.score` e `report.level` (LOW/MED/HIGH/CRITICAL)
33
- - `report.signals` — explica por que pontuou alto/baixo
34
- - `report.recommendsSplit` — true se HIGH ou CRITICAL
35
- - `proposal.subtasks` — quebra inicial baseada em diretórios (chute coarse)
36
-
37
- ### 3. Decidir se vale quebrar
38
-
39
- Critérios para **quebrar**:
40
-
41
- - ✅ `recommendsSplit: true` da heurística (HIGH/CRITICAL)
42
- - ✅ Mais de 6 arquivos a criar/modificar
43
- - ✅ Mistura responsabilidades fortes (ex.: cria modelo + escreve controller + escreve teste + faz migration — split por camada)
44
- - ✅ Toca código que outra task ainda não criou (deveria ser depois)
45
- - ✅ Inclui refactor + feature nova juntos
46
- - ✅ Tem keyword "pesada" (refactor, migrate, integrate) E score MED+
47
-
48
- Critérios para **manter inteira**:
49
-
50
- - ✅ Score LOW e até MED
51
- - ✅ Todos os arquivos pertencem ao mesmo módulo/feature
52
- - ✅ Cabe em uma conversa única do agente (15–60 min de trabalho efetivo)
53
-
54
- ### 4. Se decidir quebrar — produzir sub-tasks coerentes
55
-
56
- Não use a `proposal.subtasks` da CLI sem revisão — ela agrupa por diretório, o que nem sempre faz sentido semantico. **Reagrupe por responsabilidade**:
57
-
58
- | Eixo de split | Quando aplicar |
59
- |---|---|
60
- | **Por camada** | Modelo / Controller / Service / Test ficam em tasks separadas se cada um é grande |
61
- | **Por endpoint** | Task original tinha 4 endpoints REST → 4 sub-tasks de 1 endpoint cada |
62
- | **Por feature** | Auth tinha "register + login + refresh + logout" → split por verbo |
63
- | **Refactor + feature** | Quebra em "1. refactor X para preparar terreno" + "2. adiciona feature Y em cima" |
64
- | **Migration + código** | "1. migration + seeds" + "2. código que usa o novo schema" |
65
-
66
- Cada sub-task deve:
67
-
68
- - Ter `subtask_prompt` auto-suficiente (assinaturas exatas, validações, edge cases — o Anti-Stub Contract aplica)
69
- - Ter spec_file própria em `DARE/EXECUTION/<sub-id>.md`
70
- - Ter `depends_on` mínimo mas correto (sub-tasks da mesma família geralmente dependem em ordem)
71
- - Ter complexity honesta — se a sub ainda ficar HIGH, quebra de novo
72
-
73
- ### 5. Emitir verdito + plano
74
-
75
- Salve em `.dare/refine-verdict-$ARGUMENTS.json`:
76
-
77
- ```json
78
- {
79
- "manageable": false,
80
- "reasons": [
81
- "Score 18 (HIGH) — 7 endpoints + migration + 12 testes no mesmo escopo",
82
- "Mistura refactor de service layer com novos endpoints"
83
- ],
84
- "proposedSubtasks": [
85
- {
86
- "id": "task-034a",
87
- "title": "Refactor UserService para suportar profile_settings",
88
- "files": ["src/services/UserService.ts", "tests/services/UserService.test.ts"],
89
- "rationale": "Refactor isolado antes da feature — gates passam sem mexer em controllers",
90
- "estimatedLevel": "MED"
91
- },
92
- {
93
- "id": "task-034b",
94
- "title": "Endpoints GET/PATCH /users/me/profile",
95
- "files": ["src/controllers/profile.ts", "tests/controllers/profile.test.ts"],
96
- "rationale": "Endpoints novos consumindo o serviço refatorado",
97
- "estimatedLevel": "MED"
98
- }
99
- ]
100
- }
101
- ```
102
-
103
- Se a task **é** manuseável (não precisa quebrar):
104
-
105
- ```json
106
- {
107
- "manageable": true,
108
- "reasons": ["Score 7 (MED), 4 arquivos no mesmo módulo, 6 testes — cabe em uma conversa"]
109
- }
110
- ```
111
-
112
- ### 6. Aplicar o split
113
-
114
- Se quebrou:
115
-
116
- 1. **Edite** `DARE/dare-dag.yaml` substituindo a task original pelas sub-tasks
117
- 2. **Crie** as specs novas em `DARE/EXECUTION/<sub-id>.md` (use `templates/TASK-SPEC-template.md` — seguindo o Anti-Stub Contract!)
118
- 3. **Atualize** `DARE/TASKS.md` (visão humana) refletindo a quebra
119
- 4. **Regenere** o Mermaid: `dare dag viz -o DARE/dag-graph.mmd`
120
- 5. **Marque** a task original como SPLIT (não deletar — preservar histórico) ou remover e referenciar no header das sub-tasks
121
-
122
- ### 7. Mensagem ao usuário
123
-
124
- Se manteve inteira:
125
- > ✅ Task `$ARGUMENTS` está bem-dimensionada (score X, level Y). Sem split necessário.
126
-
127
- Se quebrou:
128
- > 🪓 Task `$ARGUMENTS` quebrada em N sub-task(s):
129
- > - `<id>a`: <título>
130
- > - `<id>b`: <título>
131
- > ...
132
- >
133
- > Specs criadas em `DARE/EXECUTION/`. Revise antes de executar:
134
- > ```bash
135
- > dare validate # verifica DAG
136
- > dare dag viz # confirma grafo
137
- > dare execute --next # roda a primeira sub-task pronta
138
- > ```
139
-
140
- ## Regras inegociáveis
141
-
142
- - **Não quebre tasks LOW** — overhead não vale a pena
143
- - **Não invente dependências** — sub-tasks da mesma família frequentemente são sequenciais, não falsamente paralelas
144
- - **Cada sub-task precisa ser independentemente testável** — se você precisa rodar A para testar B, A precisa ser parent de B no DAG
145
- - **Anti-Stub Contract aplica em cada sub-task** — não relaxa critérios só porque é menor
1
+ # Comando: /dare-refine
2
+
3
+ ## Descrição
4
+
5
+ Analisa a complexidade de uma task e, quando alta, **quebra em sub-tasks menores** com escopo bem delimitado. Pode ser chamada:
6
+
7
+ - Automaticamente pela skill `dare-tasks` logo após gerar o DAG (para cada task ≥ MED)
8
+ - Manualmente pelo dev: `/dare-refine task-034`
9
+ - Após mudança de escopo: quando o BLUEPRINT mudou e uma task ficou grande demais
10
+
11
+ A camada determinística (heurística de complexidade) já é feita pelo CLI: `dare refine <id>`. Este comando adiciona a camada **semântica** — você lê a spec, decide se a quebra é necessária e, se for, produz sub-tasks coerentes.
12
+
13
+ ## Quando rodar
14
+
15
+ - Logo após `/dare-tasks` para cada task com complexity HIGH no `dare-dag.yaml`
16
+ - Quando o dev pede explicitamente: `/dare-refine task-034`
17
+ - Quando você gerou uma task e ela "te parece grande" mesmo marcada MED — confie no instinto
18
+
19
+ ## Como executar
20
+
21
+ ### 1. Validar argumento
22
+
23
+ `$ARGUMENTS` deve ter o `task-id`. Se vazio, peça.
24
+
25
+ ### 2. Rodar a camada determinística
26
+
27
+ ```bash
28
+ dare refine $ARGUMENTS --split --format json > .dare/refine-$ARGUMENTS.json
29
+ ```
30
+
31
+ Esse JSON traz:
32
+ - `report.score` e `report.level` (LOW/MED/HIGH/CRITICAL)
33
+ - `report.signals` — explica por que pontuou alto/baixo
34
+ - `report.recommendsSplit` — true se HIGH ou CRITICAL
35
+ - `proposal.subtasks` — quebra inicial baseada em diretórios (chute coarse)
36
+
37
+ ### 3. Decidir se vale quebrar
38
+
39
+ Critérios para **quebrar**:
40
+
41
+ - ✅ `recommendsSplit: true` da heurística (HIGH/CRITICAL)
42
+ - ✅ Mais de 6 arquivos a criar/modificar
43
+ - ✅ Mistura responsabilidades fortes (ex.: cria modelo + escreve controller + escreve teste + faz migration — split por camada)
44
+ - ✅ Toca código que outra task ainda não criou (deveria ser depois)
45
+ - ✅ Inclui refactor + feature nova juntos
46
+ - ✅ Tem keyword "pesada" (refactor, migrate, integrate) E score MED+
47
+
48
+ Critérios para **manter inteira**:
49
+
50
+ - ✅ Score LOW e até MED
51
+ - ✅ Todos os arquivos pertencem ao mesmo módulo/feature
52
+ - ✅ Cabe em uma conversa única do agente (15–60 min de trabalho efetivo)
53
+
54
+ ### 4. Se decidir quebrar — produzir sub-tasks coerentes
55
+
56
+ Não use a `proposal.subtasks` da CLI sem revisão — ela agrupa por diretório, o que nem sempre faz sentido semantico. **Reagrupe por responsabilidade**:
57
+
58
+ | Eixo de split | Quando aplicar |
59
+ |---|---|
60
+ | **Por camada** | Modelo / Controller / Service / Test ficam em tasks separadas se cada um é grande |
61
+ | **Por endpoint** | Task original tinha 4 endpoints REST → 4 sub-tasks de 1 endpoint cada |
62
+ | **Por feature** | Auth tinha "register + login + refresh + logout" → split por verbo |
63
+ | **Refactor + feature** | Quebra em "1. refactor X para preparar terreno" + "2. adiciona feature Y em cima" |
64
+ | **Migration + código** | "1. migration + seeds" + "2. código que usa o novo schema" |
65
+
66
+ Cada sub-task deve:
67
+
68
+ - Ter `subtask_prompt` auto-suficiente (assinaturas exatas, validações, edge cases — o Anti-Stub Contract aplica)
69
+ - Ter spec_file própria em `DARE/EXECUTION/<sub-id>.md`
70
+ - Ter `depends_on` mínimo mas correto (sub-tasks da mesma família geralmente dependem em ordem)
71
+ - Ter complexity honesta — se a sub ainda ficar HIGH, quebra de novo
72
+
73
+ ### 5. Emitir verdito + plano
74
+
75
+ Salve em `.dare/refine-verdict-$ARGUMENTS.json`:
76
+
77
+ ```json
78
+ {
79
+ "manageable": false,
80
+ "reasons": [
81
+ "Score 18 (HIGH) — 7 endpoints + migration + 12 testes no mesmo escopo",
82
+ "Mistura refactor de service layer com novos endpoints"
83
+ ],
84
+ "proposedSubtasks": [
85
+ {
86
+ "id": "task-034a",
87
+ "title": "Refactor UserService para suportar profile_settings",
88
+ "files": ["src/services/UserService.ts", "tests/services/UserService.test.ts"],
89
+ "rationale": "Refactor isolado antes da feature — gates passam sem mexer em controllers",
90
+ "estimatedLevel": "MED"
91
+ },
92
+ {
93
+ "id": "task-034b",
94
+ "title": "Endpoints GET/PATCH /users/me/profile",
95
+ "files": ["src/controllers/profile.ts", "tests/controllers/profile.test.ts"],
96
+ "rationale": "Endpoints novos consumindo o serviço refatorado",
97
+ "estimatedLevel": "MED"
98
+ }
99
+ ]
100
+ }
101
+ ```
102
+
103
+ Se a task **é** manuseável (não precisa quebrar):
104
+
105
+ ```json
106
+ {
107
+ "manageable": true,
108
+ "reasons": ["Score 7 (MED), 4 arquivos no mesmo módulo, 6 testes — cabe em uma conversa"]
109
+ }
110
+ ```
111
+
112
+ ### 6. Aplicar o split
113
+
114
+ Se quebrou:
115
+
116
+ 1. **Edite** `DARE/dare-dag.yaml` substituindo a task original pelas sub-tasks
117
+ 2. **Crie** as specs novas em `DARE/EXECUTION/<sub-id>.md` (use `templates/TASK-SPEC-template.md` — seguindo o Anti-Stub Contract!)
118
+ 3. **Atualize** `DARE/TASKS.md` (visão humana) refletindo a quebra
119
+ 4. **Regenere** o Mermaid: `dare dag viz -o DARE/dag-graph.mmd`
120
+ 5. **Marque** a task original como SPLIT (não deletar — preservar histórico) ou remover e referenciar no header das sub-tasks
121
+
122
+ ### 7. Mensagem ao usuário
123
+
124
+ Se manteve inteira:
125
+ > ✅ Task `$ARGUMENTS` está bem-dimensionada (score X, level Y). Sem split necessário.
126
+
127
+ Se quebrou:
128
+ > 🪓 Task `$ARGUMENTS` quebrada em N sub-task(s):
129
+ > - `<id>a`: <título>
130
+ > - `<id>b`: <título>
131
+ > ...
132
+ >
133
+ > Specs criadas em `DARE/EXECUTION/`. Revise antes de executar:
134
+ > ```bash
135
+ > dare validate # verifica DAG
136
+ > dare dag viz # confirma grafo
137
+ > dare execute --next # roda a primeira sub-task pronta
138
+ > ```
139
+
140
+ ## Regras inegociáveis
141
+
142
+ - **Não quebre tasks LOW** — overhead não vale a pena
143
+ - **Não invente dependências** — sub-tasks da mesma família frequentemente são sequenciais, não falsamente paralelas
144
+ - **Cada sub-task precisa ser independentemente testável** — se você precisa rodar A para testar B, A precisa ser parent de B no DAG
145
+ - **Anti-Stub Contract aplica em cada sub-task** — não relaxa critérios só porque é menor
@@ -1,139 +1,139 @@
1
- # /dare-reverse
2
-
3
- Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda **depois** do comando
4
- `dare reverse`, que já varreu o código e gerou os esqueletos. Sua função é **preencher as
5
- inferências** que o CLI determinístico não faz: propósito, domínio, responsabilidades e os
6
- **diagramas de fluxo** ("como a coisa funciona").
7
-
8
- ## Como usar
9
-
10
- ```
11
- /dare-reverse # preenche os artefatos gerados por `dare reverse`
12
- ```
13
-
14
- > Pré-requisito: rodar `dare reverse` antes (gera `DARE/IDEIA.md`, `DARE/REVERSE/module-*.md`
15
- > e `DARE/REVERSE/reverse-facts.json`). Se não existirem, instrua o usuário a rodar `dare reverse` primeiro.
16
-
17
- ## Quando usar
18
-
19
- - O usuário quer entender / documentar um projeto **legado** antes de adotar o DARE.
20
- - Acabou de rodar `dare reverse` e os artefatos têm seções `<!-- AGENT: ... -->` em aberto.
21
- - O objetivo é gerar uma **pré-arquitetura** (`IDEIA.md`) que depois vira `DESIGN.md`.
22
-
23
- ## Marcação de confiança (obrigatória)
24
-
25
- Ao preencher cada `<!-- AGENT -->`, marque **cada afirmação** com seu nível de confiança + evidência:
26
-
27
- - `- 🟢 <claim>. ` + `` `arquivo:linha` `` — **CONFIRMED**: evidência direta no código.
28
- - `- 🟡 <claim>. ` + `` `arquivo:linha` `` — **INFERRED**: padrão/dedução; pode estar errado.
29
- - `- 🔴 <claim>. → ver gaps.md` — **GAP**: não determinável pelo código.
30
-
31
- Regra: só 🟢 com evidência direta; na dúvida, 🟡; sem base, 🔴 (e registre em `gaps.md`). Os fatos
32
- estruturais (caminho, LOC, deps) já vêm pré-marcados 🟢 pelo CLI — **não os altere**.
33
-
34
- ## O que fazer
35
-
36
- ### 1. Carregar os fatos (não re-varrer tudo)
37
-
38
- - Leia `DARE/REVERSE/reverse-facts.json` — é a fonte de fatos determinística (stack, módulos,
39
- LOC, grafo de dependências). **Confie nela** para o inventário; não reconte arquivos.
40
- - Para cada módulo, abra **2-5 arquivos representativos** (entrypoints, controllers, services,
41
- models) — o suficiente para inferir responsabilidade e fluxo. Não leia o módulo inteiro.
42
-
43
- ### 2. Preencher `DARE/IDEIA.md`
44
-
45
- Substitua cada bloco `<!-- AGENT: ... -->` por conteúdo real:
46
-
47
- - **Propósito Inferido** — 2-4 frases: o que o software faz e por quê.
48
- - **Domínio & Conceitos** — entidades de negócio + glossário (inferidos de models/migrations/nomes).
49
- - **Modelo de Dados (reconstruído)** — entidades, campos-chave, relacionamentos (de migrations/ORM).
50
- - **Superfície de API** — endpoints inferidos de rotas/controllers (método, rota, propósito).
51
- - **Fluxo do Sistema** — um `flowchart TD` Mermaid do caminho principal de request/dados
52
- atravessando os módulos. Ex.:
53
- ```mermaid
54
- flowchart TD
55
- Client[Cliente] --> API[API/Rotas]
56
- API --> Auth[auth: valida token]
57
- Auth --> Domain[users: regra de negócio]
58
- Domain --> DB[(Persistência)]
59
- ```
60
- - **⚠️ Incertezas / Gaps** — seja honesto: o que NÃO deu pra inferir com segurança, e perguntas
61
- objetivas para o humano confirmar. Esta seção é o que protege o checkpoint human-in-the-loop.
62
-
63
- **Não toque** no Mapa de Módulos nem na tabela (são determinísticos, gerados pelo CLI).
64
-
65
- ### 3. Preencher cada `DARE/REVERSE/module-*.md`
66
-
67
- Para cada módulo, substitua os `<!-- AGENT -->`:
68
-
69
- - **Responsabilidade** — 1-3 frases sobre o papel do módulo no sistema.
70
- - **Superfície Pública** — o que ele expõe (funções/classes/endpoints/tipos exportados).
71
- - **Como Funciona (fluxo)** — um `sequenceDiagram` Mermaid do fluxo de execução típico. Ex.:
72
- ```mermaid
73
- sequenceDiagram
74
- participant C as Caller
75
- participant S as Service
76
- participant R as Repository
77
- participant DB as Database
78
- C->>S: chamada(args)
79
- S->>R: busca/persiste
80
- R->>DB: query
81
- DB-->>R: linhas
82
- R-->>S: entidade
83
- S-->>C: resultado
84
- ```
85
- - **Dependências & Acoplamento** — comente as dependências listadas em "Depende de" e riscos
86
- de acoplamento (ex.: dependência circular, módulo-hotspot HIGH com muitos dependentes).
87
-
88
- ### 4. Apresentar ao usuário
89
-
90
- Mostre um resumo: propósito inferido, nº de módulos, principais incertezas. Reforce que o
91
- `IDEIA.md` é um **rascunho a ser validado** — peça para o humano revisar antes de promover a DESIGN.
92
-
93
- ## Passo final — Gaps, Questions e Reviewer
94
-
95
- 1. **`gaps.md`** — consolide todos os 🔴 em `DARE/REVERSE/gaps.md`, classificados por severidade
96
- (crítico / moderado / cosmético / fora-escopo) e com o tratamento sugerido.
97
- 2. **`questions.md`** — perguntas objetivas ao humano em `DARE/REVERSE/questions.md`.
98
- 3. **Reviewer (releia e reclassifique)** — reabra os arquivos-chave e revise os claims; rebaixe os
99
- que não têm evidência suficiente (🟢→🟡 ou 🟡→🔴). Um spec honesto sobre suas incertezas vale mais
100
- que um spec fluente que apresenta suposição como fato.
101
- 4. **Rode `dare reverse --report`** — o CLI conta os marcadores e gera `confidence-report.md` +
102
- `traceability/code-spec-matrix.md` com o índice determinístico. Mostre o índice ao usuário.
103
-
104
- ## Modo `--deep` (Fase 3)
105
-
106
- Se `dare reverse --deep` foi usado, há artefatos extras em `DARE/REVERSE/` a completar:
107
-
108
- - **`erd.md`** — o CLI extraiu entidades de migrations/Prisma/ORM (🟢, com evidência). Complete
109
- relações/entidades **não-explícitas** no schema (🟡) e corrija o que estiver errado.
110
- - **`domain-rules.md`** — regras de negócio (validações, invariantes, cálculos, políticas), 🟢/🟡/🔴.
111
- - **`state-machines.md`** — um `stateDiagram-v2` por entidade/fluxo com estados e transições reais.
112
- - **`permissions.md`** — papéis, recursos e regras de autorização (quem pode o quê).
113
- - **`c4/c4-context.md`** e **`c4/c4-container.md`** — atores/sistemas externos e containers de deploy.
114
- (O nível *component* já é o mapa de módulos em `c4/c4-component.md`, gerado pelo CLI.)
115
-
116
- ## Regras de ouro
117
-
118
- 1. **Não invente.** Se um fluxo não está claro no código, marque 🔴 (gap) em vez de chutar.
119
- 2. **Fidelidade ao código real** — descreva o que o código faz, não o que deveria fazer.
120
- 3. **Diagramas enxutos** — um fluxo legível vale mais que um diagrama exaustivo e ilegível.
121
- 4. **Não re-varra** — os fatos já estão em `reverse-facts.json`; foque na inferência semântica.
122
- 5. **Preserve o determinístico** — nunca edite o Mapa de Módulos/tabela/grafo gerados pelo CLI.
123
-
124
- ## Antipatterns
125
-
126
- | AP | Antipattern | Por quê |
127
- |---|---|---|
128
- | AP-01 | Inventar endpoints/entidades não presentes no código | Polui a pré-arquitetura com ficção |
129
- | AP-02 | Reescrever a tabela de módulos do CLI | Quebra a fonte determinística |
130
- | AP-03 | `sequenceDiagram` gigante e ilegível | Anula o propósito do diagrama |
131
- | AP-04 | Pular a seção de Incertezas | Remove o ponto de validação humana |
132
- | AP-05 | Ler o projeto inteiro arquivo a arquivo | Desperdiça contexto; os fatos já estão no JSON |
133
- | AP-06 | Marcar tudo 🟢 sem evidência `file:line` | Infla a confiança e engana o humano — o valor está em separar 🟢/🟡/🔴 |
134
-
135
- $ARGUMENTS
136
-
137
- ---
138
-
139
- Skill MIT — parte do DARE Method. Fase 0 (brownfield). Pareia com o comando `dare reverse`.
1
+ # /dare-reverse
2
+
3
+ Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda **depois** do comando
4
+ `dare reverse`, que já varreu o código e gerou os esqueletos. Sua função é **preencher as
5
+ inferências** que o CLI determinístico não faz: propósito, domínio, responsabilidades e os
6
+ **diagramas de fluxo** ("como a coisa funciona").
7
+
8
+ ## Como usar
9
+
10
+ ```
11
+ /dare-reverse # preenche os artefatos gerados por `dare reverse`
12
+ ```
13
+
14
+ > Pré-requisito: rodar `dare reverse` antes (gera `DARE/IDEIA.md`, `DARE/REVERSE/module-*.md`
15
+ > e `DARE/REVERSE/reverse-facts.json`). Se não existirem, instrua o usuário a rodar `dare reverse` primeiro.
16
+
17
+ ## Quando usar
18
+
19
+ - O usuário quer entender / documentar um projeto **legado** antes de adotar o DARE.
20
+ - Acabou de rodar `dare reverse` e os artefatos têm seções `<!-- AGENT: ... -->` em aberto.
21
+ - O objetivo é gerar uma **pré-arquitetura** (`IDEIA.md`) que depois vira `DESIGN.md`.
22
+
23
+ ## Marcação de confiança (obrigatória)
24
+
25
+ Ao preencher cada `<!-- AGENT -->`, marque **cada afirmação** com seu nível de confiança + evidência:
26
+
27
+ - `- 🟢 <claim>. ` + `` `arquivo:linha` `` — **CONFIRMED**: evidência direta no código.
28
+ - `- 🟡 <claim>. ` + `` `arquivo:linha` `` — **INFERRED**: padrão/dedução; pode estar errado.
29
+ - `- 🔴 <claim>. → ver gaps.md` — **GAP**: não determinável pelo código.
30
+
31
+ Regra: só 🟢 com evidência direta; na dúvida, 🟡; sem base, 🔴 (e registre em `gaps.md`). Os fatos
32
+ estruturais (caminho, LOC, deps) já vêm pré-marcados 🟢 pelo CLI — **não os altere**.
33
+
34
+ ## O que fazer
35
+
36
+ ### 1. Carregar os fatos (não re-varrer tudo)
37
+
38
+ - Leia `DARE/REVERSE/reverse-facts.json` — é a fonte de fatos determinística (stack, módulos,
39
+ LOC, grafo de dependências). **Confie nela** para o inventário; não reconte arquivos.
40
+ - Para cada módulo, abra **2-5 arquivos representativos** (entrypoints, controllers, services,
41
+ models) — o suficiente para inferir responsabilidade e fluxo. Não leia o módulo inteiro.
42
+
43
+ ### 2. Preencher `DARE/IDEIA.md`
44
+
45
+ Substitua cada bloco `<!-- AGENT: ... -->` por conteúdo real:
46
+
47
+ - **Propósito Inferido** — 2-4 frases: o que o software faz e por quê.
48
+ - **Domínio & Conceitos** — entidades de negócio + glossário (inferidos de models/migrations/nomes).
49
+ - **Modelo de Dados (reconstruído)** — entidades, campos-chave, relacionamentos (de migrations/ORM).
50
+ - **Superfície de API** — endpoints inferidos de rotas/controllers (método, rota, propósito).
51
+ - **Fluxo do Sistema** — um `flowchart TD` Mermaid do caminho principal de request/dados
52
+ atravessando os módulos. Ex.:
53
+ ```mermaid
54
+ flowchart TD
55
+ Client[Cliente] --> API[API/Rotas]
56
+ API --> Auth[auth: valida token]
57
+ Auth --> Domain[users: regra de negócio]
58
+ Domain --> DB[(Persistência)]
59
+ ```
60
+ - **⚠️ Incertezas / Gaps** — seja honesto: o que NÃO deu pra inferir com segurança, e perguntas
61
+ objetivas para o humano confirmar. Esta seção é o que protege o checkpoint human-in-the-loop.
62
+
63
+ **Não toque** no Mapa de Módulos nem na tabela (são determinísticos, gerados pelo CLI).
64
+
65
+ ### 3. Preencher cada `DARE/REVERSE/module-*.md`
66
+
67
+ Para cada módulo, substitua os `<!-- AGENT -->`:
68
+
69
+ - **Responsabilidade** — 1-3 frases sobre o papel do módulo no sistema.
70
+ - **Superfície Pública** — o que ele expõe (funções/classes/endpoints/tipos exportados).
71
+ - **Como Funciona (fluxo)** — um `sequenceDiagram` Mermaid do fluxo de execução típico. Ex.:
72
+ ```mermaid
73
+ sequenceDiagram
74
+ participant C as Caller
75
+ participant S as Service
76
+ participant R as Repository
77
+ participant DB as Database
78
+ C->>S: chamada(args)
79
+ S->>R: busca/persiste
80
+ R->>DB: query
81
+ DB-->>R: linhas
82
+ R-->>S: entidade
83
+ S-->>C: resultado
84
+ ```
85
+ - **Dependências & Acoplamento** — comente as dependências listadas em "Depende de" e riscos
86
+ de acoplamento (ex.: dependência circular, módulo-hotspot HIGH com muitos dependentes).
87
+
88
+ ### 4. Apresentar ao usuário
89
+
90
+ Mostre um resumo: propósito inferido, nº de módulos, principais incertezas. Reforce que o
91
+ `IDEIA.md` é um **rascunho a ser validado** — peça para o humano revisar antes de promover a DESIGN.
92
+
93
+ ## Passo final — Gaps, Questions e Reviewer
94
+
95
+ 1. **`gaps.md`** — consolide todos os 🔴 em `DARE/REVERSE/gaps.md`, classificados por severidade
96
+ (crítico / moderado / cosmético / fora-escopo) e com o tratamento sugerido.
97
+ 2. **`questions.md`** — perguntas objetivas ao humano em `DARE/REVERSE/questions.md`.
98
+ 3. **Reviewer (releia e reclassifique)** — reabra os arquivos-chave e revise os claims; rebaixe os
99
+ que não têm evidência suficiente (🟢→🟡 ou 🟡→🔴). Um spec honesto sobre suas incertezas vale mais
100
+ que um spec fluente que apresenta suposição como fato.
101
+ 4. **Rode `dare reverse --report`** — o CLI conta os marcadores e gera `confidence-report.md` +
102
+ `traceability/code-spec-matrix.md` com o índice determinístico. Mostre o índice ao usuário.
103
+
104
+ ## Modo `--deep` (Fase 3)
105
+
106
+ Se `dare reverse --deep` foi usado, há artefatos extras em `DARE/REVERSE/` a completar:
107
+
108
+ - **`erd.md`** — o CLI extraiu entidades de migrations/Prisma/ORM (🟢, com evidência). Complete
109
+ relações/entidades **não-explícitas** no schema (🟡) e corrija o que estiver errado.
110
+ - **`domain-rules.md`** — regras de negócio (validações, invariantes, cálculos, políticas), 🟢/🟡/🔴.
111
+ - **`state-machines.md`** — um `stateDiagram-v2` por entidade/fluxo com estados e transições reais.
112
+ - **`permissions.md`** — papéis, recursos e regras de autorização (quem pode o quê).
113
+ - **`c4/c4-context.md`** e **`c4/c4-container.md`** — atores/sistemas externos e containers de deploy.
114
+ (O nível *component* já é o mapa de módulos em `c4/c4-component.md`, gerado pelo CLI.)
115
+
116
+ ## Regras de ouro
117
+
118
+ 1. **Não invente.** Se um fluxo não está claro no código, marque 🔴 (gap) em vez de chutar.
119
+ 2. **Fidelidade ao código real** — descreva o que o código faz, não o que deveria fazer.
120
+ 3. **Diagramas enxutos** — um fluxo legível vale mais que um diagrama exaustivo e ilegível.
121
+ 4. **Não re-varra** — os fatos já estão em `reverse-facts.json`; foque na inferência semântica.
122
+ 5. **Preserve o determinístico** — nunca edite o Mapa de Módulos/tabela/grafo gerados pelo CLI.
123
+
124
+ ## Antipatterns
125
+
126
+ | AP | Antipattern | Por quê |
127
+ |---|---|---|
128
+ | AP-01 | Inventar endpoints/entidades não presentes no código | Polui a pré-arquitetura com ficção |
129
+ | AP-02 | Reescrever a tabela de módulos do CLI | Quebra a fonte determinística |
130
+ | AP-03 | `sequenceDiagram` gigante e ilegível | Anula o propósito do diagrama |
131
+ | AP-04 | Pular a seção de Incertezas | Remove o ponto de validação humana |
132
+ | AP-05 | Ler o projeto inteiro arquivo a arquivo | Desperdiça contexto; os fatos já estão no JSON |
133
+ | AP-06 | Marcar tudo 🟢 sem evidência `file:line` | Infla a confiança e engana o humano — o valor está em separar 🟢/🟡/🔴 |
134
+
135
+ $ARGUMENTS
136
+
137
+ ---
138
+
139
+ Skill MIT — parte do DARE Method. Fase 0 (brownfield). Pareia com o comando `dare reverse`.