@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
@@ -0,0 +1,107 @@
1
+ ---
2
+ description: Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda depois do comando `dare reverse` e preenche as inferências — propósito, domínio, responsabilidades e diagramas de fluxo — nos artefatos DARE/IDEIA.md e DARE/REVERSE/module-*.md.
3
+ globs: DARE/IDEIA.md,DARE/REVERSE/**
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Skill: Reverse — Engenharia Reversa (Fase 0)
8
+
9
+ Esta skill é a **camada semântica** da engenharia reversa. Ela roda **depois** do comando
10
+ `dare reverse`, que já varreu o código e gerou os esqueletos determinísticos. Sua função é
11
+ **preencher as inferências** que o CLI não faz: propósito, domínio, responsabilidades e os
12
+ **diagramas de fluxo** ("como a coisa funciona").
13
+
14
+ > Pré-requisito: rodar `dare reverse` antes (gera `DARE/IDEIA.md`, `DARE/REVERSE/module-*.md`
15
+ > e `DARE/REVERSE/reverse-facts.json`). Se não existirem, peça para rodar `dare reverse` primeiro.
16
+
17
+ ## Quando usar
18
+
19
+ - O usuário quer entender / documentar um projeto **legado** antes de adotar o DARE.
20
+ - Acabou de rodar `dare reverse` e os artefatos têm seções `<!-- AGENT: ... -->` em aberto.
21
+ - O objetivo é gerar uma **pré-arquitetura** (`IDEIA.md`) que depois vira `DESIGN.md`.
22
+
23
+ ## Marcação de confiança (obrigatória)
24
+
25
+ Ao preencher cada `<!-- AGENT -->`, marque **cada afirmação** com seu nível de confiança + evidência:
26
+
27
+ - `- 🟢 <claim>. ` + `` `arquivo:linha` `` — **CONFIRMED**: evidência direta no código.
28
+ - `- 🟡 <claim>. ` + `` `arquivo:linha` `` — **INFERRED**: padrão/dedução; pode estar errado.
29
+ - `- 🔴 <claim>. → ver gaps.md` — **GAP**: não determinável pelo código.
30
+
31
+ Regra: só 🟢 com evidência direta; na dúvida, 🟡; sem base, 🔴 (registre em `gaps.md`). Os fatos
32
+ estruturais (caminho, LOC, deps) já vêm pré-marcados 🟢 pelo CLI — **não os altere**.
33
+
34
+ ## O que fazer
35
+
36
+ ### 1. Carregar os fatos (não re-varrer tudo)
37
+
38
+ - Leia `DARE/REVERSE/reverse-facts.json` — fonte de fatos determinística (stack, módulos, LOC,
39
+ grafo de dependências). **Confie nela** para o inventário.
40
+ - Para cada módulo, abra **2-5 arquivos representativos** (entrypoints, controllers, services,
41
+ models) — o suficiente para inferir responsabilidade e fluxo. Não leia o módulo inteiro.
42
+
43
+ ### 2. Preencher `DARE/IDEIA.md`
44
+
45
+ Substitua cada bloco `<!-- AGENT: ... -->`:
46
+
47
+ - **Propósito Inferido** — 2-4 frases: o que o software faz e por quê.
48
+ - **Domínio & Conceitos** — entidades de negócio + glossário.
49
+ - **Modelo de Dados (reconstruído)** — entidades, campos-chave, relacionamentos.
50
+ - **Superfície de API** — endpoints inferidos de rotas/controllers.
51
+ - **Fluxo do Sistema** — um `flowchart TD` Mermaid do caminho principal de request/dados
52
+ atravessando os módulos.
53
+ - **⚠️ Incertezas / Gaps** — o que NÃO deu pra inferir + perguntas objetivas para o humano.
54
+
55
+ **Não toque** no Mapa de Módulos nem na tabela (determinísticos, gerados pelo CLI).
56
+
57
+ ### 3. Preencher cada `DARE/REVERSE/module-*.md`
58
+
59
+ - **Responsabilidade** — papel do módulo no sistema (1-3 frases).
60
+ - **Superfície Pública** — o que expõe (funções/classes/endpoints/tipos).
61
+ - **Como Funciona (fluxo)** — um `sequenceDiagram` Mermaid do fluxo típico
62
+ (entrypoint → service → repository → DB/externo).
63
+ - **Dependências & Acoplamento** — comente o acoplamento e riscos (circular, hotspot HIGH).
64
+
65
+ ### 4. Apresentar ao usuário
66
+
67
+ Resumo: propósito inferido, nº de módulos, principais incertezas. Reforce que o `IDEIA.md` é um
68
+ **rascunho a validar** antes de promover a DESIGN.
69
+
70
+ ## Passo final — Gaps, Questions e Reviewer
71
+
72
+ 1. **`gaps.md`** — consolide os 🔴 classificados por severidade (crítico/moderado/cosmético/fora-escopo) + tratamento.
73
+ 2. **`questions.md`** — perguntas objetivas ao humano.
74
+ 3. **Reviewer** — releia os arquivos-chave e rebaixe claims sem evidência (🟢→🟡 ou 🟡→🔴).
75
+ 4. **Rode `dare reverse --report`** — gera `confidence-report.md` + `traceability/code-spec-matrix.md` (índice determinístico).
76
+
77
+ ## Modo `--deep` (Fase 3)
78
+
79
+ Se `dare reverse --deep` foi usado, complete os artefatos extras em `DARE/REVERSE/`:
80
+ - **`erd.md`** — entidades extraídas pelo CLI (🟢); complete relações não-explícitas (🟡).
81
+ - **`domain-rules.md`** — regras de negócio (validações, invariantes, cálculos), 🟢/🟡/🔴.
82
+ - **`state-machines.md`** — `stateDiagram-v2` por entidade/fluxo (estados/transições reais).
83
+ - **`permissions.md`** — papéis, recursos e regras de autorização.
84
+ - **`c4/c4-context.md`** e **`c4/c4-container.md`** — atores/externos e containers (component = mapa de módulos).
85
+
86
+ ## Regras de ouro
87
+
88
+ 1. **Não invente** — fluxo não-claro vira 🔴 (gap), não chute.
89
+ 2. **Fidelidade ao código real** — descreva o que o código faz, não o que deveria fazer.
90
+ 3. **Diagramas enxutos** — legibilidade acima de exaustividade.
91
+ 4. **Não re-varra** — os fatos já estão em `reverse-facts.json`.
92
+ 5. **Preserve o determinístico** — nunca edite o Mapa de Módulos/tabela/grafo do CLI.
93
+
94
+ ## Antipatterns
95
+
96
+ | AP | Antipattern | Por quê |
97
+ |---|---|---|
98
+ | AP-01 | Inventar endpoints/entidades inexistentes | Polui a pré-arquitetura com ficção |
99
+ | AP-02 | Reescrever a tabela de módulos do CLI | Quebra a fonte determinística |
100
+ | AP-03 | `sequenceDiagram` gigante e ilegível | Anula o propósito do diagrama |
101
+ | AP-04 | Pular a seção de Incertezas | Remove o ponto de validação humana |
102
+ | AP-05 | Ler o projeto inteiro arquivo a arquivo | Desperdiça contexto; os fatos já estão no JSON |
103
+ | AP-06 | Marcar tudo 🟢 sem evidência `file:line` | Infla a confiança e engana o humano |
104
+
105
+ ---
106
+
107
+ Skill MIT — parte do DARE Method. Fase 0 (brownfield). Pareia com o comando `dare reverse`.
@@ -0,0 +1,281 @@
1
+ ---
2
+ description: Guia DARE para desenvolvimento Leptos (Rust + WASM) — decisão CSR vs Fullstack, idioms 0.7, antipatterns, tipos compartilhados server+WASM com cfg_attr, workspace misto WASM+nativo, templates de tasks.
3
+ globs: **/*.rs,Cargo.toml,.cargo/config.toml,Trunk.toml,Leptos.toml
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Skill: Rust/Leptos DARE
8
+
9
+ Você é um especialista em Leptos 0.7+ (framework reativo Rust → WASM). Esta skill cobre **decisão de variante, idioms obrigatórios, antipatterns clássicos e estruturação de tipos compartilhados** entre server e WASM.
10
+
11
+ ---
12
+
13
+ ## 1. Decisão de variante: CSR vs Fullstack
14
+
15
+ | Critério | CSR (trunk) | Fullstack (cargo-leptos) |
16
+ |---|---|---|
17
+ | SEO necessário | ❌ | ✅ |
18
+ | Time-to-interactive crítico | ❌ | ✅ |
19
+ | Dashboard interno / admin | ✅ | ✅ |
20
+ | Backend Axum existente | indiferente | ✅ integração direta |
21
+ | Simplicidade de deploy | ✅ arquivos estáticos | ⚠️ binário Axum |
22
+ | Server functions (`#[server]`) | ❌ não existe | ✅ |
23
+
24
+ **Regra de ouro:**
25
+ - Atrás de login e SEO não importa → **CSR**
26
+ - Precisa SEO, carregamento inicial rápido, server functions → **Fullstack**
27
+ - Já tem Axum no monorepo → **Fullstack** (workspace unificado)
28
+
29
+ ---
30
+
31
+ ## 2. Ferramentas — nunca misturar
32
+
33
+ | Variante | Build | Dev | Test |
34
+ |---|---|---|---|
35
+ | CSR | `trunk build --release` | `trunk serve` | `cargo test --workspace` |
36
+ | Fullstack | `cargo leptos build --release` | `cargo leptos watch` | `cargo test --workspace` |
37
+
38
+ > ⚠️ `cargo leptos test` **não existe**. Use `cargo test --workspace`.
39
+ > ⚠️ Não use `trunk` para fullstack nem `cargo leptos` para CSR.
40
+
41
+ ---
42
+
43
+ ## 3. Idioms obrigatórios Leptos 0.7
44
+
45
+ ### Estado reativo
46
+
47
+ ```rust
48
+ let (count, set_count) = signal(0);
49
+ let doubled = move || count.get() * 2; // derived (memo inline)
50
+
51
+ // Estado complexo / compartilhado:
52
+ let count = RwSignal::new(0);
53
+ ```
54
+
55
+ ### Dados assíncronos
56
+
57
+ ```rust
58
+ // ✅ Resource — fetch declarativo, integra com Suspense
59
+ let user = Resource::new(|| user_id(), |id| async move { fetch_user(id).await });
60
+
61
+ view! {
62
+ <Suspense fallback=|| view! { <p>"Loading..."</p> }>
63
+ {move || user.get().map(|u| view! { <p>{u.name}</p> })}
64
+ </Suspense>
65
+ }
66
+
67
+ // ❌ Effect que faz fetch — re-executa em todo render
68
+ Effect::new(move |_| { spawn_local(async { fetch_user(id).await }); });
69
+ ```
70
+
71
+ ### Mutações
72
+
73
+ ```rust
74
+ let save = Action::new(|input: &String| {
75
+ let input = input.clone();
76
+ async move { api::save(input).await }
77
+ });
78
+
79
+ view! {
80
+ <button on:click=move |_| save.dispatch("hello".to_string())>"Save"</button>
81
+ <Show when=move || save.pending().get()><p>"Saving..."</p></Show>
82
+ }
83
+ ```
84
+
85
+ ### Renderização condicional e listas
86
+
87
+ ```rust
88
+ view! {
89
+ <Show when=move || logged_in.get() fallback=|| view! { <Login/> }>
90
+ <Dashboard/>
91
+ </Show>
92
+
93
+ <For
94
+ each=move || items.get()
95
+ key=|item| item.id
96
+ children=move |item| view! { <ItemRow item=item/> }
97
+ />
98
+ }
99
+ ```
100
+
101
+ ### Server functions (fullstack only)
102
+
103
+ ```rust
104
+ #[server(SaveUser, "/api")]
105
+ pub async fn save_user(name: String) -> Result<User, ServerFnError> {
106
+ db::create_user(name).await.map_err(Into::into)
107
+ }
108
+
109
+ let save = ServerAction::<SaveUser>::new();
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 4. Tipos compartilhados server + WASM
115
+
116
+ ```rust
117
+ // crates/<p>-domain/src/lib.rs
118
+ use serde::{Deserialize, Serialize};
119
+
120
+ #[cfg_attr(feature = "ssr", derive(sqlx::FromRow))] // só no server
121
+ #[derive(Clone, Debug, Serialize, Deserialize)] // server + WASM
122
+ pub struct SecurityEvent {
123
+ pub id: uuid::Uuid,
124
+ pub attack_type: String,
125
+ pub risk_score: f32,
126
+ pub blocked: bool,
127
+ }
128
+ ```
129
+
130
+ ```toml
131
+ # Cargo.toml do crate domain
132
+ [dependencies]
133
+ serde = { version = "1.0", features = ["derive"] }
134
+ uuid = { version = "1.10", features = ["v4", "serde"] }
135
+
136
+ [dependencies.sqlx]
137
+ version = "0.8"
138
+ features = ["postgres", "runtime-tokio", "uuid"]
139
+ optional = true
140
+
141
+ [features]
142
+ ssr = ["dep:sqlx"]
143
+ ```
144
+
145
+ > O crate domain compila duas vezes: x86 (server, com sqlx) e wasm32 (client, sem sqlx). `cfg_attr` garante que `sqlx::FromRow` só aparece no server build.
146
+
147
+ ---
148
+
149
+ ## 5. Workspace misto (WASM + nativo)
150
+
151
+ ```toml
152
+ # Cargo.toml do workspace
153
+ [workspace]
154
+ resolver = "2"
155
+ members = [
156
+ "crates/<p>-core", # lib nativa (x86)
157
+ "crates/<p>-server", # bin nativo — Axum
158
+ "crates/<p>-web", # bin+lib WASM — Leptos
159
+ "crates/<p>-cli", # bin nativo
160
+ ]
161
+ ```
162
+
163
+ ```toml
164
+ # crates/<p>-web/Cargo.toml
165
+ [features]
166
+ default = []
167
+ hydrate = ["leptos/hydrate"]
168
+ ssr = [
169
+ "dep:axum",
170
+ "dep:leptos_axum",
171
+ "dep:tokio",
172
+ "leptos/ssr",
173
+ ]
174
+ ```
175
+
176
+ > ⚠️ **Antipattern crítico:** `[build] target = "wasm32-unknown-unknown"` no `.cargo/config.toml` raiz quebra todos os crates nativos. `cargo leptos` e `trunk` gerenciam o target WASM internamente — não interfira.
177
+
178
+ ---
179
+
180
+ ## 6. Antipatterns
181
+
182
+ | Antipattern | Por quê | Alternativa |
183
+ |---|---|---|
184
+ | `wasm_bindgen` direto | Bypassa abstrações Leptos | APIs do Leptos (`web_sys` via feature) |
185
+ | `panic!` em componentes | Derruba app sem `ErrorBoundary` | `Result<_, ServerFnError>` + `ErrorBoundary` |
186
+ | `Effect` que faz fetch | Re-executa a cada render | `Resource::new()` |
187
+ | `tokio::spawn` no client | `tokio` não existe no WASM | `spawn_local()` ou server function |
188
+ | `std::thread` no client | Não existe no WASM | Signals para paralelismo reativo |
189
+ | `cargo leptos test` | Comando inválido | `cargo test --workspace` |
190
+ | `[build] target` global | Quebra crates nativos | Sem target global; cargo-leptos gerencia |
191
+ | Múltiplos signals correlacionados | Render extra desnecessário | Derived signal (`move \|\| (a.get(), b.get())`) |
192
+
193
+ ---
194
+
195
+ ## 7. Templates de tasks DARE
196
+
197
+ Cole no `DARE/dare-dag.yaml`:
198
+
199
+ ```yaml
200
+ - id: leptos-001
201
+ title: "Workspace, AppShell e Router base"
202
+ description: |
203
+ Cargo workspace com resolver = "2".
204
+ App component com leptos_router::Router.
205
+ Layout base (header, main, footer). Rota "/" → HomePage.
206
+ Ralph Loop: cargo leptos build --release + cargo test --workspace + cargo clippy
207
+ depends_on: []
208
+
209
+ - id: leptos-002
210
+ title: "Form com Action + server function"
211
+ description: |
212
+ #[server] fn para processar o form.
213
+ ActionForm ou Action manual.
214
+ Validar input no server (ServerFnError em erro).
215
+ Pending state com Action::pending() signal.
216
+ depends_on: [leptos-001]
217
+
218
+ - id: leptos-003
219
+ title: "Lista paginada com Resource + Suspense"
220
+ description: |
221
+ Resource recebendo página como signal.
222
+ Envolver em Suspense com fallback loading.
223
+ ErrorBoundary para erros de fetch.
224
+ Paginação com For + key por ID.
225
+ depends_on: [leptos-001]
226
+ ```
227
+
228
+ ---
229
+
230
+ ## 8. Stack canônica
231
+
232
+ | Camada | Cliente (WASM) | Server (Fullstack) |
233
+ |---|---|---|
234
+ | Framework | Leptos 0.7+ | Leptos 0.7 + leptos_axum |
235
+ | Roteamento | leptos_router | (compartilhado) |
236
+ | Estado server | Resource + Server Functions | sqlx + Axum |
237
+ | Estilo | Tailwind | — |
238
+ | Build | cargo-leptos / trunk | cargo-leptos |
239
+
240
+ ---
241
+
242
+ ## 9. Aplicação por fase DARE
243
+
244
+ ### Design
245
+ - Decidir CSR vs Fullstack (tabela §1) e justificar
246
+ - Listar componentes e server functions
247
+ - Listar tipos compartilhados → crate `<p>-domain`
248
+
249
+ ### Blueprint
250
+ - Tabela de componentes (nome, props, signals)
251
+ - Lista de server functions com assinatura
252
+ - Tipos no crate domain com features ssr/hydrate
253
+
254
+ ### Tasks
255
+ - Use os templates de §7
256
+
257
+ ### Execute
258
+ - Ralph Loop validation:
259
+ ```bash
260
+ cargo leptos build --release # ou trunk build --release
261
+ cargo test --workspace
262
+ cargo clippy --workspace --all-targets -- -D warnings
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Checklist final
268
+
269
+ - [ ] Variante decidida (CSR ou Fullstack) e justificada no DESIGN.md
270
+ - [ ] Workspace com `resolver = "2"` e crates separados
271
+ - [ ] `<p>-domain` com tipos compartilhados e features `ssr`
272
+ - [ ] Components usam Resource (não Effect) para fetch
273
+ - [ ] Mutations usam Action / ServerAction
274
+ - [ ] Server functions com `Result<_, ServerFnError>`
275
+ - [ ] ErrorBoundary em torno de componentes assíncronos
276
+ - [ ] Sem `[build] target` global no `.cargo/config.toml`
277
+ - [ ] `cargo test --workspace` (não `cargo leptos test`)
278
+
279
+ ---
280
+
281
+ Skill licenciada MIT — parte do DARE Method v3.