@dewtech/dare-cli 2.16.0 → 3.0.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 (408) hide show
  1. package/README.md +196 -3
  2. package/dist/__tests__/confidence.test.d.ts +2 -0
  3. package/dist/__tests__/confidence.test.d.ts.map +1 -0
  4. package/dist/__tests__/confidence.test.js +73 -0
  5. package/dist/__tests__/confidence.test.js.map +1 -0
  6. package/dist/__tests__/datamodel.test.d.ts +2 -0
  7. package/dist/__tests__/datamodel.test.d.ts.map +1 -0
  8. package/dist/__tests__/datamodel.test.js +131 -0
  9. package/dist/__tests__/datamodel.test.js.map +1 -0
  10. package/dist/__tests__/dna-detector.test.d.ts +2 -0
  11. package/dist/__tests__/dna-detector.test.d.ts.map +1 -0
  12. package/dist/__tests__/dna-detector.test.js +97 -0
  13. package/dist/__tests__/dna-detector.test.js.map +1 -0
  14. package/dist/__tests__/dna-facts.test.d.ts +2 -0
  15. package/dist/__tests__/dna-facts.test.d.ts.map +1 -0
  16. package/dist/__tests__/dna-facts.test.js +44 -0
  17. package/dist/__tests__/dna-facts.test.js.map +1 -0
  18. package/dist/__tests__/graph-renderer.test.d.ts +2 -0
  19. package/dist/__tests__/graph-renderer.test.d.ts.map +1 -0
  20. package/dist/__tests__/graph-renderer.test.js +85 -0
  21. package/dist/__tests__/graph-renderer.test.js.map +1 -0
  22. package/dist/__tests__/migration.test.d.ts +2 -0
  23. package/dist/__tests__/migration.test.d.ts.map +1 -0
  24. package/dist/__tests__/migration.test.js +77 -0
  25. package/dist/__tests__/migration.test.js.map +1 -0
  26. package/dist/__tests__/module-detector.test.d.ts +2 -0
  27. package/dist/__tests__/module-detector.test.d.ts.map +1 -0
  28. package/dist/__tests__/module-detector.test.js +83 -0
  29. package/dist/__tests__/module-detector.test.js.map +1 -0
  30. package/dist/__tests__/refine.test.d.ts +2 -0
  31. package/dist/__tests__/refine.test.d.ts.map +1 -0
  32. package/dist/__tests__/refine.test.js +186 -0
  33. package/dist/__tests__/refine.test.js.map +1 -0
  34. package/dist/__tests__/reverse-facts.test.d.ts +2 -0
  35. package/dist/__tests__/reverse-facts.test.d.ts.map +1 -0
  36. package/dist/__tests__/reverse-facts.test.js +78 -0
  37. package/dist/__tests__/reverse-facts.test.js.map +1 -0
  38. package/dist/__tests__/review.test.d.ts +2 -0
  39. package/dist/__tests__/review.test.d.ts.map +1 -0
  40. package/dist/__tests__/review.test.js +242 -0
  41. package/dist/__tests__/review.test.js.map +1 -0
  42. package/dist/__tests__/update.test.d.ts +2 -0
  43. package/dist/__tests__/update.test.d.ts.map +1 -0
  44. package/dist/__tests__/update.test.js +150 -0
  45. package/dist/__tests__/update.test.js.map +1 -0
  46. package/dist/__tests__/validate.test.js +65 -65
  47. package/dist/bin/dare.js +38 -3
  48. package/dist/bin/dare.js.map +1 -1
  49. package/dist/commands/blueprint.js +122 -122
  50. package/dist/commands/dag.d.ts.map +1 -1
  51. package/dist/commands/dag.js +43 -79
  52. package/dist/commands/dag.js.map +1 -1
  53. package/dist/commands/dna.d.ts +3 -0
  54. package/dist/commands/dna.d.ts.map +1 -0
  55. package/dist/commands/dna.js +69 -0
  56. package/dist/commands/dna.js.map +1 -0
  57. package/dist/commands/execute.d.ts.map +1 -1
  58. package/dist/commands/execute.js +76 -0
  59. package/dist/commands/execute.js.map +1 -1
  60. package/dist/commands/migrate.d.ts +3 -0
  61. package/dist/commands/migrate.d.ts.map +1 -0
  62. package/dist/commands/migrate.js +101 -0
  63. package/dist/commands/migrate.js.map +1 -0
  64. package/dist/commands/new.d.ts +16 -0
  65. package/dist/commands/new.d.ts.map +1 -0
  66. package/dist/commands/new.js +103 -0
  67. package/dist/commands/new.js.map +1 -0
  68. package/dist/commands/refine.d.ts +16 -0
  69. package/dist/commands/refine.d.ts.map +1 -0
  70. package/dist/commands/refine.js +167 -0
  71. package/dist/commands/refine.js.map +1 -0
  72. package/dist/commands/reverse.d.ts +3 -0
  73. package/dist/commands/reverse.d.ts.map +1 -0
  74. package/dist/commands/reverse.js +201 -0
  75. package/dist/commands/reverse.js.map +1 -0
  76. package/dist/commands/review.d.ts +16 -0
  77. package/dist/commands/review.d.ts.map +1 -0
  78. package/dist/commands/review.js +106 -0
  79. package/dist/commands/review.js.map +1 -0
  80. package/dist/commands/update.d.ts +13 -0
  81. package/dist/commands/update.d.ts.map +1 -0
  82. package/dist/commands/update.js +149 -0
  83. package/dist/commands/update.js.map +1 -0
  84. package/dist/commands/welcome.d.ts +14 -0
  85. package/dist/commands/welcome.d.ts.map +1 -0
  86. package/dist/commands/welcome.js +29 -0
  87. package/dist/commands/welcome.js.map +1 -0
  88. package/dist/skills/commands/add.d.ts +23 -0
  89. package/dist/skills/commands/add.d.ts.map +1 -0
  90. package/dist/skills/commands/add.js +206 -0
  91. package/dist/skills/commands/add.js.map +1 -0
  92. package/dist/skills/commands/info.d.ts +14 -0
  93. package/dist/skills/commands/info.d.ts.map +1 -0
  94. package/dist/skills/commands/info.js +99 -0
  95. package/dist/skills/commands/info.js.map +1 -0
  96. package/dist/skills/commands/list.d.ts +19 -0
  97. package/dist/skills/commands/list.d.ts.map +1 -0
  98. package/dist/skills/commands/list.js +163 -0
  99. package/dist/skills/commands/list.js.map +1 -0
  100. package/dist/skills/commands/publish.d.ts +56 -0
  101. package/dist/skills/commands/publish.d.ts.map +1 -0
  102. package/dist/skills/commands/publish.js +272 -0
  103. package/dist/skills/commands/publish.js.map +1 -0
  104. package/dist/skills/commands/remove.d.ts +19 -0
  105. package/dist/skills/commands/remove.d.ts.map +1 -0
  106. package/dist/skills/commands/remove.js +96 -0
  107. package/dist/skills/commands/remove.js.map +1 -0
  108. package/dist/skills/commands/update.d.ts +31 -0
  109. package/dist/skills/commands/update.d.ts.map +1 -0
  110. package/dist/skills/commands/update.js +132 -0
  111. package/dist/skills/commands/update.js.map +1 -0
  112. package/dist/skills/index.d.ts +22 -0
  113. package/dist/skills/index.d.ts.map +1 -0
  114. package/dist/skills/index.js +33 -0
  115. package/dist/skills/index.js.map +1 -0
  116. package/dist/skills/manifest.d.ts +54 -0
  117. package/dist/skills/manifest.d.ts.map +1 -0
  118. package/dist/skills/manifest.js +162 -0
  119. package/dist/skills/manifest.js.map +1 -0
  120. package/dist/skills/registry-local.d.ts +67 -0
  121. package/dist/skills/registry-local.d.ts.map +1 -0
  122. package/dist/skills/registry-local.js +130 -0
  123. package/dist/skills/registry-local.js.map +1 -0
  124. package/dist/skills/registry-mock.json +109 -0
  125. package/dist/skills/registry-remote.d.ts +110 -0
  126. package/dist/skills/registry-remote.d.ts.map +1 -0
  127. package/dist/skills/registry-remote.js +246 -0
  128. package/dist/skills/registry-remote.js.map +1 -0
  129. package/dist/skills/registry.d.ts +49 -0
  130. package/dist/skills/registry.d.ts.map +1 -0
  131. package/dist/skills/registry.js +94 -0
  132. package/dist/skills/registry.js.map +1 -0
  133. package/dist/skills/tests/manifest.spec.d.ts +8 -0
  134. package/dist/skills/tests/manifest.spec.d.ts.map +1 -0
  135. package/dist/skills/tests/manifest.spec.js +176 -0
  136. package/dist/skills/tests/manifest.spec.js.map +1 -0
  137. package/dist/skills/tests/publish.spec.d.ts +12 -0
  138. package/dist/skills/tests/publish.spec.d.ts.map +1 -0
  139. package/dist/skills/tests/publish.spec.js +276 -0
  140. package/dist/skills/tests/publish.spec.js.map +1 -0
  141. package/dist/skills/tests/registry-local.spec.d.ts +8 -0
  142. package/dist/skills/tests/registry-local.spec.d.ts.map +1 -0
  143. package/dist/skills/tests/registry-local.spec.js +231 -0
  144. package/dist/skills/tests/registry-local.spec.js.map +1 -0
  145. package/dist/skills/tests/registry.spec.d.ts +7 -0
  146. package/dist/skills/tests/registry.spec.d.ts.map +1 -0
  147. package/dist/skills/tests/registry.spec.js +58 -0
  148. package/dist/skills/tests/registry.spec.js.map +1 -0
  149. package/dist/skills/tests/remote-registry.spec.d.ts +9 -0
  150. package/dist/skills/tests/remote-registry.spec.d.ts.map +1 -0
  151. package/dist/skills/tests/remote-registry.spec.js +357 -0
  152. package/dist/skills/tests/remote-registry.spec.js.map +1 -0
  153. package/dist/skills/tests/update.spec.d.ts +9 -0
  154. package/dist/skills/tests/update.spec.d.ts.map +1 -0
  155. package/dist/skills/tests/update.spec.js +166 -0
  156. package/dist/skills/tests/update.spec.js.map +1 -0
  157. package/dist/types/Refine.types.d.ts +96 -0
  158. package/dist/types/Refine.types.d.ts.map +1 -0
  159. package/dist/types/Refine.types.js +19 -0
  160. package/dist/types/Refine.types.js.map +1 -0
  161. package/dist/types/Review.types.d.ts +86 -0
  162. package/dist/types/Review.types.d.ts.map +1 -0
  163. package/dist/types/Review.types.js +15 -0
  164. package/dist/types/Review.types.js.map +1 -0
  165. package/dist/types/UpdateManifest.types.d.ts +91 -0
  166. package/dist/types/UpdateManifest.types.d.ts.map +1 -0
  167. package/dist/types/UpdateManifest.types.js +13 -0
  168. package/dist/types/UpdateManifest.types.js.map +1 -0
  169. package/dist/utils/ReviewRunner.d.ts +42 -0
  170. package/dist/utils/ReviewRunner.d.ts.map +1 -0
  171. package/dist/utils/ReviewRunner.js +175 -0
  172. package/dist/utils/ReviewRunner.js.map +1 -0
  173. package/dist/utils/UpdateApplier.d.ts +42 -0
  174. package/dist/utils/UpdateApplier.d.ts.map +1 -0
  175. package/dist/utils/UpdateApplier.js +207 -0
  176. package/dist/utils/UpdateApplier.js.map +1 -0
  177. package/dist/utils/UpdateDetector.d.ts +56 -0
  178. package/dist/utils/UpdateDetector.d.ts.map +1 -0
  179. package/dist/utils/UpdateDetector.js +164 -0
  180. package/dist/utils/UpdateDetector.js.map +1 -0
  181. package/dist/utils/banner.d.ts +28 -0
  182. package/dist/utils/banner.d.ts.map +1 -0
  183. package/dist/utils/banner.js +77 -0
  184. package/dist/utils/banner.js.map +1 -0
  185. package/dist/utils/banner.spec.d.ts +5 -0
  186. package/dist/utils/banner.spec.d.ts.map +1 -0
  187. package/dist/utils/banner.spec.js +253 -0
  188. package/dist/utils/banner.spec.js.map +1 -0
  189. package/dist/utils/complexity-analyzer.d.ts +60 -0
  190. package/dist/utils/complexity-analyzer.d.ts.map +1 -0
  191. package/dist/utils/complexity-analyzer.js +292 -0
  192. package/dist/utils/complexity-analyzer.js.map +1 -0
  193. package/dist/utils/confidence.d.ts +41 -0
  194. package/dist/utils/confidence.d.ts.map +1 -0
  195. package/dist/utils/confidence.js +101 -0
  196. package/dist/utils/confidence.js.map +1 -0
  197. package/dist/utils/datamodel.d.ts +41 -0
  198. package/dist/utils/datamodel.d.ts.map +1 -0
  199. package/dist/utils/datamodel.js +535 -0
  200. package/dist/utils/datamodel.js.map +1 -0
  201. package/dist/utils/dna-detector.d.ts +61 -0
  202. package/dist/utils/dna-detector.d.ts.map +1 -0
  203. package/dist/utils/dna-detector.js +354 -0
  204. package/dist/utils/dna-detector.js.map +1 -0
  205. package/dist/utils/dna-facts.d.ts +13 -0
  206. package/dist/utils/dna-facts.d.ts.map +1 -0
  207. package/dist/utils/dna-facts.js +109 -0
  208. package/dist/utils/dna-facts.js.map +1 -0
  209. package/dist/utils/excalidraw-renderer.d.ts +11 -71
  210. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  211. package/dist/utils/excalidraw-renderer.js +29 -162
  212. package/dist/utils/excalidraw-renderer.js.map +1 -1
  213. package/dist/utils/graph-renderer.d.ts +115 -0
  214. package/dist/utils/graph-renderer.d.ts.map +1 -0
  215. package/dist/utils/graph-renderer.js +216 -0
  216. package/dist/utils/graph-renderer.js.map +1 -0
  217. package/dist/utils/migration.d.ts +64 -0
  218. package/dist/utils/migration.d.ts.map +1 -0
  219. package/dist/utils/migration.js +183 -0
  220. package/dist/utils/migration.js.map +1 -0
  221. package/dist/utils/module-detector.d.ts +46 -0
  222. package/dist/utils/module-detector.d.ts.map +1 -0
  223. package/dist/utils/module-detector.js +348 -0
  224. package/dist/utils/module-detector.js.map +1 -0
  225. package/dist/utils/project-generator.d.ts.map +1 -1
  226. package/dist/utils/project-generator.js +273 -254
  227. package/dist/utils/project-generator.js.map +1 -1
  228. package/dist/utils/reverse-facts.d.ts +50 -0
  229. package/dist/utils/reverse-facts.d.ts.map +1 -0
  230. package/dist/utils/reverse-facts.js +291 -0
  231. package/dist/utils/reverse-facts.js.map +1 -0
  232. package/dist/utils/stack-bootstrap.js +371 -371
  233. package/dist/utils/static-analyzer.d.ts +29 -0
  234. package/dist/utils/static-analyzer.d.ts.map +1 -0
  235. package/dist/utils/static-analyzer.js +390 -0
  236. package/dist/utils/static-analyzer.js.map +1 -0
  237. package/dist/utils/version-compare.d.ts +27 -0
  238. package/dist/utils/version-compare.d.ts.map +1 -0
  239. package/dist/utils/version-compare.js +47 -0
  240. package/dist/utils/version-compare.js.map +1 -0
  241. package/package.json +8 -3
  242. package/templates/DARE-dag-example.yaml +280 -280
  243. package/templates/UPDATE-MANIFEST.json +48 -0
  244. package/templates/backend/node-nestjs/.env.example +9 -9
  245. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  246. package/templates/backend/node-nestjs/package.json +50 -50
  247. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  248. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  249. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  250. package/templates/backend/node-nestjs/src/main.ts +24 -24
  251. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  252. package/templates/backend/php-laravel/.env.example +22 -22
  253. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  254. package/templates/backend/php-laravel/composer.json +40 -40
  255. package/templates/backend/python-fastapi/.env.example +4 -4
  256. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  257. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  258. package/templates/backend/python-fastapi/main.py +35 -35
  259. package/templates/backend/python-fastapi/requirements.txt +13 -13
  260. package/templates/backend/rust-axum/.env.example +3 -3
  261. package/templates/backend/rust-axum/Cargo.toml +23 -23
  262. package/templates/backend/rust-axum/src/errors.rs +30 -30
  263. package/templates/backend/rust-axum/src/main.rs +32 -32
  264. package/templates/backend/rust-axum/src/routes.rs +6 -6
  265. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  266. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  267. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  268. package/templates/frontend/leptos-csr/index.html +11 -11
  269. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  270. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  271. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  272. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  273. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  274. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  275. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  276. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  277. package/templates/frontend/react/index.html +12 -12
  278. package/templates/frontend/react/package.json +35 -35
  279. package/templates/frontend/react/src/App.tsx +25 -25
  280. package/templates/frontend/react/src/main.tsx +9 -9
  281. package/templates/frontend/vue/package.json +32 -32
  282. package/templates/frontend/vue/src/App.vue +7 -7
  283. package/templates/frontend/vue/src/main.ts +10 -10
  284. package/templates/frontend/vue/src/router/index.ts +14 -14
  285. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  286. package/templates/hooks/pre-commit-dare-validate +24 -24
  287. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -0
  288. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +180 -36
  289. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -0
  290. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -0
  291. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  292. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -0
  293. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -0
  294. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -0
  295. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -0
  296. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -0
  297. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -0
  298. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -0
  299. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -0
  300. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -0
  301. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -0
  302. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
  303. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -0
  304. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -0
  305. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  306. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -0
  307. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -224
  308. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -0
  309. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -0
  310. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -0
  311. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -0
  312. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -0
  313. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -0
  314. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  315. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  316. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -100
  317. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
  318. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -78
  319. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
  320. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -110
  321. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  322. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -0
  323. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  324. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  325. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -0
  326. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -0
  327. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  328. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -0
  329. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -0
  330. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -0
  331. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -0
  332. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -0
  333. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -0
  334. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -0
  335. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -0
  336. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -0
  337. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
  338. package/templates/ide/claude/.claude/commands/dare-review.md +113 -0
  339. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  340. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  341. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  342. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  343. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -0
  344. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -0
  345. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -0
  346. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -0
  347. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -0
  348. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -0
  349. package/templates/ide/claude/.claude/settings.example.json +35 -35
  350. package/templates/ide/claude/CLAUDE.md +146 -146
  351. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  352. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  353. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -100
  354. package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
  355. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -41
  356. package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
  357. package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -142
  358. package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -0
  359. package/templates/ide/cursor/.cursor/commands/review-task.md +91 -0
  360. package/templates/ide/cursor/.cursor/commands/run-dag.md +110 -110
  361. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -0
  362. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -0
  363. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -0
  364. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  365. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -0
  366. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -0
  367. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -0
  368. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -0
  369. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -0
  370. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -0
  371. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -0
  372. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -0
  373. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -0
  374. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -0
  375. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -0
  376. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -0
  377. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -0
  378. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -0
  379. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  380. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  381. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  382. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  383. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -100
  384. package/templates/shared/docker-compose.yml +41 -41
  385. package/dist/__tests__/dag-runner/adapters.test.d.ts +0 -2
  386. package/dist/__tests__/dag-runner/adapters.test.d.ts.map +0 -1
  387. package/dist/__tests__/dag-runner/adapters.test.js +0 -134
  388. package/dist/__tests__/dag-runner/adapters.test.js.map +0 -1
  389. package/dist/dag-runner/adapters/antigravity.d.ts +0 -6
  390. package/dist/dag-runner/adapters/antigravity.d.ts.map +0 -1
  391. package/dist/dag-runner/adapters/antigravity.js +0 -54
  392. package/dist/dag-runner/adapters/antigravity.js.map +0 -1
  393. package/dist/dag-runner/adapters/claude.d.ts +0 -6
  394. package/dist/dag-runner/adapters/claude.d.ts.map +0 -1
  395. package/dist/dag-runner/adapters/claude.js +0 -48
  396. package/dist/dag-runner/adapters/claude.js.map +0 -1
  397. package/dist/dag-runner/adapters/cursor.d.ts +0 -6
  398. package/dist/dag-runner/adapters/cursor.d.ts.map +0 -1
  399. package/dist/dag-runner/adapters/cursor.js +0 -58
  400. package/dist/dag-runner/adapters/cursor.js.map +0 -1
  401. package/dist/dag-runner/adapters/index.d.ts +0 -46
  402. package/dist/dag-runner/adapters/index.d.ts.map +0 -1
  403. package/dist/dag-runner/adapters/index.js +0 -55
  404. package/dist/dag-runner/adapters/index.js.map +0 -1
  405. package/dist/dag-runner/utils/timeout.d.ts +0 -27
  406. package/dist/dag-runner/utils/timeout.d.ts.map +0 -1
  407. package/dist/dag-runner/utils/timeout.js +0 -55
  408. package/dist/dag-runner/utils/timeout.js.map +0 -1
@@ -0,0 +1,75 @@
1
+ # /dare-dna
2
+
3
+ Camada semântica da extração de DNA do projeto. Roda **depois** do comando `dare dna`, que já varreu
4
+ o código e extraiu os fatos de convenção. Sua função é **transformar fatos em regras acionáveis** —
5
+ o "como esse codebase faz as coisas" que uma nova feature deve respeitar.
6
+
7
+ ## Como usar
8
+
9
+ ```
10
+ /dare-dna # preenche o PROJECT-DNA.md gerado por `dare dna`
11
+ ```
12
+
13
+ > Pré-requisito: rodar `dare dna` antes (gera `DARE/PROJECT-DNA.md` e `DARE/dna-facts.json`).
14
+ > Se não existirem, instrua o usuário a rodar `dare dna` primeiro.
15
+
16
+ ## Quando usar
17
+
18
+ - Projeto **legado** que vai adotar o DARE para novas features, sem reescrever o existente.
19
+ - Acabou de rodar `dare dna` e o `PROJECT-DNA.md` tem seções `<!-- AGENT -->` em aberto.
20
+ - O objetivo é um **ruleset** que faça o agente seguir o padrão da casa, não o default genérico.
21
+
22
+ ## O que fazer
23
+
24
+ ### 1. Carregar os fatos (não re-varrer tudo)
25
+
26
+ - Leia `DARE/dna-facts.json` — fonte determinística (tooling, naming, camadas, testes, libs, commits).
27
+ - Abra **2-5 arquivos representativos por camada** (um controller, um service, um model, um teste) para
28
+ inferir os padrões que o CLI não detecta (tratamento de erro, validação, estilo de teste).
29
+
30
+ ### 2. Preencher `DARE/PROJECT-DNA.md`
31
+
32
+ Substitua cada bloco `<!-- AGENT: ... -->`:
33
+
34
+ - **Convenções de Nomenclatura** — confirme o estilo detectado e documente exceções (ex.: componentes
35
+ em PascalCase, utilitários em kebab).
36
+ - **Arquitetura & Camadas** — nomeie o padrão com confiança (MVC / Layered / Hexagonal) e escreva as
37
+ **regras de onde cada coisa mora** (ex.: "controllers só orquestram; regra de negócio vai em services;
38
+ acesso a dados só em repositories").
39
+ - **Padrões de Teste** — onde os testes ficam, naming, assertions reais (não `expect(true)`), uso de
40
+ mocks/fixtures.
41
+ - **Tratamento de Erros & Validação** — como o projeto trata erros (exceptions, Result/Either, try/catch)
42
+ e valida inputs. Dê **exemplos concretos** do código real.
43
+ - **Regras de Ouro do Projeto** — liste o que **SEMPRE** e o que **NUNCA** fazer neste codebase.
44
+ - **⚠️ Incertezas / Inconsistências** — convenções ambíguas/misturadas que o humano precisa decidir.
45
+
46
+ **Não toque** nos fatos determinísticos já preenchidos pelo CLI (tooling, tabela de naming, libs).
47
+
48
+ ### 3. Apresentar ao usuário
49
+
50
+ Resumo: arquitetura nomeada, principais regras de ouro, inconsistências encontradas. Reforce que o
51
+ `PROJECT-DNA.md` vira referência para `/dare-feature-design` e `/dare-execute` respeitarem o legado.
52
+
53
+ ## Regras de ouro
54
+
55
+ 1. **Descritivo, não aspiracional** — documente como o código É, não como deveria ser.
56
+ 2. **Exemplos reais** — cite arquivos/trechos do próprio projeto nas regras.
57
+ 3. **Sinalize inconsistência** — se o legado mistura padrões, diga isso em "⚠️ Incertezas", não invente um padrão único.
58
+ 4. **Não re-varra** — os fatos já estão em `dna-facts.json`.
59
+ 5. **Preserve o determinístico** — não reescreva tooling/naming/libs gerados pelo CLI.
60
+
61
+ ## Antipatterns
62
+
63
+ | AP | Antipattern | Por quê |
64
+ |---|---|---|
65
+ | AP-01 | Documentar o padrão "ideal" em vez do real | O agente vai gerar código fora do estilo do legado |
66
+ | AP-02 | Forçar um padrão único onde o legado é inconsistente | Esconde a realidade; melhor sinalizar a incerteza |
67
+ | AP-03 | Reescrever os fatos determinísticos do CLI | Quebra a fonte de verdade |
68
+ | AP-04 | Regras vagas ("siga boas práticas") | Inúteis — o valor está na regra específica do projeto |
69
+ | AP-05 | Ignorar os testes existentes ao descrever o estilo de teste | Nova feature nasce inconsistente |
70
+
71
+ $ARGUMENTS
72
+
73
+ ---
74
+
75
+ Skill MIT — parte do DARE Method. DNA do projeto (brownfield). Pareia com o comando `dare dna`.
@@ -0,0 +1,207 @@
1
+ # /dare-docker
2
+
3
+ Containerização DARE com Dockerfile e docker-compose seguros, performantes e idiomáticos. Multi-stage, usuário não-root, healthchecks, redes isoladas.
4
+
5
+ ## Como usar
6
+
7
+ ```
8
+ /dare-docker # detecta stack e gera Dockerfile + compose + .dockerignore
9
+ /dare-docker dockerfile # só Dockerfile
10
+ /dare-docker compose # só docker-compose.yml
11
+ /dare-docker review # audita Dockerfile/compose existente
12
+ ```
13
+
14
+ ## Padrões para Dockerfile
15
+
16
+ ### 1. Multi-stage build (obrigatório)
17
+
18
+ Separe build (compiladores) de runtime (artefato + libs mínimas).
19
+
20
+ ### 2. Imagens base
21
+
22
+ - Alpine ou distroless quando possível
23
+ - Tag explícita (`php:8.3-fpm-alpine`, nunca `latest`)
24
+ - Pin de versão
25
+
26
+ ### 3. Usuário não-root
27
+
28
+ ```dockerfile
29
+ RUN adduser -D -u 1000 appuser
30
+ USER appuser
31
+ ```
32
+
33
+ ### 4. Cache de camadas
34
+
35
+ Ordem: FROM → install deps → COPY deps lockfile → install deps → COPY src → build.
36
+
37
+ ### 5. Limpeza na mesma camada
38
+
39
+ ```dockerfile
40
+ RUN apt-get update && \
41
+ apt-get install -y --no-install-recommends pkg && \
42
+ apt-get clean && \
43
+ rm -rf /var/lib/apt/lists/*
44
+ ```
45
+
46
+ ## Padrões por stack
47
+
48
+ ### PHP/Laravel
49
+ ```dockerfile
50
+ FROM php:8.3-fpm-alpine
51
+ RUN docker-php-ext-install pdo_pgsql opcache bcmath
52
+ WORKDIR /var/www/html
53
+ COPY composer.json composer.lock ./
54
+ RUN composer install --no-dev --no-interaction --optimize-autoloader
55
+ COPY . .
56
+ USER www-data
57
+ EXPOSE 9000
58
+ CMD ["php-fpm"]
59
+ ```
60
+
61
+ ### Python/FastAPI
62
+ ```dockerfile
63
+ FROM python:3.11-slim
64
+ RUN useradd -m -u 1000 appuser
65
+ WORKDIR /app
66
+ COPY requirements.txt .
67
+ RUN pip install --no-cache-dir -r requirements.txt
68
+ COPY --chown=appuser:appuser . .
69
+ USER appuser
70
+ EXPOSE 8000
71
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
72
+ ```
73
+
74
+ ### Go
75
+ ```dockerfile
76
+ FROM golang:1.22-alpine AS builder
77
+ WORKDIR /app
78
+ COPY go.mod go.sum ./
79
+ RUN go mod download
80
+ COPY . .
81
+ RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /server ./cmd/server
82
+
83
+ FROM scratch
84
+ COPY --from=builder /server /server
85
+ EXPOSE 8080
86
+ USER 1000:1000
87
+ ENTRYPOINT ["/server"]
88
+ ```
89
+
90
+ ### Node/Vue (estático)
91
+ ```dockerfile
92
+ FROM node:20-alpine AS builder
93
+ WORKDIR /app
94
+ COPY package*.json ./
95
+ RUN npm ci
96
+ COPY . .
97
+ RUN npm run build
98
+
99
+ FROM nginx:alpine
100
+ COPY --from=builder /app/dist /usr/share/nginx/html
101
+ EXPOSE 80
102
+ ```
103
+
104
+ ### Rust
105
+ ```dockerfile
106
+ FROM rust:1.80-alpine AS builder
107
+ RUN apk add --no-cache musl-dev
108
+ WORKDIR /app
109
+ COPY Cargo.toml Cargo.lock ./
110
+ COPY src ./src
111
+ RUN cargo build --release
112
+
113
+ FROM alpine:3.20
114
+ RUN adduser -D -u 1000 appuser
115
+ COPY --from=builder /app/target/release/myapp /usr/local/bin/myapp
116
+ USER appuser
117
+ EXPOSE 8080
118
+ CMD ["myapp"]
119
+ ```
120
+
121
+ ## docker-compose.yml
122
+
123
+ ```yaml
124
+ services:
125
+ api:
126
+ build: .
127
+ ports: ["8080:8080"]
128
+ env_file: .env
129
+ depends_on:
130
+ postgres: { condition: service_healthy }
131
+ networks: [internal]
132
+
133
+ postgres:
134
+ image: postgres:16-alpine
135
+ environment:
136
+ POSTGRES_PASSWORD: ${DB_PASSWORD}
137
+ volumes:
138
+ - postgres_data:/var/lib/postgresql/data
139
+ healthcheck:
140
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
141
+ interval: 5s
142
+ retries: 5
143
+ networks: [internal]
144
+
145
+ volumes:
146
+ postgres_data:
147
+ networks:
148
+ internal:
149
+ ```
150
+
151
+ ## .dockerignore
152
+
153
+ ```
154
+ .git/
155
+ .github/
156
+ node_modules/
157
+ vendor/
158
+ target/
159
+ dist/
160
+ .env
161
+ .env.local
162
+ *.log
163
+ tests/
164
+ DARE/
165
+ README.md
166
+ docs/
167
+ ```
168
+
169
+ ## Checklist
170
+
171
+ | Critério | OK |
172
+ |---|---|
173
+ | Multi-stage build | [ ] |
174
+ | Usuário não-root no runtime | [ ] |
175
+ | Tag explícita (não `latest`) | [ ] |
176
+ | `.dockerignore` presente | [ ] |
177
+ | Healthcheck nos serviços DB/cache | [ ] |
178
+ | Volumes nomeados | [ ] |
179
+ | Sem senha hardcoded no compose | [ ] |
180
+ | Cache de camadas otimizado | [ ] |
181
+
182
+ ## Antipatterns
183
+
184
+ | AP | Antipattern |
185
+ |---|---|
186
+ | AP-01 | Rodar como root |
187
+ | AP-02 | Tag `latest` |
188
+ | AP-03 | `COPY . .` antes de install deps |
189
+ | AP-04 | Senha em compose |
190
+ | AP-05 | Mono-container (DB + app) |
191
+ | AP-06 | `version: '3'` em compose (deprecated) |
192
+ | AP-07 | Sem healthcheck no DB |
193
+ | AP-08 | Sem `.dockerignore` |
194
+
195
+ ## O que fazer
196
+
197
+ 1. Detectar stack (`composer.json`, `package.json`, `Cargo.toml`, etc.)
198
+ 2. Gerar Dockerfile usando o template correspondente
199
+ 3. Gerar `docker-compose.yml` com healthchecks
200
+ 4. Gerar `.dockerignore`
201
+ 5. Validar: `docker build .`, `docker compose config`, `docker compose up`
202
+
203
+ $ARGUMENTS
204
+
205
+ ---
206
+
207
+ Skill MIT — parte do DARE Method.
@@ -1,152 +1,152 @@
1
- # /dare-execute
2
-
3
- Executa uma task específica do `DARE/dare-dag.yaml` seguindo o Ralph Loop.
4
-
5
- ## Como usar
6
-
7
- ```
8
- /dare-execute task-001
9
- /dare-execute task-003 --force
10
- ```
11
-
12
- ## O que fazer
13
-
14
- ### 1. Leia `DARE/BLUEPRINT.md` — obrigatório
15
-
16
- Antes de qualquer implementação. Foque em:
17
- - Stack técnica e versões (seção 2)
18
- - Validation gates da stack (seção 7)
19
- - Controles de segurança mapeados (seção 8)
20
-
21
- ### 2. Leia a task em `DARE/dare-dag.yaml` e `DARE/EXECUTION/task-<id>.md`
22
-
23
- - `subtask_prompt` — instrução self-contained da task
24
- - `complexity` — LOW/MED/HIGH (define rigor do Ralph Loop)
25
- - `depends_on` — verifique status antes de executar
26
- - Spec em `EXECUTION/task-<id>.md` — objetivo, arquivos, validation gates
27
-
28
- ### 3. Verifique dependências
29
-
30
- - Todas as tasks em `depends_on` devem ter status `DONE` em `DARE/TASKS.md`
31
- - Se alguma estiver `PENDING` → alerte o usuário (a menos que `--force`)
32
- - Se alguma estiver `FAILED` → recuse executar e informe
33
-
34
- ### 4. Implemente a task
35
-
36
- - Siga padrões do `CLAUDE.md` e da spec em `EXECUTION/task-<id>.md`
37
- - Crie/modifique arquivos conforme seção "Arquivos a criar/modificar"
38
- - Implemente testes com assertions reais (não `assertTrue(true)`)
39
- - Aplique os controles de segurança listados na seção 5 da spec
40
-
41
- ### 5. Execute o Ralph Loop (obrigatório antes de DONE)
42
-
43
- Se qualquer etapa falhar, leia o erro, corrija e reexecute. **Não marque DONE sem todos os gates verdes.**
44
-
45
- #### 5.1 Build
46
- ```bash
47
- # Rust: cargo build
48
- # Node: npm run build
49
- # Python: python -m py_compile **/*.py (ou mypy para tipo)
50
- # PHP: php artisan config:cache
51
- # Go: go build ./...
52
- ```
53
-
54
- #### 5.2 Test
55
- ```bash
56
- # Rust: cargo test --workspace
57
- # Node: npm test
58
- # Python: pytest
59
- # PHP: php artisan test
60
- # Go: go test ./...
61
- ```
62
-
63
- #### 5.3 Lint
64
- ```bash
65
- # Rust: cargo clippy -- -D warnings
66
- # Node: npx eslint src --max-warnings=0
67
- # Python: ruff check .
68
- # PHP: ./vendor/bin/phpstan analyse
69
- # Go: golangci-lint run
70
- ```
71
-
72
- #### 5.4 Auditoria de Dependências
73
-
74
- **Execute SEMPRE que esta task adicionar ou atualizar dependências externas.**
75
-
76
- ```bash
77
- # Node.js / npm
78
- npm audit --audit-level=high
79
- # Se houver vulnerabilidades corrigíveis:
80
- npm audit fix
81
-
82
- # Rust / Cargo
83
- cargo audit
84
- # Para auto-fix (bumpa versões compatíveis):
85
- cargo update # depois verificar Cargo.lock
86
-
87
- # Python / pip
88
- pip-audit
89
- # Para instalar: pip install pip-audit
90
- # Fix: atualizar versão no requirements.txt / pyproject.toml
91
-
92
- # PHP / Composer
93
- composer audit
94
- # Fix: composer update --with-all-dependencies [pacote]
95
- ```
96
-
97
- > **Gate obrigatório:** a task só pode ser marcada como DONE se não houver CVE de nível HIGH ou CRITICAL nas dependências do projeto. CVEs de nível MODERATE devem ser documentados com justificativa se não puderem ser corrigidos imediatamente.
98
-
99
- #### 5.5 Verificação de Secrets (para tasks que mexem em configuração ou CI)
100
-
101
- ```bash
102
- # Verificar se não há secrets hardcoded antes de commitar
103
- # Procurar padrões comuns:
104
- grep -rn "password\s*=\s*['\"][^'\"]" src/ || true
105
- grep -rn "api_key\s*=\s*['\"][^'\"]" src/ || true
106
- grep -rn "secret\s*=\s*['\"][^'\"]" src/ || true
107
- # Use git-secrets ou trufflehog se disponível no projeto
108
- ```
109
-
110
- ### 6. Atualize `DARE/TASKS.md`
111
-
112
- Mude o status para `DONE` e adicione duração se souber.
113
-
114
- ### 7. Crie artifact em `DARE/EXECUTION/task-<id>.md`
115
-
116
- ```markdown
117
- # Task <id>: <título>
118
-
119
- ## Status: ✅ DONE
120
- ## Duração: <estimativa>
121
-
122
- ## Arquivos criados/modificados
123
- - path/to/file1.ts
124
- - path/to/file2.test.ts
125
-
126
- ## Testes
127
- - ✅ test_should_x_when_y
128
- - ✅ test_should_return_401_when_unauthenticated
129
-
130
- ## Ralph Loop
131
- - ✅ Build
132
- - ✅ Test
133
- - ✅ Lint
134
- - ✅ Auditoria de deps (se aplicável)
135
-
136
- ## Segurança
137
- - ✅ Input validation aplicada
138
- - ✅ Autenticação/autorização verificada
139
- - ✅ Sem secrets em código
140
- ```
141
-
142
- ### 8. Sugira a próxima task disponível
143
-
144
- Liste as tasks com `depends_on` satisfeito e status `PENDING`. Indique qual rodar com `/dare-execute <id>`.
145
-
146
- ## Modo Paralelo
147
-
148
- ```bash
149
- dare execute --parallel --runner claude
150
- ```
151
-
152
- $ARGUMENTS
1
+ # /dare-execute
2
+
3
+ Executa uma task específica do `DARE/dare-dag.yaml` seguindo o Ralph Loop.
4
+
5
+ ## Como usar
6
+
7
+ ```
8
+ /dare-execute task-001
9
+ /dare-execute task-003 --force
10
+ ```
11
+
12
+ ## O que fazer
13
+
14
+ ### 1. Leia `DARE/BLUEPRINT.md` — obrigatório
15
+
16
+ Antes de qualquer implementação. Foque em:
17
+ - Stack técnica e versões (seção 2)
18
+ - Validation gates da stack (seção 7)
19
+ - Controles de segurança mapeados (seção 8)
20
+
21
+ ### 2. Leia a task em `DARE/dare-dag.yaml` e `DARE/EXECUTION/task-<id>.md`
22
+
23
+ - `subtask_prompt` — instrução self-contained da task
24
+ - `complexity` — LOW/MED/HIGH (define rigor do Ralph Loop)
25
+ - `depends_on` — verifique status antes de executar
26
+ - Spec em `EXECUTION/task-<id>.md` — objetivo, arquivos, validation gates
27
+
28
+ ### 3. Verifique dependências
29
+
30
+ - Todas as tasks em `depends_on` devem ter status `DONE` em `DARE/TASKS.md`
31
+ - Se alguma estiver `PENDING` → alerte o usuário (a menos que `--force`)
32
+ - Se alguma estiver `FAILED` → recuse executar e informe
33
+
34
+ ### 4. Implemente a task
35
+
36
+ - Siga padrões do `CLAUDE.md` e da spec em `EXECUTION/task-<id>.md`
37
+ - Crie/modifique arquivos conforme seção "Arquivos a criar/modificar"
38
+ - Implemente testes com assertions reais (não `assertTrue(true)`)
39
+ - Aplique os controles de segurança listados na seção 5 da spec
40
+
41
+ ### 5. Execute o Ralph Loop (obrigatório antes de DONE)
42
+
43
+ Se qualquer etapa falhar, leia o erro, corrija e reexecute. **Não marque DONE sem todos os gates verdes.**
44
+
45
+ #### 5.1 Build
46
+ ```bash
47
+ # Rust: cargo build
48
+ # Node: npm run build
49
+ # Python: python -m py_compile **/*.py (ou mypy para tipo)
50
+ # PHP: php artisan config:cache
51
+ # Go: go build ./...
52
+ ```
53
+
54
+ #### 5.2 Test
55
+ ```bash
56
+ # Rust: cargo test --workspace
57
+ # Node: npm test
58
+ # Python: pytest
59
+ # PHP: php artisan test
60
+ # Go: go test ./...
61
+ ```
62
+
63
+ #### 5.3 Lint
64
+ ```bash
65
+ # Rust: cargo clippy -- -D warnings
66
+ # Node: npx eslint src --max-warnings=0
67
+ # Python: ruff check .
68
+ # PHP: ./vendor/bin/phpstan analyse
69
+ # Go: golangci-lint run
70
+ ```
71
+
72
+ #### 5.4 Auditoria de Dependências
73
+
74
+ **Execute SEMPRE que esta task adicionar ou atualizar dependências externas.**
75
+
76
+ ```bash
77
+ # Node.js / npm
78
+ npm audit --audit-level=high
79
+ # Se houver vulnerabilidades corrigíveis:
80
+ npm audit fix
81
+
82
+ # Rust / Cargo
83
+ cargo audit
84
+ # Para auto-fix (bumpa versões compatíveis):
85
+ cargo update # depois verificar Cargo.lock
86
+
87
+ # Python / pip
88
+ pip-audit
89
+ # Para instalar: pip install pip-audit
90
+ # Fix: atualizar versão no requirements.txt / pyproject.toml
91
+
92
+ # PHP / Composer
93
+ composer audit
94
+ # Fix: composer update --with-all-dependencies [pacote]
95
+ ```
96
+
97
+ > **Gate obrigatório:** a task só pode ser marcada como DONE se não houver CVE de nível HIGH ou CRITICAL nas dependências do projeto. CVEs de nível MODERATE devem ser documentados com justificativa se não puderem ser corrigidos imediatamente.
98
+
99
+ #### 5.5 Verificação de Secrets (para tasks que mexem em configuração ou CI)
100
+
101
+ ```bash
102
+ # Verificar se não há secrets hardcoded antes de commitar
103
+ # Procurar padrões comuns:
104
+ grep -rn "password\s*=\s*['\"][^'\"]" src/ || true
105
+ grep -rn "api_key\s*=\s*['\"][^'\"]" src/ || true
106
+ grep -rn "secret\s*=\s*['\"][^'\"]" src/ || true
107
+ # Use git-secrets ou trufflehog se disponível no projeto
108
+ ```
109
+
110
+ ### 6. Atualize `DARE/TASKS.md`
111
+
112
+ Mude o status para `DONE` e adicione duração se souber.
113
+
114
+ ### 7. Crie artifact em `DARE/EXECUTION/task-<id>.md`
115
+
116
+ ```markdown
117
+ # Task <id>: <título>
118
+
119
+ ## Status: ✅ DONE
120
+ ## Duração: <estimativa>
121
+
122
+ ## Arquivos criados/modificados
123
+ - path/to/file1.ts
124
+ - path/to/file2.test.ts
125
+
126
+ ## Testes
127
+ - ✅ test_should_x_when_y
128
+ - ✅ test_should_return_401_when_unauthenticated
129
+
130
+ ## Ralph Loop
131
+ - ✅ Build
132
+ - ✅ Test
133
+ - ✅ Lint
134
+ - ✅ Auditoria de deps (se aplicável)
135
+
136
+ ## Segurança
137
+ - ✅ Input validation aplicada
138
+ - ✅ Autenticação/autorização verificada
139
+ - ✅ Sem secrets em código
140
+ ```
141
+
142
+ ### 8. Sugira a próxima task disponível
143
+
144
+ Liste as tasks com `depends_on` satisfeito e status `PENDING`. Indique qual rodar com `/dare-execute <id>`.
145
+
146
+ ## Modo Paralelo
147
+
148
+ ```bash
149
+ dare execute --parallel --runner claude
150
+ ```
151
+
152
+ $ARGUMENTS