@dewtech/dare-cli 3.2.0 → 3.4.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 (839) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +764 -762
  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/ralph-loop.test.js +107 -45
  6. package/dist/__tests__/dag-runner/ralph-loop.test.js.map +1 -1
  7. package/dist/__tests__/dag-runner/state-store.test.d.ts +2 -0
  8. package/dist/__tests__/dag-runner/state-store.test.d.ts.map +1 -0
  9. package/dist/__tests__/dag-runner/state-store.test.js +74 -0
  10. package/dist/__tests__/dag-runner/state-store.test.js.map +1 -0
  11. package/dist/__tests__/ide-command-parity.test.js +1 -0
  12. package/dist/__tests__/ide-command-parity.test.js.map +1 -1
  13. package/dist/__tests__/mcp-server/server.test.js +3 -16
  14. package/dist/__tests__/mcp-server/server.test.js.map +1 -1
  15. package/dist/__tests__/project-generator.test.d.ts +2 -0
  16. package/dist/__tests__/project-generator.test.d.ts.map +1 -0
  17. package/dist/__tests__/project-generator.test.js +56 -0
  18. package/dist/__tests__/project-generator.test.js.map +1 -0
  19. package/dist/__tests__/refine.test.js +49 -49
  20. package/dist/__tests__/reverse-collection.test.js +6 -6
  21. package/dist/__tests__/review.test.js +38 -38
  22. package/dist/__tests__/security-hardening.test.d.ts +2 -0
  23. package/dist/__tests__/security-hardening.test.d.ts.map +1 -0
  24. package/dist/__tests__/security-hardening.test.js +101 -0
  25. package/dist/__tests__/security-hardening.test.js.map +1 -0
  26. package/dist/__tests__/validate.test.js +65 -65
  27. package/dist/bin/dare.js +2 -0
  28. package/dist/bin/dare.js.map +1 -1
  29. package/dist/commands/__tests__/bench.spec.d.ts +2 -0
  30. package/dist/commands/__tests__/bench.spec.d.ts.map +1 -0
  31. package/dist/commands/__tests__/bench.spec.js +106 -0
  32. package/dist/commands/__tests__/bench.spec.js.map +1 -0
  33. package/dist/commands/__tests__/execute.best-of.spec.d.ts +2 -0
  34. package/dist/commands/__tests__/execute.best-of.spec.d.ts.map +1 -0
  35. package/dist/commands/__tests__/execute.best-of.spec.js +24 -0
  36. package/dist/commands/__tests__/execute.best-of.spec.js.map +1 -0
  37. package/dist/commands/__tests__/execute.telemetry.spec.d.ts +2 -0
  38. package/dist/commands/__tests__/execute.telemetry.spec.d.ts.map +1 -0
  39. package/dist/commands/__tests__/execute.telemetry.spec.js +93 -0
  40. package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -0
  41. package/dist/commands/__tests__/execute.verify.spec.d.ts +2 -0
  42. package/dist/commands/__tests__/execute.verify.spec.d.ts.map +1 -0
  43. package/dist/commands/__tests__/execute.verify.spec.js +150 -0
  44. package/dist/commands/__tests__/execute.verify.spec.js.map +1 -0
  45. package/dist/commands/__tests__/init-validation.test.d.ts +2 -0
  46. package/dist/commands/__tests__/init-validation.test.d.ts.map +1 -0
  47. package/dist/commands/__tests__/init-validation.test.js +81 -0
  48. package/dist/commands/__tests__/init-validation.test.js.map +1 -0
  49. package/dist/commands/__tests__/init.integration.spec.js +6 -4
  50. package/dist/commands/__tests__/init.integration.spec.js.map +1 -1
  51. package/dist/commands/__tests__/init.spec.d.ts +2 -0
  52. package/dist/commands/__tests__/init.spec.d.ts.map +1 -0
  53. package/dist/commands/__tests__/init.spec.js +88 -0
  54. package/dist/commands/__tests__/init.spec.js.map +1 -0
  55. package/dist/commands/bench.d.ts +10 -0
  56. package/dist/commands/bench.d.ts.map +1 -0
  57. package/dist/commands/bench.js +64 -0
  58. package/dist/commands/bench.js.map +1 -0
  59. package/dist/commands/blueprint.js +122 -122
  60. package/dist/commands/design.js +20 -20
  61. package/dist/commands/execute-verification.d.ts +51 -0
  62. package/dist/commands/execute-verification.d.ts.map +1 -0
  63. package/dist/commands/execute-verification.js +201 -0
  64. package/dist/commands/execute-verification.js.map +1 -0
  65. package/dist/commands/execute.d.ts.map +1 -1
  66. package/dist/commands/execute.js +139 -2
  67. package/dist/commands/execute.js.map +1 -1
  68. package/dist/commands/init-validation.d.ts +22 -0
  69. package/dist/commands/init-validation.d.ts.map +1 -0
  70. package/dist/commands/init-validation.js +54 -0
  71. package/dist/commands/init-validation.js.map +1 -0
  72. package/dist/commands/init.d.ts.map +1 -1
  73. package/dist/commands/init.js +26 -10
  74. package/dist/commands/init.js.map +1 -1
  75. package/dist/dag-runner/ralph-loop.d.ts +9 -9
  76. package/dist/dag-runner/ralph-loop.d.ts.map +1 -1
  77. package/dist/dag-runner/ralph-loop.js +89 -113
  78. package/dist/dag-runner/ralph-loop.js.map +1 -1
  79. package/dist/dag-runner/state-store.d.ts +14 -1
  80. package/dist/dag-runner/state-store.d.ts.map +1 -1
  81. package/dist/dag-runner/state-store.js +39 -8
  82. package/dist/dag-runner/state-store.js.map +1 -1
  83. package/dist/exec/npm-invoke.d.ts +8 -0
  84. package/dist/exec/npm-invoke.d.ts.map +1 -0
  85. package/dist/exec/npm-invoke.js +45 -0
  86. package/dist/exec/npm-invoke.js.map +1 -0
  87. package/dist/exec/safe-spawn.d.ts +21 -0
  88. package/dist/exec/safe-spawn.d.ts.map +1 -0
  89. package/dist/exec/safe-spawn.js +108 -0
  90. package/dist/exec/safe-spawn.js.map +1 -0
  91. package/dist/graphrag/graph-rag.js +24 -24
  92. package/dist/graphrag/types.d.ts +2 -2
  93. package/dist/graphrag/types.d.ts.map +1 -1
  94. package/dist/mcp-server/__tests__/auth.test.d.ts +2 -0
  95. package/dist/mcp-server/__tests__/auth.test.d.ts.map +1 -0
  96. package/dist/mcp-server/__tests__/auth.test.js +72 -0
  97. package/dist/mcp-server/__tests__/auth.test.js.map +1 -0
  98. package/dist/mcp-server/__tests__/boot-config.test.d.ts +2 -0
  99. package/dist/mcp-server/__tests__/boot-config.test.d.ts.map +1 -0
  100. package/dist/mcp-server/__tests__/boot-config.test.js +29 -0
  101. package/dist/mcp-server/__tests__/boot-config.test.js.map +1 -0
  102. package/dist/mcp-server/__tests__/error-sanitize.test.d.ts +2 -0
  103. package/dist/mcp-server/__tests__/error-sanitize.test.d.ts.map +1 -0
  104. package/dist/mcp-server/__tests__/error-sanitize.test.js +66 -0
  105. package/dist/mcp-server/__tests__/error-sanitize.test.js.map +1 -0
  106. package/dist/mcp-server/__tests__/path-confinement.test.d.ts +2 -0
  107. package/dist/mcp-server/__tests__/path-confinement.test.d.ts.map +1 -0
  108. package/dist/mcp-server/__tests__/path-confinement.test.js +135 -0
  109. package/dist/mcp-server/__tests__/path-confinement.test.js.map +1 -0
  110. package/dist/mcp-server/bin/server.js +18 -6
  111. package/dist/mcp-server/bin/server.js.map +1 -1
  112. package/dist/mcp-server/boot-config.d.ts +6 -0
  113. package/dist/mcp-server/boot-config.d.ts.map +1 -0
  114. package/dist/mcp-server/boot-config.js +17 -0
  115. package/dist/mcp-server/boot-config.js.map +1 -0
  116. package/dist/mcp-server/middleware/auth.d.ts +10 -0
  117. package/dist/mcp-server/middleware/auth.d.ts.map +1 -0
  118. package/dist/mcp-server/middleware/auth.js +44 -0
  119. package/dist/mcp-server/middleware/auth.js.map +1 -0
  120. package/dist/mcp-server/middleware/cors.d.ts +6 -0
  121. package/dist/mcp-server/middleware/cors.d.ts.map +1 -0
  122. package/dist/mcp-server/middleware/cors.js +30 -0
  123. package/dist/mcp-server/middleware/cors.js.map +1 -0
  124. package/dist/mcp-server/middleware/error-handler.d.ts +11 -0
  125. package/dist/mcp-server/middleware/error-handler.d.ts.map +1 -0
  126. package/dist/mcp-server/middleware/error-handler.js +14 -0
  127. package/dist/mcp-server/middleware/error-handler.js.map +1 -0
  128. package/dist/mcp-server/server.d.ts +7 -2
  129. package/dist/mcp-server/server.d.ts.map +1 -1
  130. package/dist/mcp-server/server.js +185 -105
  131. package/dist/mcp-server/server.js.map +1 -1
  132. package/dist/skills/registry-mock.json +109 -109
  133. package/dist/skills/tests/manifest.spec.js +20 -20
  134. package/dist/stacks/__tests__/dna-emitter.spec.js +6 -6
  135. package/dist/stacks/dna-emitter.d.ts.map +1 -1
  136. package/dist/stacks/dna-emitter.js +70 -79
  137. package/dist/stacks/dna-emitter.js.map +1 -1
  138. package/dist/stacks/ruby-rails-8/scaffold.js +15 -15
  139. package/dist/utils/UpdateApplier.d.ts.map +1 -1
  140. package/dist/utils/UpdateApplier.js +8 -0
  141. package/dist/utils/UpdateApplier.js.map +1 -1
  142. package/dist/utils/logger.d.ts +7 -0
  143. package/dist/utils/logger.d.ts.map +1 -0
  144. package/dist/utils/logger.js +23 -0
  145. package/dist/utils/logger.js.map +1 -0
  146. package/dist/utils/path-safety.d.ts +22 -0
  147. package/dist/utils/path-safety.d.ts.map +1 -0
  148. package/dist/utils/path-safety.js +83 -0
  149. package/dist/utils/path-safety.js.map +1 -0
  150. package/dist/utils/project-generator.d.ts.map +1 -1
  151. package/dist/utils/project-generator.js +256 -252
  152. package/dist/utils/project-generator.js.map +1 -1
  153. package/dist/utils/stack-bootstrap.js +373 -373
  154. package/dist/utils/stack-bootstrap.js.map +1 -1
  155. package/dist/utils/templates.js +394 -394
  156. package/dist/verification/__tests__/anti-tamper.test.d.ts +2 -0
  157. package/dist/verification/__tests__/anti-tamper.test.d.ts.map +1 -0
  158. package/dist/verification/__tests__/anti-tamper.test.js +73 -0
  159. package/dist/verification/__tests__/anti-tamper.test.js.map +1 -0
  160. package/dist/verification/__tests__/bench-fixtures.test.d.ts +2 -0
  161. package/dist/verification/__tests__/bench-fixtures.test.d.ts.map +1 -0
  162. package/dist/verification/__tests__/bench-fixtures.test.js +35 -0
  163. package/dist/verification/__tests__/bench-fixtures.test.js.map +1 -0
  164. package/dist/verification/__tests__/bench-harness.test.d.ts +2 -0
  165. package/dist/verification/__tests__/bench-harness.test.d.ts.map +1 -0
  166. package/dist/verification/__tests__/bench-harness.test.js +75 -0
  167. package/dist/verification/__tests__/bench-harness.test.js.map +1 -0
  168. package/dist/verification/__tests__/bench-report.test.d.ts +2 -0
  169. package/dist/verification/__tests__/bench-report.test.d.ts.map +1 -0
  170. package/dist/verification/__tests__/bench-report.test.js +73 -0
  171. package/dist/verification/__tests__/bench-report.test.js.map +1 -0
  172. package/dist/verification/__tests__/best-of-n-runner.test.d.ts +2 -0
  173. package/dist/verification/__tests__/best-of-n-runner.test.d.ts.map +1 -0
  174. package/dist/verification/__tests__/best-of-n-runner.test.js +94 -0
  175. package/dist/verification/__tests__/best-of-n-runner.test.js.map +1 -0
  176. package/dist/verification/__tests__/config.test.d.ts +2 -0
  177. package/dist/verification/__tests__/config.test.d.ts.map +1 -0
  178. package/dist/verification/__tests__/config.test.js +50 -0
  179. package/dist/verification/__tests__/config.test.js.map +1 -0
  180. package/dist/verification/__tests__/decay-policy.test.d.ts +2 -0
  181. package/dist/verification/__tests__/decay-policy.test.d.ts.map +1 -0
  182. package/dist/verification/__tests__/decay-policy.test.js +130 -0
  183. package/dist/verification/__tests__/decay-policy.test.js.map +1 -0
  184. package/dist/verification/__tests__/fail-to-pass.test.d.ts +2 -0
  185. package/dist/verification/__tests__/fail-to-pass.test.d.ts.map +1 -0
  186. package/dist/verification/__tests__/fail-to-pass.test.js +107 -0
  187. package/dist/verification/__tests__/fail-to-pass.test.js.map +1 -0
  188. package/dist/verification/__tests__/failure-signature.test.d.ts +2 -0
  189. package/dist/verification/__tests__/failure-signature.test.d.ts.map +1 -0
  190. package/dist/verification/__tests__/failure-signature.test.js +40 -0
  191. package/dist/verification/__tests__/failure-signature.test.js.map +1 -0
  192. package/dist/verification/__tests__/logger.test.d.ts +2 -0
  193. package/dist/verification/__tests__/logger.test.d.ts.map +1 -0
  194. package/dist/verification/__tests__/logger.test.js +23 -0
  195. package/dist/verification/__tests__/logger.test.js.map +1 -0
  196. package/dist/verification/__tests__/mutation-cargo-mutants.test.d.ts +2 -0
  197. package/dist/verification/__tests__/mutation-cargo-mutants.test.d.ts.map +1 -0
  198. package/dist/verification/__tests__/mutation-cargo-mutants.test.js +96 -0
  199. package/dist/verification/__tests__/mutation-cargo-mutants.test.js.map +1 -0
  200. package/dist/verification/__tests__/mutation-infection.test.d.ts +2 -0
  201. package/dist/verification/__tests__/mutation-infection.test.d.ts.map +1 -0
  202. package/dist/verification/__tests__/mutation-infection.test.js +101 -0
  203. package/dist/verification/__tests__/mutation-infection.test.js.map +1 -0
  204. package/dist/verification/__tests__/mutation-mutmut.test.d.ts +2 -0
  205. package/dist/verification/__tests__/mutation-mutmut.test.d.ts.map +1 -0
  206. package/dist/verification/__tests__/mutation-mutmut.test.js +102 -0
  207. package/dist/verification/__tests__/mutation-mutmut.test.js.map +1 -0
  208. package/dist/verification/__tests__/mutation-registry.test.d.ts +2 -0
  209. package/dist/verification/__tests__/mutation-registry.test.d.ts.map +1 -0
  210. package/dist/verification/__tests__/mutation-registry.test.js +28 -0
  211. package/dist/verification/__tests__/mutation-registry.test.js.map +1 -0
  212. package/dist/verification/__tests__/mutation-stryker.test.d.ts +2 -0
  213. package/dist/verification/__tests__/mutation-stryker.test.d.ts.map +1 -0
  214. package/dist/verification/__tests__/mutation-stryker.test.js +88 -0
  215. package/dist/verification/__tests__/mutation-stryker.test.js.map +1 -0
  216. package/dist/verification/__tests__/no-shell-true.test.d.ts +2 -0
  217. package/dist/verification/__tests__/no-shell-true.test.d.ts.map +1 -0
  218. package/dist/verification/__tests__/no-shell-true.test.js +43 -0
  219. package/dist/verification/__tests__/no-shell-true.test.js.map +1 -0
  220. package/dist/verification/__tests__/path-safety.test.d.ts +2 -0
  221. package/dist/verification/__tests__/path-safety.test.d.ts.map +1 -0
  222. package/dist/verification/__tests__/path-safety.test.js +59 -0
  223. package/dist/verification/__tests__/path-safety.test.js.map +1 -0
  224. package/dist/verification/__tests__/prerank.test.d.ts +2 -0
  225. package/dist/verification/__tests__/prerank.test.d.ts.map +1 -0
  226. package/dist/verification/__tests__/prerank.test.js +44 -0
  227. package/dist/verification/__tests__/prerank.test.js.map +1 -0
  228. package/dist/verification/__tests__/runner.test.d.ts +2 -0
  229. package/dist/verification/__tests__/runner.test.d.ts.map +1 -0
  230. package/dist/verification/__tests__/runner.test.js +200 -0
  231. package/dist/verification/__tests__/runner.test.js.map +1 -0
  232. package/dist/verification/__tests__/safe-spawn.test.d.ts +2 -0
  233. package/dist/verification/__tests__/safe-spawn.test.d.ts.map +1 -0
  234. package/dist/verification/__tests__/safe-spawn.test.js +36 -0
  235. package/dist/verification/__tests__/safe-spawn.test.js.map +1 -0
  236. package/dist/verification/__tests__/security.test.d.ts +2 -0
  237. package/dist/verification/__tests__/security.test.d.ts.map +1 -0
  238. package/dist/verification/__tests__/security.test.js +79 -0
  239. package/dist/verification/__tests__/security.test.js.map +1 -0
  240. package/dist/verification/__tests__/selector-pareto.test.d.ts +2 -0
  241. package/dist/verification/__tests__/selector-pareto.test.d.ts.map +1 -0
  242. package/dist/verification/__tests__/selector-pareto.test.js +77 -0
  243. package/dist/verification/__tests__/selector-pareto.test.js.map +1 -0
  244. package/dist/verification/__tests__/telemetry.test.d.ts +2 -0
  245. package/dist/verification/__tests__/telemetry.test.d.ts.map +1 -0
  246. package/dist/verification/__tests__/telemetry.test.js +116 -0
  247. package/dist/verification/__tests__/telemetry.test.js.map +1 -0
  248. package/dist/verification/__tests__/type-check.test.d.ts +2 -0
  249. package/dist/verification/__tests__/type-check.test.d.ts.map +1 -0
  250. package/dist/verification/__tests__/type-check.test.js +52 -0
  251. package/dist/verification/__tests__/type-check.test.js.map +1 -0
  252. package/dist/verification/__tests__/worktree.test.d.ts +2 -0
  253. package/dist/verification/__tests__/worktree.test.d.ts.map +1 -0
  254. package/dist/verification/__tests__/worktree.test.js +41 -0
  255. package/dist/verification/__tests__/worktree.test.js.map +1 -0
  256. package/dist/verification/bench/fixtures.d.ts +11 -0
  257. package/dist/verification/bench/fixtures.d.ts.map +1 -0
  258. package/dist/verification/bench/fixtures.js +66 -0
  259. package/dist/verification/bench/fixtures.js.map +1 -0
  260. package/dist/verification/bench/harness.d.ts +19 -0
  261. package/dist/verification/bench/harness.d.ts.map +1 -0
  262. package/dist/verification/bench/harness.js +138 -0
  263. package/dist/verification/bench/harness.js.map +1 -0
  264. package/dist/verification/bench/report.d.ts +53 -0
  265. package/dist/verification/bench/report.d.ts.map +1 -0
  266. package/dist/verification/bench/report.js +47 -0
  267. package/dist/verification/bench/report.js.map +1 -0
  268. package/dist/verification/best-of-n/runner.d.ts +29 -0
  269. package/dist/verification/best-of-n/runner.d.ts.map +1 -0
  270. package/dist/verification/best-of-n/runner.js +76 -0
  271. package/dist/verification/best-of-n/runner.js.map +1 -0
  272. package/dist/verification/best-of-n/selector/pareto.d.ts +10 -0
  273. package/dist/verification/best-of-n/selector/pareto.d.ts.map +1 -0
  274. package/dist/verification/best-of-n/selector/pareto.js +65 -0
  275. package/dist/verification/best-of-n/selector/pareto.js.map +1 -0
  276. package/dist/verification/best-of-n/selector/prerank.d.ts +23 -0
  277. package/dist/verification/best-of-n/selector/prerank.d.ts.map +1 -0
  278. package/dist/verification/best-of-n/selector/prerank.js +32 -0
  279. package/dist/verification/best-of-n/selector/prerank.js.map +1 -0
  280. package/dist/verification/best-of-n/worktree.d.ts +9 -0
  281. package/dist/verification/best-of-n/worktree.d.ts.map +1 -0
  282. package/dist/verification/best-of-n/worktree.js +100 -0
  283. package/dist/verification/best-of-n/worktree.js.map +1 -0
  284. package/dist/verification/config.d.ts +24 -0
  285. package/dist/verification/config.d.ts.map +1 -0
  286. package/dist/verification/config.js +168 -0
  287. package/dist/verification/config.js.map +1 -0
  288. package/dist/verification/decay/policy.d.ts +16 -0
  289. package/dist/verification/decay/policy.d.ts.map +1 -0
  290. package/dist/verification/decay/policy.js +64 -0
  291. package/dist/verification/decay/policy.js.map +1 -0
  292. package/dist/verification/decay/signature.d.ts +6 -0
  293. package/dist/verification/decay/signature.d.ts.map +1 -0
  294. package/dist/verification/decay/signature.js +18 -0
  295. package/dist/verification/decay/signature.js.map +1 -0
  296. package/dist/verification/gates/anti-tamper.d.ts +16 -0
  297. package/dist/verification/gates/anti-tamper.d.ts.map +1 -0
  298. package/dist/verification/gates/anti-tamper.js +142 -0
  299. package/dist/verification/gates/anti-tamper.js.map +1 -0
  300. package/dist/verification/gates/fail-to-pass.d.ts +39 -0
  301. package/dist/verification/gates/fail-to-pass.d.ts.map +1 -0
  302. package/dist/verification/gates/fail-to-pass.js +173 -0
  303. package/dist/verification/gates/fail-to-pass.js.map +1 -0
  304. package/dist/verification/gates/mutation/adapter.d.ts +34 -0
  305. package/dist/verification/gates/mutation/adapter.d.ts.map +1 -0
  306. package/dist/verification/gates/mutation/adapter.js +22 -0
  307. package/dist/verification/gates/mutation/adapter.js.map +1 -0
  308. package/dist/verification/gates/mutation/cargo-mutants.d.ts +28 -0
  309. package/dist/verification/gates/mutation/cargo-mutants.d.ts.map +1 -0
  310. package/dist/verification/gates/mutation/cargo-mutants.js +170 -0
  311. package/dist/verification/gates/mutation/cargo-mutants.js.map +1 -0
  312. package/dist/verification/gates/mutation/infection.d.ts +28 -0
  313. package/dist/verification/gates/mutation/infection.d.ts.map +1 -0
  314. package/dist/verification/gates/mutation/infection.js +149 -0
  315. package/dist/verification/gates/mutation/infection.js.map +1 -0
  316. package/dist/verification/gates/mutation/mutmut.d.ts +23 -0
  317. package/dist/verification/gates/mutation/mutmut.d.ts.map +1 -0
  318. package/dist/verification/gates/mutation/mutmut.js +148 -0
  319. package/dist/verification/gates/mutation/mutmut.js.map +1 -0
  320. package/dist/verification/gates/mutation/stryker.d.ts +19 -0
  321. package/dist/verification/gates/mutation/stryker.d.ts.map +1 -0
  322. package/dist/verification/gates/mutation/stryker.js +103 -0
  323. package/dist/verification/gates/mutation/stryker.js.map +1 -0
  324. package/dist/verification/gates/type-check.d.ts +11 -0
  325. package/dist/verification/gates/type-check.d.ts.map +1 -0
  326. package/dist/verification/gates/type-check.js +84 -0
  327. package/dist/verification/gates/type-check.js.map +1 -0
  328. package/dist/verification/registry.d.ts +6 -0
  329. package/dist/verification/registry.d.ts.map +1 -0
  330. package/dist/verification/registry.js +49 -0
  331. package/dist/verification/registry.js.map +1 -0
  332. package/dist/verification/runner.d.ts +27 -0
  333. package/dist/verification/runner.d.ts.map +1 -0
  334. package/dist/verification/runner.js +173 -0
  335. package/dist/verification/runner.js.map +1 -0
  336. package/dist/verification/telemetry.d.ts +18 -0
  337. package/dist/verification/telemetry.d.ts.map +1 -0
  338. package/dist/verification/telemetry.js +71 -0
  339. package/dist/verification/telemetry.js.map +1 -0
  340. package/dist/verification/types.d.ts +89 -0
  341. package/dist/verification/types.d.ts.map +1 -0
  342. package/dist/verification/types.js +3 -0
  343. package/dist/verification/types.js.map +1 -0
  344. package/package.json +96 -91
  345. package/templates/DARE-dag-example.yaml +280 -280
  346. package/templates/UPDATE-MANIFEST.json +68 -48
  347. package/templates/backend/node-nestjs/.env.example +9 -9
  348. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  349. package/templates/backend/node-nestjs/package.json +50 -50
  350. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  351. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  352. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  353. package/templates/backend/node-nestjs/src/main.ts +24 -24
  354. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  355. package/templates/backend/php-laravel/.env.example +22 -22
  356. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  357. package/templates/backend/php-laravel/composer.json +40 -40
  358. package/templates/backend/python-fastapi/.env.example +4 -4
  359. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  360. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  361. package/templates/backend/python-fastapi/main.py +35 -35
  362. package/templates/backend/python-fastapi/requirements.txt +13 -13
  363. package/templates/backend/rust-axum/.env.example +3 -3
  364. package/templates/backend/rust-axum/Cargo.toml +23 -23
  365. package/templates/backend/rust-axum/src/errors.rs +30 -30
  366. package/templates/backend/rust-axum/src/main.rs +32 -32
  367. package/templates/backend/rust-axum/src/routes.rs +6 -6
  368. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  369. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  370. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  371. package/templates/frontend/leptos-csr/index.html +11 -11
  372. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  373. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  374. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  375. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  376. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  377. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  378. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  379. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  380. package/templates/frontend/react/index.html +12 -12
  381. package/templates/frontend/react/package.json +35 -35
  382. package/templates/frontend/react/src/App.tsx +25 -25
  383. package/templates/frontend/react/src/main.tsx +9 -9
  384. package/templates/frontend/vue/package.json +32 -32
  385. package/templates/frontend/vue/src/App.vue +7 -7
  386. package/templates/frontend/vue/src/main.ts +10 -10
  387. package/templates/frontend/vue/src/router/index.ts +14 -14
  388. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  389. package/templates/hooks/pre-commit-dare-validate +24 -24
  390. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -152
  391. package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -0
  392. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +368 -368
  393. package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -32
  394. package/templates/ide/antigravity/.agents/skills/dare-bugfix-design/SKILL.md +76 -76
  395. package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -32
  396. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -154
  397. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -130
  398. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  399. package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +180 -180
  400. package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -33
  401. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -63
  402. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -315
  403. package/templates/ide/antigravity/.agents/skills/dare-execute/SKILL.md +264 -264
  404. package/templates/ide/antigravity/.agents/skills/dare-feature-design/SKILL.md +74 -74
  405. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -192
  406. package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -35
  407. package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -31
  408. package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -35
  409. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -337
  410. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -166
  411. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -217
  412. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -61
  413. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -187
  414. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -217
  415. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
  416. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -108
  417. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
  418. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -263
  419. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  420. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -274
  421. package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -35
  422. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
  423. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -188
  424. package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -33
  425. package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -33
  426. package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -30
  427. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -343
  428. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -377
  429. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -382
  430. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -326
  431. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -393
  432. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  433. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  434. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
  435. package/templates/ide/antigravity/templates/TASKS-template.md +26 -26
  436. package/templates/ide/antigravity/templates/TELEMETRY-template.md +125 -125
  437. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -131
  438. package/templates/ide/claude/.claude/commands/dare-bench.md +18 -0
  439. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
  440. package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -27
  441. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -119
  442. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
  443. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  444. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -117
  445. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  446. package/templates/ide/claude/.claude/commands/dare-dag.md +27 -27
  447. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  448. package/templates/ide/claude/.claude/commands/dare-discover.md +28 -28
  449. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -75
  450. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -207
  451. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  452. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -147
  453. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -149
  454. package/templates/ide/claude/.claude/commands/dare-graph.md +30 -30
  455. package/templates/ide/claude/.claude/commands/dare-info.md +26 -26
  456. package/templates/ide/claude/.claude/commands/dare-init.md +30 -30
  457. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -211
  458. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -124
  459. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -148
  460. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -72
  461. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -166
  462. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -159
  463. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
  464. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -139
  465. package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
  466. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  467. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  468. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  469. package/templates/ide/claude/.claude/commands/dare-skill.md +30 -30
  470. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  471. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -132
  472. package/templates/ide/claude/.claude/commands/dare-update.md +28 -28
  473. package/templates/ide/claude/.claude/commands/dare-validate.md +28 -28
  474. package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -25
  475. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -205
  476. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -232
  477. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -228
  478. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -210
  479. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -236
  480. package/templates/ide/claude/.claude/settings.example.json +35 -35
  481. package/templates/ide/claude/CLAUDE.md +146 -146
  482. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  483. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  484. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
  485. package/templates/ide/claude/templates/TASKS-template.md +26 -26
  486. package/templates/ide/claude/templates/TELEMETRY-template.md +125 -125
  487. package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -0
  488. package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +86 -86
  489. package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -27
  490. package/templates/ide/cursor/.cursor/commands/dare-bugfix-design.md +64 -64
  491. package/templates/ide/cursor/.cursor/commands/dare-dag-run.md +110 -110
  492. package/templates/ide/cursor/.cursor/commands/dare-dag-viz.md +139 -139
  493. package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -27
  494. package/templates/ide/cursor/.cursor/commands/dare-design.md +35 -35
  495. package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -28
  496. package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -75
  497. package/templates/ide/cursor/.cursor/commands/dare-docker-compose.md +18 -18
  498. package/templates/ide/cursor/.cursor/commands/dare-dockerfile.md +17 -17
  499. package/templates/ide/cursor/.cursor/commands/dare-execute.md +19 -19
  500. package/templates/ide/cursor/.cursor/commands/dare-feature-design.md +64 -64
  501. package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -30
  502. package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -26
  503. package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -30
  504. package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -72
  505. package/templates/ide/cursor/.cursor/commands/dare-refine.md +107 -107
  506. package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -139
  507. package/templates/ide/cursor/.cursor/commands/dare-review.md +91 -91
  508. package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -30
  509. package/templates/ide/cursor/.cursor/commands/dare-tasks.md +184 -184
  510. package/templates/ide/cursor/.cursor/commands/dare-telemetry.md +42 -42
  511. package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -28
  512. package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -28
  513. package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -25
  514. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -263
  515. package/templates/ide/cursor/.cursor/rules/skill-bugfix-design.mdc +51 -51
  516. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -173
  517. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -134
  518. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  519. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -63
  520. package/templates/ide/cursor/.cursor/rules/skill-docker.mdc +33 -33
  521. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -352
  522. package/templates/ide/cursor/.cursor/rules/skill-feature-design.mdc +43 -43
  523. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -244
  524. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -371
  525. package/templates/ide/cursor/.cursor/rules/skill-laravel-api.mdc +44 -44
  526. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -266
  527. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -295
  528. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -367
  529. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -58
  530. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -346
  531. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -248
  532. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -400
  533. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -262
  534. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -107
  535. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -281
  536. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  537. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  538. package/templates/ide/cursor/.cursor/rules/skill-telemetry.mdc +156 -156
  539. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  540. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  541. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
  542. package/templates/ide/cursor/templates/TASKS-template.md +26 -26
  543. package/templates/ide/cursor/templates/TELEMETRY-template.md +125 -125
  544. package/templates/shared/docker-compose.yml +41 -41
  545. package/templates/stacks/go-gin/.dare/skills.yml +11 -11
  546. package/templates/stacks/go-gin/.env.example +24 -24
  547. package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -42
  548. package/templates/stacks/go-gin/README.md.tpl +38 -38
  549. package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -78
  550. package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -2
  551. package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -12
  552. package/templates/stacks/go-gin/db/queries/users.sql +23 -23
  553. package/templates/stacks/go-gin/gitignore +7 -7
  554. package/templates/stacks/go-gin/go.mod.tpl +17 -17
  555. package/templates/stacks/go-gin/internal/config/config.go +41 -41
  556. package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -25
  557. package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -72
  558. package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -72
  559. package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -37
  560. package/templates/stacks/go-gin/internal/llm/dummy.go +14 -14
  561. package/templates/stacks/go-gin/internal/llm/provider.go +8 -8
  562. package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -58
  563. package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -55
  564. package/templates/stacks/go-gin/internal/model/user.go +17 -17
  565. package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -79
  566. package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -55
  567. package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -53
  568. package/templates/stacks/go-gin/llms.txt.tpl +54 -54
  569. package/templates/stacks/go-gin/openapi.json.tpl +46 -46
  570. package/templates/stacks/go-gin/sqlc.yaml +14 -14
  571. package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -22
  572. package/templates/stacks/go-stdlib/.dare/skills.yml +11 -11
  573. package/templates/stacks/go-stdlib/.env.example +24 -24
  574. package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -42
  575. package/templates/stacks/go-stdlib/README.md.tpl +41 -41
  576. package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -82
  577. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -2
  578. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -12
  579. package/templates/stacks/go-stdlib/db/queries/users.sql +23 -23
  580. package/templates/stacks/go-stdlib/gitignore +6 -6
  581. package/templates/stacks/go-stdlib/go.mod.tpl +15 -15
  582. package/templates/stacks/go-stdlib/internal/config/config.go +41 -41
  583. package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -24
  584. package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -71
  585. package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -84
  586. package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -36
  587. package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -32
  588. package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -14
  589. package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -8
  590. package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -21
  591. package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -27
  592. package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -51
  593. package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -81
  594. package/templates/stacks/go-stdlib/internal/model/user.go +17 -17
  595. package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -75
  596. package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -55
  597. package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -53
  598. package/templates/stacks/go-stdlib/llms.txt.tpl +60 -60
  599. package/templates/stacks/go-stdlib/openapi.json.tpl +46 -46
  600. package/templates/stacks/go-stdlib/sqlc.yaml +14 -14
  601. package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -45
  602. package/templates/stacks/mcp-go/.dare/skills.yml +8 -8
  603. package/templates/stacks/mcp-go/.env.example +14 -14
  604. package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -42
  605. package/templates/stacks/mcp-go/README.md.tpl +50 -50
  606. package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -62
  607. package/templates/stacks/mcp-go/gitignore +6 -6
  608. package/templates/stacks/mcp-go/go.mod.tpl +9 -9
  609. package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -9
  610. package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -80
  611. package/templates/stacks/mcp-go/internal/tools/echo.go +15 -15
  612. package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -21
  613. package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -17
  614. package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -14
  615. package/templates/stacks/mcp-go/llms.txt.tpl +60 -60
  616. package/templates/stacks/mcp-go/openapi.json.tpl +31 -31
  617. package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -37
  618. package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -8
  619. package/templates/stacks/mcp-node-ts/.env.example +16 -16
  620. package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -54
  621. package/templates/stacks/mcp-node-ts/README.md.hbs +49 -49
  622. package/templates/stacks/mcp-node-ts/gitignore +7 -7
  623. package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -61
  624. package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -39
  625. package/templates/stacks/mcp-node-ts/package.json.hbs +35 -35
  626. package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -71
  627. package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -36
  628. package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -45
  629. package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -23
  630. package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -18
  631. package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -68
  632. package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -58
  633. package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -5
  634. package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -50
  635. package/templates/stacks/mcp-node-ts/tsconfig.json +17 -17
  636. package/templates/stacks/mcp-python/.dare/skills.yml +8 -8
  637. package/templates/stacks/mcp-python/.env.example +14 -14
  638. package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -42
  639. package/templates/stacks/mcp-python/README.md.j2 +49 -49
  640. package/templates/stacks/mcp-python/gitignore +12 -12
  641. package/templates/stacks/mcp-python/llms.txt.j2 +56 -56
  642. package/templates/stacks/mcp-python/openapi.json.j2 +33 -33
  643. package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -37
  644. package/templates/stacks/mcp-python/src/cli.py.j2 +68 -68
  645. package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -10
  646. package/templates/stacks/mcp-python/src/server.py.j2 +28 -28
  647. package/templates/stacks/mcp-python/src/tools/echo.py +12 -12
  648. package/templates/stacks/mcp-python/src/transports/http.py +12 -12
  649. package/templates/stacks/mcp-python/src/transports/sse.py +13 -13
  650. package/templates/stacks/mcp-python/src/transports/stdio.py +6 -6
  651. package/templates/stacks/mcp-python/tests/test_echo.py +28 -28
  652. package/templates/stacks/mcp-rust/.dare/skills.yml +8 -8
  653. package/templates/stacks/mcp-rust/.env.example +14 -14
  654. package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -38
  655. package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -35
  656. package/templates/stacks/mcp-rust/README.md.tera +50 -50
  657. package/templates/stacks/mcp-rust/gitignore +5 -5
  658. package/templates/stacks/mcp-rust/llms.txt.tera +60 -60
  659. package/templates/stacks/mcp-rust/openapi.json.tera +31 -31
  660. package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -33
  661. package/templates/stacks/mcp-rust/src/lib.rs +6 -6
  662. package/templates/stacks/mcp-rust/src/main.rs.tera +30 -30
  663. package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -1
  664. package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -5
  665. package/templates/stacks/mcp-rust/src/server.rs.tera +38 -38
  666. package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -18
  667. package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -22
  668. package/templates/stacks/mcp-rust/src/transports/http.rs +27 -27
  669. package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -3
  670. package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -33
  671. package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -14
  672. package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -27
  673. package/templates/stacks/node-nestjs/.dare/skills.yml +11 -11
  674. package/templates/stacks/node-nestjs/.env.example +21 -21
  675. package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -54
  676. package/templates/stacks/node-nestjs/README.md.hbs +35 -35
  677. package/templates/stacks/node-nestjs/gitignore +7 -7
  678. package/templates/stacks/node-nestjs/llms.txt.hbs +47 -47
  679. package/templates/stacks/node-nestjs/nest-cli.json +16 -16
  680. package/templates/stacks/node-nestjs/openapi.json.hbs +75 -75
  681. package/templates/stacks/node-nestjs/package.json.hbs +57 -57
  682. package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -25
  683. package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -25
  684. package/templates/stacks/node-nestjs/src/app.module.ts +39 -39
  685. package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -29
  686. package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -25
  687. package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -36
  688. package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -9
  689. package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -17
  690. package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -25
  691. package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -38
  692. package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -13
  693. package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -44
  694. package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -9
  695. package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -9
  696. package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -22
  697. package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -15
  698. package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -41
  699. package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -11
  700. package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -38
  701. package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -38
  702. package/templates/stacks/node-nestjs/tsconfig.build.json +4 -4
  703. package/templates/stacks/node-nestjs/tsconfig.json +28 -28
  704. package/templates/stacks/php-laravel/.dare/skills.yml +11 -11
  705. package/templates/stacks/php-laravel/.env.example +41 -41
  706. package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -43
  707. package/templates/stacks/php-laravel/README.md.hbs +36 -36
  708. package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -36
  709. package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -33
  710. package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -26
  711. package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -34
  712. package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -12
  713. package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -13
  714. package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -33
  715. package/templates/stacks/php-laravel/app/Models/User.php +44 -44
  716. package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -32
  717. package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -37
  718. package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -57
  719. package/templates/stacks/php-laravel/artisan +12 -12
  720. package/templates/stacks/php-laravel/bootstrap/app.php +29 -29
  721. package/templates/stacks/php-laravel/bootstrap/providers.php +5 -5
  722. package/templates/stacks/php-laravel/composer.json.hbs +58 -58
  723. package/templates/stacks/php-laravel/config/l5-swagger.php +41 -41
  724. package/templates/stacks/php-laravel/config/reverb.php +34 -34
  725. package/templates/stacks/php-laravel/config/sanctum.php +15 -15
  726. package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -27
  727. package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -21
  728. package/templates/stacks/php-laravel/gitignore +23 -23
  729. package/templates/stacks/php-laravel/llms.txt.hbs +53 -53
  730. package/templates/stacks/php-laravel/openapi.json.hbs +43 -43
  731. package/templates/stacks/php-laravel/phpstan.neon +9 -9
  732. package/templates/stacks/php-laravel/routes/api.php +13 -13
  733. package/templates/stacks/php-laravel/routes/channels.php +7 -7
  734. package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -35
  735. package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -30
  736. package/templates/stacks/php-laravel/tests/Pest.php +5 -5
  737. package/templates/stacks/python-fastapi/.dare/skills.yml +11 -11
  738. package/templates/stacks/python-fastapi/.env.example +21 -21
  739. package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -43
  740. package/templates/stacks/python-fastapi/README.md.j2 +35 -35
  741. package/templates/stacks/python-fastapi/alembic/env.py +46 -46
  742. package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -26
  743. package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -37
  744. package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -39
  745. package/templates/stacks/python-fastapi/app/core/config.py +24 -24
  746. package/templates/stacks/python-fastapi/app/core/security.py +34 -34
  747. package/templates/stacks/python-fastapi/app/db/session.py +22 -22
  748. package/templates/stacks/python-fastapi/app/main.py.j2 +36 -36
  749. package/templates/stacks/python-fastapi/app/models/__init__.py +3 -3
  750. package/templates/stacks/python-fastapi/app/models/user.py +30 -30
  751. package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -34
  752. package/templates/stacks/python-fastapi/app/routers/auth.py +37 -37
  753. package/templates/stacks/python-fastapi/app/routers/users.py +46 -46
  754. package/templates/stacks/python-fastapi/app/schemas/user.py +56 -56
  755. package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -22
  756. package/templates/stacks/python-fastapi/app/services/user_service.py +31 -31
  757. package/templates/stacks/python-fastapi/gitignore +12 -12
  758. package/templates/stacks/python-fastapi/llms.txt.j2 +53 -53
  759. package/templates/stacks/python-fastapi/openapi.json.j2 +43 -43
  760. package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -45
  761. package/templates/stacks/python-fastapi/tests/test_auth.py +22 -22
  762. package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -50
  763. package/templates/stacks/ruby-rails-8/.env.example +20 -20
  764. package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -112
  765. package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -61
  766. package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -11
  767. package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -34
  768. package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -18
  769. package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -23
  770. package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -44
  771. package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -93
  772. package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -33
  773. package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -68
  774. package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -44
  775. package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -54
  776. package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -12
  777. package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -35
  778. package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -67
  779. package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -62
  780. package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -82
  781. package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -21
  782. package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -52
  783. package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -36
  784. package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -48
  785. package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -57
  786. package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -73
  787. package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -67
  788. package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -53
  789. package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -57
  790. package/templates/stacks/ruby-rails-8/config/dare.yml +42 -42
  791. package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -31
  792. package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -64
  793. package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -12
  794. package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -159
  795. package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -69
  796. package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -56
  797. package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -72
  798. package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -61
  799. package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -56
  800. package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -27
  801. package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -88
  802. package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -31
  803. package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -88
  804. package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -142
  805. package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -73
  806. package/templates/stacks/rust-axum/.dare/skills.yml +11 -11
  807. package/templates/stacks/rust-axum/.env.example +26 -26
  808. package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -40
  809. package/templates/stacks/rust-axum/Cargo.toml.tera +53 -53
  810. package/templates/stacks/rust-axum/README.md.tera +37 -37
  811. package/templates/stacks/rust-axum/gitignore +5 -5
  812. package/templates/stacks/rust-axum/llms.txt.tera +54 -54
  813. package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -13
  814. package/templates/stacks/rust-axum/openapi.json.tera +46 -46
  815. package/templates/stacks/rust-axum/src/config.rs +45 -45
  816. package/templates/stacks/rust-axum/src/errors.rs +48 -48
  817. package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -48
  818. package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -3
  819. package/templates/stacks/rust-axum/src/handlers/users.rs +81 -81
  820. package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -24
  821. package/templates/stacks/rust-axum/src/lib.rs +19 -19
  822. package/templates/stacks/rust-axum/src/llm/mod.rs +1 -1
  823. package/templates/stacks/rust-axum/src/llm/provider.rs +48 -48
  824. package/templates/stacks/rust-axum/src/main.rs.tera +64 -64
  825. package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -20
  826. package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -2
  827. package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -27
  828. package/templates/stacks/rust-axum/src/models/mod.rs +1 -1
  829. package/templates/stacks/rust-axum/src/models/user.rs +13 -13
  830. package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -1
  831. package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -62
  832. package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -50
  833. package/templates/stacks/rust-axum/src/services/mod.rs +2 -2
  834. package/templates/stacks/rust-axum/src/services/user_service.rs +53 -53
  835. package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -13
  836. package/dist/commands/new.d.ts +0 -16
  837. package/dist/commands/new.d.ts.map +0 -1
  838. package/dist/commands/new.js +0 -104
  839. package/dist/commands/new.js.map +0 -1
@@ -1,193 +1,193 @@
1
- # BLUEPRINT: [Nome do Projeto]
2
-
3
- > **Gerado a partir de:** `DARE/DESIGN.md` v[X.Y]
4
- > **Data:** YYYY-MM-DD | **Status:** DRAFT → APROVADO
5
-
6
- ---
7
-
8
- ## 1. VISÃO GERAL DA ARQUITETURA
9
-
10
- [Descrição da arquitetura: Monolito modular / Microserviços / Hexagonal / Clean Architecture]
11
-
12
- ```mermaid
13
- graph TD
14
- A[Cliente] --> B[API Gateway / BFF]
15
- B --> C[Auth Service]
16
- B --> D[Core Service]
17
- D --> E[(PostgreSQL)]
18
- D --> F[(Redis)]
19
- ```
20
-
21
- **Decisões arquiteturais principais:**
22
-
23
- | Decisão | Escolha | Justificativa |
24
- |---------|---------|---------------|
25
- | Padrão de módulos | [ex: Hexagonal] | [motivo] |
26
- | Comunicação inter-serviços | [ex: REST síncrono] | [motivo] |
27
- | Autenticação | [ex: JWT stateless] | [motivo] |
28
-
29
- ---
30
-
31
- ## 2. STACK TÉCNICA DEFINIDA
32
-
33
- | Camada | Tecnologia | Versão | Papel |
34
- |--------|-----------|--------|-------|
35
- | Linguagem | | | |
36
- | Framework | | | |
37
- | Banco principal | | | |
38
- | Cache / filas | | | |
39
- | Frontend | | | |
40
- | Container | Docker | latest | Dev + CI |
41
- | Observabilidade | | | Logs, métricas, traces |
42
-
43
- ---
44
-
45
- ## 3. ESTRUTURA DE PASTAS E ARQUIVOS
46
-
47
- ```text
48
- [nome-do-projeto]/
49
- ├── [diretório principal]/
50
- │ ├── [módulo 1]/
51
- │ └── [módulo 2]/
52
- ├── DARE/
53
- │ ├── DESIGN.md
54
- │ ├── BLUEPRINT.md
55
- │ ├── TASKS.md
56
- │ ├── dare-dag.yaml
57
- │ └── EXECUTION/
58
- ├── Dockerfile
59
- ├── docker-compose.yml
60
- └── [arquivo de configuração principal]
61
- ```
62
-
63
- > **Constraints de workspace (Rust):** se Cargo workspace, NÃO definir `[build] target` global no `.cargo/config.toml` (quebra crates WASM + native). Cada crate declara suas próprias features Leptos.
64
-
65
- ---
66
-
67
- ## 4. MODELO DE DADOS
68
-
69
- ### Entidades principais
70
-
71
- ```
72
- [Entidade 1]
73
- - id: UUID (PK)
74
- - [campo]: [tipo] [restrições]
75
- - created_at, updated_at
76
-
77
- [Entidade 2]
78
- - id: UUID (PK)
79
- - [entidade_1_id]: FK → Entidade1
80
- ```
81
-
82
- ### Relacionamentos
83
-
84
- | De | Para | Cardinalidade | Via |
85
- |----|------|---------------|-----|
86
- | [Entidade 1] | [Entidade 2] | 1:N | FK |
87
-
88
- ---
89
-
90
- ## 5. CONTRATOS DE API
91
-
92
- | Método | Endpoint | Auth | Request Body | Response | Status codes |
93
- |--------|----------|------|-------------|----------|--------------|
94
- | POST | `/api/v1/[recurso]` | Não | `{campo1, campo2}` | `{id, ...}` | 201, 400, 422 |
95
- | GET | `/api/v1/[recurso]` | JWT | — | `[{id, ...}]` | 200, 401 |
96
- | GET | `/api/v1/[recurso]/:id` | JWT | — | `{id, ...}` | 200, 401, 404 |
97
- | PUT | `/api/v1/[recurso]/:id` | JWT + Owner | `{campos}` | `{id, ...}` | 200, 401, 403, 404 |
98
- | DELETE | `/api/v1/[recurso]/:id` | JWT + Admin | — | `{}` | 204, 401, 403, 404 |
99
-
100
- ---
101
-
102
- ## 6. PLANO DE EXECUÇÃO (FASES)
103
-
104
- ### Fase 1: Containerização e Setup ← **SEMPRE PRIMEIRA**
105
- **Critério de DONE:** `docker compose up -d` sobe sem erros; healthcheck `/health` retorna 200.
106
- - Dockerfile multi-stage
107
- - docker-compose.yml com todos os serviços
108
- - Variáveis de ambiente via `.env.example`
109
-
110
- ### Fase 2: Banco de Dados e Migrations
111
- **Critério de DONE:** migrations rodando; schema validado; seeds de desenvolvimento funcionando.
112
- - Migrations / schema inicial
113
- - Seeds de desenvolvimento
114
- - Índices para queries críticas
115
-
116
- ### Fase 3: Autenticação e Autorização
117
- **Critério de DONE:** login retorna JWT; endpoint protegido rejeita token inválido com 401; acesso sem permissão retorna 403.
118
- - Registro, login, refresh, logout
119
- - Middleware de autenticação
120
- - Sistema de permissões (RBAC/ACL)
121
-
122
- ### Fase 4: [Módulo de negócio principal]
123
- **Critério de DONE:** [comportamento testável esperado].
124
- - [Descrever aqui]
125
-
126
- ### Fase N-1: Auditoria de Segurança e Dependências
127
- **Critério de DONE:** `[audit-cmd]` sem CVE HIGH/CRITICAL; security headers presentes; sem secrets em código.
128
- - `npm audit --audit-level=high` / `cargo audit` / `pip-audit` / `composer audit`
129
- - Headers HTTP de segurança (HSTS, CSP, X-Frame-Options)
130
- - Scan de secrets no repositório
131
-
132
- ### Fase N: Observabilidade e Documentação
133
- **Critério de DONE:** logs estruturados em JSON; endpoint `/metrics` ou equivalente; documentação API gerada.
134
- - Logs estruturados (JSON) com trace-id
135
- - Métricas de negócio e técnicas
136
- - Documentação API (OpenAPI / Swagger)
137
-
138
- ---
139
-
140
- ## 7. VALIDAÇÃO E SEGURANÇA
141
-
142
- ### Validation Gates (Ralph Loop) por stack
143
-
144
- | Stack | Build | Test | Lint/Audit |
145
- |-------|-------|------|------------|
146
- | Rust/Axum | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
147
- | Node/NestJS | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
148
- | Python/FastAPI | `python -m py_compile` | `pytest` | `ruff check . && pip-audit` |
149
- | PHP/Laravel | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
150
- | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
151
-
152
- ### Controles de segurança obrigatórios
153
-
154
- - [ ] Rate limiting em endpoints de autenticação e públicos
155
- - [ ] Input validation no servidor para todos os endpoints
156
- - [ ] Dados sensíveis (PII, tokens, senhas) nunca em logs
157
- - [ ] Todas as dependências sem CVE HIGH/CRITICAL (ver Fase N-1)
158
- - [ ] HTTP Security Headers em produção
159
- - [ ] Secrets apenas em variáveis de ambiente / vault
160
-
161
- ---
162
-
163
- ## 8. ESTRATÉGIA DE TESTES
164
-
165
- | Tipo | Ferramenta | Cobertura mínima | O que cobre |
166
- |------|-----------|------------------|-------------|
167
- | Unitários | [jest/pytest/cargo test] | 80 % das funções críticas | Lógica de negócio isolada |
168
- | Integração | [supertest/httpx/reqwest] | Todos os endpoints | Contrato da API |
169
- | Segurança | [npm audit/cargo audit/pip-audit] | 100 % deps | CVEs conhecidos |
170
- | E2E | [playwright/cypress] se frontend | Fluxo principal | Jornada do usuário |
171
-
172
- ---
173
-
174
- ## 9. ESTRATÉGIA DE DEPLOY
175
-
176
- | Ambiente | Branch | Trigger | Infra |
177
- |----------|--------|---------|-------|
178
- | `dev` | `develop` | Push automático | [ex: Docker local / Railway] |
179
- | `staging` | `main` | PR merge | [ex: OKE / ECS / Fly.io] |
180
- | `prod` | tag `v*.*.*` | Manual | [ex: OKE / ECS / Fly.io] |
181
-
182
- ---
183
-
184
- ## 10. CHECKLIST DE APROVAÇÃO DO BLUEPRINT
185
-
186
- - [ ] Arquitetura revisada e aprovada
187
- - [ ] Modelo de dados validado
188
- - [ ] Contratos de API definidos e completos
189
- - [ ] Fases com critérios de DONE claros
190
- - [ ] Validation gates por stack definidos
191
- - [ ] Controles de segurança mapeados
192
- - [ ] Estratégia de testes cobrindo todos os tipos
193
- - [ ] DAG de tasks gerado (`dare-dag.yaml`)
1
+ # BLUEPRINT: [Nome do Projeto]
2
+
3
+ > **Gerado a partir de:** `DARE/DESIGN.md` v[X.Y]
4
+ > **Data:** YYYY-MM-DD | **Status:** DRAFT → APROVADO
5
+
6
+ ---
7
+
8
+ ## 1. VISÃO GERAL DA ARQUITETURA
9
+
10
+ [Descrição da arquitetura: Monolito modular / Microserviços / Hexagonal / Clean Architecture]
11
+
12
+ ```mermaid
13
+ graph TD
14
+ A[Cliente] --> B[API Gateway / BFF]
15
+ B --> C[Auth Service]
16
+ B --> D[Core Service]
17
+ D --> E[(PostgreSQL)]
18
+ D --> F[(Redis)]
19
+ ```
20
+
21
+ **Decisões arquiteturais principais:**
22
+
23
+ | Decisão | Escolha | Justificativa |
24
+ |---------|---------|---------------|
25
+ | Padrão de módulos | [ex: Hexagonal] | [motivo] |
26
+ | Comunicação inter-serviços | [ex: REST síncrono] | [motivo] |
27
+ | Autenticação | [ex: JWT stateless] | [motivo] |
28
+
29
+ ---
30
+
31
+ ## 2. STACK TÉCNICA DEFINIDA
32
+
33
+ | Camada | Tecnologia | Versão | Papel |
34
+ |--------|-----------|--------|-------|
35
+ | Linguagem | | | |
36
+ | Framework | | | |
37
+ | Banco principal | | | |
38
+ | Cache / filas | | | |
39
+ | Frontend | | | |
40
+ | Container | Docker | latest | Dev + CI |
41
+ | Observabilidade | | | Logs, métricas, traces |
42
+
43
+ ---
44
+
45
+ ## 3. ESTRUTURA DE PASTAS E ARQUIVOS
46
+
47
+ ```text
48
+ [nome-do-projeto]/
49
+ ├── [diretório principal]/
50
+ │ ├── [módulo 1]/
51
+ │ └── [módulo 2]/
52
+ ├── DARE/
53
+ │ ├── DESIGN.md
54
+ │ ├── BLUEPRINT.md
55
+ │ ├── TASKS.md
56
+ │ ├── dare-dag.yaml
57
+ │ └── EXECUTION/
58
+ ├── Dockerfile
59
+ ├── docker-compose.yml
60
+ └── [arquivo de configuração principal]
61
+ ```
62
+
63
+ > **Constraints de workspace (Rust):** se Cargo workspace, NÃO definir `[build] target` global no `.cargo/config.toml` (quebra crates WASM + native). Cada crate declara suas próprias features Leptos.
64
+
65
+ ---
66
+
67
+ ## 4. MODELO DE DADOS
68
+
69
+ ### Entidades principais
70
+
71
+ ```
72
+ [Entidade 1]
73
+ - id: UUID (PK)
74
+ - [campo]: [tipo] [restrições]
75
+ - created_at, updated_at
76
+
77
+ [Entidade 2]
78
+ - id: UUID (PK)
79
+ - [entidade_1_id]: FK → Entidade1
80
+ ```
81
+
82
+ ### Relacionamentos
83
+
84
+ | De | Para | Cardinalidade | Via |
85
+ |----|------|---------------|-----|
86
+ | [Entidade 1] | [Entidade 2] | 1:N | FK |
87
+
88
+ ---
89
+
90
+ ## 5. CONTRATOS DE API
91
+
92
+ | Método | Endpoint | Auth | Request Body | Response | Status codes |
93
+ |--------|----------|------|-------------|----------|--------------|
94
+ | POST | `/api/v1/[recurso]` | Não | `{campo1, campo2}` | `{id, ...}` | 201, 400, 422 |
95
+ | GET | `/api/v1/[recurso]` | JWT | — | `[{id, ...}]` | 200, 401 |
96
+ | GET | `/api/v1/[recurso]/:id` | JWT | — | `{id, ...}` | 200, 401, 404 |
97
+ | PUT | `/api/v1/[recurso]/:id` | JWT + Owner | `{campos}` | `{id, ...}` | 200, 401, 403, 404 |
98
+ | DELETE | `/api/v1/[recurso]/:id` | JWT + Admin | — | `{}` | 204, 401, 403, 404 |
99
+
100
+ ---
101
+
102
+ ## 6. PLANO DE EXECUÇÃO (FASES)
103
+
104
+ ### Fase 1: Containerização e Setup ← **SEMPRE PRIMEIRA**
105
+ **Critério de DONE:** `docker compose up -d` sobe sem erros; healthcheck `/health` retorna 200.
106
+ - Dockerfile multi-stage
107
+ - docker-compose.yml com todos os serviços
108
+ - Variáveis de ambiente via `.env.example`
109
+
110
+ ### Fase 2: Banco de Dados e Migrations
111
+ **Critério de DONE:** migrations rodando; schema validado; seeds de desenvolvimento funcionando.
112
+ - Migrations / schema inicial
113
+ - Seeds de desenvolvimento
114
+ - Índices para queries críticas
115
+
116
+ ### Fase 3: Autenticação e Autorização
117
+ **Critério de DONE:** login retorna JWT; endpoint protegido rejeita token inválido com 401; acesso sem permissão retorna 403.
118
+ - Registro, login, refresh, logout
119
+ - Middleware de autenticação
120
+ - Sistema de permissões (RBAC/ACL)
121
+
122
+ ### Fase 4: [Módulo de negócio principal]
123
+ **Critério de DONE:** [comportamento testável esperado].
124
+ - [Descrever aqui]
125
+
126
+ ### Fase N-1: Auditoria de Segurança e Dependências
127
+ **Critério de DONE:** `[audit-cmd]` sem CVE HIGH/CRITICAL; security headers presentes; sem secrets em código.
128
+ - `npm audit --audit-level=high` / `cargo audit` / `pip-audit` / `composer audit`
129
+ - Headers HTTP de segurança (HSTS, CSP, X-Frame-Options)
130
+ - Scan de secrets no repositório
131
+
132
+ ### Fase N: Observabilidade e Documentação
133
+ **Critério de DONE:** logs estruturados em JSON; endpoint `/metrics` ou equivalente; documentação API gerada.
134
+ - Logs estruturados (JSON) com trace-id
135
+ - Métricas de negócio e técnicas
136
+ - Documentação API (OpenAPI / Swagger)
137
+
138
+ ---
139
+
140
+ ## 7. VALIDAÇÃO E SEGURANÇA
141
+
142
+ ### Validation Gates (Ralph Loop) por stack
143
+
144
+ | Stack | Build | Test | Lint/Audit |
145
+ |-------|-------|------|------------|
146
+ | Rust/Axum | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
147
+ | Node/NestJS | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
148
+ | Python/FastAPI | `python -m py_compile` | `pytest` | `ruff check . && pip-audit` |
149
+ | PHP/Laravel | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
150
+ | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
151
+
152
+ ### Controles de segurança obrigatórios
153
+
154
+ - [ ] Rate limiting em endpoints de autenticação e públicos
155
+ - [ ] Input validation no servidor para todos os endpoints
156
+ - [ ] Dados sensíveis (PII, tokens, senhas) nunca em logs
157
+ - [ ] Todas as dependências sem CVE HIGH/CRITICAL (ver Fase N-1)
158
+ - [ ] HTTP Security Headers em produção
159
+ - [ ] Secrets apenas em variáveis de ambiente / vault
160
+
161
+ ---
162
+
163
+ ## 8. ESTRATÉGIA DE TESTES
164
+
165
+ | Tipo | Ferramenta | Cobertura mínima | O que cobre |
166
+ |------|-----------|------------------|-------------|
167
+ | Unitários | [jest/pytest/cargo test] | 80 % das funções críticas | Lógica de negócio isolada |
168
+ | Integração | [supertest/httpx/reqwest] | Todos os endpoints | Contrato da API |
169
+ | Segurança | [npm audit/cargo audit/pip-audit] | 100 % deps | CVEs conhecidos |
170
+ | E2E | [playwright/cypress] se frontend | Fluxo principal | Jornada do usuário |
171
+
172
+ ---
173
+
174
+ ## 9. ESTRATÉGIA DE DEPLOY
175
+
176
+ | Ambiente | Branch | Trigger | Infra |
177
+ |----------|--------|---------|-------|
178
+ | `dev` | `develop` | Push automático | [ex: Docker local / Railway] |
179
+ | `staging` | `main` | PR merge | [ex: OKE / ECS / Fly.io] |
180
+ | `prod` | tag `v*.*.*` | Manual | [ex: OKE / ECS / Fly.io] |
181
+
182
+ ---
183
+
184
+ ## 10. CHECKLIST DE APROVAÇÃO DO BLUEPRINT
185
+
186
+ - [ ] Arquitetura revisada e aprovada
187
+ - [ ] Modelo de dados validado
188
+ - [ ] Contratos de API definidos e completos
189
+ - [ ] Fases com critérios de DONE claros
190
+ - [ ] Validation gates por stack definidos
191
+ - [ ] Controles de segurança mapeados
192
+ - [ ] Estratégia de testes cobrindo todos os tipos
193
+ - [ ] DAG de tasks gerado (`dare-dag.yaml`)
@@ -1,129 +1,129 @@
1
- # DESIGN: [Nome do Projeto / Feature]
2
-
3
- > **Versão:** v1.0 | **Data:** YYYY-MM-DD | **Status:** DRAFT → APROVADO
4
-
5
- ---
6
-
7
- ## 1. DESCRIÇÃO
8
-
9
- [O que é o sistema e qual problema ele resolve — 3 a 5 frases claras e objetivas. Evite jargão.]
10
-
11
- ---
12
-
13
- ## 2. OBJETIVOS E MÉTRICAS DE SUCESSO
14
-
15
- | # | Objetivo | Métrica verificável | Meta |
16
- |---|----------|---------------------|------|
17
- | O-01 | [ex: Reduzir tempo de resposta da API] | p99 latência em produção | < 200 ms |
18
- | O-02 | [ex: Aumentar cobertura de testes] | `coverage --summary` | > 80 % |
19
- | O-03 | | | |
20
-
21
- ---
22
-
23
- ## 3. STAKEHOLDERS
24
-
25
- | Papel | Nome / Time | Interesse principal |
26
- |-------|-------------|---------------------|
27
- | Product Owner | | Aprovação de scope e prioridades |
28
- | Tech Lead | | Decisões arquiteturais |
29
- | Usuário Final | | [Persona] — [necessidade] |
30
- | Operações / SRE | | SLA, alertas, deploys |
31
-
32
- ---
33
-
34
- ## 4. REQUISITOS FUNCIONAIS
35
-
36
- | ID | Requisito | Prioridade | Critério de aceite |
37
- |----|-----------|------------|--------------------|
38
- | RF-01 | | MUST | |
39
- | RF-02 | | SHOULD | |
40
- | RF-03 | | COULD | |
41
-
42
- > Prioridades: **MUST** (bloqueia v1) · **SHOULD** (importante, mas não bloqueia) · **COULD** (nice to have)
43
-
44
- ---
45
-
46
- ## 5. REQUISITOS NÃO-FUNCIONAIS
47
-
48
- | ID | Categoria | Requisito | Meta |
49
- |----|-----------|-----------|------|
50
- | RNF-01 | Performance | [ex: API responde dentro do SLA] | p95 < 500 ms |
51
- | RNF-02 | Disponibilidade | [ex: uptime mensal] | ≥ 99,5 % |
52
- | RNF-03 | Segurança | Autenticação obrigatória em todos os endpoints sensíveis | JWT + refresh |
53
- | RNF-04 | Segurança | Rate limiting em endpoints públicos | ≤ 60 req/min/IP |
54
- | RNF-05 | Segurança | Dados sensíveis (PII, tokens) nunca em logs | auditoria automática |
55
- | RNF-06 | Observabilidade | Logs estruturados (JSON) com trace-id | OpenTelemetry |
56
- | RNF-07 | Manutenibilidade | Cobertura de testes | > 80 % |
57
-
58
- ---
59
-
60
- ## 6. REQUISITOS DE SEGURANÇA
61
-
62
- | ID | Requisito | Referência |
63
- |----|-----------|------------|
64
- | RS-01 | Todas as entradas do usuário validadas no servidor antes de qualquer processamento | OWASP A03 |
65
- | RS-02 | Senhas e segredos nunca armazenados em texto plano; hash Argon2/Bcrypt | OWASP A02 |
66
- | RS-03 | Controle de acesso verificado por recurso (não só por rota) | OWASP A01 |
67
- | RS-04 | Dependências auditadas antes de cada release (sem CVE HIGH/CRITICAL) | OWASP A06 |
68
- | RS-05 | Segredos gerenciados via variáveis de ambiente / vault — nunca em código | Supply chain |
69
- | RS-06 | [Requisito específico do domínio] | |
70
-
71
- ---
72
-
73
- ## 7. STACK TÉCNICA
74
-
75
- | Camada | Tecnologia | Versão |
76
- |--------|-----------|--------|
77
- | Linguagem / Runtime | | |
78
- | Framework principal | | |
79
- | Banco de dados | | |
80
- | Cache | | |
81
- | Frontend | | |
82
- | Infra / deploy | | |
83
- | Observabilidade | | |
84
-
85
- ---
86
-
87
- ## 8. INTEGRAÇÕES EXTERNAS
88
-
89
- | Sistema | Tipo | Protocolo | Direção | Dados trocados | Responsável |
90
- |---------|------|-----------|---------|----------------|-------------|
91
- | [ex: Stripe] | Pagamento | REST/webhook | Saída + entrada | Cobrança, confirmação | Time Pagamentos |
92
- | [ex: Auth0] | IdP | OIDC | Entrada | ID Token, Claims | Time Auth |
93
-
94
- ---
95
-
96
- ## 9. RESTRIÇÕES
97
-
98
- - **Prazo:** [Data de entrega ou milestone]
99
- - **Orçamento de infra:** [Limite de custo mensal ou por request]
100
- - **Limitações técnicas:** [ex: não pode usar banco NoSQL; deve usar Go ≥ 1.22]
101
- - **Regulatórias / Compliance:** [ex: LGPD, GDPR, SOC 2, PCI-DSS se aplicável]
102
-
103
- ---
104
-
105
- ## 10. FORA DO ESCOPO (v1)
106
-
107
- - [Funcionalidade adiada para v2 — e o motivo]
108
- - [Caso de uso que NÃO será tratado nesta versão]
109
-
110
- ---
111
-
112
- ## 11. RISCOS E MITIGAÇÕES
113
-
114
- | # | Risco | Probabilidade | Impacto | Mitigação |
115
- |---|-------|---------------|---------|-----------|
116
- | R-01 | [ex: Latência alta no serviço de terceiros] | Média | Alto | Circuit breaker + fallback |
117
- | R-02 | [ex: Falta de dados históricos para ML] | Alta | Médio | Dataset sintético inicial |
118
- | R-03 | | | | |
119
-
120
- ---
121
-
122
- ## 12. CHECKLIST DE APROVAÇÃO
123
-
124
- - [ ] Requisitos funcionais revisados e priorizados
125
- - [ ] Requisitos de segurança validados pelo Tech Lead
126
- - [ ] Stack técnica aprovada
127
- - [ ] Integrações externas confirmadas com responsáveis
128
- - [ ] Fora do escopo alinhado com Product Owner
129
- - [ ] Riscos críticos com mitigação definida
1
+ # DESIGN: [Nome do Projeto / Feature]
2
+
3
+ > **Versão:** v1.0 | **Data:** YYYY-MM-DD | **Status:** DRAFT → APROVADO
4
+
5
+ ---
6
+
7
+ ## 1. DESCRIÇÃO
8
+
9
+ [O que é o sistema e qual problema ele resolve — 3 a 5 frases claras e objetivas. Evite jargão.]
10
+
11
+ ---
12
+
13
+ ## 2. OBJETIVOS E MÉTRICAS DE SUCESSO
14
+
15
+ | # | Objetivo | Métrica verificável | Meta |
16
+ |---|----------|---------------------|------|
17
+ | O-01 | [ex: Reduzir tempo de resposta da API] | p99 latência em produção | < 200 ms |
18
+ | O-02 | [ex: Aumentar cobertura de testes] | `coverage --summary` | > 80 % |
19
+ | O-03 | | | |
20
+
21
+ ---
22
+
23
+ ## 3. STAKEHOLDERS
24
+
25
+ | Papel | Nome / Time | Interesse principal |
26
+ |-------|-------------|---------------------|
27
+ | Product Owner | | Aprovação de scope e prioridades |
28
+ | Tech Lead | | Decisões arquiteturais |
29
+ | Usuário Final | | [Persona] — [necessidade] |
30
+ | Operações / SRE | | SLA, alertas, deploys |
31
+
32
+ ---
33
+
34
+ ## 4. REQUISITOS FUNCIONAIS
35
+
36
+ | ID | Requisito | Prioridade | Critério de aceite |
37
+ |----|-----------|------------|--------------------|
38
+ | RF-01 | | MUST | |
39
+ | RF-02 | | SHOULD | |
40
+ | RF-03 | | COULD | |
41
+
42
+ > Prioridades: **MUST** (bloqueia v1) · **SHOULD** (importante, mas não bloqueia) · **COULD** (nice to have)
43
+
44
+ ---
45
+
46
+ ## 5. REQUISITOS NÃO-FUNCIONAIS
47
+
48
+ | ID | Categoria | Requisito | Meta |
49
+ |----|-----------|-----------|------|
50
+ | RNF-01 | Performance | [ex: API responde dentro do SLA] | p95 < 500 ms |
51
+ | RNF-02 | Disponibilidade | [ex: uptime mensal] | ≥ 99,5 % |
52
+ | RNF-03 | Segurança | Autenticação obrigatória em todos os endpoints sensíveis | JWT + refresh |
53
+ | RNF-04 | Segurança | Rate limiting em endpoints públicos | ≤ 60 req/min/IP |
54
+ | RNF-05 | Segurança | Dados sensíveis (PII, tokens) nunca em logs | auditoria automática |
55
+ | RNF-06 | Observabilidade | Logs estruturados (JSON) com trace-id | OpenTelemetry |
56
+ | RNF-07 | Manutenibilidade | Cobertura de testes | > 80 % |
57
+
58
+ ---
59
+
60
+ ## 6. REQUISITOS DE SEGURANÇA
61
+
62
+ | ID | Requisito | Referência |
63
+ |----|-----------|------------|
64
+ | RS-01 | Todas as entradas do usuário validadas no servidor antes de qualquer processamento | OWASP A03 |
65
+ | RS-02 | Senhas e segredos nunca armazenados em texto plano; hash Argon2/Bcrypt | OWASP A02 |
66
+ | RS-03 | Controle de acesso verificado por recurso (não só por rota) | OWASP A01 |
67
+ | RS-04 | Dependências auditadas antes de cada release (sem CVE HIGH/CRITICAL) | OWASP A06 |
68
+ | RS-05 | Segredos gerenciados via variáveis de ambiente / vault — nunca em código | Supply chain |
69
+ | RS-06 | [Requisito específico do domínio] | |
70
+
71
+ ---
72
+
73
+ ## 7. STACK TÉCNICA
74
+
75
+ | Camada | Tecnologia | Versão |
76
+ |--------|-----------|--------|
77
+ | Linguagem / Runtime | | |
78
+ | Framework principal | | |
79
+ | Banco de dados | | |
80
+ | Cache | | |
81
+ | Frontend | | |
82
+ | Infra / deploy | | |
83
+ | Observabilidade | | |
84
+
85
+ ---
86
+
87
+ ## 8. INTEGRAÇÕES EXTERNAS
88
+
89
+ | Sistema | Tipo | Protocolo | Direção | Dados trocados | Responsável |
90
+ |---------|------|-----------|---------|----------------|-------------|
91
+ | [ex: Stripe] | Pagamento | REST/webhook | Saída + entrada | Cobrança, confirmação | Time Pagamentos |
92
+ | [ex: Auth0] | IdP | OIDC | Entrada | ID Token, Claims | Time Auth |
93
+
94
+ ---
95
+
96
+ ## 9. RESTRIÇÕES
97
+
98
+ - **Prazo:** [Data de entrega ou milestone]
99
+ - **Orçamento de infra:** [Limite de custo mensal ou por request]
100
+ - **Limitações técnicas:** [ex: não pode usar banco NoSQL; deve usar Go ≥ 1.22]
101
+ - **Regulatórias / Compliance:** [ex: LGPD, GDPR, SOC 2, PCI-DSS se aplicável]
102
+
103
+ ---
104
+
105
+ ## 10. FORA DO ESCOPO (v1)
106
+
107
+ - [Funcionalidade adiada para v2 — e o motivo]
108
+ - [Caso de uso que NÃO será tratado nesta versão]
109
+
110
+ ---
111
+
112
+ ## 11. RISCOS E MITIGAÇÕES
113
+
114
+ | # | Risco | Probabilidade | Impacto | Mitigação |
115
+ |---|-------|---------------|---------|-----------|
116
+ | R-01 | [ex: Latência alta no serviço de terceiros] | Média | Alto | Circuit breaker + fallback |
117
+ | R-02 | [ex: Falta de dados históricos para ML] | Alta | Médio | Dataset sintético inicial |
118
+ | R-03 | | | | |
119
+
120
+ ---
121
+
122
+ ## 12. CHECKLIST DE APROVAÇÃO
123
+
124
+ - [ ] Requisitos funcionais revisados e priorizados
125
+ - [ ] Requisitos de segurança validados pelo Tech Lead
126
+ - [ ] Stack técnica aprovada
127
+ - [ ] Integrações externas confirmadas com responsáveis
128
+ - [ ] Fora do escopo alinhado com Product Owner
129
+ - [ ] Riscos críticos com mitigação definida