@dewtech/dare-cli 2.17.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 (344) hide show
  1. package/README.md +98 -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.js +49 -49
  31. package/dist/__tests__/reverse-facts.test.d.ts +2 -0
  32. package/dist/__tests__/reverse-facts.test.d.ts.map +1 -0
  33. package/dist/__tests__/reverse-facts.test.js +78 -0
  34. package/dist/__tests__/reverse-facts.test.js.map +1 -0
  35. package/dist/__tests__/review.test.js +38 -38
  36. package/dist/__tests__/validate.test.js +65 -65
  37. package/dist/bin/dare.js +32 -3
  38. package/dist/bin/dare.js.map +1 -1
  39. package/dist/commands/blueprint.js +122 -122
  40. package/dist/commands/dag.d.ts.map +1 -1
  41. package/dist/commands/dag.js +43 -79
  42. package/dist/commands/dag.js.map +1 -1
  43. package/dist/commands/dna.d.ts +3 -0
  44. package/dist/commands/dna.d.ts.map +1 -0
  45. package/dist/commands/dna.js +69 -0
  46. package/dist/commands/dna.js.map +1 -0
  47. package/dist/commands/migrate.d.ts +3 -0
  48. package/dist/commands/migrate.d.ts.map +1 -0
  49. package/dist/commands/migrate.js +101 -0
  50. package/dist/commands/migrate.js.map +1 -0
  51. package/dist/commands/new.d.ts +16 -0
  52. package/dist/commands/new.d.ts.map +1 -0
  53. package/dist/commands/new.js +103 -0
  54. package/dist/commands/new.js.map +1 -0
  55. package/dist/commands/reverse.d.ts +3 -0
  56. package/dist/commands/reverse.d.ts.map +1 -0
  57. package/dist/commands/reverse.js +201 -0
  58. package/dist/commands/reverse.js.map +1 -0
  59. package/dist/commands/welcome.d.ts +14 -0
  60. package/dist/commands/welcome.d.ts.map +1 -0
  61. package/dist/commands/welcome.js +29 -0
  62. package/dist/commands/welcome.js.map +1 -0
  63. package/dist/skills/commands/add.d.ts +23 -0
  64. package/dist/skills/commands/add.d.ts.map +1 -0
  65. package/dist/skills/commands/add.js +206 -0
  66. package/dist/skills/commands/add.js.map +1 -0
  67. package/dist/skills/commands/info.d.ts +14 -0
  68. package/dist/skills/commands/info.d.ts.map +1 -0
  69. package/dist/skills/commands/info.js +99 -0
  70. package/dist/skills/commands/info.js.map +1 -0
  71. package/dist/skills/commands/list.d.ts +19 -0
  72. package/dist/skills/commands/list.d.ts.map +1 -0
  73. package/dist/skills/commands/list.js +163 -0
  74. package/dist/skills/commands/list.js.map +1 -0
  75. package/dist/skills/commands/publish.d.ts +56 -0
  76. package/dist/skills/commands/publish.d.ts.map +1 -0
  77. package/dist/skills/commands/publish.js +272 -0
  78. package/dist/skills/commands/publish.js.map +1 -0
  79. package/dist/skills/commands/remove.d.ts +19 -0
  80. package/dist/skills/commands/remove.d.ts.map +1 -0
  81. package/dist/skills/commands/remove.js +96 -0
  82. package/dist/skills/commands/remove.js.map +1 -0
  83. package/dist/skills/commands/update.d.ts +31 -0
  84. package/dist/skills/commands/update.d.ts.map +1 -0
  85. package/dist/skills/commands/update.js +132 -0
  86. package/dist/skills/commands/update.js.map +1 -0
  87. package/dist/skills/index.d.ts +22 -0
  88. package/dist/skills/index.d.ts.map +1 -0
  89. package/dist/skills/index.js +33 -0
  90. package/dist/skills/index.js.map +1 -0
  91. package/dist/skills/manifest.d.ts +54 -0
  92. package/dist/skills/manifest.d.ts.map +1 -0
  93. package/dist/skills/manifest.js +162 -0
  94. package/dist/skills/manifest.js.map +1 -0
  95. package/dist/skills/registry-local.d.ts +67 -0
  96. package/dist/skills/registry-local.d.ts.map +1 -0
  97. package/dist/skills/registry-local.js +130 -0
  98. package/dist/skills/registry-local.js.map +1 -0
  99. package/dist/skills/registry-mock.json +109 -0
  100. package/dist/skills/registry-remote.d.ts +110 -0
  101. package/dist/skills/registry-remote.d.ts.map +1 -0
  102. package/dist/skills/registry-remote.js +246 -0
  103. package/dist/skills/registry-remote.js.map +1 -0
  104. package/dist/skills/registry.d.ts +49 -0
  105. package/dist/skills/registry.d.ts.map +1 -0
  106. package/dist/skills/registry.js +94 -0
  107. package/dist/skills/registry.js.map +1 -0
  108. package/dist/skills/tests/manifest.spec.d.ts +8 -0
  109. package/dist/skills/tests/manifest.spec.d.ts.map +1 -0
  110. package/dist/skills/tests/manifest.spec.js +176 -0
  111. package/dist/skills/tests/manifest.spec.js.map +1 -0
  112. package/dist/skills/tests/publish.spec.d.ts +12 -0
  113. package/dist/skills/tests/publish.spec.d.ts.map +1 -0
  114. package/dist/skills/tests/publish.spec.js +276 -0
  115. package/dist/skills/tests/publish.spec.js.map +1 -0
  116. package/dist/skills/tests/registry-local.spec.d.ts +8 -0
  117. package/dist/skills/tests/registry-local.spec.d.ts.map +1 -0
  118. package/dist/skills/tests/registry-local.spec.js +231 -0
  119. package/dist/skills/tests/registry-local.spec.js.map +1 -0
  120. package/dist/skills/tests/registry.spec.d.ts +7 -0
  121. package/dist/skills/tests/registry.spec.d.ts.map +1 -0
  122. package/dist/skills/tests/registry.spec.js +58 -0
  123. package/dist/skills/tests/registry.spec.js.map +1 -0
  124. package/dist/skills/tests/remote-registry.spec.d.ts +9 -0
  125. package/dist/skills/tests/remote-registry.spec.d.ts.map +1 -0
  126. package/dist/skills/tests/remote-registry.spec.js +357 -0
  127. package/dist/skills/tests/remote-registry.spec.js.map +1 -0
  128. package/dist/skills/tests/update.spec.d.ts +9 -0
  129. package/dist/skills/tests/update.spec.d.ts.map +1 -0
  130. package/dist/skills/tests/update.spec.js +166 -0
  131. package/dist/skills/tests/update.spec.js.map +1 -0
  132. package/dist/utils/banner.d.ts +28 -0
  133. package/dist/utils/banner.d.ts.map +1 -0
  134. package/dist/utils/banner.js +77 -0
  135. package/dist/utils/banner.js.map +1 -0
  136. package/dist/utils/banner.spec.d.ts +5 -0
  137. package/dist/utils/banner.spec.d.ts.map +1 -0
  138. package/dist/utils/banner.spec.js +253 -0
  139. package/dist/utils/banner.spec.js.map +1 -0
  140. package/dist/utils/confidence.d.ts +41 -0
  141. package/dist/utils/confidence.d.ts.map +1 -0
  142. package/dist/utils/confidence.js +101 -0
  143. package/dist/utils/confidence.js.map +1 -0
  144. package/dist/utils/datamodel.d.ts +41 -0
  145. package/dist/utils/datamodel.d.ts.map +1 -0
  146. package/dist/utils/datamodel.js +535 -0
  147. package/dist/utils/datamodel.js.map +1 -0
  148. package/dist/utils/dna-detector.d.ts +61 -0
  149. package/dist/utils/dna-detector.d.ts.map +1 -0
  150. package/dist/utils/dna-detector.js +354 -0
  151. package/dist/utils/dna-detector.js.map +1 -0
  152. package/dist/utils/dna-facts.d.ts +13 -0
  153. package/dist/utils/dna-facts.d.ts.map +1 -0
  154. package/dist/utils/dna-facts.js +109 -0
  155. package/dist/utils/dna-facts.js.map +1 -0
  156. package/dist/utils/excalidraw-renderer.d.ts +11 -71
  157. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  158. package/dist/utils/excalidraw-renderer.js +29 -162
  159. package/dist/utils/excalidraw-renderer.js.map +1 -1
  160. package/dist/utils/graph-renderer.d.ts +115 -0
  161. package/dist/utils/graph-renderer.d.ts.map +1 -0
  162. package/dist/utils/graph-renderer.js +216 -0
  163. package/dist/utils/graph-renderer.js.map +1 -0
  164. package/dist/utils/migration.d.ts +64 -0
  165. package/dist/utils/migration.d.ts.map +1 -0
  166. package/dist/utils/migration.js +183 -0
  167. package/dist/utils/migration.js.map +1 -0
  168. package/dist/utils/module-detector.d.ts +46 -0
  169. package/dist/utils/module-detector.d.ts.map +1 -0
  170. package/dist/utils/module-detector.js +348 -0
  171. package/dist/utils/module-detector.js.map +1 -0
  172. package/dist/utils/project-generator.js +252 -252
  173. package/dist/utils/reverse-facts.d.ts +50 -0
  174. package/dist/utils/reverse-facts.d.ts.map +1 -0
  175. package/dist/utils/reverse-facts.js +291 -0
  176. package/dist/utils/reverse-facts.js.map +1 -0
  177. package/dist/utils/stack-bootstrap.js +371 -371
  178. package/package.json +8 -3
  179. package/templates/DARE-dag-example.yaml +280 -280
  180. package/templates/UPDATE-MANIFEST.json +48 -48
  181. package/templates/backend/node-nestjs/.env.example +9 -9
  182. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  183. package/templates/backend/node-nestjs/package.json +50 -50
  184. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  185. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  186. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  187. package/templates/backend/node-nestjs/src/main.ts +24 -24
  188. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  189. package/templates/backend/php-laravel/.env.example +22 -22
  190. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  191. package/templates/backend/php-laravel/composer.json +40 -40
  192. package/templates/backend/python-fastapi/.env.example +4 -4
  193. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  194. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  195. package/templates/backend/python-fastapi/main.py +35 -35
  196. package/templates/backend/python-fastapi/requirements.txt +13 -13
  197. package/templates/backend/rust-axum/.env.example +3 -3
  198. package/templates/backend/rust-axum/Cargo.toml +23 -23
  199. package/templates/backend/rust-axum/src/errors.rs +30 -30
  200. package/templates/backend/rust-axum/src/main.rs +32 -32
  201. package/templates/backend/rust-axum/src/routes.rs +6 -6
  202. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  203. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  204. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  205. package/templates/frontend/leptos-csr/index.html +11 -11
  206. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  207. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  208. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  209. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  210. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  211. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  212. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  213. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  214. package/templates/frontend/react/index.html +12 -12
  215. package/templates/frontend/react/package.json +35 -35
  216. package/templates/frontend/react/src/App.tsx +25 -25
  217. package/templates/frontend/react/src/main.tsx +9 -9
  218. package/templates/frontend/vue/package.json +32 -32
  219. package/templates/frontend/vue/src/App.vue +7 -7
  220. package/templates/frontend/vue/src/main.ts +10 -10
  221. package/templates/frontend/vue/src/router/index.ts +14 -14
  222. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  223. package/templates/hooks/pre-commit-dare-validate +24 -24
  224. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -0
  225. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -0
  226. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -0
  227. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  228. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -0
  229. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -0
  230. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -0
  231. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -0
  232. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -0
  233. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -0
  234. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -0
  235. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -0
  236. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -0
  237. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
  238. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
  239. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
  240. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -0
  241. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  242. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -0
  243. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
  244. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -0
  245. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -0
  246. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -0
  247. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -0
  248. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -0
  249. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -0
  250. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  251. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  252. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
  253. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
  254. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
  255. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
  256. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
  257. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  258. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -0
  259. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  260. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  261. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -0
  262. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -0
  263. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  264. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -0
  265. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -0
  266. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -0
  267. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -0
  268. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -0
  269. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -0
  270. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -0
  271. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -0
  272. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
  273. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
  274. package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
  275. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  276. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  277. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  278. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  279. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -0
  280. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -0
  281. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -0
  282. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -0
  283. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -0
  284. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -0
  285. package/templates/ide/claude/.claude/settings.example.json +35 -35
  286. package/templates/ide/claude/CLAUDE.md +146 -146
  287. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  288. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  289. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
  290. package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
  291. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -86
  292. package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
  293. package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -184
  294. package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -107
  295. package/templates/ide/cursor/.cursor/commands/review-task.md +91 -91
  296. package/templates/ide/cursor/.cursor/commands/run-dag.md +110 -110
  297. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -0
  298. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -0
  299. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -0
  300. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  301. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -0
  302. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -0
  303. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -0
  304. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -0
  305. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -0
  306. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -0
  307. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -0
  308. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -0
  309. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -0
  310. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -0
  311. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -0
  312. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -0
  313. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -0
  314. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -0
  315. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  316. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  317. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  318. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  319. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
  320. package/templates/shared/docker-compose.yml +41 -41
  321. package/dist/__tests__/dag-runner/adapters.test.d.ts +0 -2
  322. package/dist/__tests__/dag-runner/adapters.test.d.ts.map +0 -1
  323. package/dist/__tests__/dag-runner/adapters.test.js +0 -134
  324. package/dist/__tests__/dag-runner/adapters.test.js.map +0 -1
  325. package/dist/dag-runner/adapters/antigravity.d.ts +0 -6
  326. package/dist/dag-runner/adapters/antigravity.d.ts.map +0 -1
  327. package/dist/dag-runner/adapters/antigravity.js +0 -54
  328. package/dist/dag-runner/adapters/antigravity.js.map +0 -1
  329. package/dist/dag-runner/adapters/claude.d.ts +0 -6
  330. package/dist/dag-runner/adapters/claude.d.ts.map +0 -1
  331. package/dist/dag-runner/adapters/claude.js +0 -48
  332. package/dist/dag-runner/adapters/claude.js.map +0 -1
  333. package/dist/dag-runner/adapters/cursor.d.ts +0 -6
  334. package/dist/dag-runner/adapters/cursor.d.ts.map +0 -1
  335. package/dist/dag-runner/adapters/cursor.js +0 -58
  336. package/dist/dag-runner/adapters/cursor.js.map +0 -1
  337. package/dist/dag-runner/adapters/index.d.ts +0 -46
  338. package/dist/dag-runner/adapters/index.d.ts.map +0 -1
  339. package/dist/dag-runner/adapters/index.js +0 -55
  340. package/dist/dag-runner/adapters/index.js.map +0 -1
  341. package/dist/dag-runner/utils/timeout.d.ts +0 -27
  342. package/dist/dag-runner/utils/timeout.d.ts.map +0 -1
  343. package/dist/dag-runner/utils/timeout.js +0 -55
  344. package/dist/dag-runner/utils/timeout.js.map +0 -1
@@ -1,151 +1,151 @@
1
- # /dare-dag-build
2
-
3
- Regenera **apenas** o `DARE/dare-dag.yaml` a partir do `DARE/BLUEPRINT.md` já
4
- existente, sem refazer o blueprint nem as specs. Útil quando o BLUEPRINT
5
- mudou pouco mas você precisa que o grafo reflita o novo estado.
6
-
7
- ## Quando usar
8
-
9
- - O BLUEPRINT foi ajustado e o grafo precisa refletir
10
- - Você quer experimentar uma decomposição diferente sem refazer o blueprint
11
- - O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
12
- - Precisa adicionar/remover/reordenar tasks no grafo
13
-
14
- ## Pré-requisitos
15
-
16
- - `DARE/BLUEPRINT.md` existe e está aprovado
17
- - (Opcional) `DARE/EXECUTION/task-*.md` específicas serão preservadas se não
18
- forem mencionadas
19
-
20
- ## O que fazer
21
-
22
- ### 1. Ler `DARE/BLUEPRINT.md`
23
-
24
- Obrigatório. Se faltar, peça `/dare-blueprint` antes.
25
-
26
- ### 2. Ler `DARE/dare-dag.yaml` atual (se existir)
27
-
28
- Para preservar `id`s já em uso e não confundir o usuário com renomeações
29
- desnecessárias.
30
-
31
- ### 3. Gerar o novo `dare-dag.yaml`
32
-
33
- Schema canônico:
34
-
35
- ```yaml
36
- title: "<Nome do Projeto> - Development Tasks"
37
- version: "1.0.0"
38
-
39
- limits:
40
- parent_context_chars: 2000
41
- task_output_chars: 4000
42
- timeout_seconds: 600
43
-
44
- models:
45
- cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
46
- claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
47
- antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
48
-
49
- tasks:
50
- - id: task-001
51
- title: "..."
52
- depends_on: []
53
- complexity: LOW
54
- spec_file: EXECUTION/task-001.md
55
- subtask_prompt: |
56
- <self-contained>
57
- ```
58
-
59
- **Regras inegociáveis:**
60
-
61
- - `id` em kebab-case e único
62
- - `depends_on` mínimo — só quando filha *literalmente* precisa do output
63
- - `subtask_prompt` self-contained
64
- - Pelo menos 2 tasks no rank 0
65
- - Cadeia linear é antipattern
66
- - `complexity` honesta
67
-
68
- ### 3.1 ANTI-STUB CONTRACT (inegociável)
69
-
70
- > Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **Não é negociável**. O comando `dare review <task-id>` (v2.17+) detecta isso e marca a task como FAILED.
71
-
72
- Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender este contrato:
73
-
74
- **O `subtask_prompt` deve ser auto-suficiente**
75
-
76
- O subagente recebe **apenas** o `subtask_prompt` + snippets de 2000 chars dos pais. Tudo que ele precisa para implementar **sem inventar** deve estar ali ou na `spec_file`. Inclua:
77
-
78
- - Caminho exato dos arquivos a criar/modificar
79
- - Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
80
- - Schema de request/response com tipos
81
- - Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
82
- - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
83
- - Lista de testes esperados com nome + comportamento
84
-
85
- **A `spec_file` (`EXECUTION/task-<id>.md`) deve ter Definition of Done anti-stub:**
86
-
87
- ```markdown
88
- ## Definition of Done (ANTI-STUB)
89
-
90
- - [ ] Nenhum `TODO`, `FIXME`, `XXX` ou `HACK` em arquivos modificados
91
- - [ ] Nenhuma função vazia (`fn x() {}`, `def x(): pass`, `function x() {}`)
92
- - [ ] Nenhum `throw new Error('not implemented')`, `unimplemented!()`, `todo!()`, `NotImplementedError`
93
- - [ ] Nenhum `return null` / `return undefined` / `return {}` como única statement de função pública
94
- - [ ] Mocks **somente** dentro de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/` — NUNCA em código de produção
95
- - [ ] Todos os endpoints declarados na seção 3 retornam dados reais (não fixos / hardcoded)
96
- - [ ] Cada validação da spec produz erro real com status code correto (testado)
97
- - [ ] Cada edge case da spec tem teste unitário ou integração demonstrando comportamento
98
- ```
99
-
100
- **Verificação automatizável:** o agente vai rodar `dare review <id>` antes de marcar DONE. Se a review falhar, a task volta para revisão.
101
-
102
- **Sinais de spec rasa** (auto-validar antes de salvar):
103
-
104
- - ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
105
- - ❌ "Tratar erros adequadamente" — quais erros? como? que código?
106
- - ❌ "Adicionar validações" — quais regras?
107
- - ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
108
-
109
- ### 4. Validar consistência com `EXECUTION/task-*.md`
110
-
111
- Se uma spec existe em `DARE/EXECUTION/task-<id>.md`:
112
- - Mantenha o mesmo `id` no YAML
113
- - Aponte `spec_file: EXECUTION/task-<id>.md`
114
- - Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o
115
- `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
122
- apagar?
123
-
124
- ### 5. Validar grafo
125
-
126
- - Sem ciclos
127
- - Todos os `depends_on` apontam para `id`s existentes
128
- - `id`s únicos
129
- - Pelo menos 2 tasks no rank 0
130
-
131
- ### 6. Atualizar `DARE/TASKS.md`
132
-
133
- Reflita o novo grafo na tabela master.
134
-
135
- ### 7. Mensagem ao usuário
136
-
137
- > `dare-dag.yaml` regenerado:
138
- > - Total de tasks: N
139
- > - Ranks paralelos: N
140
- > - Adicionadas: [...]
141
- > - Removidas: [...]
142
- > - Modificadas: [...]
143
- >
144
- > Revise e aprove. Para executar: `/dare-dag-run`.
145
-
146
- ## Quando NÃO usar
147
-
148
- - Se você nunca rodou `/dare-blueprint` antes — use `/dare-blueprint` primeiro
149
- - Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
150
-
151
- $ARGUMENTS
1
+ # /dare-dag-build
2
+
3
+ Regenera **apenas** o `DARE/dare-dag.yaml` a partir do `DARE/BLUEPRINT.md` já
4
+ existente, sem refazer o blueprint nem as specs. Útil quando o BLUEPRINT
5
+ mudou pouco mas você precisa que o grafo reflita o novo estado.
6
+
7
+ ## Quando usar
8
+
9
+ - O BLUEPRINT foi ajustado e o grafo precisa refletir
10
+ - Você quer experimentar uma decomposição diferente sem refazer o blueprint
11
+ - O `dare-dag.yaml` ficou inconsistente com `EXECUTION/task-*.md`
12
+ - Precisa adicionar/remover/reordenar tasks no grafo
13
+
14
+ ## Pré-requisitos
15
+
16
+ - `DARE/BLUEPRINT.md` existe e está aprovado
17
+ - (Opcional) `DARE/EXECUTION/task-*.md` específicas serão preservadas se não
18
+ forem mencionadas
19
+
20
+ ## O que fazer
21
+
22
+ ### 1. Ler `DARE/BLUEPRINT.md`
23
+
24
+ Obrigatório. Se faltar, peça `/dare-blueprint` antes.
25
+
26
+ ### 2. Ler `DARE/dare-dag.yaml` atual (se existir)
27
+
28
+ Para preservar `id`s já em uso e não confundir o usuário com renomeações
29
+ desnecessárias.
30
+
31
+ ### 3. Gerar o novo `dare-dag.yaml`
32
+
33
+ Schema canônico:
34
+
35
+ ```yaml
36
+ title: "<Nome do Projeto> - Development Tasks"
37
+ version: "1.0.0"
38
+
39
+ limits:
40
+ parent_context_chars: 2000
41
+ task_output_chars: 4000
42
+ timeout_seconds: 600
43
+
44
+ models:
45
+ cursor: { HIGH: gpt-5.3-codex, MED: composer-2, LOW: auto-low }
46
+ claude: { HIGH: claude-sonnet-4-5, MED: claude-haiku-4, LOW: claude-haiku-4 }
47
+ antigravity: { HIGH: gemini-2.5-pro, MED: gemini-2.5-flash, LOW: gemini-2.5-flash }
48
+
49
+ tasks:
50
+ - id: task-001
51
+ title: "..."
52
+ depends_on: []
53
+ complexity: LOW
54
+ spec_file: EXECUTION/task-001.md
55
+ subtask_prompt: |
56
+ <self-contained>
57
+ ```
58
+
59
+ **Regras inegociáveis:**
60
+
61
+ - `id` em kebab-case e único
62
+ - `depends_on` mínimo — só quando filha *literalmente* precisa do output
63
+ - `subtask_prompt` self-contained
64
+ - Pelo menos 2 tasks no rank 0
65
+ - Cadeia linear é antipattern
66
+ - `complexity` honesta
67
+
68
+ ### 3.1 ANTI-STUB CONTRACT (inegociável)
69
+
70
+ > Tasks geradas com `subtask_prompt` ou spec genéricos forçam o agente a inventar — e ele vai produzir mock, stub ou esqueleto. **Não é negociável**. O comando `dare review <task-id>` (v2.17+) detecta isso e marca a task como FAILED.
71
+
72
+ Cada `subtask_prompt` e `EXECUTION/task-<id>.md` deve atender este contrato:
73
+
74
+ **O `subtask_prompt` deve ser auto-suficiente**
75
+
76
+ O subagente recebe **apenas** o `subtask_prompt` + snippets de 2000 chars dos pais. Tudo que ele precisa para implementar **sem inventar** deve estar ali ou na `spec_file`. Inclua:
77
+
78
+ - Caminho exato dos arquivos a criar/modificar
79
+ - Assinaturas exatas das funções/endpoints (`fn name(params: T) -> R`)
80
+ - Schema de request/response com tipos
81
+ - Validações específicas (não "validar input" — `email: regex /^.../`, `senha: ≥ 8 chars + 1 maiúscula + 1 dígito`)
82
+ - Edge cases enumerados (input vazio, duplicado, expirado, sem permissão)
83
+ - Lista de testes esperados com nome + comportamento
84
+
85
+ **A `spec_file` (`EXECUTION/task-<id>.md`) deve ter Definition of Done anti-stub:**
86
+
87
+ ```markdown
88
+ ## Definition of Done (ANTI-STUB)
89
+
90
+ - [ ] Nenhum `TODO`, `FIXME`, `XXX` ou `HACK` em arquivos modificados
91
+ - [ ] Nenhuma função vazia (`fn x() {}`, `def x(): pass`, `function x() {}`)
92
+ - [ ] Nenhum `throw new Error('not implemented')`, `unimplemented!()`, `todo!()`, `NotImplementedError`
93
+ - [ ] Nenhum `return null` / `return undefined` / `return {}` como única statement de função pública
94
+ - [ ] Mocks **somente** dentro de `*.test.*`, `*.spec.*`, `__tests__/`, `tests/`, `spec/` — NUNCA em código de produção
95
+ - [ ] Todos os endpoints declarados na seção 3 retornam dados reais (não fixos / hardcoded)
96
+ - [ ] Cada validação da spec produz erro real com status code correto (testado)
97
+ - [ ] Cada edge case da spec tem teste unitário ou integração demonstrando comportamento
98
+ ```
99
+
100
+ **Verificação automatizável:** o agente vai rodar `dare review <id>` antes de marcar DONE. Se a review falhar, a task volta para revisão.
101
+
102
+ **Sinais de spec rasa** (auto-validar antes de salvar):
103
+
104
+ - ❌ "Implementar X" — sem assinatura, sem retorno, sem validações
105
+ - ❌ "Tratar erros adequadamente" — quais erros? como? que código?
106
+ - ❌ "Adicionar validações" — quais regras?
107
+ - ✅ "Implementar `POST /auth/login` retornando `{ token: string, refresh: string }` com 200 se credenciais válidas, 401 se inválidas, 429 se rate limit"
108
+
109
+ ### 4. Validar consistência com `EXECUTION/task-*.md`
110
+
111
+ Se uma spec existe em `DARE/EXECUTION/task-<id>.md`:
112
+ - Mantenha o mesmo `id` no YAML
113
+ - Aponte `spec_file: EXECUTION/task-<id>.md`
114
+ - Se a `complexity` ou `depends_on` mudou, atualize **também** a spec e o
115
+ `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
122
+ apagar?
123
+
124
+ ### 5. Validar grafo
125
+
126
+ - Sem ciclos
127
+ - Todos os `depends_on` apontam para `id`s existentes
128
+ - `id`s únicos
129
+ - Pelo menos 2 tasks no rank 0
130
+
131
+ ### 6. Atualizar `DARE/TASKS.md`
132
+
133
+ Reflita o novo grafo na tabela master.
134
+
135
+ ### 7. Mensagem ao usuário
136
+
137
+ > `dare-dag.yaml` regenerado:
138
+ > - Total de tasks: N
139
+ > - Ranks paralelos: N
140
+ > - Adicionadas: [...]
141
+ > - Removidas: [...]
142
+ > - Modificadas: [...]
143
+ >
144
+ > Revise e aprove. Para executar: `/dare-dag-run`.
145
+
146
+ ## Quando NÃO usar
147
+
148
+ - Se você nunca rodou `/dare-blueprint` antes — use `/dare-blueprint` primeiro
149
+ - Se o BLUEPRINT está desatualizado — atualize o BLUEPRINT primeiro
150
+
151
+ $ARGUMENTS
@@ -1,109 +1,109 @@
1
- # /dare-dag-run
2
-
3
- Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando **Claude
4
- Code como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica
5
- em `DARE/.canvas.md`.
6
-
7
- > **Sem API keys.** Você (Claude Code) usa o plano da IDE/CLI em que o
8
- > usuário já está autenticado. O CLI apenas coordena estado, monta prompts
9
- > e atualiza canvas.
10
-
11
- ## Pré-requisitos
12
-
13
- - `DARE/dare-dag.yaml` existe e foi aprovado
14
- - Specs em `DARE/EXECUTION/task-<id>.md` geradas
15
- - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
16
-
17
- ## Como usar
18
-
19
- ```
20
- /dare-dag-run
21
- /dare-dag-run --task task-003 # executar só uma task específica
22
- ```
23
-
24
- ## O que fazer
25
-
26
- ### 1. Validar pré-condições
27
-
28
- - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente
29
- `/dare-blueprint` ou `/dare-dag-build`
30
- - Leia o YAML e verifique sem ciclos, ids únicos, ranks paralelizáveis
31
-
32
- ### 2. Pegar próximas tasks
33
-
34
- ```bash
35
- dare execute --next
36
- ```
37
-
38
- O CLI imprime as tasks ready do rank atual com o prompt completo (snippets
39
- de até 2000 chars dos outputs dos pais já costurados). Use esses prompts.
40
-
41
- ### 3. Sugerir abrir o canvas
42
-
43
- Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba.
44
-
45
- ### 4. Executar cada task
46
-
47
- Para cada task ready:
48
-
49
- 1. Leia `spec_file` se houver
50
- 2. Implemente conforme o prompt
51
- 3. Rode Ralph Loop: build → test → lint
52
- 4. Registre o resultado:
53
-
54
- ```bash
55
- # Sucesso
56
- dare execute --complete task-001 --output "Resumo + arquivos criados (paths)"
57
-
58
- # Falha
59
- dare execute --fail task-002 --reason "Mensagem clara da falha"
60
- ```
61
-
62
- ### 5. Avançar de rank
63
-
64
- ```bash
65
- dare execute --next
66
- ```
67
-
68
- Se aparece `✅ All tasks resolved`, todas terminaram. Caso contrário, continue.
69
-
70
- ### 6. Pós-execução
71
-
72
- ```bash
73
- dare execute --status
74
- ```
75
-
76
- Para retentar tasks FAILED:
77
-
78
- ```bash
79
- dare execute --reset task-002
80
- dare execute --next
81
- ```
82
-
83
- ## Comandos do orquestrador
84
-
85
- | Comando | Função |
86
- |---------|--------|
87
- | `dare execute --next` | Próximas tasks ready com prompts compostos |
88
- | `dare execute --complete <id> --output "…"` | Marca DONE |
89
- | `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
90
- | `dare execute --reset <id>` | Volta para PENDING |
91
- | `dare execute --status` | Snapshot do canvas + sumário |
92
-
93
- ## Erros comuns
94
-
95
- | Sintoma | Causa | Correção |
96
- |---------|-------|----------|
97
- | `dare-dag.yaml not found` | Não foi gerado | `/dare-blueprint` ou `/dare-dag-build` |
98
- | Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
99
- | Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
100
- | Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `/dare-dag-build` |
101
-
102
- ## Referências
103
-
104
- - Schema: `DARE/dare-dag.yaml`
105
- - Canvas: `DARE/.canvas.md`
106
- - Specs: `DARE/EXECUTION/task-*.md`
107
- - Status: `DARE/TASKS.md`
108
-
109
- $ARGUMENTS
1
+ # /dare-dag-run
2
+
3
+ Executa o grafo de tasks definido em `DARE/dare-dag.yaml` usando **Claude
4
+ Code como executor** e o CLI `dare` como orquestrador. O canvas ao vivo fica
5
+ em `DARE/.canvas.md`.
6
+
7
+ > **Sem API keys.** Você (Claude Code) usa o plano da IDE/CLI em que o
8
+ > usuário já está autenticado. O CLI apenas coordena estado, monta prompts
9
+ > e atualiza canvas.
10
+
11
+ ## Pré-requisitos
12
+
13
+ - `DARE/dare-dag.yaml` existe e foi aprovado
14
+ - Specs em `DARE/EXECUTION/task-<id>.md` geradas
15
+ - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
16
+
17
+ ## Como usar
18
+
19
+ ```
20
+ /dare-dag-run
21
+ /dare-dag-run --task task-003 # executar só uma task específica
22
+ ```
23
+
24
+ ## O que fazer
25
+
26
+ ### 1. Validar pré-condições
27
+
28
+ - Confirme que `DARE/dare-dag.yaml` existe. Se não, oriente
29
+ `/dare-blueprint` ou `/dare-dag-build`
30
+ - Leia o YAML e verifique sem ciclos, ids únicos, ranks paralelizáveis
31
+
32
+ ### 2. Pegar próximas tasks
33
+
34
+ ```bash
35
+ dare execute --next
36
+ ```
37
+
38
+ O CLI imprime as tasks ready do rank atual com o prompt completo (snippets
39
+ de até 2000 chars dos outputs dos pais já costurados). Use esses prompts.
40
+
41
+ ### 3. Sugerir abrir o canvas
42
+
43
+ Antes de começar, peça ao usuário abrir `DARE/.canvas.md` em outra aba.
44
+
45
+ ### 4. Executar cada task
46
+
47
+ Para cada task ready:
48
+
49
+ 1. Leia `spec_file` se houver
50
+ 2. Implemente conforme o prompt
51
+ 3. Rode Ralph Loop: build → test → lint
52
+ 4. Registre o resultado:
53
+
54
+ ```bash
55
+ # Sucesso
56
+ dare execute --complete task-001 --output "Resumo + arquivos criados (paths)"
57
+
58
+ # Falha
59
+ dare execute --fail task-002 --reason "Mensagem clara da falha"
60
+ ```
61
+
62
+ ### 5. Avançar de rank
63
+
64
+ ```bash
65
+ dare execute --next
66
+ ```
67
+
68
+ Se aparece `✅ All tasks resolved`, todas terminaram. Caso contrário, continue.
69
+
70
+ ### 6. Pós-execução
71
+
72
+ ```bash
73
+ dare execute --status
74
+ ```
75
+
76
+ Para retentar tasks FAILED:
77
+
78
+ ```bash
79
+ dare execute --reset task-002
80
+ dare execute --next
81
+ ```
82
+
83
+ ## Comandos do orquestrador
84
+
85
+ | Comando | Função |
86
+ |---------|--------|
87
+ | `dare execute --next` | Próximas tasks ready com prompts compostos |
88
+ | `dare execute --complete <id> --output "…"` | Marca DONE |
89
+ | `dare execute --fail <id> --reason "…"` | Marca FAILED + cascade-skip |
90
+ | `dare execute --reset <id>` | Volta para PENDING |
91
+ | `dare execute --status` | Snapshot do canvas + sumário |
92
+
93
+ ## Erros comuns
94
+
95
+ | Sintoma | Causa | Correção |
96
+ |---------|-------|----------|
97
+ | `dare-dag.yaml not found` | Não foi gerado | `/dare-blueprint` ou `/dare-dag-build` |
98
+ | Cascata de SKIPPED | Pai falhou | Corrija pai → `--reset` → `--next` |
99
+ | Output truncado | Cap de 4000 chars | Escreva em arquivo, retorne resumo |
100
+ | Spec inconsistente | TASKS.md ≠ dare-dag.yaml | Re-gere com `/dare-dag-build` |
101
+
102
+ ## Referências
103
+
104
+ - Schema: `DARE/dare-dag.yaml`
105
+ - Canvas: `DARE/.canvas.md`
106
+ - Specs: `DARE/EXECUTION/task-*.md`
107
+ - Status: `DARE/TASKS.md`
108
+
109
+ $ARGUMENTS
@@ -0,0 +1,117 @@
1
+ # /dare-dag-runner
2
+
3
+ Wrapper agregador que cobre **todo o ciclo do DAG** num único comando:
4
+ build do `dare-dag.yaml` (se necessário) → execução de todas as tasks via
5
+ Ralph Loop → opcional visualização final em Excalidraw.
6
+
7
+ Esta skill existe por **paridade conceitual** com Antigravity e Cursor, que
8
+ consolidam build + run numa única skill chamada `dare-dag-runner`. No Claude
9
+ você também tem os comandos granulares `/dare-dag-build`, `/dare-dag-run` e
10
+ `/dare-dag-viz` caso prefira controle fino.
11
+
12
+ > **Sem API keys.** Você (Claude Code) usa o plano da IDE/CLI em que o
13
+ > usuário já está autenticado. O CLI `dare` apenas coordena estado, monta
14
+ > prompts e atualiza canvas.
15
+
16
+ ## Como usar
17
+
18
+ ```
19
+ /dare-dag-runner # build + run completo, com viz opcional ao final
20
+ /dare-dag-runner --skip-build # pula build, executa o yaml atual
21
+ /dare-dag-runner --skip-run # só (re)gera o yaml, não executa
22
+ /dare-dag-runner --viz # ao final, gera dag-graph.excalidraw
23
+ /dare-dag-runner --task task-003 # executa apenas uma task específica
24
+ ```
25
+
26
+ ## Quando usar
27
+
28
+ - Você quer rodar **todo o ciclo** sem se preocupar com comandos separados
29
+ - Está começando a fase EXECUTE pela primeira vez num projeto
30
+ - Quer paridade com o fluxo do Antigravity/Cursor (1 skill = ciclo completo)
31
+
32
+ ## Quando NÃO usar
33
+
34
+ - Você quer **só** regerar o yaml (sem executar) → use `/dare-dag-build`
35
+ - Você quer **só** executar o yaml atual (sem regerar) → use `/dare-dag-run`
36
+ - Você quer **só** o diagrama Excalidraw → use `/dare-dag-viz`
37
+ - O BLUEPRINT está desatualizado → atualize primeiro com `/dare-blueprint`
38
+
39
+ ## Pré-requisitos
40
+
41
+ - `DARE/BLUEPRINT.md` existe e está aprovado (a fase build precisa dele)
42
+ - `dare` disponível no PATH (`npm i -g @dewtech/dare-cli`)
43
+
44
+ ## O que fazer
45
+
46
+ ### Fase 1 — BUILD (se aplicável)
47
+
48
+ Se o yaml não existe ou está stale (BLUEPRINT mais novo que o yaml),
49
+ execute o procedimento completo de `/dare-dag-build`:
50
+
51
+ 1. Ler `DARE/BLUEPRINT.md`
52
+ 2. Ler `DARE/dare-dag.yaml` atual (preservar `id`s)
53
+ 3. Gerar o novo `dare-dag.yaml` obedecendo:
54
+ - `id` em kebab-case e único
55
+ - `depends_on` mínimo
56
+ - `subtask_prompt` self-contained
57
+ - Pelo menos **2 tasks no rank 0**
58
+ - Cadeia linear é antipattern
59
+ - `complexity` honesta
60
+ - ANTI-STUB CONTRACT em cada spec (ver `/dare-dag-build` para detalhes)
61
+ 4. Atualizar `DARE/TASKS.md`
62
+ 5. **Pedir aprovação ao usuário antes de executar.**
63
+
64
+ Se `--skip-build` foi passado, pule esta fase.
65
+
66
+ ### Fase 2 — RUN
67
+
68
+ Executa o procedimento completo de `/dare-dag-run`:
69
+
70
+ 1. Validar pré-condições (yaml existe, sem ciclos, ids únicos)
71
+ 2. Sugerir abrir `DARE/.canvas.md` em outra aba
72
+ 3. Loop até `✅ All tasks resolved`:
73
+ - `dare execute --next` para pegar tasks ready do rank atual
74
+ - Para cada task: ler spec → implementar (sem mock fora de tests, sem TODOs) → Ralph Loop (build/test/lint) → `dare execute --complete <id> --output "..."` ou `--fail <id> --reason "..."`
75
+ 4. Pós-execução: `dare execute --status` para sumário final
76
+
77
+ Se `--skip-run` foi passado, pule esta fase.
78
+
79
+ ### Fase 3 — VIZ (opcional)
80
+
81
+ Se `--viz` foi passado, ao final gere `DARE/dag-graph.excalidraw` via
82
+ `/dare-dag-viz`: retângulos coloridos por complexidade, swim lanes por
83
+ rank, setas para `depends_on`, status visual (DONE/RUNNING/FAILED).
84
+
85
+ ## Comandos do orquestrador `dare`
86
+
87
+ | Comando | Função |
88
+ |---------|--------|
89
+ | `dare execute --next` | Próximas tasks ready com prompts compostos |
90
+ | `dare execute --complete <id> --output "..."` | Marca DONE |
91
+ | `dare execute --fail <id> --reason "..."` | Marca FAILED + cascade-skip |
92
+ | `dare execute --reset <id>` | Volta para PENDING |
93
+ | `dare execute --status` | Snapshot + sumário |
94
+
95
+ ## Mensagem final ao usuário
96
+
97
+ > Ciclo DAG completo:
98
+ > - Build: N tasks geradas em M ranks (ou "pulado" se --skip-build)
99
+ > - Run: X DONE / Y FAILED / Z SKIPPED
100
+ > - Viz: `DARE/dag-graph.excalidraw` (se --viz)
101
+ >
102
+ > Para retentar falhas: `/dare-dag-run` (ou comando granular).
103
+
104
+ ## Equivalência entre IDEs
105
+
106
+ | Operação | Antigravity | Claude | Cursor |
107
+ |----------|-------------|--------|--------|
108
+ | Ciclo completo | `dare-dag-runner` | `/dare-dag-runner` (este) | `skill-dag-runner` rule |
109
+ | Só build | `dare-dag-build` | `/dare-dag-build` | `skill-dag-build` rule |
110
+ | Só run | `dare-dag-run` | `/dare-dag-run` | `skill-dag-run` rule + `/run-dag` |
111
+ | Visualizar | `dare-dag-viz` | `/dare-dag-viz` | `/dag-viz` |
112
+
113
+ ## Licença
114
+
115
+ Esta skill é parte do DARE Method e está sob licença MIT (D-001).
116
+
117
+ $ARGUMENTS