@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,274 +1,274 @@
1
- ---
2
- name: dare-security
3
- description: Diretrizes de Segurança DARE — OWASP Top 10, supply chain, secrets, dependências vulneráveis. Aplicável em todas as fases (Design → Blueprint → Tasks → Execute). Inclui validation gates por stack (npm audit, cargo audit, pip-audit, composer audit, govulncheck).
4
- ---
5
-
6
- # DARE Security Skill
7
-
8
- Você é um especialista em AppSec. Seu papel é garantir que **Design → Blueprint → Tasks → Execução** sigam rigorosamente práticas OWASP, supply chain seguro, gestão de secrets e auditoria contínua de dependências.
9
-
10
- ## Quando usar
11
-
12
- - Início de projeto — definir RS-* (requisitos de segurança) no DESIGN.md
13
- - Adição de dependência nova — auditar CVE
14
- - PR mexe em autenticação, autorização, criptografia ou input externo
15
- - Audit de produção — varredura periódica de toda a base
16
-
17
- ## Aplicação por fase DARE
18
-
19
- ### Fase 1 — Design (`dare-design`)
20
-
21
- Requisitos obrigatórios em seção RS-*:
22
-
23
- | ID | Requisito |
24
- |---|---|
25
- | RS-01 | Validação de entrada (OWASP A03) |
26
- | RS-02 | Hash de senhas / proteção de dados sensíveis (A02) |
27
- | RS-03 | Controle de acesso por recurso (A01) |
28
- | RS-04 | Auditoria de dependências sem CVE HIGH/CRITICAL (A06) |
29
- | RS-05 | Secrets via env, nunca em código |
30
-
31
- Identifique vetores de ataque na ideia inicial e mitigações em **Riscos**.
32
-
33
- ### Fase 2 — Blueprint (`dare-blueprint`)
34
-
35
- - Endpoints: coluna `Auth` (JWT/apiKey/público) + middleware de rate limit
36
- - Modelo de dados: marque campos sensíveis (PII, tokens, hashes) e como são protegidos
37
- - Fase N-1 = **Auditoria de Segurança e Dependências** com critério DONE
38
- - Validation gates por stack incluem comando de audit
39
-
40
- ### Fase 3 — Tasks (`dare-tasks`)
41
-
42
- - Toda task que adiciona dep → validation gate inclui `npm audit` / `cargo audit` / etc.
43
- - Task dedicada: headers de segurança, rate limit, scan de secrets
44
- - Seção "Considerações de Segurança" obrigatória em cada `EXECUTION/task-*.md`
45
-
46
- ### Fase 4 — Execute (`dare-execute`)
47
-
48
- Aplique as proteções abaixo ao implementar.
49
-
50
- ## OWASP Top 10 — Implementação
51
-
52
- ### A01 — Broken Access Control
53
-
54
- - Verifique permissão no **recurso**, não só na rota
55
- - Princípio do menor privilégio (tokens com escopos mínimos)
56
- - IDs sequenciais expostos = ruim — use UUID/ULID
57
- - Multi-tenant: **sempre** filtre por `tenant_id`/`org_id`
58
-
59
- ```rust
60
- // ✅ Rust/Axum — extractor verifica ownership
61
- async fn update_post(
62
- State(db): State<Pool<Postgres>>,
63
- claims: Claims,
64
- Path(post_id): Path<Uuid>,
65
- Json(body): Json<UpdatePostBody>,
66
- ) -> Result<Json<Post>, AppError> {
67
- let post = sqlx::query_as!(Post,
68
- "SELECT * FROM posts WHERE id = $1 AND author_id = $2",
69
- post_id, claims.sub
70
- ).fetch_one(&db).await?;
71
- // ...
72
- }
73
- ```
74
-
75
- ### A02 — Cryptographic Failures
76
-
77
- - Senhas: **Argon2id** preferido, ou Bcrypt cost ≥ 12 — nunca MD5/SHA1/SHA256 puro
78
- - Dados sensíveis at rest: AES-256-GCM
79
- - Trânsito: HTTPS + HSTS
80
- - Nunca logue: senha, token, chave de API, cartão, CPF completo
81
- - JWT: RS256 (chave assimétrica) para tokens públicos, HS256 + segredo ≥ 256 bits para internos
82
-
83
- ```python
84
- # Python — passlib Argon2
85
- from passlib.hash import argon2
86
- hashed = argon2.hash(password)
87
- valid = argon2.verify(password, hashed)
88
- ```
89
-
90
- ```rust
91
- // Rust — argon2 crate
92
- use argon2::{Argon2, PasswordHasher};
93
- let hash = Argon2::default().hash_password(password.as_bytes(), &salt)?;
94
- ```
95
-
96
- ### A03 — Injection
97
-
98
- ```typescript
99
- // ✅ Prisma — parametrizado por padrão
100
- const user = await prisma.user.findFirst({ where: { email } });
101
-
102
- // ❌ NestJS — QueryBuilder com interpolação
103
- .where(`user.email = '${email}'`) // VULNERÁVEL
104
- .where('user.email = :email', { email }) // OK
105
- ```
106
-
107
- ```python
108
- # SQLAlchemy — sempre parametrizado
109
- db.execute(select(User).where(User.email == email))
110
- ```
111
-
112
- **XSS:** escape de saída no front, CSP no back, sem `innerHTML` / `dangerouslySetInnerHTML` com user data.
113
-
114
- **Command injection:**
115
- ```go
116
- // ✅ Go — args lista, não shell string
117
- cmd := exec.Command("convert", inputFile, outputFile)
118
- // ❌ exec.Command("sh", "-c", "convert "+userInput)
119
- ```
120
-
121
- **Prompt injection (LLM):**
122
- - Separe instrução de dados com delimitadores
123
- - Sanitize entrada antes de inserir no prompt
124
- - Valide output do LLM com schema
125
-
126
- ### A04 — Insecure Design
127
-
128
- - Valide no servidor sempre
129
- - Allowlists > blocklists
130
- - Rate limit ANTES da lógica de negócio em endpoints públicos
131
-
132
- ### A05 — Security Misconfiguration
133
-
134
- - Stack traces detalhados só em dev
135
- - Headers obrigatórios em prod:
136
- ```
137
- Strict-Transport-Security: max-age=31536000; includeSubDomains
138
- X-Frame-Options: DENY
139
- X-Content-Type-Options: nosniff
140
- Content-Security-Policy: default-src 'self'
141
- Referrer-Policy: strict-origin-when-cross-origin
142
- ```
143
- - CORS: nunca `*` para endpoints autenticados
144
-
145
- ### A06 — Vulnerable Components (crítico Ralph Loop)
146
-
147
- ```bash
148
- # Por stack
149
- npm audit --audit-level=high # Node
150
- cargo audit # Rust
151
- pip-audit # Python
152
- composer audit # PHP
153
- govulncheck ./... # Go
154
- docker scout cves [imagem] # Docker
155
- ```
156
-
157
- **Inegociável:** nenhuma dep com CVE HIGH/CRITICAL em produção sem justificativa documentada e plano de upgrade.
158
-
159
- ### A07 — Authentication Failures
160
-
161
- - Login: máx 5 tentativas / 15 min por IP **e** por usuário
162
- - JWT access token: `exp` ≤ 15 min
163
- - Refresh token com rotação no servidor
164
- - Logout invalida refresh no DB
165
- - Senha: mín 12 chars, bloquear HaveIBeenPwned
166
- - MFA TOTP para contas sensíveis
167
-
168
- ### A08 — Software/Data Integrity
169
-
170
- - Valide checksum/signature de artefatos
171
- - Nunca confie em dados do cliente para autorização
172
- - Pin actions CI (`actions/checkout@v4`, não `@main`)
173
- - Lockfiles commitados (`package-lock.json`, `Cargo.lock`, `composer.lock`)
174
-
175
- ### A09 — Security Logging & Monitoring
176
-
177
- Logue (JSON estruturado, sem dados sensíveis):
178
- - Auth: login OK/FAIL, logout, refresh, MFA challenge
179
- - Authz: 403 com recurso + userId
180
- - 5xx em prod com trace-id (sem stack trace completo)
181
- - Destrutivas: delete, disable, role change
182
-
183
- **Nunca logue:** senhas, tokens, API keys, cartões, CPF/SSN completo.
184
-
185
- ### A10 — SSRF
186
-
187
- Para apps que fazem requests a URLs do usuário:
188
- - Allowlist de domínios
189
- - Bloqueie IPs privados (`127.x`, `10.x`, `172.16-31.x`, `192.168.x`, `169.254.x`)
190
- - Bloqueie metadados de cloud (`169.254.169.254`)
191
- - Timeout ≤ 5s, sem redirects automáticos
192
-
193
- ## Gestão de secrets
194
-
195
- ### Nunca em código
196
-
197
- ```
198
- password = "..."
199
- api_key = "..."
200
- DATABASE_URL = "postgres://user:password@..."
201
- AWS_SECRET_ACCESS_KEY = "..."
202
- ```
203
-
204
- Configure scanner pré-commit:
205
- ```bash
206
- pip install detect-secrets
207
- detect-secrets scan > .secrets.baseline
208
- detect-secrets audit .secrets.baseline
209
- ```
210
-
211
- ### Estrutura
212
-
213
- - Dev: `.env` no `.gitignore`, `.env.example` commitado sem valores
214
- - CI: secrets do pipeline (GitHub Actions Secrets)
215
- - Produção: vault (HashiCorp, AWS Secrets Manager, GCP Secret Manager)
216
- - Rotação: tokens de serviço a cada 90 dias
217
-
218
- ## Validation Gates no Ralph Loop
219
-
220
- ```bash
221
- # 1. Audit de deps (se mudou deps)
222
- npm audit --audit-level=high
223
- cargo audit
224
- pip-audit
225
- composer audit
226
- govulncheck ./...
227
-
228
- # 2. Scan de secrets (tasks de config/infra/CI)
229
- detect-secrets scan --baseline .secrets.baseline
230
-
231
- # 3. Headers de segurança (tasks de config de server)
232
- curl -I https://staging.example.com | grep -E "Strict-Transport|X-Frame|X-Content|Content-Security"
233
- ```
234
-
235
- > **Gate obrigatório:** CVE HIGH/CRITICAL = task FAILED até corrigir.
236
-
237
- ## Como aplicar
238
-
239
- ### Passo 1: Audit do projeto
240
-
241
- Rode tudo de §A06 e capture estado atual.
242
-
243
- ### Passo 2: Adicionar audit ao CI
244
-
245
- ```yaml
246
- - name: Security audit
247
- run: |
248
- npm audit --audit-level=high # ou cargo/pip/composer/govulncheck
249
- ```
250
-
251
- ### Passo 3: Scanner de secrets
252
-
253
- ```bash
254
- detect-secrets scan > .secrets.baseline
255
- # adicionar pre-commit hook ou step no CI
256
- ```
257
-
258
- ### Passo 4: Headers em prod
259
-
260
- Adicionar middleware da stack (helmet, secure_headers, SetResponseHeaderLayer).
261
-
262
- ### Passo 5: Rate limit nos endpoints públicos
263
-
264
- Login: 5/15min IP+user. APIs gerais: configurar limites apropriados.
265
-
266
- ## Dicas
267
-
268
- - **Combine** com `dare-ax` (M-04 = rate limit configurado)
269
- - **Combine** com `dare-llm-integration` para prompt injection
270
- - **Use** `dare-quality-telemetry` para rastrear M-04 (CVE count) ao longo do tempo
271
-
272
- ---
273
-
274
- Esta skill é parte do DARE Method e está sob licença MIT.
1
+ ---
2
+ name: dare-security
3
+ description: Diretrizes de Segurança DARE — OWASP Top 10, supply chain, secrets, dependências vulneráveis. Aplicável em todas as fases (Design → Blueprint → Tasks → Execute). Inclui validation gates por stack (npm audit, cargo audit, pip-audit, composer audit, govulncheck).
4
+ ---
5
+
6
+ # DARE Security Skill
7
+
8
+ Você é um especialista em AppSec. Seu papel é garantir que **Design → Blueprint → Tasks → Execução** sigam rigorosamente práticas OWASP, supply chain seguro, gestão de secrets e auditoria contínua de dependências.
9
+
10
+ ## Quando usar
11
+
12
+ - Início de projeto — definir RS-* (requisitos de segurança) no DESIGN.md
13
+ - Adição de dependência nova — auditar CVE
14
+ - PR mexe em autenticação, autorização, criptografia ou input externo
15
+ - Audit de produção — varredura periódica de toda a base
16
+
17
+ ## Aplicação por fase DARE
18
+
19
+ ### Fase 1 — Design (`dare-design`)
20
+
21
+ Requisitos obrigatórios em seção RS-*:
22
+
23
+ | ID | Requisito |
24
+ |---|---|
25
+ | RS-01 | Validação de entrada (OWASP A03) |
26
+ | RS-02 | Hash de senhas / proteção de dados sensíveis (A02) |
27
+ | RS-03 | Controle de acesso por recurso (A01) |
28
+ | RS-04 | Auditoria de dependências sem CVE HIGH/CRITICAL (A06) |
29
+ | RS-05 | Secrets via env, nunca em código |
30
+
31
+ Identifique vetores de ataque na ideia inicial e mitigações em **Riscos**.
32
+
33
+ ### Fase 2 — Blueprint (`dare-blueprint`)
34
+
35
+ - Endpoints: coluna `Auth` (JWT/apiKey/público) + middleware de rate limit
36
+ - Modelo de dados: marque campos sensíveis (PII, tokens, hashes) e como são protegidos
37
+ - Fase N-1 = **Auditoria de Segurança e Dependências** com critério DONE
38
+ - Validation gates por stack incluem comando de audit
39
+
40
+ ### Fase 3 — Tasks (`dare-tasks`)
41
+
42
+ - Toda task que adiciona dep → validation gate inclui `npm audit` / `cargo audit` / etc.
43
+ - Task dedicada: headers de segurança, rate limit, scan de secrets
44
+ - Seção "Considerações de Segurança" obrigatória em cada `EXECUTION/task-*.md`
45
+
46
+ ### Fase 4 — Execute (`dare-execute`)
47
+
48
+ Aplique as proteções abaixo ao implementar.
49
+
50
+ ## OWASP Top 10 — Implementação
51
+
52
+ ### A01 — Broken Access Control
53
+
54
+ - Verifique permissão no **recurso**, não só na rota
55
+ - Princípio do menor privilégio (tokens com escopos mínimos)
56
+ - IDs sequenciais expostos = ruim — use UUID/ULID
57
+ - Multi-tenant: **sempre** filtre por `tenant_id`/`org_id`
58
+
59
+ ```rust
60
+ // ✅ Rust/Axum — extractor verifica ownership
61
+ async fn update_post(
62
+ State(db): State<Pool<Postgres>>,
63
+ claims: Claims,
64
+ Path(post_id): Path<Uuid>,
65
+ Json(body): Json<UpdatePostBody>,
66
+ ) -> Result<Json<Post>, AppError> {
67
+ let post = sqlx::query_as!(Post,
68
+ "SELECT * FROM posts WHERE id = $1 AND author_id = $2",
69
+ post_id, claims.sub
70
+ ).fetch_one(&db).await?;
71
+ // ...
72
+ }
73
+ ```
74
+
75
+ ### A02 — Cryptographic Failures
76
+
77
+ - Senhas: **Argon2id** preferido, ou Bcrypt cost ≥ 12 — nunca MD5/SHA1/SHA256 puro
78
+ - Dados sensíveis at rest: AES-256-GCM
79
+ - Trânsito: HTTPS + HSTS
80
+ - Nunca logue: senha, token, chave de API, cartão, CPF completo
81
+ - JWT: RS256 (chave assimétrica) para tokens públicos, HS256 + segredo ≥ 256 bits para internos
82
+
83
+ ```python
84
+ # Python — passlib Argon2
85
+ from passlib.hash import argon2
86
+ hashed = argon2.hash(password)
87
+ valid = argon2.verify(password, hashed)
88
+ ```
89
+
90
+ ```rust
91
+ // Rust — argon2 crate
92
+ use argon2::{Argon2, PasswordHasher};
93
+ let hash = Argon2::default().hash_password(password.as_bytes(), &salt)?;
94
+ ```
95
+
96
+ ### A03 — Injection
97
+
98
+ ```typescript
99
+ // ✅ Prisma — parametrizado por padrão
100
+ const user = await prisma.user.findFirst({ where: { email } });
101
+
102
+ // ❌ NestJS — QueryBuilder com interpolação
103
+ .where(`user.email = '${email}'`) // VULNERÁVEL
104
+ .where('user.email = :email', { email }) // OK
105
+ ```
106
+
107
+ ```python
108
+ # SQLAlchemy — sempre parametrizado
109
+ db.execute(select(User).where(User.email == email))
110
+ ```
111
+
112
+ **XSS:** escape de saída no front, CSP no back, sem `innerHTML` / `dangerouslySetInnerHTML` com user data.
113
+
114
+ **Command injection:**
115
+ ```go
116
+ // ✅ Go — args lista, não shell string
117
+ cmd := exec.Command("convert", inputFile, outputFile)
118
+ // ❌ exec.Command("sh", "-c", "convert "+userInput)
119
+ ```
120
+
121
+ **Prompt injection (LLM):**
122
+ - Separe instrução de dados com delimitadores
123
+ - Sanitize entrada antes de inserir no prompt
124
+ - Valide output do LLM com schema
125
+
126
+ ### A04 — Insecure Design
127
+
128
+ - Valide no servidor sempre
129
+ - Allowlists > blocklists
130
+ - Rate limit ANTES da lógica de negócio em endpoints públicos
131
+
132
+ ### A05 — Security Misconfiguration
133
+
134
+ - Stack traces detalhados só em dev
135
+ - Headers obrigatórios em prod:
136
+ ```
137
+ Strict-Transport-Security: max-age=31536000; includeSubDomains
138
+ X-Frame-Options: DENY
139
+ X-Content-Type-Options: nosniff
140
+ Content-Security-Policy: default-src 'self'
141
+ Referrer-Policy: strict-origin-when-cross-origin
142
+ ```
143
+ - CORS: nunca `*` para endpoints autenticados
144
+
145
+ ### A06 — Vulnerable Components (crítico Ralph Loop)
146
+
147
+ ```bash
148
+ # Por stack
149
+ npm audit --audit-level=high # Node
150
+ cargo audit # Rust
151
+ pip-audit # Python
152
+ composer audit # PHP
153
+ govulncheck ./... # Go
154
+ docker scout cves [imagem] # Docker
155
+ ```
156
+
157
+ **Inegociável:** nenhuma dep com CVE HIGH/CRITICAL em produção sem justificativa documentada e plano de upgrade.
158
+
159
+ ### A07 — Authentication Failures
160
+
161
+ - Login: máx 5 tentativas / 15 min por IP **e** por usuário
162
+ - JWT access token: `exp` ≤ 15 min
163
+ - Refresh token com rotação no servidor
164
+ - Logout invalida refresh no DB
165
+ - Senha: mín 12 chars, bloquear HaveIBeenPwned
166
+ - MFA TOTP para contas sensíveis
167
+
168
+ ### A08 — Software/Data Integrity
169
+
170
+ - Valide checksum/signature de artefatos
171
+ - Nunca confie em dados do cliente para autorização
172
+ - Pin actions CI (`actions/checkout@v4`, não `@main`)
173
+ - Lockfiles commitados (`package-lock.json`, `Cargo.lock`, `composer.lock`)
174
+
175
+ ### A09 — Security Logging & Monitoring
176
+
177
+ Logue (JSON estruturado, sem dados sensíveis):
178
+ - Auth: login OK/FAIL, logout, refresh, MFA challenge
179
+ - Authz: 403 com recurso + userId
180
+ - 5xx em prod com trace-id (sem stack trace completo)
181
+ - Destrutivas: delete, disable, role change
182
+
183
+ **Nunca logue:** senhas, tokens, API keys, cartões, CPF/SSN completo.
184
+
185
+ ### A10 — SSRF
186
+
187
+ Para apps que fazem requests a URLs do usuário:
188
+ - Allowlist de domínios
189
+ - Bloqueie IPs privados (`127.x`, `10.x`, `172.16-31.x`, `192.168.x`, `169.254.x`)
190
+ - Bloqueie metadados de cloud (`169.254.169.254`)
191
+ - Timeout ≤ 5s, sem redirects automáticos
192
+
193
+ ## Gestão de secrets
194
+
195
+ ### Nunca em código
196
+
197
+ ```
198
+ password = "..."
199
+ api_key = "..."
200
+ DATABASE_URL = "postgres://user:password@..."
201
+ AWS_SECRET_ACCESS_KEY = "..."
202
+ ```
203
+
204
+ Configure scanner pré-commit:
205
+ ```bash
206
+ pip install detect-secrets
207
+ detect-secrets scan > .secrets.baseline
208
+ detect-secrets audit .secrets.baseline
209
+ ```
210
+
211
+ ### Estrutura
212
+
213
+ - Dev: `.env` no `.gitignore`, `.env.example` commitado sem valores
214
+ - CI: secrets do pipeline (GitHub Actions Secrets)
215
+ - Produção: vault (HashiCorp, AWS Secrets Manager, GCP Secret Manager)
216
+ - Rotação: tokens de serviço a cada 90 dias
217
+
218
+ ## Validation Gates no Ralph Loop
219
+
220
+ ```bash
221
+ # 1. Audit de deps (se mudou deps)
222
+ npm audit --audit-level=high
223
+ cargo audit
224
+ pip-audit
225
+ composer audit
226
+ govulncheck ./...
227
+
228
+ # 2. Scan de secrets (tasks de config/infra/CI)
229
+ detect-secrets scan --baseline .secrets.baseline
230
+
231
+ # 3. Headers de segurança (tasks de config de server)
232
+ curl -I https://staging.example.com | grep -E "Strict-Transport|X-Frame|X-Content|Content-Security"
233
+ ```
234
+
235
+ > **Gate obrigatório:** CVE HIGH/CRITICAL = task FAILED até corrigir.
236
+
237
+ ## Como aplicar
238
+
239
+ ### Passo 1: Audit do projeto
240
+
241
+ Rode tudo de §A06 e capture estado atual.
242
+
243
+ ### Passo 2: Adicionar audit ao CI
244
+
245
+ ```yaml
246
+ - name: Security audit
247
+ run: |
248
+ npm audit --audit-level=high # ou cargo/pip/composer/govulncheck
249
+ ```
250
+
251
+ ### Passo 3: Scanner de secrets
252
+
253
+ ```bash
254
+ detect-secrets scan > .secrets.baseline
255
+ # adicionar pre-commit hook ou step no CI
256
+ ```
257
+
258
+ ### Passo 4: Headers em prod
259
+
260
+ Adicionar middleware da stack (helmet, secure_headers, SetResponseHeaderLayer).
261
+
262
+ ### Passo 5: Rate limit nos endpoints públicos
263
+
264
+ Login: 5/15min IP+user. APIs gerais: configurar limites apropriados.
265
+
266
+ ## Dicas
267
+
268
+ - **Combine** com `dare-ax` (M-04 = rate limit configurado)
269
+ - **Combine** com `dare-llm-integration` para prompt injection
270
+ - **Use** `dare-quality-telemetry` para rastrear M-04 (CVE count) ao longo do tempo
271
+
272
+ ---
273
+
274
+ Esta skill é parte do DARE Method e está sob licença MIT.
@@ -1,35 +1,35 @@
1
- ---
2
- name: dare-skill
3
- description: Adiciona, remove, lista, inspeciona, atualiza ou publica skills DARE neste projeto. Mapeia o CLI `dare skill`.
4
- ---
5
-
6
- # Gerenciar skills DARE do projeto
7
-
8
- Adiciona, remove, lista, inspeciona, atualiza ou publica skills DARE neste projeto.
9
-
10
- > Este comando expõe o CLI `dare skill` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
11
-
12
- ## Quando usar
13
-
14
- - Você quer instalar uma skill extra (ex.: uma skill de stack) no projeto.
15
- - Quer listar/inspecionar as skills disponíveis ou publicar uma própria.
16
-
17
- ## Como rodar
18
-
19
- ```bash
20
- dare skill list
21
- dare skill info <nome>
22
- dare skill add <nome>
23
- dare skill remove <nome>
24
- dare skill update
25
- ```
26
-
27
- ## O que fazer
28
-
29
- 1. Use `dare skill list` para ver o que está instalado/disponível.
30
- 2. Rode o subcomando desejado (`add`/`remove`/`info`/`update`/`publish`).
31
- 3. Confirme o resultado e, se mudou comandos de IDE, recarregue a IDE.
32
-
33
- ## Comandos relacionados
34
-
35
- `/dare-update` · `/dare-info`
1
+ ---
2
+ name: dare-skill
3
+ description: Adiciona, remove, lista, inspeciona, atualiza ou publica skills DARE neste projeto. Mapeia o CLI `dare skill`.
4
+ ---
5
+
6
+ # Gerenciar skills DARE do projeto
7
+
8
+ Adiciona, remove, lista, inspeciona, atualiza ou publica skills DARE neste projeto.
9
+
10
+ > Este comando expõe o CLI `dare skill` na IDE. O agente pode **rodar o comando no terminal** e interpretar a saída.
11
+
12
+ ## Quando usar
13
+
14
+ - Você quer instalar uma skill extra (ex.: uma skill de stack) no projeto.
15
+ - Quer listar/inspecionar as skills disponíveis ou publicar uma própria.
16
+
17
+ ## Como rodar
18
+
19
+ ```bash
20
+ dare skill list
21
+ dare skill info <nome>
22
+ dare skill add <nome>
23
+ dare skill remove <nome>
24
+ dare skill update
25
+ ```
26
+
27
+ ## O que fazer
28
+
29
+ 1. Use `dare skill list` para ver o que está instalado/disponível.
30
+ 2. Rode o subcomando desejado (`add`/`remove`/`info`/`update`/`publish`).
31
+ 3. Confirme o resultado e, se mudou comandos de IDE, recarregue a IDE.
32
+
33
+ ## Comandos relacionados
34
+
35
+ `/dare-update` · `/dare-info`