@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
@@ -122,34 +122,90 @@ Crie um documento `DARE/BLUEPRINT.md` com a seguinte estrutura:
122
122
 
123
123
  ## Estrutura de Diretórios
124
124
 
125
+ > Mantenha esta seção **stack-agnóstica**. Liste os agrupamentos lógicos
126
+ > (domínio, infraestrutura, interfaces, testes, migrations) e use a
127
+ > nomenclatura **idiomática da stack escolhida** no `dare init`. Os exemplos
128
+ > abaixo cobrem as 5 stacks suportadas — use **apenas o bloco da stack do
129
+ > projeto**, não os 5 juntos.
130
+
131
+ <details>
132
+ <summary>Exemplo — Node.js / NestJS</summary>
133
+
134
+ ```
135
+ projeto/
136
+ ├── src/
137
+ │ ├── auth/
138
+ │ │ ├── auth.controller.ts
139
+ │ │ ├── auth.service.ts
140
+ │ │ ├── auth.module.ts
141
+ │ │ └── dto/{register,login}.dto.ts
142
+ │ ├── users/{users.entity.ts,users.service.ts}
143
+ │ └── main.ts
144
+ ├── migrations/{001_users.ts,002_refresh_tokens.ts}
145
+ └── test/auth.e2e-spec.ts
146
+ ```
147
+ </details>
148
+
149
+ <details>
150
+ <summary>Exemplo — Rust / Axum</summary>
151
+
152
+ ```
153
+ projeto/
154
+ ├── src/
155
+ │ ├── domain/{user.rs,refresh_token.rs}
156
+ │ ├── handlers/{register.rs,login.rs,refresh.rs,logout.rs}
157
+ │ ├── middleware/jwt.rs
158
+ │ └── main.rs
159
+ ├── migrations/{001_users.sql,002_refresh_tokens.sql}
160
+ └── tests/auth_integration.rs
161
+ ```
162
+ </details>
163
+
164
+ <details>
165
+ <summary>Exemplo — Python / FastAPI</summary>
166
+
125
167
  ```
126
168
  projeto/
127
169
  ├── app/
128
- │ ├── Models/
129
- ├── User.php
130
- │ └── RefreshToken.php
131
- │ ├── Http/
132
- │ ├── Controllers/
133
- │ │ │ └── AuthController.php
134
- │ │ ├── Requests/
135
- │ │ │ ├── RegisterRequest.php
136
- │ │ │ └── LoginRequest.php
137
- │ │ └── Resources/
138
- │ │ └── UserResource.php
139
- │ ├── Services/
140
- │ │ └── AuthService.php
141
- │ └── Exceptions/
142
- │ └── AuthException.php
143
- ├── database/
144
- │ └── migrations/
145
- │ ├── create_users_table.php
146
- │ └── create_refresh_tokens_table.php
147
- ├── routes/
148
- │ └── api.php
149
- └── tests/
150
- └── Feature/
151
- └── AuthTest.php
170
+ │ ├── routers/auth.py
171
+ │ ├── models/{user.py,refresh_token.py}
172
+ ├── schemas/{register.py,login.py}
173
+ │ ├── services/auth.py
174
+ └── main.py
175
+ ├── alembic/versions/{001_users.py,002_refresh_tokens.py}
176
+ └── tests/test_auth.py
152
177
  ```
178
+ </details>
179
+
180
+ <details>
181
+ <summary>Exemplo — PHP / Laravel</summary>
182
+
183
+ ```
184
+ projeto/
185
+ ├── app/Http/Controllers/AuthController.php
186
+ ├── app/Http/Requests/{RegisterRequest,LoginRequest}.php
187
+ ├── app/Models/{User,RefreshToken}.php
188
+ ├── app/Services/AuthService.php
189
+ ├── database/migrations/{create_users,create_refresh_tokens}_table.php
190
+ ├── routes/api.php
191
+ └── tests/Feature/AuthTest.php
192
+ ```
193
+ </details>
194
+
195
+ <details>
196
+ <summary>Exemplo — Go / Gin</summary>
197
+
198
+ ```
199
+ projeto/
200
+ ├── cmd/server/main.go
201
+ ├── internal/
202
+ │ ├── handlers/{register,login,refresh,logout}.go
203
+ │ ├── models/{user,refresh_token}.go
204
+ │ └── middleware/jwt.go
205
+ ├── migrations/{001_users.sql,002_refresh_tokens.sql}
206
+ └── handlers_test.go
207
+ ```
208
+ </details>
153
209
 
154
210
  ## Plano de Execução
155
211
 
@@ -175,26 +231,71 @@ projeto/
175
231
 
176
232
  ## Comandos de Setup
177
233
 
234
+ > Liste **somente os comandos da stack do projeto** (definida em
235
+ > `dare init` / `dare.config.json#backend`). Não inclua todos os blocos
236
+ > abaixo — use o que casa com a stack escolhida.
237
+
238
+ <details>
239
+ <summary>Node.js / NestJS</summary>
240
+
178
241
  ```bash
179
- # Instalar dependências
180
- composer install
242
+ npm install
243
+ cp .env.example .env
244
+ npm run migration:run
245
+ npm test
246
+ npm run start:dev
247
+ ```
248
+ </details>
249
+
250
+ <details>
251
+ <summary>Rust / Axum</summary>
181
252
 
182
- # Criar arquivo .env
253
+ ```bash
254
+ cargo build
183
255
  cp .env.example .env
184
- php artisan key:generate
256
+ sqlx migrate run
257
+ cargo test
258
+ cargo run
259
+ ```
260
+ </details>
185
261
 
186
- # Rodar migrations
187
- php artisan migrate
262
+ <details>
263
+ <summary>Python / FastAPI</summary>
188
264
 
189
- # Gerar JWT secret
190
- php artisan jwt:secret
265
+ ```bash
266
+ python -m venv .venv && source .venv/bin/activate
267
+ pip install -r requirements.txt
268
+ cp .env.example .env
269
+ alembic upgrade head
270
+ pytest
271
+ uvicorn app.main:app --reload
272
+ ```
273
+ </details>
191
274
 
192
- # Rodar testes
193
- php artisan test
275
+ <details>
276
+ <summary>PHP / Laravel</summary>
194
277
 
195
- # Iniciar servidor
278
+ ```bash
279
+ composer install
280
+ cp .env.example .env
281
+ php artisan key:generate
282
+ php artisan migrate
283
+ php artisan test
196
284
  php artisan serve
197
285
  ```
286
+ </details>
287
+
288
+ <details>
289
+ <summary>Go / Gin</summary>
290
+
291
+ ```bash
292
+ go mod download
293
+ cp .env.example .env
294
+ migrate -path ./migrations -database "$DATABASE_URL" up
295
+ go test ./...
296
+ go run ./cmd/server
297
+ ```
298
+ </details>
198
299
 
199
300
  ## Próximas Etapas
200
301
  1. Revisar e aprovar este Blueprint
@@ -202,7 +303,50 @@ php artisan serve
202
303
  3. Continuar com o Método DARE
203
304
  ```
204
305
 
205
- ### Passo 5: Pedir Aprovação
306
+ ### Passo 5: Aplicar ANTI-STUB CONTRACT (regra inegociável)
307
+
308
+ > **Por que existe esta regra:** a skill `dare-tasks` que vem depois usa este Blueprint como **única fonte de verdade**. Se um endpoint, função ou regra ficar genérico aqui, o agente que implementar a task **será forçado a inventar** — e vai produzir mocks, stubs e esqueletos para "preencher o vazio". Detalhe agora.
309
+ >
310
+ > Tasks que produzem mock/stub/skeleton **falham** no `dare review` (v2.17+) e bloqueiam o `dare execute --complete`.
311
+
312
+ Para **cada** endpoint, função pública, evento ou job declarado no Blueprint, especifique de forma **executável**:
313
+
314
+ **Endpoints HTTP/RPC:**
315
+ - Assinatura completa (método, path, headers obrigatórios, content-type)
316
+ - Request schema (todos os campos com tipo, restrições, opcionalidade)
317
+ - Response schema **por status code** (2xx, 4xx, 5xx — não só "200 OK")
318
+ - Validações server-side (lista exaustiva: `email único`, `senha ≥ 8 chars + maiúscula + dígito`)
319
+ - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
320
+ - Side effects (tabelas/filas/caches/emails tocados, em ordem)
321
+ - Exemplo concreto (payload real, response real — não placeholder)
322
+
323
+ **Funções de domínio / services:**
324
+ - Assinatura tipada (`fn name(args: Types) -> ReturnType`)
325
+ - Pré-condições e pós-condições verificáveis
326
+ - Estados de erro com tipo de exceção/Result esperado
327
+ - Comportamento em concorrência (idempotência, locking, retry)
328
+
329
+ **Jobs / event handlers / workers:**
330
+ - Trigger (evento/cron/fila — nome canônico)
331
+ - Payload schema tipado
332
+ - Retry policy (backoff, max attempts, DLQ)
333
+ - Idempotência (chave + estratégia)
334
+
335
+ **Modelos de dados:**
336
+ - Cada campo com tipo, nullable, default, constraints (unique, fk, check), índices
337
+ - Triggers ou hooks (soft-delete, audit, encryption-at-rest)
338
+
339
+ **Critério "Blueprint detalhado o suficiente"** (auto-validação antes de salvar):
340
+
341
+ - [ ] Para cada endpoint, um humano não-familiarizado consegue escrever request/response sem perguntar nada?
342
+ - [ ] Para cada função pública, está claro **o que retorna** em todos os caminhos (sucesso + erros enumerados)?
343
+ - [ ] Edge cases foram **enumerados** ou só listados como "tratar edge cases"?
344
+ - [ ] Cada validação tem uma regra concreta (não só "validar email")?
345
+ - [ ] Cada decisão arquitetural tem **justificativa** (não só "escolhemos X")?
346
+
347
+ **Anti-padrão a evitar:** seções como _"implementar autenticação"_ ou _"validar dados"_ — isso vira stub. Especifique algoritmo, campos, regras.
348
+
349
+ ### Passo 6: Pedir Aprovação
206
350
  Após gerar o Blueprint, peça ao usuário:
207
351
  - Revisar a arquitetura
208
352
  - Aprovar endpoints e modelos
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: dare-dag-build
3
+ description: Regenera APENAS o DARE/dare-dag.yaml a partir do DARE/BLUEPRINT.md existente, sem refazer o blueprint nem as specs. Use quando o BLUEPRINT mudou pouco mas o grafo precisa refletir o novo estado, ou quando você quer experimentar uma decomposição diferente.
4
+ ---
5
+
6
+ # DARE DAG Build Skill
7
+
8
+ Você é o construtor de grafos da fase EXECUTE do método DARE no Antigravity. Esta skill **regenera APENAS** o `DARE/dare-dag.yaml` — não refaz o BLUEPRINT, não refaz as specs, não roda nada. Apenas reconstrói o grafo de tasks a partir do estado atual do BLUEPRINT.
9
+
10
+ > Se você precisa **executar** o grafo, use `dare-dag-run`.
11
+ > Se você precisa **visualizar** o grafo, use `dare-dag-viz`.
12
+ > Se você precisa **fazer tudo de uma vez** (build + run), use `dare-dag-runner`.
13
+
14
+ ## Quando usar esta skill
15
+
16
+ - O BLUEPRINT foi ajustado e o grafo precisa refletir as mudanças
17
+ - Você quer experimentar uma decomposição diferente sem refazer o blueprint
18
+ - O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
19
+ - Precisa adicionar/remover/reordenar tasks no grafo
20
+ - A complexidade ou as dependências de tasks mudaram
21
+
22
+ ## Pré-requisitos
23
+
24
+ - `DARE/BLUEPRINT.md` existe e está aprovado
25
+ - (Opcional) `DARE/EXECUTION/task-*.md` específicas — serão preservadas se não forem mencionadas
26
+
27
+ ## Como usar
28
+
29
+ ### Passo 1 — Ler `DARE/BLUEPRINT.md`
30
+
31
+ Obrigatório. Se faltar, peça `dare-blueprint` antes.
32
+
33
+ ### Passo 2 — Ler `DARE/dare-dag.yaml` atual (se existir)
34
+
35
+ Para preservar `id`s já em uso e não confundir o usuário com renomeações desnecessárias.
36
+
37
+ ### Passo 3 — Gerar o novo `dare-dag.yaml`
38
+
39
+ Schema canônico:
40
+
41
+ ```yaml
42
+ title: "<Nome do Projeto> - Development Tasks"
43
+ version: "1.0.0"
44
+
45
+ limits:
46
+ parent_context_chars: 2000
47
+ task_output_chars: 4000
48
+ timeout_seconds: 600
49
+
50
+ models:
51
+ cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
52
+ claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
53
+ antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
54
+
55
+ tasks:
56
+ - id: task-001
57
+ title: "..."
58
+ depends_on: []
59
+ complexity: LOW
60
+ spec_file: EXECUTION/task-001.md
61
+ subtask_prompt: |
62
+ <self-contained>
63
+ ```
64
+
65
+ **Regras inegociáveis:**
66
+
67
+ - `id` em kebab-case e único
68
+ - `depends_on` mínimo — só quando filha *literalmente* precisa do output do pai
69
+ - `subtask_prompt` self-contained (o subagente recebe apenas isso + 2000 chars dos pais)
70
+ - Pelo menos **2 tasks no rank 0** (paralelismo desde o início)
71
+ - Cadeia linear é antipattern — quebre dependências sempre que possível
72
+ - `complexity` honesta — não inflar nem deflar
73
+
74
+ ### Passo 4 — ANTI-STUB CONTRACT (inegociável)
75
+
76
+ Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **O comando `dare-review` detecta isso e marca a task como FAILED.**
77
+
78
+ Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender:
79
+
80
+ **O `subtask_prompt` precisa ser auto-suficiente.** Inclua:
81
+ - Caminho exato dos arquivos a criar/modificar
82
+ - Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
83
+ - Schema de request/response com tipos
84
+ - Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
85
+ - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
86
+ - Lista de testes esperados com nome + comportamento
87
+
88
+ **A `spec_file` (`EXECUTION/task-<id>.md`) precisa ter Definition of Done anti-stub:**
89
+
90
+ ```markdown
91
+ ## Definition of Done (ANTI-STUB)
92
+
93
+ - [ ] Nenhum TODO, FIXME, XXX ou HACK em arquivos modificados
94
+ - [ ] Nenhuma função vazia (fn x() {}, def x(): pass, function x() {})
95
+ - [ ] Nenhum throw new Error('not implemented'), unimplemented!(), todo!(), NotImplementedError
96
+ - [ ] Nenhum return null/undefined/{} como única statement de função pública
97
+ - [ ] Mocks SOMENTE em *.test.*, *.spec.*, __tests__/, tests/, spec/ — NUNCA em código de produção
98
+ - [ ] Todos os endpoints retornam dados reais (não hardcoded)
99
+ - [ ] Cada validação produz erro real com status code correto (testado)
100
+ - [ ] Cada edge case tem teste demonstrando comportamento
101
+ ```
102
+
103
+ **Sinais de spec rasa (auto-validar antes de salvar):**
104
+
105
+ - ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
106
+ - ❌ "Tratar erros adequadamente" — quais erros? como? que código?
107
+ - ❌ "Adicionar validações" — quais regras?
108
+ - ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
109
+
110
+ ### Passo 5 — Validar consistência com `EXECUTION/task-*.md`
111
+
112
+ Se uma spec já existe em `DARE/EXECUTION/task-<id>.md`:
113
+ - Mantenha o mesmo `id` no YAML
114
+ - Aponte `spec_file: EXECUTION/task-<id>.md`
115
+ - Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o `TASKS.md`
116
+
117
+ Se uma task nova entrou no YAML mas não tem spec:
118
+ - Crie a spec correspondente em `EXECUTION/task-<id>.md`
119
+
120
+ Se uma task saiu do YAML mas a spec ficou:
121
+ - Pergunte ao usuário: arquivar (mover para `EXECUTION/_archived/`) ou apagar?
122
+
123
+ ### Passo 6 — Validar grafo
124
+
125
+ - Sem ciclos (DAG = Directed Acyclic Graph)
126
+ - Todos os `depends_on` apontam para `id`s existentes
127
+ - `id`s únicos
128
+ - Pelo menos 2 tasks no rank 0
129
+
130
+ ### Passo 7 — Atualizar `DARE/TASKS.md`
131
+
132
+ Reflita o novo grafo na tabela master.
133
+
134
+ ### Passo 8 — Mensagem ao usuário
135
+
136
+ > `dare-dag.yaml` regenerado:
137
+ > - Total de tasks: N
138
+ > - Ranks paralelos: N
139
+ > - Adicionadas: [...]
140
+ > - Removidas: [...]
141
+ > - Modificadas: [...]
142
+ >
143
+ > Revise e aprove. Para executar: invoque a skill `dare-dag-run`.
144
+
145
+ ## Quando NÃO usar esta skill
146
+
147
+ - Se você nunca rodou `dare-blueprint` antes — use `dare-blueprint` primeiro
148
+ - Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
149
+ - Se você só quer executar o grafo já aprovado — use `dare-dag-run`
150
+ - Se você quer build + run num único passo — use `dare-dag-runner`
151
+
152
+ ## Licença
153
+
154
+ Esta skill é parte do DARE Method e está sob licença MIT (D-001).
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: dare-dag-run
3
+ description: Executa o grafo de tasks definido em DARE/dare-dag.yaml usando Antigravity como executor e o CLI dare como orquestrador. Sem API keys — usa o plano nativo da IDE. O canvas ao vivo fica em DARE/.canvas.md.
4
+ ---
5
+
6
+ # DARE DAG Run Skill
7
+
8
+ Você é o executor da fase EXECUTE do método DARE no Antigravity. Esta skill **executa APENAS** o grafo que já foi construído — não regenera o `dare-dag.yaml`, não modifica o BLUEPRINT, não cria specs novas. Apenas roda as tasks na ordem topológica correta.
9
+
10
+ > Se você precisa **(re)construir** o grafo, use `dare-dag-build`.
11
+ > Se você precisa **visualizar** o grafo, use `dare-dag-viz`.
12
+ > Se você precisa **fazer tudo** (build + run num passo), use `dare-dag-runner`.
13
+
14
+ > **Sem API keys.** Você (Antigravity) usa o plano nativo da IDE. O CLI `dare` apenas coordena estado, monta prompts e atualiza o canvas.
15
+
16
+ ## Quando usar esta skill
17
+
18
+ - `DARE/dare-dag.yaml` está aprovado e pronto
19
+ - As specs em `DARE/EXECUTION/task-<id>.md` estão geradas
20
+ - É hora de implementar as tasks na ordem do grafo
21
+ - O usuário aprovou os ANTI-STUB contracts
22
+
23
+ ## Pré-requisitos
24
+
25
+ - `DARE/dare-dag.yaml` existe e foi aprovado pelo usuário
26
+ - Specs em `DARE/EXECUTION/task-<id>.md` geradas (se não, use `dare-dag-build`)
27
+ - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
28
+
29
+ ## Como usar
30
+
31
+ ```
32
+ Invoque a skill com:
33
+ - (sem args) — executa todas as ready do próximo rank
34
+ - --task task-003 — executa só uma task específica
35
+ ```
36
+
37
+ ### Passo 1 — Validar pré-condições
38
+
39
+ - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente o usuário a invocar `dare-blueprint` ou `dare-dag-build`
40
+ - Leia o YAML e verifique: sem ciclos, ids únicos, ranks paralelizáveis
41
+ - Liste rapidamente para o usuário: total de tasks, ranks, próximas ready
42
+
43
+ ### Passo 2 — Pegar próximas tasks
44
+
45
+ ```bash
46
+ dare execute --next
47
+ ```
48
+
49
+ O CLI imprime as tasks **ready** do rank atual com o prompt completo (snippets de até 2000 chars dos outputs dos pais já costurados). Use esses prompts diretamente — não reescreva.
50
+
51
+ ### Passo 3 — Sugerir abrir o canvas
52
+
53
+ Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba do Antigravity. Esse é o feedback visual ao vivo da execução.
54
+
55
+ ### Passo 4 — Executar cada task
56
+
57
+ Para cada task ready:
58
+
59
+ 1. Leia `spec_file` se houver (`DARE/EXECUTION/task-<id>.md`)
60
+ 2. Implemente conforme o `subtask_prompt` — **não invente, não use mock fora de tests, sem TODOs**
61
+ 3. Rode o Ralph Loop completo: build → test → lint
62
+ 4. Registre o resultado no CLI:
63
+
64
+ ```bash
65
+ # Sucesso
66
+ dare execute --complete task-001 --output "Resumo curto + arquivos criados/modificados (paths)"
67
+
68
+ # Falha
69
+ dare execute --fail task-002 --reason "Mensagem clara da falha (compilação? teste? lint?)"
70
+ ```
71
+
72
+ ### Passo 5 — Avançar de rank
73
+
74
+ ```bash
75
+ dare execute --next
76
+ ```
77
+
78
+ - Se aparecer `✅ All tasks resolved`, todas terminaram. Reporte o resumo.
79
+ - Caso contrário, continue executando o próximo rank.
80
+
81
+ ### Passo 6 — Pós-execução
82
+
83
+ ```bash
84
+ dare execute --status
85
+ ```
86
+
87
+ Mostra snapshot do canvas + sumário (X DONE, Y FAILED, Z SKIPPED).
88
+
89
+ Para retentar tasks FAILED:
90
+
91
+ ```bash
92
+ dare execute --reset task-002
93
+ dare execute --next
94
+ ```
95
+
96
+ ## Comandos do orquestrador `dare`
97
+
98
+ | Comando | Função |
99
+ |---------|--------|
100
+ | `dare execute --next` | Próximas tasks ready com prompts compostos |
101
+ | `dare execute --complete <id> --output "..."` | Marca DONE |
102
+ | `dare execute --fail <id> --reason "..."` | Marca FAILED + cascade-skip |
103
+ | `dare execute --reset <id>` | Volta para PENDING |
104
+ | `dare execute --status` | Snapshot do canvas + sumário |
105
+
106
+ ## Erros comuns
107
+
108
+ | Sintoma | Causa | Correção |
109
+ |---------|-------|----------|
110
+ | `dare-dag.yaml not found` | Não foi gerado | Invoque `dare-blueprint` ou `dare-dag-build` |
111
+ | Cascata de SKIPPED | Pai falhou | Corrija pai → `dare execute --reset` → `--next` |
112
+ | Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
113
+ | Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `dare-dag-build` |
114
+
115
+ ## Referências
116
+
117
+ - Schema: `DARE/dare-dag.yaml`
118
+ - Canvas: `DARE/.canvas.md`
119
+ - Specs: `DARE/EXECUTION/task-*.md`
120
+ - Status: `DARE/TASKS.md`
121
+
122
+ ## Quando NÃO usar esta skill
123
+
124
+ - Se `dare-dag.yaml` não existe — use `dare-blueprint` ou `dare-dag-build`
125
+ - Se você quer só visualizar o grafo — use `dare-dag-viz`
126
+ - Se você quer build + run num único passo — use `dare-dag-runner`
127
+
128
+ ## Licença
129
+
130
+ Esta skill é parte do DARE Method e está sob licença MIT (D-001).