@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,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
@@ -1,197 +1,197 @@
1
- # /dare-dag-viz — Visualizar DAG com Excalidraw
2
-
3
- Gera diagrama interativo `.excalidraw` a partir do `dare-dag.yaml` atual, com cores semânticas por complexidade e status visual das tasks.
4
-
5
- ## O que faz
6
-
7
- 1. **Lê** `DARE/dare-dag.yaml` (grafo de tasks + dependências)
8
- 2. **Mapeia** cada task para um retângulo Excalidraw com:
9
- - Cor baseada em `complexity` (LOW=azul, MED=laranja, HIGH=rosa)
10
- - Status visual (PENDING/RUNNING/DONE/FAILED)
11
- - ID + nome da task
12
- 3. **Agrupa** tasks por `rank` em colunas verticais (swim lanes)
13
- 4. **Cria** setas para cada dependência (`depends_on`)
14
- 5. **Salva** em `DARE/dag-graph.excalidraw`
15
-
16
- Output é um arquivo **editável e interativo** — abre direto em https://excalidraw.com.
17
-
18
- ## Convenções visuais
19
-
20
- Referência: `/docs/DESIGN-TOKENS-EXCALIDRAW.md`
21
-
22
- **Cores por complexidade:**
23
- - 🔵 **Azul** (#e3f2fd) = LOW
24
- - 🟠 **Laranja** (#fff3e0) = MEDIUM
25
- - 🔴 **Rosa** (#fce4ec) = HIGH
26
-
27
- **Status:**
28
- - ⏳ PENDING = cinza, stroke normal
29
- - ⚙️ RUNNING = azul, stroke pontilhado
30
- - ✅ DONE = verde
31
- - ❌ FAILED = vermelho
32
-
33
- **Posicionamento:**
34
- - Cada task ocupa 120×60px
35
- - Tasks no mesmo rank ficam lado a lado (swim lane)
36
- - Setas conectam dependências
37
-
38
- ## Exemplo de output
39
-
40
- Arquivo `DARE/dag-graph.excalidraw` com estrutura:
41
-
42
- ```
43
- Rank 1
44
- ├── task-001 (LOW, DONE)
45
- ├── task-002 (HIGH, PENDING)
46
-
47
- Rank 2
48
- ├── task-003 (MEDIUM, RUNNING) ← depende de task-001
49
- ├── task-004 (LOW, PENDING) ← depende de task-001
50
-
51
- Rank 3
52
- └── task-005 (HIGH, PENDING) ← depende de task-003 e task-004
53
- ```
54
-
55
- ## Como usar
56
-
57
- ### Primeira vez
58
-
59
- ```bash
60
- /dare-dag-viz
61
- ```
62
-
63
- Claude Code vai:
64
- 1. Ler `DARE/dare-dag.yaml`
65
- 2. Gerar JSON `.excalidraw`
66
- 3. Salvar em `DARE/dag-graph.excalidraw`
67
- 4. Output: "✅ DAG gerado — abra em https://excalidraw.com"
68
-
69
- ### Atualizar após mudanças
70
-
71
- Sempre que você atualiza `dare-dag.yaml`:
72
-
73
- ```bash
74
- /dare-dag-viz
75
- ```
76
-
77
- Isso regenera o diagrama com as novas tasks/dependências.
78
-
79
- ### Abrir e editar
80
-
81
- 1. Acesse https://excalidraw.com
82
- 2. File → Open → selecione `DARE/dag-graph.excalidraw`
83
- 3. Edite livremente:
84
- - Mova elementos
85
- - Customize cores/textos
86
- - Adicione anotações
87
- 4. Salve no mesmo arquivo
88
-
89
- Dica: Se editou manualmente e quer regenerar com `dare-dag-viz` de novo, faça backup antes.
90
-
91
- ## Detalhes técnicos
92
-
93
- ### Estrutura do JSON gerado
94
-
95
- ```json
96
- {
97
- "elements": [
98
- {
99
- "id": "task-001",
100
- "type": "rectangle",
101
- "x": 20, "y": 20,
102
- "width": 120, "height": 60,
103
- "backgroundColor": "#e3f2fd",
104
- "stroke": "#1976d2",
105
- "text": "task-001\nSetup Auth\n[LOW]",
106
- "fontSize": 12,
107
- "roundness": { "type": 2, "value": 6 }
108
- },
109
- {
110
- "type": "arrow",
111
- "startBinding": { "elementId": "task-001" },
112
- "endBinding": { "elementId": "task-003" },
113
- "stroke": "#999"
114
- }
115
- ],
116
- "appState": {
117
- "gridMode": "grid",
118
- "gridSize": 20
119
- }
120
- }
121
- ```
122
-
123
- ### Algoritmo de posicionamento
124
-
125
- 1. **Calcular ranks** — depth-first do DAG
126
- ```
127
- rank = 1 + max(rank of dependencies)
128
- ```
129
-
130
- 2. **Agrupar por rank**
131
- ```
132
- Rank 1: [task-001, task-002]
133
- Rank 2: [task-003, task-004]
134
- ```
135
-
136
- 3. **Posicionar**
137
- ```
138
- x = 20 + (taskIndex * 140)
139
- y = 20 + (rank - 1) * 160
140
- ```
141
-
142
- 4. **Desenhar setas**
143
- ```
144
- Para cada depends_on: arrow(source → target)
145
- ```
146
-
147
- ## Campos esperados em dare-dag.yaml
148
-
149
- ```yaml
150
- tasks:
151
- task-001:
152
- name: "Setup Auth"
153
- complexity: "LOW" # ← determina cor
154
- rank: 1 # ← se não existir, é calculado
155
- depends_on: [] # ← usada para setas
156
- status: "DONE" # ← determina stroke/fill
157
- subtask_prompt: "..." # ← (opcional)
158
- ```
159
-
160
- **Campos obrigatórios:** `name`, `complexity`
161
- **Campos opcionais:** `rank` (calculado), `status` (default PENDING), `depends_on` (default [])
162
-
163
- ## Troubleshooting
164
-
165
- ### "File not found: DARE/dare-dag.yaml"
166
- Certifique-se de que está em um projeto DARE. Se não, rode:
167
- ```bash
168
- dare discover
169
- ```
170
-
171
- ### "JSON inválido"
172
- Valide seu `dare-dag.yaml`:
173
- ```bash
174
- dare dag validate
175
- ```
176
-
177
- ### Diagrama muito grande/pequeno
178
- Abra em Excalidraw e ajuste com Ctrl+Mouse ou pinch zoom.
179
-
180
- ## Próximos passos
181
-
182
- - 🎨 Customize as cores em `docs/DESIGN-TOKENS-EXCALIDRAW.md`
183
- - 📤 Exporte para PNG com botão "Export to Image" no Excalidraw
184
- - 🔄 Atualize após cada `dare design` ou `dare execute`
185
- - 📊 Compartilhe com stakeholders (Excalidraw é colaborativo)
186
-
187
- ## Referência de design
188
-
189
- Ver `/docs/DESIGN-TOKENS-EXCALIDRAW.md` para detalhes de cores, fonts, tamanhos, e créditos.
190
-
191
- ## Licença
192
-
193
- Esta skill é parte do DARE CLI e está sob AGPL v3.
194
-
195
- Você pode usar, modificar e compartilhar mas contribuições voltam ao DARE.
196
-
197
- Créditos: Inspiração na [Excalidraw Diagram Skill](https://github.com/coleam00/excalidraw-diagram-skill) por Cole Medin.
1
+ # /dare-dag-viz — Visualizar DAG com Excalidraw
2
+
3
+ Gera diagrama interativo `.excalidraw` a partir do `dare-dag.yaml` atual, com cores semânticas por complexidade e status visual das tasks.
4
+
5
+ ## O que faz
6
+
7
+ 1. **Lê** `DARE/dare-dag.yaml` (grafo de tasks + dependências)
8
+ 2. **Mapeia** cada task para um retângulo Excalidraw com:
9
+ - Cor baseada em `complexity` (LOW=azul, MED=laranja, HIGH=rosa)
10
+ - Status visual (PENDING/RUNNING/DONE/FAILED)
11
+ - ID + nome da task
12
+ 3. **Agrupa** tasks por `rank` em colunas verticais (swim lanes)
13
+ 4. **Cria** setas para cada dependência (`depends_on`)
14
+ 5. **Salva** em `DARE/dag-graph.excalidraw`
15
+
16
+ Output é um arquivo **editável e interativo** — abre direto em https://excalidraw.com.
17
+
18
+ ## Convenções visuais
19
+
20
+ Referência: `/docs/DESIGN-TOKENS-EXCALIDRAW.md`
21
+
22
+ **Cores por complexidade:**
23
+ - 🔵 **Azul** (#e3f2fd) = LOW
24
+ - 🟠 **Laranja** (#fff3e0) = MEDIUM
25
+ - 🔴 **Rosa** (#fce4ec) = HIGH
26
+
27
+ **Status:**
28
+ - ⏳ PENDING = cinza, stroke normal
29
+ - ⚙️ RUNNING = azul, stroke pontilhado
30
+ - ✅ DONE = verde
31
+ - ❌ FAILED = vermelho
32
+
33
+ **Posicionamento:**
34
+ - Cada task ocupa 120×60px
35
+ - Tasks no mesmo rank ficam lado a lado (swim lane)
36
+ - Setas conectam dependências
37
+
38
+ ## Exemplo de output
39
+
40
+ Arquivo `DARE/dag-graph.excalidraw` com estrutura:
41
+
42
+ ```
43
+ Rank 1
44
+ ├── task-001 (LOW, DONE)
45
+ ├── task-002 (HIGH, PENDING)
46
+
47
+ Rank 2
48
+ ├── task-003 (MEDIUM, RUNNING) ← depende de task-001
49
+ ├── task-004 (LOW, PENDING) ← depende de task-001
50
+
51
+ Rank 3
52
+ └── task-005 (HIGH, PENDING) ← depende de task-003 e task-004
53
+ ```
54
+
55
+ ## Como usar
56
+
57
+ ### Primeira vez
58
+
59
+ ```bash
60
+ /dare-dag-viz
61
+ ```
62
+
63
+ Claude Code vai:
64
+ 1. Ler `DARE/dare-dag.yaml`
65
+ 2. Gerar JSON `.excalidraw`
66
+ 3. Salvar em `DARE/dag-graph.excalidraw`
67
+ 4. Output: "✅ DAG gerado — abra em https://excalidraw.com"
68
+
69
+ ### Atualizar após mudanças
70
+
71
+ Sempre que você atualiza `dare-dag.yaml`:
72
+
73
+ ```bash
74
+ /dare-dag-viz
75
+ ```
76
+
77
+ Isso regenera o diagrama com as novas tasks/dependências.
78
+
79
+ ### Abrir e editar
80
+
81
+ 1. Acesse https://excalidraw.com
82
+ 2. File → Open → selecione `DARE/dag-graph.excalidraw`
83
+ 3. Edite livremente:
84
+ - Mova elementos
85
+ - Customize cores/textos
86
+ - Adicione anotações
87
+ 4. Salve no mesmo arquivo
88
+
89
+ Dica: Se editou manualmente e quer regenerar com `dare-dag-viz` de novo, faça backup antes.
90
+
91
+ ## Detalhes técnicos
92
+
93
+ ### Estrutura do JSON gerado
94
+
95
+ ```json
96
+ {
97
+ "elements": [
98
+ {
99
+ "id": "task-001",
100
+ "type": "rectangle",
101
+ "x": 20, "y": 20,
102
+ "width": 120, "height": 60,
103
+ "backgroundColor": "#e3f2fd",
104
+ "stroke": "#1976d2",
105
+ "text": "task-001\nSetup Auth\n[LOW]",
106
+ "fontSize": 12,
107
+ "roundness": { "type": 2, "value": 6 }
108
+ },
109
+ {
110
+ "type": "arrow",
111
+ "startBinding": { "elementId": "task-001" },
112
+ "endBinding": { "elementId": "task-003" },
113
+ "stroke": "#999"
114
+ }
115
+ ],
116
+ "appState": {
117
+ "gridMode": "grid",
118
+ "gridSize": 20
119
+ }
120
+ }
121
+ ```
122
+
123
+ ### Algoritmo de posicionamento
124
+
125
+ 1. **Calcular ranks** — depth-first do DAG
126
+ ```
127
+ rank = 1 + max(rank of dependencies)
128
+ ```
129
+
130
+ 2. **Agrupar por rank**
131
+ ```
132
+ Rank 1: [task-001, task-002]
133
+ Rank 2: [task-003, task-004]
134
+ ```
135
+
136
+ 3. **Posicionar**
137
+ ```
138
+ x = 20 + (taskIndex * 140)
139
+ y = 20 + (rank - 1) * 160
140
+ ```
141
+
142
+ 4. **Desenhar setas**
143
+ ```
144
+ Para cada depends_on: arrow(source → target)
145
+ ```
146
+
147
+ ## Campos esperados em dare-dag.yaml
148
+
149
+ ```yaml
150
+ tasks:
151
+ task-001:
152
+ name: "Setup Auth"
153
+ complexity: "LOW" # ← determina cor
154
+ rank: 1 # ← se não existir, é calculado
155
+ depends_on: [] # ← usada para setas
156
+ status: "DONE" # ← determina stroke/fill
157
+ subtask_prompt: "..." # ← (opcional)
158
+ ```
159
+
160
+ **Campos obrigatórios:** `name`, `complexity`
161
+ **Campos opcionais:** `rank` (calculado), `status` (default PENDING), `depends_on` (default [])
162
+
163
+ ## Troubleshooting
164
+
165
+ ### "File not found: DARE/dare-dag.yaml"
166
+ Certifique-se de que está em um projeto DARE. Se não, rode:
167
+ ```bash
168
+ dare discover
169
+ ```
170
+
171
+ ### "JSON inválido"
172
+ Valide seu `dare-dag.yaml`:
173
+ ```bash
174
+ dare dag validate
175
+ ```
176
+
177
+ ### Diagrama muito grande/pequeno
178
+ Abra em Excalidraw e ajuste com Ctrl+Mouse ou pinch zoom.
179
+
180
+ ## Próximos passos
181
+
182
+ - 🎨 Customize as cores em `docs/DESIGN-TOKENS-EXCALIDRAW.md`
183
+ - 📤 Exporte para PNG com botão "Export to Image" no Excalidraw
184
+ - 🔄 Atualize após cada `dare design` ou `dare execute`
185
+ - 📊 Compartilhe com stakeholders (Excalidraw é colaborativo)
186
+
187
+ ## Referência de design
188
+
189
+ Ver `/docs/DESIGN-TOKENS-EXCALIDRAW.md` para detalhes de cores, fonts, tamanhos, e créditos.
190
+
191
+ ## Licença
192
+
193
+ Esta skill é parte do DARE CLI e está sob licença MIT (D-001).
194
+
195
+ Você pode usar, modificar, compartilhar e distribuir livremente.
196
+
197
+ Créditos: Inspiração na [Excalidraw Diagram Skill](https://github.com/coleam00/excalidraw-diagram-skill) por Cole Medin.
@@ -1,69 +1,69 @@
1
- # /dare-design
2
-
3
- Gera ou atualiza o `DARE/DESIGN.md` a partir de uma descrição do projeto ou feature.
4
-
5
- ## Como usar
6
-
7
- ```
8
- /dare-design Quero uma API REST de autenticação com JWT e refresh token
9
- /dare-design Adicionar módulo de pagamentos com Stripe e webhook
10
- ```
11
-
12
- ## O que fazer
13
-
14
- ### 1. Leia o contexto atual do projeto
15
-
16
- - `package.json` / `composer.json` / `Cargo.toml` / `go.mod` / `requirements.txt` — stack atual
17
- - Estrutura de pastas existente
18
- - `DARE/DESIGN.md` se já existir — não sobrescreva sem aprovação explícita do usuário
19
-
20
- ### 2. Gere `DARE/DESIGN.md` com as seguintes seções obrigatórias
21
-
22
- **2.1 Descrição** — 3 a 5 frases claras: o que é, qual problema resolve, quem usa.
23
-
24
- **2.2 Objetivos e Métricas de Sucesso** — tabela numerada (O-01, O-02…) com métrica verificável e meta numérica para cada objetivo. Evite objetivos vagos como "melhorar performance" — use "p99 < 200 ms".
25
-
26
- **2.3 Stakeholders** — tabela: papel, nome/time, interesse principal.
27
-
28
- **2.4 Requisitos Funcionais** — tabela numerada (RF-01, RF-02…) com prioridade MUST/SHOULD/COULD e critério de aceite verificável para cada um.
29
-
30
- **2.5 Requisitos Não-Funcionais** — tabela numerada (RNF-01…) cobrindo: performance, disponibilidade, segurança (autenticação, rate limiting, segredos), observabilidade, manutenibilidade.
31
-
32
- **2.6 Requisitos de Segurança** — tabela numerada (RS-01…). Inclua **sempre**:
33
- - RS-01: validação de entrada (OWASP A03)
34
- - RS-02: proteção de dados sensíveis / hash de senhas (OWASP A02)
35
- - RS-03: controle de acesso por recurso (OWASP A01)
36
- - RS-04: auditoria de dependências sem CVE HIGH/CRITICAL (OWASP A06)
37
- - RS-05: secrets via variáveis de ambiente — nunca em código
38
- - Adicione requisitos específicos do domínio do projeto
39
-
40
- **2.7 Stack Técnica** — tabela por camada com tecnologia e versão.
41
-
42
- **2.8 Integrações Externas** — tabela: sistema, tipo, protocolo, direção, dados trocados, responsável. Inclua apenas integrações confirmadas; marque incertas como "A confirmar".
43
-
44
- **2.9 Restrições** — prazo, orçamento de infra, limitações técnicas, compliance regulatório.
45
-
46
- **2.10 Fora do Escopo (v1)** — lista explícita do que NÃO será feito e o motivo.
47
-
48
- **2.11 Riscos e Mitigações** — tabela: risco, probabilidade (Alta/Média/Baixa), impacto (Alto/Médio/Baixo), mitigação concreta.
49
-
50
- **2.12 Checklist de Aprovação** — checkboxes para o usuário revisar antes de avançar ao `/dare-blueprint`.
51
-
52
- ### 3. Use o template em `templates/DESIGN-template.md`
53
-
54
- Siga o template fielmente. Não omita seções — use "[A definir]" se a informação não estiver disponível ainda, mas deixe a seção explícita para o usuário preencher.
55
-
56
- ### 4. Qualidade esperada
57
-
58
- O DESIGN.md gerado deve permitir que qualquer engenheiro novo no projeto entenda:
59
- - **O QUÊ** vai ser construído (requisitos funcionais)
60
- - **POR QUÊ** (objetivos e métricas)
61
- - **PARA QUEM** (stakeholders e personas)
62
- - **O QUE NÃO** vai ser feito (escopo)
63
- - **QUAIS RISCOS** existem (com mitigação)
64
-
65
- ### 5. Confirme com o usuário antes de prosseguir
66
-
67
- Após gerar o DESIGN.md, apresente um resumo das seções geradas e pergunte se o usuário quer ajustar algo antes de rodar `/dare-blueprint`.
68
-
69
- $ARGUMENTS
1
+ # /dare-design
2
+
3
+ Gera ou atualiza o `DARE/DESIGN.md` a partir de uma descrição do projeto ou feature.
4
+
5
+ ## Como usar
6
+
7
+ ```
8
+ /dare-design Quero uma API REST de autenticação com JWT e refresh token
9
+ /dare-design Adicionar módulo de pagamentos com Stripe e webhook
10
+ ```
11
+
12
+ ## O que fazer
13
+
14
+ ### 1. Leia o contexto atual do projeto
15
+
16
+ - `package.json` / `composer.json` / `Cargo.toml` / `go.mod` / `requirements.txt` — stack atual
17
+ - Estrutura de pastas existente
18
+ - `DARE/DESIGN.md` se já existir — não sobrescreva sem aprovação explícita do usuário
19
+
20
+ ### 2. Gere `DARE/DESIGN.md` com as seguintes seções obrigatórias
21
+
22
+ **2.1 Descrição** — 3 a 5 frases claras: o que é, qual problema resolve, quem usa.
23
+
24
+ **2.2 Objetivos e Métricas de Sucesso** — tabela numerada (O-01, O-02…) com métrica verificável e meta numérica para cada objetivo. Evite objetivos vagos como "melhorar performance" — use "p99 < 200 ms".
25
+
26
+ **2.3 Stakeholders** — tabela: papel, nome/time, interesse principal.
27
+
28
+ **2.4 Requisitos Funcionais** — tabela numerada (RF-01, RF-02…) com prioridade MUST/SHOULD/COULD e critério de aceite verificável para cada um.
29
+
30
+ **2.5 Requisitos Não-Funcionais** — tabela numerada (RNF-01…) cobrindo: performance, disponibilidade, segurança (autenticação, rate limiting, segredos), observabilidade, manutenibilidade.
31
+
32
+ **2.6 Requisitos de Segurança** — tabela numerada (RS-01…). Inclua **sempre**:
33
+ - RS-01: validação de entrada (OWASP A03)
34
+ - RS-02: proteção de dados sensíveis / hash de senhas (OWASP A02)
35
+ - RS-03: controle de acesso por recurso (OWASP A01)
36
+ - RS-04: auditoria de dependências sem CVE HIGH/CRITICAL (OWASP A06)
37
+ - RS-05: secrets via variáveis de ambiente — nunca em código
38
+ - Adicione requisitos específicos do domínio do projeto
39
+
40
+ **2.7 Stack Técnica** — tabela por camada com tecnologia e versão.
41
+
42
+ **2.8 Integrações Externas** — tabela: sistema, tipo, protocolo, direção, dados trocados, responsável. Inclua apenas integrações confirmadas; marque incertas como "A confirmar".
43
+
44
+ **2.9 Restrições** — prazo, orçamento de infra, limitações técnicas, compliance regulatório.
45
+
46
+ **2.10 Fora do Escopo (v1)** — lista explícita do que NÃO será feito e o motivo.
47
+
48
+ **2.11 Riscos e Mitigações** — tabela: risco, probabilidade (Alta/Média/Baixa), impacto (Alto/Médio/Baixo), mitigação concreta.
49
+
50
+ **2.12 Checklist de Aprovação** — checkboxes para o usuário revisar antes de avançar ao `/dare-blueprint`.
51
+
52
+ ### 3. Use o template em `templates/DESIGN-template.md`
53
+
54
+ Siga o template fielmente. Não omita seções — use "[A definir]" se a informação não estiver disponível ainda, mas deixe a seção explícita para o usuário preencher.
55
+
56
+ ### 4. Qualidade esperada
57
+
58
+ O DESIGN.md gerado deve permitir que qualquer engenheiro novo no projeto entenda:
59
+ - **O QUÊ** vai ser construído (requisitos funcionais)
60
+ - **POR QUÊ** (objetivos e métricas)
61
+ - **PARA QUEM** (stakeholders e personas)
62
+ - **O QUE NÃO** vai ser feito (escopo)
63
+ - **QUAIS RISCOS** existem (com mitigação)
64
+
65
+ ### 5. Confirme com o usuário antes de prosseguir
66
+
67
+ Após gerar o DESIGN.md, apresente um resumo das seções geradas e pergunte se o usuário quer ajustar algo antes de rodar `/dare-blueprint`.
68
+
69
+ $ARGUMENTS