@dewtech/dare-cli 2.16.0 → 3.0.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 (408) hide show
  1. package/README.md +196 -3
  2. package/dist/__tests__/confidence.test.d.ts +2 -0
  3. package/dist/__tests__/confidence.test.d.ts.map +1 -0
  4. package/dist/__tests__/confidence.test.js +73 -0
  5. package/dist/__tests__/confidence.test.js.map +1 -0
  6. package/dist/__tests__/datamodel.test.d.ts +2 -0
  7. package/dist/__tests__/datamodel.test.d.ts.map +1 -0
  8. package/dist/__tests__/datamodel.test.js +131 -0
  9. package/dist/__tests__/datamodel.test.js.map +1 -0
  10. package/dist/__tests__/dna-detector.test.d.ts +2 -0
  11. package/dist/__tests__/dna-detector.test.d.ts.map +1 -0
  12. package/dist/__tests__/dna-detector.test.js +97 -0
  13. package/dist/__tests__/dna-detector.test.js.map +1 -0
  14. package/dist/__tests__/dna-facts.test.d.ts +2 -0
  15. package/dist/__tests__/dna-facts.test.d.ts.map +1 -0
  16. package/dist/__tests__/dna-facts.test.js +44 -0
  17. package/dist/__tests__/dna-facts.test.js.map +1 -0
  18. package/dist/__tests__/graph-renderer.test.d.ts +2 -0
  19. package/dist/__tests__/graph-renderer.test.d.ts.map +1 -0
  20. package/dist/__tests__/graph-renderer.test.js +85 -0
  21. package/dist/__tests__/graph-renderer.test.js.map +1 -0
  22. package/dist/__tests__/migration.test.d.ts +2 -0
  23. package/dist/__tests__/migration.test.d.ts.map +1 -0
  24. package/dist/__tests__/migration.test.js +77 -0
  25. package/dist/__tests__/migration.test.js.map +1 -0
  26. package/dist/__tests__/module-detector.test.d.ts +2 -0
  27. package/dist/__tests__/module-detector.test.d.ts.map +1 -0
  28. package/dist/__tests__/module-detector.test.js +83 -0
  29. package/dist/__tests__/module-detector.test.js.map +1 -0
  30. package/dist/__tests__/refine.test.d.ts +2 -0
  31. package/dist/__tests__/refine.test.d.ts.map +1 -0
  32. package/dist/__tests__/refine.test.js +186 -0
  33. package/dist/__tests__/refine.test.js.map +1 -0
  34. package/dist/__tests__/reverse-facts.test.d.ts +2 -0
  35. package/dist/__tests__/reverse-facts.test.d.ts.map +1 -0
  36. package/dist/__tests__/reverse-facts.test.js +78 -0
  37. package/dist/__tests__/reverse-facts.test.js.map +1 -0
  38. package/dist/__tests__/review.test.d.ts +2 -0
  39. package/dist/__tests__/review.test.d.ts.map +1 -0
  40. package/dist/__tests__/review.test.js +242 -0
  41. package/dist/__tests__/review.test.js.map +1 -0
  42. package/dist/__tests__/update.test.d.ts +2 -0
  43. package/dist/__tests__/update.test.d.ts.map +1 -0
  44. package/dist/__tests__/update.test.js +150 -0
  45. package/dist/__tests__/update.test.js.map +1 -0
  46. package/dist/__tests__/validate.test.js +65 -65
  47. package/dist/bin/dare.js +38 -3
  48. package/dist/bin/dare.js.map +1 -1
  49. package/dist/commands/blueprint.js +122 -122
  50. package/dist/commands/dag.d.ts.map +1 -1
  51. package/dist/commands/dag.js +43 -79
  52. package/dist/commands/dag.js.map +1 -1
  53. package/dist/commands/dna.d.ts +3 -0
  54. package/dist/commands/dna.d.ts.map +1 -0
  55. package/dist/commands/dna.js +69 -0
  56. package/dist/commands/dna.js.map +1 -0
  57. package/dist/commands/execute.d.ts.map +1 -1
  58. package/dist/commands/execute.js +76 -0
  59. package/dist/commands/execute.js.map +1 -1
  60. package/dist/commands/migrate.d.ts +3 -0
  61. package/dist/commands/migrate.d.ts.map +1 -0
  62. package/dist/commands/migrate.js +101 -0
  63. package/dist/commands/migrate.js.map +1 -0
  64. package/dist/commands/new.d.ts +16 -0
  65. package/dist/commands/new.d.ts.map +1 -0
  66. package/dist/commands/new.js +103 -0
  67. package/dist/commands/new.js.map +1 -0
  68. package/dist/commands/refine.d.ts +16 -0
  69. package/dist/commands/refine.d.ts.map +1 -0
  70. package/dist/commands/refine.js +167 -0
  71. package/dist/commands/refine.js.map +1 -0
  72. package/dist/commands/reverse.d.ts +3 -0
  73. package/dist/commands/reverse.d.ts.map +1 -0
  74. package/dist/commands/reverse.js +201 -0
  75. package/dist/commands/reverse.js.map +1 -0
  76. package/dist/commands/review.d.ts +16 -0
  77. package/dist/commands/review.d.ts.map +1 -0
  78. package/dist/commands/review.js +106 -0
  79. package/dist/commands/review.js.map +1 -0
  80. package/dist/commands/update.d.ts +13 -0
  81. package/dist/commands/update.d.ts.map +1 -0
  82. package/dist/commands/update.js +149 -0
  83. package/dist/commands/update.js.map +1 -0
  84. package/dist/commands/welcome.d.ts +14 -0
  85. package/dist/commands/welcome.d.ts.map +1 -0
  86. package/dist/commands/welcome.js +29 -0
  87. package/dist/commands/welcome.js.map +1 -0
  88. package/dist/skills/commands/add.d.ts +23 -0
  89. package/dist/skills/commands/add.d.ts.map +1 -0
  90. package/dist/skills/commands/add.js +206 -0
  91. package/dist/skills/commands/add.js.map +1 -0
  92. package/dist/skills/commands/info.d.ts +14 -0
  93. package/dist/skills/commands/info.d.ts.map +1 -0
  94. package/dist/skills/commands/info.js +99 -0
  95. package/dist/skills/commands/info.js.map +1 -0
  96. package/dist/skills/commands/list.d.ts +19 -0
  97. package/dist/skills/commands/list.d.ts.map +1 -0
  98. package/dist/skills/commands/list.js +163 -0
  99. package/dist/skills/commands/list.js.map +1 -0
  100. package/dist/skills/commands/publish.d.ts +56 -0
  101. package/dist/skills/commands/publish.d.ts.map +1 -0
  102. package/dist/skills/commands/publish.js +272 -0
  103. package/dist/skills/commands/publish.js.map +1 -0
  104. package/dist/skills/commands/remove.d.ts +19 -0
  105. package/dist/skills/commands/remove.d.ts.map +1 -0
  106. package/dist/skills/commands/remove.js +96 -0
  107. package/dist/skills/commands/remove.js.map +1 -0
  108. package/dist/skills/commands/update.d.ts +31 -0
  109. package/dist/skills/commands/update.d.ts.map +1 -0
  110. package/dist/skills/commands/update.js +132 -0
  111. package/dist/skills/commands/update.js.map +1 -0
  112. package/dist/skills/index.d.ts +22 -0
  113. package/dist/skills/index.d.ts.map +1 -0
  114. package/dist/skills/index.js +33 -0
  115. package/dist/skills/index.js.map +1 -0
  116. package/dist/skills/manifest.d.ts +54 -0
  117. package/dist/skills/manifest.d.ts.map +1 -0
  118. package/dist/skills/manifest.js +162 -0
  119. package/dist/skills/manifest.js.map +1 -0
  120. package/dist/skills/registry-local.d.ts +67 -0
  121. package/dist/skills/registry-local.d.ts.map +1 -0
  122. package/dist/skills/registry-local.js +130 -0
  123. package/dist/skills/registry-local.js.map +1 -0
  124. package/dist/skills/registry-mock.json +109 -0
  125. package/dist/skills/registry-remote.d.ts +110 -0
  126. package/dist/skills/registry-remote.d.ts.map +1 -0
  127. package/dist/skills/registry-remote.js +246 -0
  128. package/dist/skills/registry-remote.js.map +1 -0
  129. package/dist/skills/registry.d.ts +49 -0
  130. package/dist/skills/registry.d.ts.map +1 -0
  131. package/dist/skills/registry.js +94 -0
  132. package/dist/skills/registry.js.map +1 -0
  133. package/dist/skills/tests/manifest.spec.d.ts +8 -0
  134. package/dist/skills/tests/manifest.spec.d.ts.map +1 -0
  135. package/dist/skills/tests/manifest.spec.js +176 -0
  136. package/dist/skills/tests/manifest.spec.js.map +1 -0
  137. package/dist/skills/tests/publish.spec.d.ts +12 -0
  138. package/dist/skills/tests/publish.spec.d.ts.map +1 -0
  139. package/dist/skills/tests/publish.spec.js +276 -0
  140. package/dist/skills/tests/publish.spec.js.map +1 -0
  141. package/dist/skills/tests/registry-local.spec.d.ts +8 -0
  142. package/dist/skills/tests/registry-local.spec.d.ts.map +1 -0
  143. package/dist/skills/tests/registry-local.spec.js +231 -0
  144. package/dist/skills/tests/registry-local.spec.js.map +1 -0
  145. package/dist/skills/tests/registry.spec.d.ts +7 -0
  146. package/dist/skills/tests/registry.spec.d.ts.map +1 -0
  147. package/dist/skills/tests/registry.spec.js +58 -0
  148. package/dist/skills/tests/registry.spec.js.map +1 -0
  149. package/dist/skills/tests/remote-registry.spec.d.ts +9 -0
  150. package/dist/skills/tests/remote-registry.spec.d.ts.map +1 -0
  151. package/dist/skills/tests/remote-registry.spec.js +357 -0
  152. package/dist/skills/tests/remote-registry.spec.js.map +1 -0
  153. package/dist/skills/tests/update.spec.d.ts +9 -0
  154. package/dist/skills/tests/update.spec.d.ts.map +1 -0
  155. package/dist/skills/tests/update.spec.js +166 -0
  156. package/dist/skills/tests/update.spec.js.map +1 -0
  157. package/dist/types/Refine.types.d.ts +96 -0
  158. package/dist/types/Refine.types.d.ts.map +1 -0
  159. package/dist/types/Refine.types.js +19 -0
  160. package/dist/types/Refine.types.js.map +1 -0
  161. package/dist/types/Review.types.d.ts +86 -0
  162. package/dist/types/Review.types.d.ts.map +1 -0
  163. package/dist/types/Review.types.js +15 -0
  164. package/dist/types/Review.types.js.map +1 -0
  165. package/dist/types/UpdateManifest.types.d.ts +91 -0
  166. package/dist/types/UpdateManifest.types.d.ts.map +1 -0
  167. package/dist/types/UpdateManifest.types.js +13 -0
  168. package/dist/types/UpdateManifest.types.js.map +1 -0
  169. package/dist/utils/ReviewRunner.d.ts +42 -0
  170. package/dist/utils/ReviewRunner.d.ts.map +1 -0
  171. package/dist/utils/ReviewRunner.js +175 -0
  172. package/dist/utils/ReviewRunner.js.map +1 -0
  173. package/dist/utils/UpdateApplier.d.ts +42 -0
  174. package/dist/utils/UpdateApplier.d.ts.map +1 -0
  175. package/dist/utils/UpdateApplier.js +207 -0
  176. package/dist/utils/UpdateApplier.js.map +1 -0
  177. package/dist/utils/UpdateDetector.d.ts +56 -0
  178. package/dist/utils/UpdateDetector.d.ts.map +1 -0
  179. package/dist/utils/UpdateDetector.js +164 -0
  180. package/dist/utils/UpdateDetector.js.map +1 -0
  181. package/dist/utils/banner.d.ts +28 -0
  182. package/dist/utils/banner.d.ts.map +1 -0
  183. package/dist/utils/banner.js +77 -0
  184. package/dist/utils/banner.js.map +1 -0
  185. package/dist/utils/banner.spec.d.ts +5 -0
  186. package/dist/utils/banner.spec.d.ts.map +1 -0
  187. package/dist/utils/banner.spec.js +253 -0
  188. package/dist/utils/banner.spec.js.map +1 -0
  189. package/dist/utils/complexity-analyzer.d.ts +60 -0
  190. package/dist/utils/complexity-analyzer.d.ts.map +1 -0
  191. package/dist/utils/complexity-analyzer.js +292 -0
  192. package/dist/utils/complexity-analyzer.js.map +1 -0
  193. package/dist/utils/confidence.d.ts +41 -0
  194. package/dist/utils/confidence.d.ts.map +1 -0
  195. package/dist/utils/confidence.js +101 -0
  196. package/dist/utils/confidence.js.map +1 -0
  197. package/dist/utils/datamodel.d.ts +41 -0
  198. package/dist/utils/datamodel.d.ts.map +1 -0
  199. package/dist/utils/datamodel.js +535 -0
  200. package/dist/utils/datamodel.js.map +1 -0
  201. package/dist/utils/dna-detector.d.ts +61 -0
  202. package/dist/utils/dna-detector.d.ts.map +1 -0
  203. package/dist/utils/dna-detector.js +354 -0
  204. package/dist/utils/dna-detector.js.map +1 -0
  205. package/dist/utils/dna-facts.d.ts +13 -0
  206. package/dist/utils/dna-facts.d.ts.map +1 -0
  207. package/dist/utils/dna-facts.js +109 -0
  208. package/dist/utils/dna-facts.js.map +1 -0
  209. package/dist/utils/excalidraw-renderer.d.ts +11 -71
  210. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  211. package/dist/utils/excalidraw-renderer.js +29 -162
  212. package/dist/utils/excalidraw-renderer.js.map +1 -1
  213. package/dist/utils/graph-renderer.d.ts +115 -0
  214. package/dist/utils/graph-renderer.d.ts.map +1 -0
  215. package/dist/utils/graph-renderer.js +216 -0
  216. package/dist/utils/graph-renderer.js.map +1 -0
  217. package/dist/utils/migration.d.ts +64 -0
  218. package/dist/utils/migration.d.ts.map +1 -0
  219. package/dist/utils/migration.js +183 -0
  220. package/dist/utils/migration.js.map +1 -0
  221. package/dist/utils/module-detector.d.ts +46 -0
  222. package/dist/utils/module-detector.d.ts.map +1 -0
  223. package/dist/utils/module-detector.js +348 -0
  224. package/dist/utils/module-detector.js.map +1 -0
  225. package/dist/utils/project-generator.d.ts.map +1 -1
  226. package/dist/utils/project-generator.js +273 -254
  227. package/dist/utils/project-generator.js.map +1 -1
  228. package/dist/utils/reverse-facts.d.ts +50 -0
  229. package/dist/utils/reverse-facts.d.ts.map +1 -0
  230. package/dist/utils/reverse-facts.js +291 -0
  231. package/dist/utils/reverse-facts.js.map +1 -0
  232. package/dist/utils/stack-bootstrap.js +371 -371
  233. package/dist/utils/static-analyzer.d.ts +29 -0
  234. package/dist/utils/static-analyzer.d.ts.map +1 -0
  235. package/dist/utils/static-analyzer.js +390 -0
  236. package/dist/utils/static-analyzer.js.map +1 -0
  237. package/dist/utils/version-compare.d.ts +27 -0
  238. package/dist/utils/version-compare.d.ts.map +1 -0
  239. package/dist/utils/version-compare.js +47 -0
  240. package/dist/utils/version-compare.js.map +1 -0
  241. package/package.json +8 -3
  242. package/templates/DARE-dag-example.yaml +280 -280
  243. package/templates/UPDATE-MANIFEST.json +48 -0
  244. package/templates/backend/node-nestjs/.env.example +9 -9
  245. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  246. package/templates/backend/node-nestjs/package.json +50 -50
  247. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  248. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  249. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  250. package/templates/backend/node-nestjs/src/main.ts +24 -24
  251. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  252. package/templates/backend/php-laravel/.env.example +22 -22
  253. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  254. package/templates/backend/php-laravel/composer.json +40 -40
  255. package/templates/backend/python-fastapi/.env.example +4 -4
  256. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  257. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  258. package/templates/backend/python-fastapi/main.py +35 -35
  259. package/templates/backend/python-fastapi/requirements.txt +13 -13
  260. package/templates/backend/rust-axum/.env.example +3 -3
  261. package/templates/backend/rust-axum/Cargo.toml +23 -23
  262. package/templates/backend/rust-axum/src/errors.rs +30 -30
  263. package/templates/backend/rust-axum/src/main.rs +32 -32
  264. package/templates/backend/rust-axum/src/routes.rs +6 -6
  265. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  266. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  267. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  268. package/templates/frontend/leptos-csr/index.html +11 -11
  269. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  270. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  271. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  272. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  273. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  274. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  275. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  276. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  277. package/templates/frontend/react/index.html +12 -12
  278. package/templates/frontend/react/package.json +35 -35
  279. package/templates/frontend/react/src/App.tsx +25 -25
  280. package/templates/frontend/react/src/main.tsx +9 -9
  281. package/templates/frontend/vue/package.json +32 -32
  282. package/templates/frontend/vue/src/App.vue +7 -7
  283. package/templates/frontend/vue/src/main.ts +10 -10
  284. package/templates/frontend/vue/src/router/index.ts +14 -14
  285. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  286. package/templates/hooks/pre-commit-dare-validate +24 -24
  287. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -0
  288. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +180 -36
  289. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -0
  290. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -0
  291. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  292. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -0
  293. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -0
  294. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -0
  295. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -0
  296. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -0
  297. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -0
  298. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -0
  299. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -0
  300. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -0
  301. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -0
  302. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
  303. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -0
  304. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -0
  305. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  306. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -0
  307. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -224
  308. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -0
  309. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -0
  310. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -0
  311. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -0
  312. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -0
  313. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -0
  314. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  315. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  316. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -100
  317. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
  318. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -78
  319. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
  320. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -110
  321. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  322. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -0
  323. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  324. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  325. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -0
  326. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -0
  327. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  328. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -0
  329. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -0
  330. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -0
  331. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -0
  332. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -0
  333. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -0
  334. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -0
  335. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -0
  336. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -0
  337. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
  338. package/templates/ide/claude/.claude/commands/dare-review.md +113 -0
  339. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  340. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  341. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  342. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  343. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -0
  344. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -0
  345. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -0
  346. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -0
  347. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -0
  348. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -0
  349. package/templates/ide/claude/.claude/settings.example.json +35 -35
  350. package/templates/ide/claude/CLAUDE.md +146 -146
  351. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  352. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  353. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -100
  354. package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
  355. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -41
  356. package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
  357. package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -142
  358. package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -0
  359. package/templates/ide/cursor/.cursor/commands/review-task.md +91 -0
  360. package/templates/ide/cursor/.cursor/commands/run-dag.md +110 -110
  361. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -0
  362. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -0
  363. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -0
  364. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  365. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -0
  366. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -0
  367. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -0
  368. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -0
  369. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -0
  370. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -0
  371. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -0
  372. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -0
  373. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -0
  374. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -0
  375. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -0
  376. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -0
  377. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -0
  378. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -0
  379. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  380. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  381. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  382. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  383. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -100
  384. package/templates/shared/docker-compose.yml +41 -41
  385. package/dist/__tests__/dag-runner/adapters.test.d.ts +0 -2
  386. package/dist/__tests__/dag-runner/adapters.test.d.ts.map +0 -1
  387. package/dist/__tests__/dag-runner/adapters.test.js +0 -134
  388. package/dist/__tests__/dag-runner/adapters.test.js.map +0 -1
  389. package/dist/dag-runner/adapters/antigravity.d.ts +0 -6
  390. package/dist/dag-runner/adapters/antigravity.d.ts.map +0 -1
  391. package/dist/dag-runner/adapters/antigravity.js +0 -54
  392. package/dist/dag-runner/adapters/antigravity.js.map +0 -1
  393. package/dist/dag-runner/adapters/claude.d.ts +0 -6
  394. package/dist/dag-runner/adapters/claude.d.ts.map +0 -1
  395. package/dist/dag-runner/adapters/claude.js +0 -48
  396. package/dist/dag-runner/adapters/claude.js.map +0 -1
  397. package/dist/dag-runner/adapters/cursor.d.ts +0 -6
  398. package/dist/dag-runner/adapters/cursor.d.ts.map +0 -1
  399. package/dist/dag-runner/adapters/cursor.js +0 -58
  400. package/dist/dag-runner/adapters/cursor.js.map +0 -1
  401. package/dist/dag-runner/adapters/index.d.ts +0 -46
  402. package/dist/dag-runner/adapters/index.d.ts.map +0 -1
  403. package/dist/dag-runner/adapters/index.js +0 -55
  404. package/dist/dag-runner/adapters/index.js.map +0 -1
  405. package/dist/dag-runner/utils/timeout.d.ts +0 -27
  406. package/dist/dag-runner/utils/timeout.d.ts.map +0 -1
  407. package/dist/dag-runner/utils/timeout.js +0 -55
  408. package/dist/dag-runner/utils/timeout.js.map +0 -1
@@ -1,100 +1,141 @@
1
- # TASK [ID]: [Título da Task]
2
-
3
- > **Complexidade:** LOW / MED / HIGH
4
- > **Depends on:** [task-ids ou —]
5
- > **Estimativa:** [X horas]
6
-
7
- ---
8
-
9
- ## 1. OBJETIVO
10
-
11
- [Uma frase precisa do que esta task entrega. Deve ser verificável — termine com um estado observável, não uma ação.]
12
-
13
- Exemplo: _"Ao final desta task, o endpoint `POST /api/v1/users` aceita cadastro, valida unicidade de e-mail e retorna JWT."_
14
-
15
- ---
16
-
17
- ## 2. CONTEXTO
18
-
19
- - **Fase no BLUEPRINT:** Fase [N] — [Nome da fase]
20
- - **Arquivos existentes relevantes:** [caminhos de arquivos que servem de referência ou serão modificados]
21
- - **Decisões do BLUEPRINT que afetam esta task:** [cite seção/decisão específica]
22
-
23
- ---
24
-
25
- ## 3. ARQUIVOS A CRIAR / MODIFICAR
26
-
27
- | Ação | Caminho | Descrição |
28
- |------|---------|-----------|
29
- | CRIAR | `src/[módulo]/[arquivo]` | [o que contém] |
30
- | MODIFICAR | `src/[módulo]/[arquivo]` | [o que muda] |
31
- | CRIAR | `tests/[arquivo].test.[ext]` | Testes da feature |
32
-
33
- ---
34
-
35
- ## 4. IMPLEMENTAÇÃO
36
-
37
- ### Passo 1: [Nome do passo]
38
- [Descrição precisa do que fazer. Inclua assinaturas de função/struct se crítico.]
39
-
40
- ```[lang]
41
- // Exemplo de padrão esperado
42
- ```
43
-
44
- ### Passo 2: [Nome do passo]
45
- [Descrição]
46
-
47
- ### Passo 3: Testes
48
- - [ ] Teste do caminho feliz (`should_[comportamento]_when_[condição]`)
49
- - [ ] Teste de erro de validação (400 / erro de negócio)
50
- - [ ] Teste de autorização (401 / 403 quando aplicável)
51
- - [ ] Teste de edge case: [descrever]
52
-
53
- ---
54
-
55
- ## 5. CONSIDERAÇÕES DE SEGURANÇA
56
-
57
- - [ ] **Input validation:** toda entrada do usuário validada no servidor antes de qualquer processamento
58
- - [ ] **Autenticação / Autorização:** verificar se o usuário tem permissão sobre o *recurso específico*, não só sobre a rota
59
- - [ ] **Dados sensíveis:** senhas, tokens e PII nunca aparecem em logs, responses de erro ou mensagens de exceção
60
- - [ ] **SQL / Command Injection:** usar ORM / prepared statements; nunca concatenar strings em queries
61
- - [ ] **Dependências novas:** se esta task adicionar uma dependência, verificar CVEs com `npm audit` / `cargo audit` / `pip-audit` antes de commitar
62
- - [ ] **Segredo em código:** nenhum token, chave ou credencial hardcoded — sempre via variável de ambiente
63
-
64
- ---
65
-
66
- ## 6. VALIDATION GATES (RALPH LOOP)
67
-
68
- Execute **todos** antes de marcar a task como DONE. Se qualquer um falhar, leia o erro, corrija e reexecute.
69
-
70
- ```bash
71
- # 1. Build — sem erros de compilação
72
- [comando de build da stack]
73
-
74
- # 2. Tests — todos passando, incluindo os novos
75
- [comando de test]
76
-
77
- # 3. Lint — sem warnings
78
- [comando de lint]
79
-
80
- # 4. Auditoria de dependências (se novas deps foram adicionadas nesta task)
81
- [npm audit --audit-level=high | cargo audit | pip-audit | composer audit]
82
- ```
83
-
84
- > **Gate de segurança obrigatório:** se esta task adicionar dependências externas, `[audit-cmd]` não pode retornar CVE de nível HIGH ou CRITICAL.
85
-
86
- ---
87
-
88
- ## 7. CRITÉRIOS DE DONE
89
-
90
- - [ ] Todos os 4 validation gates passaram sem erros
91
- - [ ] Testes cobrem caminho feliz + erros + edge cases da seção 4
92
- - [ ] Considerações de segurança da seção 5 todas checadas
93
- - [ ] Arquivos listados na seção 3 criados/modificados conforme spec
94
- - [ ] `DARE/TASKS.md` atualizado com status `DONE`
95
-
96
- ---
97
-
98
- ## 8. PRÓXIMA TASK SUGERIDA
99
-
100
- `[task-id]` — [título] _(desbloqueada após conclusão desta task)_
1
+ # TASK [ID]: [Título da Task]
2
+
3
+ > **Complexidade:** LOW / MED / HIGH
4
+ > **Depends on:** [task-ids ou —]
5
+ > **Estimativa:** [X horas]
6
+
7
+ ---
8
+
9
+ ## 1. OBJETIVO
10
+
11
+ [Uma frase precisa do que esta task entrega. Deve ser verificável — termine com um estado observável, não uma ação.]
12
+
13
+ Exemplo: _"Ao final desta task, o endpoint `POST /api/v1/users` aceita cadastro, valida unicidade de e-mail e retorna JWT."_
14
+
15
+ ---
16
+
17
+ ## 2. CONTEXTO
18
+
19
+ - **Fase no BLUEPRINT:** Fase [N] — [Nome da fase]
20
+ - **Arquivos existentes relevantes:** [caminhos de arquivos que servem de referência ou serão modificados]
21
+ - **Decisões do BLUEPRINT que afetam esta task:** [cite seção/decisão específica]
22
+
23
+ ---
24
+
25
+ ## 3. ARQUIVOS A CRIAR / MODIFICAR
26
+
27
+ | Ação | Caminho | Descrição |
28
+ |------|---------|-----------|
29
+ | CRIAR | `src/[módulo]/[arquivo]` | [o que contém] |
30
+ | MODIFICAR | `src/[módulo]/[arquivo]` | [o que muda] |
31
+ | CRIAR | `tests/[arquivo].test.[ext]` | Testes da feature |
32
+
33
+ ---
34
+
35
+ ## 4. IMPLEMENTAÇÃO
36
+
37
+ ### Passo 1: [Nome do passo]
38
+ [Descrição precisa do que fazer. Inclua assinaturas de função/struct se crítico.]
39
+
40
+ ```[lang]
41
+ // Exemplo de padrão esperado
42
+ ```
43
+
44
+ ### Passo 2: [Nome do passo]
45
+ [Descrição]
46
+
47
+ ### Passo 3: Testes
48
+ - [ ] Teste do caminho feliz (`should_[comportamento]_when_[condição]`)
49
+ - [ ] Teste de erro de validação (400 / erro de negócio)
50
+ - [ ] Teste de autorização (401 / 403 quando aplicável)
51
+ - [ ] Teste de edge case: [descrever]
52
+
53
+ ---
54
+
55
+ ## 5. CONSIDERAÇÕES DE SEGURANÇA
56
+
57
+ - [ ] **Input validation:** toda entrada do usuário validada no servidor antes de qualquer processamento
58
+ - [ ] **Autenticação / Autorização:** verificar se o usuário tem permissão sobre o *recurso específico*, não só sobre a rota
59
+ - [ ] **Dados sensíveis:** senhas, tokens e PII nunca aparecem em logs, responses de erro ou mensagens de exceção
60
+ - [ ] **SQL / Command Injection:** usar ORM / prepared statements; nunca concatenar strings em queries
61
+ - [ ] **Dependências novas:** se esta task adicionar uma dependência, verificar CVEs com `npm audit` / `cargo audit` / `pip-audit` antes de commitar
62
+ - [ ] **Segredo em código:** nenhum token, chave ou credencial hardcoded — sempre via variável de ambiente
63
+
64
+ ---
65
+
66
+ ## 6. VALIDATION GATES (RALPH LOOP)
67
+
68
+ Execute **todos** antes de marcar a task como DONE. Se qualquer um falhar, leia o erro, corrija e reexecute.
69
+
70
+ ```bash
71
+ # 1. Build — sem erros de compilação
72
+ [comando de build da stack]
73
+
74
+ # 2. Tests — todos passando, incluindo os novos
75
+ [comando de test]
76
+
77
+ # 3. Lint — sem warnings
78
+ [comando de lint]
79
+
80
+ # 4. Auditoria de dependências (se novas deps foram adicionadas nesta task)
81
+ [npm audit --audit-level=high | cargo audit | pip-audit | composer audit]
82
+ ```
83
+
84
+ > **Gate de segurança obrigatório:** se esta task adicionar dependências externas, `[audit-cmd]` não pode retornar CVE de nível HIGH ou CRITICAL.
85
+
86
+ ---
87
+
88
+ ## 7. PADRÕES PROIBIDOS (ANTI-STUB / ANTI-MOCK)
89
+
90
+ > Esta seção é **inegociável**. O comando `dare review` (v2.17+) escaneia o código modificado por esta task e reprova se encontrar qualquer padrão abaixo.
91
+
92
+ ### Em código de produção (qualquer arquivo **fora** de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/`)
93
+
94
+ - **TODO / FIXME / XXX / HACK** — qualquer um desses marcadores em comentário
95
+ - ❌ **Função vazia** — `fn x() {}`, `function x() {}`, `def x(): pass`, `def x(): ...`
96
+ - ❌ **Stub explícito** — `throw new Error('not implemented')`, `unimplemented!()`, `todo!()`, `raise NotImplementedError`
97
+ - ❌ **Retorno-fantasma** — `return null` / `return undefined` / `return {}` / `return []` como **única** statement de função pública declarada nesta task
98
+ - ❌ **Mocks fora de testes** — `jest.fn()`, `sinon.stub()`, `mockReturnValue`, dados hardcoded fingindo ser do banco, fixtures injetadas em controllers/services
99
+ - ❌ **Comentário de placeholder** — `// implement later`, `# placeholder`, `// stub`, `// FIXME implement`
100
+
101
+ ### Mocks são permitidos APENAS em
102
+
103
+ - Arquivos de teste (`*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/`)
104
+ - Seeds / fixtures dentro de `database/seeders/`, `tests/fixtures/`
105
+ - Helpers explicitamente marcados como auxiliares de teste
106
+
107
+ ### Verificação automática
108
+
109
+ Antes de marcar a task como DONE, rode:
110
+
111
+ ```bash
112
+ dare review <task-id>
113
+ ```
114
+
115
+ Output esperado:
116
+
117
+ ```
118
+ ✅ task-XYZ: nenhum padrão proibido detectado em N arquivos modificados.
119
+ ```
120
+
121
+ Se a review falhar, a task **não pode** ir para DONE — corrija os achados e re-rode.
122
+
123
+ ---
124
+
125
+ ## 8. CRITÉRIOS DE DONE
126
+
127
+ - [ ] Todos os 4 validation gates passaram sem erros (build + test + lint + audit)
128
+ - [ ] Testes cobrem caminho feliz + erros enumerados + edge cases da seção 4
129
+ - [ ] Considerações de segurança da seção 5 todas checadas
130
+ - [ ] Arquivos listados na seção 3 criados/modificados conforme spec
131
+ - [ ] **`dare review <task-id>` passou** (seção 7 — sem stubs, mocks, TODOs)
132
+ - [ ] Cada validação declarada na spec tem teste demonstrando o erro real (não placeholder)
133
+ - [ ] Cada edge case enumerado tem teste cobrindo
134
+ - [ ] Endpoints retornam dados reais do banco/service, não hardcoded
135
+ - [ ] `DARE/TASKS.md` atualizado com status `DONE`
136
+
137
+ ---
138
+
139
+ ## 9. PRÓXIMA TASK SUGERIDA
140
+
141
+ `[task-id]` — [título] _(desbloqueada após conclusão desta task)_
@@ -0,0 +1,131 @@
1
+ # /dare-ax
2
+
3
+ Audita ou bootstrapa um projeto DARE com foco em **Agent Experience (AX)** — os sinais estruturados que agentes de código (Claude Code, Cursor, Antigravity) precisam para trabalhar sem refactor desnecessário.
4
+
5
+ ## Como usar
6
+
7
+ ```
8
+ /dare-ax # audita projeto atual
9
+ /dare-ax init # cria llms.txt + .env.example + ajustes mínimos
10
+ /dare-ax openapi # valida ou gera openapi.json
11
+ /dare-ax cli # adiciona --json em comandos CLI faltantes
12
+ ```
13
+
14
+ ## Os três planos AX
15
+
16
+ ### 1. Discovery — agente acha o que precisa
17
+
18
+ - `llms.txt` na raiz com descrição, comandos, endpoints
19
+ - `README.md` com bootstrap em 5 minutos
20
+ - Estrutura de pastas previsível (`src/`, `tests/`, `docs/`, `DARE/`)
21
+
22
+ ### 2. Usage — agente consegue operar
23
+
24
+ - `openapi.json` em `/openapi.json` (HTTP)
25
+ - Flag `--json` em todos os CLIs
26
+ - `Dockerfile` + `docker-compose.yml` validados
27
+ - `.env.example` versionado
28
+
29
+ ### 3. Defense — agente não quebra produção
30
+
31
+ - Rate limit (rack-attack, express-rate-limit, tower-governor, slowapi)
32
+ - Validação de input (FormRequests, Pydantic, Zod, serde+validator)
33
+ - Secrets só via env
34
+ - `llms.txt` sem credenciais (scan no CI)
35
+
36
+ ## Métricas obrigatórias
37
+
38
+ | ID | Métrica | Como verificar |
39
+ |---|---|---|
40
+ | M-01 | `llms.txt` existe e é válido (sem secrets, seções obrigatórias) | grep + parse |
41
+ | M-02 | `openapi.json` ou `public/openapi.json` existe | `test -f` |
42
+ | M-03 | CLI suporta `--json` | `cli --help \| grep '\-\-json'` |
43
+ | M-04 | Rate limit configurado | grep pelo middleware da stack |
44
+
45
+ Falha em CI se M-01 ou M-04 falharem em produção.
46
+
47
+ ## O que fazer
48
+
49
+ ### Passo 1: Auditar o projeto
50
+
51
+ Confira na ordem:
52
+ 1. Existe `llms.txt`? Está atualizado?
53
+ 2. Existe `openapi.json` se o projeto expõe HTTP?
54
+ 3. Todos os CLIs aceitam `--json`?
55
+ 4. Existe rate limit em endpoints autenticados públicos?
56
+ 5. `.env.example` está versionado sem valores reais?
57
+
58
+ ### Passo 2: Gerar `llms.txt` se faltar
59
+
60
+ Use este template — preencha apenas com comandos e endpoints que **existem de verdade**:
61
+
62
+ ```
63
+ # <nome-do-projeto>
64
+
65
+ > <descrição em 1-2 frases>
66
+
67
+ ## Stack
68
+ - <linguagem + framework>
69
+ - <banco>
70
+ - <cache/fila>
71
+
72
+ ## Bootstrap
73
+ - `make setup`
74
+ - `make dev`
75
+ - `make test`
76
+
77
+ ## Endpoints
78
+ - `GET /healthz`
79
+ - `GET /openapi.json`
80
+ - `POST /api/login`
81
+
82
+ ## Docs
83
+ - DARE/DESIGN.md
84
+ - DARE/BLUEPRINT.md
85
+ - docs/RUNBOOK.md
86
+ ```
87
+
88
+ ### Passo 3: Validar / gerar OpenAPI
89
+
90
+ - **Node/NestJS** — `@nestjs/swagger`
91
+ - **FastAPI** — automático em `/openapi.json`
92
+ - **Rails** — `grape-swagger` ou `rswag`
93
+ - **Rust/Axum** — `utoipa` + `utoipa-swagger-ui`
94
+ - **Laravel** — `darkaonline/l5-swagger`
95
+
96
+ ### Passo 4: Adicionar `--json` no CLI
97
+
98
+ Para cada comando:
99
+ - Imprime JSON puro em stdout (sem cores ANSI, sem prompt)
100
+ - Exit code 0 em sucesso, ≠ 0 em erro
101
+ - Schema documentado no `llms.txt`
102
+
103
+ ### Passo 5: Configurar rate limit
104
+
105
+ Adicione middleware específico da stack para todos os endpoints públicos. Padrão recomendado:
106
+ - Login: 5 req / 15 min por IP + por usuário
107
+ - API geral: 100 req / min por usuário autenticado
108
+
109
+ ## Antipatterns a evitar
110
+
111
+ | AP | Por que evitar |
112
+ |---|---|
113
+ | Docs fora do código | Divergem |
114
+ | OpenAPI à mão | Desatualiza |
115
+ | CLI sem `--json` | Parsing regex frágil |
116
+ | Rate limit só em dev | Produção vira target |
117
+ | `llms.txt` com secrets | Credencial exposta |
118
+ | CORS `*` em prod | Origem qualquer |
119
+
120
+ ## Saída esperada
121
+
122
+ Reporte numerado dos 4 checks (M-01 a M-04). Para cada falha, mostre:
123
+ - O que falta
124
+ - Como corrigir (com comando concreto da stack)
125
+ - Quem deve aprovar antes do CI travar release
126
+
127
+ $ARGUMENTS
128
+
129
+ ---
130
+
131
+ Skill MIT — parte do DARE Method.
@@ -1,78 +1,134 @@
1
- # /dare-blueprint
2
-
3
- Gera **somente** `DARE/BLUEPRINT.md` a partir do `DARE/DESIGN.md`.
4
-
5
- > Tasks, DAG e specs de execução são geradas depois com `/dare-tasks`, após aprovação humana do Blueprint.
6
-
7
- ## Como usar
8
-
9
- ```
10
- /dare-blueprint
11
- /dare-blueprint --stack node-nestjs+react
12
- ```
13
-
14
- ## O que fazer
15
-
16
- ### 1. Ler `DARE/DESIGN.md`
17
-
18
- Obrigatório. Se não existir, peça para rodar `/dare-design` primeiro.
19
-
20
- Extraia e use durante todo o comando:
21
- - Stack técnica (linguagem, framework, versões)
22
- - Requisitos funcionais priorizados (RF-*)
23
- - Requisitos de segurança (RS-*)
24
- - Integrações externas confirmadas
25
- - Restrições e escopo
26
-
27
- ### 2. Gerar `DARE/BLUEPRINT.md`
28
-
29
- Siga o template `templates/BLUEPRINT-template.md`. Seções obrigatórias:
30
-
31
- **2.1 Visão Geral da Arquitetura**
32
- - Diagrama Mermaid da arquitetura
33
- - Tabela de decisões arquiteturais com justificativa (não apenas "escolha X")
34
-
35
- **2.2 Stack Técnica Definida** — versões fixas, não ranges
36
-
37
- **2.3 Estrutura de Pastas** — árvore completa dos arquivos que serão criados
38
-
39
- **2.4 Modelo de Dados** — entidades, campos tipados, relacionamentos, índices necessários
40
-
41
- **2.5 Contratos de API** — tabela completa: método, rota, auth, request body, response, status codes
42
-
43
- **2.6 Plano de Execução (Fases)** — cada fase com:
44
- - Nome e objetivo
45
- - **Critério de DONE** — comportamento verificável e testável (não "código feito")
46
- - Lista de entregáveis concretos
47
-
48
- > **Fase 1 é sempre containerização** (Dockerfile + docker-compose + healthcheck)
49
- > **Fase N-1 é sempre auditoria de segurança e dependências**
50
-
51
- **2.7 Validation Gates por Stack**
52
-
53
- | Stack | Build | Test | Lint/Audit |
54
- |-------|-------|------|------------|
55
- | Rust/Axum | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
56
- | Node/NestJS | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
57
- | Python/FastAPI | verificar imports | `pytest` | `ruff check . && pip-audit` |
58
- | PHP/Laravel | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
59
- | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
60
-
61
- **2.8 Controles de Segurança** — checklist com todos os RS-* do DESIGN mapeados para fases específicas
62
-
63
- **2.9 Estratégia de Testes** — unitários + integração + segurança (auditoria de deps) + E2E se frontend
64
-
65
- **2.10 Estratégia de Deploy** — por ambiente com branch, trigger e infra
66
-
67
- **2.11 Checklist de Aprovação** — checkboxes para o usuário revisar antes de prosseguir
68
-
69
- ### 3. Salvar e aguardar aprovação humana
70
-
71
- Salve `DARE/BLUEPRINT.md` e informe:
72
-
73
- _"Blueprint gerado. Revise a arquitetura, os contratos de API e os critérios de DONE de cada fase especialmente as tasks de complexidade HIGH. Quando aprovado, rode `/dare-tasks` para gerar o DAG e as specs de execução."_
74
-
75
- **Não gere** `DARE/TASKS.md`, `DARE/dare-dag.yaml` nem arquivos em `DARE/EXECUTION/`.
76
- Esses artefatos são responsabilidade exclusiva do `/dare-tasks`.
77
-
78
- $ARGUMENTS
1
+ # /dare-blueprint
2
+
3
+ Gera **somente** `DARE/BLUEPRINT.md` a partir do `DARE/DESIGN.md`.
4
+
5
+ > Tasks, DAG e specs de execução são geradas depois com `/dare-tasks`, após aprovação humana do Blueprint.
6
+
7
+ ## Como usar
8
+
9
+ ```
10
+ /dare-blueprint
11
+ /dare-blueprint --stack node-nestjs+react
12
+ ```
13
+
14
+ ## O que fazer
15
+
16
+ ### 1. Ler `DARE/DESIGN.md`
17
+
18
+ Obrigatório. Se não existir, peça para rodar `/dare-design` primeiro.
19
+
20
+ Extraia e use durante todo o comando:
21
+ - Stack técnica (linguagem, framework, versões)
22
+ - Requisitos funcionais priorizados (RF-*)
23
+ - Requisitos de segurança (RS-*)
24
+ - Integrações externas confirmadas
25
+ - Restrições e escopo
26
+
27
+ ### 2. Gerar `DARE/BLUEPRINT.md`
28
+
29
+ Siga o template `templates/BLUEPRINT-template.md`. Seções obrigatórias:
30
+
31
+ **2.1 Visão Geral da Arquitetura**
32
+ - Diagrama Mermaid da arquitetura
33
+ - Tabela de decisões arquiteturais com justificativa (não apenas "escolha X")
34
+
35
+ **2.2 Stack Técnica Definida** — versões fixas, não ranges
36
+
37
+ **2.3 Estrutura de Pastas** — árvore completa dos arquivos que serão criados
38
+
39
+ **2.4 Modelo de Dados** — entidades, campos tipados, relacionamentos, índices necessários
40
+
41
+ **2.5 Contratos de API** — tabela completa: método, rota, auth, request body, response, status codes
42
+
43
+ **2.6 Plano de Execução (Fases)** — cada fase com:
44
+ - Nome e objetivo
45
+ - **Critério de DONE** — comportamento verificável e testável (não "código feito")
46
+ - Lista de entregáveis concretos
47
+
48
+ > **Fase 1 é sempre containerização** (Dockerfile + docker-compose + healthcheck)
49
+ > **Fase N-1 é sempre auditoria de segurança e dependências**
50
+
51
+ **2.7 Validation Gates por Stack**
52
+
53
+ | Stack | Build | Test | Lint/Audit |
54
+ |-------|-------|------|------------|
55
+ | Rust/Axum | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
56
+ | Node/NestJS | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
57
+ | Python/FastAPI | verificar imports | `pytest` | `ruff check . && pip-audit` |
58
+ | PHP/Laravel | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
59
+ | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
60
+
61
+ **2.8 Controles de Segurança** — checklist com todos os RS-* do DESIGN mapeados para fases específicas
62
+
63
+ **2.9 Estratégia de Testes** — unitários + integração + segurança (auditoria de deps) + E2E se frontend
64
+
65
+ **2.10 Estratégia de Deploy** — por ambiente com branch, trigger e infra
66
+
67
+ **2.11 Checklist de Aprovação** — checkboxes para o usuário revisar antes de prosseguir
68
+
69
+ ---
70
+
71
+ ## 🚫 ANTI-STUB CONTRACT (regra inegociável)
72
+
73
+ > **Por que existe esta seção:** o `/dare-tasks` que vem depois usa este Blueprint como **única fonte de verdade**. Se um endpoint, função ou regra ficar genérico aqui, o agente que implementar a task **será forçado a inventar** — e vai produzir mocks, stubs e esqueletos para "preencher o vazio". Detalhe agora.
74
+ >
75
+ > Tasks que produzem mock/stub/skeleton **falham** no `dare review` (introduzido na v2.17) e bloqueiam o `dare execute --complete`.
76
+
77
+ Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
78
+
79
+ ### Para endpoints HTTP/RPC
80
+
81
+ - **Assinatura completa:** método, path, headers obrigatórios, content-type
82
+ - **Request schema:** todos os campos com tipo, restrições (min/max/regex), opcionalidade
83
+ - **Response schema por status code:** estrutura para 2xx, 4xx, 5xx — não apenas "200 OK"
84
+ - **Validações server-side:** lista exaustiva de regras (`email único`, `senha ≥ 8 chars + 1 maiúscula + 1 dígito`, etc.)
85
+ - **Edge cases enumerados:** o que acontece com input vazio, duplicado, expirado, sem permissão, com dados inconsistentes
86
+ - **Side effects:** que tabelas/filas/caches/emails são tocados — em ordem
87
+ - **Exemplo concreto (não placeholder):** payload real, response real
88
+
89
+ ### Para funções de domínio / services
90
+
91
+ - **Assinatura tipada** (`fn name(args: Types) -> ReturnType` ou equivalente)
92
+ - **Pré-condições** verificáveis (estado obrigatório do banco/cache/etc.)
93
+ - **Pós-condições** verificáveis (o que muda no sistema após retornar OK)
94
+ - **Estados de erro** com tipo de exceção/Result/Either esperado
95
+ - **Comportamento em concorrência** quando relevante (idempotência, locking, retry)
96
+
97
+ ### Para jobs / event handlers / workers
98
+
99
+ - **Trigger:** evento, cron, fila — incluir o **nome canônico**
100
+ - **Payload schema** com tipos
101
+ - **Retry policy** (backoff, max attempts, DLQ)
102
+ - **Idempotência:** chave + estratégia
103
+ - **SLA / timeout**
104
+
105
+ ### Para modelos de dados
106
+
107
+ - Cada campo: tipo, nullable, default, constraints (unique, fk, check), índices
108
+ - Triggers ou hooks (soft-delete, audit, encryption-at-rest)
109
+ - Estado inicial / seed obrigatório (se aplicável)
110
+
111
+ ### Critério de "Blueprint detalhado o suficiente"
112
+
113
+ Antes de salvar, valide internamente — se a resposta a **qualquer** pergunta abaixo for "não", o Blueprint ainda está raso e precisa ser expandido:
114
+
115
+ - [ ] Para cada endpoint, um humano não-familiarizado consegue escrever request/response sem perguntar nada?
116
+ - [ ] Para cada função pública, está claro **o que retorna** em todos os caminhos (sucesso + erros enumerados)?
117
+ - [ ] Edge cases foram **enumerados** ou só listados como "tratar edge cases"?
118
+ - [ ] Cada validação tem uma regra concreta (não "validar email" — `^[a-z0-9._%+-]+@...`)?
119
+ - [ ] Cada decisão arquitetural tem **justificativa** (não só "escolhemos X")?
120
+
121
+ **Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vai virar stub. Especifique **qual** algoritmo, **quais** campos, **quais** regras.
122
+
123
+ ---
124
+
125
+ ### 3. Salvar e aguardar aprovação humana
126
+
127
+ Salve `DARE/BLUEPRINT.md` e informe:
128
+
129
+ _"Blueprint gerado. Revise a arquitetura, os contratos de API e os critérios de DONE de cada fase — especialmente as tasks de complexidade HIGH. Quando aprovado, rode `/dare-tasks` para gerar o DAG e as specs de execução."_
130
+
131
+ **Não gere** `DARE/TASKS.md`, `DARE/dare-dag.yaml` nem arquivos em `DARE/EXECUTION/`.
132
+ Esses artefatos são responsabilidade exclusiva do `/dare-tasks`.
133
+
134
+ $ARGUMENTS