@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,280 +1,280 @@
1
- # Exemplo completo de dare-dag.yaml para o DARE CLI
2
- #
3
- # Este arquivo ilustra como estruturar um grafo de tasks (DAG) para o método DARE.
4
- # Copie e customize para seu projeto.
5
- #
6
- # Campos:
7
- # - name: nome do projeto
8
- # - version: semântica (versionamento do projeto)
9
- # - created_at: timestamp
10
- # - tasks: dicionário de tasks
11
- #
12
- # Cada task tem:
13
- # - name (obrigatório): nome legível da tarefa
14
- # - complexity (obrigatório): LOW | MEDIUM | HIGH
15
- # - rank (opcional): ordem no DAG, calculado automaticamente se omitido
16
- # - depends_on (opcional): lista de task IDs que DEVE completar antes
17
- # - status (opcional): PENDING | RUNNING | DONE | FAILED
18
- # - subtask_prompt (opcional): descrição detalhada para o agente executar
19
- # - blueprint_section (opcional): link para seção em BLUEPRINT.md
20
-
21
- name: "API de Autenticação com JWT"
22
- version: "1.0"
23
- created_at: "2026-05-14T10:30:00Z"
24
-
25
- # Metadados opcionais
26
- metadata:
27
- project_url: "https://github.com/seu-org/seu-projeto"
28
- team: "Backend Team"
29
- deadline: "2026-06-30"
30
-
31
- # ============================
32
- # TAREFAS (TASKS)
33
- # ============================
34
-
35
- tasks:
36
- # ─────────────────────────────────────────────────────────────
37
- # RANK 1 — Fundação (sem dependências)
38
- # Estas tarefas podem rodar em paralelo — nenhuma depende uma da outra
39
- # ─────────────────────────────────────────────────────────────
40
-
41
- task-001:
42
- name: "Setup Boilerplate"
43
- complexity: "LOW"
44
- # rank será calculado como 1 automaticamente (sem deps)
45
- depends_on: []
46
- status: "DONE" # ✅ Já completada
47
- subtask_prompt: |
48
- Crie estrutura básica Node.js + NestJS:
49
- - package.json com deps (typescript, express, dotenv)
50
- - tsconfig.json
51
- - .gitignore, .env.example
52
- - scripts: dev, build, test, lint
53
- blueprint_section: "1. Foundation"
54
-
55
- task-002:
56
- name: "Setup Database Schema"
57
- complexity: "MEDIUM"
58
- depends_on: []
59
- status: "DONE" # ✅ Completada
60
- subtask_prompt: |
61
- Defina schema no banco de dados:
62
- - Tabela `users` (id, email, password_hash, created_at, updated_at)
63
- - Tabela `refresh_tokens` (id, user_id, token_hash, expires_at, revoked_at)
64
- - Índices em email e token
65
- - Migrations com Prisma / TypeORM / Knex
66
- blueprint_section: "1. Foundation"
67
-
68
- # ─────────────────────────────────────────────────────────────
69
- # RANK 2 — Core (depende de Rank 1)
70
- # task-003 depende de task-001 (boilerplate)
71
- # task-004 depende de task-002 (schema)
72
- # Podem rodar em paralelo uma com a outra
73
- # ─────────────────────────────────────────────────────────────
74
-
75
- task-003:
76
- name: "Implement JWT Auth Middleware"
77
- complexity: "HIGH"
78
- depends_on:
79
- - "task-001" # Precisa do boilerplate
80
- status: "RUNNING" # ⚙️ Em andamento
81
- subtask_prompt: |
82
- Crie middleware de autenticação:
83
- - Gere JWT (HS256 ou RS256) com payload (user_id, iat, exp)
84
- - Middleware que valida JWT em cada request
85
- - Extraia user_id do token e injete em req.user
86
- - Trate expiração, inválido, ausente
87
- - Logs de tentativas falhadas
88
- blueprint_section: "2. Authentication Core"
89
-
90
- task-004:
91
- name: "Implement Refresh Token Flow"
92
- complexity: "MEDIUM"
93
- depends_on:
94
- - "task-001", # Precisa do boilerplate
95
- - "task-002" # Precisa do schema
96
- status: "PENDING" # ⏳ Não iniciada
97
- subtask_prompt: |
98
- Implemente rotação de refresh tokens:
99
- - Endpoint POST /auth/refresh que aceita refresh_token
100
- - Valide refresh_token contra banco de dados
101
- - Gere novo access_token + refresh_token
102
- - Revogue token antigo no banco
103
- - Implemente segurança: limite rate, valide origin
104
- blueprint_section: "2. Authentication Core"
105
-
106
- # ─────────────────────────────────────────────────────────────
107
- # RANK 3 — Integração & Testes (depende de Rank 2)
108
- # task-005 depende de task-003 (middleware)
109
- # task-006 depende de task-003 e task-004 (ambos cores)
110
- # ─────────────────────────────────────────────────────────────
111
-
112
- task-005:
113
- name: "Add Login & Logout Endpoints"
114
- complexity: "LOW"
115
- depends_on:
116
- - "task-003" # Precisa do middleware JWT
117
- status: "PENDING" # ⏳ Não iniciada
118
- subtask_prompt: |
119
- Crie endpoints de autenticação:
120
- - POST /auth/login (email, password) → access_token, refresh_token
121
- - POST /auth/logout (revoga refresh_token)
122
- - Validação de entrada (email válido, password não vazio)
123
- - Hash de password com bcrypt/argon2
124
- - Testes unitários para sucesso e erro
125
- blueprint_section: "3. API Endpoints"
126
-
127
- task-006:
128
- name: "Implement Tests & Security Hardening"
129
- complexity: "HIGH"
130
- depends_on:
131
- - "task-003", # Precisa do middleware
132
- - "task-004" # Precisa do refresh flow
133
- status: "PENDING" # ⏳ Não iniciada
134
- subtask_prompt: |
135
- Teste segurança e implemente proteções:
136
- - Testes end-to-end: login → refresh → logout
137
- - Testes de segurança: expiração, inválido, reuso de token
138
- - CORS policy (origem permitida)
139
- - Helmet.js para headers de segurança
140
- - Rate limiting no /auth/refresh
141
- - CSP (Content Security Policy)
142
- - Logs de auditoria (tentativas falhadas)
143
- blueprint_section: "4. Security & Testing"
144
-
145
- # ─────────────────────────────────────────────────────────────
146
- # RANK 4 — Documentação & Deploy (depende de tudo)
147
- # task-007 depende de toda core (task-005, task-006)
148
- # ─────────────────────────────────────────────────────────────
149
-
150
- task-007:
151
- name: "Document API & Prepare Deploy"
152
- complexity: "LOW"
153
- depends_on:
154
- - "task-005", # Precisa endpoints prontos
155
- - "task-006" # Precisa testes passando
156
- status: "PENDING" # ⏳ Não iniciada
157
- subtask_prompt: |
158
- Documente e prepare deployment:
159
- - OpenAPI/Swagger documentation
160
- - README com exemplos de uso (curl/Postman)
161
- - Environment variables documentation
162
- - Docker setup (Dockerfile, docker-compose)
163
- - CI/CD pipeline (GitHub Actions / GitLab CI)
164
- - Health check endpoint
165
- blueprint_section: "5. Documentation & Deploy"
166
-
167
- # ============================
168
- # EXPLICAÇÃO DO GRAFO
169
- # ============================
170
-
171
- # Visualização (Rank = camada):
172
- #
173
- # Rank 1 (Fundação — paralelo)
174
- # ├── task-001 [LOW] ✅
175
- # └── task-002 [MEDIUM] ✅
176
- #
177
- # Rank 2 (Core — paralelo)
178
- # ├── task-003 [HIGH] ⚙️ (depende: 001)
179
- # └── task-004 [MEDIUM] ⏳ (depende: 001, 002)
180
- #
181
- # Rank 3 (Integração — paralelo)
182
- # ├── task-005 [LOW] ⏳ (depende: 003)
183
- # └── task-006 [HIGH] ⏳ (depende: 003, 004)
184
- #
185
- # Rank 4 (Documentação)
186
- # └── task-007 [LOW] ⏳ (depende: 005, 006)
187
-
188
- # ============================
189
- # COMO USAR ESTE ARQUIVO
190
- # ============================
191
-
192
- # 1. Copie para seu projeto:
193
- # cp packages/cli/templates/DARE-dag-example.yaml DARE/dare-dag.yaml
194
-
195
- # 2. Customize:
196
- # - Substitua nomes das tasks pelo seu projeto
197
- # - Ajuste complexidade (LOW/MEDIUM/HIGH)
198
- # - Defina dependências corretas
199
- # - Atualize blueprint_section se tiver um BLUEPRINT.md
200
-
201
- # 3. Valide:
202
- # dare dag validate
203
-
204
- # 4. Visualize:
205
- # /dare-dag-viz
206
- # → Abre em https://excalidraw.com com cores por complexidade
207
-
208
- # 5. Atualize status conforme avança:
209
- # task-003:
210
- # status: "DONE" # Após completar
211
-
212
- # ============================
213
- # CONVENÇÕES
214
- # ============================
215
-
216
- # Task ID:
217
- # Formato: task-NNN-slug
218
- # - NNN = número sequencial (001, 002, ...)
219
- # - slug = nome legível em kebab-case
220
- # Exemplos: task-001-setup-boilerplate, task-003-jwt-middleware
221
-
222
- # Complexidade:
223
- # - LOW: < 30 min, padrão bem definido
224
- # - MEDIUM: 2-8 horas, múltiplas decisões
225
- # - HIGH: 1+ dias, design crítico, risco alto
226
-
227
- # Status:
228
- # - PENDING: não iniciada, aguardando
229
- # - RUNNING: em execução neste momento
230
- # - DONE: completada com sucesso
231
- # - FAILED: falhou, requer ajuste
232
-
233
- # Depends_on:
234
- # Lista outras tasks que devem completar ANTES desta
235
- # Sem ciclos permitidos (A→B→A é inválido)
236
-
237
- # Rank (automático):
238
- # Calculado como: 1 + max(rank das dependências)
239
- # Rank 1 = nenhuma dependência
240
- # Rank N = executa após Rank N-1
241
-
242
- # ============================
243
- # INTEGRAÇÃO COM DARE WORKFLOW
244
- # ============================
245
-
246
- # Phase 1: DESIGN (você define requisitos)
247
- # → Cria DARE/DESIGN.md
248
- #
249
- # Phase 2: ARCHITECT (Claude Code/Cursor propõe arquitetura)
250
- # → Cria DARE/BLUEPRINT.md
251
- # → Você aprova / ajusta
252
- #
253
- # Phase 3: REVIEW (Claude Code propõe tasks)
254
- # → Cria DARE/dare-dag.yaml (este arquivo!)
255
- # → Você aprova structure
256
- #
257
- # Phase 4: EXECUTE (Claude Code implementa)
258
- # → Roda dare execute --ralph-loop
259
- # → Testes automáticos (build, test, lint)
260
- # → Abre PR / commit automático
261
-
262
- # ============================
263
- # REFERÊNCIAS
264
- # ============================
265
-
266
- # DARE Methodology: https://github.com/dewtech-technologies/dare-method
267
- # Design Tokens (cores, fonts): docs/DESIGN-TOKENS-EXCALIDRAW.md
268
- # Visualization: /dare-dag-viz (gera dag-graph.excalidraw)
269
- # Excalidraw app: https://excalidraw.com
270
-
271
- # ============================
272
- # LICENÇA
273
- # ============================
274
-
275
- # Este arquivo e o método DARE são MIT (D-001 — MIT permanente).
276
- # Você é livre para usar, modificar, compartilhar, distribuir e
277
- # relicenciar derivados conforme MIT permite.
278
- #
279
- # Créditos: Wanderson Leandro (Dewtech Technologies)
280
- # Inspirações: Ralph Loop (termo original), Excalidraw (ferramenta)
1
+ # Exemplo completo de dare-dag.yaml para o DARE CLI
2
+ #
3
+ # Este arquivo ilustra como estruturar um grafo de tasks (DAG) para o método DARE.
4
+ # Copie e customize para seu projeto.
5
+ #
6
+ # Campos:
7
+ # - name: nome do projeto
8
+ # - version: semântica (versionamento do projeto)
9
+ # - created_at: timestamp
10
+ # - tasks: dicionário de tasks
11
+ #
12
+ # Cada task tem:
13
+ # - name (obrigatório): nome legível da tarefa
14
+ # - complexity (obrigatório): LOW | MEDIUM | HIGH
15
+ # - rank (opcional): ordem no DAG, calculado automaticamente se omitido
16
+ # - depends_on (opcional): lista de task IDs que DEVE completar antes
17
+ # - status (opcional): PENDING | RUNNING | DONE | FAILED
18
+ # - subtask_prompt (opcional): descrição detalhada para o agente executar
19
+ # - blueprint_section (opcional): link para seção em BLUEPRINT.md
20
+
21
+ name: "API de Autenticação com JWT"
22
+ version: "1.0"
23
+ created_at: "2026-05-14T10:30:00Z"
24
+
25
+ # Metadados opcionais
26
+ metadata:
27
+ project_url: "https://github.com/seu-org/seu-projeto"
28
+ team: "Backend Team"
29
+ deadline: "2026-06-30"
30
+
31
+ # ============================
32
+ # TAREFAS (TASKS)
33
+ # ============================
34
+
35
+ tasks:
36
+ # ─────────────────────────────────────────────────────────────
37
+ # RANK 1 — Fundação (sem dependências)
38
+ # Estas tarefas podem rodar em paralelo — nenhuma depende uma da outra
39
+ # ─────────────────────────────────────────────────────────────
40
+
41
+ task-001:
42
+ name: "Setup Boilerplate"
43
+ complexity: "LOW"
44
+ # rank será calculado como 1 automaticamente (sem deps)
45
+ depends_on: []
46
+ status: "DONE" # ✅ Já completada
47
+ subtask_prompt: |
48
+ Crie estrutura básica Node.js + NestJS:
49
+ - package.json com deps (typescript, express, dotenv)
50
+ - tsconfig.json
51
+ - .gitignore, .env.example
52
+ - scripts: dev, build, test, lint
53
+ blueprint_section: "1. Foundation"
54
+
55
+ task-002:
56
+ name: "Setup Database Schema"
57
+ complexity: "MEDIUM"
58
+ depends_on: []
59
+ status: "DONE" # ✅ Completada
60
+ subtask_prompt: |
61
+ Defina schema no banco de dados:
62
+ - Tabela `users` (id, email, password_hash, created_at, updated_at)
63
+ - Tabela `refresh_tokens` (id, user_id, token_hash, expires_at, revoked_at)
64
+ - Índices em email e token
65
+ - Migrations com Prisma / TypeORM / Knex
66
+ blueprint_section: "1. Foundation"
67
+
68
+ # ─────────────────────────────────────────────────────────────
69
+ # RANK 2 — Core (depende de Rank 1)
70
+ # task-003 depende de task-001 (boilerplate)
71
+ # task-004 depende de task-002 (schema)
72
+ # Podem rodar em paralelo uma com a outra
73
+ # ─────────────────────────────────────────────────────────────
74
+
75
+ task-003:
76
+ name: "Implement JWT Auth Middleware"
77
+ complexity: "HIGH"
78
+ depends_on:
79
+ - "task-001" # Precisa do boilerplate
80
+ status: "RUNNING" # ⚙️ Em andamento
81
+ subtask_prompt: |
82
+ Crie middleware de autenticação:
83
+ - Gere JWT (HS256 ou RS256) com payload (user_id, iat, exp)
84
+ - Middleware que valida JWT em cada request
85
+ - Extraia user_id do token e injete em req.user
86
+ - Trate expiração, inválido, ausente
87
+ - Logs de tentativas falhadas
88
+ blueprint_section: "2. Authentication Core"
89
+
90
+ task-004:
91
+ name: "Implement Refresh Token Flow"
92
+ complexity: "MEDIUM"
93
+ depends_on:
94
+ - "task-001", # Precisa do boilerplate
95
+ - "task-002" # Precisa do schema
96
+ status: "PENDING" # ⏳ Não iniciada
97
+ subtask_prompt: |
98
+ Implemente rotação de refresh tokens:
99
+ - Endpoint POST /auth/refresh que aceita refresh_token
100
+ - Valide refresh_token contra banco de dados
101
+ - Gere novo access_token + refresh_token
102
+ - Revogue token antigo no banco
103
+ - Implemente segurança: limite rate, valide origin
104
+ blueprint_section: "2. Authentication Core"
105
+
106
+ # ─────────────────────────────────────────────────────────────
107
+ # RANK 3 — Integração & Testes (depende de Rank 2)
108
+ # task-005 depende de task-003 (middleware)
109
+ # task-006 depende de task-003 e task-004 (ambos cores)
110
+ # ─────────────────────────────────────────────────────────────
111
+
112
+ task-005:
113
+ name: "Add Login & Logout Endpoints"
114
+ complexity: "LOW"
115
+ depends_on:
116
+ - "task-003" # Precisa do middleware JWT
117
+ status: "PENDING" # ⏳ Não iniciada
118
+ subtask_prompt: |
119
+ Crie endpoints de autenticação:
120
+ - POST /auth/login (email, password) → access_token, refresh_token
121
+ - POST /auth/logout (revoga refresh_token)
122
+ - Validação de entrada (email válido, password não vazio)
123
+ - Hash de password com bcrypt/argon2
124
+ - Testes unitários para sucesso e erro
125
+ blueprint_section: "3. API Endpoints"
126
+
127
+ task-006:
128
+ name: "Implement Tests & Security Hardening"
129
+ complexity: "HIGH"
130
+ depends_on:
131
+ - "task-003", # Precisa do middleware
132
+ - "task-004" # Precisa do refresh flow
133
+ status: "PENDING" # ⏳ Não iniciada
134
+ subtask_prompt: |
135
+ Teste segurança e implemente proteções:
136
+ - Testes end-to-end: login → refresh → logout
137
+ - Testes de segurança: expiração, inválido, reuso de token
138
+ - CORS policy (origem permitida)
139
+ - Helmet.js para headers de segurança
140
+ - Rate limiting no /auth/refresh
141
+ - CSP (Content Security Policy)
142
+ - Logs de auditoria (tentativas falhadas)
143
+ blueprint_section: "4. Security & Testing"
144
+
145
+ # ─────────────────────────────────────────────────────────────
146
+ # RANK 4 — Documentação & Deploy (depende de tudo)
147
+ # task-007 depende de toda core (task-005, task-006)
148
+ # ─────────────────────────────────────────────────────────────
149
+
150
+ task-007:
151
+ name: "Document API & Prepare Deploy"
152
+ complexity: "LOW"
153
+ depends_on:
154
+ - "task-005", # Precisa endpoints prontos
155
+ - "task-006" # Precisa testes passando
156
+ status: "PENDING" # ⏳ Não iniciada
157
+ subtask_prompt: |
158
+ Documente e prepare deployment:
159
+ - OpenAPI/Swagger documentation
160
+ - README com exemplos de uso (curl/Postman)
161
+ - Environment variables documentation
162
+ - Docker setup (Dockerfile, docker-compose)
163
+ - CI/CD pipeline (GitHub Actions / GitLab CI)
164
+ - Health check endpoint
165
+ blueprint_section: "5. Documentation & Deploy"
166
+
167
+ # ============================
168
+ # EXPLICAÇÃO DO GRAFO
169
+ # ============================
170
+
171
+ # Visualização (Rank = camada):
172
+ #
173
+ # Rank 1 (Fundação — paralelo)
174
+ # ├── task-001 [LOW] ✅
175
+ # └── task-002 [MEDIUM] ✅
176
+ #
177
+ # Rank 2 (Core — paralelo)
178
+ # ├── task-003 [HIGH] ⚙️ (depende: 001)
179
+ # └── task-004 [MEDIUM] ⏳ (depende: 001, 002)
180
+ #
181
+ # Rank 3 (Integração — paralelo)
182
+ # ├── task-005 [LOW] ⏳ (depende: 003)
183
+ # └── task-006 [HIGH] ⏳ (depende: 003, 004)
184
+ #
185
+ # Rank 4 (Documentação)
186
+ # └── task-007 [LOW] ⏳ (depende: 005, 006)
187
+
188
+ # ============================
189
+ # COMO USAR ESTE ARQUIVO
190
+ # ============================
191
+
192
+ # 1. Copie para seu projeto:
193
+ # cp packages/cli/templates/DARE-dag-example.yaml DARE/dare-dag.yaml
194
+
195
+ # 2. Customize:
196
+ # - Substitua nomes das tasks pelo seu projeto
197
+ # - Ajuste complexidade (LOW/MEDIUM/HIGH)
198
+ # - Defina dependências corretas
199
+ # - Atualize blueprint_section se tiver um BLUEPRINT.md
200
+
201
+ # 3. Valide:
202
+ # dare dag validate
203
+
204
+ # 4. Visualize:
205
+ # /dare-dag-viz
206
+ # → Abre em https://excalidraw.com com cores por complexidade
207
+
208
+ # 5. Atualize status conforme avança:
209
+ # task-003:
210
+ # status: "DONE" # Após completar
211
+
212
+ # ============================
213
+ # CONVENÇÕES
214
+ # ============================
215
+
216
+ # Task ID:
217
+ # Formato: task-NNN-slug
218
+ # - NNN = número sequencial (001, 002, ...)
219
+ # - slug = nome legível em kebab-case
220
+ # Exemplos: task-001-setup-boilerplate, task-003-jwt-middleware
221
+
222
+ # Complexidade:
223
+ # - LOW: < 30 min, padrão bem definido
224
+ # - MEDIUM: 2-8 horas, múltiplas decisões
225
+ # - HIGH: 1+ dias, design crítico, risco alto
226
+
227
+ # Status:
228
+ # - PENDING: não iniciada, aguardando
229
+ # - RUNNING: em execução neste momento
230
+ # - DONE: completada com sucesso
231
+ # - FAILED: falhou, requer ajuste
232
+
233
+ # Depends_on:
234
+ # Lista outras tasks que devem completar ANTES desta
235
+ # Sem ciclos permitidos (A→B→A é inválido)
236
+
237
+ # Rank (automático):
238
+ # Calculado como: 1 + max(rank das dependências)
239
+ # Rank 1 = nenhuma dependência
240
+ # Rank N = executa após Rank N-1
241
+
242
+ # ============================
243
+ # INTEGRAÇÃO COM DARE WORKFLOW
244
+ # ============================
245
+
246
+ # Phase 1: DESIGN (você define requisitos)
247
+ # → Cria DARE/DESIGN.md
248
+ #
249
+ # Phase 2: ARCHITECT (Claude Code/Cursor propõe arquitetura)
250
+ # → Cria DARE/BLUEPRINT.md
251
+ # → Você aprova / ajusta
252
+ #
253
+ # Phase 3: REVIEW (Claude Code propõe tasks)
254
+ # → Cria DARE/dare-dag.yaml (este arquivo!)
255
+ # → Você aprova structure
256
+ #
257
+ # Phase 4: EXECUTE (Claude Code implementa)
258
+ # → Roda dare execute --ralph-loop
259
+ # → Testes automáticos (build, test, lint)
260
+ # → Abre PR / commit automático
261
+
262
+ # ============================
263
+ # REFERÊNCIAS
264
+ # ============================
265
+
266
+ # DARE Methodology: https://github.com/dewtech-technologies/dare-method
267
+ # Design Tokens (cores, fonts): docs/DESIGN-TOKENS-EXCALIDRAW.md
268
+ # Visualization: /dare-dag-viz (gera dag-graph.excalidraw)
269
+ # Excalidraw app: https://excalidraw.com
270
+
271
+ # ============================
272
+ # LICENÇA
273
+ # ============================
274
+
275
+ # Este arquivo e o método DARE são MIT (D-001 — MIT permanente).
276
+ # Você é livre para usar, modificar, compartilhar, distribuir e
277
+ # relicenciar derivados conforme MIT permite.
278
+ #
279
+ # Créditos: Wanderson Leandro (Dewtech Technologies)
280
+ # Inspirações: Ralph Loop (termo original), Excalidraw (ferramenta)