mandrel 2.60.0 → 2.62.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 (662) hide show
  1. package/.agents/README.md +10 -10
  2. package/.agents/agents/story-worker.md +1 -1
  3. package/.agents/docs/agentrc-reference.json +4 -82
  4. package/.agents/docs/configuration.md +20 -87
  5. package/.agents/docs/workflows.md +1 -1
  6. package/.agents/instructions.md +1 -3
  7. package/.agents/rules/gherkin-standards.md +4 -0
  8. package/.agents/schemas/agentrc.schema.json +11 -486
  9. package/.agents/schemas/story-deliver-terminal.schema.json +10 -0
  10. package/.agents/schemas/validation-evidence.schema.json +2 -1
  11. package/.agents/scripts/README.md +14 -14
  12. package/.agents/scripts/acceptance-eval.js +32 -164
  13. package/.agents/scripts/agents-bootstrap-github.js +27 -129
  14. package/.agents/scripts/apply-quality-bootstrap.js +4 -40
  15. package/.agents/scripts/audit-baselines.js +6 -27
  16. package/.agents/scripts/audit-labels-bootstrap.js +5 -29
  17. package/.agents/scripts/audit-to-stories.js +91 -361
  18. package/.agents/scripts/boot-sweep.js +19 -72
  19. package/.agents/scripts/bootstrap.js +74 -395
  20. package/.agents/scripts/ceremony-derive.js +9 -45
  21. package/.agents/scripts/check-arch-cycles.js +14 -64
  22. package/.agents/scripts/check-baselines.js +8 -48
  23. package/.agents/scripts/check-context-budget.js +46 -172
  24. package/.agents/scripts/check-cyclomatic.js +12 -44
  25. package/.agents/scripts/check-dead-exports.js +13 -64
  26. package/.agents/scripts/check-doc-links.js +38 -186
  27. package/.agents/scripts/check-gherkin-corpus.js +24 -127
  28. package/.agents/scripts/check-test-temp-hygiene.js +28 -169
  29. package/.agents/scripts/coverage-capture.js +32 -99
  30. package/.agents/scripts/deliver-light.js +14 -101
  31. package/.agents/scripts/deliver-recover.js +6 -42
  32. package/.agents/scripts/deliver-run.js +36 -133
  33. package/.agents/scripts/diagnose-friction.js +24 -116
  34. package/.agents/scripts/drain-pending-cleanup.js +1 -1
  35. package/.agents/scripts/evidence-gate.js +23 -85
  36. package/.agents/scripts/file-ci-gap.js +10 -50
  37. package/.agents/scripts/generate-config-docs.js +30 -170
  38. package/.agents/scripts/generate-lens-checklists.js +8 -52
  39. package/.agents/scripts/generate-skills-index.js +14 -112
  40. package/.agents/scripts/generate-workflows-doc.js +10 -70
  41. package/.agents/scripts/git-cleanup.js +2 -34
  42. package/.agents/scripts/lib/Graph.js +24 -81
  43. package/.agents/scripts/lib/ITicketingProvider.js +47 -143
  44. package/.agents/scripts/lib/Logger.js +14 -76
  45. package/.agents/scripts/lib/audit-baselines/engine.js +11 -31
  46. package/.agents/scripts/lib/audit-baselines/gate-surface.js +3 -17
  47. package/.agents/scripts/lib/audit-baselines/headroom.js +4 -20
  48. package/.agents/scripts/lib/audit-baselines/hotspots.js +3 -15
  49. package/.agents/scripts/lib/audit-baselines/kinds.js +23 -89
  50. package/.agents/scripts/lib/audit-baselines/outliers.js +6 -23
  51. package/.agents/scripts/lib/audit-baselines/read.js +3 -16
  52. package/.agents/scripts/lib/audit-baselines/staleness.js +7 -26
  53. package/.agents/scripts/lib/audit-baselines/surface-entry.js +7 -28
  54. package/.agents/scripts/lib/audit-baselines/trend.js +7 -20
  55. package/.agents/scripts/lib/audit-baselines/weights.js +9 -37
  56. package/.agents/scripts/lib/audit-suite/audit-rules-reader.js +3 -18
  57. package/.agents/scripts/lib/audit-suite/checklist-threading.js +26 -124
  58. package/.agents/scripts/lib/audit-suite/dispatch-checklist.js +14 -45
  59. package/.agents/scripts/lib/audit-suite/findings.js +12 -52
  60. package/.agents/scripts/lib/audit-suite/frontmatter.js +5 -29
  61. package/.agents/scripts/lib/audit-suite/index.js +1 -15
  62. package/.agents/scripts/lib/audit-suite/lens-checklist.js +10 -45
  63. package/.agents/scripts/lib/audit-suite/lens-diff-floor.js +11 -76
  64. package/.agents/scripts/lib/audit-suite/runner.js +13 -43
  65. package/.agents/scripts/lib/audit-suite/selector.js +49 -349
  66. package/.agents/scripts/lib/audit-suite/substitutions.js +12 -40
  67. package/.agents/scripts/lib/audit-suite/workflow-loader.js +3 -15
  68. package/.agents/scripts/lib/audit-to-stories/audit-label-taxonomy.js +11 -73
  69. package/.agents/scripts/lib/audit-to-stories/audit-lenses.js +8 -37
  70. package/.agents/scripts/lib/audit-to-stories/build-story-body.js +25 -143
  71. package/.agents/scripts/lib/audit-to-stories/dedupe-against-github.js +14 -80
  72. package/.agents/scripts/lib/audit-to-stories/epic-grouping-directive.js +4 -18
  73. package/.agents/scripts/lib/audit-to-stories/finding-adapter.js +7 -40
  74. package/.agents/scripts/lib/audit-to-stories/group-findings.js +9 -39
  75. package/.agents/scripts/lib/audit-to-stories/issue-corpus.js +10 -66
  76. package/.agents/scripts/lib/audit-to-stories/issue-index.js +6 -30
  77. package/.agents/scripts/lib/audit-to-stories/issues-file.js +6 -36
  78. package/.agents/scripts/lib/audit-to-stories/ledger-commit.js +17 -69
  79. package/.agents/scripts/lib/audit-to-stories/ledger-pr.js +17 -85
  80. package/.agents/scripts/lib/audit-to-stories/ledger-record.js +10 -48
  81. package/.agents/scripts/lib/audit-to-stories/parse-audit-md.js +38 -146
  82. package/.agents/scripts/lib/audit-to-stories/seed-from-findings.js +7 -42
  83. package/.agents/scripts/lib/audit-to-stories/wire-dependencies.js +10 -57
  84. package/.agents/scripts/lib/baseline-loader.js +12 -51
  85. package/.agents/scripts/lib/baseline-schema-registry.js +5 -22
  86. package/.agents/scripts/lib/baselines/component-matcher.js +3 -12
  87. package/.agents/scripts/lib/baselines/components.js +10 -61
  88. package/.agents/scripts/lib/baselines/coverage-updater-cli.js +7 -36
  89. package/.agents/scripts/lib/baselines/crap-preview-incremental.js +5 -21
  90. package/.agents/scripts/lib/baselines/crap-preview-scan.js +19 -45
  91. package/.agents/scripts/lib/baselines/crap-updater-cli.js +16 -65
  92. package/.agents/scripts/lib/baselines/diff-scope-cli.js +5 -33
  93. package/.agents/scripts/lib/baselines/duplication-scanner.js +11 -60
  94. package/.agents/scripts/lib/baselines/env-overrides.js +12 -67
  95. package/.agents/scripts/lib/baselines/envelope.js +13 -129
  96. package/.agents/scripts/lib/baselines/exit-codes.js +6 -49
  97. package/.agents/scripts/lib/baselines/git-base.js +23 -142
  98. package/.agents/scripts/lib/baselines/kernel.js +11 -111
  99. package/.agents/scripts/lib/baselines/kinds/_crap-new-method-gate.js +9 -47
  100. package/.agents/scripts/lib/baselines/kinds/_crap-read.js +8 -51
  101. package/.agents/scripts/lib/baselines/kinds/_shared-metric.js +7 -62
  102. package/.agents/scripts/lib/baselines/kinds/bundle-size.js +8 -29
  103. package/.agents/scripts/lib/baselines/kinds/coverage.js +3 -15
  104. package/.agents/scripts/lib/baselines/kinds/crap.js +94 -415
  105. package/.agents/scripts/lib/baselines/kinds/duplication.js +4 -30
  106. package/.agents/scripts/lib/baselines/kinds/kind-factory.js +7 -53
  107. package/.agents/scripts/lib/baselines/kinds/maintainability.js +15 -80
  108. package/.agents/scripts/lib/baselines/kinds/mutation.js +12 -72
  109. package/.agents/scripts/lib/baselines/maintainability-baseline-io.js +4 -11
  110. package/.agents/scripts/lib/baselines/merge-envelopes.js +30 -146
  111. package/.agents/scripts/lib/baselines/path-canon.js +19 -128
  112. package/.agents/scripts/lib/baselines/preview-gates.js +8 -37
  113. package/.agents/scripts/lib/baselines/reader.js +14 -107
  114. package/.agents/scripts/lib/baselines/refresh-service.js +35 -252
  115. package/.agents/scripts/lib/baselines/scope.js +11 -135
  116. package/.agents/scripts/lib/baselines/writer.js +16 -149
  117. package/.agents/scripts/lib/bdd-runner-detect.js +18 -113
  118. package/.agents/scripts/lib/bdd-scenario-budget.js +9 -36
  119. package/.agents/scripts/lib/bdd-scenario-scanner.js +11 -73
  120. package/.agents/scripts/lib/bdd-step-index.js +26 -100
  121. package/.agents/scripts/lib/bootstrap/baseline-merge-driver.js +23 -103
  122. package/.agents/scripts/lib/bootstrap/branch-protection.js +2 -5
  123. package/.agents/scripts/lib/bootstrap/commit-push.js +12 -50
  124. package/.agents/scripts/lib/bootstrap/gh-preflight.js +14 -101
  125. package/.agents/scripts/lib/bootstrap/hitl-confirm.js +5 -30
  126. package/.agents/scripts/lib/bootstrap/install-ledger.js +17 -73
  127. package/.agents/scripts/lib/bootstrap/issue-forms-template.js +17 -121
  128. package/.agents/scripts/lib/bootstrap/manifest.js +15 -86
  129. package/.agents/scripts/lib/bootstrap/merge-methods.js +4 -33
  130. package/.agents/scripts/lib/bootstrap/preflight.js +12 -61
  131. package/.agents/scripts/lib/bootstrap/project-bootstrap.js +34 -235
  132. package/.agents/scripts/lib/bootstrap/prompt.js +21 -129
  133. package/.agents/scripts/lib/bootstrap/quality-bootstrap.js +27 -141
  134. package/.agents/scripts/lib/bootstrap/summary.js +1 -8
  135. package/.agents/scripts/lib/bootstrap/workflow-audit.js +11 -84
  136. package/.agents/scripts/lib/branch-name-guard.js +4 -23
  137. package/.agents/scripts/lib/changed-files.js +31 -143
  138. package/.agents/scripts/lib/checks/core-bare-clean.js +4 -24
  139. package/.agents/scripts/lib/checks/index.js +18 -101
  140. package/.agents/scripts/lib/checks/loop-health.js +11 -53
  141. package/.agents/scripts/lib/checks/state.js +16 -91
  142. package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +10 -61
  143. package/.agents/scripts/lib/checks/subagent-agent-tool-required.js +14 -83
  144. package/.agents/scripts/lib/child-exec.js +39 -108
  145. package/.agents/scripts/lib/cli/standard-args.js +9 -116
  146. package/.agents/scripts/lib/cli-args.js +31 -146
  147. package/.agents/scripts/lib/cli-usage.js +5 -27
  148. package/.agents/scripts/lib/cli-utils.js +2 -12
  149. package/.agents/scripts/lib/close-validation/commands.js +13 -76
  150. package/.agents/scripts/lib/close-validation/gates.js +92 -331
  151. package/.agents/scripts/lib/close-validation/process.js +121 -151
  152. package/.agents/scripts/lib/close-validation/projections/advisories.js +5 -31
  153. package/.agents/scripts/lib/close-validation/projections/crap.js +19 -67
  154. package/.agents/scripts/lib/close-validation/projections/head-sha.js +1 -17
  155. package/.agents/scripts/lib/close-validation/projections/inputs.js +4 -34
  156. package/.agents/scripts/lib/close-validation/projections/maintainability.js +11 -58
  157. package/.agents/scripts/lib/close-validation/runner.js +53 -110
  158. package/.agents/scripts/lib/command-header.js +6 -28
  159. package/.agents/scripts/lib/config/acceptance-eval.js +4 -30
  160. package/.agents/scripts/lib/config/baselines.js +3 -14
  161. package/.agents/scripts/lib/config/ci.js +8 -38
  162. package/.agents/scripts/lib/config/commands.js +1 -15
  163. package/.agents/scripts/lib/config/defaults.js +4 -33
  164. package/.agents/scripts/lib/config/delivery-routing.js +6 -35
  165. package/.agents/scripts/lib/config/explain.js +9 -80
  166. package/.agents/scripts/lib/config/gates/coverage.schema.js +0 -12
  167. package/.agents/scripts/lib/config/gates/crap-incremental-coverage.schema.js +2 -30
  168. package/.agents/scripts/lib/config/gates/crap.schema.js +1 -34
  169. package/.agents/scripts/lib/config/gates/duplication.schema.js +1 -8
  170. package/.agents/scripts/lib/config/gates/index.js +2 -17
  171. package/.agents/scripts/lib/config/gates/maintainability.schema.js +1 -20
  172. package/.agents/scripts/lib/config/gates/mutation.schema.js +1 -7
  173. package/.agents/scripts/lib/config/gates/shared.js +4 -64
  174. package/.agents/scripts/lib/config/github.js +4 -22
  175. package/.agents/scripts/lib/config/limits.js +4 -57
  176. package/.agents/scripts/lib/config/paths.js +2 -21
  177. package/.agents/scripts/lib/config/qa.js +4 -38
  178. package/.agents/scripts/lib/config/quality.js +76 -432
  179. package/.agents/scripts/lib/config/runners.js +12 -56
  180. package/.agents/scripts/lib/config/runtime.js +13 -57
  181. package/.agents/scripts/lib/config/shared.js +2 -16
  182. package/.agents/scripts/lib/config/sync-agentrc.js +9 -50
  183. package/.agents/scripts/lib/config/temp-paths.js +40 -280
  184. package/.agents/scripts/lib/config/validate-orchestration.js +5 -17
  185. package/.agents/scripts/lib/config/worktree-isolation.js +9 -28
  186. package/.agents/scripts/lib/config-resolver.js +10 -52
  187. package/.agents/scripts/lib/config-schema-shared.js +1 -4
  188. package/.agents/scripts/lib/config-settings-schema-delivery.js +12 -294
  189. package/.agents/scripts/lib/config-settings-schema-quality.js +7 -219
  190. package/.agents/scripts/lib/config-settings-schema.js +37 -274
  191. package/.agents/scripts/lib/coverage-baseline.js +20 -110
  192. package/.agents/scripts/lib/coverage-capture-fullscope.js +12 -37
  193. package/.agents/scripts/lib/coverage-capture-incremental.js +12 -43
  194. package/.agents/scripts/lib/coverage-capture-usage.js +4 -24
  195. package/.agents/scripts/lib/coverage-capture.js +99 -224
  196. package/.agents/scripts/lib/coverage-utils.js +14 -79
  197. package/.agents/scripts/lib/cpu-pool.js +17 -123
  198. package/.agents/scripts/lib/crap-baseline-join.js +16 -88
  199. package/.agents/scripts/lib/crap-coordinates.js +6 -25
  200. package/.agents/scripts/lib/crap-engine.js +40 -153
  201. package/.agents/scripts/lib/crap-method-identity.js +16 -78
  202. package/.agents/scripts/lib/crap-utils.js +31 -155
  203. package/.agents/scripts/lib/cyclomatic-ceiling.js +14 -87
  204. package/.agents/scripts/lib/cyclomatic-scope.js +10 -50
  205. package/.agents/scripts/lib/dead-exports-knip.js +18 -56
  206. package/.agents/scripts/lib/dead-exports-mode.js +5 -24
  207. package/.agents/scripts/lib/degraded-mode.js +3 -26
  208. package/.agents/scripts/lib/dependency-parser.js +8 -40
  209. package/.agents/scripts/lib/dependency-version.js +13 -35
  210. package/.agents/scripts/lib/detect-package-manager.js +6 -36
  211. package/.agents/scripts/lib/doc-tiers.js +22 -126
  212. package/.agents/scripts/lib/duplicate-search.js +8 -72
  213. package/.agents/scripts/lib/env-loader.js +5 -27
  214. package/.agents/scripts/lib/error-redactor.js +6 -31
  215. package/.agents/scripts/lib/errors/index.js +2 -22
  216. package/.agents/scripts/lib/escomplex-ast-compat.js +22 -163
  217. package/.agents/scripts/lib/escomplex-kernel.js +21 -123
  218. package/.agents/scripts/lib/feedback-loop/graduator-core.js +93 -419
  219. package/.agents/scripts/lib/feedback-loop/prior-feedback-fetcher.js +20 -98
  220. package/.agents/scripts/lib/feedback-loop/retro-proposals-graduator.js +27 -151
  221. package/.agents/scripts/lib/findings/audit-ledger.js +23 -97
  222. package/.agents/scripts/lib/findings/classify-finding.js +14 -69
  223. package/.agents/scripts/lib/findings/promote-finding.js +14 -112
  224. package/.agents/scripts/lib/findings/provenance-field.js +11 -52
  225. package/.agents/scripts/lib/findings/route-finding.js +37 -255
  226. package/.agents/scripts/lib/findings/semantic-issue-search.js +14 -59
  227. package/.agents/scripts/lib/findings/severity.js +18 -104
  228. package/.agents/scripts/lib/format-generated-json.js +12 -44
  229. package/.agents/scripts/lib/full-suite-lock.js +160 -429
  230. package/.agents/scripts/lib/full-suite-queue.js +213 -0
  231. package/.agents/scripts/lib/gates/baseline-store.js +5 -9
  232. package/.agents/scripts/lib/gates/friction.js +1 -3
  233. package/.agents/scripts/lib/generated/agentrc-validator.js +2 -2
  234. package/.agents/scripts/lib/gh-exec.js +31 -259
  235. package/.agents/scripts/lib/git/cached-fetch.js +9 -52
  236. package/.agents/scripts/lib/git/sync-from-base.js +15 -107
  237. package/.agents/scripts/lib/git-branch-cleanup.js +14 -61
  238. package/.agents/scripts/lib/git-branch-lifecycle.js +16 -87
  239. package/.agents/scripts/lib/git-utils.js +37 -161
  240. package/.agents/scripts/lib/github/framework-repo.js +8 -71
  241. package/.agents/scripts/lib/github-url.js +2 -17
  242. package/.agents/scripts/lib/import-graph.js +11 -38
  243. package/.agents/scripts/lib/install-cmd-parser.js +4 -13
  244. package/.agents/scripts/lib/json-utils.js +3 -18
  245. package/.agents/scripts/lib/label-constants.js +16 -111
  246. package/.agents/scripts/lib/label-taxonomy.js +4 -30
  247. package/.agents/scripts/lib/maintainability-engine.js +12 -80
  248. package/.agents/scripts/lib/maintainability-unscorable.js +5 -25
  249. package/.agents/scripts/lib/maintainability-utils.js +16 -92
  250. package/.agents/scripts/lib/mandrel-catalog.js +12 -70
  251. package/.agents/scripts/lib/notifications/notifier.js +13 -38
  252. package/.agents/scripts/lib/npm-scripts.js +4 -23
  253. package/.agents/scripts/lib/observability/metrics-ledger.js +16 -76
  254. package/.agents/scripts/lib/observability/runtime-friction.js +44 -286
  255. package/.agents/scripts/lib/observability/signal-validator.js +5 -37
  256. package/.agents/scripts/lib/observability/signals-writer.js +11 -121
  257. package/.agents/scripts/lib/observability/source-classifier.js +21 -203
  258. package/.agents/scripts/lib/observability/terse-result.js +14 -47
  259. package/.agents/scripts/lib/onboard/init-tail.js +13 -74
  260. package/.agents/scripts/lib/onboard/scaffold-docs.js +11 -34
  261. package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +25 -139
  262. package/.agents/scripts/lib/orchestration/auto-merge-cwd.js +11 -66
  263. package/.agents/scripts/lib/orchestration/behind-recovery.js +10 -55
  264. package/.agents/scripts/lib/orchestration/ceremony-routing.js +5 -75
  265. package/.agents/scripts/lib/orchestration/change-set.js +7 -36
  266. package/.agents/scripts/lib/orchestration/check-baselines/phases/compare.js +9 -46
  267. package/.agents/scripts/lib/orchestration/check-baselines/phases/evaluate.js +11 -44
  268. package/.agents/scripts/lib/orchestration/check-baselines/phases/floors.js +5 -24
  269. package/.agents/scripts/lib/orchestration/check-baselines/phases/friction.js +3 -12
  270. package/.agents/scripts/lib/orchestration/check-baselines/phases/parse-args.js +5 -38
  271. package/.agents/scripts/lib/orchestration/check-baselines/phases/pipeline.js +3 -8
  272. package/.agents/scripts/lib/orchestration/check-baselines/phases/refresh-ack.js +28 -136
  273. package/.agents/scripts/lib/orchestration/check-baselines/phases/report.js +3 -13
  274. package/.agents/scripts/lib/orchestration/check-state.js +92 -0
  275. package/.agents/scripts/lib/orchestration/ci-gap-intake.js +37 -144
  276. package/.agents/scripts/lib/orchestration/ci-rerun-guard.js +42 -189
  277. package/.agents/scripts/lib/orchestration/code-review.js +24 -128
  278. package/.agents/scripts/lib/orchestration/column-sync.js +23 -111
  279. package/.agents/scripts/lib/orchestration/complexity-gate.js +42 -214
  280. package/.agents/scripts/lib/orchestration/deliver-recover.js +36 -168
  281. package/.agents/scripts/lib/orchestration/dependency-analyzer.js +4 -35
  282. package/.agents/scripts/lib/orchestration/dependency-candidates.js +9 -41
  283. package/.agents/scripts/lib/orchestration/diff-magnitude.js +25 -115
  284. package/.agents/scripts/lib/orchestration/doc-reader.js +2 -6
  285. package/.agents/scripts/lib/orchestration/docs-digest.js +13 -51
  286. package/.agents/scripts/lib/orchestration/epic-candidates.js +13 -53
  287. package/.agents/scripts/lib/orchestration/epic-checklist.js +9 -33
  288. package/.agents/scripts/lib/orchestration/epic-container.js +41 -167
  289. package/.agents/scripts/lib/orchestration/epic-expansion.js +10 -40
  290. package/.agents/scripts/lib/orchestration/epic-rollup.js +55 -207
  291. package/.agents/scripts/lib/orchestration/file-assumption-enum.js +2 -22
  292. package/.agents/scripts/lib/orchestration/file-assumptions.js +45 -253
  293. package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches-detect.js +9 -46
  294. package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches-reap.js +7 -57
  295. package/.agents/scripts/lib/orchestration/git-cleanup/phases/branches.js +21 -126
  296. package/.agents/scripts/lib/orchestration/git-cleanup/phases/cli.js +2 -6
  297. package/.agents/scripts/lib/orchestration/git-cleanup/phases/fast-forward.js +1 -4
  298. package/.agents/scripts/lib/orchestration/git-cleanup/phases/filters.js +1 -5
  299. package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes-ff.js +9 -34
  300. package/.agents/scripts/lib/orchestration/git-cleanup/phases/git-probes.js +41 -190
  301. package/.agents/scripts/lib/orchestration/git-cleanup/phases/merged-tip.js +9 -45
  302. package/.agents/scripts/lib/orchestration/git-cleanup/phases/parse-args.js +1 -4
  303. package/.agents/scripts/lib/orchestration/git-cleanup/phases/phase-drivers.js +19 -85
  304. package/.agents/scripts/lib/orchestration/git-cleanup/phases/prompts.js +3 -17
  305. package/.agents/scripts/lib/orchestration/git-cleanup/phases/prune.js +1 -5
  306. package/.agents/scripts/lib/orchestration/git-cleanup/phases/render.js +16 -100
  307. package/.agents/scripts/lib/orchestration/git-cleanup/phases/stashes.js +1 -4
  308. package/.agents/scripts/lib/orchestration/lease-guard-shared.js +16 -67
  309. package/.agents/scripts/lib/orchestration/lifecycle/emit-ledger-event.js +9 -33
  310. package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-flip-failed.js +8 -29
  311. package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-unlanded.js +15 -68
  312. package/.agents/scripts/lib/orchestration/light-backstop.js +11 -49
  313. package/.agents/scripts/lib/orchestration/light-escalation.js +21 -89
  314. package/.agents/scripts/lib/orchestration/light-suitability.js +26 -231
  315. package/.agents/scripts/lib/orchestration/merge-block-class.js +39 -216
  316. package/.agents/scripts/lib/orchestration/merge-poll.js +104 -377
  317. package/.agents/scripts/lib/orchestration/merge-queue.js +158 -0
  318. package/.agents/scripts/lib/orchestration/pinned-identifier-lint.js +17 -57
  319. package/.agents/scripts/lib/orchestration/plan-context.js +52 -303
  320. package/.agents/scripts/lib/orchestration/plan-critic-conditions.js +22 -79
  321. package/.agents/scripts/lib/orchestration/plan-critics-evaluate.js +5 -31
  322. package/.agents/scripts/lib/orchestration/plan-metrics.js +29 -108
  323. package/.agents/scripts/lib/orchestration/plan-navigation.js +8 -27
  324. package/.agents/scripts/lib/orchestration/plan-persist/acceptance-handle-repair.js +12 -49
  325. package/.agents/scripts/lib/orchestration/plan-persist/audit-provenance.js +18 -73
  326. package/.agents/scripts/lib/orchestration/plan-persist/changes-repair.js +14 -78
  327. package/.agents/scripts/lib/orchestration/plan-persist/cross-plan-links.js +6 -30
  328. package/.agents/scripts/lib/orchestration/plan-persist/epic-adoption.js +14 -65
  329. package/.agents/scripts/lib/orchestration/plan-persist/epic-ops.js +21 -76
  330. package/.agents/scripts/lib/orchestration/plan-persist/external-deps.js +6 -43
  331. package/.agents/scripts/lib/orchestration/plan-persist/persist-helpers.js +14 -68
  332. package/.agents/scripts/lib/orchestration/plan-persist/plan-context-source.js +9 -41
  333. package/.agents/scripts/lib/orchestration/plan-persist/run-plan-persist.js +49 -248
  334. package/.agents/scripts/lib/orchestration/plan-persist/soft-findings.js +2 -12
  335. package/.agents/scripts/lib/orchestration/plan-persist/story-ops.js +85 -368
  336. package/.agents/scripts/lib/orchestration/plan-persist/summary.js +8 -38
  337. package/.agents/scripts/lib/orchestration/plan-persist/supersede-ops.js +30 -190
  338. package/.agents/scripts/lib/orchestration/plan-persist/wave-collision-gate.js +9 -49
  339. package/.agents/scripts/lib/orchestration/plan-persist/wave-serialisation.js +7 -28
  340. package/.agents/scripts/lib/orchestration/plan-reachability.js +13 -42
  341. package/.agents/scripts/lib/orchestration/plan-run-labels/reap.js +16 -91
  342. package/.agents/scripts/lib/orchestration/plan-runner/worktree-sweep.js +16 -54
  343. package/.agents/scripts/lib/orchestration/plan-text-hygiene.js +10 -52
  344. package/.agents/scripts/lib/orchestration/planning/authoring-context.js +14 -109
  345. package/.agents/scripts/lib/orchestration/planning/memory-pool-advisory.js +11 -83
  346. package/.agents/scripts/lib/orchestration/pr-watch.js +48 -306
  347. package/.agents/scripts/lib/orchestration/project-meta-cache.js +15 -80
  348. package/.agents/scripts/lib/orchestration/project-meta-resolver.js +10 -51
  349. package/.agents/scripts/lib/orchestration/reassert-status-column.js +12 -76
  350. package/.agents/scripts/lib/orchestration/remote-verifier.js +12 -36
  351. package/.agents/scripts/lib/orchestration/resolve-stories.js +33 -164
  352. package/.agents/scripts/lib/orchestration/retro-proposals.js +66 -361
  353. package/.agents/scripts/lib/orchestration/review-base-ref.js +9 -43
  354. package/.agents/scripts/lib/orchestration/review-depth.js +12 -94
  355. package/.agents/scripts/lib/orchestration/review-providers/codex.js +10 -111
  356. package/.agents/scripts/lib/orchestration/review-providers/degraded-gates.js +13 -71
  357. package/.agents/scripts/lib/orchestration/review-providers/findings-renderer.js +7 -51
  358. package/.agents/scripts/lib/orchestration/review-providers/mi-exemptions.js +8 -53
  359. package/.agents/scripts/lib/orchestration/review-providers/native.js +30 -214
  360. package/.agents/scripts/lib/orchestration/review-providers/parse-findings.js +7 -52
  361. package/.agents/scripts/lib/orchestration/review-providers/review-depth.js +4 -33
  362. package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +11 -71
  363. package/.agents/scripts/lib/orchestration/review-providers/scoped-lint.js +19 -131
  364. package/.agents/scripts/lib/orchestration/review-providers/security-review.js +6 -89
  365. package/.agents/scripts/lib/orchestration/review-providers/types.js +26 -56
  366. package/.agents/scripts/lib/orchestration/review-providers/ultrareview.js +3 -46
  367. package/.agents/scripts/lib/orchestration/run-epilogue.js +40 -199
  368. package/.agents/scripts/lib/orchestration/run-scoped-config.js +13 -81
  369. package/.agents/scripts/lib/orchestration/single-story-close/close-note.js +7 -34
  370. package/.agents/scripts/lib/orchestration/single-story-close/failed-terminal.js +16 -89
  371. package/.agents/scripts/lib/orchestration/single-story-close/gate-log.js +18 -109
  372. package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +190 -280
  373. package/.agents/scripts/lib/orchestration/single-story-close/phases/base-sync.js +18 -80
  374. package/.agents/scripts/lib/orchestration/single-story-close/phases/close-validation.js +103 -97
  375. package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +8 -64
  376. package/.agents/scripts/lib/orchestration/single-story-close/phases/confirm-merge.js +183 -485
  377. package/.agents/scripts/lib/orchestration/single-story-close/phases/conventional-subject.js +30 -134
  378. package/.agents/scripts/lib/orchestration/single-story-close/phases/graphql-preflight.js +9 -50
  379. package/.agents/scripts/lib/orchestration/single-story-close/phases/lock-wait-pending.js +49 -0
  380. package/.agents/scripts/lib/orchestration/single-story-close/phases/normalize-pr-title.js +13 -86
  381. package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +20 -95
  382. package/.agents/scripts/lib/orchestration/single-story-close/phases/post-land.js +46 -203
  383. package/.agents/scripts/lib/orchestration/single-story-close/phases/pre-gate-steps.js +8 -50
  384. package/.agents/scripts/lib/orchestration/single-story-close/phases/pull-request.js +12 -83
  385. package/.agents/scripts/lib/orchestration/single-story-close/phases/push.js +6 -39
  386. package/.agents/scripts/lib/orchestration/single-story-close/phases/review-block.js +1 -6
  387. package/.agents/scripts/lib/orchestration/single-story-close/phases/review-outcome.js +4 -28
  388. package/.agents/scripts/lib/orchestration/single-story-close/phases/review-override.js +6 -51
  389. package/.agents/scripts/lib/orchestration/single-story-close/phases/worktree-reap.js +6 -34
  390. package/.agents/scripts/lib/orchestration/single-story-close/phases/wrong-tree-guard.js +23 -121
  391. package/.agents/scripts/lib/orchestration/single-story-close/runner.js +110 -290
  392. package/.agents/scripts/lib/orchestration/single-story-lease-guard.js +15 -69
  393. package/.agents/scripts/lib/orchestration/story-body-gate.js +4 -23
  394. package/.agents/scripts/lib/orchestration/story-close/baseline-upward-writeback.js +50 -179
  395. package/.agents/scripts/lib/orchestration/story-close/context-budget-writeback.js +11 -41
  396. package/.agents/scripts/lib/orchestration/story-close/format-autofix.js +23 -311
  397. package/.agents/scripts/lib/orchestration/story-close/phases/local-lens-review.js +22 -147
  398. package/.agents/scripts/lib/orchestration/story-close/phases/review-core.js +16 -67
  399. package/.agents/scripts/lib/orchestration/story-deliver-terminal-schema.js +12 -68
  400. package/.agents/scripts/lib/orchestration/story-deliver-terminal.js +42 -201
  401. package/.agents/scripts/lib/orchestration/story-follow-ups.js +43 -245
  402. package/.agents/scripts/lib/orchestration/story-init-envelope.js +4 -23
  403. package/.agents/scripts/lib/orchestration/story-init-remote.js +2 -6
  404. package/.agents/scripts/lib/orchestration/story-reachability.js +3 -23
  405. package/.agents/scripts/lib/orchestration/task-body-validator.js +12 -126
  406. package/.agents/scripts/lib/orchestration/ticket-lease.js +28 -131
  407. package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +15 -149
  408. package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +5 -33
  409. package/.agents/scripts/lib/orchestration/ticket-validator.js +39 -181
  410. package/.agents/scripts/lib/orchestration/ticketing/bulk.js +51 -244
  411. package/.agents/scripts/lib/orchestration/ticketing/reads.js +39 -250
  412. package/.agents/scripts/lib/orchestration/ticketing/state.js +14 -68
  413. package/.agents/scripts/lib/orchestration/ticketing/transition.js +46 -263
  414. package/.agents/scripts/lib/orchestration/ticketing.js +2 -26
  415. package/.agents/scripts/lib/orchestration/verify-credit.js +18 -79
  416. package/.agents/scripts/lib/orchestration/worktree-dirty.js +5 -30
  417. package/.agents/scripts/lib/path-security.js +3 -6
  418. package/.agents/scripts/lib/plan-phase-cleanup.js +9 -49
  419. package/.agents/scripts/lib/preflight-runner.js +13 -69
  420. package/.agents/scripts/lib/process-group.js +143 -0
  421. package/.agents/scripts/lib/project-root.js +2 -8
  422. package/.agents/scripts/lib/provider-factory.js +2 -25
  423. package/.agents/scripts/lib/qa/console-allowlist.js +10 -59
  424. package/.agents/scripts/lib/qa/qa-session.js +15 -69
  425. package/.agents/scripts/lib/qa/redact-evidence.js +18 -129
  426. package/.agents/scripts/lib/qa/resolve-qa-contract.js +26 -135
  427. package/.agents/scripts/lib/qa/resolve-selection.js +16 -84
  428. package/.agents/scripts/lib/reserved-test-ids.js +9 -47
  429. package/.agents/scripts/lib/runtime-deps/dep-resolution.js +13 -53
  430. package/.agents/scripts/lib/runtime-deps/ensure-installed.js +10 -44
  431. package/.agents/scripts/lib/runtime-deps/manifest.js +10 -30
  432. package/.agents/scripts/lib/runtime-deps/parser-major.js +15 -51
  433. package/.agents/scripts/lib/runtime-deps/preflight.js +4 -22
  434. package/.agents/scripts/lib/runtime-deps/scan-imports.js +11 -55
  435. package/.agents/scripts/lib/signals/detectors/common.js +12 -38
  436. package/.agents/scripts/lib/signals/index.js +2 -19
  437. package/.agents/scripts/lib/signals/schema.js +14 -109
  438. package/.agents/scripts/lib/signals/write.js +2 -11
  439. package/.agents/scripts/lib/single-story/confirm-merge.js +31 -72
  440. package/.agents/scripts/lib/single-story/story-merged-notify.js +8 -49
  441. package/.agents/scripts/lib/single-story-sweep/protection-ctx.js +4 -26
  442. package/.agents/scripts/lib/single-story-sweep/protection.js +13 -100
  443. package/.agents/scripts/lib/single-story-sweep/sweep-lock.js +60 -258
  444. package/.agents/scripts/lib/single-story-sweep.js +14 -97
  445. package/.agents/scripts/lib/skills/parse-skill.js +13 -59
  446. package/.agents/scripts/lib/skills/skills-index.js +8 -29
  447. package/.agents/scripts/lib/skills/walk-skill-files.js +17 -78
  448. package/.agents/scripts/lib/source-extensions.js +11 -42
  449. package/.agents/scripts/lib/source-text/strip-js-comments.js +8 -41
  450. package/.agents/scripts/lib/stdio-flush.js +9 -36
  451. package/.agents/scripts/lib/story-adjacency.js +8 -40
  452. package/.agents/scripts/lib/story-body/body-format-lints.js +22 -83
  453. package/.agents/scripts/lib/story-body/footer-block.js +11 -44
  454. package/.agents/scripts/lib/story-body/story-body.js +83 -358
  455. package/.agents/scripts/lib/temp-retention.js +42 -143
  456. package/.agents/scripts/lib/templates/decomposer-prompts.js +11 -65
  457. package/.agents/scripts/lib/test-env.js +12 -65
  458. package/.agents/scripts/lib/test-run-credit.js +10 -65
  459. package/.agents/scripts/lib/test-runner-contract.js +19 -74
  460. package/.agents/scripts/lib/test-temp.js +38 -184
  461. package/.agents/scripts/lib/test-tiers.js +12 -96
  462. package/.agents/scripts/lib/ticket-body-sections.js +21 -96
  463. package/.agents/scripts/lib/transpile.js +15 -74
  464. package/.agents/scripts/lib/util/concurrent-map.js +6 -25
  465. package/.agents/scripts/lib/util/parse-id-list.js +8 -34
  466. package/.agents/scripts/lib/util/poll-loop.js +8 -28
  467. package/.agents/scripts/lib/util/with-timeout.js +2 -11
  468. package/.agents/scripts/lib/validation-evidence.js +21 -96
  469. package/.agents/scripts/lib/wave-runner/footprint.js +17 -70
  470. package/.agents/scripts/lib/wave-runner/live-probe.js +53 -221
  471. package/.agents/scripts/lib/wave-runner/ready-set.js +72 -301
  472. package/.agents/scripts/lib/workers/crap-worker.js +11 -64
  473. package/.agents/scripts/lib/workers/maintainability-report-worker.js +8 -45
  474. package/.agents/scripts/lib/workers/maintainability-worker.js +5 -21
  475. package/.agents/scripts/lib/workers/serve-worker-messages.js +2 -18
  476. package/.agents/scripts/lib/workflow-closure.js +22 -105
  477. package/.agents/scripts/lib/workspace-provisioner.js +16 -54
  478. package/.agents/scripts/lib/worktree/git-hooks.js +15 -60
  479. package/.agents/scripts/lib/worktree/lifecycle/force-drain.js +20 -60
  480. package/.agents/scripts/lib/worktree/lifecycle/merge-reachability.js +10 -62
  481. package/.agents/scripts/lib/worktree/lifecycle/pending-cleanup.js +22 -86
  482. package/.agents/scripts/lib/worktree/lifecycle/reap.js +24 -126
  483. package/.agents/scripts/lib/worktree/lifecycle-manager.js +2 -20
  484. package/.agents/scripts/lib/worktree/node-modules-strategy.js +46 -180
  485. package/.agents/scripts/lib/worktree-manager.js +15 -40
  486. package/.agents/scripts/lint-issue-body.js +12 -68
  487. package/.agents/scripts/mandrel-update-preflight.js +10 -70
  488. package/.agents/scripts/merge-baseline.js +30 -104
  489. package/.agents/scripts/nav-registry-diff.js +22 -108
  490. package/.agents/scripts/notify.js +12 -69
  491. package/.agents/scripts/plan-context.js +27 -111
  492. package/.agents/scripts/plan-critics.js +12 -66
  493. package/.agents/scripts/plan-persist.js +31 -148
  494. package/.agents/scripts/plan-run-epilogue.js +11 -37
  495. package/.agents/scripts/pr-watch-with-update.js +76 -267
  496. package/.agents/scripts/providers/github/auth.js +3 -8
  497. package/.agents/scripts/providers/github/blocked-by-add.js +14 -61
  498. package/.agents/scripts/providers/github/board-add.js +5 -21
  499. package/.agents/scripts/providers/github/branch-protection.js +11 -43
  500. package/.agents/scripts/providers/github/cache.js +2 -14
  501. package/.agents/scripts/providers/github/comments.js +7 -40
  502. package/.agents/scripts/providers/github/compose.js +3 -19
  503. package/.agents/scripts/providers/github/errors.js +22 -125
  504. package/.agents/scripts/providers/github/issues.js +31 -123
  505. package/.agents/scripts/providers/github/labels.js +24 -124
  506. package/.agents/scripts/providers/github/mappers.js +5 -27
  507. package/.agents/scripts/providers/github/merge-methods.js +3 -22
  508. package/.agents/scripts/providers/github/project-board.js +2 -17
  509. package/.agents/scripts/providers/github/projects-v2-graphql.js +3 -6
  510. package/.agents/scripts/providers/github/request-helpers.js +5 -32
  511. package/.agents/scripts/providers/github/search-budget.js +9 -39
  512. package/.agents/scripts/providers/github/search-query.js +5 -26
  513. package/.agents/scripts/providers/github/sub-issue-add.js +15 -65
  514. package/.agents/scripts/providers/github/sub-issues.js +7 -36
  515. package/.agents/scripts/providers/github/tickets.js +32 -134
  516. package/.agents/scripts/providers/github.js +18 -59
  517. package/.agents/scripts/prune-plan-run-labels.js +12 -46
  518. package/.agents/scripts/quality-preview.js +35 -220
  519. package/.agents/scripts/resolve-doc-tiers.js +3 -26
  520. package/.agents/scripts/resolve-stories.js +16 -67
  521. package/.agents/scripts/resync-status-column.js +6 -25
  522. package/.agents/scripts/run-tests.js +29 -104
  523. package/.agents/scripts/single-story-close.js +23 -135
  524. package/.agents/scripts/single-story-confirm-merge.js +32 -139
  525. package/.agents/scripts/single-story-init.js +47 -209
  526. package/.agents/scripts/stories-wave-tick.js +102 -472
  527. package/.agents/scripts/sync-agentrc.js +3 -21
  528. package/.agents/scripts/sync-claude-agents.js +9 -55
  529. package/.agents/scripts/sync-claude-commands.js +20 -110
  530. package/.agents/scripts/test-wrapper.js +6 -43
  531. package/.agents/scripts/update-coverage-baseline.js +5 -22
  532. package/.agents/scripts/update-crap-baseline.js +7 -30
  533. package/.agents/scripts/update-duplication-baseline.js +16 -92
  534. package/.agents/scripts/update-maintainability-baseline.js +8 -62
  535. package/.agents/scripts/update-ticket-state.js +1 -7
  536. package/.agents/scripts/validate-skills.js +6 -26
  537. package/.agents/templates/agent-protocol.md +2 -2
  538. package/.agents/templates/docs/audit-sweep-runbook.md +3 -4
  539. package/.agents/workflows/audit-accessibility.md +4 -7
  540. package/.agents/workflows/audit-adrs.md +3 -6
  541. package/.agents/workflows/audit-architecture.md +3 -11
  542. package/.agents/workflows/audit-baselines.md +6 -9
  543. package/.agents/workflows/audit-clean-code.md +8 -12
  544. package/.agents/workflows/audit-data-model.md +3 -7
  545. package/.agents/workflows/audit-dependencies.md +4 -7
  546. package/.agents/workflows/audit-devops.md +4 -8
  547. package/.agents/workflows/audit-documentation.md +1 -4
  548. package/.agents/workflows/audit-mobile.md +4 -7
  549. package/.agents/workflows/audit-navigability.md +3 -6
  550. package/.agents/workflows/audit-performance.md +2 -4
  551. package/.agents/workflows/audit-privacy.md +4 -7
  552. package/.agents/workflows/audit-quality.md +4 -7
  553. package/.agents/workflows/audit-security.md +4 -7
  554. package/.agents/workflows/audit-seo.md +4 -7
  555. package/.agents/workflows/audit-sre.md +4 -7
  556. package/.agents/workflows/audit-to-stories.md +17 -30
  557. package/.agents/workflows/audit-ux-ui.md +4 -7
  558. package/.agents/workflows/helpers/audit-lens-core.md +1 -1
  559. package/.agents/workflows/helpers/code-quality-guardrails.md +12 -15
  560. package/.agents/workflows/helpers/deliver-digest.md +6 -4
  561. package/.agents/workflows/helpers/deliver-reference.md +114 -188
  562. package/.agents/workflows/helpers/deliver-story-reference.md +189 -533
  563. package/.agents/workflows/helpers/plan-reference.md +86 -139
  564. package/.agents/workflows/helpers/qa-core.md +12 -0
  565. package/.agents/workflows/memory-consolidate.md +1 -1
  566. package/.agents/workflows/qa-assist.md +27 -71
  567. package/.agents/workflows/qa-explore.md +19 -59
  568. package/.agents/workflows/qa-run.md +11 -33
  569. package/README.md +1 -1
  570. package/bin/mandrel.js +5 -46
  571. package/bin/postinstall.js +18 -107
  572. package/docs/CHANGELOG.md +32 -0
  573. package/lib/cli/doctor.js +11 -71
  574. package/lib/cli/init.js +26 -165
  575. package/lib/cli/migrate.js +5 -64
  576. package/lib/cli/registry.js +84 -467
  577. package/lib/cli/sync-agents.js +4 -64
  578. package/lib/cli/sync-commands.js +11 -64
  579. package/lib/cli/sync.js +34 -213
  580. package/lib/cli/uninstall.js +40 -219
  581. package/lib/cli/update.js +105 -661
  582. package/lib/cli/version-check.js +8 -72
  583. package/lib/cli/version-helpers.js +14 -87
  584. package/lib/migrations/helpers/retire-agentrc-key.js +11 -52
  585. package/lib/migrations/index.js +15 -92
  586. package/lib/migrations/steps/2.1.0-retire-mi-drop-knobs.js +2 -15
  587. package/lib/migrations/steps/2.1.0-retire-verify-concurrency-cap.js +1 -13
  588. package/lib/migrations/steps/2.11.0-retire-max-seed-words.js +2 -15
  589. package/lib/migrations/steps/2.2.0-retire-epic-ac-tags.js +9 -38
  590. package/lib/migrations/steps/2.20.0-retire-codebase-snapshot.js +1 -13
  591. package/lib/migrations/steps/2.32.0-retire-lint-baseline-command.js +2 -27
  592. package/lib/migrations/steps/2.57.0-retire-delivery-limit-knobs.js +2 -23
  593. package/lib/migrations/steps/2.57.0-retire-planning-limit-knobs.js +2 -27
  594. package/lib/migrations/steps/2.60.0-retire-audit-results-autofile.js +2 -21
  595. package/lib/migrations/steps/strip-removed-agentrc-keys.js +333 -0
  596. package/package.json +16 -14
  597. package/.agents/docs/SDLC.md +0 -590
  598. package/.agents/docs/quality-gates.md +0 -1183
  599. package/.agents/rules/known-tooling-behavior.md +0 -200
  600. package/.agents/rules/orchestration-error-handling.md +0 -61
  601. package/.agents/rules/test-seams.md +0 -59
  602. package/.agents/schemas/baselines/lighthouse.schema.json +0 -59
  603. package/.agents/schemas/baselines/lint.schema.json +0 -47
  604. package/.agents/scripts/check-action-pinning.js +0 -260
  605. package/.agents/scripts/check-audit-attribution.js +0 -302
  606. package/.agents/scripts/check-baseline-drift.js +0 -211
  607. package/.agents/scripts/check-baseline-scope.js +0 -362
  608. package/.agents/scripts/check-generated-validator.js +0 -202
  609. package/.agents/scripts/check-knip-entries.js +0 -159
  610. package/.agents/scripts/check-lifecycle-lint.js +0 -294
  611. package/.agents/scripts/check-pinned-override-notes.js +0 -102
  612. package/.agents/scripts/check-schema-references.js +0 -368
  613. package/.agents/scripts/check-test-portability.js +0 -512
  614. package/.agents/scripts/check-workflow-citations.js +0 -218
  615. package/.agents/scripts/check-workflow-cli-lint.js +0 -299
  616. package/.agents/scripts/check-workflow-timeouts.js +0 -291
  617. package/.agents/scripts/install-matrix-assert.js +0 -326
  618. package/.agents/scripts/lib/audit-advisories.js +0 -195
  619. package/.agents/scripts/lib/audit-attribution.js +0 -134
  620. package/.agents/scripts/lib/baselines/drift-detector.js +0 -351
  621. package/.agents/scripts/lib/baselines/kinds/lighthouse.js +0 -87
  622. package/.agents/scripts/lib/baselines/kinds/lint.js +0 -184
  623. package/.agents/scripts/lib/baselines/orphan-pruner.js +0 -233
  624. package/.agents/scripts/lib/baselines/scope-assert.js +0 -223
  625. package/.agents/scripts/lib/baselines/scope-inventory.js +0 -314
  626. package/.agents/scripts/lib/c8-cli-path.js +0 -21
  627. package/.agents/scripts/lib/config/gates/lighthouse.schema.js +0 -51
  628. package/.agents/scripts/lib/config/gates/lint.schema.js +0 -18
  629. package/.agents/scripts/lib/dynamic-workflow/architecture-report-contract.js +0 -70
  630. package/.agents/scripts/lib/dynamic-workflow/audit-orchestrator.js +0 -284
  631. package/.agents/scripts/lib/dynamic-workflow/clean-code-report-contract.js +0 -80
  632. package/.agents/scripts/lib/dynamic-workflow/degraded-coverage.js +0 -81
  633. package/.agents/scripts/lib/dynamic-workflow/documentation-report-contract.js +0 -87
  634. package/.agents/scripts/lib/dynamic-workflow/performance-report-contract.js +0 -74
  635. package/.agents/scripts/lib/dynamic-workflow/quality-report-contract.js +0 -90
  636. package/.agents/scripts/lib/dynamic-workflow/report-contract-core.js +0 -43
  637. package/.agents/scripts/lib/dynamic-workflow/security-report-contract.js +0 -83
  638. package/.agents/scripts/lib/fs-walk.js +0 -52
  639. package/.agents/scripts/lib/knip-config-resolver.js +0 -181
  640. package/.agents/scripts/lib/knip-entry-sync.js +0 -452
  641. package/.agents/scripts/lib/pinned-override-notes.js +0 -88
  642. package/.agents/scripts/lib/pinned-override-resolve.js +0 -212
  643. package/.agents/scripts/lib/test-isolate/cli-options.js +0 -93
  644. package/.agents/scripts/lib/test-isolate/env-snapshot-loader.js +0 -52
  645. package/.agents/scripts/lib/test-isolate/list-files.js +0 -90
  646. package/.agents/scripts/lib/test-isolate/parse-tap.js +0 -75
  647. package/.agents/scripts/lib/test-isolate/progress-log.js +0 -45
  648. package/.agents/scripts/lib/test-isolate/render-report.js +0 -97
  649. package/.agents/scripts/lib/test-isolate/run-isolate.js +0 -87
  650. package/.agents/scripts/lib/test-isolate/runner.js +0 -483
  651. package/.agents/scripts/lib/test-profile/parse-tap.js +0 -136
  652. package/.agents/scripts/lib/test-profile/render-report.js +0 -45
  653. package/.agents/scripts/lint-label-vocabulary.js +0 -214
  654. package/.agents/scripts/post-structured-comment.js +0 -127
  655. package/.agents/scripts/provision-git-hooks.js +0 -85
  656. package/.agents/scripts/prune-baseline-orphans.js +0 -181
  657. package/.agents/scripts/run-coverage.js +0 -197
  658. package/.agents/scripts/run-lint.js +0 -133
  659. package/.agents/scripts/run-test-profile.js +0 -129
  660. package/.agents/scripts/run-verify.js +0 -125
  661. package/.agents/scripts/test-isolate.js +0 -55
  662. package/.agents/scripts/update-dead-exports-baseline.js +0 -321
@@ -1,49 +1,11 @@
1
1
  /**
2
- * update-duplication-baseline.js — manual refresh CLI for the
3
- * code-duplication (DRY) baseline (Story #3664).
4
- *
5
- * Story #4944: this CLI is now a thin wrapper around
6
- * `refreshBaseline({ kind: 'duplication' })` from
7
- * `.agents/scripts/lib/baselines/refresh-service.js`, completing the Epic
8
- * #2173 migration — duplication was the last kind still assembling its own
9
- * writer call via the legacy `buildWriterScopeArgs` path. Scope resolution,
10
- * prior-envelope reading, epsilon damping, envelope assembly, and
11
- * persistence all flow through the unified service.
12
- *
13
- * The migration is what makes this CLI's documented surface true. Before it,
14
- * `--full-scope` was advertised and parsed by nobody, and the no-flag default
15
- * was a full rewrite rather than the diff-scoped refresh the usage text
16
- * described.
17
- *
18
- * Surface:
19
- *
20
- * - `--baseline <path>`: write somewhere other than the configured
21
- * `delivery.quality.gates.duplication.baselinePath`.
22
- * - `--diff-scope <ref>`: scope the refresh to files changed between
23
- * `<ref>` and HEAD. Out-of-scope rows are preserved verbatim from the
24
- * prior on-disk baseline.
25
- * - `--full-scope`: regenerate every row (no out-of-scope merge).
26
- * - With no scope flag: scope is derived from `git diff --name-only
27
- * origin/main..HEAD` (the service's default `baseRef..headRef`), matching
28
- * `update-crap-baseline.js` / `update-maintainability-baseline.js` /
29
- * `update-coverage-baseline.js`.
30
- *
31
- * **Scope is a write-side filter here, not a scan-side one.** jscpd detects
32
- * clones pairwise, so the scan always covers the whole target tree even in
33
- * diff mode — see `buildDefaultDuplicationScorer` in the refresh service for
34
- * why narrowing the scan would drop clones between a changed file and an
35
- * unchanged one. What a scope flag narrows is which rows the refresh is
36
- * allowed to rewrite.
37
- *
38
- * Exits non-zero only when the scanner itself crashes. An empty result (no
39
- * detected clones) still writes an envelope with `rows: []` so downstream
40
- * `check-baselines` can tell "intentional empty baseline" apart from "no
41
- * baseline yet".
2
+ * Refresh the duplication baseline via `refreshBaseline({ kind:
3
+ * 'duplication' })`. Scope is a write-side filter only: clone detection is
4
+ * pairwise, so the scan always covers the whole tree. No clones still writes
5
+ * `rows: []`, so an intentional empty baseline differs from a missing one.
42
6
  */
43
7
 
44
- // Fail-fast if the framework's runtime deps are not installed — must be the
45
- // first import so the check runs before any third-party-importing sibling
46
- // module is evaluated (Story #3432).
8
+ // Must be the first import: fails fast before any third-party import loads.
47
9
  import './lib/runtime-deps/ensure-installed.js';
48
10
  import path from 'node:path';
49
11
  import { parseDiffScopeFlag } from './lib/baselines/diff-scope-cli.js';
@@ -53,12 +15,7 @@ import { getBaselineEpsilon } from './lib/config/quality.js';
53
15
  import { getQuality, resolveConfig } from './lib/config-resolver.js';
54
16
  import { Logger } from './lib/Logger.js';
55
17
 
56
- /**
57
- * Usage block for `--help`. This CLI *writes* on invocation, so the help
58
- * branch must short-circuit before `main` runs rather than inside it —
59
- * `runAsCli` answers help first, which makes "a usage probe never mutates a
60
- * baseline" structural instead of a check `main` has to remember.
61
- */
18
+ /** `runAsCli` answers `--help` before `main`, so a usage probe never writes. */
62
19
  const USAGE = {
63
20
  invocation:
64
21
  'node .agents/scripts/update-duplication-baseline.js [--baseline <path>] [--full-scope | --diff-scope <ref>]',
@@ -85,10 +42,6 @@ const USAGE = {
85
42
  };
86
43
 
87
44
  /**
88
- * Parse `--baseline <path>` — the one flag this CLI does not share with its
89
- * siblings. The scope flags are parsed by the shared helpers so their
90
- * contract stays identical across the four update CLIs.
91
- *
92
45
  * @param {string[]} argv
93
46
  * @returns {{ baselinePath: string | undefined }}
94
47
  */
@@ -104,8 +57,6 @@ function parseCliArgs(argv = process.argv.slice(2)) {
104
57
  }
105
58
 
106
59
  /**
107
- * Parse `--full-scope` (boolean opt-out flag).
108
- *
109
60
  * @param {string[]} argv
110
61
  * @returns {boolean}
111
62
  */
@@ -114,12 +65,8 @@ function parseFullScopeFlag(argv = []) {
114
65
  }
115
66
 
116
67
  /**
117
- * Resolve the duplication gate block from the merged quality config. The
118
- * flattened legacy bag does not expose a `duplication` accessor (the kind
119
- * post-dates the bag), so read it off the resolved `gates` map directly.
120
- *
121
- * @param {object} config resolved config
122
- * @returns {object} the duplication gate block (possibly empty)
68
+ * @param {object} config
69
+ * @returns {object}
123
70
  */
124
71
  function resolveDuplicationGate(config) {
125
72
  const gates = getQuality(config).gates ?? {};
@@ -127,14 +74,8 @@ function resolveDuplicationGate(config) {
127
74
  }
128
75
 
129
76
  /**
130
- * Resolve the mutually-exclusive scope selection from argv.
131
- *
132
- * Split out of `main` deliberately: nothing in this file is reachable from a
133
- * test (the CLI is only ever spawned with `--help`, which `runAsCli`
134
- * short-circuits), so every function here scores CRAP at zero coverage —
135
- * `c² + c`. A single `main` carrying all the branching lands at c=8 → 72,
136
- * well over the 30 ceiling. Small single-purpose helpers keep each row far
137
- * below it without hiding any logic.
77
+ * Split out of `main` because nothing here is covered by tests, so CRAP is
78
+ * `c² + c`; small helpers keep each row under the ceiling.
138
79
  *
139
80
  * @param {string[]} argv
140
81
  * @returns {{ fullScope: boolean, diffScopeRef: string | null }}
@@ -152,13 +93,9 @@ function resolveScopeSelection(argv) {
152
93
  }
153
94
 
154
95
  /**
155
- * Resolve the absolute path the refreshed envelope is written to:
156
- * `--baseline <path>` wins, then the configured gate path, then the
157
- * framework default.
158
- *
159
96
  * @param {string[]} argv
160
- * @param {object} gate resolved duplication gate block
161
- * @returns {string} absolute path
97
+ * @param {object} gate
98
+ * @returns {string}
162
99
  */
163
100
  function resolveAbsBaselinePath(argv, gate) {
164
101
  const baselinePath =
@@ -171,9 +108,6 @@ function resolveAbsBaselinePath(argv, gate) {
171
108
  }
172
109
 
173
110
  /**
174
- * Announce which scope the refresh resolved to, so an operator reading the
175
- * log can tell a narrowed refresh from a full rewrite without re-deriving it.
176
- *
177
111
  * @param {{ fullScope: boolean, diffScopeRef: string | null }} selection
178
112
  */
179
113
  function logScopeDecision({ fullScope, diffScopeRef }) {
@@ -189,14 +123,8 @@ function logScopeDecision({ fullScope, diffScopeRef }) {
189
123
  }
190
124
 
191
125
  /**
192
- * Assemble the `refreshBaseline` option bag for the resolved selection.
193
- *
194
- * No `scorer` is injected — the service resolves the canonical default
195
- * duplication scorer, which reads `gates.duplication.targetDirs` /
196
- * `ignoreGlobs` off the same resolved config this CLI reads.
197
- *
198
126
  * @param {{ fullScope: boolean, diffScopeRef: string | null, absBaselinePath: string, epsilon: number }} args
199
- * @returns {object} options for `refreshBaseline`
127
+ * @returns {object}
200
128
  */
201
129
  function buildRefreshOpts({
202
130
  fullScope,
@@ -212,14 +140,10 @@ function buildRefreshOpts({
212
140
  if (fullScope) {
213
141
  refreshOpts.fullScope = true;
214
142
  } else if (diffScopeRef) {
215
- // The CLI's documented `--diff-scope <ref>` semantics are `<ref>...HEAD`
216
- // (three-dot). The service derives via two-dot `baseRef..headRef`; pass
217
- // the ref as `baseRef` so the derivation runs through the same execFile
218
- // seam the sibling CLIs use.
143
+ // The service derives two-dot `baseRef..headRef`, like the sibling CLIs.
219
144
  refreshOpts.baseRef = diffScopeRef;
220
145
  }
221
- // No flag → scopeFiles=null + fullScope=false → service derives the diff
222
- // via `origin/main..HEAD` (its default baseRef/headRef).
146
+ // No flag: the service derives the diff from `origin/main..HEAD`.
223
147
  return refreshOpts;
224
148
  }
225
149
 
@@ -239,7 +163,7 @@ async function main() {
239
163
  buildRefreshOpts({
240
164
  ...selection,
241
165
  absBaselinePath,
242
- epsilon: getBaselineEpsilon('duplication', config),
166
+ epsilon: getBaselineEpsilon('duplication'),
243
167
  }),
244
168
  );
245
169
 
@@ -1,44 +1,10 @@
1
1
  /**
2
- * update-maintainability-baseline.js — manual refresh CLI for the
3
- * maintainability baseline.
4
- *
5
- * Story #2202 / Task #2215 (Epic #2173): this CLI is now a thin wrapper
6
- * around `refreshBaseline({ kind: 'maintainability' })` from
7
- * `.agents/scripts/lib/baselines/refresh-service.js`. All scoring, scope
8
- * resolution, envelope assembly, and persistence flows through the unified
9
- * service.
10
- *
11
- * Story #4293: the CLI no longer injects a bespoke maintainability scorer.
12
- * It now lets `refreshBaseline` resolve the canonical default scorer
13
- * (`buildDefaultMaintainabilityScorer`) the same way `update-crap-baseline.js`
14
- * and `update-coverage-baseline.js` route through their canonical defaults.
15
- * The previously-injected `buildMaintainabilityScorer` was a stale copy of the
16
- * canonical scorer that never received the `ignoreGlobs` fix on its diff-scope
17
- * branch, so an ignored-but-changed file (e.g. one matched by
18
- * `config-settings-schema*.js` or a consumer's `seed.mjs`) leaked into `rows`
19
- * and dragged `rollup["*"].min` below the maintainability floor. The canonical
20
- * default scorer applies the ignore filter on BOTH the full-scope walk and the
21
- * diff-scope branch, eliminating the divergence at the source.
22
- *
23
- * Surface:
24
- *
25
- * - `--diff-scope <ref>` (or `--diff-scope=<ref>`): explicitly scope the
26
- * refresh to files changed between `<ref>` and HEAD. Out-of-scope rows
27
- * are preserved byte-for-byte from the prior on-disk baseline.
28
- * - With no flag: scope is derived from `git diff --name-only
29
- * origin/main..HEAD` (the service's default `baseRef..headRef`).
30
- * Operators wanting a full rewrite must pass `--full-scope` (added by
31
- * Task #2214; see that Task's notes for the cut-over).
32
- *
33
- * Full-scope refreshes (`scope.mode === 'full'`) walk every configured
34
- * target directory; diff/explicit refreshes score only the files the
35
- * service hands in. Both paths drop `ignoreGlobs`-listed files via the
36
- * canonical default scorer.
2
+ * Refresh the maintainability baseline via `refreshBaseline({ kind:
3
+ * 'maintainability' })`. No scorer is injected: the service's default applies
4
+ * `ignoreGlobs` on both the full walk and the diff-scope branch.
37
5
  */
38
6
 
39
- // Fail-fast if the framework's runtime deps are not installed — must be the
40
- // first import so the check runs before any third-party-importing sibling
41
- // module is evaluated (Story #3432).
7
+ // Must be the first import: fails fast before any third-party import loads.
42
8
  import './lib/runtime-deps/ensure-installed.js';
43
9
  import path from 'node:path';
44
10
  import { parseDiffScopeFlag } from './lib/baselines/diff-scope-cli.js';
@@ -48,12 +14,7 @@ import { getBaselineEpsilon } from './lib/config/quality.js';
48
14
  import { getBaselines, resolveConfig } from './lib/config-resolver.js';
49
15
  import { Logger } from './lib/Logger.js';
50
16
 
51
- /**
52
- * Usage block for `--help` (Story #4872). This CLI *writes* on invocation, so
53
- * the help branch must short-circuit before `main` runs rather than inside it —
54
- * `runAsCli` answers help first, which makes "a usage probe never mutates a
55
- * baseline" structural instead of a check `main` has to remember.
56
- */
17
+ /** `runAsCli` answers `--help` before `main`, so a usage probe never writes. */
57
18
  const USAGE = {
58
19
  invocation:
59
20
  'node .agents/scripts/update-maintainability-baseline.js [--full-scope | --diff-scope <ref>]',
@@ -72,8 +33,6 @@ const USAGE = {
72
33
  };
73
34
 
74
35
  /**
75
- * Parse `--full-scope` (boolean opt-out flag).
76
- *
77
36
  * @param {string[]} argv
78
37
  * @returns {boolean}
79
38
  */
@@ -97,7 +56,7 @@ async function main() {
97
56
  const absBaselinePath = path.isAbsolute(baselinePath)
98
57
  ? baselinePath
99
58
  : path.resolve(process.cwd(), baselinePath);
100
- const epsilon = getBaselineEpsilon('maintainability', config);
59
+ const epsilon = getBaselineEpsilon('maintainability');
101
60
 
102
61
  Logger.info('[Maintainability] Updating baseline...');
103
62
  if (fullScope) {
@@ -110,14 +69,6 @@ async function main() {
110
69
  );
111
70
  }
112
71
 
113
- // Task #2214 (Epic #2173, AC-2): flag-omission now defaults to
114
- // diff-scope. The pre-migration default was a full regenerate; operators
115
- // wanting that behaviour must now pass `--full-scope` explicitly. This is
116
- // a deliberate breaking CLI behaviour change — see docs/CHANGELOG.md.
117
- //
118
- // Story #4293: no `scorer` is injected — the service resolves the canonical
119
- // default maintainability scorer, which applies `ignoreGlobs` on both the
120
- // full-scope walk and the diff-scope branch.
121
72
  const refreshOpts = {
122
73
  kind: 'maintainability',
123
74
  writePath: absBaselinePath,
@@ -126,15 +77,10 @@ async function main() {
126
77
  if (fullScope) {
127
78
  refreshOpts.fullScope = true;
128
79
  } else if (diffScopeRef) {
129
- // The CLI's documented `--diff-scope <ref>` semantics are
130
- // `<ref>...HEAD` (three-dot). The service derives via two-dot
131
- // `baseRef..headRef`; pass the ref as `baseRef` so the service's
132
- // diff-derivation does the heavy lifting through the same execFile
133
- // seam that auto-refresh uses.
80
+ // The service derives two-dot `baseRef..headRef`, like auto-refresh.
134
81
  refreshOpts.baseRef = diffScopeRef;
135
82
  }
136
- // No flag → scopeFiles=null + fullScope=false → service derives the
137
- // diff via `origin/main..HEAD` (its default baseRef/headRef).
83
+ // No flag: the service derives the diff from `origin/main..HEAD`.
138
84
 
139
85
  const result = await refreshBaseline(refreshOpts);
140
86
 
@@ -80,13 +80,7 @@ if (
80
80
  Logger.info(
81
81
  `[State-Sync] Transitioning ticket #${ticketId} to ${state}...`,
82
82
  );
83
- // Story #4545 — no second cascade here. `transitionTicketState` already
84
- // fires the upward cascade on every transition (bulk.js registers
85
- // `cascadeParentState` as transition.js's cascade runner, and the DONE
86
- // branch delegates to `cascadeCompletion`), so the explicit call this
87
- // used to make re-walked the same parents and re-spent the same API
88
- // calls a second time on every done transition — under a Story-only
89
- // model where no orchestration parent exists to find.
83
+ // No explicit cascade: `transitionTicketState` already runs it.
90
84
  await transitionTicketState(provider, ticketId, state);
91
85
 
92
86
  // Optional secondary label removal alongside the state transition
@@ -1,30 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  // .agents/scripts/validate-skills.js
3
3
  //
4
- // Walk `SKILL.md` under both skills roots — the package payload
5
- // (`.agents/skills/{core,stack}/`) and the consumer-writable local zone
6
- // (`.agents/local/skills/{core,stack}/`, Story #5135) — via the shared parser
7
- // helper, validate each frontmatter block against
8
- // `.agents/schemas/skill.schema.json`, enforce Policy Capsule presence
9
- // (5–12 bullets), and verify membership in each root's own manifest when it
10
- // exists. A consumer-authored skill is held to exactly the same bar as a
11
- // shipped one; the roots are validated separately because each carries its
12
- // own index (the shipped manifest is a payload file and must stay
13
- // payload-only — see generate-skills-index.js). All findings are batched into a single
14
- // human-readable report; the process exits non-zero when any finding is
15
- // surfaced.
16
4
  //
17
- // CLI surface:
18
- //
19
- // node validate-skills.js [--root <dir>]
20
- //
21
- // --root <dir> Use <dir> as the repo root (defaults to the project
22
- // root containing `.agents/skills`). Useful for tests
23
- // staging fixture trees outside the real repo.
24
- //
25
- // Honors AGENT_LOG_LEVEL via the shared `Logger`. The findings report is
26
- // written to stdout when any finding is present, so callers can capture
27
- // it for ticket comments or CI logs.
5
+ // Validate every `SKILL.md` in the payload and local skills roots: schema
6
+ // frontmatter, a 5–12 bullet Policy Capsule, and membership in that root's
7
+ // own index (the shipped index is a payload file and stays payload-only).
8
+ // Local skills meet the same bar. Findings are batched; any finding exits
9
+ // non-zero. `--root <dir>` overrides the repo root (for fixtures).
28
10
 
29
11
  import fs from 'node:fs';
30
12
  import path from 'node:path';
@@ -56,9 +38,7 @@ function defaultRepoRoot() {
56
38
  }
57
39
 
58
40
  export function parseArgs(argv) {
59
- // `--help` / `-h` is a side-channel signal handled before the shared
60
- // parser sees it: the shared parser does not (yet) model help flags as
61
- // first-class output, and pre-stripping keeps the legacy parsed shape.
41
+ // Help is handled before the shared parser, which does not model it.
62
42
  if (argv.some((t) => t === '--help' || t === '-h')) {
63
43
  return { root: null, help: true };
64
44
  }
@@ -65,7 +65,7 @@ sibling-test convention, the per-file Maintainability-Index drop ceiling
65
65
  (refactor when > 1.5pt), and the rename = baseline-refresh rule. Verify
66
66
  at-keyboard with `npm run quality:preview` (the same diff-scoped MI + CRAP
67
67
  preview the `.husky/pre-commit` hook runs) **before** committing. The
68
- thresholds are tunable via `agentSettings.quality.codingGuardrails` in
69
- `.agentrc.json` — never fork the helper to change a number.
68
+ thresholds are fixed framework constants — never fork the helper to change
69
+ a number.
70
70
 
71
71
  ---
@@ -23,7 +23,7 @@ has to be settled here instead.
23
23
  | --- | --- |
24
24
  | Cadence | _e.g. weekly, Sunday 02:00_ |
25
25
  | Lenses in scope | _e.g. security, clean-code, quality, dependencies_ |
26
- | Severity floor | _`delivery.auditToStories.severityFloor`, default `high`_ |
26
+ | Severity floor | _`--severity`, default `high`_ |
27
27
  | Ledger reviewer | _e.g. @your-handle_ |
28
28
  | Story triage owner | _e.g. the on-call maintainer_ |
29
29
 
@@ -88,9 +88,8 @@ to every finding.
88
88
  `--dry-run` performs zero GitHub writes and skips the ledger write, printing
89
89
  only the run summary. Read `totals.create` before you let the sweep file
90
90
  anything: a first full-scope run over an un-audited repository can propose more
91
- Stories than your team can triage in a quarter. Raise `--severity` (or
92
- `delivery.auditToStories.severityFloor`) until the create count is a batch you
93
- would actually take on, then go live.
91
+ Stories than your team can triage in a quarter. Raise `--severity` until the
92
+ create count is a batch you would actually take on, then go live.
94
93
 
95
94
  ## Step 4 — Go live, and persist the ledger
96
95
 
@@ -9,9 +9,7 @@ conformance** — semantic structure, ARIA correctness, keyboard operability, fo
9
9
  labelling, media alternatives, and contrast — grounding every finding in a
10
10
  concrete element and the success criterion it violates. Default to **static**
11
11
  detection over source; escalate to a **runtime** pass only when a live target is
12
- configured. The shared lens machinery — read-only constraint, scope
13
- interpretation, report envelope + finding-block skeleton, severity scale,
14
- self-cross-check, and execution strategy — lives in
12
+ configured. The shared lens machinery lives in
15
13
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
16
14
  `{{auditOutputDir}}/audit-accessibility-results.md`. Extra finding fields:
17
15
  **WCAG:** (the violated success criterion, e.g. `1.1.1 Non-text Content (A)`)
@@ -55,7 +53,7 @@ the token-adherence note to ux-ui.
55
53
 
56
54
  ## Scope
57
55
 
58
- Interpret this lens's change-set fence per the core's Scope interpretation:
56
+ Per the core's Scope interpretation:
59
57
 
60
58
  ```text
61
59
  {{changedFiles}}
@@ -63,9 +61,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
63
61
 
64
62
  ## Execution strategy
65
63
 
66
- Run this lens as a single `subagent_type: auditor` dispatch returning the report
67
- path + Executive Summary; sequential inline execution is the fallback (see the
68
- core's Execution strategy).
64
+ Run this lens as one `subagent_type: auditor` dispatch per the core's
65
+ Execution strategy.
69
66
 
70
67
  ## Step 0: Discover the frontend surface and config (run first)
71
68
 
@@ -16,9 +16,7 @@ Accepted ADR the tree has outgrown is worse than no ADR at all — it actively
16
16
  teaches a wrong contract, and it keeps teaching it until someone supersedes it.
17
17
  That is this lens's central target; structural tidiness is the cheap part.
18
18
 
19
- The shared lens machinery — read-only constraint, scope interpretation, report
20
- envelope + finding-block skeleton, severity scale, self-cross-check, and
21
- execution strategy — lives in
19
+ The shared lens machinery lives in
22
20
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
23
21
  `{{auditOutputDir}}/audit-adrs-results.md`. Dimension values:
24
22
  `Decision Drift | Supersede-Chain Integrity | Structure & Status Hygiene |
@@ -91,9 +89,8 @@ only; the guard is not weakened for any other lens.
91
89
 
92
90
  ## Execution strategy
93
91
 
94
- Run this lens as a single `subagent_type: auditor` dispatch returning the report
95
- path + Executive Summary; sequential inline execution is the fallback (see the
96
- core's Execution strategy). On a large log, the Decision Drift claim-check
92
+ Run this lens as one `subagent_type: auditor` dispatch per the core's
93
+ Execution strategy. On a large log, the Decision Drift claim-check
97
94
  (Step 2.1) is the one dimension worth fanning out per batch of entries under
98
95
  parallel-tooling Rule 3 — merge under the shared self-cross-check.
99
96
 
@@ -6,9 +6,7 @@ description: Audit architectural boundaries, module coupling, layering violation
6
6
 
7
7
  You are a Staff Software Engineer & Architecture Reviewer performing a read-only
8
8
  review that prioritizes maintainability and readability without altering
9
- external APIs or business logic. The shared lens machinery — read-only
10
- constraint, scope interpretation, report envelope + finding-block skeleton,
11
- severity scale, self-cross-check, and execution strategy — lives in
9
+ external APIs or business logic. The shared lens machinery lives in
12
10
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
13
11
  `{{auditOutputDir}}/audit-architecture-results.md`. Each finding carries an
14
12
  **Impact:** and a **Category:** (`Quick Win | Structural Change`); the report
@@ -17,7 +15,7 @@ adds a **Triage Summary** (Quick Wins / Structural Changes) and an
17
15
 
18
16
  ## Scope
19
17
 
20
- Interpret this lens's change-set fence per the core's Scope interpretation:
18
+ Per the core's Scope interpretation:
21
19
 
22
20
  ```text
23
21
  {{changedFiles}}
@@ -183,13 +181,7 @@ Evaluate the gathered context against the following architecture dimensions:
183
181
 
184
182
  For each finding, name the module/function, identify the trapped logic and
185
183
  the I/O it is bound to, and propose the concrete seam (the pure function or
186
- port to extract, and where the I/O adapter should call into it). This repo
187
- already practices a related seam discipline at the error-handling boundary:
188
- [`rules/orchestration-error-handling.md`](../rules/orchestration-error-handling.md)
189
- requires orchestration scripts to `throw` rather than `Logger.fatal` so the
190
- thin `runAsCli` shell — not the logic — owns the `process.exit` side effect,
191
- keeping the wrapped logic exercisable under a stubbed `process.exit`. Cite
192
- that precedent where it applies rather than restating it.
184
+ port to extract, and where the I/O adapter should call into it).
193
185
  2. **Automated Architecture Guardrails:** Assess whether the project encodes
194
186
  its architectural boundaries as **deterministic, automated checks** rather
195
187
  than relying on convention or reviewer memory. When relevant to the
@@ -10,9 +10,7 @@ repository's **committed baseline surface**: the ratchet artifacts under
10
10
  `.agentrc.json`. Those instruments only prevent **regression** — nothing owns
11
11
  the loop that burns the measured debt **down** and tightens the floors behind
12
12
  it, so a repo can hold a floor it cleared years ago and never notice. This lens
13
- is that loop's read-only entry point. The shared lens machinery — read-only
14
- constraint, scope interpretation, report envelope + finding-block skeleton,
15
- severity scale, self-cross-check, and execution strategy — lives in
13
+ is that loop's read-only entry point. The shared lens machinery lives in
16
14
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
17
15
  `{{auditOutputDir}}/audit-baselines-results.md`. Dimension values:
18
16
  `Dead Instrument | Staleness | Hotspot Cluster | Trend Drift | Tightening Headroom`.
@@ -26,7 +24,7 @@ severity scale, self-cross-check, and execution strategy — lives in
26
24
 
27
25
  ## Scope
28
26
 
29
- Interpret this lens's change-set fence per the core's Scope interpretation:
27
+ Per the core's Scope interpretation:
30
28
 
31
29
  ```text
32
30
  {{changedFiles}}
@@ -51,9 +49,8 @@ This lens **refines** the core's read-only constraint; it never relaxes it.
51
49
 
52
50
  ## Execution strategy
53
51
 
54
- Run this lens as a single `subagent_type: auditor` dispatch returning the report
55
- path + Executive Summary; sequential inline execution is the fallback (see the
56
- core's Execution strategy).
52
+ Run this lens as one `subagent_type: auditor` dispatch per the core's
53
+ Execution strategy.
57
54
 
58
55
  ## Step 0: Run the engine (mandatory — measure before you judge)
59
56
 
@@ -155,8 +152,8 @@ Two envelope-level reads come **before** any finding:
155
152
  The acknowledgment is the kind upper-snaked. It demotes that kind's
156
153
  head-vs-base regressions to unchanged **for one run only** — floors stay
157
154
  enforced, so a genuine breach is still caught. The durable equivalent is a
158
- commit in the compared range whose subject carries the gate's `refreshTag`
159
- (default `baseline-refresh:`) **and** whose diff touches that kind's
155
+ commit in the compared range whose subject carries the fixed refresh tag
156
+ `baseline-refresh:` **and** whose diff touches that kind's
160
157
  baseline file. Confirm both against
161
158
  `node .agents/scripts/check-baselines.js --help` before writing the prompt,
162
159
  and never invent an acknowledgment for a kind that ships no regeneration
@@ -6,9 +6,7 @@ description: Audit code smells, dead code, complexity hotspots, and maintainabil
6
6
 
7
7
  You are a Principal Software Engineer & Code Quality Lead auditing
8
8
  maintainability — code smells, technical debt, and clean-code violations (SOLID,
9
- DRY, KISS) that hinder long-term velocity. The shared lens machinery — read-only
10
- constraint, scope interpretation, report envelope + finding-block skeleton,
11
- severity scale, self-cross-check, and execution strategy — lives in
9
+ DRY, KISS) that hinder long-term velocity. The shared lens machinery lives in
12
10
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
13
11
  `{{auditOutputDir}}/audit-clean-code-results.md`. The report adds a **Dead Code
14
12
  Inventory** table (File / Symbol / Type / Estimated LOC) and a **Technical Debt
@@ -16,7 +14,7 @@ Backlog** section.
16
14
 
17
15
  ## Scope
18
16
 
19
- Interpret this lens's change-set fence per the core's Scope interpretation:
17
+ Per the core's Scope interpretation:
20
18
 
21
19
  ```text
22
20
  {{changedFiles}}
@@ -24,9 +22,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
24
22
 
25
23
  ## Execution strategy
26
24
 
27
- Run this lens as a single `subagent_type: auditor` dispatch returning the report
28
- path + Executive Summary; sequential inline execution is the fallback (see the
29
- core's Execution strategy).
25
+ Run this lens as one `subagent_type: auditor` dispatch per the core's
26
+ Execution strategy.
30
27
 
31
28
  ## Step 0: Tool-first detection (mandatory — measure before you judge)
32
29
 
@@ -46,7 +43,7 @@ run the tools first.
46
43
  `check-baselines.js` gate enforces. Treat any per-file MI drop beyond
47
44
  `delivery.quality.gates.maintainability.tolerance` (default 0.5pt) as a
48
45
  grounded must-fix finding, and any cyclomatic reading over the
49
- `codingGuardrails.cyclomaticFlag` (> 8) or the fixed ratchet ceiling
46
+ advisory flag (> 8) or the fixed ratchet ceiling
50
47
  (≥ 12, reported by `quality:preview` as an advisory) as measured, not
51
48
  guessed.
52
49
 
@@ -78,9 +75,8 @@ run the tools first.
78
75
  - **Dynamic imports** — symbols reached via `import()`,
79
76
  `require(variable)`, or string-keyed dispatch tables: invisible to static
80
77
  export-graph analysis, so exclude unless you confirm no dynamic reference.
81
- - **Test-only seams** — exports consumed only by tests (the sanctioned
82
- `test-seams` pattern): flag as test-only, not dead, and never as a
83
- production-dead finding.
78
+ - **Test-only seams** — exports consumed only by tests: flag as test-only,
79
+ not dead, and never as a production-dead finding.
84
80
  - **Framework/registration hooks** — decorators, lifecycle listeners, and
85
81
  files auto-loaded by convention (globbed listener/plugin dirs): reachable
86
82
  via the framework, not the import graph.
@@ -98,7 +94,7 @@ Analyze the repository with a focus on:
98
94
  - **Logic Complexity:** Apply the cyclomatic / Maintainability-Index ceilings
99
95
  from
100
96
  [`helpers/code-quality-guardrails.md`](helpers/code-quality-guardrails.md):
101
- cyclomatic complexity > 8 (`delivery.quality.codingGuardrails.cyclomaticFlag`)
97
+ cyclomatic complexity > 8 (the advisory flag)
102
98
  is **flag in review** (annotate or split); ≥ 12 is the fixed ratchet
103
99
  ceiling `check-cyclomatic.js` enforces on new breaches.
104
100
  A per-file MI drop beyond the configured
@@ -8,10 +8,7 @@ You are a Data Modeler & Database Reliability Engineer analyzing the persistence
8
8
  layer — ORM model definitions, the migrations they should produce, and the seed
9
9
  data — as a first-class artifact, finding where model, migrations, and runtime
10
10
  schema silently disagree, where an assumed invariant is not enforced by a
11
- constraint, and where a migration is unsafe against a live database. The shared
12
- lens machinery — read-only constraint, scope interpretation, report envelope +
13
- finding-block skeleton, severity scale, self-cross-check, and execution
14
- strategy — lives in
11
+ constraint, and where a migration is unsafe against a live database. The shared lens machinery lives in
15
12
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
16
13
  `{{auditOutputDir}}/audit-data-model-results.md`. Dimension values:
17
14
  `Drift | Constraint Completeness | Migration Hygiene | Type Fidelity |
@@ -45,9 +42,8 @@ this lens inspects exactly that surface.
45
42
 
46
43
  ## Execution strategy
47
44
 
48
- Run this lens as a single `subagent_type: auditor` dispatch returning the report
49
- path + Executive Summary; sequential inline execution is the fallback (see the
50
- core's Execution strategy).
45
+ Run this lens as one `subagent_type: auditor` dispatch per the core's
46
+ Execution strategy.
51
47
 
52
48
  ## Step 1: Applicability & Persistence-Surface Discovery
53
49
 
@@ -6,9 +6,7 @@ description: Audit `package.json` for unused, outdated, and major-version-stale
6
6
 
7
7
  You are a DevOps Engineer & Security Researcher managing the dependency
8
8
  lifecycle — outdated, vulnerable, or bloated packages and a safe upgrade path.
9
- The shared lens machinery — read-only constraint, scope interpretation, report
10
- envelope + finding-block skeleton, severity scale, self-cross-check, and
11
- execution strategy — lives in
9
+ The shared lens machinery lives in
12
10
  [`helpers/audit-lens-core.md`](helpers/audit-lens-core.md). Write the report to
13
11
  `{{auditOutputDir}}/audit-dependencies-results.md`. Dimension values:
14
12
  `Security Fix | Removal | Engine Drift | Major Upgrade | Supply-chain`. The
@@ -24,7 +22,7 @@ report adds a **Health Summary**, an **Upgrade Batches** section, and a
24
22
 
25
23
  ## Scope
26
24
 
27
- Interpret this lens's change-set fence per the core's Scope interpretation:
25
+ Per the core's Scope interpretation:
28
26
 
29
27
  ```text
30
28
  {{changedFiles}}
@@ -32,9 +30,8 @@ Interpret this lens's change-set fence per the core's Scope interpretation:
32
30
 
33
31
  ## Execution strategy
34
32
 
35
- Run this lens as a single `subagent_type: auditor` dispatch returning the report
36
- path + Executive Summary; sequential inline execution is the fallback (see the
37
- core's Execution strategy).
33
+ Run this lens as one `subagent_type: auditor` dispatch per the core's
34
+ Execution strategy.
38
35
 
39
36
  ## Step 1: Inventory, Staleness & Unused Detection
40
37