@dewtech/dare-cli 3.10.0 → 3.12.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 (441) hide show
  1. package/README.md +7 -1
  2. package/dist/__tests__/ci-pr-regression.test.d.ts +2 -0
  3. package/dist/__tests__/ci-pr-regression.test.d.ts.map +1 -0
  4. package/dist/__tests__/ci-pr-regression.test.js +76 -0
  5. package/dist/__tests__/ci-pr-regression.test.js.map +1 -0
  6. package/dist/__tests__/dashboard-front.test.d.ts +2 -0
  7. package/dist/__tests__/dashboard-front.test.d.ts.map +1 -0
  8. package/dist/__tests__/dashboard-front.test.js +37 -0
  9. package/dist/__tests__/dashboard-front.test.js.map +1 -0
  10. package/dist/__tests__/dashboard-regression.test.d.ts +2 -0
  11. package/dist/__tests__/dashboard-regression.test.d.ts.map +1 -0
  12. package/dist/__tests__/dashboard-regression.test.js +68 -0
  13. package/dist/__tests__/dashboard-regression.test.js.map +1 -0
  14. package/dist/__tests__/dynamic-dag-regression.test.d.ts +2 -0
  15. package/dist/__tests__/dynamic-dag-regression.test.d.ts.map +1 -0
  16. package/dist/__tests__/dynamic-dag-regression.test.js +464 -0
  17. package/dist/__tests__/dynamic-dag-regression.test.js.map +1 -0
  18. package/dist/__tests__/ensure-skills.test.js +5 -0
  19. package/dist/__tests__/ensure-skills.test.js.map +1 -1
  20. package/dist/__tests__/ide-command-parity.test.js +2 -0
  21. package/dist/__tests__/ide-command-parity.test.js.map +1 -1
  22. package/dist/__tests__/project-generator.test.js +17 -0
  23. package/dist/__tests__/project-generator.test.js.map +1 -1
  24. package/dist/__tests__/reverse-facts.test.js +1 -0
  25. package/dist/__tests__/reverse-facts.test.js.map +1 -1
  26. package/dist/__tests__/terminal-parity-regression.test.d.ts +2 -0
  27. package/dist/__tests__/terminal-parity-regression.test.d.ts.map +1 -0
  28. package/dist/__tests__/terminal-parity-regression.test.js +116 -0
  29. package/dist/__tests__/terminal-parity-regression.test.js.map +1 -0
  30. package/dist/__tests__/terminal-parity.test.d.ts +2 -0
  31. package/dist/__tests__/terminal-parity.test.d.ts.map +1 -0
  32. package/dist/__tests__/terminal-parity.test.js +81 -0
  33. package/dist/__tests__/terminal-parity.test.js.map +1 -0
  34. package/dist/agent/__tests__/antigravity-driver.test.d.ts +2 -0
  35. package/dist/agent/__tests__/antigravity-driver.test.d.ts.map +1 -0
  36. package/dist/agent/__tests__/antigravity-driver.test.js +52 -0
  37. package/dist/agent/__tests__/antigravity-driver.test.js.map +1 -0
  38. package/dist/agent/__tests__/codex-driver.test.d.ts +2 -0
  39. package/dist/agent/__tests__/codex-driver.test.d.ts.map +1 -0
  40. package/dist/agent/__tests__/codex-driver.test.js +68 -0
  41. package/dist/agent/__tests__/codex-driver.test.js.map +1 -0
  42. package/dist/agent/__tests__/cursor-driver.test.d.ts +2 -0
  43. package/dist/agent/__tests__/cursor-driver.test.d.ts.map +1 -0
  44. package/dist/agent/__tests__/cursor-driver.test.js +52 -0
  45. package/dist/agent/__tests__/cursor-driver.test.js.map +1 -0
  46. package/dist/agent/driver.d.ts +1 -1
  47. package/dist/agent/driver.d.ts.map +1 -1
  48. package/dist/agent/drivers/antigravity.d.ts +8 -0
  49. package/dist/agent/drivers/antigravity.d.ts.map +1 -0
  50. package/dist/agent/drivers/antigravity.js +99 -0
  51. package/dist/agent/drivers/antigravity.js.map +1 -0
  52. package/dist/agent/drivers/codex.d.ts +12 -0
  53. package/dist/agent/drivers/codex.d.ts.map +1 -0
  54. package/dist/agent/drivers/codex.js +137 -0
  55. package/dist/agent/drivers/codex.js.map +1 -0
  56. package/dist/agent/drivers/cursor.d.ts +8 -0
  57. package/dist/agent/drivers/cursor.d.ts.map +1 -0
  58. package/dist/agent/drivers/cursor.js +99 -0
  59. package/dist/agent/drivers/cursor.js.map +1 -0
  60. package/dist/ai/__tests__/ai-core.test.d.ts +2 -0
  61. package/dist/ai/__tests__/ai-core.test.d.ts.map +1 -0
  62. package/dist/ai/__tests__/ai-core.test.js +41 -0
  63. package/dist/ai/__tests__/ai-core.test.js.map +1 -0
  64. package/dist/ai/__tests__/parity.test.d.ts +2 -0
  65. package/dist/ai/__tests__/parity.test.d.ts.map +1 -0
  66. package/dist/ai/__tests__/parity.test.js +36 -0
  67. package/dist/ai/__tests__/parity.test.js.map +1 -0
  68. package/dist/ai/__tests__/pipeline.test.d.ts +2 -0
  69. package/dist/ai/__tests__/pipeline.test.d.ts.map +1 -0
  70. package/dist/ai/__tests__/pipeline.test.js +147 -0
  71. package/dist/ai/__tests__/pipeline.test.js.map +1 -0
  72. package/dist/ai/__tests__/refine-bridge.test.d.ts +2 -0
  73. package/dist/ai/__tests__/refine-bridge.test.d.ts.map +1 -0
  74. package/dist/ai/__tests__/refine-bridge.test.js +17 -0
  75. package/dist/ai/__tests__/refine-bridge.test.js.map +1 -0
  76. package/dist/ai/__tests__/resolve.test.d.ts +2 -0
  77. package/dist/ai/__tests__/resolve.test.d.ts.map +1 -0
  78. package/dist/ai/__tests__/resolve.test.js +42 -0
  79. package/dist/ai/__tests__/resolve.test.js.map +1 -0
  80. package/dist/ai/capabilities.d.ts +3 -0
  81. package/dist/ai/capabilities.d.ts.map +1 -0
  82. package/dist/ai/capabilities.js +11 -0
  83. package/dist/ai/capabilities.js.map +1 -0
  84. package/dist/ai/command-options.d.ts +10 -0
  85. package/dist/ai/command-options.d.ts.map +1 -0
  86. package/dist/ai/command-options.js +15 -0
  87. package/dist/ai/command-options.js.map +1 -0
  88. package/dist/ai/config.d.ts +27 -0
  89. package/dist/ai/config.d.ts.map +1 -0
  90. package/dist/ai/config.js +89 -0
  91. package/dist/ai/config.js.map +1 -0
  92. package/dist/ai/parity.d.ts +13 -0
  93. package/dist/ai/parity.d.ts.map +1 -0
  94. package/dist/ai/parity.js +87 -0
  95. package/dist/ai/parity.js.map +1 -0
  96. package/dist/ai/parse-json-output.d.ts +5 -0
  97. package/dist/ai/parse-json-output.d.ts.map +1 -0
  98. package/dist/ai/parse-json-output.js +25 -0
  99. package/dist/ai/parse-json-output.js.map +1 -0
  100. package/dist/ai/pipeline.d.ts +20 -0
  101. package/dist/ai/pipeline.d.ts.map +1 -0
  102. package/dist/ai/pipeline.js +303 -0
  103. package/dist/ai/pipeline.js.map +1 -0
  104. package/dist/ai/prompts.d.ts +6 -0
  105. package/dist/ai/prompts.d.ts.map +1 -0
  106. package/dist/ai/prompts.js +49 -0
  107. package/dist/ai/prompts.js.map +1 -0
  108. package/dist/ai/providers.d.ts +63 -0
  109. package/dist/ai/providers.d.ts.map +1 -0
  110. package/dist/ai/providers.js +297 -0
  111. package/dist/ai/providers.js.map +1 -0
  112. package/dist/ai/refine-bridge.d.ts +5 -0
  113. package/dist/ai/refine-bridge.d.ts.map +1 -0
  114. package/dist/ai/refine-bridge.js +14 -0
  115. package/dist/ai/refine-bridge.js.map +1 -0
  116. package/dist/ai/registry.d.ts +12 -0
  117. package/dist/ai/registry.d.ts.map +1 -0
  118. package/dist/ai/registry.js +43 -0
  119. package/dist/ai/registry.js.map +1 -0
  120. package/dist/ai/resolve.d.ts +28 -0
  121. package/dist/ai/resolve.d.ts.map +1 -0
  122. package/dist/ai/resolve.js +83 -0
  123. package/dist/ai/resolve.js.map +1 -0
  124. package/dist/ai/schemas.d.ts +175 -0
  125. package/dist/ai/schemas.d.ts.map +1 -0
  126. package/dist/ai/schemas.js +199 -0
  127. package/dist/ai/schemas.js.map +1 -0
  128. package/dist/ai/types.d.ts +52 -0
  129. package/dist/ai/types.d.ts.map +1 -0
  130. package/dist/ai/types.js +8 -0
  131. package/dist/ai/types.js.map +1 -0
  132. package/dist/bin/dare.js +4 -0
  133. package/dist/bin/dare.js.map +1 -1
  134. package/dist/commands/__tests__/ai-command.test.d.ts +2 -0
  135. package/dist/commands/__tests__/ai-command.test.d.ts.map +1 -0
  136. package/dist/commands/__tests__/ai-command.test.js +68 -0
  137. package/dist/commands/__tests__/ai-command.test.js.map +1 -0
  138. package/dist/commands/__tests__/dashboard-command.test.d.ts +2 -0
  139. package/dist/commands/__tests__/dashboard-command.test.d.ts.map +1 -0
  140. package/dist/commands/__tests__/dashboard-command.test.js +62 -0
  141. package/dist/commands/__tests__/dashboard-command.test.js.map +1 -0
  142. package/dist/commands/__tests__/execute-agent.test.js +82 -0
  143. package/dist/commands/__tests__/execute-agent.test.js.map +1 -1
  144. package/dist/commands/__tests__/gate-flags.test.d.ts +2 -0
  145. package/dist/commands/__tests__/gate-flags.test.d.ts.map +1 -0
  146. package/dist/commands/__tests__/gate-flags.test.js +58 -0
  147. package/dist/commands/__tests__/gate-flags.test.js.map +1 -0
  148. package/dist/commands/__tests__/persist-viz.test.d.ts +2 -0
  149. package/dist/commands/__tests__/persist-viz.test.d.ts.map +1 -0
  150. package/dist/commands/__tests__/persist-viz.test.js +178 -0
  151. package/dist/commands/__tests__/persist-viz.test.js.map +1 -0
  152. package/dist/commands/__tests__/refine-apply.test.d.ts +2 -0
  153. package/dist/commands/__tests__/refine-apply.test.d.ts.map +1 -0
  154. package/dist/commands/__tests__/refine-apply.test.js +118 -0
  155. package/dist/commands/__tests__/refine-apply.test.js.map +1 -0
  156. package/dist/commands/__tests__/replan-splice.test.d.ts +2 -0
  157. package/dist/commands/__tests__/replan-splice.test.d.ts.map +1 -0
  158. package/dist/commands/__tests__/replan-splice.test.js +295 -0
  159. package/dist/commands/__tests__/replan-splice.test.js.map +1 -0
  160. package/dist/commands/ai.d.ts +3 -0
  161. package/dist/commands/ai.d.ts.map +1 -0
  162. package/dist/commands/ai.js +141 -0
  163. package/dist/commands/ai.js.map +1 -0
  164. package/dist/commands/blueprint.d.ts.map +1 -1
  165. package/dist/commands/blueprint.js +17 -3
  166. package/dist/commands/blueprint.js.map +1 -1
  167. package/dist/commands/dag.d.ts.map +1 -1
  168. package/dist/commands/dag.js +2 -0
  169. package/dist/commands/dag.js.map +1 -1
  170. package/dist/commands/dashboard.d.ts +17 -0
  171. package/dist/commands/dashboard.d.ts.map +1 -0
  172. package/dist/commands/dashboard.js +77 -0
  173. package/dist/commands/dashboard.js.map +1 -0
  174. package/dist/commands/design.d.ts.map +1 -1
  175. package/dist/commands/design.js +21 -2
  176. package/dist/commands/design.js.map +1 -1
  177. package/dist/commands/discover.d.ts.map +1 -1
  178. package/dist/commands/discover.js +9 -1
  179. package/dist/commands/discover.js.map +1 -1
  180. package/dist/commands/dna.d.ts.map +1 -1
  181. package/dist/commands/dna.js +23 -3
  182. package/dist/commands/dna.js.map +1 -1
  183. package/dist/commands/execute.d.ts +11 -0
  184. package/dist/commands/execute.d.ts.map +1 -1
  185. package/dist/commands/execute.js +219 -6
  186. package/dist/commands/execute.js.map +1 -1
  187. package/dist/commands/graph.d.ts.map +1 -1
  188. package/dist/commands/graph.js +33 -5
  189. package/dist/commands/graph.js.map +1 -1
  190. package/dist/commands/guard.d.ts.map +1 -1
  191. package/dist/commands/guard.js +27 -3
  192. package/dist/commands/guard.js.map +1 -1
  193. package/dist/commands/init.d.ts.map +1 -1
  194. package/dist/commands/init.js +1 -0
  195. package/dist/commands/init.js.map +1 -1
  196. package/dist/commands/migrate.d.ts.map +1 -1
  197. package/dist/commands/migrate.js +14 -2
  198. package/dist/commands/migrate.js.map +1 -1
  199. package/dist/commands/patterns.d.ts.map +1 -1
  200. package/dist/commands/patterns.js +14 -2
  201. package/dist/commands/patterns.js.map +1 -1
  202. package/dist/commands/refine.d.ts +2 -0
  203. package/dist/commands/refine.d.ts.map +1 -1
  204. package/dist/commands/refine.js +94 -22
  205. package/dist/commands/refine.js.map +1 -1
  206. package/dist/commands/reverse.d.ts.map +1 -1
  207. package/dist/commands/reverse.js +28 -3
  208. package/dist/commands/reverse.js.map +1 -1
  209. package/dist/commands/review.d.ts.map +1 -1
  210. package/dist/commands/review.js +60 -7
  211. package/dist/commands/review.js.map +1 -1
  212. package/dist/core/types/project.d.ts +1 -1
  213. package/dist/core/types/project.d.ts.map +1 -1
  214. package/dist/dag-runner/__tests__/maxdepth-config.test.d.ts +2 -0
  215. package/dist/dag-runner/__tests__/maxdepth-config.test.d.ts.map +1 -0
  216. package/dist/dag-runner/__tests__/maxdepth-config.test.js +28 -0
  217. package/dist/dag-runner/__tests__/maxdepth-config.test.js.map +1 -0
  218. package/dist/dag-runner/__tests__/sub-dag.test.d.ts +2 -0
  219. package/dist/dag-runner/__tests__/sub-dag.test.d.ts.map +1 -0
  220. package/dist/dag-runner/__tests__/sub-dag.test.js +127 -0
  221. package/dist/dag-runner/__tests__/sub-dag.test.js.map +1 -0
  222. package/dist/dag-runner/run_dag.d.ts +3 -1
  223. package/dist/dag-runner/run_dag.d.ts.map +1 -1
  224. package/dist/dag-runner/run_dag.js.map +1 -1
  225. package/dist/dag-runner/state-store.d.ts +2 -0
  226. package/dist/dag-runner/state-store.d.ts.map +1 -1
  227. package/dist/dag-runner/state-store.js +44 -8
  228. package/dist/dag-runner/state-store.js.map +1 -1
  229. package/dist/dag-runner/sub-dag.d.ts +23 -0
  230. package/dist/dag-runner/sub-dag.d.ts.map +1 -0
  231. package/dist/dag-runner/sub-dag.js +117 -0
  232. package/dist/dag-runner/sub-dag.js.map +1 -0
  233. package/dist/dashboard/__tests__/dashboard-routes.test.d.ts +2 -0
  234. package/dist/dashboard/__tests__/dashboard-routes.test.d.ts.map +1 -0
  235. package/dist/dashboard/__tests__/dashboard-routes.test.js +102 -0
  236. package/dist/dashboard/__tests__/dashboard-routes.test.js.map +1 -0
  237. package/dist/dashboard/routes.d.ts +8 -0
  238. package/dist/dashboard/routes.d.ts.map +1 -0
  239. package/dist/dashboard/routes.js +70 -0
  240. package/dist/dashboard/routes.js.map +1 -0
  241. package/dist/exec/safe-spawn.d.ts.map +1 -1
  242. package/dist/exec/safe-spawn.js +6 -1
  243. package/dist/exec/safe-spawn.js.map +1 -1
  244. package/dist/graphrag/__tests__/hybrid-integration.test.js +1 -1
  245. package/dist/graphrag/__tests__/hybrid-integration.test.js.map +1 -1
  246. package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.js +2 -2
  247. package/dist/graphrag/__tests__/no-heavy-dep-in-core.test.js.map +1 -1
  248. package/dist/graphrag/embeddings.js +1 -1
  249. package/dist/graphrag/embeddings.js.map +1 -1
  250. package/dist/http/__tests__/shared-app.test.d.ts +2 -0
  251. package/dist/http/__tests__/shared-app.test.d.ts.map +1 -0
  252. package/dist/http/__tests__/shared-app.test.js +57 -0
  253. package/dist/http/__tests__/shared-app.test.js.map +1 -0
  254. package/dist/http/app.d.ts +15 -0
  255. package/dist/http/app.d.ts.map +1 -0
  256. package/dist/http/app.js +32 -0
  257. package/dist/http/app.js.map +1 -0
  258. package/dist/mcp-server/server.d.ts.map +1 -1
  259. package/dist/mcp-server/server.js +5 -15
  260. package/dist/mcp-server/server.js.map +1 -1
  261. package/dist/reporters/__tests__/github-reporter.test.d.ts +2 -0
  262. package/dist/reporters/__tests__/github-reporter.test.d.ts.map +1 -0
  263. package/dist/reporters/__tests__/github-reporter.test.js +93 -0
  264. package/dist/reporters/__tests__/github-reporter.test.js.map +1 -0
  265. package/dist/reporters/ci-gate.d.ts +27 -0
  266. package/dist/reporters/ci-gate.d.ts.map +1 -0
  267. package/dist/reporters/ci-gate.js +100 -0
  268. package/dist/reporters/ci-gate.js.map +1 -0
  269. package/dist/reporters/github.d.ts +36 -0
  270. package/dist/reporters/github.d.ts.map +1 -0
  271. package/dist/reporters/github.js +142 -0
  272. package/dist/reporters/github.js.map +1 -0
  273. package/dist/skills/bundled.d.ts +5 -0
  274. package/dist/skills/bundled.d.ts.map +1 -0
  275. package/dist/skills/bundled.js +34 -0
  276. package/dist/skills/bundled.js.map +1 -0
  277. package/dist/skills/commands/add.d.ts +1 -3
  278. package/dist/skills/commands/add.d.ts.map +1 -1
  279. package/dist/skills/commands/add.js +20 -3
  280. package/dist/skills/commands/add.js.map +1 -1
  281. package/dist/skills/tests/bundled.spec.d.ts +2 -0
  282. package/dist/skills/tests/bundled.spec.d.ts.map +1 -0
  283. package/dist/skills/tests/bundled.spec.js +24 -0
  284. package/dist/skills/tests/bundled.spec.js.map +1 -0
  285. package/dist/telemetry/__tests__/aggregator.test.d.ts +2 -0
  286. package/dist/telemetry/__tests__/aggregator.test.d.ts.map +1 -0
  287. package/dist/telemetry/__tests__/aggregator.test.js +164 -0
  288. package/dist/telemetry/__tests__/aggregator.test.js.map +1 -0
  289. package/dist/telemetry/aggregator.d.ts +43 -0
  290. package/dist/telemetry/aggregator.d.ts.map +1 -0
  291. package/dist/telemetry/aggregator.js +282 -0
  292. package/dist/telemetry/aggregator.js.map +1 -0
  293. package/dist/types/UpdateManifest.types.d.ts +1 -1
  294. package/dist/types/UpdateManifest.types.d.ts.map +1 -1
  295. package/dist/utils/dag-converter.js +1 -1
  296. package/dist/utils/dag-converter.js.map +1 -1
  297. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  298. package/dist/utils/excalidraw-renderer.js +1 -0
  299. package/dist/utils/excalidraw-renderer.js.map +1 -1
  300. package/dist/utils/graph-renderer.d.ts +2 -0
  301. package/dist/utils/graph-renderer.d.ts.map +1 -1
  302. package/dist/utils/graph-renderer.js +188 -14
  303. package/dist/utils/graph-renderer.js.map +1 -1
  304. package/dist/utils/project-detector.d.ts +1 -0
  305. package/dist/utils/project-detector.d.ts.map +1 -1
  306. package/dist/utils/project-detector.js +8 -0
  307. package/dist/utils/project-detector.js.map +1 -1
  308. package/dist/utils/project-generator.d.ts +1 -1
  309. package/dist/utils/project-generator.d.ts.map +1 -1
  310. package/dist/utils/project-generator.js +23 -2
  311. package/dist/utils/project-generator.js.map +1 -1
  312. package/dist/utils/templates.d.ts +2 -0
  313. package/dist/utils/templates.d.ts.map +1 -1
  314. package/dist/utils/templates.js +74 -0
  315. package/dist/utils/templates.js.map +1 -1
  316. package/dist/verification/__tests__/decay-policy.test.js +1 -0
  317. package/dist/verification/__tests__/decay-policy.test.js.map +1 -1
  318. package/dist/verification/__tests__/safe-spawn.test.js +12 -0
  319. package/dist/verification/__tests__/safe-spawn.test.js.map +1 -1
  320. package/dist/verification/config.d.ts.map +1 -1
  321. package/dist/verification/config.js +2 -0
  322. package/dist/verification/config.js.map +1 -1
  323. package/dist/verification/types.d.ts +2 -0
  324. package/dist/verification/types.d.ts.map +1 -1
  325. package/package.json +3 -2
  326. package/skills/dare-ax/generator.ts +325 -0
  327. package/skills/dare-ax/index.ts +19 -0
  328. package/skills/dare-ax/metrics.ts +352 -0
  329. package/skills/dare-ax/package-lock.json +1855 -0
  330. package/skills/dare-ax/package.json +50 -0
  331. package/skills/dare-ax/secret-detector.ts +123 -0
  332. package/skills/dare-ax/skill.yml +19 -0
  333. package/skills/dare-ax/templates/llms.txt.jinja2 +80 -0
  334. package/skills/dare-ax/tests/generator.spec.ts +193 -0
  335. package/skills/dare-ax/tests/metrics.spec.ts +394 -0
  336. package/skills/dare-ax/tests/validator.spec.ts +298 -0
  337. package/skills/dare-ax/tsconfig.json +18 -0
  338. package/skills/dare-ax/types.ts +79 -0
  339. package/skills/dare-ax/validator.ts +238 -0
  340. package/skills/dare-frontend-design/generator.ts +616 -0
  341. package/skills/dare-frontend-design/index.ts +25 -0
  342. package/skills/dare-frontend-design/linter.ts +227 -0
  343. package/skills/dare-frontend-design/metrics.ts +82 -0
  344. package/skills/dare-frontend-design/package-lock.json +1855 -0
  345. package/skills/dare-frontend-design/package.json +43 -0
  346. package/skills/dare-frontend-design/skill.yml +20 -0
  347. package/skills/dare-frontend-design/tests/frontend_design.spec.ts +435 -0
  348. package/skills/dare-frontend-design/tsconfig.json +18 -0
  349. package/skills/dare-frontend-design/types.ts +62 -0
  350. package/skills/dare-layered-design/generator.ts +740 -0
  351. package/skills/dare-layered-design/index.ts +17 -0
  352. package/skills/dare-layered-design/linter.ts +462 -0
  353. package/skills/dare-layered-design/metrics.ts +409 -0
  354. package/skills/dare-layered-design/package-lock.json +1855 -0
  355. package/skills/dare-layered-design/package.json +50 -0
  356. package/skills/dare-layered-design/skill.yml +35 -0
  357. package/skills/dare-layered-design/tests/generator.spec.ts +156 -0
  358. package/skills/dare-layered-design/tests/linter.spec.ts +255 -0
  359. package/skills/dare-layered-design/tests/metrics.spec.ts +286 -0
  360. package/skills/dare-layered-design/tsconfig.json +18 -0
  361. package/skills/dare-layered-design/types.ts +48 -0
  362. package/skills/dare-llm-integration/cache/llm_cache.ts +122 -0
  363. package/skills/dare-llm-integration/index.ts +49 -0
  364. package/skills/dare-llm-integration/metrics.ts +107 -0
  365. package/skills/dare-llm-integration/package-lock.json +1855 -0
  366. package/skills/dare-llm-integration/package.json +49 -0
  367. package/skills/dare-llm-integration/prompts/prompt_loader.ts +258 -0
  368. package/skills/dare-llm-integration/providers/anthropic_provider.ts +159 -0
  369. package/skills/dare-llm-integration/providers/dummy_provider.ts +113 -0
  370. package/skills/dare-llm-integration/providers/llm_provider.ts +6 -0
  371. package/skills/dare-llm-integration/providers/openai_provider.ts +215 -0
  372. package/skills/dare-llm-integration/rate_limit/token_bucket.ts +86 -0
  373. package/skills/dare-llm-integration/skill.yml +23 -0
  374. package/skills/dare-llm-integration/tests/fixtures/greet_v1.jinja2 +1 -0
  375. package/skills/dare-llm-integration/tests/fixtures/summarize_v1.jinja2 +1 -0
  376. package/skills/dare-llm-integration/tests/fixtures/summarize_v2.jinja2 +3 -0
  377. package/skills/dare-llm-integration/tests/llm_integration.spec.ts +657 -0
  378. package/skills/dare-llm-integration/tsconfig.json +23 -0
  379. package/skills/dare-llm-integration/types.ts +91 -0
  380. package/skills/dare-llm-integration/validators/output_validator.ts +200 -0
  381. package/skills/dare-quality-telemetry/collect.ts +134 -0
  382. package/skills/dare-quality-telemetry/collectors/dare_ax_collector.ts +301 -0
  383. package/skills/dare-quality-telemetry/collectors/dare_layered_design_collector.ts +406 -0
  384. package/skills/dare-quality-telemetry/collectors/index.ts +24 -0
  385. package/skills/dare-quality-telemetry/github_actions_template.ts +25 -0
  386. package/skills/dare-quality-telemetry/index.ts +18 -0
  387. package/skills/dare-quality-telemetry/metrics.ts +137 -0
  388. package/skills/dare-quality-telemetry/package-lock.json +1855 -0
  389. package/skills/dare-quality-telemetry/package.json +48 -0
  390. package/skills/dare-quality-telemetry/regression.ts +60 -0
  391. package/skills/dare-quality-telemetry/reporter.ts +132 -0
  392. package/skills/dare-quality-telemetry/skill.yml +18 -0
  393. package/skills/dare-quality-telemetry/tests/quality_telemetry.spec.ts +885 -0
  394. package/skills/dare-quality-telemetry/tsconfig.json +19 -0
  395. package/skills/dare-quality-telemetry/types.ts +41 -0
  396. package/skills/dare-realtime/event_registry.ts +101 -0
  397. package/skills/dare-realtime/index.ts +30 -0
  398. package/skills/dare-realtime/metrics.ts +84 -0
  399. package/skills/dare-realtime/package-lock.json +1855 -0
  400. package/skills/dare-realtime/package.json +43 -0
  401. package/skills/dare-realtime/reconnect_strategy.ts +85 -0
  402. package/skills/dare-realtime/schema_validator.ts +80 -0
  403. package/skills/dare-realtime/skill.yml +21 -0
  404. package/skills/dare-realtime/subscription_manager.ts +106 -0
  405. package/skills/dare-realtime/tests/realtime.spec.ts +482 -0
  406. package/skills/dare-realtime/tsconfig.json +18 -0
  407. package/skills/dare-realtime/types.ts +51 -0
  408. package/templates/.github/workflows/dare-pr.yml +26 -0
  409. package/templates/dashboard/app.js +184 -0
  410. package/templates/dashboard/index.html +63 -0
  411. package/templates/dashboard/style.css +134 -0
  412. package/templates/ide/antigravity/.agents/skills/dare-ai/SKILL.md +17 -0
  413. package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +2 -0
  414. package/templates/ide/antigravity/.agents/skills/dare-dashboard/SKILL.md +18 -0
  415. package/templates/ide/antigravity/.agents/skills/dare-design/SKILL.md +2 -0
  416. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +3 -0
  417. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +3 -0
  418. package/templates/ide/antigravity/.agents/skills/dare-patterns/SKILL.md +3 -0
  419. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +3 -0
  420. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +3 -0
  421. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +3 -0
  422. package/templates/ide/claude/.claude/commands/dare-ai.md +17 -0
  423. package/templates/ide/claude/.claude/commands/dare-blueprint.md +2 -0
  424. package/templates/ide/claude/.claude/commands/dare-dashboard.md +18 -0
  425. package/templates/ide/claude/.claude/commands/dare-design.md +2 -0
  426. package/templates/ide/claude/.claude/commands/dare-dna.md +2 -0
  427. package/templates/ide/claude/.claude/commands/dare-migrate.md +2 -0
  428. package/templates/ide/claude/.claude/commands/dare-patterns.md +3 -0
  429. package/templates/ide/claude/.claude/commands/dare-refine.md +3 -0
  430. package/templates/ide/claude/.claude/commands/dare-reverse.md +2 -0
  431. package/templates/ide/claude/.claude/commands/dare-review.md +3 -0
  432. package/templates/ide/cursor/.cursor/commands/dare-ai.md +17 -0
  433. package/templates/ide/cursor/.cursor/commands/dare-blueprint.md +3 -0
  434. package/templates/ide/cursor/.cursor/commands/dare-dashboard.md +18 -0
  435. package/templates/ide/cursor/.cursor/commands/dare-design.md +3 -0
  436. package/templates/ide/cursor/.cursor/commands/dare-dna.md +2 -0
  437. package/templates/ide/cursor/.cursor/commands/dare-migrate.md +2 -0
  438. package/templates/ide/cursor/.cursor/commands/dare-patterns.md +3 -0
  439. package/templates/ide/cursor/.cursor/commands/dare-refine.md +3 -0
  440. package/templates/ide/cursor/.cursor/commands/dare-reverse.md +2 -0
  441. package/templates/ide/cursor/.cursor/commands/dare-review.md +3 -0
@@ -0,0 +1,184 @@
1
+ /** Vanilla dashboard — fetch /api/telemetry and render panels (no bundler). */
2
+
3
+ const STATUS_COLORS = {
4
+ DONE: 'bar-pass',
5
+ FAILED: 'bar-fail',
6
+ RUNNING: 'bar-accent',
7
+ PENDING: 'bar-warn',
8
+ SKIPPED: 'bar-warn',
9
+ };
10
+
11
+ function el(id) {
12
+ const node = document.getElementById(id);
13
+ if (!node) throw new Error(`Missing #${id}`);
14
+ return node;
15
+ }
16
+
17
+ function setText(id, html) {
18
+ el(id).innerHTML = html;
19
+ }
20
+
21
+ function show(id, visible) {
22
+ el(id).classList.toggle('hidden', !visible);
23
+ }
24
+
25
+ function metric(label, value) {
26
+ return `<div class="metric"><span class="label">${label}</span><span class="value">${value}</span></div>`;
27
+ }
28
+
29
+ function barChart(entries, className = 'bar-accent') {
30
+ if (!entries.length) return '<p class="muted">No data</p>';
31
+ const max = Math.max(...entries.map((e) => e.value), 1);
32
+ const barW = 36;
33
+ const gap = 12;
34
+ const height = 120;
35
+ const width = entries.length * (barW + gap) + gap;
36
+ const bars = entries
37
+ .map((entry, i) => {
38
+ const h = Math.max(4, (entry.value / max) * (height - 24));
39
+ const x = gap + i * (barW + gap);
40
+ const y = height - h - 16;
41
+ return `<rect class="${className}" x="${x}" y="${y}" width="${barW}" height="${h}" rx="4"><title>${entry.label}: ${entry.value}</title></rect>
42
+ <text x="${x + barW / 2}" y="${height - 2}" text-anchor="middle" font-size="10" fill="currentColor">${entry.label}</text>`;
43
+ })
44
+ .join('');
45
+ return `<svg viewBox="0 0 ${width} ${height}" role="img" aria-label="bar chart">${bars}</svg>`;
46
+ }
47
+
48
+ function renderEmptyHints(hints) {
49
+ if (!hints || hints.length === 0) {
50
+ show('empty-hints', false);
51
+ return;
52
+ }
53
+ show('empty-hints', true);
54
+ setText('empty-hints', `<h2>Hints</h2><ul>${hints.map((h) => `<li>${h}</li>`).join('')}</ul>`);
55
+ }
56
+
57
+ function renderDag(dag) {
58
+ setText(
59
+ 'dag-summary',
60
+ metric('Total tasks', dag.total) + metric('Ranks', dag.ranks),
61
+ );
62
+ const entries = Object.entries(dag.byStatus || {}).map(([label, value]) => ({
63
+ label,
64
+ value,
65
+ className: STATUS_COLORS[label] || 'bar-accent',
66
+ }));
67
+ setText(
68
+ 'dag-chart',
69
+ entries.length
70
+ ? entries
71
+ .map((e) => barChart([e], e.className))
72
+ .join('')
73
+ : '<p>No task status data</p>',
74
+ );
75
+ }
76
+
77
+ function renderGates(gates) {
78
+ setText(
79
+ 'gates-summary',
80
+ metric('Verified', gates.verified) +
81
+ metric('Proven', gates.proven) +
82
+ (gates.mutationAvg !== undefined ? metric('Mutation avg', gates.mutationAvg.toFixed(2)) : ''),
83
+ );
84
+ setText(
85
+ 'gates-chart',
86
+ barChart(
87
+ [
88
+ { label: 'verified', value: gates.verified },
89
+ { label: 'proven', value: gates.proven },
90
+ ],
91
+ 'bar-pass',
92
+ ),
93
+ );
94
+ }
95
+
96
+ function renderCost(cost) {
97
+ setText(
98
+ 'cost-summary',
99
+ metric('Total USD', `$${cost.totalUsd.toFixed(4)}`) + metric('Total tokens', cost.totalTokens),
100
+ );
101
+ const entries = (cost.byTask || []).slice(0, 8).map((t) => ({
102
+ label: t.id.replace(/^task[-:]/, '').slice(0, 8),
103
+ value: t.tokens || t.usd * 1000,
104
+ }));
105
+ setText('cost-chart', barChart(entries, 'bar-accent'));
106
+
107
+ const tbody = el('cost-table').querySelector('tbody');
108
+ tbody.innerHTML = (cost.byTask || [])
109
+ .map(
110
+ (t) =>
111
+ `<tr><td>${t.id}</td><td>${t.usd.toFixed(4)}</td><td>${t.tokens}</td></tr>`,
112
+ )
113
+ .join('');
114
+ }
115
+
116
+ function renderOptionalPanels(data) {
117
+ if (data.bestOfN) {
118
+ show('bestof-panel', true);
119
+ setText(
120
+ 'bestof-summary',
121
+ metric('Tasks', data.bestOfN.tasks) +
122
+ metric('Avg candidates', data.bestOfN.avgCandidates),
123
+ );
124
+ } else {
125
+ show('bestof-panel', false);
126
+ }
127
+
128
+ if (data.guard) {
129
+ show('guard-panel', true);
130
+ setText(
131
+ 'guard-summary',
132
+ metric('Pass', data.guard.pass) +
133
+ metric('Warn', data.guard.warn) +
134
+ metric('Fail', data.guard.fail),
135
+ );
136
+ setText(
137
+ 'guard-chart',
138
+ barChart(
139
+ [
140
+ { label: 'pass', value: data.guard.pass },
141
+ { label: 'warn', value: data.guard.warn },
142
+ { label: 'fail', value: data.guard.fail },
143
+ ],
144
+ 'bar-pass',
145
+ ),
146
+ );
147
+ } else {
148
+ show('guard-panel', false);
149
+ }
150
+
151
+ if (data.drift) {
152
+ show('drift-panel', true);
153
+ setText(
154
+ 'drift-summary',
155
+ metric('Orphan reqs', data.drift.orphanReqs) +
156
+ metric('Orphan code', data.drift.orphanCode) +
157
+ metric('Stale', data.drift.stale),
158
+ );
159
+ } else {
160
+ show('drift-panel', false);
161
+ }
162
+ }
163
+
164
+ async function loadTelemetry() {
165
+ const status = el('status-line');
166
+ try {
167
+ const res = await fetch('/api/telemetry');
168
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
169
+ const data = await res.json();
170
+ renderEmptyHints(data.emptyHints);
171
+ renderDag(data.dag);
172
+ renderGates(data.gates);
173
+ renderCost(data.cost);
174
+ renderOptionalPanels(data);
175
+ status.textContent = `Updated ${new Date().toLocaleTimeString()}`;
176
+ } catch (err) {
177
+ status.textContent = `Error: ${err instanceof Error ? err.message : String(err)}`;
178
+ show('empty-hints', true);
179
+ setText('empty-hints', `<h2>Error</h2><p>Could not load telemetry. Is the server running with a valid token?</p>`);
180
+ }
181
+ }
182
+
183
+ loadTelemetry();
184
+ setInterval(loadTelemetry, 30_000);
@@ -0,0 +1,63 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>DARE Telemetry</title>
7
+ <link rel="stylesheet" href="/dashboard/assets/style.css">
8
+ </head>
9
+ <body>
10
+ <header class="site-header">
11
+ <h1>DARE Telemetry</h1>
12
+ <p class="subtitle">Local read-only dashboard</p>
13
+ </header>
14
+
15
+ <main id="app">
16
+ <section id="empty-hints" class="panel hints hidden" aria-live="polite"></section>
17
+
18
+ <section id="dag-panel" class="panel">
19
+ <h2>DAG Progress</h2>
20
+ <div id="dag-summary" class="metrics"></div>
21
+ <div id="dag-chart" class="chart"></div>
22
+ </section>
23
+
24
+ <section id="gates-panel" class="panel">
25
+ <h2>Verification Gates</h2>
26
+ <div id="gates-summary" class="metrics"></div>
27
+ <div id="gates-chart" class="chart"></div>
28
+ </section>
29
+
30
+ <section id="cost-panel" class="panel">
31
+ <h2>Cost</h2>
32
+ <div id="cost-summary" class="metrics"></div>
33
+ <div id="cost-chart" class="chart"></div>
34
+ <table id="cost-table" class="data-table">
35
+ <thead><tr><th>Task</th><th>USD</th><th>Tokens</th></tr></thead>
36
+ <tbody></tbody>
37
+ </table>
38
+ </section>
39
+
40
+ <section id="bestof-panel" class="panel hidden">
41
+ <h2>Best-of-N</h2>
42
+ <div id="bestof-summary" class="metrics"></div>
43
+ </section>
44
+
45
+ <section id="guard-panel" class="panel hidden">
46
+ <h2>Guard</h2>
47
+ <div id="guard-summary" class="metrics"></div>
48
+ <div id="guard-chart" class="chart"></div>
49
+ </section>
50
+
51
+ <section id="drift-panel" class="panel hidden">
52
+ <h2>Drift</h2>
53
+ <div id="drift-summary" class="metrics"></div>
54
+ </section>
55
+ </main>
56
+
57
+ <footer class="site-footer">
58
+ <span id="status-line">Loading…</span>
59
+ </footer>
60
+
61
+ <script src="/dashboard/assets/app.js"></script>
62
+ </body>
63
+ </html>
@@ -0,0 +1,134 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --bg: #0f1419;
4
+ --surface: #1a2332;
5
+ --border: #2d3a4d;
6
+ --text: #e7ecf3;
7
+ --muted: #9aa8bc;
8
+ --accent: #5b9fd4;
9
+ --pass: #3ecf8e;
10
+ --warn: #f0c14b;
11
+ --fail: #ef6461;
12
+ font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
13
+ }
14
+
15
+ @media (prefers-color-scheme: light) {
16
+ :root {
17
+ --bg: #f4f6fa;
18
+ --surface: #ffffff;
19
+ --border: #d8dee9;
20
+ --text: #1b2430;
21
+ --muted: #5c677d;
22
+ --accent: #2563eb;
23
+ }
24
+ }
25
+
26
+ * { box-sizing: border-box; }
27
+
28
+ body {
29
+ margin: 0;
30
+ background: var(--bg);
31
+ color: var(--text);
32
+ line-height: 1.5;
33
+ }
34
+
35
+ .site-header, .site-footer {
36
+ padding: 1rem 1.5rem;
37
+ border-bottom: 1px solid var(--border);
38
+ }
39
+
40
+ .site-footer {
41
+ border-top: 1px solid var(--border);
42
+ border-bottom: none;
43
+ color: var(--muted);
44
+ font-size: 0.875rem;
45
+ }
46
+
47
+ .site-header h1 {
48
+ margin: 0;
49
+ font-size: 1.5rem;
50
+ }
51
+
52
+ .subtitle {
53
+ margin: 0.25rem 0 0;
54
+ color: var(--muted);
55
+ }
56
+
57
+ #app {
58
+ display: grid;
59
+ gap: 1rem;
60
+ padding: 1rem 1.5rem 2rem;
61
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
62
+ }
63
+
64
+ .panel {
65
+ background: var(--surface);
66
+ border: 1px solid var(--border);
67
+ border-radius: 10px;
68
+ padding: 1rem 1.25rem;
69
+ }
70
+
71
+ .panel h2 {
72
+ margin: 0 0 0.75rem;
73
+ font-size: 1.1rem;
74
+ }
75
+
76
+ .hidden { display: none; }
77
+
78
+ .hints {
79
+ grid-column: 1 / -1;
80
+ border-color: var(--warn);
81
+ }
82
+
83
+ .hints ul {
84
+ margin: 0;
85
+ padding-left: 1.25rem;
86
+ }
87
+
88
+ .metrics {
89
+ display: flex;
90
+ flex-wrap: wrap;
91
+ gap: 0.75rem 1.25rem;
92
+ margin-bottom: 0.75rem;
93
+ }
94
+
95
+ .metric {
96
+ min-width: 5rem;
97
+ }
98
+
99
+ .metric .label {
100
+ display: block;
101
+ font-size: 0.75rem;
102
+ color: var(--muted);
103
+ text-transform: uppercase;
104
+ letter-spacing: 0.04em;
105
+ }
106
+
107
+ .metric .value {
108
+ font-size: 1.25rem;
109
+ font-weight: 600;
110
+ }
111
+
112
+ .chart svg {
113
+ width: 100%;
114
+ height: auto;
115
+ max-height: 160px;
116
+ }
117
+
118
+ .data-table {
119
+ width: 100%;
120
+ border-collapse: collapse;
121
+ font-size: 0.875rem;
122
+ }
123
+
124
+ .data-table th,
125
+ .data-table td {
126
+ text-align: left;
127
+ padding: 0.35rem 0.5rem;
128
+ border-bottom: 1px solid var(--border);
129
+ }
130
+
131
+ .bar-pass { fill: var(--pass); }
132
+ .bar-warn { fill: var(--warn); }
133
+ .bar-fail { fill: var(--fail); }
134
+ .bar-accent { fill: var(--accent); }
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: dare-ai
3
+ description: Terminal-first AI providers for DARE enrichment (dare ai doctor/providers/run). Use when running semantic enrichment from the CLI instead of IDE chat.
4
+ ---
5
+
6
+ # dare-ai
7
+
8
+ Prefer terminal workflows:
9
+
10
+ ```bash
11
+ dare ai doctor
12
+ dare ai providers
13
+ dare reverse --ai --provider codex
14
+ dare dna --ai
15
+ ```
16
+
17
+ Related: `dare-execute --agent --driver codex`
@@ -14,6 +14,8 @@ Você é um arquiteto de software especializado em design de APIs e sistemas. Se
14
14
  - Necessário documentar endpoints e modelos
15
15
  - Segunda fase do Método DARE
16
16
 
17
+ > **Equivalente no terminal:** `dare blueprint --ai`
18
+
17
19
  ## Como usar
18
20
 
19
21
  ### Passo 1: Ler o Design Aprovado
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: dare-dashboard
3
+ description: Start the local read-only telemetry dashboard (dare dashboard).
4
+ ---
5
+
6
+ # /dare-dashboard
7
+
8
+ Sobe o dashboard local de telemetria (`dare dashboard`) — read-only, loopback + token.
9
+
10
+ ```bash
11
+ dare dashboard [--port <n>] [--no-open]
12
+ ```
13
+
14
+ - Default: `127.0.0.1:4100`
15
+ - API: `GET /api/telemetry` (JSON read-only)
16
+ - UI: `GET /dashboard` (HTML/CSS/JS vanilla)
17
+
18
+ Reusa hardening do MCP (auth + bind loopback). Não muta grafo/estado.
@@ -14,6 +14,8 @@ Você é um especialista em planejamento e análise de requisitos. Seu objetivo
14
14
  - Necessário documentar escopo e restrições
15
15
  - Primeira fase do Método DARE
16
16
 
17
+ > **Equivalente no terminal:** `dare design "<description>" --ai`
18
+
17
19
  ## Como usar
18
20
 
19
21
  ### Passo 1: Entender a Ideia
@@ -5,6 +5,9 @@ description: Camada semântica da extração de DNA do projeto. Roda depois do c
5
5
 
6
6
  # DARE DNA Skill — Convenções do Projeto (brownfield)
7
7
 
8
+ > **Equivalente no terminal:** `dare dna --ai`
9
+
10
+
8
11
  Você é o agente que transforma os **fatos de convenção** de um codebase legado em **regras acionáveis**.
9
12
  Esta skill é a camada **semântica**: roda **depois** do comando `dare dna`, que já varreu o código e
10
13
  extraiu os fatos. Sua função é redigir o "como esse codebase faz as coisas" que uma nova feature deve
@@ -5,6 +5,9 @@ description: Camada semântica da migração (Fase 2 brownfield). Roda depois do
5
5
 
6
6
  # DARE Migrate Skill — Migração com paridade (brownfield Fase 2)
7
7
 
8
+ > **Equivalente no terminal:** `dare migrate --ai`
9
+
10
+
8
11
  Você é o agente que transforma o entendimento do legado em um **plano de migração com paridade**.
9
12
  Esta skill é a camada **semântica**: roda **depois** do comando `dare migrate`, que já leu os
10
13
  artefatos do `reverse`/`dna` e gerou os esqueletos. Sua função é **escrever a estratégia de migração
@@ -1,5 +1,8 @@
1
1
  # dare-patterns Skill
2
2
 
3
+ > **Equivalente no terminal:** `dare patterns --ai`
4
+
5
+
3
6
  Expõe `dare patterns` — mineração determinística de padrões brownfield.
4
7
 
5
8
  ```bash
@@ -5,6 +5,9 @@ description: Analisa complexidade de uma task DARE e, quando alta, quebra em sub
5
5
 
6
6
  # DARE Refine Skill
7
7
 
8
+ > **Equivalente no terminal:** `dare refine <task-id> --split --ai`
9
+
10
+
8
11
  Você é o refinador de tasks do método DARE. Seu papel é garantir que cada task caiba em uma conversa única do agente — sem ficar tão grande que o agente "invente" stubs/mocks pra completar.
9
12
 
10
13
  ## Quando usar
@@ -5,6 +5,9 @@ description: Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda
5
5
 
6
6
  # DARE Reverse Skill — Engenharia Reversa (Fase 0)
7
7
 
8
+ > **Equivalente no terminal:** `dare reverse --ai`
9
+
10
+
8
11
  Você é o agente da **Fase 0 (brownfield)** do método DARE no Antigravity. Esta skill é a
9
12
  **camada semântica** da engenharia reversa: roda **depois** do comando `dare reverse`, que já
10
13
  varreu o código e gerou os esqueletos determinísticos. Sua função é **preencher as inferências**
@@ -5,6 +5,9 @@ description: Audita uma task DARE implementada — cruza a spec com o código re
5
5
 
6
6
  # DARE Review Skill
7
7
 
8
+ > **Equivalente no terminal:** `dare review <task-id> --ai`
9
+
10
+
8
11
  Você é o auditor de qualidade do método DARE. Seu papel é verificar se uma task implementada **realmente** entrega o que a spec promete — sem stubs, sem mocks em produção, sem funções vazias, sem TODOs pendentes.
9
12
 
10
13
  ## Quando usar esta skill
@@ -0,0 +1,17 @@
1
+ # /dare-ai
2
+
3
+ Terminal-first AI providers for DARE command enrichment (`dare ai doctor`, `dare ai providers`, `dare ai run`).
4
+
5
+ > Prefer running these in the terminal. Brownfield commands also accept `--ai` and `--provider`.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ dare ai doctor
11
+ dare ai providers
12
+ dare ai run --command reverse --facts DARE/REVERSE/reverse-facts.json --provider codex
13
+ ```
14
+
15
+ ## Related
16
+
17
+ `/dare-reverse` · `/dare-dna` · `/dare-execute`
@@ -4,6 +4,8 @@ Gera **somente** `DARE/BLUEPRINT.md` a partir do `DARE/DESIGN.md`.
4
4
 
5
5
  > Tasks, DAG e specs de execução são geradas depois com `/dare-tasks`, após aprovação humana do Blueprint.
6
6
 
7
+ > **Equivalente no terminal:** `dare blueprint --ai`
8
+
7
9
  ## Como usar
8
10
 
9
11
  ```
@@ -0,0 +1,18 @@
1
+ # Comando: /dare-dashboard
2
+
3
+ Sobe o dashboard local de telemetria (`dare dashboard`) — read-only, loopback + token.
4
+
5
+ ## Como rodar
6
+
7
+ ```bash
8
+ dare dashboard [--port <n>] [--no-open]
9
+ ```
10
+
11
+ - Default: `127.0.0.1:4100`
12
+ - Reusa auth/bind do MCP (token via `DARE_MCP_TOKEN` ou gerado na subida)
13
+ - Front vanilla em `/dashboard`; API JSON em `/api/telemetry`
14
+
15
+ ## Notas
16
+
17
+ - **Read-only** — nenhuma rota muta grafo ou estado.
18
+ - Abre o navegador automaticamente (use `--no-open` para desabilitar).
@@ -2,6 +2,8 @@
2
2
 
3
3
  Gera ou atualiza o `DARE/DESIGN.md` a partir de uma descrição do projeto ou feature.
4
4
 
5
+ > **Equivalente no terminal:** `dare design "<description>" --ai`
6
+
5
7
  ## Como usar
6
8
 
7
9
  ```
@@ -4,6 +4,8 @@ Camada semântica da extração de DNA do projeto. Roda **depois** do comando `d
4
4
  o código e extraiu os fatos de convenção. Sua função é **transformar fatos em regras acionáveis** —
5
5
  o "como esse codebase faz as coisas" que uma nova feature deve respeitar.
6
6
 
7
+ > **Equivalente no terminal:** `dare dna --ai`
8
+
7
9
  ## Como usar
8
10
 
9
11
  ```
@@ -5,6 +5,8 @@ artefatos do `reverse`/`dna` e gerou os esqueletos. Sua função é **escrever a
5
5
  e os cenários Gherkin de paridade reais** — o contrato comportamental que garante uma reimplementação
6
6
  fiel ao legado.
7
7
 
8
+ > **Equivalente no terminal:** `dare migrate --ai`
9
+
8
10
  ## Como usar
9
11
 
10
12
  ```
@@ -1,5 +1,8 @@
1
1
  # Comando: /dare-patterns
2
2
 
3
+ > **Equivalente no terminal:** `dare patterns --ai`
4
+
5
+
3
6
  Descobre padrões recorrentes no codebase (`dare patterns`) — determinístico, sem LLM.
4
7
 
5
8
  ```bash
@@ -1,5 +1,8 @@
1
1
  # Comando: /dare-refine
2
2
 
3
+ > **Equivalente no terminal:** `dare refine <task-id> --split --ai`
4
+
5
+
3
6
  ## Descrição
4
7
 
5
8
  Analisa a complexidade de uma task e, quando alta, **quebra em sub-tasks menores** com escopo bem delimitado. Pode ser chamada:
@@ -5,6 +5,8 @@ Camada semântica da engenharia reversa (Fase 0 / brownfield). Roda **depois** d
5
5
  inferências** que o CLI determinístico não faz: propósito, domínio, responsabilidades e os
6
6
  **diagramas de fluxo** ("como a coisa funciona").
7
7
 
8
+ > **Equivalente no terminal:** `dare reverse --ai`
9
+
8
10
  ## Como usar
9
11
 
10
12
  ```
@@ -1,5 +1,8 @@
1
1
  # Comando: /dare-review
2
2
 
3
+ > **Equivalente no terminal:** `dare review <task-id> --ai`
4
+
5
+
3
6
  ## Descrição
4
7
 
5
8
  Audita uma task **implementada** cruzando a spec (`DARE/EXECUTION/<id>.md`) com os arquivos reais que ela tocou. Detecta stubs, mocks fora de testes, funções vazias, TODOs, retorno-fantasma — **e** valida critério-a-critério se a implementação satisfaz o que a spec prometeu.
@@ -0,0 +1,17 @@
1
+ # /dare-ai
2
+
3
+ Terminal-first AI providers for DARE command enrichment (`dare ai doctor`, `dare ai providers`, `dare ai run`).
4
+
5
+ > Prefer running these in the terminal. Brownfield commands also accept `--ai` and `--provider`.
6
+
7
+ ## Commands
8
+
9
+ ```bash
10
+ dare ai doctor
11
+ dare ai providers
12
+ dare ai run --command reverse --facts DARE/REVERSE/reverse-facts.json --provider codex
13
+ ```
14
+
15
+ ## Related
16
+
17
+ `/dare-reverse` · `/dare-dna` · `/dare-execute`
@@ -1,5 +1,8 @@
1
1
  # Comando: /dare-blueprint
2
2
 
3
+ > **Equivalente no terminal:** `dare blueprint --ai`
4
+
5
+
3
6
  ## Descrição
4
7
  Avança o DARE para a fase Architect: lê `DARE/DESIGN.md` aprovado e gera **somente** `DARE/BLUEPRINT.md`.
5
8
 
@@ -0,0 +1,18 @@
1
+ # Comando: /dare-dashboard
2
+
3
+ Sobe o dashboard local de telemetria (`dare dashboard`) — read-only, loopback + token.
4
+
5
+ ## Como rodar
6
+
7
+ ```bash
8
+ dare dashboard [--port <n>] [--no-open]
9
+ ```
10
+
11
+ - Default: `127.0.0.1:4100`
12
+ - Reusa auth/bind do MCP (token via `DARE_MCP_TOKEN` ou gerado na subida)
13
+ - Front vanilla em `/dashboard`; API JSON em `/api/telemetry`
14
+
15
+ ## Notas
16
+
17
+ - **Read-only** — nenhuma rota muta grafo ou estado.
18
+ - Abre o navegador automaticamente (use `--no-open` para desabilitar).
@@ -1,5 +1,8 @@
1
1
  # Comando: /dare-design
2
2
 
3
+ > **Equivalente no terminal:** `dare design "<description>" --ai`
4
+
5
+
3
6
  ## Descrição
4
7
  Inicia o Método DARE (fase Design) gerando `DARE/DESIGN.md` a partir de uma ideia inicial.
5
8