@zigrivers/scaffold 3.27.0 → 3.29.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 (698) hide show
  1. package/README.md +5 -1
  2. package/content/guides/.gitkeep +0 -0
  3. package/content/guides/index.html +1188 -0
  4. package/content/guides/mmr/.diagrams/diagram-0.svg +1 -0
  5. package/content/guides/mmr/.diagrams/manifest.json +3 -0
  6. package/content/guides/mmr/index.html +1728 -0
  7. package/content/guides/mmr/index.md +403 -0
  8. package/content/knowledge/VERSION +1 -0
  9. package/content/knowledge/backend/backend-api-design.md +8 -0
  10. package/content/knowledge/backend/backend-architecture.md +8 -0
  11. package/content/knowledge/backend/backend-async-patterns.md +7 -0
  12. package/content/knowledge/backend/backend-auth-patterns.md +9 -0
  13. package/content/knowledge/backend/backend-conventions.md +6 -0
  14. package/content/knowledge/backend/backend-data-modeling.md +7 -0
  15. package/content/knowledge/backend/backend-deployment.md +8 -0
  16. package/content/knowledge/backend/backend-dev-environment.md +5 -0
  17. package/content/knowledge/backend/backend-fintech-broker-integration.md +6 -0
  18. package/content/knowledge/backend/backend-fintech-compliance.md +10 -2
  19. package/content/knowledge/backend/backend-fintech-data-modeling.md +6 -0
  20. package/content/knowledge/backend/backend-fintech-ledger.md +6 -0
  21. package/content/knowledge/backend/backend-fintech-observability.md +6 -0
  22. package/content/knowledge/backend/backend-fintech-order-lifecycle.md +6 -0
  23. package/content/knowledge/backend/backend-fintech-risk-management.md +6 -0
  24. package/content/knowledge/backend/backend-fintech-testing.md +6 -0
  25. package/content/knowledge/backend/backend-observability.md +7 -0
  26. package/content/knowledge/backend/backend-project-structure.md +6 -0
  27. package/content/knowledge/backend/backend-requirements.md +6 -0
  28. package/content/knowledge/backend/backend-security.md +7 -0
  29. package/content/knowledge/backend/backend-testing.md +7 -0
  30. package/content/knowledge/backend/backend-worker-patterns.md +6 -0
  31. package/content/knowledge/browser-extension/browser-extension-architecture.md +6 -0
  32. package/content/knowledge/browser-extension/browser-extension-content-scripts.md +6 -0
  33. package/content/knowledge/browser-extension/browser-extension-conventions.md +6 -0
  34. package/content/knowledge/browser-extension/browser-extension-cross-browser.md +6 -0
  35. package/content/knowledge/browser-extension/browser-extension-dev-environment.md +6 -0
  36. package/content/knowledge/browser-extension/browser-extension-manifest.md +6 -0
  37. package/content/knowledge/browser-extension/browser-extension-project-structure.md +6 -0
  38. package/content/knowledge/browser-extension/browser-extension-requirements.md +6 -0
  39. package/content/knowledge/browser-extension/browser-extension-security.md +7 -0
  40. package/content/knowledge/browser-extension/browser-extension-service-workers.md +6 -0
  41. package/content/knowledge/browser-extension/browser-extension-store-submission.md +6 -0
  42. package/content/knowledge/browser-extension/browser-extension-testing.md +6 -0
  43. package/content/knowledge/cli/cli-architecture.md +4 -0
  44. package/content/knowledge/cli/cli-conventions.md +4 -0
  45. package/content/knowledge/cli/cli-dev-environment.md +5 -0
  46. package/content/knowledge/cli/cli-distribution-patterns.md +5 -0
  47. package/content/knowledge/cli/cli-interactivity-patterns.md +4 -0
  48. package/content/knowledge/cli/cli-output-patterns.md +4 -0
  49. package/content/knowledge/cli/cli-project-structure.md +4 -0
  50. package/content/knowledge/cli/cli-requirements.md +4 -0
  51. package/content/knowledge/cli/cli-shell-integration.md +4 -0
  52. package/content/knowledge/cli/cli-testing.md +4 -0
  53. package/content/knowledge/core/adr-craft.md +8 -0
  54. package/content/knowledge/core/ai-memory-management.md +23 -0
  55. package/content/knowledge/core/api-design.md +6 -0
  56. package/content/knowledge/core/automated-review-tooling.md +8 -0
  57. package/content/knowledge/core/claude-md-patterns.md +10 -2
  58. package/content/knowledge/core/coding-conventions.md +10 -2
  59. package/content/knowledge/core/database-design.md +8 -0
  60. package/content/knowledge/core/design-system-tokens.md +8 -0
  61. package/content/knowledge/core/dev-environment.md +4 -0
  62. package/content/knowledge/core/domain-modeling.md +6 -0
  63. package/content/knowledge/core/eval-craft.md +6 -0
  64. package/content/knowledge/core/git-workflow-patterns.md +8 -0
  65. package/content/knowledge/core/multi-model-research-dispatch.md +6 -0
  66. package/content/knowledge/core/multi-model-review-dispatch.md +6 -0
  67. package/content/knowledge/core/multi-service-api-contracts.md +5 -0
  68. package/content/knowledge/core/multi-service-architecture.md +5 -0
  69. package/content/knowledge/core/multi-service-auth.md +6 -0
  70. package/content/knowledge/core/multi-service-data-ownership.md +8 -0
  71. package/content/knowledge/core/multi-service-observability.md +8 -0
  72. package/content/knowledge/core/multi-service-resilience.md +5 -0
  73. package/content/knowledge/core/multi-service-task-decomposition.md +8 -0
  74. package/content/knowledge/core/multi-service-testing.md +5 -0
  75. package/content/knowledge/core/operations-runbook.md +8 -0
  76. package/content/knowledge/core/project-structure-patterns.md +4 -0
  77. package/content/knowledge/core/review-step-template.md +4 -0
  78. package/content/knowledge/core/security-best-practices.md +6 -0
  79. package/content/knowledge/core/system-architecture.md +6 -0
  80. package/content/knowledge/core/task-decomposition.md +9 -4
  81. package/content/knowledge/core/task-tracking.md +128 -29
  82. package/content/knowledge/core/tech-stack-selection.md +8 -0
  83. package/content/knowledge/core/test-skeleton-generation.md +4 -0
  84. package/content/knowledge/core/testing-strategy.md +8 -0
  85. package/content/knowledge/core/user-stories.md +9 -1
  86. package/content/knowledge/core/user-story-innovation.md +4 -0
  87. package/content/knowledge/core/ux-specification.md +5 -0
  88. package/content/knowledge/data-pipeline/data-pipeline-architecture.md +5 -0
  89. package/content/knowledge/data-pipeline/data-pipeline-batch-patterns.md +4 -0
  90. package/content/knowledge/data-pipeline/data-pipeline-conventions.md +4 -0
  91. package/content/knowledge/data-pipeline/data-pipeline-dev-environment.md +4 -0
  92. package/content/knowledge/data-pipeline/data-pipeline-orchestration.md +4 -0
  93. package/content/knowledge/data-pipeline/data-pipeline-project-structure.md +4 -0
  94. package/content/knowledge/data-pipeline/data-pipeline-quality.md +4 -0
  95. package/content/knowledge/data-pipeline/data-pipeline-requirements.md +4 -0
  96. package/content/knowledge/data-pipeline/data-pipeline-schema-management.md +4 -0
  97. package/content/knowledge/data-pipeline/data-pipeline-security.md +4 -0
  98. package/content/knowledge/data-pipeline/data-pipeline-streaming-patterns.md +4 -0
  99. package/content/knowledge/data-pipeline/data-pipeline-testing.md +4 -0
  100. package/content/knowledge/data-science/data-science-architecture.md +5 -0
  101. package/content/knowledge/data-science/data-science-conventions.md +6 -0
  102. package/content/knowledge/data-science/data-science-data-versioning.md +6 -0
  103. package/content/knowledge/data-science/data-science-dev-environment.md +6 -0
  104. package/content/knowledge/data-science/data-science-experiment-tracking.md +8 -0
  105. package/content/knowledge/data-science/data-science-model-evaluation.md +5 -0
  106. package/content/knowledge/data-science/data-science-notebook-discipline.md +5 -0
  107. package/content/knowledge/data-science/data-science-observability.md +6 -0
  108. package/content/knowledge/data-science/data-science-project-structure.md +5 -0
  109. package/content/knowledge/data-science/data-science-reproducibility.md +8 -0
  110. package/content/knowledge/data-science/data-science-requirements.md +5 -0
  111. package/content/knowledge/data-science/data-science-security.md +8 -0
  112. package/content/knowledge/data-science/data-science-testing.md +5 -0
  113. package/content/knowledge/execution/enhancement-workflow.md +4 -0
  114. package/content/knowledge/execution/multi-agent-coordination.md +129 -0
  115. package/content/knowledge/execution/task-claiming-strategy.md +19 -3
  116. package/content/knowledge/execution/tdd-execution-loop.md +5 -0
  117. package/content/knowledge/execution/worktree-management.md +10 -3
  118. package/content/knowledge/finalization/apply-fixes-and-freeze.md +4 -0
  119. package/content/knowledge/finalization/developer-onboarding.md +4 -0
  120. package/content/knowledge/finalization/implementation-playbook.md +4 -0
  121. package/content/knowledge/game/game-accessibility.md +4 -0
  122. package/content/knowledge/game/game-ai-patterns.md +4 -0
  123. package/content/knowledge/game/game-asset-pipeline.md +4 -0
  124. package/content/knowledge/game/game-audio-design.md +4 -0
  125. package/content/knowledge/game/game-binary-vcs-strategy.md +5 -0
  126. package/content/knowledge/game/game-design-document.md +4 -0
  127. package/content/knowledge/game/game-domain-patterns.md +4 -0
  128. package/content/knowledge/game/game-economy-design.md +4 -0
  129. package/content/knowledge/game/game-engine-selection.md +4 -0
  130. package/content/knowledge/game/game-ideation.md +4 -0
  131. package/content/knowledge/game/game-input-systems.md +4 -0
  132. package/content/knowledge/game/game-level-content-design.md +4 -0
  133. package/content/knowledge/game/game-liveops-analytics.md +4 -0
  134. package/content/knowledge/game/game-localization.md +4 -0
  135. package/content/knowledge/game/game-milestone-definitions.md +4 -0
  136. package/content/knowledge/game/game-modding-ugc.md +4 -0
  137. package/content/knowledge/game/game-narrative-design.md +4 -0
  138. package/content/knowledge/game/game-networking.md +4 -0
  139. package/content/knowledge/game/game-performance-budgeting.md +4 -0
  140. package/content/knowledge/game/game-platform-certification.md +6 -0
  141. package/content/knowledge/game/game-project-structure.md +4 -0
  142. package/content/knowledge/game/game-save-systems.md +4 -0
  143. package/content/knowledge/game/game-testing-strategy.md +4 -0
  144. package/content/knowledge/game/game-ui-patterns.md +4 -0
  145. package/content/knowledge/game/game-vr-ar-design.md +6 -0
  146. package/content/knowledge/library/library-api-design.md +4 -0
  147. package/content/knowledge/library/library-architecture.md +4 -0
  148. package/content/knowledge/library/library-bundling.md +4 -0
  149. package/content/knowledge/library/library-conventions.md +5 -0
  150. package/content/knowledge/library/library-dev-environment.md +4 -0
  151. package/content/knowledge/library/library-documentation.md +4 -0
  152. package/content/knowledge/library/library-project-structure.md +4 -0
  153. package/content/knowledge/library/library-requirements.md +4 -0
  154. package/content/knowledge/library/library-security.md +4 -0
  155. package/content/knowledge/library/library-testing.md +4 -0
  156. package/content/knowledge/library/library-type-definitions.md +4 -0
  157. package/content/knowledge/library/library-versioning.md +5 -0
  158. package/content/knowledge/ml/ml-architecture.md +4 -0
  159. package/content/knowledge/ml/ml-conventions.md +4 -0
  160. package/content/knowledge/ml/ml-dev-environment.md +4 -0
  161. package/content/knowledge/ml/ml-experiment-tracking.md +6 -0
  162. package/content/knowledge/ml/ml-model-evaluation.md +4 -0
  163. package/content/knowledge/ml/ml-observability.md +5 -0
  164. package/content/knowledge/ml/ml-project-structure.md +4 -0
  165. package/content/knowledge/ml/ml-requirements.md +4 -0
  166. package/content/knowledge/ml/ml-security.md +5 -0
  167. package/content/knowledge/ml/ml-serving-patterns.md +4 -0
  168. package/content/knowledge/ml/ml-testing.md +4 -0
  169. package/content/knowledge/ml/ml-training-patterns.md +4 -0
  170. package/content/knowledge/mobile-app/mobile-app-architecture.md +6 -0
  171. package/content/knowledge/mobile-app/mobile-app-conventions.md +6 -0
  172. package/content/knowledge/mobile-app/mobile-app-deployment.md +6 -0
  173. package/content/knowledge/mobile-app/mobile-app-dev-environment.md +6 -0
  174. package/content/knowledge/mobile-app/mobile-app-distribution.md +6 -0
  175. package/content/knowledge/mobile-app/mobile-app-observability.md +7 -0
  176. package/content/knowledge/mobile-app/mobile-app-offline-patterns.md +7 -0
  177. package/content/knowledge/mobile-app/mobile-app-project-structure.md +6 -0
  178. package/content/knowledge/mobile-app/mobile-app-push-notifications.md +6 -0
  179. package/content/knowledge/mobile-app/mobile-app-requirements.md +7 -0
  180. package/content/knowledge/mobile-app/mobile-app-security.md +8 -0
  181. package/content/knowledge/mobile-app/mobile-app-testing.md +6 -0
  182. package/content/knowledge/product/gap-analysis.md +4 -0
  183. package/content/knowledge/product/ideation-craft.md +4 -0
  184. package/content/knowledge/product/prd-craft.md +4 -0
  185. package/content/knowledge/product/prd-innovation.md +4 -0
  186. package/content/knowledge/product/vision-craft.md +4 -0
  187. package/content/knowledge/product/vision-innovation.md +4 -0
  188. package/content/knowledge/research/research-architecture.md +4 -0
  189. package/content/knowledge/research/research-conventions.md +6 -0
  190. package/content/knowledge/research/research-dev-environment.md +6 -0
  191. package/content/knowledge/research/research-experiment-loop.md +4 -0
  192. package/content/knowledge/research/research-experiment-tracking.md +6 -0
  193. package/content/knowledge/research/research-ml-architecture-search.md +4 -0
  194. package/content/knowledge/research/research-ml-evaluation.md +4 -0
  195. package/content/knowledge/research/research-ml-experiment-tracking.md +6 -0
  196. package/content/knowledge/research/research-ml-training-patterns.md +4 -0
  197. package/content/knowledge/research/research-observability.md +5 -0
  198. package/content/knowledge/research/research-overfitting-prevention.md +5 -0
  199. package/content/knowledge/research/research-project-structure.md +5 -0
  200. package/content/knowledge/research/research-quant-backtesting.md +4 -0
  201. package/content/knowledge/research/research-quant-market-data.md +4 -0
  202. package/content/knowledge/research/research-quant-metrics.md +4 -0
  203. package/content/knowledge/research/research-quant-requirements.md +4 -0
  204. package/content/knowledge/research/research-quant-risk.md +4 -0
  205. package/content/knowledge/research/research-quant-strategy-patterns.md +4 -0
  206. package/content/knowledge/research/research-requirements.md +5 -0
  207. package/content/knowledge/research/research-security.md +5 -0
  208. package/content/knowledge/research/research-sim-compute-management.md +4 -0
  209. package/content/knowledge/research/research-sim-engine-patterns.md +4 -0
  210. package/content/knowledge/research/research-sim-parameter-spaces.md +4 -0
  211. package/content/knowledge/research/research-sim-validation.md +4 -0
  212. package/content/knowledge/research/research-testing.md +5 -0
  213. package/content/knowledge/review/review-adr.md +6 -0
  214. package/content/knowledge/review/review-api-design.md +6 -0
  215. package/content/knowledge/review/review-art-bible.md +4 -0
  216. package/content/knowledge/review/review-database-design.md +5 -0
  217. package/content/knowledge/review/review-domain-modeling.md +5 -0
  218. package/content/knowledge/review/review-game-design.md +4 -0
  219. package/content/knowledge/review/review-game-economy.md +4 -0
  220. package/content/knowledge/review/review-game-ui.md +5 -0
  221. package/content/knowledge/review/review-implementation-tasks.md +5 -0
  222. package/content/knowledge/review/review-methodology.md +4 -0
  223. package/content/knowledge/review/review-netcode.md +4 -0
  224. package/content/knowledge/review/review-operations.md +6 -0
  225. package/content/knowledge/review/review-platform-cert.md +4 -0
  226. package/content/knowledge/review/review-prd.md +4 -0
  227. package/content/knowledge/review/review-security.md +7 -0
  228. package/content/knowledge/review/review-system-architecture.md +6 -0
  229. package/content/knowledge/review/review-testing-strategy.md +6 -0
  230. package/content/knowledge/review/review-user-stories.md +5 -0
  231. package/content/knowledge/review/review-ux-specification.md +6 -0
  232. package/content/knowledge/review/review-vision.md +4 -0
  233. package/content/knowledge/tools/post-implementation-review-methodology.md +4 -0
  234. package/content/knowledge/tools/release-management.md +5 -0
  235. package/content/knowledge/tools/session-analysis.md +4 -0
  236. package/content/knowledge/tools/version-strategy.md +4 -0
  237. package/content/knowledge/validation/critical-path-analysis.md +4 -0
  238. package/content/knowledge/validation/cross-phase-consistency.md +4 -0
  239. package/content/knowledge/validation/decision-completeness.md +5 -0
  240. package/content/knowledge/validation/dependency-validation.md +4 -0
  241. package/content/knowledge/validation/implementability-review.md +4 -0
  242. package/content/knowledge/validation/scope-management.md +4 -0
  243. package/content/knowledge/validation/traceability.md +4 -0
  244. package/content/knowledge/web-app/web-app-api-patterns.md +6 -0
  245. package/content/knowledge/web-app/web-app-architecture.md +6 -0
  246. package/content/knowledge/web-app/web-app-auth-patterns.md +9 -0
  247. package/content/knowledge/web-app/web-app-conventions.md +5 -0
  248. package/content/knowledge/web-app/web-app-data-patterns.md +6 -0
  249. package/content/knowledge/web-app/web-app-deployment-workflow.md +6 -0
  250. package/content/knowledge/web-app/web-app-deployment.md +6 -0
  251. package/content/knowledge/web-app/web-app-design-system.md +6 -0
  252. package/content/knowledge/web-app/web-app-dev-environment.md +6 -0
  253. package/content/knowledge/web-app/web-app-observability.md +6 -0
  254. package/content/knowledge/web-app/web-app-project-structure.md +5 -0
  255. package/content/knowledge/web-app/web-app-rendering-strategies.md +6 -0
  256. package/content/knowledge/web-app/web-app-requirements.md +6 -0
  257. package/content/knowledge/web-app/web-app-security.md +8 -0
  258. package/content/knowledge/web-app/web-app-session-patterns.md +7 -0
  259. package/content/knowledge/web-app/web-app-testing.md +6 -0
  260. package/content/knowledge/web-app/web-app-ux-patterns.md +6 -0
  261. package/content/knowledge/web3/web3-access-control.md +8 -0
  262. package/content/knowledge/web3/web3-architecture.md +7 -0
  263. package/content/knowledge/web3/web3-audit-workflow.md +7 -0
  264. package/content/knowledge/web3/web3-common-vulnerabilities.md +8 -0
  265. package/content/knowledge/web3/web3-conventions.md +6 -0
  266. package/content/knowledge/web3/web3-deployment-and-verification.md +7 -0
  267. package/content/knowledge/web3/web3-dev-environment.md +6 -0
  268. package/content/knowledge/web3/web3-gas-optimization.md +7 -0
  269. package/content/knowledge/web3/web3-oracles-and-external-data.md +7 -0
  270. package/content/knowledge/web3/web3-project-structure.md +6 -0
  271. package/content/knowledge/web3/web3-requirements.md +6 -0
  272. package/content/knowledge/web3/web3-security.md +8 -0
  273. package/content/knowledge/web3/web3-testing.md +6 -0
  274. package/content/knowledge/web3/web3-upgradeability.md +7 -0
  275. package/content/pipeline/build/multi-agent-resume.md +27 -7
  276. package/content/pipeline/build/multi-agent-start.md +35 -7
  277. package/content/pipeline/build/new-enhancement.md +8 -1
  278. package/content/pipeline/build/quick-task.md +9 -0
  279. package/content/pipeline/build/single-agent-resume.md +11 -4
  280. package/content/pipeline/build/single-agent-start.md +13 -4
  281. package/content/pipeline/consolidation/workflow-audit.md +1 -1
  282. package/content/pipeline/environment/git-workflow.md +2 -2
  283. package/content/pipeline/foundation/beads.md +148 -22
  284. package/content/pipeline/foundation/coding-standards.md +1 -1
  285. package/content/tools/knowledge-audit-entry.md +79 -0
  286. package/content/tools/post-implementation-review.md +6 -6
  287. package/content/tools/prompt-pipeline.md +1 -1
  288. package/content/tools/release.md +5 -5
  289. package/content/tools/review-code.md +388 -17
  290. package/content/tools/review-pr.md +381 -21
  291. package/content/tools/version-bump.md +5 -5
  292. package/dist/cli/commands/dashboard.d.ts +1 -1
  293. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  294. package/dist/cli/commands/dashboard.js +10 -10
  295. package/dist/cli/commands/dashboard.js.map +1 -1
  296. package/dist/cli/commands/dashboard.test.js +1 -1
  297. package/dist/cli/commands/dashboard.test.js.map +1 -1
  298. package/dist/cli/commands/guides.d.ts +24 -0
  299. package/dist/cli/commands/guides.d.ts.map +1 -0
  300. package/dist/cli/commands/guides.js +103 -0
  301. package/dist/cli/commands/guides.js.map +1 -0
  302. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts +9 -0
  303. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts.map +1 -0
  304. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js +112 -0
  305. package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js.map +1 -0
  306. package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts +8 -0
  307. package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts.map +1 -0
  308. package/dist/cli/commands/knowledge-freshness-audit-apply.js +96 -0
  309. package/dist/cli/commands/knowledge-freshness-audit-apply.js.map +1 -0
  310. package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts +7 -0
  311. package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts.map +1 -0
  312. package/dist/cli/commands/knowledge-freshness-audit-prefilter.js +42 -0
  313. package/dist/cli/commands/knowledge-freshness-audit-prefilter.js.map +1 -0
  314. package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts +9 -0
  315. package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts.map +1 -0
  316. package/dist/cli/commands/knowledge-freshness-audit-run-entry.js +63 -0
  317. package/dist/cli/commands/knowledge-freshness-audit-run-entry.js.map +1 -0
  318. package/dist/cli/commands/knowledge-freshness-bump-version.d.ts +8 -0
  319. package/dist/cli/commands/knowledge-freshness-bump-version.d.ts.map +1 -0
  320. package/dist/cli/commands/knowledge-freshness-bump-version.js +34 -0
  321. package/dist/cli/commands/knowledge-freshness-bump-version.js.map +1 -0
  322. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts +7 -0
  323. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts.map +1 -0
  324. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js +51 -0
  325. package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js.map +1 -0
  326. package/dist/cli/commands/knowledge-freshness-link-check.d.ts +7 -0
  327. package/dist/cli/commands/knowledge-freshness-link-check.d.ts.map +1 -0
  328. package/dist/cli/commands/knowledge-freshness-link-check.js +57 -0
  329. package/dist/cli/commands/knowledge-freshness-link-check.js.map +1 -0
  330. package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts +8 -0
  331. package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts.map +1 -0
  332. package/dist/cli/commands/knowledge-freshness-lint-unsourced.js +58 -0
  333. package/dist/cli/commands/knowledge-freshness-lint-unsourced.js.map +1 -0
  334. package/dist/cli/commands/knowledge-freshness.d.ts +4 -0
  335. package/dist/cli/commands/knowledge-freshness.d.ts.map +1 -0
  336. package/dist/cli/commands/knowledge-freshness.js +25 -0
  337. package/dist/cli/commands/knowledge-freshness.js.map +1 -0
  338. package/dist/cli/commands/observe.d.ts +6 -0
  339. package/dist/cli/commands/observe.d.ts.map +1 -1
  340. package/dist/cli/commands/observe.js +22 -1
  341. package/dist/cli/commands/observe.js.map +1 -1
  342. package/dist/cli/commands/observe.test.js +82 -0
  343. package/dist/cli/commands/observe.test.js.map +1 -1
  344. package/dist/cli/commands/validate-knowledge.d.ts +4 -0
  345. package/dist/cli/commands/validate-knowledge.d.ts.map +1 -0
  346. package/dist/cli/commands/validate-knowledge.js +32 -0
  347. package/dist/cli/commands/validate-knowledge.js.map +1 -0
  348. package/dist/cli/index.d.ts.map +1 -1
  349. package/dist/cli/index.js +6 -0
  350. package/dist/cli/index.js.map +1 -1
  351. package/dist/core/adapters/claude-code.d.ts.map +1 -1
  352. package/dist/core/adapters/claude-code.js +6 -3
  353. package/dist/core/adapters/claude-code.js.map +1 -1
  354. package/dist/core/adapters/claude-code.test.js +45 -1
  355. package/dist/core/adapters/claude-code.test.js.map +1 -1
  356. package/dist/core/assembly/engine.d.ts.map +1 -1
  357. package/dist/core/assembly/engine.js +7 -3
  358. package/dist/core/assembly/engine.js.map +1 -1
  359. package/dist/core/assembly/engine.test.js +45 -1
  360. package/dist/core/assembly/engine.test.js.map +1 -1
  361. package/dist/core/assembly/gap-signal-tail.d.ts +18 -0
  362. package/dist/core/assembly/gap-signal-tail.d.ts.map +1 -0
  363. package/dist/core/assembly/gap-signal-tail.js +43 -0
  364. package/dist/core/assembly/gap-signal-tail.js.map +1 -0
  365. package/dist/core/assembly/gap-signal-tail.test.d.ts +2 -0
  366. package/dist/core/assembly/gap-signal-tail.test.d.ts.map +1 -0
  367. package/dist/core/assembly/gap-signal-tail.test.js +49 -0
  368. package/dist/core/assembly/gap-signal-tail.test.js.map +1 -0
  369. package/dist/core/assembly/knowledge-loader.d.ts +11 -0
  370. package/dist/core/assembly/knowledge-loader.d.ts.map +1 -1
  371. package/dist/core/assembly/knowledge-loader.js +54 -1
  372. package/dist/core/assembly/knowledge-loader.js.map +1 -1
  373. package/dist/core/assembly/knowledge-loader.test.js +73 -0
  374. package/dist/core/assembly/knowledge-loader.test.js.map +1 -1
  375. package/dist/guides/build.d.ts +12 -0
  376. package/dist/guides/build.d.ts.map +1 -0
  377. package/dist/guides/build.js +50 -0
  378. package/dist/guides/build.js.map +1 -0
  379. package/dist/guides/build.test.d.ts +2 -0
  380. package/dist/guides/build.test.d.ts.map +1 -0
  381. package/dist/guides/build.test.js +74 -0
  382. package/dist/guides/build.test.js.map +1 -0
  383. package/dist/guides/chrome.d.ts +24 -0
  384. package/dist/guides/chrome.d.ts.map +1 -0
  385. package/dist/guides/chrome.js +118 -0
  386. package/dist/guides/chrome.js.map +1 -0
  387. package/dist/guides/cli-guides.test.d.ts +2 -0
  388. package/dist/guides/cli-guides.test.d.ts.map +1 -0
  389. package/dist/guides/cli-guides.test.js +41 -0
  390. package/dist/guides/cli-guides.test.js.map +1 -0
  391. package/dist/guides/dashboard-theme.css +1073 -0
  392. package/dist/guides/directives-callout.test.d.ts +2 -0
  393. package/dist/guides/directives-callout.test.d.ts.map +1 -0
  394. package/dist/guides/directives-callout.test.js +22 -0
  395. package/dist/guides/directives-callout.test.js.map +1 -0
  396. package/dist/guides/directives-chart.test.d.ts +2 -0
  397. package/dist/guides/directives-chart.test.d.ts.map +1 -0
  398. package/dist/guides/directives-chart.test.js +25 -0
  399. package/dist/guides/directives-chart.test.js.map +1 -0
  400. package/dist/guides/directives-filter-table.test.d.ts +2 -0
  401. package/dist/guides/directives-filter-table.test.d.ts.map +1 -0
  402. package/dist/guides/directives-filter-table.test.js +22 -0
  403. package/dist/guides/directives-filter-table.test.js.map +1 -0
  404. package/dist/guides/directives-sev.test.d.ts +2 -0
  405. package/dist/guides/directives-sev.test.d.ts.map +1 -0
  406. package/dist/guides/directives-sev.test.js +15 -0
  407. package/dist/guides/directives-sev.test.js.map +1 -0
  408. package/dist/guides/directives-tabs.test.d.ts +2 -0
  409. package/dist/guides/directives-tabs.test.d.ts.map +1 -0
  410. package/dist/guides/directives-tabs.test.js +52 -0
  411. package/dist/guides/directives-tabs.test.js.map +1 -0
  412. package/dist/guides/directives.d.ts +7 -0
  413. package/dist/guides/directives.d.ts.map +1 -0
  414. package/dist/guides/directives.js +158 -0
  415. package/dist/guides/directives.js.map +1 -0
  416. package/dist/guides/fs-guides.test.d.ts +2 -0
  417. package/dist/guides/fs-guides.test.d.ts.map +1 -0
  418. package/dist/guides/fs-guides.test.js +14 -0
  419. package/dist/guides/fs-guides.test.js.map +1 -0
  420. package/dist/guides/index-page.d.ts +3 -0
  421. package/dist/guides/index-page.d.ts.map +1 -0
  422. package/dist/guides/index-page.js +14 -0
  423. package/dist/guides/index-page.js.map +1 -0
  424. package/dist/guides/lint.d.ts +6 -0
  425. package/dist/guides/lint.d.ts.map +1 -0
  426. package/dist/guides/lint.js +27 -0
  427. package/dist/guides/lint.js.map +1 -0
  428. package/dist/guides/lint.test.d.ts +2 -0
  429. package/dist/guides/lint.test.d.ts.map +1 -0
  430. package/dist/guides/lint.test.js +24 -0
  431. package/dist/guides/lint.test.js.map +1 -0
  432. package/dist/guides/loader.d.ts +4 -0
  433. package/dist/guides/loader.d.ts.map +1 -0
  434. package/dist/guides/loader.js +63 -0
  435. package/dist/guides/loader.js.map +1 -0
  436. package/dist/guides/loader.test.d.ts +2 -0
  437. package/dist/guides/loader.test.d.ts.map +1 -0
  438. package/dist/guides/loader.test.js +85 -0
  439. package/dist/guides/loader.test.js.map +1 -0
  440. package/dist/guides/mermaid-sanitize.test.d.ts +2 -0
  441. package/dist/guides/mermaid-sanitize.test.d.ts.map +1 -0
  442. package/dist/guides/mermaid-sanitize.test.js +57 -0
  443. package/dist/guides/mermaid-sanitize.test.js.map +1 -0
  444. package/dist/guides/mermaid.d.ts +18 -0
  445. package/dist/guides/mermaid.d.ts.map +1 -0
  446. package/dist/guides/mermaid.js +137 -0
  447. package/dist/guides/mermaid.js.map +1 -0
  448. package/dist/guides/mermaid.test.d.ts +2 -0
  449. package/dist/guides/mermaid.test.d.ts.map +1 -0
  450. package/dist/guides/mermaid.test.js +105 -0
  451. package/dist/guides/mermaid.test.js.map +1 -0
  452. package/dist/guides/render.d.ts +12 -0
  453. package/dist/guides/render.d.ts.map +1 -0
  454. package/dist/guides/render.js +58 -0
  455. package/dist/guides/render.js.map +1 -0
  456. package/dist/guides/render.test.d.ts +2 -0
  457. package/dist/guides/render.test.d.ts.map +1 -0
  458. package/dist/guides/render.test.js +46 -0
  459. package/dist/guides/render.test.js.map +1 -0
  460. package/dist/guides/sanitize.d.ts +3 -0
  461. package/dist/guides/sanitize.d.ts.map +1 -0
  462. package/dist/guides/sanitize.js +76 -0
  463. package/dist/guides/sanitize.js.map +1 -0
  464. package/dist/guides/sanitize.test.d.ts +2 -0
  465. package/dist/guides/sanitize.test.d.ts.map +1 -0
  466. package/dist/guides/sanitize.test.js +45 -0
  467. package/dist/guides/sanitize.test.js.map +1 -0
  468. package/dist/guides/template.d.ts +11 -0
  469. package/dist/guides/template.d.ts.map +1 -0
  470. package/dist/guides/template.js +38 -0
  471. package/dist/guides/template.js.map +1 -0
  472. package/dist/guides/template.test.d.ts +2 -0
  473. package/dist/guides/template.test.d.ts.map +1 -0
  474. package/dist/guides/template.test.js +41 -0
  475. package/dist/guides/template.test.js.map +1 -0
  476. package/dist/guides/types.d.ts +20 -0
  477. package/dist/guides/types.d.ts.map +1 -0
  478. package/dist/guides/types.js +2 -0
  479. package/dist/guides/types.js.map +1 -0
  480. package/dist/knowledge-freshness/audit-apply-pr.d.ts +64 -0
  481. package/dist/knowledge-freshness/audit-apply-pr.d.ts.map +1 -0
  482. package/dist/knowledge-freshness/audit-apply-pr.js +309 -0
  483. package/dist/knowledge-freshness/audit-apply-pr.js.map +1 -0
  484. package/dist/knowledge-freshness/audit-apply-pr.test.d.ts +2 -0
  485. package/dist/knowledge-freshness/audit-apply-pr.test.d.ts.map +1 -0
  486. package/dist/knowledge-freshness/audit-apply-pr.test.js +211 -0
  487. package/dist/knowledge-freshness/audit-apply-pr.test.js.map +1 -0
  488. package/dist/knowledge-freshness/audit-apply.d.ts +16 -0
  489. package/dist/knowledge-freshness/audit-apply.d.ts.map +1 -0
  490. package/dist/knowledge-freshness/audit-apply.js +193 -0
  491. package/dist/knowledge-freshness/audit-apply.js.map +1 -0
  492. package/dist/knowledge-freshness/audit-apply.test.d.ts +2 -0
  493. package/dist/knowledge-freshness/audit-apply.test.d.ts.map +1 -0
  494. package/dist/knowledge-freshness/audit-apply.test.js +482 -0
  495. package/dist/knowledge-freshness/audit-apply.test.js.map +1 -0
  496. package/dist/knowledge-freshness/audit-prefilter.d.ts +12 -0
  497. package/dist/knowledge-freshness/audit-prefilter.d.ts.map +1 -0
  498. package/dist/knowledge-freshness/audit-prefilter.js +74 -0
  499. package/dist/knowledge-freshness/audit-prefilter.js.map +1 -0
  500. package/dist/knowledge-freshness/audit-prefilter.test.d.ts +2 -0
  501. package/dist/knowledge-freshness/audit-prefilter.test.d.ts.map +1 -0
  502. package/dist/knowledge-freshness/audit-prefilter.test.js +78 -0
  503. package/dist/knowledge-freshness/audit-prefilter.test.js.map +1 -0
  504. package/dist/knowledge-freshness/audit-runner.d.ts +135 -0
  505. package/dist/knowledge-freshness/audit-runner.d.ts.map +1 -0
  506. package/dist/knowledge-freshness/audit-runner.js +168 -0
  507. package/dist/knowledge-freshness/audit-runner.js.map +1 -0
  508. package/dist/knowledge-freshness/audit-runner.test.d.ts +2 -0
  509. package/dist/knowledge-freshness/audit-runner.test.d.ts.map +1 -0
  510. package/dist/knowledge-freshness/audit-runner.test.js +130 -0
  511. package/dist/knowledge-freshness/audit-runner.test.js.map +1 -0
  512. package/dist/knowledge-freshness/bump-version.d.ts +24 -0
  513. package/dist/knowledge-freshness/bump-version.d.ts.map +1 -0
  514. package/dist/knowledge-freshness/bump-version.js +69 -0
  515. package/dist/knowledge-freshness/bump-version.js.map +1 -0
  516. package/dist/knowledge-freshness/bump-version.test.d.ts +2 -0
  517. package/dist/knowledge-freshness/bump-version.test.d.ts.map +1 -0
  518. package/dist/knowledge-freshness/bump-version.test.js +82 -0
  519. package/dist/knowledge-freshness/bump-version.test.js.map +1 -0
  520. package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts +86 -0
  521. package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts.map +1 -0
  522. package/dist/knowledge-freshness/gates/anti-over-rewrite.js +210 -0
  523. package/dist/knowledge-freshness/gates/anti-over-rewrite.js.map +1 -0
  524. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts +2 -0
  525. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts.map +1 -0
  526. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js +115 -0
  527. package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js.map +1 -0
  528. package/dist/knowledge-freshness/gates/changed-files.d.ts +53 -0
  529. package/dist/knowledge-freshness/gates/changed-files.d.ts.map +1 -0
  530. package/dist/knowledge-freshness/gates/changed-files.js +128 -0
  531. package/dist/knowledge-freshness/gates/changed-files.js.map +1 -0
  532. package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts +23 -0
  533. package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts.map +1 -0
  534. package/dist/knowledge-freshness/gates/deep-guidance-check.js +27 -0
  535. package/dist/knowledge-freshness/gates/deep-guidance-check.js.map +1 -0
  536. package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts +2 -0
  537. package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts.map +1 -0
  538. package/dist/knowledge-freshness/gates/deep-guidance-check.test.js +23 -0
  539. package/dist/knowledge-freshness/gates/deep-guidance-check.test.js.map +1 -0
  540. package/dist/knowledge-freshness/gates/link-check.d.ts +55 -0
  541. package/dist/knowledge-freshness/gates/link-check.d.ts.map +1 -0
  542. package/dist/knowledge-freshness/gates/link-check.js +161 -0
  543. package/dist/knowledge-freshness/gates/link-check.js.map +1 -0
  544. package/dist/knowledge-freshness/gates/link-check.test.d.ts +2 -0
  545. package/dist/knowledge-freshness/gates/link-check.test.d.ts.map +1 -0
  546. package/dist/knowledge-freshness/gates/link-check.test.js +76 -0
  547. package/dist/knowledge-freshness/gates/link-check.test.js.map +1 -0
  548. package/dist/knowledge-freshness/gates/lint-unsourced.d.ts +40 -0
  549. package/dist/knowledge-freshness/gates/lint-unsourced.d.ts.map +1 -0
  550. package/dist/knowledge-freshness/gates/lint-unsourced.js +143 -0
  551. package/dist/knowledge-freshness/gates/lint-unsourced.js.map +1 -0
  552. package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts +2 -0
  553. package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts.map +1 -0
  554. package/dist/knowledge-freshness/gates/lint-unsourced.test.js +68 -0
  555. package/dist/knowledge-freshness/gates/lint-unsourced.test.js.map +1 -0
  556. package/dist/knowledge-freshness/gates/parse-entry.d.ts +25 -0
  557. package/dist/knowledge-freshness/gates/parse-entry.d.ts.map +1 -0
  558. package/dist/knowledge-freshness/gates/parse-entry.js +41 -0
  559. package/dist/knowledge-freshness/gates/parse-entry.js.map +1 -0
  560. package/dist/knowledge-freshness/gates/parse-entry.test.d.ts +2 -0
  561. package/dist/knowledge-freshness/gates/parse-entry.test.d.ts.map +1 -0
  562. package/dist/knowledge-freshness/gates/parse-entry.test.js +34 -0
  563. package/dist/knowledge-freshness/gates/parse-entry.test.js.map +1 -0
  564. package/dist/knowledge-freshness/providers/anthropic.d.ts +33 -0
  565. package/dist/knowledge-freshness/providers/anthropic.d.ts.map +1 -0
  566. package/dist/knowledge-freshness/providers/anthropic.js +36 -0
  567. package/dist/knowledge-freshness/providers/anthropic.js.map +1 -0
  568. package/dist/knowledge-freshness/providers/anthropic.test.d.ts +2 -0
  569. package/dist/knowledge-freshness/providers/anthropic.test.d.ts.map +1 -0
  570. package/dist/knowledge-freshness/providers/anthropic.test.js +32 -0
  571. package/dist/knowledge-freshness/providers/anthropic.test.js.map +1 -0
  572. package/dist/knowledge-freshness/providers/deepseek.d.ts +33 -0
  573. package/dist/knowledge-freshness/providers/deepseek.d.ts.map +1 -0
  574. package/dist/knowledge-freshness/providers/deepseek.js +157 -0
  575. package/dist/knowledge-freshness/providers/deepseek.js.map +1 -0
  576. package/dist/knowledge-freshness/providers/deepseek.test.d.ts +2 -0
  577. package/dist/knowledge-freshness/providers/deepseek.test.d.ts.map +1 -0
  578. package/dist/knowledge-freshness/providers/deepseek.test.js +142 -0
  579. package/dist/knowledge-freshness/providers/deepseek.test.js.map +1 -0
  580. package/dist/knowledge-freshness/providers/index.d.ts +41 -0
  581. package/dist/knowledge-freshness/providers/index.d.ts.map +1 -0
  582. package/dist/knowledge-freshness/providers/index.js +108 -0
  583. package/dist/knowledge-freshness/providers/index.js.map +1 -0
  584. package/dist/knowledge-freshness/providers/index.test.d.ts +2 -0
  585. package/dist/knowledge-freshness/providers/index.test.d.ts.map +1 -0
  586. package/dist/knowledge-freshness/providers/index.test.js +97 -0
  587. package/dist/knowledge-freshness/providers/index.test.js.map +1 -0
  588. package/dist/knowledge-freshness/source-hash.d.ts +39 -0
  589. package/dist/knowledge-freshness/source-hash.d.ts.map +1 -0
  590. package/dist/knowledge-freshness/source-hash.js +180 -0
  591. package/dist/knowledge-freshness/source-hash.js.map +1 -0
  592. package/dist/knowledge-freshness/source-hash.test.d.ts +2 -0
  593. package/dist/knowledge-freshness/source-hash.test.d.ts.map +1 -0
  594. package/dist/knowledge-freshness/source-hash.test.js +63 -0
  595. package/dist/knowledge-freshness/source-hash.test.js.map +1 -0
  596. package/dist/knowledge-freshness/source-url-validator.d.ts +57 -0
  597. package/dist/knowledge-freshness/source-url-validator.d.ts.map +1 -0
  598. package/dist/knowledge-freshness/source-url-validator.js +304 -0
  599. package/dist/knowledge-freshness/source-url-validator.js.map +1 -0
  600. package/dist/knowledge-freshness/source-url-validator.test.d.ts +2 -0
  601. package/dist/knowledge-freshness/source-url-validator.test.d.ts.map +1 -0
  602. package/dist/knowledge-freshness/source-url-validator.test.js +167 -0
  603. package/dist/knowledge-freshness/source-url-validator.test.js.map +1 -0
  604. package/dist/observability/adapters/beads.d.ts +4 -0
  605. package/dist/observability/adapters/beads.d.ts.map +1 -1
  606. package/dist/observability/adapters/beads.js +25 -2
  607. package/dist/observability/adapters/beads.js.map +1 -1
  608. package/dist/observability/adapters/beads.test.js +40 -2
  609. package/dist/observability/adapters/beads.test.js.map +1 -1
  610. package/dist/observability/checks/lens-i-knowledge-gaps.d.ts +3 -0
  611. package/dist/observability/checks/lens-i-knowledge-gaps.d.ts.map +1 -0
  612. package/dist/observability/checks/lens-i-knowledge-gaps.js +165 -0
  613. package/dist/observability/checks/lens-i-knowledge-gaps.js.map +1 -0
  614. package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts +2 -0
  615. package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts.map +1 -0
  616. package/dist/observability/checks/lens-i-knowledge-gaps.test.js +421 -0
  617. package/dist/observability/checks/lens-i-knowledge-gaps.test.js.map +1 -0
  618. package/dist/observability/checks/lens-i-lessons-scanner.d.ts +16 -0
  619. package/dist/observability/checks/lens-i-lessons-scanner.d.ts.map +1 -0
  620. package/dist/observability/checks/lens-i-lessons-scanner.js +106 -0
  621. package/dist/observability/checks/lens-i-lessons-scanner.js.map +1 -0
  622. package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts +2 -0
  623. package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts.map +1 -0
  624. package/dist/observability/checks/lens-i-lessons-scanner.test.js +174 -0
  625. package/dist/observability/checks/lens-i-lessons-scanner.test.js.map +1 -0
  626. package/dist/observability/engine/api.d.ts +4 -0
  627. package/dist/observability/engine/api.d.ts.map +1 -1
  628. package/dist/observability/engine/api.js +17 -1
  629. package/dist/observability/engine/api.js.map +1 -1
  630. package/dist/observability/engine/checks/observability-config.d.ts +4 -0
  631. package/dist/observability/engine/checks/observability-config.d.ts.map +1 -1
  632. package/dist/observability/engine/checks/observability-config.js +1 -0
  633. package/dist/observability/engine/checks/observability-config.js.map +1 -1
  634. package/dist/observability/engine/checks/registry.d.ts.map +1 -1
  635. package/dist/observability/engine/checks/registry.js +7 -0
  636. package/dist/observability/engine/checks/registry.js.map +1 -1
  637. package/dist/observability/engine/checks/registry.test.js +3 -2
  638. package/dist/observability/engine/checks/registry.test.js.map +1 -1
  639. package/dist/observability/engine/checks/runner.d.ts +30 -0
  640. package/dist/observability/engine/checks/runner.d.ts.map +1 -1
  641. package/dist/observability/engine/checks/runner.js +8 -1
  642. package/dist/observability/engine/checks/runner.js.map +1 -1
  643. package/dist/observability/engine/checks/runner.test.js +74 -0
  644. package/dist/observability/engine/checks/runner.test.js.map +1 -1
  645. package/dist/observability/engine/event-schemas.d.ts.map +1 -1
  646. package/dist/observability/engine/event-schemas.js +41 -3
  647. package/dist/observability/engine/event-schemas.js.map +1 -1
  648. package/dist/observability/engine/event-schemas.test.js +105 -0
  649. package/dist/observability/engine/event-schemas.test.js.map +1 -1
  650. package/dist/observability/engine/fix-flow.d.ts +7 -0
  651. package/dist/observability/engine/fix-flow.d.ts.map +1 -1
  652. package/dist/observability/engine/fix-flow.js +5 -3
  653. package/dist/observability/engine/fix-flow.js.map +1 -1
  654. package/dist/observability/engine/knowledge-root-integration.test.d.ts +2 -0
  655. package/dist/observability/engine/knowledge-root-integration.test.d.ts.map +1 -0
  656. package/dist/observability/engine/knowledge-root-integration.test.js +103 -0
  657. package/dist/observability/engine/knowledge-root-integration.test.js.map +1 -0
  658. package/dist/observability/engine/ledger-writer.d.ts +11 -1
  659. package/dist/observability/engine/ledger-writer.d.ts.map +1 -1
  660. package/dist/observability/engine/ledger-writer.js +6 -0
  661. package/dist/observability/engine/ledger-writer.js.map +1 -1
  662. package/dist/observability/engine/llm-dispatcher.d.ts.map +1 -1
  663. package/dist/observability/engine/llm-dispatcher.js +36 -5
  664. package/dist/observability/engine/llm-dispatcher.js.map +1 -1
  665. package/dist/observability/engine/llm-dispatcher.test.js +23 -0
  666. package/dist/observability/engine/llm-dispatcher.test.js.map +1 -1
  667. package/dist/observability/engine/types.d.ts +20 -1
  668. package/dist/observability/engine/types.d.ts.map +1 -1
  669. package/dist/observability/engine/types.test.js +1 -1
  670. package/dist/observability/engine/types.test.js.map +1 -1
  671. package/dist/observability/knowledge-index.d.ts +145 -0
  672. package/dist/observability/knowledge-index.d.ts.map +1 -0
  673. package/dist/observability/knowledge-index.js +353 -0
  674. package/dist/observability/knowledge-index.js.map +1 -0
  675. package/dist/observability/knowledge-index.test.d.ts +2 -0
  676. package/dist/observability/knowledge-index.test.d.ts.map +1 -0
  677. package/dist/observability/knowledge-index.test.js +364 -0
  678. package/dist/observability/knowledge-index.test.js.map +1 -0
  679. package/dist/observability/renderers/markdown.d.ts.map +1 -1
  680. package/dist/observability/renderers/markdown.js +14 -0
  681. package/dist/observability/renderers/markdown.js.map +1 -1
  682. package/dist/observability/renderers/markdown.test.js +30 -0
  683. package/dist/observability/renderers/markdown.test.js.map +1 -1
  684. package/dist/types/assembly.d.ts +10 -0
  685. package/dist/types/assembly.d.ts.map +1 -1
  686. package/dist/utils/fs.d.ts +6 -0
  687. package/dist/utils/fs.d.ts.map +1 -1
  688. package/dist/utils/fs.js +13 -0
  689. package/dist/utils/fs.js.map +1 -1
  690. package/dist/validation/knowledge-frontmatter-validator.d.ts +15 -0
  691. package/dist/validation/knowledge-frontmatter-validator.d.ts.map +1 -0
  692. package/dist/validation/knowledge-frontmatter-validator.js +131 -0
  693. package/dist/validation/knowledge-frontmatter-validator.js.map +1 -0
  694. package/dist/validation/knowledge-frontmatter-validator.test.d.ts +2 -0
  695. package/dist/validation/knowledge-frontmatter-validator.test.d.ts.map +1 -0
  696. package/dist/validation/knowledge-frontmatter-validator.test.js +66 -0
  697. package/dist/validation/knowledge-frontmatter-validator.test.js.map +1 -0
  698. package/package.json +13 -4
@@ -14,11 +14,11 @@ argument-hint: "<PR# or blank> [--fix-threshold P0|P1|P2|P3]"
14
14
 
15
15
  ## Purpose
16
16
 
17
- Run the three CLI review channels (Codex, Gemini, Claude) on a pull request
18
- **plus** the Superpowers code-reviewer agent as a complementary 4th channel,
19
- and reconcile all findings through MMR. This is the single entry point for
20
- **PR-scoped** code review — agents call this once instead of remembering four
21
- separate review invocations.
17
+ Run the four built-in CLI review channels (Codex, Gemini, Claude, Grok) on a
18
+ pull request **plus** the Superpowers code-reviewer agent as a complementary
19
+ agent channel, and reconcile all findings through MMR. This is the single entry
20
+ point for **PR-scoped** code review — agents call this once instead of
21
+ remembering separate review invocations.
22
22
 
23
23
  **For non-PR targets**, don't use this tool. Call `mmr review` directly with
24
24
  the appropriate input mode, or use `scaffold run review-code` for local
@@ -34,13 +34,14 @@ pre-commit review:
34
34
  under `set -o pipefail`)
35
35
 
36
36
  The `--diff` flag expects diff-format content; it does not read raw document
37
- content. The three-channel review itself is not PR-specific — this tool is
37
+ content. The built-in CLI review itself is not PR-specific — this tool is
38
38
  just the PR wrapper around the more general `mmr review` CLI.
39
39
 
40
- The three channels are:
40
+ The built-in CLI channels are:
41
41
  1. **Codex CLI** — OpenAI's code analysis (implementation correctness, security, API contracts)
42
42
  2. **Gemini CLI** — Google's design reasoning (architectural patterns, broad context)
43
43
  3. **Claude CLI** — Anthropic's code review (plan alignment, code quality, testing)
44
+ 4. **Grok CLI** — xAI's independent second opinion (correctness, code quality; proprietary)
44
45
 
45
46
  ## Inputs
46
47
 
@@ -53,7 +54,7 @@ in the review criteria config rather than read at dispatch time.
53
54
 
54
55
  ## Expected Outputs
55
56
 
56
- - All three CLI review channels executed (or fallback documented) plus the Superpowers code-reviewer 4th channel reconciled via `mmr reconcile`
57
+ - All built-in CLI review channels executed (or fallback documented) plus the Superpowers code-reviewer agent channel reconciled via `mmr reconcile`
57
58
  - findings at or above the configured `fix_threshold` fixed before proceeding (read from `results.fix_threshold` in the verdict JSON; default `P2`)
58
59
  - Review summary with per-channel results and reconciliation
59
60
 
@@ -108,7 +109,7 @@ The CLI supports multiple input modes:
108
109
 
109
110
  **Manual fallback** (when MMR CLI is not installed):
110
111
 
111
- Run Codex, Gemini, and Claude CLI commands individually as foreground Bash calls.
112
+ Run Codex, Gemini, Claude, and Grok CLI commands individually as foreground Bash calls.
112
113
  Never use `run_in_background`, `&`, or `nohup`.
113
114
 
114
115
  #### Channel 1: Codex CLI
@@ -141,11 +142,28 @@ claude -p "REVIEW_PROMPT" --output-format json 2>/dev/null
141
142
 
142
143
  Claude CLI handles its own auth. Focus: plan alignment, code quality, testing.
143
144
 
145
+ #### Channel 4: Grok CLI
146
+
147
+ ```bash
148
+ command -v grok >/dev/null 2>&1 || echo "Grok not installed"
149
+ grok models >/dev/null 2>&1 && echo "Grok authed" || echo "Run: grok login"
150
+ # grok ignores stdin — the prompt MUST be passed via a file (or the -p arg).
151
+ # Use mktemp (never a predictable /tmp path) and clean up afterward:
152
+ PROMPT_FILE=$(mktemp)
153
+ printf '%s' "REVIEW_PROMPT" > "$PROMPT_FILE"
154
+ grok --prompt-file "$PROMPT_FILE" --output-format json 2>/dev/null
155
+ rm -f "$PROMPT_FILE"
156
+ ```
157
+
158
+ Grok's JSON wraps the reply in `.text`. If not installed or auth fails, queue a
159
+ compensating pass focused on an independent second opinion over correctness and code
160
+ quality. Auth failure recovery: `! grok login`.
161
+
144
162
  **After all channels:** Run any queued compensating passes as additional `claude -p`
145
- dispatches with focused prompts. Label findings as `[compensating: Codex-equivalent]`
146
- or `[compensating: Gemini-equivalent]`.
163
+ dispatches with focused prompts. Label findings as `[compensating: Codex-equivalent]`,
164
+ `[compensating: Gemini-equivalent]`, or `[compensating: Grok-equivalent]`.
147
165
 
148
- ### Step 3: Run Agent Code Review (4th channel)
166
+ ### Step 3: Run Agent Code Review (complementary agent channel)
149
167
 
150
168
  Dispatch your platform's code-reviewer skill for a complementary review:
151
169
  - **Claude Code:** dispatch `superpowers:code-reviewer` subagent with the PR diff and review criteria
@@ -153,7 +171,7 @@ Dispatch your platform's code-reviewer skill for a complementary review:
153
171
 
154
172
  The agent skill runs inside your agent's context — it has access to conversation history, project knowledge, and plan context that external CLIs lack.
155
173
 
156
- **Important:** The agent's review output must use MMR-compatible finding schema: each finding needs `severity` (P0-P3), `location` (file:line), and `description` (`suggestion` is optional). The strict validator in `mmr reconcile` will reject findings with missing or invalid required fields.
174
+ **Important:** The agent's review output must use MMR-compatible finding schema: each finding needs `severity` (P0-P3), `location` (file:line), and `description` (`category` and `suggestion` are optional, but `category` is recommended for finding identity). The strict validator in `mmr reconcile` will reject findings with missing or invalid required fields.
157
175
 
158
176
  ### Step 4: Inject Agent Review into MMR
159
177
 
@@ -230,15 +248,357 @@ If any findings sit at or above `fix_threshold` (the verdict JSON's `fix_thresho
230
248
  1. Fix them in the code
231
249
  2. Push the fixes: `git push`
232
250
  3. Re-run the review to verify fixes: `mmr review --pr "$PR_NUMBER" --sync --format json`
233
- 4. The 3-round limit is **per finding**, not total rounds:
234
- - **Keep going** when each new round surfaces *different, concrete, fixable* findings — that is healthy review/fix iteration.
235
- - **Stop and ask the user** when (a) the *same* blocking finding (or set) recurs across 3 attempts without progress, (b) a finding is genuinely ambiguous (channels contradict each other), or (c) the user explicitly asks to stop.
236
- - **When stopped**, do NOT merge automatically. Document the unresolved findings (severity, location, attempt count) and let the user decide whether to continue fixing, create follow-up issues, or override.
251
+ 4. The 3-round limit is **per finding**, enforced by the wrapper-side hash in Step 7a (`.scaffold/review-attempts/<session-id>.json`):
252
+ - **Keep going** when each new round surfaces genuinely different findings with *new* hashes — that is healthy review/fix iteration.
253
+ - **Stop and ask the user** when (a) any blocking finding's hash hits 3 attempts in the attempts file (`_review_at_strike_limit` returns true), (b) the same underlying defect keeps recurring across 3 rounds even if reviewer wording changes and produces a new hash, (c) a finding is genuinely ambiguous (channels contradict each other), or (d) the user explicitly asks to stop.
254
+ - **When stopped**, do NOT merge automatically. Document the unresolved findings (severity, location, hash, attempt count, and semantic recurrence notes when wording changed) and let the user decide whether to continue fixing, create follow-up issues, or override.
255
+ - Identity components used by the hash — `location`, `category`, `description`, `suggestion` — mirror MMR T2-A's forthcoming native `finding_key` (v3.30) so this bookkeeping migrates cleanly.
237
256
 
238
257
  **Note:** Fix cycles are an orchestration concern — the caller (agent or human) handles the fix loop. The CLI provides the review and verdict; the caller decides whether to fix and re-run.
239
258
 
240
259
  **Fix cycle channel rule:** Re-run only channels that originally completed or ran as compensating passes. Never retry a channel marked `not_installed`, `auth_failed`, or `timeout` during fix rounds — its availability does not change within a session.
241
260
 
261
+ ### Step 7a: Wrapper-Side Per-Finding Hash (Stopgap until MMR v3.30)
262
+
263
+ Before each fix round, compute a stable hash per finding and record an attempt
264
+ in `.scaffold/review-attempts/<session-id>.json`. The hash mirrors MMR T2-A's
265
+ forthcoming `finding_key` identity (location + category + description +
266
+ suggestion) so it migrates cleanly when MMR v3.30 ships native `--session` and
267
+ `finding_key`. **Until then**, this wrapper-side bookkeeping is what enforces
268
+ the per-finding 3-strike rule.
269
+
270
+ This section is throwaway — when MMR v3.30 lands, replace this entire block
271
+ with `mmr review --session <id> --max-rounds N` and read `finding_key` from
272
+ the verdict JSON directly.
273
+
274
+ #### Derive the session id
275
+
276
+ <!-- review-wrapper-hash-helpers:start -->
277
+
278
+ ```bash
279
+ # Session id rules (first match wins):
280
+ # 1. PR mode (--pr N) → "pr-<N>"
281
+ # 2. Branch+base → "<branch>@<base>" (sanitized to ^[a-zA-Z0-9_.-]+$)
282
+ # 3. Fallback → "ts-$(date -u +%Y%m%dT%H%M%SZ)"
283
+ _review_session_id() {
284
+ _review_sanitize_session_id() {
285
+ local raw="$1" sanitized
286
+ sanitized=$(printf '%s' "$raw" | tr -c 'a-zA-Z0-9_.-' '_')
287
+ if [ -z "$sanitized" ] || [ "$sanitized" = "." ] || [ "$sanitized" = ".." ]; then
288
+ echo "Error: review session id resolves to an unsafe path segment" >&2
289
+ return 1
290
+ fi
291
+ printf '%s' "$sanitized"
292
+ }
293
+
294
+ if [ -n "${REVIEW_SESSION_ID:-}" ]; then
295
+ _review_sanitize_session_id "$REVIEW_SESSION_ID"
296
+ return
297
+ fi
298
+ if [ -n "${__REVIEW_SESSION_ID:-}" ]; then
299
+ printf '%s' "$__REVIEW_SESSION_ID"
300
+ return
301
+ fi
302
+ if [ -n "${PR_NUMBER:-}" ]; then
303
+ __REVIEW_SESSION_ID=$(_review_sanitize_session_id "pr-$PR_NUMBER") || return 1
304
+ printf '%s' "$__REVIEW_SESSION_ID"
305
+ return
306
+ fi
307
+ local branch base
308
+ branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
309
+ base="${BASE_REF:-main}"
310
+ if [ -n "$branch" ] && [ "$branch" != "HEAD" ]; then
311
+ __REVIEW_SESSION_ID=$(_review_sanitize_session_id "$branch@$base") || return 1
312
+ printf '%s' "$__REVIEW_SESSION_ID"
313
+ return
314
+ fi
315
+ __REVIEW_SESSION_ID=$(_review_sanitize_session_id "ts-$(date -u +%Y%m%dT%H%M%SZ)") || return 1
316
+ printf '%s' "$__REVIEW_SESSION_ID"
317
+ }
318
+
319
+ _review_attempts_file() {
320
+ local id; id=$(_review_session_id)
321
+ mkdir -p .scaffold/review-attempts
322
+ printf '.scaffold/review-attempts/%s.json' "$id"
323
+ }
324
+ ```
325
+
326
+ #### Normalize the four identity components
327
+
328
+ `normalized_location` strips trailing line/column spans (anchored to
329
+ end-of-string so mid-path digits survive):
330
+
331
+ ```bash
332
+ _review_normalize_location() {
333
+ # Input: $1 = raw location (e.g. "src/foo.ts:42-44" or "pkg/Bar.kt (line 10)")
334
+ # Output: lowercased file path with trailing :N, :N-M, :N:M, (line N) stripped
335
+ printf '%s' "$1" \
336
+ | tr '[:upper:]' '[:lower:]' \
337
+ | awk '{ sub(/^[ \t]+/, ""); sub(/[ \t]+$/, ""); print }' \
338
+ | sed -E 's/(:[0-9]+(:[0-9]+)?(-[0-9]+)?|[[:space:]]+\(line[[:space:]]+[0-9]+\))$//'
339
+ }
340
+ ```
341
+
342
+ The `(line N)` form requires whitespace before the parenthetical, so paths
343
+ like `archive/v1(line 10).txt` are preserved rather than treated as review
344
+ line references.
345
+
346
+ `description_normalized` is the tricky one — backtick-quoted code spans must
347
+ stay case-sensitive while prose around them is lowercased and stripped of
348
+ line-number filler. A python3 one-liner is the least painful implementation:
349
+
350
+ ```bash
351
+ _review_normalize_description() {
352
+ # Input: $1 = raw description
353
+ # Output: tokenize on backticks → normalize non-code segments → reassemble
354
+ printf '%s' "$1" | python3 -c '
355
+ import re, sys
356
+ s = sys.stdin.read()
357
+ parts = s.split("`")
358
+ out = []
359
+ for i, seg in enumerate(parts):
360
+ if i % 2 == 1:
361
+ # Odd index = inside backticks = code, preserve exactly
362
+ out.append("`" + seg + "`")
363
+ else:
364
+ seg = seg.lower()
365
+ seg = re.sub(r"\bline\s+\d+\b", "", seg)
366
+ seg = re.sub(r"\bat\s+line\s+\d+\b", "", seg)
367
+ seg = re.sub(r"^\s*(p[0-3]|critical|high|medium|low|trivial)\s*:\s*", "", seg)
368
+ seg = re.sub(r"\s+", " ", seg).strip()
369
+ out.append(seg)
370
+ print(" ".join(p for p in out if p))
371
+ '
372
+ }
373
+ ```
374
+
375
+ `suggestion_normalized` is lowercase + collapse-whitespace only (suggestions
376
+ are short and distinguishing — no further stripping):
377
+
378
+ ```bash
379
+ _review_normalize_suggestion() {
380
+ printf '%s' "$1" | python3 -c 'import re, sys; print(re.sub(r"\s+", " ", sys.stdin.read().lower()).strip())'
381
+ }
382
+ ```
383
+
384
+ #### Compute the stable hash
385
+
386
+ ```bash
387
+ _review_finding_hash() {
388
+ # Input: $1 = single-finding JSON object (with location, category, description, suggestion fields)
389
+ # Output: 40-char sha1 hex of normalized_location + "|" + category + "|" + sha1(description_normalized) + "|" + sha1(suggestion_normalized)
390
+ local f="$1"
391
+ local loc cat desc sugg
392
+ loc=$(printf '%s' "$f" | jq -r '.location // ""')
393
+ cat=$(printf '%s' "$f" | jq -r '.category // ""')
394
+ desc=$(printf '%s' "$f" | jq -r '.description // ""')
395
+ sugg=$(printf '%s' "$f" | jq -r '.suggestion // ""')
396
+
397
+ local nloc ndesc nsugg dhash shash
398
+ nloc=$(_review_normalize_location "$loc")
399
+ ndesc=$(_review_normalize_description "$desc")
400
+ nsugg=$(_review_normalize_suggestion "$sugg")
401
+ dhash=$(printf '%s' "$ndesc" | shasum -a 1 | awk '{print $1}')
402
+ shash=$(printf '%s' "$nsugg" | shasum -a 1 | awk '{print $1}')
403
+
404
+ printf '%s|%s|%s|%s' "$nloc" "$cat" "$dhash" "$shash" \
405
+ | shasum -a 1 | awk '{print $1}'
406
+ }
407
+ ```
408
+
409
+ #### Compute the description shingle (for future cross-round fuzzy matching)
410
+
411
+ This array is persisted alongside the hash so a follow-up MMR v3.30 migration
412
+ can run Jaccard ≥ 0.7 against historical findings without re-deriving
413
+ shingles. The wrapper itself does not currently consume the shingle for any
414
+ gating decision — strict-hash exact match is enough for the 3-strike rule.
415
+
416
+ ```bash
417
+ _review_description_shingle() {
418
+ # Input: $1 = normalized description
419
+ # Output: JSON array of normalized 5-grams (token-based)
420
+ printf '%s' "$1" | python3 -c '
421
+ import json, sys
422
+ tokens = sys.stdin.read().split()
423
+ shingles = sorted({" ".join(tokens[i:i+5]) for i in range(max(0, len(tokens)-4))})
424
+ print(json.dumps(shingles))
425
+ '
426
+ }
427
+ ```
428
+
429
+ #### Record an attempt and check the strike limit
430
+
431
+ ```bash
432
+ _review_record_attempt() {
433
+ # Input: $1 = finding JSON, $2 = current round number (1-based), $3 = optional precomputed finding hash
434
+ # Side effect: increments attempts in the attempts file
435
+ # Output: prints new attempt count on stdout
436
+ local f="$1" round="$2" hash="${3:-}"
437
+ local file loc cat desc sugg nloc ndesc nsugg dhash shash shingle
438
+ file=$(_review_attempts_file)
439
+ loc=$(printf '%s' "$f" | jq -r '.location // ""')
440
+ cat=$(printf '%s' "$f" | jq -r '.category // ""')
441
+ desc=$(printf '%s' "$f" | jq -r '.description // ""')
442
+ sugg=$(printf '%s' "$f" | jq -r '.suggestion // ""')
443
+ nloc=$(_review_normalize_location "$loc")
444
+ ndesc=$(_review_normalize_description "$desc")
445
+ nsugg=$(_review_normalize_suggestion "$sugg")
446
+ if [ -z "$hash" ]; then
447
+ dhash=$(printf '%s' "$ndesc" | shasum -a 1 | awk '{print $1}')
448
+ shash=$(printf '%s' "$nsugg" | shasum -a 1 | awk '{print $1}')
449
+ hash=$(printf '%s|%s|%s|%s' "$nloc" "$cat" "$dhash" "$shash" \
450
+ | shasum -a 1 | awk '{print $1}')
451
+ fi
452
+ shingle=$(_review_description_shingle "$ndesc")
453
+
454
+ [ -f "$file" ] || jq -n --arg id "$(_review_session_id)" --arg created "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
455
+ '{session_id: $id, created_at: $created, findings: {}}' > "$file"
456
+
457
+ jq --arg h "$hash" --arg loc "$nloc" --argjson sh "$shingle" --argjson r "$round" '
458
+ .findings[$h] = (
459
+ .findings[$h] // {attempts: 0, first_seen_round: $r, normalized_location: $loc, description_shingle: $sh}
460
+ | .attempts += (if .last_seen_round == $r then 0 else 1 end)
461
+ | .last_seen_round = $r
462
+ )
463
+ ' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
464
+
465
+ jq -r --arg h "$hash" '.findings[$h].attempts' "$file"
466
+ }
467
+
468
+ _review_at_strike_limit() {
469
+ # Input: $1 = finding JSON, $2 = optional precomputed finding hash
470
+ # Exit: 0 if hash already has >= 3 attempts, 1 otherwise
471
+ local f="$1" file hash
472
+ hash="${2:-}"
473
+ file=$(_review_attempts_file)
474
+ [ -f "$file" ] || return 1
475
+ [ -n "$hash" ] || hash=$(_review_finding_hash "$f")
476
+ local n; n=$(jq -r --arg h "$hash" '.findings[$h].attempts // 0' "$file")
477
+ [ "$n" -ge 3 ]
478
+ }
479
+ ```
480
+
481
+ This bookkeeping assumes sequential execution within a single workspace or
482
+ worktree. Do not run multiple review/fix loops against the same
483
+ `REVIEW_SESSION_ID` concurrently.
484
+
485
+ #### Per-round flow
486
+
487
+ After every `mmr review … --sync --format json` call:
488
+
489
+ 1. Extract reconciled findings: `FINDINGS=$(mmr results "$JOB_ID" | jq -c '.reconciled_findings[]')`
490
+ 2. Iterate safely over the newline-delimited JSON:
491
+ `printf '%s\n' "$FINDINGS" | while IFS= read -r f; do ... done`
492
+ 3. For each blocking finding (severity at or above `fix_threshold`):
493
+ - Compute its hash via `_review_finding_hash`.
494
+ - Call `_review_at_strike_limit "$f" "$hash"` before incrementing — if true,
495
+ this finding already has 3 recorded attempts. Abort the entire task with
496
+ a clear blocked error; do not merely `break` the inner `while` loop or
497
+ continue the outer fix loop. Then follow the **Stop path** in Step 8.
498
+ - Call `_review_record_attempt "$f" "$ROUND" "$hash"` to increment its counter.
499
+ 4. Otherwise apply fixes, re-push, increment `ROUND`, and loop.
500
+
501
+ For very noisy fix loops, you may suggest the user re-run with
502
+ `--fix-threshold P1` to narrow the gate (the project default stays at P2 per
503
+ the design's Decision 4). Do not auto-change the threshold.
504
+
505
+ This mirrors T2-A's identity components — `location`, `category`,
506
+ `description`, `suggestion` — so a future migration to MMR's native
507
+ `finding_key` is a search-and-replace of the helper calls with the field
508
+ read from the verdict JSON.
509
+
510
+ <!-- review-wrapper-hash-helpers:end -->
511
+
512
+ ### Step 7b: File blocking findings as Beads tasks (opt-in)
513
+
514
+ If `.mmr.yaml` has `beads.create_issues_from_blocking_findings: true` AND `.beads/`
515
+ exists in the project, file each blocking finding (severity at-or-above
516
+ `beads.fix_threshold`, default `P2`) as a Beads bug. This is purely additive
517
+ tracking — it does NOT replace Step 7's fix-in-place flow; it only creates a
518
+ durable record of findings that ought to become standalone follow-up work.
519
+
520
+ ```bash
521
+ # First: gate on the opt-in flag in .mmr.yaml. Defaults to disabled.
522
+ # Uses pure bash + grep/sed — no yq dependency (yq isn't always installed).
523
+ beads_enabled=false
524
+ beads_fix_threshold=P2
525
+ beads_default_type=bug
526
+ if [ -f .mmr.yaml ]; then
527
+ # Match a `create_issues_from_blocking_findings: true` line under any indentation.
528
+ # We don't validate it's nested under `beads:` — false positives in unrelated
529
+ # config keys with the same name are unlikely given the explicit name.
530
+ # POSIX character classes ([[:space:]]) for BSD-sed compatibility (macOS default).
531
+ # Patterns tolerate trailing whitespace/comments — uncommenting a template line with
532
+ # a trailing `# comment` should still match.
533
+ if grep -qE '^[[:space:]]*create_issues_from_blocking_findings:[[:space:]]*true([[:space:]]+#.*)?[[:space:]]*$' .mmr.yaml; then
534
+ beads_enabled=true
535
+ fi
536
+ # Optional overrides for threshold / type. Defaults apply if the keys are absent.
537
+ if v=$(grep -E '^[[:space:]]*fix_threshold:[[:space:]]*P[0-4]([[:space:]]+#.*)?[[:space:]]*$' .mmr.yaml | head -1 | sed -E 's/^[^:]*:[[:space:]]*(P[0-4]).*/\1/'); [ -n "$v" ]; then
538
+ beads_fix_threshold=$v
539
+ fi
540
+ if v=$(grep -E '^[[:space:]]*default_type:[[:space:]]*[a-zA-Z]+([[:space:]]+#.*)?[[:space:]]*$' .mmr.yaml | head -1 | sed -E 's/^[^:]*:[[:space:]]*([a-zA-Z]+).*/\1/'); [ -n "$v" ]; then
541
+ beads_default_type=$v
542
+ fi
543
+ fi
544
+
545
+ if [ "$beads_enabled" = "true" ] && [ -d .beads ] && command -v bd >/dev/null 2>&1 \
546
+ && command -v mmr >/dev/null 2>&1 && [ -n "${JOB_ID:-}" ]; then
547
+ threshold_rank=$(case "$beads_fix_threshold" in P0) echo 0;; P1) echo 1;; P2) echo 2;; P3) echo 3;; *) echo 4;; esac)
548
+
549
+ # Capture the reconciled findings from the MMR job we already ran in Step 2.
550
+ # MMR JSON shape: { reconciled_findings: [{ severity, location, description, suggestion, ... }] }
551
+ review_json=$(mmr results "$JOB_ID" --format json)
552
+
553
+ while IFS= read -r finding; do
554
+ title=$(jq -r '.description | .[0:120]' <<<"$finding")
555
+ severity=$(jq -r '.severity' <<<"$finding")
556
+ pnum="${severity#P}"
557
+ description=$(jq -r --arg job "$JOB_ID" '"\(.description)\n\nSuggestion: \(.suggestion // "(none)")\n\nLocation: \(.location // "(unknown)")\n\nFirst seen in MMR job: \($job)"' <<<"$finding")
558
+ # Per-finding identity in the external-ref so a future Beads release with
559
+ # filter-by-external-ref can dedupe on re-runs. Uses the same
560
+ # location+description identity components as the wrapper-side hash stopgap
561
+ # (Step 7a) for consistency. NOTE: bd v1.0.4 has no `bd list --external-ref`
562
+ # flag, so cross-run dedupe is not enforced at the bridge level today —
563
+ # known limitation; re-running on the same MMR job will create duplicates.
564
+ loc=$(jq -r '.location // ""' <<<"$finding")
565
+ desc_for_hash=$(jq -r '.description // ""' <<<"$finding")
566
+ finding_hash=$(printf '%s|%s' "$loc" "$desc_for_hash" | shasum -a 1 | cut -c1-8)
567
+
568
+ # Build args conditionally — only include --deps discovered-from when SOURCE_BD_ID
569
+ # is set AND non-empty. Avoids bd create rejecting a bogus "discovered-from:unknown".
570
+ args=(
571
+ "$title"
572
+ --type "$beads_default_type"
573
+ -p "$pnum"
574
+ --description "$description"
575
+ --external-ref "mmr:$finding_hash"
576
+ )
577
+ if [ -n "${SOURCE_BD_ID:-}" ]; then
578
+ args+=(--deps "discovered-from:$SOURCE_BD_ID")
579
+ fi
580
+ bd create "${args[@]}"
581
+ done < <(jq -c --argjson maxRank "$threshold_rank" '
582
+ .reconciled_findings[]?
583
+ | (.severity | sub("^P";"") | tonumber) as $rank
584
+ | select($rank <= $maxRank)
585
+ ' <<<"$review_json")
586
+ fi
587
+ ```
588
+
589
+ Notes on this script:
590
+ - The opt-in flag `beads.create_issues_from_blocking_findings` in `.mmr.yaml` is read first; the rest of the block is skipped unless it's `true`. No env-var override — config is the single source of truth.
591
+ - Pure-bash YAML parsing (grep + sed) — no `yq` dependency. The match patterns are intentionally simple: a single boolean enable flag, plus optional `fix_threshold` and `default_type` overrides. Anything more complex than that should be parsed with a real YAML library.
592
+ - `--argjson maxRank "$threshold_rank"` passes a number so jq can compare numerically.
593
+ - `(.severity | sub("^P";"") | tonumber)` extracts the integer rank from `P2`-style severities.
594
+ - `while IFS= read -r` streams one JSON object per line without word-splitting on spaces.
595
+ - `.description | .[0:120]` truncates safely under UTF-8 (unlike `head -c 120`).
596
+ - The `--deps discovered-from:$SOURCE_BD_ID` flag is included only when `$SOURCE_BD_ID` is non-empty — avoids a bogus `discovered-from:unknown` dependency or a `bd create` failure for the common case where no source task is in scope.
597
+
598
+ Use `--external-ref "mmr:$finding_hash"` to link the new Beads issue to the *finding identity* (location + description hash, same components as Step 7a's wrapper hash). The ref is stable across MMR job IDs. **Known limitation:** Beads v1.0.4 has no `bd list --external-ref <ref>` filter, so this bridge can't dedupe at write time — re-running the bridge on the same finding will create another Beads issue. When upstream adds an external-ref filter, prepend a `bd list --external-ref "mmr:$finding_hash"` skip-check to this loop. The job ID is preserved in the issue's description (`First seen in MMR job: <id>`) for traceability.
599
+
600
+ `--deps discovered-from:$SOURCE_BD_ID` chains the new issue to whatever current task triggered the review (only when that ID is known).
601
+
242
602
  ### Step 8: Confirm Completion
243
603
 
244
604
  **Success path** — all findings resolved (verdict is `pass` or `degraded-pass`):
@@ -252,7 +612,7 @@ Code review complete. Verdict: [pass/degraded-pass]. Channels: [N] executed, [N]
252
612
  ```
253
613
  Code review halted. Verdict: [blocked/needs-user-decision]. PR #[number] is NOT ready for merge.
254
614
  Unresolved findings:
255
- - [severity] [location] — [description] (rounds attempted: [N])
615
+ - [severity] [location] [hash] — [description] (rounds attempted: [N])
256
616
  - ...
257
617
  Reason for stop: [same finding recurred 3× / channels contradict each other / user requested stop]
258
618
  ```
@@ -272,12 +632,12 @@ In either path, output the message and stop. Do NOT proceed to the next task wit
272
632
 
273
633
  ## Process Rules
274
634
 
275
- 1. **Foreground only** — Always run Codex, Gemini, and Claude CLI commands as foreground Bash calls. Never use `run_in_background`, `&`, or `nohup`.
276
- 2. **All three CLI channels are mandatory** — Codex CLI, Gemini CLI, and Claude CLI. Plus the Superpowers code-reviewer agent as a complementary 4th channel reconciled via `mmr reconcile` (Step 3). Skip a CLI channel only when a tool is genuinely not installed or auth cannot be recovered (in which case MMR emits a compensating pass for missing Codex/Gemini channels; a missing Claude CLI has no compensator). Never skip by choice.
635
+ 1. **Foreground only** — Always run Codex, Gemini, Claude, and Grok CLI commands as foreground Bash calls. Never use `run_in_background`, `&`, or `nohup`.
636
+ 2. **All built-in CLI channels are mandatory** — Codex CLI, Gemini CLI, Claude CLI, and Grok CLI. Plus the Superpowers code-reviewer agent as a complementary agent channel reconciled via `mmr reconcile` (Step 3). Skip a CLI channel only when a tool is genuinely not installed or auth cannot be recovered (in which case MMR emits a compensating pass for missing Codex/Gemini/Grok channels; a missing Claude CLI has no compensator). Never skip by choice.
277
637
  3. **Auth failures are not silent** — always surface to the user with the exact recovery command.
278
638
  4. **Independence** — never share one channel's output with another. Each reviews the diff independently.
279
639
  5. **Fix before proceeding** — findings at or above `fix_threshold` must be resolved before moving to the next task.
280
- 6. **3-round limit (per finding)** — never attempt to fix the *same* blocking finding more than 3 times. Each round that surfaces a *new* fixable finding is healthy iteration — keep going. Stop only when the same finding recurs across 3 attempts, channels contradict each other, or the user asks to stop.
640
+ 6. **3-round limit (per finding hash)** — never attempt to fix the *same* blocking finding (identified by the Step 7a hash of `location` + `category` + `description` + `suggestion`) more than 3 times. The attempts file `.scaffold/review-attempts/<session-id>.json` is the source of truth; `_review_at_strike_limit` checks it. Each round that surfaces genuinely different findings with *new* hashes is healthy iteration — keep going. Stop when a hash hits 3 attempts, when the same underlying defect recurs across 3 rounds even if reviewer wording produces new hashes, when channels contradict each other, or when the user asks to stop. For noisy fix loops, optionally suggest `--fix-threshold P1` (the project default stays at P2).
281
641
  7. **Document everything** — the review summary must show which channels ran and which were skipped, with reasons.
282
642
  8. **CLI-first** — use `mmr review --sync` as the primary entry point. Manual dispatch is a fallback only.
283
643
  9. **Job storage** — the CLI stores job data at `~/.mmr/jobs/{job-id}/results.json`. Review results are available via `mmr results <job-id>`.
@@ -179,14 +179,14 @@ Omit empty sections. Use the commit's first line (without the type prefix) as th
179
179
 
180
180
  If `.beads/` exists:
181
181
 
182
- 1. Run `bd list --status closed` (or parse `.beads/issues.jsonl` for closed issues).
183
- 2. Cross-reference closed tasks with the commit range (match task IDs like `BD-xxx` or `scaffold-xxx` in commit messages).
182
+ 1. Run `bd list --status closed --json` (canonical). If `bd` is unavailable in this environment, skip the autogenerated closed-tasks section — manual changelog entry expected.
183
+ 2. Cross-reference closed tasks with the commit range (match task IDs like `bd-xxxx` or `scaffold-xxx` in commit messages).
184
184
  3. If matches found, append a section:
185
185
 
186
186
  ```markdown
187
187
  ### Completed Tasks
188
- - [BD-xxx] Task title
189
- - [BD-yyy] Task title
188
+ - [bd-<id>] Task title
189
+ - [bd-<id2>] Task title
190
190
  ```
191
191
 
192
192
  If `.beads/` does not exist or no tasks match, silently skip.
@@ -232,7 +232,7 @@ git add <changed-files>
232
232
  git commit -m "chore(version): vX.Y.Z"
233
233
  ```
234
234
 
235
- If Beads is configured (`.beads/` exists) and a task is active, include the task ID: `[BD-xxx] chore(version): vX.Y.Z`.
235
+ If Beads is configured (`.beads/` exists) and a task is active, include the task ID: `[bd-<id>] chore(version): vX.Y.Z`.
236
236
 
237
237
  ---
238
238
 
@@ -6,7 +6,7 @@ interface DashboardArgs {
6
6
  root?: string;
7
7
  force?: boolean;
8
8
  output?: string;
9
- 'no-open'?: boolean;
9
+ open?: boolean;
10
10
  'json-only'?: boolean;
11
11
  service?: string;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAgC1C,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAkCD,QAAA,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAkO3E,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAgC1C,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAiCD,QAAA,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,CAkO3E,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -29,14 +29,14 @@ function writeAndOpenDashboard(html, argv, output) {
29
29
  const outputPath = argv.output ?? path.join(os.tmpdir(), `scaffold-dashboard-${Date.now()}.html`);
30
30
  fs.mkdirSync(path.dirname(outputPath), { recursive: true });
31
31
  atomicWriteFile(outputPath, html);
32
- if (!argv['no-open']) {
33
- let opener = 'xdg-open';
34
- if (process.platform === 'darwin')
35
- opener = 'open';
36
- if (process.platform === 'win32')
37
- opener = 'start';
32
+ if (argv.open) {
38
33
  try {
39
- execFileSync(opener, [outputPath]);
34
+ if (process.platform === 'darwin')
35
+ execFileSync('open', [outputPath]);
36
+ else if (process.platform === 'win32')
37
+ execFileSync('cmd', ['/c', 'start', '', outputPath]);
38
+ else
39
+ execFileSync('xdg-open', [outputPath]);
40
40
  }
41
41
  catch {
42
42
  // Ignore errors when opening browser
@@ -54,10 +54,10 @@ const dashboardCommand = {
54
54
  type: 'string',
55
55
  description: 'Output path for HTML file',
56
56
  })
57
- .option('no-open', {
57
+ .option('open', {
58
58
  type: 'boolean',
59
- description: 'Skip opening in browser',
60
- default: false,
59
+ description: 'Open in browser (use --no-open to suppress)',
60
+ default: true,
61
61
  })
62
62
  .option('json-only', {
63
63
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAwB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAiB1E;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,IAAmB,EACnB,MAA0C;IAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAEjG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAEjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAAE,YAAY,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;iBAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;gBAAE,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAA;;gBACtF,YAAY,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAA;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,gBAAgB,GAA0D;IAC9E,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK;aACT,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2BAA2B;SACzC,CAAC;aACD,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,6CAA6C;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,KAAK;SACf,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC,CAAA;IACN,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,0BAA0B;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oEAAoE;gBACpE,sDAAsD,CACvD,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,4CAA4C;QAC5C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAE9C,sEAAsE;QACtE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAA;QAClD,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACtC,oBAAoB,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QACjF,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAM;QAElC,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,kBAAkB,GAAG,MAAM,EAAE,OAAO,EAAE,QAAuC,CAAA;QACnF,MAAM,kBAAkB,GACtB,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAA;QAEhF,IAAI,kBAAkB,EAAE,CAAC;YACvB,wDAAwD;YACxD,MAAM,WAAW,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAA;YAE3E,wEAAwE;YACxE,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,eAAe,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAA;YAExD,yEAAyE;YACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAwB,CAAA;YACzD,IAAI,mBAA4C,CAAA;YAEhD,8EAA8E;YAC9E,uEAAuE;YACvE,MAAM,iBAAiB,GAAI,MAAgC,EAAE,WAAW,EAAE,MAAM,CAAA;YAEhF,MAAM,cAAc,GAKf,EAAE,CAAA;YAEP,IAAI,wBAA4C,CAAA;YAChD,KAAK,MAAM,GAAG,IAAI,kBAAmB,EAAE,CAAC;gBACtC,sEAAsE;gBACtE,qEAAqE;gBACrE,qEAAqE;gBACrE,mEAAmE;gBACnE,6DAA6D;gBAC7D,kEAAkE;gBAClE,kEAAkE;gBAClE,gDAAgD;gBAChD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;oBACrF,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;oBACpD,IAAI,CAAC,mBAAmB;wBAAE,mBAAmB,GAAG,WAAW,CAAC,WAAW,CAAA;gBACzE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CACT,2CAA2C,GAAG,CAAC,IAAI,MAAM;0BACvD,iDAAiD;0BACjD,0DAA0D;0BAC1D,IAAK,GAAa,CAAC,OAAO,GAAG,CAChC,CAAA;gBACH,CAAC;gBAED,sDAAsD;gBACtD,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;gBAChE,MAAM,eAAe,GAAG,IAAI,YAAY,CACtC,WAAW,EACX,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,MAAM,IAAI,SAAS,EACzB,WAAW,EACX,IAAI,GAAG,EAAU,EACjB,SAAS,CACV,CAAA;gBACD,IAAI,QAAuB,CAAA;gBAC3B,IAAI,CAAC;oBACH,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,CAAA;oBACtC,IAAI,CAAC,wBAAwB,EAAE,CAAC;wBAC9B,wBAAwB,GAAG,QAAQ,CAAC,kBAAkB,CAAA;oBACxD,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,qEAAqE;oBACrE,qEAAqE;oBACrE,8DAA8D;oBAC9D,gEAAgE;oBAChE,MAAM,IAAI,GAAI,GAAqC,EAAE,IAAI,CAAA;oBACzD,IAAI,IAAI,KAAK,eAAe;wBAAE,MAAM,GAAG,CAAA;oBACvC,oEAAoE;oBACpE,wDAAwD;oBACxD,QAAQ,GAAG;wBACT,gBAAgB,EAAE,CAAC;wBACnB,kBAAkB,EAAE,GAAG,CAAC,OAAO;wBAC/B,gBAAgB,EAAE,iBAAiB,IAAI,SAAS;wBAChD,kBAAkB,EAAE,iBAAiB,IAAI,SAAS;wBAClD,WAAW,EAAE,YAAY;wBACzB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACjC,WAAW,EAAE,IAAI;wBACjB,KAAK,EAAE,EAAE;wBACT,aAAa,EAAE,EAAE;wBACjB,aAAa,EAAE,EAAE;qBACD,CAAA;gBACpB,CAAC;gBACD,cAAc,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,KAAK,EAAE,QAAQ;oBACf,WAAW;iBACZ,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,iBAAiB,IAAI,wBAAwB,IAAI,SAAS,CAAA;YAE9E,8EAA8E;YAC9E,MAAM,eAAe,GAAG,oBAAoB,CAAC;gBAC3C,MAAM,EAAE,MAAO;gBACf,WAAW;gBACX,QAAQ,EAAE,kBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtF,iBAAiB;gBACjB,WAAW,EAAE,mBAAmB;aACjC,CAAC,CAAA;YAEF,MAAM,aAAa,GAAG,iCAAiC,CAAC;gBACtD,QAAQ,EAAE,cAAc;gBACxB,WAAW;gBACX,eAAe,EAAG,gCAAgC;aACnD,CAAC,CAAA;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;gBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACf,OAAM;YACR,CAAC;YAED,MAAM,IAAI,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAA;YACpD,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,gDAAgD;QAChD,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAChE,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,WAAW,EACX,GAAG,EAAE,CAAC,EAAE,EACR,GAAG,EAAE,CAAC,MAAM,IAAI,SAAS,EACzB,YAAY;QACZ,kFAAkF;QAClF,gFAAgF;QAChF,gFAAgF;QAChF,6EAA6E;QAC7E,IAAI,GAAG,EAAU,EACjB,SAAS,CACV,CAAA;QACD,IAAI,KAAoB,CAAA;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC;gBACX,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,mBAAmB;aAC9B,CAAC,CAAA;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,oBAAoB;QACpB,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,CAAC,CAAA;QAC9D,MAAM,WAAW,GACd,MAAgC,EAAE,WAAW,EAAE,MAAM;YACtD,KAAK,CAAC,kBAAkB;YACxB,SAAS,CAAA;QAEX,8CAA8C;QAC9C,MAAM,WAAW,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAA;QAE3E,6BAA6B;QAC7B,MAAM,aAAa,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;QAE3F,2CAA2C;QAC3C,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,kCAAkC;QAClC,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QACxC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;CACF,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -162,7 +162,7 @@ const BASE_ARGV = {
162
162
  format: undefined,
163
163
  auto: false,
164
164
  output: undefined,
165
- 'no-open': true,
165
+ open: false,
166
166
  'json-only': false,
167
167
  };
168
168
  describe('dashboard command', () => {