@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
@@ -1,209 +1,209 @@
1
- # /dare-rust-workspace
2
-
3
- Decisão e migração de Cargo workspace multi-crate para projetos Rust/Axum.
4
- Cobre dois cenários:
5
-
6
- - **Cenário A — Design/Blueprint:** decidir desde o início se o projeto
7
- nasce single-crate ou workspace.
8
- - **Cenário B — Migração:** propor plano de PRs incrementais para
9
- transformar um projeto single-crate maduro em workspace.
10
-
11
- ## Como usar
12
-
13
- ```
14
- /dare-rust-workspace # análise contextual (lê BLUEPRINT/src/)
15
- /dare-rust-workspace --design # foco em decisão para projeto novo
16
- /dare-rust-workspace --migrate # foco em plano de migração
17
- ```
18
-
19
- ## O que fazer
20
-
21
- ### 1) Detectar o cenário
22
-
23
- - Se existe `DARE/BLUEPRINT.md` mas o `src/` ainda não existe ou tem < 5
24
- arquivos → Cenário A (decisão)
25
- - Se `src/` tem > 30 arquivos `.rs` ou múltiplas subpastas top-level →
26
- Cenário B (migração)
27
- - Caso intermediário (15–30 arquivos) → mostrar os critérios e perguntar
28
- ao usuário
29
-
30
- ### 2) Cenário A — Decisão na fase Design/Blueprint
31
-
32
- Aplique os critérios:
33
-
34
- **Comece single-crate quando TODOS forem verdadeiros:**
35
- - Apenas 1 binário (HTTP server)
36
- - < 30 arquivos `.rs` esperados
37
- - 1–2 sistemas externos (DB; ou DB + cache)
38
- - Equipe ≤ 2 devs
39
- - Sem deploy independente para subcomponentes
40
-
41
- **Comece workspace quando QUALQUER for verdadeiro:**
42
- - ≥ 2 binários previstos (API + worker; API + admin)
43
- - ≥ 3 sistemas externos (PG + Redis + Rabbit + Qdrant + Neo4j…)
44
- - Deploy independente desejado (workers em pods separados)
45
- - Fronteiras arquiteturais críticas (domain puro; SDK publicável)
46
- - Equipe ≥ 3 devs em paralelo
47
-
48
- **Layout recomendado para workspace** (use `<p>` como prefixo do projeto):
49
-
50
- ```
51
- projeto/
52
- ├── Cargo.toml # workspace root
53
- ├── crates/
54
- │ ├── <p>-domain/ (lib) # entities puras
55
- │ ├── <p>-config/ (lib)
56
- │ ├── <p>-db/ (lib)
57
- │ ├── <p>-cache/ (lib)
58
- │ ├── <p>-queue/ (lib)
59
- │ ├── <p>-services/ (lib) # business logic
60
- │ ├── <p>-integrators/ (lib) # clientes externos
61
- │ ├── <p>-api/ (bin+lib) # HTTP server
62
- │ ├── <p>-worker-<X>/ (bin) # 1 binário por worker
63
- │ └── <p>-e2e/ (tests)
64
- └── xtask/ # scripts em Rust
65
- ```
66
-
67
- **`Cargo.toml` raiz:**
68
- ```toml
69
- [workspace]
70
- resolver = "2"
71
- members = ["crates/<p>-domain", "crates/<p>-services", "crates/<p>-api", ...]
72
-
73
- [workspace.package]
74
- version = "0.1.0"
75
- edition = "2021"
76
- rust-version = "1.80"
77
-
78
- [workspace.dependencies]
79
- tokio = { version = "1.40", features = ["full"] }
80
- axum = { version = "0.7", features = ["macros"] }
81
- sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "uuid", "chrono", "migrate"] }
82
- serde = { version = "1.0", features = ["derive"] }
83
- thiserror = "1.0"
84
- anyhow = "1.0"
85
- tracing = "0.1"
86
- uuid = { version = "1.10", features = ["v4", "serde"] }
87
- chrono = { version = "0.4", features = ["serde"] }
88
-
89
- [profile.release]
90
- opt-level = 3
91
- lto = "thin"
92
- codegen-units = 1
93
- strip = true
94
- ```
95
-
96
- Cada crate filho usa `<dep> = { workspace = true }` para herdar versão.
97
-
98
- **Diagrama no BLUEPRINT.md (Mermaid):**
99
- ```mermaid
100
- graph TD
101
- api[<p>-api]
102
- worker[<p>-worker-flow]
103
- services[<p>-services]
104
- domain[<p>-domain]
105
- db[<p>-db]
106
- api --> services
107
- worker --> services
108
- services --> db
109
- services --> domain
110
- db --> domain
111
- ```
112
-
113
- Regra de seta: domain no fundo (ninguém depende para baixo), services no
114
- meio (depende de domain/db, nunca de api), binários no topo.
115
-
116
- ### 3) Cenário B — Plano de migração em 4 PRs
117
-
118
- Migração **nunca é big-bang**. Cada PR passa build/test/clippy no fim e é
119
- deployável.
120
-
121
- **PR 1 — Workers** (mais isolados, menor risco):
122
- ```
123
- src/workers/ → crates/<p>-worker-<X>/
124
- ├── Cargo.toml
125
- └── src/main.rs
126
- ```
127
- - Cada `tokio::spawn(worker_x)` do `main.rs` da API vira binário próprio.
128
- - API para de spawn workers; workers sobem como processo independente.
129
- - `docker-compose.yml` ganha service novo por worker.
130
- - Em k8s: Deployment próprio com scaling independente.
131
-
132
- **PR 2 — Integrators** (clientes externos):
133
- ```
134
- src/integrators/{llm, neo4j, qdrant}.rs → crates/<p>-integrators/src/lib.rs
135
- ```
136
- - Tudo que fala com mundo externo (LLM, Stripe, Meta, DB externo) vira lib.
137
- - API e workers importam via `path = "../<p>-integrators"`.
138
- - Crate é folha do grafo — NÃO depende de domain/services.
139
-
140
- **PR 3 — Domain** (entidades puras):
141
- ```
142
- src/models/ \
143
- src/dto/ → crates/<p>-domain/src/lib.rs
144
- src/error.rs /
145
- ```
146
- - `<p>-domain` tem deps **mínimas**: `serde`, `uuid`, `chrono`, `thiserror`.
147
- - Nada de axum, sqlx, redis. Build do domain falha se alguém tentar.
148
- - Outros crates passam a usar `<p>-domain` em vez de `crate::models::`.
149
-
150
- **PR 4 — API e workspace root:**
151
- ```
152
- Cargo.toml raiz → [workspace] puro
153
- src/ (resto) → crates/<p>-api/src/
154
- ```
155
- - `Cargo.toml` raiz só com `[workspace]` + `[workspace.package]` +
156
- `[workspace.dependencies]` + `[profile.*]`.
157
- - API vai pra `crates/<p>-api/`.
158
- - Todas as deps centralizadas no root.
159
-
160
- ### 4) Validação após cada PR
161
-
162
- ```bash
163
- cargo build --workspace --all-targets
164
- cargo test --workspace
165
- cargo clippy --workspace --all-targets -- -D warnings
166
- ```
167
-
168
- Mais smoke E2E do projeto. Se algum falhar, PR está incompleto.
169
-
170
- ### 5) Tradução de imports
171
-
172
- | Antes (single-crate) | Depois (workspace) |
173
- |----------------------|--------------------|
174
- | `use crate::models::User;` | `use <p>_domain::User;` |
175
- | `use crate::services::auth::login;` | `use <p>_services::auth::login;` |
176
- | `use crate::integrators::llm::Gemini;` | `use <p>_integrators::llm::Gemini;` |
177
- | `use crate::handlers::health::router;` | *fica igual — mesmo crate* |
178
-
179
- Hifens (Cargo) viram underlines (Rust idents).
180
-
181
- ### 6) Antipatterns para alertar o usuário
182
-
183
- | Antipattern | Por quê |
184
- |-------------|---------|
185
- | Big-bang (1 PR mexe em tudo) | Impossível revisar/reverter |
186
- | Crate `common`/`shared`/`utils` | Vira lixeira; viola SRP |
187
- | Crate por arquivo | 50 crates de 100 linhas → parar build |
188
- | Refactor + migração no mesmo PR | Bug fica escondido |
189
- | Mover testes em PR separado | Crate sem test = bug em standby |
190
- | Esquecer atualizar `xtask`/CI | Pipeline quebra |
191
-
192
- ### 7) Quando NÃO migrar
193
-
194
- - Projeto < 30 arquivos, 1 binário, 1 dev
195
- - Sprint crítico em curso (migração é refactor estrutural)
196
- - Sem sinais reais de dor (build < 5s, sem conflitos)
197
-
198
- ## Saída esperada
199
-
200
- Para Cenário A: atualizar `DARE/BLUEPRINT.md` com a estrutura de crates
201
- (diagrama + tabela de responsabilidades + `Cargo.toml` workspace).
202
-
203
- Para Cenário B: gerar arquivo `DARE/MIGRATION-PLAN.md` com:
204
- - Sintomas detectados (linhas de código, arquivos, etc.)
205
- - 4 PRs em ordem com diff de pastas
206
- - Critério de aceite por PR
207
- - Estimativa de esforço
208
-
209
- $ARGUMENTS
1
+ # /dare-rust-workspace
2
+
3
+ Decisão e migração de Cargo workspace multi-crate para projetos Rust/Axum.
4
+ Cobre dois cenários:
5
+
6
+ - **Cenário A — Design/Blueprint:** decidir desde o início se o projeto
7
+ nasce single-crate ou workspace.
8
+ - **Cenário B — Migração:** propor plano de PRs incrementais para
9
+ transformar um projeto single-crate maduro em workspace.
10
+
11
+ ## Como usar
12
+
13
+ ```
14
+ /dare-rust-workspace # análise contextual (lê BLUEPRINT/src/)
15
+ /dare-rust-workspace --design # foco em decisão para projeto novo
16
+ /dare-rust-workspace --migrate # foco em plano de migração
17
+ ```
18
+
19
+ ## O que fazer
20
+
21
+ ### 1) Detectar o cenário
22
+
23
+ - Se existe `DARE/BLUEPRINT.md` mas o `src/` ainda não existe ou tem < 5
24
+ arquivos → Cenário A (decisão)
25
+ - Se `src/` tem > 30 arquivos `.rs` ou múltiplas subpastas top-level →
26
+ Cenário B (migração)
27
+ - Caso intermediário (15–30 arquivos) → mostrar os critérios e perguntar
28
+ ao usuário
29
+
30
+ ### 2) Cenário A — Decisão na fase Design/Blueprint
31
+
32
+ Aplique os critérios:
33
+
34
+ **Comece single-crate quando TODOS forem verdadeiros:**
35
+ - Apenas 1 binário (HTTP server)
36
+ - < 30 arquivos `.rs` esperados
37
+ - 1–2 sistemas externos (DB; ou DB + cache)
38
+ - Equipe ≤ 2 devs
39
+ - Sem deploy independente para subcomponentes
40
+
41
+ **Comece workspace quando QUALQUER for verdadeiro:**
42
+ - ≥ 2 binários previstos (API + worker; API + admin)
43
+ - ≥ 3 sistemas externos (PG + Redis + Rabbit + Qdrant + Neo4j…)
44
+ - Deploy independente desejado (workers em pods separados)
45
+ - Fronteiras arquiteturais críticas (domain puro; SDK publicável)
46
+ - Equipe ≥ 3 devs em paralelo
47
+
48
+ **Layout recomendado para workspace** (use `<p>` como prefixo do projeto):
49
+
50
+ ```
51
+ projeto/
52
+ ├── Cargo.toml # workspace root
53
+ ├── crates/
54
+ │ ├── <p>-domain/ (lib) # entities puras
55
+ │ ├── <p>-config/ (lib)
56
+ │ ├── <p>-db/ (lib)
57
+ │ ├── <p>-cache/ (lib)
58
+ │ ├── <p>-queue/ (lib)
59
+ │ ├── <p>-services/ (lib) # business logic
60
+ │ ├── <p>-integrators/ (lib) # clientes externos
61
+ │ ├── <p>-api/ (bin+lib) # HTTP server
62
+ │ ├── <p>-worker-<X>/ (bin) # 1 binário por worker
63
+ │ └── <p>-e2e/ (tests)
64
+ └── xtask/ # scripts em Rust
65
+ ```
66
+
67
+ **`Cargo.toml` raiz:**
68
+ ```toml
69
+ [workspace]
70
+ resolver = "2"
71
+ members = ["crates/<p>-domain", "crates/<p>-services", "crates/<p>-api", ...]
72
+
73
+ [workspace.package]
74
+ version = "0.1.0"
75
+ edition = "2021"
76
+ rust-version = "1.80"
77
+
78
+ [workspace.dependencies]
79
+ tokio = { version = "1.40", features = ["full"] }
80
+ axum = { version = "0.7", features = ["macros"] }
81
+ sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "uuid", "chrono", "migrate"] }
82
+ serde = { version = "1.0", features = ["derive"] }
83
+ thiserror = "1.0"
84
+ anyhow = "1.0"
85
+ tracing = "0.1"
86
+ uuid = { version = "1.10", features = ["v4", "serde"] }
87
+ chrono = { version = "0.4", features = ["serde"] }
88
+
89
+ [profile.release]
90
+ opt-level = 3
91
+ lto = "thin"
92
+ codegen-units = 1
93
+ strip = true
94
+ ```
95
+
96
+ Cada crate filho usa `<dep> = { workspace = true }` para herdar versão.
97
+
98
+ **Diagrama no BLUEPRINT.md (Mermaid):**
99
+ ```mermaid
100
+ graph TD
101
+ api[<p>-api]
102
+ worker[<p>-worker-flow]
103
+ services[<p>-services]
104
+ domain[<p>-domain]
105
+ db[<p>-db]
106
+ api --> services
107
+ worker --> services
108
+ services --> db
109
+ services --> domain
110
+ db --> domain
111
+ ```
112
+
113
+ Regra de seta: domain no fundo (ninguém depende para baixo), services no
114
+ meio (depende de domain/db, nunca de api), binários no topo.
115
+
116
+ ### 3) Cenário B — Plano de migração em 4 PRs
117
+
118
+ Migração **nunca é big-bang**. Cada PR passa build/test/clippy no fim e é
119
+ deployável.
120
+
121
+ **PR 1 — Workers** (mais isolados, menor risco):
122
+ ```
123
+ src/workers/ → crates/<p>-worker-<X>/
124
+ ├── Cargo.toml
125
+ └── src/main.rs
126
+ ```
127
+ - Cada `tokio::spawn(worker_x)` do `main.rs` da API vira binário próprio.
128
+ - API para de spawn workers; workers sobem como processo independente.
129
+ - `docker-compose.yml` ganha service novo por worker.
130
+ - Em k8s: Deployment próprio com scaling independente.
131
+
132
+ **PR 2 — Integrators** (clientes externos):
133
+ ```
134
+ src/integrators/{llm, neo4j, qdrant}.rs → crates/<p>-integrators/src/lib.rs
135
+ ```
136
+ - Tudo que fala com mundo externo (LLM, Stripe, Meta, DB externo) vira lib.
137
+ - API e workers importam via `path = "../<p>-integrators"`.
138
+ - Crate é folha do grafo — NÃO depende de domain/services.
139
+
140
+ **PR 3 — Domain** (entidades puras):
141
+ ```
142
+ src/models/ \
143
+ src/dto/ → crates/<p>-domain/src/lib.rs
144
+ src/error.rs /
145
+ ```
146
+ - `<p>-domain` tem deps **mínimas**: `serde`, `uuid`, `chrono`, `thiserror`.
147
+ - Nada de axum, sqlx, redis. Build do domain falha se alguém tentar.
148
+ - Outros crates passam a usar `<p>-domain` em vez de `crate::models::`.
149
+
150
+ **PR 4 — API e workspace root:**
151
+ ```
152
+ Cargo.toml raiz → [workspace] puro
153
+ src/ (resto) → crates/<p>-api/src/
154
+ ```
155
+ - `Cargo.toml` raiz só com `[workspace]` + `[workspace.package]` +
156
+ `[workspace.dependencies]` + `[profile.*]`.
157
+ - API vai pra `crates/<p>-api/`.
158
+ - Todas as deps centralizadas no root.
159
+
160
+ ### 4) Validação após cada PR
161
+
162
+ ```bash
163
+ cargo build --workspace --all-targets
164
+ cargo test --workspace
165
+ cargo clippy --workspace --all-targets -- -D warnings
166
+ ```
167
+
168
+ Mais smoke E2E do projeto. Se algum falhar, PR está incompleto.
169
+
170
+ ### 5) Tradução de imports
171
+
172
+ | Antes (single-crate) | Depois (workspace) |
173
+ |----------------------|--------------------|
174
+ | `use crate::models::User;` | `use <p>_domain::User;` |
175
+ | `use crate::services::auth::login;` | `use <p>_services::auth::login;` |
176
+ | `use crate::integrators::llm::Gemini;` | `use <p>_integrators::llm::Gemini;` |
177
+ | `use crate::handlers::health::router;` | *fica igual — mesmo crate* |
178
+
179
+ Hifens (Cargo) viram underlines (Rust idents).
180
+
181
+ ### 6) Antipatterns para alertar o usuário
182
+
183
+ | Antipattern | Por quê |
184
+ |-------------|---------|
185
+ | Big-bang (1 PR mexe em tudo) | Impossível revisar/reverter |
186
+ | Crate `common`/`shared`/`utils` | Vira lixeira; viola SRP |
187
+ | Crate por arquivo | 50 crates de 100 linhas → parar build |
188
+ | Refactor + migração no mesmo PR | Bug fica escondido |
189
+ | Mover testes em PR separado | Crate sem test = bug em standby |
190
+ | Esquecer atualizar `xtask`/CI | Pipeline quebra |
191
+
192
+ ### 7) Quando NÃO migrar
193
+
194
+ - Projeto < 30 arquivos, 1 binário, 1 dev
195
+ - Sprint crítico em curso (migração é refactor estrutural)
196
+ - Sem sinais reais de dor (build < 5s, sem conflitos)
197
+
198
+ ## Saída esperada
199
+
200
+ Para Cenário A: atualizar `DARE/BLUEPRINT.md` com a estrutura de crates
201
+ (diagrama + tabela de responsabilidades + `Cargo.toml` workspace).
202
+
203
+ Para Cenário B: gerar arquivo `DARE/MIGRATION-PLAN.md` com:
204
+ - Sintomas detectados (linhas de código, arquivos, etc.)
205
+ - 4 PRs em ordem com diff de pastas
206
+ - Critério de aceite por PR
207
+ - Estimativa de esforço
208
+
209
+ $ARGUMENTS