@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,263 +1,263 @@
1
- ---
2
- description: Agent Experience (AX) — codifica padrões para desenvolvimento assistido por IA em três planos (Discovery, Usage, Defense). Garante que todo projeto DARE exponha sinais estruturados (llms.txt, OpenAPI, --json, rate limit) que agentes de código precisam.
3
- globs: llms.txt,openapi.json,public/openapi.json,README.md,.env.example,DARE/DESIGN.md
4
- alwaysApply: false
5
- ---
6
-
7
- # Skill: Agent Experience (AX) DARE
8
-
9
- Você é um especialista em integração entre projetos e agentes de código (Claude Code, Cursor, Antigravity, MCP servers). Esta skill define o **padrão AX DARE** que todo projeto novo deve seguir e contra o qual todo projeto existente deve ser auditado.
10
-
11
- ## Por que AX é design-first
12
-
13
- Projetos podem ter código correto e arquitetura limpa mas **carecer de sinais estruturados** para agentes:
14
- - Sem `llms.txt`, o agente precisa adivinhar a estrutura
15
- - Sem OpenAPI, o agente faz parsing regex de docs HTML
16
- - Sem `--json` no CLI, o agente lida com tabelas ASCII coloridas
17
- - Sem rate limit, um prompt mal feito vira DDoS
18
-
19
- A skill `dare-ax` codifica três planos:
20
-
21
- | Plano | Pergunta que responde |
22
- |---|---|
23
- | **Discovery** | "Como o agente acha o que precisa?" |
24
- | **Usage** | "Como o agente opera sem refactor desnecessário?" |
25
- | **Defense** | "Como o projeto resiste a prompts ruins?" |
26
-
27
- ---
28
-
29
- ## Plano 1 — Discovery
30
-
31
- ### `llms.txt` na raiz (obrigatório)
32
-
33
- Arquivo público com a "ficha técnica" do projeto. Formato livre mas seções fixas:
34
-
35
- ```
36
- # <nome-do-projeto>
37
-
38
- > <descrição em 1-2 frases — o que é, qual problema resolve>
39
-
40
- ## Stack
41
- - <linguagem + framework>
42
- - <banco>
43
- - <cache, fila, etc.>
44
-
45
- ## Bootstrap
46
- - `make setup` — instala deps + sobe Postgres/Redis local
47
- - `make dev` — sobe aplicação
48
- - `make test` — roda suite
49
-
50
- ## Endpoints
51
- - `GET /healthz` — liveness
52
- - `GET /openapi.json` — spec completa
53
- - `POST /api/login` — autenticação
54
- ...
55
-
56
- ## CLI (se aplicável)
57
- - `<bin> users create --email <e> --json`
58
- - `<bin> migrate run --json`
59
-
60
- ## Docs internas
61
- - DARE/DESIGN.md — requisitos
62
- - DARE/BLUEPRINT.md — arquitetura
63
- - docs/RUNBOOK.md — operações
64
- ```
65
-
66
- **Critério objetivo:** o arquivo deve ser navegável em < 2 minutos por um agente.
67
-
68
- ### Estrutura previsível
69
-
70
- | Pasta | Conteúdo |
71
- |---|---|
72
- | `src/` ou `crates/<projeto>-*/` | código de produção |
73
- | `tests/` | testes (mirror de `src/` quando possível) |
74
- | `docs/` | documentação humana extensa |
75
- | `DARE/` | DESIGN.md, BLUEPRINT.md, EXECUTION/, dare-dag.yaml |
76
- | `infra/` ou `deploy/` | Dockerfile, compose, k8s manifests |
77
-
78
- Nomes esotéricos (`thing/`, `stuff/`, `misc/`) — proibidos.
79
-
80
- ---
81
-
82
- ## Plano 2 — Usage
83
-
84
- ### `openapi.json` (HTTP)
85
-
86
- Toda API HTTP deve expor spec OpenAPI 3.x em `/openapi.json` ou `public/openapi.json`.
87
-
88
- | Stack | Como gerar |
89
- |---|---|
90
- | FastAPI | Automático (Pydantic models) |
91
- | NestJS | `@nestjs/swagger` decorators |
92
- | Laravel | `darkaonline/l5-swagger` |
93
- | Rails | `grape-swagger` ou `rswag` |
94
- | Rust/Axum | `utoipa` + `utoipa-swagger-ui` |
95
- | Go/Gin | `swaggo/swag` |
96
-
97
- **Antipattern:** escrever OpenAPI à mão em YAML — desatualiza no primeiro PR.
98
-
99
- ### CLI com `--json`
100
-
101
- Todo comando de CLI exposto a humanos deve ter alternativa machine-readable:
102
-
103
- ```bash
104
- # Para humanos
105
- $ dare metrics
106
- ┌──────┬──────────┐
107
- │ ID │ Status │
108
- ├──────┼──────────┤
109
- │ M-01 │ PASS │
110
- └──────┴──────────┘
111
-
112
- # Para agentes
113
- $ dare metrics --json
114
- {"metrics":[{"id":"M-01","status":"PASS","value":1.0}]}
115
- ```
116
-
117
- Regras:
118
- - JSON puro em stdout, sem cores ANSI, sem prompt
119
- - Exit code 0 em sucesso, ≠ 0 em erro
120
- - Schema documentado em `llms.txt`
121
-
122
- ### `.env.example` versionado
123
-
124
- Sempre commitado, com **chaves e tipos**, sem valores reais:
125
-
126
- ```
127
- DATABASE_URL=postgres://user:password@localhost:5432/dbname
128
- REDIS_URL=redis://localhost:6379/0
129
- JWT_SECRET=replace-with-256-bit-random-string
130
- STRIPE_SECRET_KEY=sk_test_xxx
131
- ```
132
-
133
- `.env` real fica no `.gitignore`.
134
-
135
- ---
136
-
137
- ## Plano 3 — Defense
138
-
139
- ### Rate limit
140
-
141
- Endpoint público sem rate limit = vulnerável. Use o middleware da stack:
142
-
143
- | Stack | Middleware típico |
144
- |---|---|
145
- | Rails | `rack-attack` |
146
- | Node/Express | `express-rate-limit` |
147
- | NestJS | `@nestjs/throttler` |
148
- | FastAPI | `slowapi` |
149
- | Rust/Axum | `tower-governor` |
150
- | Go/Gin | `gin-contrib/limit` ou middleware custom |
151
- | Laravel | `ThrottleRequests` middleware (nativo) |
152
-
153
- **Padrão recomendado:**
154
- - Login: 5 req / 15 min por IP + por usuário
155
- - API autenticada geral: 100 req / min por usuário
156
- - API pública: 30 req / min por IP
157
-
158
- ### Validação de input
159
-
160
- Sempre no servidor, mesmo que o frontend valide:
161
-
162
- | Stack | Tooling |
163
- |---|---|
164
- | Laravel | FormRequest classes |
165
- | FastAPI | Pydantic models |
166
- | Node | Zod, class-validator |
167
- | Rust/Axum | `serde` + `validator` crate |
168
- | Rails | strong params + ActiveModel validations |
169
- | Go | `go-playground/validator` |
170
-
171
- ### Secrets só via env
172
-
173
- Nada de `password = "..."` no código. Configure scanner no CI:
174
-
175
- ```bash
176
- pip install detect-secrets
177
- detect-secrets scan > .secrets.baseline
178
- ```
179
-
180
- ### `llms.txt` sem secrets
181
-
182
- `llms.txt` é público — o scanner do CI deve bloquear commits onde apareçam:
183
- - `api_key=`, `password=`, `DATABASE_URL=postgres://user:pwd@`
184
- - `Bearer ...`, `Authorization: ...`
185
- - Chaves PEM, AWS access keys, GCP service account JSON inline
186
-
187
- ---
188
-
189
- ## Métricas obrigatórias (CI)
190
-
191
- | ID | Métrica | Comando de validação |
192
- |---|---|---|
193
- | M-01 | `llms.txt` existe e é válido (sem secrets, seções obrigatórias) | `dare ax validate --llms` |
194
- | M-02 | `openapi.json` ou `public/openapi.json` existe | `test -f public/openapi.json \|\| test -f openapi.json` |
195
- | M-03 | CLI suporta `--json` | `cli --help \| grep -- '--json'` |
196
- | M-04 | Rate limit configurado | grep pelo middleware da stack |
197
-
198
- Falha M-01 ou M-04 em produção = release bloqueado.
199
-
200
- ---
201
-
202
- ## Antipatterns
203
-
204
- | AP | Antipattern | Por que evitar |
205
- |---|---|---|
206
- | AP-01 | Docs fora do código | Divergem rapidamente |
207
- | AP-02 | OpenAPI escrito à mão | Desatualiza no primeiro PR |
208
- | AP-03 | CLI sem `--json` | Agentes fazem regex no output, frágil |
209
- | AP-04 | Rate limit em dev, faltando em prod | Endpoint vira target de abuse |
210
- | AP-05 | `llms.txt` com secrets | Credenciais em repositório público |
211
- | AP-06 | CORS `*` em produção | Origem qualquer permitida |
212
- | AP-07 | Validação só em API, esquecida em CLI | Agentes usam ambos |
213
- | AP-08 | Configs opcionais sem default | Agentes precisam de defaults previsíveis |
214
-
215
- ---
216
-
217
- ## Aplicação por fase DARE
218
-
219
- ### Design (`/generate-design`)
220
-
221
- DESIGN.md deve ter seção **## Agent Experience (AX)** com:
222
- - Como o projeto será descoberto por agentes
223
- - Quais CLIs/endpoints expostos terão `--json`/OpenAPI
224
- - Estratégia de rate limit para endpoints públicos
225
-
226
- ### Blueprint (`/generate-blueprint`)
227
-
228
- BLUEPRINT.md deve listar:
229
- - Geração automática de OpenAPI (qual tooling)
230
- - Middleware de rate limit por endpoint
231
- - Estratégia de logging estruturado (JSON)
232
-
233
- ### Tasks (`/generate-tasks`)
234
-
235
- Crie tasks dedicadas:
236
- - "Gerar `llms.txt`"
237
- - "Expor OpenAPI em /openapi.json"
238
- - "Adicionar `--json` ao CLI"
239
- - "Configurar rate limit em endpoints públicos"
240
-
241
- ### Execute (`/execute-task`)
242
-
243
- Em qualquer task que mexa em endpoint HTTP ou comando CLI, valide:
244
- - OpenAPI atualizado?
245
- - `--json` disponível?
246
- - Rate limit aplicado?
247
-
248
- ---
249
-
250
- ## Checklist final
251
-
252
- - [ ] `llms.txt` na raiz com seções obrigatórias
253
- - [ ] OpenAPI 3.x gerado a partir do código
254
- - [ ] Todos os CLIs aceitam `--json`
255
- - [ ] Rate limit em todos os endpoints públicos
256
- - [ ] `.env.example` versionado sem valores reais
257
- - [ ] Scanner de secrets no CI
258
- - [ ] Seção AX em DESIGN.md
259
- - [ ] Métricas M-01 a M-04 verificáveis em CI
260
-
261
- ---
262
-
263
- Skill licenciada MIT — parte do DARE Method v3.
1
+ ---
2
+ description: Agent Experience (AX) — codifica padrões para desenvolvimento assistido por IA em três planos (Discovery, Usage, Defense). Garante que todo projeto DARE exponha sinais estruturados (llms.txt, OpenAPI, --json, rate limit) que agentes de código precisam.
3
+ globs: llms.txt,openapi.json,public/openapi.json,README.md,.env.example,DARE/DESIGN.md
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Skill: Agent Experience (AX) DARE
8
+
9
+ Você é um especialista em integração entre projetos e agentes de código (Claude Code, Cursor, Antigravity, MCP servers). Esta skill define o **padrão AX DARE** que todo projeto novo deve seguir e contra o qual todo projeto existente deve ser auditado.
10
+
11
+ ## Por que AX é design-first
12
+
13
+ Projetos podem ter código correto e arquitetura limpa mas **carecer de sinais estruturados** para agentes:
14
+ - Sem `llms.txt`, o agente precisa adivinhar a estrutura
15
+ - Sem OpenAPI, o agente faz parsing regex de docs HTML
16
+ - Sem `--json` no CLI, o agente lida com tabelas ASCII coloridas
17
+ - Sem rate limit, um prompt mal feito vira DDoS
18
+
19
+ A skill `dare-ax` codifica três planos:
20
+
21
+ | Plano | Pergunta que responde |
22
+ |---|---|
23
+ | **Discovery** | "Como o agente acha o que precisa?" |
24
+ | **Usage** | "Como o agente opera sem refactor desnecessário?" |
25
+ | **Defense** | "Como o projeto resiste a prompts ruins?" |
26
+
27
+ ---
28
+
29
+ ## Plano 1 — Discovery
30
+
31
+ ### `llms.txt` na raiz (obrigatório)
32
+
33
+ Arquivo público com a "ficha técnica" do projeto. Formato livre mas seções fixas:
34
+
35
+ ```
36
+ # <nome-do-projeto>
37
+
38
+ > <descrição em 1-2 frases — o que é, qual problema resolve>
39
+
40
+ ## Stack
41
+ - <linguagem + framework>
42
+ - <banco>
43
+ - <cache, fila, etc.>
44
+
45
+ ## Bootstrap
46
+ - `make setup` — instala deps + sobe Postgres/Redis local
47
+ - `make dev` — sobe aplicação
48
+ - `make test` — roda suite
49
+
50
+ ## Endpoints
51
+ - `GET /healthz` — liveness
52
+ - `GET /openapi.json` — spec completa
53
+ - `POST /api/login` — autenticação
54
+ ...
55
+
56
+ ## CLI (se aplicável)
57
+ - `<bin> users create --email <e> --json`
58
+ - `<bin> migrate run --json`
59
+
60
+ ## Docs internas
61
+ - DARE/DESIGN.md — requisitos
62
+ - DARE/BLUEPRINT.md — arquitetura
63
+ - docs/RUNBOOK.md — operações
64
+ ```
65
+
66
+ **Critério objetivo:** o arquivo deve ser navegável em < 2 minutos por um agente.
67
+
68
+ ### Estrutura previsível
69
+
70
+ | Pasta | Conteúdo |
71
+ |---|---|
72
+ | `src/` ou `crates/<projeto>-*/` | código de produção |
73
+ | `tests/` | testes (mirror de `src/` quando possível) |
74
+ | `docs/` | documentação humana extensa |
75
+ | `DARE/` | DESIGN.md, BLUEPRINT.md, EXECUTION/, dare-dag.yaml |
76
+ | `infra/` ou `deploy/` | Dockerfile, compose, k8s manifests |
77
+
78
+ Nomes esotéricos (`thing/`, `stuff/`, `misc/`) — proibidos.
79
+
80
+ ---
81
+
82
+ ## Plano 2 — Usage
83
+
84
+ ### `openapi.json` (HTTP)
85
+
86
+ Toda API HTTP deve expor spec OpenAPI 3.x em `/openapi.json` ou `public/openapi.json`.
87
+
88
+ | Stack | Como gerar |
89
+ |---|---|
90
+ | FastAPI | Automático (Pydantic models) |
91
+ | NestJS | `@nestjs/swagger` decorators |
92
+ | Laravel | `darkaonline/l5-swagger` |
93
+ | Rails | `grape-swagger` ou `rswag` |
94
+ | Rust/Axum | `utoipa` + `utoipa-swagger-ui` |
95
+ | Go/Gin | `swaggo/swag` |
96
+
97
+ **Antipattern:** escrever OpenAPI à mão em YAML — desatualiza no primeiro PR.
98
+
99
+ ### CLI com `--json`
100
+
101
+ Todo comando de CLI exposto a humanos deve ter alternativa machine-readable:
102
+
103
+ ```bash
104
+ # Para humanos
105
+ $ dare metrics
106
+ ┌──────┬──────────┐
107
+ │ ID │ Status │
108
+ ├──────┼──────────┤
109
+ │ M-01 │ PASS │
110
+ └──────┴──────────┘
111
+
112
+ # Para agentes
113
+ $ dare metrics --json
114
+ {"metrics":[{"id":"M-01","status":"PASS","value":1.0}]}
115
+ ```
116
+
117
+ Regras:
118
+ - JSON puro em stdout, sem cores ANSI, sem prompt
119
+ - Exit code 0 em sucesso, ≠ 0 em erro
120
+ - Schema documentado em `llms.txt`
121
+
122
+ ### `.env.example` versionado
123
+
124
+ Sempre commitado, com **chaves e tipos**, sem valores reais:
125
+
126
+ ```
127
+ DATABASE_URL=postgres://user:password@localhost:5432/dbname
128
+ REDIS_URL=redis://localhost:6379/0
129
+ JWT_SECRET=replace-with-256-bit-random-string
130
+ STRIPE_SECRET_KEY=sk_test_xxx
131
+ ```
132
+
133
+ `.env` real fica no `.gitignore`.
134
+
135
+ ---
136
+
137
+ ## Plano 3 — Defense
138
+
139
+ ### Rate limit
140
+
141
+ Endpoint público sem rate limit = vulnerável. Use o middleware da stack:
142
+
143
+ | Stack | Middleware típico |
144
+ |---|---|
145
+ | Rails | `rack-attack` |
146
+ | Node/Express | `express-rate-limit` |
147
+ | NestJS | `@nestjs/throttler` |
148
+ | FastAPI | `slowapi` |
149
+ | Rust/Axum | `tower-governor` |
150
+ | Go/Gin | `gin-contrib/limit` ou middleware custom |
151
+ | Laravel | `ThrottleRequests` middleware (nativo) |
152
+
153
+ **Padrão recomendado:**
154
+ - Login: 5 req / 15 min por IP + por usuário
155
+ - API autenticada geral: 100 req / min por usuário
156
+ - API pública: 30 req / min por IP
157
+
158
+ ### Validação de input
159
+
160
+ Sempre no servidor, mesmo que o frontend valide:
161
+
162
+ | Stack | Tooling |
163
+ |---|---|
164
+ | Laravel | FormRequest classes |
165
+ | FastAPI | Pydantic models |
166
+ | Node | Zod, class-validator |
167
+ | Rust/Axum | `serde` + `validator` crate |
168
+ | Rails | strong params + ActiveModel validations |
169
+ | Go | `go-playground/validator` |
170
+
171
+ ### Secrets só via env
172
+
173
+ Nada de `password = "..."` no código. Configure scanner no CI:
174
+
175
+ ```bash
176
+ pip install detect-secrets
177
+ detect-secrets scan > .secrets.baseline
178
+ ```
179
+
180
+ ### `llms.txt` sem secrets
181
+
182
+ `llms.txt` é público — o scanner do CI deve bloquear commits onde apareçam:
183
+ - `api_key=`, `password=`, `DATABASE_URL=postgres://user:pwd@`
184
+ - `Bearer ...`, `Authorization: ...`
185
+ - Chaves PEM, AWS access keys, GCP service account JSON inline
186
+
187
+ ---
188
+
189
+ ## Métricas obrigatórias (CI)
190
+
191
+ | ID | Métrica | Comando de validação |
192
+ |---|---|---|
193
+ | M-01 | `llms.txt` existe e é válido (sem secrets, seções obrigatórias) | `dare ax validate --llms` |
194
+ | M-02 | `openapi.json` ou `public/openapi.json` existe | `test -f public/openapi.json \|\| test -f openapi.json` |
195
+ | M-03 | CLI suporta `--json` | `cli --help \| grep -- '--json'` |
196
+ | M-04 | Rate limit configurado | grep pelo middleware da stack |
197
+
198
+ Falha M-01 ou M-04 em produção = release bloqueado.
199
+
200
+ ---
201
+
202
+ ## Antipatterns
203
+
204
+ | AP | Antipattern | Por que evitar |
205
+ |---|---|---|
206
+ | AP-01 | Docs fora do código | Divergem rapidamente |
207
+ | AP-02 | OpenAPI escrito à mão | Desatualiza no primeiro PR |
208
+ | AP-03 | CLI sem `--json` | Agentes fazem regex no output, frágil |
209
+ | AP-04 | Rate limit em dev, faltando em prod | Endpoint vira target de abuse |
210
+ | AP-05 | `llms.txt` com secrets | Credenciais em repositório público |
211
+ | AP-06 | CORS `*` em produção | Origem qualquer permitida |
212
+ | AP-07 | Validação só em API, esquecida em CLI | Agentes usam ambos |
213
+ | AP-08 | Configs opcionais sem default | Agentes precisam de defaults previsíveis |
214
+
215
+ ---
216
+
217
+ ## Aplicação por fase DARE
218
+
219
+ ### Design (`/generate-design`)
220
+
221
+ DESIGN.md deve ter seção **## Agent Experience (AX)** com:
222
+ - Como o projeto será descoberto por agentes
223
+ - Quais CLIs/endpoints expostos terão `--json`/OpenAPI
224
+ - Estratégia de rate limit para endpoints públicos
225
+
226
+ ### Blueprint (`/generate-blueprint`)
227
+
228
+ BLUEPRINT.md deve listar:
229
+ - Geração automática de OpenAPI (qual tooling)
230
+ - Middleware de rate limit por endpoint
231
+ - Estratégia de logging estruturado (JSON)
232
+
233
+ ### Tasks (`/generate-tasks`)
234
+
235
+ Crie tasks dedicadas:
236
+ - "Gerar `llms.txt`"
237
+ - "Expor OpenAPI em /openapi.json"
238
+ - "Adicionar `--json` ao CLI"
239
+ - "Configurar rate limit em endpoints públicos"
240
+
241
+ ### Execute (`/execute-task`)
242
+
243
+ Em qualquer task que mexa em endpoint HTTP ou comando CLI, valide:
244
+ - OpenAPI atualizado?
245
+ - `--json` disponível?
246
+ - Rate limit aplicado?
247
+
248
+ ---
249
+
250
+ ## Checklist final
251
+
252
+ - [ ] `llms.txt` na raiz com seções obrigatórias
253
+ - [ ] OpenAPI 3.x gerado a partir do código
254
+ - [ ] Todos os CLIs aceitam `--json`
255
+ - [ ] Rate limit em todos os endpoints públicos
256
+ - [ ] `.env.example` versionado sem valores reais
257
+ - [ ] Scanner de secrets no CI
258
+ - [ ] Seção AX em DESIGN.md
259
+ - [ ] Métricas M-01 a M-04 verificáveis em CI
260
+
261
+ ---
262
+
263
+ Skill licenciada MIT — parte do DARE Method v3.
@@ -1,51 +1,51 @@
1
- ---
2
- description: Diagnostica bugs em projetos existentes e planeja correcoes cirurgicas usando o Metodo DARE. Ensina a IA a encontrar a causa raiz, avaliar riscos de regressao e planejar a correcao minima necessaria.
3
- globs: *
4
- ---
5
-
6
- # Skill: Bugfix Design para Projetos Existentes
7
-
8
- ## Objetivo
9
- Esta skill ensina você (a IA) a diagnosticar um bug relatado em um projeto existente, encontrar a **causa raiz** e planejar uma correção cirúrgica que resolva o problema sem introduzir novos erros.
10
-
11
- ## Quando Usar
12
- - Quando o usuário relata um bug ou comportamento inesperado no sistema.
13
- - Quando o comando `/generate-bugfix-design` for invocado.
14
-
15
- ## Como Diagnosticar o Bug
16
-
17
- O diagnóstico é a etapa mais crítica. Uma correção sem diagnóstico adequado apenas esconde o sintoma.
18
-
19
- **Entenda o Relato Completo:** Antes de analisar o código, entenda claramente qual é o comportamento atual vs o esperado. Se o usuário não forneceu um stack trace ou log, pergunte por ele.
20
-
21
- **Localize a Área Afetada:** Identifique os controllers, services, queries ou componentes que estão envolvidos no fluxo que apresenta o erro.
22
-
23
- **Encontre a Causa Raiz:** Não trate o sintoma. Descubra *por que* o erro acontece. As causas mais comuns são:
24
-
25
- | Tipo de Causa | Exemplos |
26
- |---------------|---------|
27
- | **Lógica de Negócio** | Condição incorreta, cálculo errado |
28
- | **Banco de Dados** | Query N+1, deadlock, dados inconsistentes |
29
- | **Validação** | Input não validado, tipo incorreto |
30
- | **Concorrência** | Race condition, falta de lock |
31
- | **Segurança** | Injeção de SQL, XSS, IDOR |
32
-
33
- ## Como Gerar o Design do Bugfix
34
-
35
- O documento `DARE/DESIGN-Bugfix-[Nome].md` deve ser **cirúrgico e preciso**. Ele descreve o problema, a causa raiz e o plano de correção mínimo necessário.
36
-
37
- | Seção | Conteúdo |
38
- |-------|----------|
39
- | **Descrição** | Comportamento atual vs esperado |
40
- | **Causa Raiz** | Explicação técnica do porquê ocorre |
41
- | **Arquivos a Modificar** | Lista exata de arquivos que serão alterados |
42
- | **Riscos** | O que mais pode quebrar com a correção |
43
- | **Plano de Ação** | Passos cirúrgicos da correção |
44
- | **Testes** | Validation Gates + Testes de Regressão |
45
-
46
- ## Regras de Ouro
47
-
48
- 1. **Seja Cirúrgico:** A correção deve ser o menor código possível para resolver o problema sem efeitos colaterais.
49
- 2. **Causa Raiz:** Nunca trate apenas o sintoma. Se a causa raiz não for corrigida, o bug voltará.
50
- 3. **Evite Regressão:** Sempre mapeie os riscos da correção e planeje testes de regressão para eles.
51
- 4. **Adicione Testes:** Se o bug ocorreu, é porque faltava um teste. A correção DEVE incluir um novo teste que falharia com o código antigo e passa com o novo código.
1
+ ---
2
+ description: Diagnostica bugs em projetos existentes e planeja correcoes cirurgicas usando o Metodo DARE. Ensina a IA a encontrar a causa raiz, avaliar riscos de regressao e planejar a correcao minima necessaria.
3
+ globs: *
4
+ ---
5
+
6
+ # Skill: Bugfix Design para Projetos Existentes
7
+
8
+ ## Objetivo
9
+ Esta skill ensina você (a IA) a diagnosticar um bug relatado em um projeto existente, encontrar a **causa raiz** e planejar uma correção cirúrgica que resolva o problema sem introduzir novos erros.
10
+
11
+ ## Quando Usar
12
+ - Quando o usuário relata um bug ou comportamento inesperado no sistema.
13
+ - Quando o comando `/generate-bugfix-design` for invocado.
14
+
15
+ ## Como Diagnosticar o Bug
16
+
17
+ O diagnóstico é a etapa mais crítica. Uma correção sem diagnóstico adequado apenas esconde o sintoma.
18
+
19
+ **Entenda o Relato Completo:** Antes de analisar o código, entenda claramente qual é o comportamento atual vs o esperado. Se o usuário não forneceu um stack trace ou log, pergunte por ele.
20
+
21
+ **Localize a Área Afetada:** Identifique os controllers, services, queries ou componentes que estão envolvidos no fluxo que apresenta o erro.
22
+
23
+ **Encontre a Causa Raiz:** Não trate o sintoma. Descubra *por que* o erro acontece. As causas mais comuns são:
24
+
25
+ | Tipo de Causa | Exemplos |
26
+ |---------------|---------|
27
+ | **Lógica de Negócio** | Condição incorreta, cálculo errado |
28
+ | **Banco de Dados** | Query N+1, deadlock, dados inconsistentes |
29
+ | **Validação** | Input não validado, tipo incorreto |
30
+ | **Concorrência** | Race condition, falta de lock |
31
+ | **Segurança** | Injeção de SQL, XSS, IDOR |
32
+
33
+ ## Como Gerar o Design do Bugfix
34
+
35
+ O documento `DARE/DESIGN-Bugfix-[Nome].md` deve ser **cirúrgico e preciso**. Ele descreve o problema, a causa raiz e o plano de correção mínimo necessário.
36
+
37
+ | Seção | Conteúdo |
38
+ |-------|----------|
39
+ | **Descrição** | Comportamento atual vs esperado |
40
+ | **Causa Raiz** | Explicação técnica do porquê ocorre |
41
+ | **Arquivos a Modificar** | Lista exata de arquivos que serão alterados |
42
+ | **Riscos** | O que mais pode quebrar com a correção |
43
+ | **Plano de Ação** | Passos cirúrgicos da correção |
44
+ | **Testes** | Validation Gates + Testes de Regressão |
45
+
46
+ ## Regras de Ouro
47
+
48
+ 1. **Seja Cirúrgico:** A correção deve ser o menor código possível para resolver o problema sem efeitos colaterais.
49
+ 2. **Causa Raiz:** Nunca trate apenas o sintoma. Se a causa raiz não for corrigida, o bug voltará.
50
+ 3. **Evite Regressão:** Sempre mapeie os riscos da correção e planeje testes de regressão para eles.
51
+ 4. **Adicione Testes:** Se o bug ocorreu, é porque faltava um teste. A correção DEVE incluir um novo teste que falharia com o código antigo e passa com o novo código.