@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,131 +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
+ # /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,18 +1,18 @@
1
- # /dare-bench
2
-
3
- Roda o harness determinístico de fixtures de verificação (`dare bench`) — mede Fix·Rate e solve-rate contra patches versionados.
4
-
5
- > Este comando expõe o CLI `dare bench` na IDE.
6
-
7
- ## Como rodar
8
-
9
- ```bash
10
- dare bench --suite fixtures/bench --json
11
- dare bench --suite fixtures/bench --baseline bench-baseline.json --fail-on-regression 3
12
- ```
13
-
14
- ## O que fazer
15
-
16
- 1. Rode `dare bench` com `--json` para relatório estruturado.
17
- 2. Compare com `--baseline` em CI; exit 1 = regressão > limiar pp.
18
- 3. Exit 2 = suite inválida/ausente.
1
+ # /dare-bench
2
+
3
+ Roda o harness determinístico de fixtures de verificação (`dare bench`) — mede Fix·Rate e solve-rate contra patches versionados.
4
+
5
+ > Este comando expõe o CLI `dare bench` na IDE.
6
+
7
+ ## Como rodar
8
+
9
+ ```bash
10
+ dare bench --suite fixtures/bench --json
11
+ dare bench --suite fixtures/bench --baseline bench-baseline.json --fail-on-regression 3
12
+ ```
13
+
14
+ ## O que fazer
15
+
16
+ 1. Rode `dare bench` com `--json` para relatório estruturado.
17
+ 2. Compare com `--baseline` em CI; exit 1 = regressão > limiar pp.
18
+ 3. Exit 2 = suite inválida/ausente.
@@ -1,134 +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
- ---
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
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
@@ -1,27 +1,27 @@
1
- # /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
+ # /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`