@dewtech/dare-cli 3.3.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 (582) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +764 -764
  3. package/dist/__tests__/confidence.test.js +13 -13
  4. package/dist/__tests__/dag-converter.test.js +56 -56
  5. package/dist/__tests__/mcp-server/server.test.js +3 -16
  6. package/dist/__tests__/mcp-server/server.test.js.map +1 -1
  7. package/dist/__tests__/project-generator.test.js +2 -2
  8. package/dist/__tests__/project-generator.test.js.map +1 -1
  9. package/dist/__tests__/refine.test.js +49 -49
  10. package/dist/__tests__/reverse-collection.test.js +6 -6
  11. package/dist/__tests__/review.test.js +38 -38
  12. package/dist/__tests__/security-hardening.test.d.ts +2 -0
  13. package/dist/__tests__/security-hardening.test.d.ts.map +1 -0
  14. package/dist/__tests__/security-hardening.test.js +101 -0
  15. package/dist/__tests__/security-hardening.test.js.map +1 -0
  16. package/dist/__tests__/validate.test.js +65 -65
  17. package/dist/bin/dare.js +0 -0
  18. package/dist/commands/__tests__/init-validation.test.d.ts +2 -0
  19. package/dist/commands/__tests__/init-validation.test.d.ts.map +1 -0
  20. package/dist/commands/__tests__/init-validation.test.js +81 -0
  21. package/dist/commands/__tests__/init-validation.test.js.map +1 -0
  22. package/dist/commands/__tests__/init.integration.spec.js +6 -4
  23. package/dist/commands/__tests__/init.integration.spec.js.map +1 -1
  24. package/dist/commands/__tests__/init.spec.d.ts +2 -0
  25. package/dist/commands/__tests__/init.spec.d.ts.map +1 -0
  26. package/dist/commands/__tests__/init.spec.js +88 -0
  27. package/dist/commands/__tests__/init.spec.js.map +1 -0
  28. package/dist/commands/blueprint.js +122 -122
  29. package/dist/commands/design.js +20 -20
  30. package/dist/commands/init-validation.d.ts +22 -0
  31. package/dist/commands/init-validation.d.ts.map +1 -0
  32. package/dist/commands/init-validation.js +54 -0
  33. package/dist/commands/init-validation.js.map +1 -0
  34. package/dist/commands/init.d.ts.map +1 -1
  35. package/dist/commands/init.js +26 -10
  36. package/dist/commands/init.js.map +1 -1
  37. package/dist/graphrag/graph-rag.js +24 -24
  38. package/dist/mcp-server/__tests__/auth.test.d.ts +2 -0
  39. package/dist/mcp-server/__tests__/auth.test.d.ts.map +1 -0
  40. package/dist/mcp-server/__tests__/auth.test.js +72 -0
  41. package/dist/mcp-server/__tests__/auth.test.js.map +1 -0
  42. package/dist/mcp-server/__tests__/boot-config.test.d.ts +2 -0
  43. package/dist/mcp-server/__tests__/boot-config.test.d.ts.map +1 -0
  44. package/dist/mcp-server/__tests__/boot-config.test.js +29 -0
  45. package/dist/mcp-server/__tests__/boot-config.test.js.map +1 -0
  46. package/dist/mcp-server/__tests__/error-sanitize.test.d.ts +2 -0
  47. package/dist/mcp-server/__tests__/error-sanitize.test.d.ts.map +1 -0
  48. package/dist/mcp-server/__tests__/error-sanitize.test.js +66 -0
  49. package/dist/mcp-server/__tests__/error-sanitize.test.js.map +1 -0
  50. package/dist/mcp-server/__tests__/path-confinement.test.d.ts +2 -0
  51. package/dist/mcp-server/__tests__/path-confinement.test.d.ts.map +1 -0
  52. package/dist/mcp-server/__tests__/path-confinement.test.js +135 -0
  53. package/dist/mcp-server/__tests__/path-confinement.test.js.map +1 -0
  54. package/dist/mcp-server/bin/server.js +18 -6
  55. package/dist/mcp-server/bin/server.js.map +1 -1
  56. package/dist/mcp-server/boot-config.d.ts +6 -0
  57. package/dist/mcp-server/boot-config.d.ts.map +1 -0
  58. package/dist/mcp-server/boot-config.js +17 -0
  59. package/dist/mcp-server/boot-config.js.map +1 -0
  60. package/dist/mcp-server/middleware/auth.d.ts +10 -0
  61. package/dist/mcp-server/middleware/auth.d.ts.map +1 -0
  62. package/dist/mcp-server/middleware/auth.js +44 -0
  63. package/dist/mcp-server/middleware/auth.js.map +1 -0
  64. package/dist/mcp-server/middleware/cors.d.ts +6 -0
  65. package/dist/mcp-server/middleware/cors.d.ts.map +1 -0
  66. package/dist/mcp-server/middleware/cors.js +30 -0
  67. package/dist/mcp-server/middleware/cors.js.map +1 -0
  68. package/dist/mcp-server/middleware/error-handler.d.ts +11 -0
  69. package/dist/mcp-server/middleware/error-handler.d.ts.map +1 -0
  70. package/dist/mcp-server/middleware/error-handler.js +14 -0
  71. package/dist/mcp-server/middleware/error-handler.js.map +1 -0
  72. package/dist/mcp-server/server.d.ts +7 -2
  73. package/dist/mcp-server/server.d.ts.map +1 -1
  74. package/dist/mcp-server/server.js +185 -105
  75. package/dist/mcp-server/server.js.map +1 -1
  76. package/dist/skills/registry-mock.json +109 -109
  77. package/dist/skills/tests/manifest.spec.js +20 -20
  78. package/dist/stacks/__tests__/dna-emitter.spec.js +6 -6
  79. package/dist/stacks/dna-emitter.js +69 -69
  80. package/dist/stacks/ruby-rails-8/scaffold.js +15 -15
  81. package/dist/utils/project-generator.d.ts.map +1 -1
  82. package/dist/utils/project-generator.js +254 -252
  83. package/dist/utils/project-generator.js.map +1 -1
  84. package/dist/utils/stack-bootstrap.js +371 -371
  85. package/dist/utils/templates.js +394 -394
  86. package/dist/verification/__tests__/anti-tamper.test.js +13 -13
  87. package/package.json +96 -93
  88. package/templates/DARE-dag-example.yaml +280 -280
  89. package/templates/UPDATE-MANIFEST.json +68 -68
  90. package/templates/backend/node-nestjs/.env.example +9 -9
  91. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  92. package/templates/backend/node-nestjs/package.json +50 -50
  93. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  94. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  95. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  96. package/templates/backend/node-nestjs/src/main.ts +24 -24
  97. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  98. package/templates/backend/php-laravel/.env.example +22 -22
  99. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  100. package/templates/backend/php-laravel/composer.json +40 -40
  101. package/templates/backend/python-fastapi/.env.example +4 -4
  102. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  103. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  104. package/templates/backend/python-fastapi/main.py +35 -35
  105. package/templates/backend/python-fastapi/requirements.txt +13 -13
  106. package/templates/backend/rust-axum/.env.example +3 -3
  107. package/templates/backend/rust-axum/Cargo.toml +23 -23
  108. package/templates/backend/rust-axum/src/errors.rs +30 -30
  109. package/templates/backend/rust-axum/src/main.rs +32 -32
  110. package/templates/backend/rust-axum/src/routes.rs +6 -6
  111. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  112. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  113. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  114. package/templates/frontend/leptos-csr/index.html +11 -11
  115. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  116. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  117. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  118. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  119. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  120. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  121. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  122. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  123. package/templates/frontend/react/index.html +12 -12
  124. package/templates/frontend/react/package.json +35 -35
  125. package/templates/frontend/react/src/App.tsx +25 -25
  126. package/templates/frontend/react/src/main.tsx +9 -9
  127. package/templates/frontend/vue/package.json +32 -32
  128. package/templates/frontend/vue/src/App.vue +7 -7
  129. package/templates/frontend/vue/src/main.ts +10 -10
  130. package/templates/frontend/vue/src/router/index.ts +14 -14
  131. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  132. package/templates/hooks/pre-commit-dare-validate +24 -24
  133. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -152
  134. package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -21
  135. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +368 -368
  136. package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -32
  137. package/templates/ide/antigravity/.agents/skills/dare-bugfix-design/SKILL.md +76 -76
  138. package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -32
  139. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -154
  140. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -130
  141. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  142. package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +180 -180
  143. package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -33
  144. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -63
  145. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -315
  146. package/templates/ide/antigravity/.agents/skills/dare-execute/SKILL.md +264 -264
  147. package/templates/ide/antigravity/.agents/skills/dare-feature-design/SKILL.md +74 -74
  148. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -192
  149. package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -35
  150. package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -31
  151. package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -35
  152. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -337
  153. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -166
  154. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -217
  155. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -61
  156. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -187
  157. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -217
  158. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
  159. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -108
  160. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
  161. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -263
  162. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  163. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -274
  164. package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -35
  165. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
  166. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -188
  167. package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -33
  168. package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -33
  169. package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -30
  170. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -343
  171. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -377
  172. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -382
  173. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -326
  174. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -393
  175. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  176. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  177. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
  178. package/templates/ide/antigravity/templates/TASKS-template.md +26 -26
  179. package/templates/ide/antigravity/templates/TELEMETRY-template.md +125 -125
  180. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -131
  181. package/templates/ide/claude/.claude/commands/dare-bench.md +18 -18
  182. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
  183. package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -27
  184. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -119
  185. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
  186. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  187. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -117
  188. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  189. package/templates/ide/claude/.claude/commands/dare-dag.md +27 -27
  190. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  191. package/templates/ide/claude/.claude/commands/dare-discover.md +28 -28
  192. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -75
  193. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -207
  194. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  195. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -147
  196. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -149
  197. package/templates/ide/claude/.claude/commands/dare-graph.md +30 -30
  198. package/templates/ide/claude/.claude/commands/dare-info.md +26 -26
  199. package/templates/ide/claude/.claude/commands/dare-init.md +30 -30
  200. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -211
  201. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -124
  202. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -148
  203. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -72
  204. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -166
  205. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -159
  206. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
  207. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -139
  208. package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
  209. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  210. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  211. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  212. package/templates/ide/claude/.claude/commands/dare-skill.md +30 -30
  213. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  214. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -132
  215. package/templates/ide/claude/.claude/commands/dare-update.md +28 -28
  216. package/templates/ide/claude/.claude/commands/dare-validate.md +28 -28
  217. package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -25
  218. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -205
  219. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -232
  220. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -228
  221. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -210
  222. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -236
  223. package/templates/ide/claude/.claude/settings.example.json +35 -35
  224. package/templates/ide/claude/CLAUDE.md +146 -146
  225. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  226. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  227. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
  228. package/templates/ide/claude/templates/TASKS-template.md +26 -26
  229. package/templates/ide/claude/templates/TELEMETRY-template.md +125 -125
  230. package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -18
  231. package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +86 -86
  232. package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -27
  233. package/templates/ide/cursor/.cursor/commands/dare-bugfix-design.md +64 -64
  234. package/templates/ide/cursor/.cursor/commands/dare-dag-run.md +110 -110
  235. package/templates/ide/cursor/.cursor/commands/dare-dag-viz.md +139 -139
  236. package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -27
  237. package/templates/ide/cursor/.cursor/commands/dare-design.md +35 -35
  238. package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -28
  239. package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -75
  240. package/templates/ide/cursor/.cursor/commands/dare-docker-compose.md +18 -18
  241. package/templates/ide/cursor/.cursor/commands/dare-dockerfile.md +17 -17
  242. package/templates/ide/cursor/.cursor/commands/dare-execute.md +19 -19
  243. package/templates/ide/cursor/.cursor/commands/dare-feature-design.md +64 -64
  244. package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -30
  245. package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -26
  246. package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -30
  247. package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -72
  248. package/templates/ide/cursor/.cursor/commands/dare-refine.md +107 -107
  249. package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -139
  250. package/templates/ide/cursor/.cursor/commands/dare-review.md +91 -91
  251. package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -30
  252. package/templates/ide/cursor/.cursor/commands/dare-tasks.md +184 -184
  253. package/templates/ide/cursor/.cursor/commands/dare-telemetry.md +42 -42
  254. package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -28
  255. package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -28
  256. package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -25
  257. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -263
  258. package/templates/ide/cursor/.cursor/rules/skill-bugfix-design.mdc +51 -51
  259. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -173
  260. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -134
  261. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  262. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -63
  263. package/templates/ide/cursor/.cursor/rules/skill-docker.mdc +33 -33
  264. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -352
  265. package/templates/ide/cursor/.cursor/rules/skill-feature-design.mdc +43 -43
  266. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -244
  267. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -371
  268. package/templates/ide/cursor/.cursor/rules/skill-laravel-api.mdc +44 -44
  269. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -266
  270. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -295
  271. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -367
  272. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -58
  273. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -346
  274. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -248
  275. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -400
  276. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -262
  277. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -107
  278. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -281
  279. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  280. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  281. package/templates/ide/cursor/.cursor/rules/skill-telemetry.mdc +156 -156
  282. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  283. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  284. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
  285. package/templates/ide/cursor/templates/TASKS-template.md +26 -26
  286. package/templates/ide/cursor/templates/TELEMETRY-template.md +125 -125
  287. package/templates/shared/docker-compose.yml +41 -41
  288. package/templates/stacks/go-gin/.dare/skills.yml +11 -11
  289. package/templates/stacks/go-gin/.env.example +24 -24
  290. package/templates/stacks/go-gin/.github/workflows/dare-ci.yml +42 -42
  291. package/templates/stacks/go-gin/README.md.tpl +38 -38
  292. package/templates/stacks/go-gin/cmd/server/main.go.tpl +78 -78
  293. package/templates/stacks/go-gin/db/migrations/0001_create_users.down.sql +2 -2
  294. package/templates/stacks/go-gin/db/migrations/0001_create_users.up.sql +12 -12
  295. package/templates/stacks/go-gin/db/queries/users.sql +23 -23
  296. package/templates/stacks/go-gin/gitignore +7 -7
  297. package/templates/stacks/go-gin/go.mod.tpl +17 -17
  298. package/templates/stacks/go-gin/internal/config/config.go +41 -41
  299. package/templates/stacks/go-gin/internal/db/postgres.go.tpl +25 -25
  300. package/templates/stacks/go-gin/internal/handler/auth_handler.go.tpl +72 -72
  301. package/templates/stacks/go-gin/internal/handler/users_handler.go.tpl +72 -72
  302. package/templates/stacks/go-gin/internal/handler/ws_handler.go +37 -37
  303. package/templates/stacks/go-gin/internal/llm/dummy.go +14 -14
  304. package/templates/stacks/go-gin/internal/llm/provider.go +8 -8
  305. package/templates/stacks/go-gin/internal/middleware/jwt.go.tpl +58 -58
  306. package/templates/stacks/go-gin/internal/middleware/rate_limit.go +55 -55
  307. package/templates/stacks/go-gin/internal/model/user.go +17 -17
  308. package/templates/stacks/go-gin/internal/repository/users_repository.go.tpl +79 -79
  309. package/templates/stacks/go-gin/internal/service/auth_service.go.tpl +55 -55
  310. package/templates/stacks/go-gin/internal/service/users_service.go.tpl +53 -53
  311. package/templates/stacks/go-gin/llms.txt.tpl +54 -54
  312. package/templates/stacks/go-gin/openapi.json.tpl +46 -46
  313. package/templates/stacks/go-gin/sqlc.yaml +14 -14
  314. package/templates/stacks/go-gin/tests/smoke_test.go.tpl +22 -22
  315. package/templates/stacks/go-stdlib/.dare/skills.yml +11 -11
  316. package/templates/stacks/go-stdlib/.env.example +24 -24
  317. package/templates/stacks/go-stdlib/.github/workflows/dare-ci.yml +42 -42
  318. package/templates/stacks/go-stdlib/README.md.tpl +41 -41
  319. package/templates/stacks/go-stdlib/cmd/server/main.go.tpl +82 -82
  320. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.down.sql +2 -2
  321. package/templates/stacks/go-stdlib/db/migrations/0001_create_users.up.sql +12 -12
  322. package/templates/stacks/go-stdlib/db/queries/users.sql +23 -23
  323. package/templates/stacks/go-stdlib/gitignore +6 -6
  324. package/templates/stacks/go-stdlib/go.mod.tpl +15 -15
  325. package/templates/stacks/go-stdlib/internal/config/config.go +41 -41
  326. package/templates/stacks/go-stdlib/internal/db/postgres.go.tpl +24 -24
  327. package/templates/stacks/go-stdlib/internal/handler/auth_handler.go.tpl +71 -71
  328. package/templates/stacks/go-stdlib/internal/handler/users_handler.go.tpl +84 -84
  329. package/templates/stacks/go-stdlib/internal/handler/ws_handler.go +36 -36
  330. package/templates/stacks/go-stdlib/internal/httpx/json.go +32 -32
  331. package/templates/stacks/go-stdlib/internal/llm/dummy.go +14 -14
  332. package/templates/stacks/go-stdlib/internal/llm/provider.go +8 -8
  333. package/templates/stacks/go-stdlib/internal/middleware/chain.go +21 -21
  334. package/templates/stacks/go-stdlib/internal/middleware/cors.go +27 -27
  335. package/templates/stacks/go-stdlib/internal/middleware/jwt.go.tpl +51 -51
  336. package/templates/stacks/go-stdlib/internal/middleware/rate_limit.go +81 -81
  337. package/templates/stacks/go-stdlib/internal/model/user.go +17 -17
  338. package/templates/stacks/go-stdlib/internal/repository/users_repository.go.tpl +75 -75
  339. package/templates/stacks/go-stdlib/internal/service/auth_service.go.tpl +55 -55
  340. package/templates/stacks/go-stdlib/internal/service/users_service.go.tpl +53 -53
  341. package/templates/stacks/go-stdlib/llms.txt.tpl +60 -60
  342. package/templates/stacks/go-stdlib/openapi.json.tpl +46 -46
  343. package/templates/stacks/go-stdlib/sqlc.yaml +14 -14
  344. package/templates/stacks/go-stdlib/tests/smoke_test.go.tpl +45 -45
  345. package/templates/stacks/mcp-go/.dare/skills.yml +8 -8
  346. package/templates/stacks/mcp-go/.env.example +14 -14
  347. package/templates/stacks/mcp-go/.github/workflows/dare-ci.yml +42 -42
  348. package/templates/stacks/mcp-go/README.md.tpl +50 -50
  349. package/templates/stacks/mcp-go/cmd/server/main.go.tpl +62 -62
  350. package/templates/stacks/mcp-go/gitignore +6 -6
  351. package/templates/stacks/mcp-go/go.mod.tpl +9 -9
  352. package/templates/stacks/mcp-go/internal/prompts/summarize.go +9 -9
  353. package/templates/stacks/mcp-go/internal/server/server.go.tpl +80 -80
  354. package/templates/stacks/mcp-go/internal/tools/echo.go +15 -15
  355. package/templates/stacks/mcp-go/internal/transports/http.go.tpl +21 -21
  356. package/templates/stacks/mcp-go/internal/transports/sse.go.tpl +17 -17
  357. package/templates/stacks/mcp-go/internal/transports/stdio.go.tpl +14 -14
  358. package/templates/stacks/mcp-go/llms.txt.tpl +60 -60
  359. package/templates/stacks/mcp-go/openapi.json.tpl +31 -31
  360. package/templates/stacks/mcp-go/tests/echo_test.go.tpl +37 -37
  361. package/templates/stacks/mcp-node-ts/.dare/skills.yml +8 -8
  362. package/templates/stacks/mcp-node-ts/.env.example +16 -16
  363. package/templates/stacks/mcp-node-ts/.github/workflows/dare-ci.yml +54 -54
  364. package/templates/stacks/mcp-node-ts/README.md.hbs +49 -49
  365. package/templates/stacks/mcp-node-ts/gitignore +7 -7
  366. package/templates/stacks/mcp-node-ts/llms.txt.hbs +61 -61
  367. package/templates/stacks/mcp-node-ts/openapi.json.hbs +39 -39
  368. package/templates/stacks/mcp-node-ts/package.json.hbs +35 -35
  369. package/templates/stacks/mcp-node-ts/src/cli.ts.hbs +71 -71
  370. package/templates/stacks/mcp-node-ts/src/prompts/index.ts +36 -36
  371. package/templates/stacks/mcp-node-ts/src/server.ts.hbs +45 -45
  372. package/templates/stacks/mcp-node-ts/src/tools/echo.ts +23 -23
  373. package/templates/stacks/mcp-node-ts/src/tools/index.ts +18 -18
  374. package/templates/stacks/mcp-node-ts/src/transports/http.ts +68 -68
  375. package/templates/stacks/mcp-node-ts/src/transports/sse.ts +58 -58
  376. package/templates/stacks/mcp-node-ts/src/transports/stdio.ts +5 -5
  377. package/templates/stacks/mcp-node-ts/tests/echo.test.ts +50 -50
  378. package/templates/stacks/mcp-node-ts/tsconfig.json +17 -17
  379. package/templates/stacks/mcp-python/.dare/skills.yml +8 -8
  380. package/templates/stacks/mcp-python/.env.example +14 -14
  381. package/templates/stacks/mcp-python/.github/workflows/dare-ci.yml +42 -42
  382. package/templates/stacks/mcp-python/README.md.j2 +49 -49
  383. package/templates/stacks/mcp-python/gitignore +12 -12
  384. package/templates/stacks/mcp-python/llms.txt.j2 +56 -56
  385. package/templates/stacks/mcp-python/openapi.json.j2 +33 -33
  386. package/templates/stacks/mcp-python/pyproject.toml.j2 +37 -37
  387. package/templates/stacks/mcp-python/src/cli.py.j2 +68 -68
  388. package/templates/stacks/mcp-python/src/prompts/summarize.py +10 -10
  389. package/templates/stacks/mcp-python/src/server.py.j2 +28 -28
  390. package/templates/stacks/mcp-python/src/tools/echo.py +12 -12
  391. package/templates/stacks/mcp-python/src/transports/http.py +12 -12
  392. package/templates/stacks/mcp-python/src/transports/sse.py +13 -13
  393. package/templates/stacks/mcp-python/src/transports/stdio.py +6 -6
  394. package/templates/stacks/mcp-python/tests/test_echo.py +28 -28
  395. package/templates/stacks/mcp-rust/.dare/skills.yml +8 -8
  396. package/templates/stacks/mcp-rust/.env.example +14 -14
  397. package/templates/stacks/mcp-rust/.github/workflows/dare-ci.yml +38 -38
  398. package/templates/stacks/mcp-rust/Cargo.toml.tera +35 -35
  399. package/templates/stacks/mcp-rust/README.md.tera +50 -50
  400. package/templates/stacks/mcp-rust/gitignore +5 -5
  401. package/templates/stacks/mcp-rust/llms.txt.tera +60 -60
  402. package/templates/stacks/mcp-rust/openapi.json.tera +31 -31
  403. package/templates/stacks/mcp-rust/src/cli.rs.tera +33 -33
  404. package/templates/stacks/mcp-rust/src/lib.rs +6 -6
  405. package/templates/stacks/mcp-rust/src/main.rs.tera +30 -30
  406. package/templates/stacks/mcp-rust/src/prompts/mod.rs +1 -1
  407. package/templates/stacks/mcp-rust/src/prompts/summarize.rs +5 -5
  408. package/templates/stacks/mcp-rust/src/server.rs.tera +38 -38
  409. package/templates/stacks/mcp-rust/src/tools/echo.rs +18 -18
  410. package/templates/stacks/mcp-rust/src/tools/mod.rs +22 -22
  411. package/templates/stacks/mcp-rust/src/transports/http.rs +27 -27
  412. package/templates/stacks/mcp-rust/src/transports/mod.rs +3 -3
  413. package/templates/stacks/mcp-rust/src/transports/sse.rs +33 -33
  414. package/templates/stacks/mcp-rust/src/transports/stdio.rs +14 -14
  415. package/templates/stacks/mcp-rust/tests/echo_test.rs.tera +27 -27
  416. package/templates/stacks/node-nestjs/.dare/skills.yml +11 -11
  417. package/templates/stacks/node-nestjs/.env.example +21 -21
  418. package/templates/stacks/node-nestjs/.github/workflows/dare-ci.yml +54 -54
  419. package/templates/stacks/node-nestjs/README.md.hbs +35 -35
  420. package/templates/stacks/node-nestjs/gitignore +7 -7
  421. package/templates/stacks/node-nestjs/llms.txt.hbs +47 -47
  422. package/templates/stacks/node-nestjs/nest-cli.json +16 -16
  423. package/templates/stacks/node-nestjs/openapi.json.hbs +75 -75
  424. package/templates/stacks/node-nestjs/package.json.hbs +57 -57
  425. package/templates/stacks/node-nestjs/prisma/schema.prisma +25 -25
  426. package/templates/stacks/node-nestjs/prisma/seed.ts.hbs +25 -25
  427. package/templates/stacks/node-nestjs/src/app.module.ts +39 -39
  428. package/templates/stacks/node-nestjs/src/auth/auth.controller.ts +29 -29
  429. package/templates/stacks/node-nestjs/src/auth/auth.module.ts +25 -25
  430. package/templates/stacks/node-nestjs/src/auth/auth.service.ts +36 -36
  431. package/templates/stacks/node-nestjs/src/auth/dto/login-response.dto.ts +9 -9
  432. package/templates/stacks/node-nestjs/src/auth/dto/login.dto.ts +17 -17
  433. package/templates/stacks/node-nestjs/src/auth/jwt.strategy.ts +25 -25
  434. package/templates/stacks/node-nestjs/src/common/filters/problem-details.filter.ts +38 -38
  435. package/templates/stacks/node-nestjs/src/common/interceptors/json-response.interceptor.ts +13 -13
  436. package/templates/stacks/node-nestjs/src/main.ts.hbs +44 -44
  437. package/templates/stacks/node-nestjs/src/prisma/prisma.module.ts +9 -9
  438. package/templates/stacks/node-nestjs/src/prisma/prisma.service.ts +9 -9
  439. package/templates/stacks/node-nestjs/src/users/dto/create-user.dto.ts +22 -22
  440. package/templates/stacks/node-nestjs/src/users/dto/user.dto.ts +15 -15
  441. package/templates/stacks/node-nestjs/src/users/users.controller.ts +41 -41
  442. package/templates/stacks/node-nestjs/src/users/users.module.ts +11 -11
  443. package/templates/stacks/node-nestjs/src/users/users.repository.ts +38 -38
  444. package/templates/stacks/node-nestjs/src/users/users.service.ts +38 -38
  445. package/templates/stacks/node-nestjs/tsconfig.build.json +4 -4
  446. package/templates/stacks/node-nestjs/tsconfig.json +28 -28
  447. package/templates/stacks/php-laravel/.dare/skills.yml +11 -11
  448. package/templates/stacks/php-laravel/.env.example +41 -41
  449. package/templates/stacks/php-laravel/.github/workflows/dare-ci.yml +43 -43
  450. package/templates/stacks/php-laravel/README.md.hbs +36 -36
  451. package/templates/stacks/php-laravel/app/Http/Controllers/Api/AuthController.php +36 -36
  452. package/templates/stacks/php-laravel/app/Http/Controllers/Api/UsersController.php +33 -33
  453. package/templates/stacks/php-laravel/app/Http/Requests/CreateUserRequest.php +26 -26
  454. package/templates/stacks/php-laravel/app/Http/Requests/LoginRequest.php +34 -34
  455. package/templates/stacks/php-laravel/app/Llm/Contracts/LlmProvider.php +12 -12
  456. package/templates/stacks/php-laravel/app/Llm/Providers/DummyProvider.php +13 -13
  457. package/templates/stacks/php-laravel/app/Llm/Providers/OpenAiProvider.php +33 -33
  458. package/templates/stacks/php-laravel/app/Models/User.php +44 -44
  459. package/templates/stacks/php-laravel/app/Repositories/UsersRepository.php +32 -32
  460. package/templates/stacks/php-laravel/app/Services/AuthService.php +37 -37
  461. package/templates/stacks/php-laravel/app/Services/UsersService.php +57 -57
  462. package/templates/stacks/php-laravel/artisan +12 -12
  463. package/templates/stacks/php-laravel/bootstrap/app.php +29 -29
  464. package/templates/stacks/php-laravel/bootstrap/providers.php +5 -5
  465. package/templates/stacks/php-laravel/composer.json.hbs +58 -58
  466. package/templates/stacks/php-laravel/config/l5-swagger.php +41 -41
  467. package/templates/stacks/php-laravel/config/reverb.php +34 -34
  468. package/templates/stacks/php-laravel/config/sanctum.php +15 -15
  469. package/templates/stacks/php-laravel/database/migrations/2026_06_01_000001_create_users_table.php +27 -27
  470. package/templates/stacks/php-laravel/database/seeders/DatabaseSeeder.php +21 -21
  471. package/templates/stacks/php-laravel/gitignore +23 -23
  472. package/templates/stacks/php-laravel/llms.txt.hbs +53 -53
  473. package/templates/stacks/php-laravel/openapi.json.hbs +43 -43
  474. package/templates/stacks/php-laravel/phpstan.neon +9 -9
  475. package/templates/stacks/php-laravel/routes/api.php +13 -13
  476. package/templates/stacks/php-laravel/routes/channels.php +7 -7
  477. package/templates/stacks/php-laravel/tests/Feature/AuthTest.php +35 -35
  478. package/templates/stacks/php-laravel/tests/Feature/UsersTest.php +30 -30
  479. package/templates/stacks/php-laravel/tests/Pest.php +5 -5
  480. package/templates/stacks/python-fastapi/.dare/skills.yml +11 -11
  481. package/templates/stacks/python-fastapi/.env.example +21 -21
  482. package/templates/stacks/python-fastapi/.github/workflows/dare-ci.yml +43 -43
  483. package/templates/stacks/python-fastapi/README.md.j2 +35 -35
  484. package/templates/stacks/python-fastapi/alembic/env.py +46 -46
  485. package/templates/stacks/python-fastapi/alembic/script.py.mako +26 -26
  486. package/templates/stacks/python-fastapi/alembic/versions/0001_create_users.py.j2 +37 -37
  487. package/templates/stacks/python-fastapi/alembic.ini.j2 +39 -39
  488. package/templates/stacks/python-fastapi/app/core/config.py +24 -24
  489. package/templates/stacks/python-fastapi/app/core/security.py +34 -34
  490. package/templates/stacks/python-fastapi/app/db/session.py +22 -22
  491. package/templates/stacks/python-fastapi/app/main.py.j2 +36 -36
  492. package/templates/stacks/python-fastapi/app/models/__init__.py +3 -3
  493. package/templates/stacks/python-fastapi/app/models/user.py +30 -30
  494. package/templates/stacks/python-fastapi/app/repositories/user_repository.py +34 -34
  495. package/templates/stacks/python-fastapi/app/routers/auth.py +37 -37
  496. package/templates/stacks/python-fastapi/app/routers/users.py +46 -46
  497. package/templates/stacks/python-fastapi/app/schemas/user.py +56 -56
  498. package/templates/stacks/python-fastapi/app/services/auth_service.py +22 -22
  499. package/templates/stacks/python-fastapi/app/services/user_service.py +31 -31
  500. package/templates/stacks/python-fastapi/gitignore +12 -12
  501. package/templates/stacks/python-fastapi/llms.txt.j2 +53 -53
  502. package/templates/stacks/python-fastapi/openapi.json.j2 +43 -43
  503. package/templates/stacks/python-fastapi/pyproject.toml.j2 +45 -45
  504. package/templates/stacks/python-fastapi/tests/test_auth.py +22 -22
  505. package/templates/stacks/ruby-rails-8/.dare/skills.yml +50 -50
  506. package/templates/stacks/ruby-rails-8/.env.example +20 -20
  507. package/templates/stacks/ruby-rails-8/.github/workflows/dare-ci.yml +112 -112
  508. package/templates/stacks/ruby-rails-8/Gemfile.erb +61 -61
  509. package/templates/stacks/ruby-rails-8/app/channels/application_cable/channel.rb +11 -11
  510. package/templates/stacks/ruby-rails-8/app/channels/application_cable/connection.rb +34 -34
  511. package/templates/stacks/ruby-rails-8/app/channels/dare_updates_channel.rb +18 -18
  512. package/templates/stacks/ruby-rails-8/app/channels/user_updates_channel.rb +23 -23
  513. package/templates/stacks/ruby-rails-8/app/controllers/application_controller.rb +44 -44
  514. package/templates/stacks/ruby-rails-8/app/controllers/concerns/problem_details.rb +93 -93
  515. package/templates/stacks/ruby-rails-8/app/handlers/summarize_handler.rb +33 -33
  516. package/templates/stacks/ruby-rails-8/app/handlers/users_handler.rb +68 -68
  517. package/templates/stacks/ruby-rails-8/app/llm/cache/llm_cache.rb +44 -44
  518. package/templates/stacks/ruby-rails-8/app/llm/prompts/prompt_loader.rb +54 -54
  519. package/templates/stacks/ruby-rails-8/app/llm/prompts/summarize_v1.jinja2 +12 -12
  520. package/templates/stacks/ruby-rails-8/app/llm/providers/dummy_provider.rb +35 -35
  521. package/templates/stacks/ruby-rails-8/app/llm/providers/llm_provider.rb +67 -67
  522. package/templates/stacks/ruby-rails-8/app/llm/providers/openai_provider.rb +62 -62
  523. package/templates/stacks/ruby-rails-8/app/llm/rate_limit/token_bucket.rb +82 -82
  524. package/templates/stacks/ruby-rails-8/app/llm/validators/summarize_output_schema.json +21 -21
  525. package/templates/stacks/ruby-rails-8/app/llm/validators/validator.rb +52 -52
  526. package/templates/stacks/ruby-rails-8/app/models/user.rb +36 -36
  527. package/templates/stacks/ruby-rails-8/app/presenters/user_presenter.rb +48 -48
  528. package/templates/stacks/ruby-rails-8/app/repositories/document_repository.rb +57 -57
  529. package/templates/stacks/ruby-rails-8/app/repositories/user_repository.rb +73 -73
  530. package/templates/stacks/ruby-rails-8/app/services/create_user_service.rb +67 -67
  531. package/templates/stacks/ruby-rails-8/app/services/realtime_service.rb +53 -53
  532. package/templates/stacks/ruby-rails-8/app/services/summarize_document_service.rb +57 -57
  533. package/templates/stacks/ruby-rails-8/config/dare.yml +42 -42
  534. package/templates/stacks/ruby-rails-8/config/initializers/dare.rb +31 -31
  535. package/templates/stacks/ruby-rails-8/config/initializers/rack_attack.rb +64 -64
  536. package/templates/stacks/ruby-rails-8/config/initializers/rswag_api.rb +12 -12
  537. package/templates/stacks/ruby-rails-8/lib/tasks/dare.rake +159 -159
  538. package/templates/stacks/ruby-rails-8/llms.txt.erb +69 -69
  539. package/templates/stacks/ruby-rails-8/spec/api/summarize_spec.rb +56 -56
  540. package/templates/stacks/ruby-rails-8/spec/api/users_spec.rb +72 -72
  541. package/templates/stacks/ruby-rails-8/spec/channels/dare_updates_channel_spec.rb +61 -61
  542. package/templates/stacks/ruby-rails-8/spec/channels/user_updates_channel_spec.rb +56 -56
  543. package/templates/stacks/ruby-rails-8/spec/factories/users.rb +27 -27
  544. package/templates/stacks/ruby-rails-8/spec/handlers/users_handler_spec.rb +88 -88
  545. package/templates/stacks/ruby-rails-8/spec/rails_helper.rb +31 -31
  546. package/templates/stacks/ruby-rails-8/spec/services/create_user_service_spec.rb +88 -88
  547. package/templates/stacks/ruby-rails-8/spec/services/summarize_document_service_spec.rb +142 -142
  548. package/templates/stacks/ruby-rails-8/spec/swagger_helper.rb +73 -73
  549. package/templates/stacks/rust-axum/.dare/skills.yml +11 -11
  550. package/templates/stacks/rust-axum/.env.example +26 -26
  551. package/templates/stacks/rust-axum/.github/workflows/dare-ci.yml +40 -40
  552. package/templates/stacks/rust-axum/Cargo.toml.tera +53 -53
  553. package/templates/stacks/rust-axum/README.md.tera +37 -37
  554. package/templates/stacks/rust-axum/gitignore +5 -5
  555. package/templates/stacks/rust-axum/llms.txt.tera +54 -54
  556. package/templates/stacks/rust-axum/migrations/0001_create_users.sql +13 -13
  557. package/templates/stacks/rust-axum/openapi.json.tera +46 -46
  558. package/templates/stacks/rust-axum/src/config.rs +45 -45
  559. package/templates/stacks/rust-axum/src/errors.rs +48 -48
  560. package/templates/stacks/rust-axum/src/handlers/auth.rs +48 -48
  561. package/templates/stacks/rust-axum/src/handlers/mod.rs +3 -3
  562. package/templates/stacks/rust-axum/src/handlers/users.rs +81 -81
  563. package/templates/stacks/rust-axum/src/handlers/ws.rs +24 -24
  564. package/templates/stacks/rust-axum/src/lib.rs +19 -19
  565. package/templates/stacks/rust-axum/src/llm/mod.rs +1 -1
  566. package/templates/stacks/rust-axum/src/llm/provider.rs +48 -48
  567. package/templates/stacks/rust-axum/src/main.rs.tera +64 -64
  568. package/templates/stacks/rust-axum/src/middleware/auth.rs +20 -20
  569. package/templates/stacks/rust-axum/src/middleware/mod.rs +2 -2
  570. package/templates/stacks/rust-axum/src/middleware/rate_limit.rs +27 -27
  571. package/templates/stacks/rust-axum/src/models/mod.rs +1 -1
  572. package/templates/stacks/rust-axum/src/models/user.rs +13 -13
  573. package/templates/stacks/rust-axum/src/repositories/mod.rs +1 -1
  574. package/templates/stacks/rust-axum/src/repositories/user_repository.rs +62 -62
  575. package/templates/stacks/rust-axum/src/services/auth_service.rs +50 -50
  576. package/templates/stacks/rust-axum/src/services/mod.rs +2 -2
  577. package/templates/stacks/rust-axum/src/services/user_service.rs +53 -53
  578. package/templates/stacks/rust-axum/tests/integration_test.rs.tera +13 -13
  579. package/dist/commands/new.d.ts +0 -16
  580. package/dist/commands/new.d.ts.map +0 -1
  581. package/dist/commands/new.js +0 -104
  582. package/dist/commands/new.js.map +0 -1
@@ -1,86 +1,86 @@
1
- # Comando: /dare-blueprint
2
-
3
- ## Descrição
4
- Avança o DARE para a fase Architect: lê `DARE/DESIGN.md` aprovado e gera **somente** `DARE/BLUEPRINT.md`.
5
-
6
- > As tasks, DAG e specs de execução são geradas depois com `/generate-tasks`, após você revisar e aprovar o Blueprint.
7
-
8
- ## Instruções para o Cursor Composer
9
-
10
- 1. **Leia `DARE/DESIGN.md`** — obrigatório. Se não existir, peça `/generate-design` primeiro. Extraia: stack, RF-*, RNF-*, RS-*, integrações, restrições, escopo.
11
-
12
- 2. **Leia o template:** `templates/BLUEPRINT-template.md` — siga a estrutura fielmente.
13
-
14
- 3. **Gere `DARE/BLUEPRINT.md`** com seções obrigatórias:
15
-
16
- - **Visão Geral da Arquitetura** — diagrama Mermaid + tabela de decisões com justificativa
17
- - **Stack Técnica Definida** — versões fixas (não ranges)
18
- - **Estrutura de Pastas** — árvore completa dos arquivos a criar
19
- - **Modelo de Dados** — entidades, campos tipados, relacionamentos, índices
20
- - **Contratos de API** — método, rota, auth, request/response, status codes
21
- - **Plano de Execução (Fases)** — cada fase com critério de DONE verificável:
22
- - Fase 1 = containerização (Dockerfile + docker-compose + healthcheck) — sempre
23
- - Fase N-1 = auditoria de segurança + dependências — sempre
24
- - **Validation Gates por stack:**
25
- | Stack | Build | Test | Lint/Audit |
26
- |-------|-------|------|------------|
27
- | Rust | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
28
- | Node | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
29
- | Python | verificar imports | `pytest` | `ruff check . && pip-audit` |
30
- | PHP | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
31
- | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
32
- - **Controles de Segurança** — checklist mapeando cada RS-* do DESIGN para fases específicas
33
- - **Estratégia de Testes** — unitários + integração + auditoria de deps + E2E
34
- - **Estratégia de Deploy** — por ambiente
35
- - **Checklist de Aprovação** — checkboxes para revisão humana
36
-
37
- ---
38
-
39
- ### 🚫 ANTI-STUB CONTRACT (regra inegociável)
40
-
41
- > **Por que existe esta seção:** o `/generate-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.
42
- >
43
- > Tasks que produzem mock/stub/skeleton **falham** no `dare review` (v2.17+) e bloqueiam o `dare execute --complete`.
44
-
45
- Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
46
-
47
- **Endpoints HTTP/RPC:**
48
- - Assinatura completa (método, path, headers, content-type)
49
- - Request schema (campos, tipos, restrições, opcionalidade)
50
- - Response schema **por status code** (2xx, 4xx, 5xx)
51
- - Validações server-side (lista exaustiva — `email único`, `senha ≥ 8 chars + maiúscula + dígito`)
52
- - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
53
- - Side effects (tabelas/filas/caches/emails tocados — em ordem)
54
- - Exemplo concreto (payload real, response real — não placeholder)
55
-
56
- **Funções de domínio / services:**
57
- - Assinatura tipada (`fn name(args: Types) -> ReturnType`)
58
- - Pré-condições e pós-condições verificáveis
59
- - Estados de erro com tipo de exceção esperado
60
- - Comportamento em concorrência (idempotência, locking, retry)
61
-
62
- **Jobs / event handlers / workers:**
63
- - Trigger (evento, cron, fila — nome canônico)
64
- - Payload schema tipado
65
- - Retry policy (backoff, max attempts, DLQ)
66
- - Idempotência (chave + estratégia)
67
-
68
- **Modelos de dados:**
69
- - Cada campo: tipo, nullable, default, constraints (unique, fk, check), índices
70
- - Triggers / hooks (soft-delete, audit, encryption-at-rest)
71
-
72
- **Critério de "Blueprint detalhado o suficiente"** (auto-validação antes de salvar):
73
-
74
- - [ ] Para cada endpoint, um humano consegue escrever request/response sem perguntar?
75
- - [ ] Para cada função pública, está claro o que retorna em todos os caminhos (sucesso + erros enumerados)?
76
- - [ ] Edge cases enumerados explicitamente — não "tratar edge cases"?
77
- - [ ] Cada validação tem regra concreta — não só "validar email"?
78
- - [ ] Cada decisão arquitetural tem **justificativa**?
79
-
80
- **Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vira stub. Especifique algoritmo, campos, regras.
81
-
82
- 4. **Salve `DARE/BLUEPRINT.md`** e informe:
83
-
84
- _"Blueprint gerado. Revise a arquitetura, os contratos de API e os critérios de DONE de cada fase. Quando aprovado, execute `/generate-tasks` para gerar o DAG e as specs de execução."_
85
-
86
- **Não gere** `TASKS.md`, `dare-dag.yaml` nem arquivos em `EXECUTION/` — isso é responsabilidade do `/generate-tasks`.
1
+ # Comando: /dare-blueprint
2
+
3
+ ## Descrição
4
+ Avança o DARE para a fase Architect: lê `DARE/DESIGN.md` aprovado e gera **somente** `DARE/BLUEPRINT.md`.
5
+
6
+ > As tasks, DAG e specs de execução são geradas depois com `/generate-tasks`, após você revisar e aprovar o Blueprint.
7
+
8
+ ## Instruções para o Cursor Composer
9
+
10
+ 1. **Leia `DARE/DESIGN.md`** — obrigatório. Se não existir, peça `/generate-design` primeiro. Extraia: stack, RF-*, RNF-*, RS-*, integrações, restrições, escopo.
11
+
12
+ 2. **Leia o template:** `templates/BLUEPRINT-template.md` — siga a estrutura fielmente.
13
+
14
+ 3. **Gere `DARE/BLUEPRINT.md`** com seções obrigatórias:
15
+
16
+ - **Visão Geral da Arquitetura** — diagrama Mermaid + tabela de decisões com justificativa
17
+ - **Stack Técnica Definida** — versões fixas (não ranges)
18
+ - **Estrutura de Pastas** — árvore completa dos arquivos a criar
19
+ - **Modelo de Dados** — entidades, campos tipados, relacionamentos, índices
20
+ - **Contratos de API** — método, rota, auth, request/response, status codes
21
+ - **Plano de Execução (Fases)** — cada fase com critério de DONE verificável:
22
+ - Fase 1 = containerização (Dockerfile + docker-compose + healthcheck) — sempre
23
+ - Fase N-1 = auditoria de segurança + dependências — sempre
24
+ - **Validation Gates por stack:**
25
+ | Stack | Build | Test | Lint/Audit |
26
+ |-------|-------|------|------------|
27
+ | Rust | `cargo build` | `cargo test --workspace` | `cargo clippy && cargo audit` |
28
+ | Node | `npm run build` | `npm test` | `npx eslint src && npm audit --audit-level=high` |
29
+ | Python | verificar imports | `pytest` | `ruff check . && pip-audit` |
30
+ | PHP | `php artisan config:cache` | `php artisan test` | `./vendor/bin/phpstan && composer audit` |
31
+ | Go | `go build ./...` | `go test ./...` | `golangci-lint run` |
32
+ - **Controles de Segurança** — checklist mapeando cada RS-* do DESIGN para fases específicas
33
+ - **Estratégia de Testes** — unitários + integração + auditoria de deps + E2E
34
+ - **Estratégia de Deploy** — por ambiente
35
+ - **Checklist de Aprovação** — checkboxes para revisão humana
36
+
37
+ ---
38
+
39
+ ### 🚫 ANTI-STUB CONTRACT (regra inegociável)
40
+
41
+ > **Por que existe esta seção:** o `/generate-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.
42
+ >
43
+ > Tasks que produzem mock/stub/skeleton **falham** no `dare review` (v2.17+) e bloqueiam o `dare execute --complete`.
44
+
45
+ Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
46
+
47
+ **Endpoints HTTP/RPC:**
48
+ - Assinatura completa (método, path, headers, content-type)
49
+ - Request schema (campos, tipos, restrições, opcionalidade)
50
+ - Response schema **por status code** (2xx, 4xx, 5xx)
51
+ - Validações server-side (lista exaustiva — `email único`, `senha ≥ 8 chars + maiúscula + dígito`)
52
+ - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
53
+ - Side effects (tabelas/filas/caches/emails tocados — em ordem)
54
+ - Exemplo concreto (payload real, response real — não placeholder)
55
+
56
+ **Funções de domínio / services:**
57
+ - Assinatura tipada (`fn name(args: Types) -> ReturnType`)
58
+ - Pré-condições e pós-condições verificáveis
59
+ - Estados de erro com tipo de exceção esperado
60
+ - Comportamento em concorrência (idempotência, locking, retry)
61
+
62
+ **Jobs / event handlers / workers:**
63
+ - Trigger (evento, cron, fila — nome canônico)
64
+ - Payload schema tipado
65
+ - Retry policy (backoff, max attempts, DLQ)
66
+ - Idempotência (chave + estratégia)
67
+
68
+ **Modelos de dados:**
69
+ - Cada campo: tipo, nullable, default, constraints (unique, fk, check), índices
70
+ - Triggers / hooks (soft-delete, audit, encryption-at-rest)
71
+
72
+ **Critério de "Blueprint detalhado o suficiente"** (auto-validação antes de salvar):
73
+
74
+ - [ ] Para cada endpoint, um humano consegue escrever request/response sem perguntar?
75
+ - [ ] Para cada função pública, está claro o que retorna em todos os caminhos (sucesso + erros enumerados)?
76
+ - [ ] Edge cases enumerados explicitamente — não "tratar edge cases"?
77
+ - [ ] Cada validação tem regra concreta — não só "validar email"?
78
+ - [ ] Cada decisão arquitetural tem **justificativa**?
79
+
80
+ **Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vira stub. Especifique algoritmo, campos, regras.
81
+
82
+ 4. **Salve `DARE/BLUEPRINT.md`** e informe:
83
+
84
+ _"Blueprint gerado. Revise a arquitetura, os contratos de API e os critérios de DONE de cada fase. Quando aprovado, execute `/generate-tasks` para gerar o DAG e as specs de execução."_
85
+
86
+ **Não gere** `TASKS.md`, `dare-dag.yaml` nem arquivos em `EXECUTION/` — isso é responsabilidade do `/generate-tasks`.
@@ -1,27 +1,27 @@
1
- # Comando: /dare-bootstrap
2
-
3
- Executa o scaffolder oficial da stack registrada em `dare.config.json` para materializar o esqueleto do framework no projeto atual.
4
-
5
- > Este comando expõe o CLI `dare bootstrap` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
-
7
- ## Quando usar
8
-
9
- - Logo após `dare init`, para gerar o esqueleto real do framework.
10
- - Quando `dare.config.json` existe mas os artefatos do framework ainda não foram gerados.
11
-
12
- ## Como rodar
13
-
14
- ```bash
15
- dare bootstrap
16
- dare bootstrap --force # roda mesmo se já houver artefatos (pode sobrescrever)
17
- ```
18
-
19
- ## O que fazer
20
-
21
- 1. Confirme que existe `dare.config.json` com a stack definida.
22
- 2. Rode `dare bootstrap` (use `--force` apenas se o usuário aceitar sobrescrever arquivos existentes).
23
- 3. Verifique a saída: arquivos gerados e próximos passos sugeridos pelo CLI.
24
-
25
- ## Comandos relacionados
26
-
27
- `/dare-init` · `/dare-design`
1
+ # Comando: /dare-bootstrap
2
+
3
+ Executa o scaffolder oficial da stack registrada em `dare.config.json` para materializar o esqueleto do framework no projeto atual.
4
+
5
+ > Este comando expõe o CLI `dare bootstrap` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
6
+
7
+ ## Quando usar
8
+
9
+ - Logo após `dare init`, para gerar o esqueleto real do framework.
10
+ - Quando `dare.config.json` existe mas os artefatos do framework ainda não foram gerados.
11
+
12
+ ## Como rodar
13
+
14
+ ```bash
15
+ dare bootstrap
16
+ dare bootstrap --force # roda mesmo se já houver artefatos (pode sobrescrever)
17
+ ```
18
+
19
+ ## O que fazer
20
+
21
+ 1. Confirme que existe `dare.config.json` com a stack definida.
22
+ 2. Rode `dare bootstrap` (use `--force` apenas se o usuário aceitar sobrescrever arquivos existentes).
23
+ 3. Verifique a saída: arquivos gerados e próximos passos sugeridos pelo CLI.
24
+
25
+ ## Comandos relacionados
26
+
27
+ `/dare-init` · `/dare-design`
@@ -1,64 +1,64 @@
1
- ---
2
- description: Analisa o projeto existente e gera um Design DARE focado na resolucao de um bug. Use quando precisar investigar e corrigir um erro complexo no sistema atual.
3
- globs: *
4
- ---
5
-
6
- # Generate Bugfix Design
7
-
8
- ## Objetivo
9
- Analisar a base de código atual, diagnosticar um problema relatado e gerar um documento de Design (`DARE/DESIGN-Bugfix-[Nome].md`) focado especificamente na **correção do bug**, mapeando a causa raiz e o plano de ação cirúrgico.
10
-
11
- ## Contexto
12
- Este comando é para **projetos legados** ou em andamento onde um erro foi encontrado. O foco aqui é **diagnóstico e correção**: encontrar a causa raiz, analisar impacto e planejar a correção mais segura possível.
13
-
14
- ## Passos que a IA deve seguir:
15
-
16
- 1. **Análise de Contexto:**
17
- - Entender o comportamento atual (o bug) vs o comportamento esperado
18
- - Analisar logs, stack traces ou descrições de erro fornecidas
19
- - Identificar a área do código responsável pelo problema
20
-
21
- 2. **Diagnóstico da Causa Raiz:**
22
- - Por que o erro está ocorrendo?
23
- - É um problema de lógica, banco de dados, concorrência ou segurança?
24
-
25
- 3. **Geração do Documento:**
26
- - Criar o arquivo `DARE/DESIGN-Bugfix-[Nome-do-Bug].md`
27
-
28
- ## Estrutura do Documento Gerado:
29
-
30
- ```markdown
31
- # Bugfix Design: [Nome do Bug]
32
-
33
- ## Descrição do Problema
34
- - **Comportamento Atual:** [O que está acontecendo de errado]
35
- - **Comportamento Esperado:** [O que deveria acontecer]
36
- - **Passos para Reproduzir:** [Se conhecido]
37
-
38
- ## Diagnóstico da Causa Raiz
39
- Explicação técnica detalhada de por que o erro ocorre. (Ex: "A query N+1 está estourando a memória", ou "A validação não verifica campos nulos").
40
-
41
- ## Análise de Impacto (Onde corrigir)
42
- - **Arquivos a Modificar:** [Lista de arquivos específicos]
43
- - **Banco de Dados:** [Necessário rodar script de correção de dados?]
44
- - **Riscos da Correção:** [O que pode quebrar ao consertar isso?]
45
-
46
- ## Plano de Ação (Correção Cirúrgica)
47
- 1. [Passo 1: Ajustar a query no Repository]
48
- 2. [Passo 2: Adicionar teste unitário para cobrir o caso]
49
- 3. [Passo 3: Validar comportamento]
50
-
51
- ## Testes Necessários
52
- - **Validation Gates:** [O que testar para garantir que o bug sumiu]
53
- - **Testes de Regressão:** [O que testar para garantir que não quebrou o resto]
54
-
55
- ## Próximas Etapas
56
- 1. Revisar e aprovar este Bugfix Design
57
- 2. Executar `/generate-blueprint DARE/DESIGN-Bugfix-[Nome].md` (opcional, se a correção for grande)
58
- 3. Ou ir direto para `/generate-tasks DARE/DESIGN-Bugfix-[Nome].md`
59
- ```
60
-
61
- ## Regras de Ouro:
62
- - **Seja Cirúrgico:** A correção deve ser o menor código possível para resolver o problema sem efeitos colaterais.
63
- - **Causa Raiz:** Não trate apenas o sintoma, identifique e corrija a causa raiz.
64
- - **Evite Regressão:** Sempre mapeie os riscos da correção.
1
+ ---
2
+ description: Analisa o projeto existente e gera um Design DARE focado na resolucao de um bug. Use quando precisar investigar e corrigir um erro complexo no sistema atual.
3
+ globs: *
4
+ ---
5
+
6
+ # Generate Bugfix Design
7
+
8
+ ## Objetivo
9
+ Analisar a base de código atual, diagnosticar um problema relatado e gerar um documento de Design (`DARE/DESIGN-Bugfix-[Nome].md`) focado especificamente na **correção do bug**, mapeando a causa raiz e o plano de ação cirúrgico.
10
+
11
+ ## Contexto
12
+ Este comando é para **projetos legados** ou em andamento onde um erro foi encontrado. O foco aqui é **diagnóstico e correção**: encontrar a causa raiz, analisar impacto e planejar a correção mais segura possível.
13
+
14
+ ## Passos que a IA deve seguir:
15
+
16
+ 1. **Análise de Contexto:**
17
+ - Entender o comportamento atual (o bug) vs o comportamento esperado
18
+ - Analisar logs, stack traces ou descrições de erro fornecidas
19
+ - Identificar a área do código responsável pelo problema
20
+
21
+ 2. **Diagnóstico da Causa Raiz:**
22
+ - Por que o erro está ocorrendo?
23
+ - É um problema de lógica, banco de dados, concorrência ou segurança?
24
+
25
+ 3. **Geração do Documento:**
26
+ - Criar o arquivo `DARE/DESIGN-Bugfix-[Nome-do-Bug].md`
27
+
28
+ ## Estrutura do Documento Gerado:
29
+
30
+ ```markdown
31
+ # Bugfix Design: [Nome do Bug]
32
+
33
+ ## Descrição do Problema
34
+ - **Comportamento Atual:** [O que está acontecendo de errado]
35
+ - **Comportamento Esperado:** [O que deveria acontecer]
36
+ - **Passos para Reproduzir:** [Se conhecido]
37
+
38
+ ## Diagnóstico da Causa Raiz
39
+ Explicação técnica detalhada de por que o erro ocorre. (Ex: "A query N+1 está estourando a memória", ou "A validação não verifica campos nulos").
40
+
41
+ ## Análise de Impacto (Onde corrigir)
42
+ - **Arquivos a Modificar:** [Lista de arquivos específicos]
43
+ - **Banco de Dados:** [Necessário rodar script de correção de dados?]
44
+ - **Riscos da Correção:** [O que pode quebrar ao consertar isso?]
45
+
46
+ ## Plano de Ação (Correção Cirúrgica)
47
+ 1. [Passo 1: Ajustar a query no Repository]
48
+ 2. [Passo 2: Adicionar teste unitário para cobrir o caso]
49
+ 3. [Passo 3: Validar comportamento]
50
+
51
+ ## Testes Necessários
52
+ - **Validation Gates:** [O que testar para garantir que o bug sumiu]
53
+ - **Testes de Regressão:** [O que testar para garantir que não quebrou o resto]
54
+
55
+ ## Próximas Etapas
56
+ 1. Revisar e aprovar este Bugfix Design
57
+ 2. Executar `/generate-blueprint DARE/DESIGN-Bugfix-[Nome].md` (opcional, se a correção for grande)
58
+ 3. Ou ir direto para `/generate-tasks DARE/DESIGN-Bugfix-[Nome].md`
59
+ ```
60
+
61
+ ## Regras de Ouro:
62
+ - **Seja Cirúrgico:** A correção deve ser o menor código possível para resolver o problema sem efeitos colaterais.
63
+ - **Causa Raiz:** Não trate apenas o sintoma, identifique e corrija a causa raiz.
64
+ - **Evite Regressão:** Sempre mapeie os riscos da correção.
@@ -1,110 +1,110 @@
1
- # Comando: /dare-dag-run
2
-
3
- ## Descrição
4
-
5
- Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando o **Cursor
6
- como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica em
7
- `DARE/.canvas.md`.
8
-
9
- > **Sem API keys.** Você (Cursor) usa o plano da IDE em que o usuário já está
10
- > logado. O CLI apenas coordena estado, monta prompts e atualiza canvas.
11
-
12
- ## Pré-requisitos
13
-
14
- - `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
15
- - Specs em `DARE/EXECUTION/task-<id>.md` geradas
16
- - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
17
-
18
- ## Instruções para o Cursor Composer
19
-
20
- ### 1. Validar pré-condições
21
-
22
- - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a rodar
23
- `/generate-tasks` primeiro
24
- - Leia o YAML e verifique:
25
- - Sem ciclos
26
- - Pelo menos 2 tasks no rank 0 (paralelismo lógico)
27
- - Cada task tem `id` único, `complexity`, `subtask_prompt`
28
-
29
- ### 2. Pegar próximas tasks
30
-
31
- ```bash
32
- dare execute --next
33
- ```
34
-
35
- O CLI imprime as tasks ready do rank atual com o prompt completo (já com
36
- snippets dos outputs dos pais costurados). Use exatamente esses prompts.
37
-
38
- ### 3. Sugerir abrir o canvas
39
-
40
- Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em uma aba para
41
- acompanhar o progresso ao vivo.
42
-
43
- ### 4. Executar cada task
44
-
45
- Para cada task ready:
46
-
47
- 1. Leia `spec_file` se houver
48
- 2. Implemente conforme o prompt
49
- 3. Rode Ralph Loop: build → test → lint
50
- 4. Registre o resultado:
51
-
52
- ```bash
53
- # Sucesso
54
- dare execute --complete task-001 --output "Resumo + arquivos criados/modificados (paths)"
55
-
56
- # Falha
57
- dare execute --fail task-002 --reason "Mensagem clara da falha"
58
- ```
59
-
60
- ### 5. Avançar de rank
61
-
62
- Após registrar todos os `--complete`/`--fail` do rank atual:
63
-
64
- ```bash
65
- dare execute --next
66
- ```
67
-
68
- Se aparece `✅ All tasks resolved`, todas as tasks terminaram. Caso contrário,
69
- continue executando o próximo rank.
70
-
71
- ### 6. Pós-execução
72
-
73
- Ao terminar:
74
-
75
- - Rode `dare execute --status` para ver o sumário final
76
- - Se houver FAILED: leia `DARE/EXECUTION/task-<id>.md` da que falhou,
77
- corrija a spec ou o prompt, depois:
78
-
79
- ```bash
80
- dare execute --reset task-002 # volta para PENDING
81
- dare execute --next # tente novamente
82
- ```
83
-
84
- ## Comandos disponíveis
85
-
86
- | Comando | Função |
87
- |---------|--------|
88
- | `dare execute --next` | Imprime tasks ready do rank atual com prompts |
89
- | `dare execute --complete <id> --output "…"` | Marca DONE |
90
- | `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
91
- | `dare execute --reset <id>` | Volta para PENDING (retry) |
92
- | `dare execute --status` | Snapshot do canvas + sumário |
93
-
94
- ## Erros comuns
95
-
96
- | Sintoma | Causa | Correção |
97
- |---------|-------|----------|
98
- | `dare-dag.yaml not found` | Não foi gerado | Rode `/generate-tasks` |
99
- | Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
100
- | Output truncado em 4000 chars | Cap normal | Faça a task escrever em arquivo, retorne resumo |
101
- | Tudo no rank 0 disputa o mesmo arquivo | Ausência de deps reais | Edite `dare-dag.yaml` adicionando `depends_on` |
102
-
103
- ## Referências
104
-
105
- - Skill: `.cursor/rules/skill-dag-runner.mdc`
106
- - Schema: `DARE/dare-dag.yaml`
107
- - Canvas: `DARE/.canvas.md`
108
- - Specs: `DARE/EXECUTION/task-*.md`
109
-
110
- $ARGUMENTS
1
+ # Comando: /dare-dag-run
2
+
3
+ ## Descrição
4
+
5
+ Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando o **Cursor
6
+ como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica em
7
+ `DARE/.canvas.md`.
8
+
9
+ > **Sem API keys.** Você (Cursor) usa o plano da IDE em que o usuário já está
10
+ > logado. O CLI apenas coordena estado, monta prompts e atualiza canvas.
11
+
12
+ ## Pré-requisitos
13
+
14
+ - `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
15
+ - Specs em `DARE/EXECUTION/task-<id>.md` geradas
16
+ - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
17
+
18
+ ## Instruções para o Cursor Composer
19
+
20
+ ### 1. Validar pré-condições
21
+
22
+ - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a rodar
23
+ `/generate-tasks` primeiro
24
+ - Leia o YAML e verifique:
25
+ - Sem ciclos
26
+ - Pelo menos 2 tasks no rank 0 (paralelismo lógico)
27
+ - Cada task tem `id` único, `complexity`, `subtask_prompt`
28
+
29
+ ### 2. Pegar próximas tasks
30
+
31
+ ```bash
32
+ dare execute --next
33
+ ```
34
+
35
+ O CLI imprime as tasks ready do rank atual com o prompt completo (já com
36
+ snippets dos outputs dos pais costurados). Use exatamente esses prompts.
37
+
38
+ ### 3. Sugerir abrir o canvas
39
+
40
+ Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em uma aba para
41
+ acompanhar o progresso ao vivo.
42
+
43
+ ### 4. Executar cada task
44
+
45
+ Para cada task ready:
46
+
47
+ 1. Leia `spec_file` se houver
48
+ 2. Implemente conforme o prompt
49
+ 3. Rode Ralph Loop: build → test → lint
50
+ 4. Registre o resultado:
51
+
52
+ ```bash
53
+ # Sucesso
54
+ dare execute --complete task-001 --output "Resumo + arquivos criados/modificados (paths)"
55
+
56
+ # Falha
57
+ dare execute --fail task-002 --reason "Mensagem clara da falha"
58
+ ```
59
+
60
+ ### 5. Avançar de rank
61
+
62
+ Após registrar todos os `--complete`/`--fail` do rank atual:
63
+
64
+ ```bash
65
+ dare execute --next
66
+ ```
67
+
68
+ Se aparece `✅ All tasks resolved`, todas as tasks terminaram. Caso contrário,
69
+ continue executando o próximo rank.
70
+
71
+ ### 6. Pós-execução
72
+
73
+ Ao terminar:
74
+
75
+ - Rode `dare execute --status` para ver o sumário final
76
+ - Se houver FAILED: leia `DARE/EXECUTION/task-<id>.md` da que falhou,
77
+ corrija a spec ou o prompt, depois:
78
+
79
+ ```bash
80
+ dare execute --reset task-002 # volta para PENDING
81
+ dare execute --next # tente novamente
82
+ ```
83
+
84
+ ## Comandos disponíveis
85
+
86
+ | Comando | Função |
87
+ |---------|--------|
88
+ | `dare execute --next` | Imprime tasks ready do rank atual com prompts |
89
+ | `dare execute --complete <id> --output "…"` | Marca DONE |
90
+ | `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
91
+ | `dare execute --reset <id>` | Volta para PENDING (retry) |
92
+ | `dare execute --status` | Snapshot do canvas + sumário |
93
+
94
+ ## Erros comuns
95
+
96
+ | Sintoma | Causa | Correção |
97
+ |---------|-------|----------|
98
+ | `dare-dag.yaml not found` | Não foi gerado | Rode `/generate-tasks` |
99
+ | Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
100
+ | Output truncado em 4000 chars | Cap normal | Faça a task escrever em arquivo, retorne resumo |
101
+ | Tudo no rank 0 disputa o mesmo arquivo | Ausência de deps reais | Edite `dare-dag.yaml` adicionando `depends_on` |
102
+
103
+ ## Referências
104
+
105
+ - Skill: `.cursor/rules/skill-dag-runner.mdc`
106
+ - Schema: `DARE/dare-dag.yaml`
107
+ - Canvas: `DARE/.canvas.md`
108
+ - Specs: `DARE/EXECUTION/task-*.md`
109
+
110
+ $ARGUMENTS