mandrel 1.94.0 → 2.1.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 (560) hide show
  1. package/.agents/README.md +116 -99
  2. package/.agents/agents/acceptance-critic.md +9 -7
  3. package/.agents/agents/story-worker.md +45 -51
  4. package/.agents/audit-checklists/performance.md +1 -1
  5. package/.agents/docs/SDLC.md +498 -1287
  6. package/.agents/docs/agentrc-reference.json +185 -80
  7. package/.agents/docs/configuration.md +132 -190
  8. package/.agents/docs/execution-reference.md +51 -25
  9. package/.agents/docs/quality-gates.md +25 -33
  10. package/.agents/docs/workflows.md +8 -8
  11. package/.agents/instructions.md +113 -139
  12. package/.agents/rules/ci-remediation.md +11 -15
  13. package/.agents/rules/git-conventions-reference.md +48 -58
  14. package/.agents/rules/git-conventions.md +16 -22
  15. package/.agents/schemas/acceptance-eval-verdict.schema.json +1 -1
  16. package/.agents/schemas/agentrc.schema.json +83 -254
  17. package/.agents/schemas/audit-rules.json +59 -1
  18. package/.agents/schemas/audit-rules.schema.json +33 -1
  19. package/.agents/schemas/lifecycle/README.md +1 -2
  20. package/.agents/schemas/lifecycle/ledger-record.schema.json +1 -1
  21. package/.agents/schemas/lifecycle/merge.flip-failed.schema.json +33 -0
  22. package/.agents/schemas/lifecycle/merge.unlanded.schema.json +1 -0
  23. package/.agents/schemas/lifecycle/retro.end.schema.json +1 -1
  24. package/.agents/schemas/lifecycle/story.merged.schema.json +1 -1
  25. package/.agents/schemas/signal-event.schema.json +3 -3
  26. package/.agents/schemas/story-deliver-terminal.schema.json +152 -0
  27. package/.agents/schemas/validation-evidence.schema.json +1 -1
  28. package/.agents/scripts/acceptance-eval.js +22 -66
  29. package/.agents/scripts/agents-bootstrap-github.js +1 -1
  30. package/.agents/scripts/audit-to-stories.js +7 -7
  31. package/.agents/scripts/boot-sweep.js +1 -1
  32. package/.agents/scripts/bootstrap.js +3 -3
  33. package/.agents/scripts/check-dead-exports.js +43 -104
  34. package/.agents/scripts/check-doc-links.js +2 -2
  35. package/.agents/scripts/check-lifecycle-lint.js +7 -10
  36. package/.agents/scripts/check-workflow-cli-lint.js +91 -0
  37. package/.agents/scripts/cleanup-repo-test-temp.js +6 -1
  38. package/.agents/scripts/deliver-recover.js +122 -0
  39. package/.agents/scripts/drain-pending-cleanup.js +1 -1
  40. package/.agents/scripts/evidence-gate.js +20 -50
  41. package/.agents/scripts/generate-skills-index.js +17 -1
  42. package/.agents/scripts/generate-workflows-doc.js +4 -4
  43. package/.agents/scripts/lib/ITicketingProvider.js +1 -19
  44. package/.agents/scripts/lib/Logger.js +6 -10
  45. package/.agents/scripts/lib/audit-suite/runner.js +2 -2
  46. package/.agents/scripts/lib/audit-suite/selector.js +328 -28
  47. package/.agents/scripts/lib/audit-to-stories/{seed-epic-from-findings.js → seed-from-findings.js} +9 -9
  48. package/.agents/scripts/lib/baselines/kernel.js +206 -18
  49. package/.agents/scripts/lib/baselines/kinds/maintainability.js +0 -15
  50. package/.agents/scripts/lib/baselines/reader.js +1 -6
  51. package/.agents/scripts/lib/bdd-runner-detect.js +5 -9
  52. package/.agents/scripts/lib/bootstrap/ci-workflow-template.js +28 -33
  53. package/.agents/scripts/lib/bootstrap/issue-forms-template.js +32 -33
  54. package/.agents/scripts/lib/bootstrap/manifest.js +8 -11
  55. package/.agents/scripts/lib/bootstrap/project-bootstrap.js +30 -53
  56. package/.agents/scripts/lib/bootstrap/quality-bootstrap.js +0 -2
  57. package/.agents/scripts/lib/checks/core-bare-clean.js +6 -3
  58. package/.agents/scripts/lib/checks/index.js +3 -2
  59. package/.agents/scripts/lib/checks/loop-health.js +12 -11
  60. package/.agents/scripts/lib/checks/state.js +17 -248
  61. package/.agents/scripts/lib/checks/story-init-not-backgrounded.js +26 -24
  62. package/.agents/scripts/lib/checks/subagent-agent-tool-required.js +3 -4
  63. package/.agents/scripts/lib/checks/worktree-bootstrap-env.js +2 -2
  64. package/.agents/scripts/lib/checks/worktree-residue-biome.js +3 -3
  65. package/.agents/scripts/lib/cli/standard-args.js +13 -22
  66. package/.agents/scripts/lib/cli-args.js +39 -9
  67. package/.agents/scripts/lib/close-validation/gates.js +15 -15
  68. package/.agents/scripts/lib/close-validation/projections/inputs.js +7 -7
  69. package/.agents/scripts/lib/close-validation/projections/maintainability.js +12 -12
  70. package/.agents/scripts/lib/close-validation/runner.js +13 -21
  71. package/.agents/scripts/lib/close-validation/telemetry.js +17 -8
  72. package/.agents/scripts/lib/config/ci.js +6 -31
  73. package/.agents/scripts/lib/config/delivery-routing.js +52 -35
  74. package/.agents/scripts/lib/config/explain.js +61 -48
  75. package/.agents/scripts/lib/config/github.js +7 -5
  76. package/.agents/scripts/lib/config/limits.js +29 -80
  77. package/.agents/scripts/lib/config/paths.js +0 -2
  78. package/.agents/scripts/lib/config/quality.js +12 -15
  79. package/.agents/scripts/lib/config/runners.js +20 -66
  80. package/.agents/scripts/lib/config/temp-paths.js +30 -63
  81. package/.agents/scripts/lib/config/worktree-isolation.js +0 -5
  82. package/.agents/scripts/lib/config-resolver.js +2 -7
  83. package/.agents/scripts/lib/config-settings-schema-delivery.js +55 -161
  84. package/.agents/scripts/lib/config-settings-schema-quality.js +17 -16
  85. package/.agents/scripts/lib/config-settings-schema.js +100 -60
  86. package/.agents/scripts/lib/dead-exports-knip.js +105 -0
  87. package/.agents/scripts/lib/dead-exports-mode.js +51 -0
  88. package/.agents/scripts/lib/dependency-parser.js +3 -2
  89. package/.agents/scripts/lib/doc-tiers.js +2 -2
  90. package/.agents/scripts/lib/duplicate-search.js +242 -41
  91. package/.agents/scripts/lib/feedback-loop/retro-proposals-graduator.js +1 -1
  92. package/.agents/scripts/lib/findings/promote-finding.js +23 -14
  93. package/.agents/scripts/lib/format-generated-json.js +97 -0
  94. package/.agents/scripts/lib/framework-version.js +19 -190
  95. package/.agents/scripts/lib/gh-exec.js +8 -0
  96. package/.agents/scripts/lib/git-branch-cleanup.js +1 -10
  97. package/.agents/scripts/lib/git-branch-lifecycle.js +17 -180
  98. package/.agents/scripts/lib/git-utils.js +32 -20
  99. package/.agents/scripts/lib/github/framework-repo.js +6 -0
  100. package/.agents/scripts/lib/json-utils.js +1 -2
  101. package/.agents/scripts/lib/label-constants.js +10 -38
  102. package/.agents/scripts/lib/label-taxonomy.js +10 -55
  103. package/.agents/scripts/lib/observability/active-story-env.js +44 -165
  104. package/.agents/scripts/lib/observability/runtime-friction.js +243 -0
  105. package/.agents/scripts/lib/observability/signal-validator.js +4 -4
  106. package/.agents/scripts/lib/observability/signals-writer.js +6 -82
  107. package/.agents/scripts/lib/observability/source-classifier.js +5 -5
  108. package/.agents/scripts/lib/observability/tool-trace-hook.js +2 -12
  109. package/.agents/scripts/lib/onboard/init-tail.js +1 -3
  110. package/.agents/scripts/lib/orchestration/acceptance-clusters.js +1 -1
  111. package/.agents/scripts/lib/orchestration/acceptance-eval-decision.js +2 -2
  112. package/.agents/scripts/lib/orchestration/ceremony-routing.js +105 -44
  113. package/.agents/scripts/lib/orchestration/code-review.js +78 -436
  114. package/.agents/scripts/lib/orchestration/column-sync.js +1 -1
  115. package/.agents/scripts/lib/orchestration/consolidation-precondition.js +4 -4
  116. package/.agents/scripts/lib/orchestration/context-envelope.js +2 -5
  117. package/.agents/scripts/lib/orchestration/deliver-recover.js +328 -0
  118. package/.agents/scripts/lib/orchestration/detectors-phase.js +12 -6
  119. package/.agents/scripts/lib/orchestration/docs-digest.js +8 -8
  120. package/.agents/scripts/lib/orchestration/file-assumptions.js +7 -13
  121. package/.agents/scripts/lib/orchestration/git-cleanup/phases/cli.js +1 -1
  122. package/.agents/scripts/lib/orchestration/git-cleanup/phases/fast-forward.js +34 -0
  123. package/.agents/scripts/lib/orchestration/lease-guard-shared.js +3 -2
  124. package/.agents/scripts/lib/orchestration/lifecycle/emit-ledger-event.js +142 -0
  125. package/.agents/scripts/lib/orchestration/lifecycle/emit-loop-tick.js +17 -19
  126. package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-flip-failed.js +86 -0
  127. package/.agents/scripts/lib/orchestration/lifecycle/emit-merge-unlanded.js +37 -103
  128. package/.agents/scripts/lib/orchestration/lifecycle/ledger-writer.js +6 -3
  129. package/.agents/scripts/lib/orchestration/lifecycle/listeners/README.md +21 -43
  130. package/.agents/scripts/lib/orchestration/lifecycle/listeners/watcher.js +50 -85
  131. package/.agents/scripts/lib/orchestration/lifecycle/trace-logger.js +3 -14
  132. package/.agents/scripts/lib/orchestration/lint-baseline-service.js +4 -4
  133. package/.agents/scripts/lib/orchestration/merge-block-class.js +77 -21
  134. package/.agents/scripts/lib/orchestration/merge-poll.js +104 -0
  135. package/.agents/scripts/lib/orchestration/phase-runner.js +3 -2
  136. package/.agents/scripts/lib/orchestration/plan-context.js +354 -282
  137. package/.agents/scripts/lib/orchestration/plan-critic-conditions.js +11 -22
  138. package/.agents/scripts/lib/orchestration/plan-critics-evaluate.js +4 -8
  139. package/.agents/scripts/lib/orchestration/plan-metrics.js +38 -6
  140. package/.agents/scripts/lib/orchestration/plan-navigation.js +92 -0
  141. package/.agents/scripts/lib/orchestration/plan-persist/fan-out-gate.js +71 -0
  142. package/.agents/scripts/lib/orchestration/plan-persist/persist-helpers.js +245 -0
  143. package/.agents/scripts/lib/orchestration/plan-persist/plan-context-source.js +116 -0
  144. package/.agents/scripts/lib/orchestration/plan-persist/run-plan-persist.js +432 -858
  145. package/.agents/scripts/lib/orchestration/plan-persist/story-ops.js +778 -0
  146. package/.agents/scripts/lib/orchestration/plan-persist/summary.js +47 -115
  147. package/.agents/scripts/lib/orchestration/plan-persist/supersede-ops.js +509 -0
  148. package/.agents/scripts/lib/orchestration/plan-reachability.js +9 -14
  149. package/.agents/scripts/lib/orchestration/plan-runner/worktree-sweep.js +1 -1
  150. package/.agents/scripts/lib/orchestration/{epic-plan-spec/phases → planning}/authoring-context.js +52 -51
  151. package/.agents/scripts/lib/orchestration/planning/decomposer-context.js +27 -0
  152. package/.agents/scripts/lib/orchestration/{epic-plan-spec/phases → planning}/spec-authoring-grounding.js +1 -1
  153. package/.agents/scripts/lib/orchestration/pr-base-guard.js +18 -28
  154. package/.agents/scripts/lib/orchestration/remote-verifier.js +1 -1
  155. package/.agents/scripts/lib/orchestration/resolve-stories.js +344 -0
  156. package/.agents/scripts/lib/orchestration/resolves-token.js +1 -1
  157. package/.agents/scripts/lib/orchestration/retro-proposals.js +140 -79
  158. package/.agents/scripts/lib/orchestration/review-depth.js +126 -47
  159. package/.agents/scripts/lib/orchestration/review-providers/codex.js +2 -2
  160. package/.agents/scripts/lib/orchestration/review-providers/findings-renderer.js +3 -13
  161. package/.agents/scripts/lib/orchestration/review-providers/native.js +1 -154
  162. package/.agents/scripts/lib/orchestration/review-providers/review-depth.js +3 -2
  163. package/.agents/scripts/lib/orchestration/review-providers/review-provider-factory.js +21 -56
  164. package/.agents/scripts/lib/orchestration/review-providers/security-review.js +1 -1
  165. package/.agents/scripts/lib/orchestration/review-providers/types.js +5 -4
  166. package/.agents/scripts/lib/orchestration/review-providers/ultrareview.js +1 -1
  167. package/.agents/scripts/lib/orchestration/run-epilogue.js +784 -0
  168. package/.agents/scripts/lib/orchestration/single-story-close/phases/auto-merge.js +25 -1
  169. package/.agents/scripts/lib/orchestration/single-story-close/phases/base-sync.js +11 -9
  170. package/.agents/scripts/lib/orchestration/single-story-close/phases/close-validation.js +4 -4
  171. package/.agents/scripts/lib/orchestration/single-story-close/phases/code-review.js +86 -41
  172. package/.agents/scripts/lib/orchestration/single-story-close/phases/confirm-merge.js +608 -152
  173. package/.agents/scripts/lib/orchestration/single-story-close/phases/options.js +77 -32
  174. package/.agents/scripts/lib/orchestration/single-story-close/phases/post-land.js +305 -0
  175. package/.agents/scripts/lib/orchestration/single-story-close/phases/pull-request.js +1 -1
  176. package/.agents/scripts/lib/orchestration/single-story-close/phases/review-block.js +44 -0
  177. package/.agents/scripts/lib/orchestration/single-story-close/phases/worktree-reap.js +37 -4
  178. package/.agents/scripts/lib/orchestration/single-story-close/phases/wrong-tree-guard.js +2 -2
  179. package/.agents/scripts/lib/orchestration/single-story-close/runner.js +275 -46
  180. package/.agents/scripts/lib/orchestration/single-story-lease-guard.js +1 -1
  181. package/.agents/scripts/lib/orchestration/spec-freshness.js +14 -205
  182. package/.agents/scripts/lib/orchestration/spec-section-validator.js +4 -5
  183. package/.agents/scripts/lib/orchestration/spec-spill.js +60 -0
  184. package/.agents/scripts/lib/orchestration/split-policy-validator.js +188 -0
  185. package/.agents/scripts/lib/orchestration/story-close/emit-blocked.js +49 -0
  186. package/.agents/scripts/lib/orchestration/story-close/format-autofix.js +10 -10
  187. package/.agents/scripts/lib/orchestration/story-close/phases/code-review.js +28 -42
  188. package/.agents/scripts/lib/orchestration/story-deliver-terminal.js +360 -0
  189. package/.agents/scripts/lib/orchestration/story-follow-ups.js +298 -0
  190. package/.agents/scripts/lib/orchestration/story-init-remote.js +51 -0
  191. package/.agents/scripts/lib/orchestration/story-plan-state.js +33 -0
  192. package/.agents/scripts/lib/orchestration/structured-comment-parser.js +1 -1
  193. package/.agents/scripts/lib/orchestration/task-body-validator.js +60 -25
  194. package/.agents/scripts/lib/orchestration/ticket-lease.js +27 -74
  195. package/.agents/scripts/lib/orchestration/ticket-validator-conflicts.js +130 -75
  196. package/.agents/scripts/lib/orchestration/ticket-validator-sizing.js +192 -377
  197. package/.agents/scripts/lib/orchestration/ticket-validator.js +123 -25
  198. package/.agents/scripts/lib/orchestration/ticketing/bulk.js +14 -72
  199. package/.agents/scripts/lib/orchestration/ticketing/reads.js +45 -55
  200. package/.agents/scripts/lib/orchestration/ticketing/transition.js +66 -6
  201. package/.agents/scripts/lib/orchestration/ticketing.js +0 -1
  202. package/.agents/scripts/lib/plan-phase-cleanup.js +12 -14
  203. package/.agents/scripts/lib/planning-corpus.js +12 -281
  204. package/.agents/scripts/lib/preflight-runner.js +4 -4
  205. package/.agents/scripts/lib/qa/coverage-verdict.js +5 -5
  206. package/.agents/scripts/lib/qa/qa-context-hydrator.js +5 -5
  207. package/.agents/scripts/lib/signals/index.js +4 -17
  208. package/.agents/scripts/lib/signals/read.js +35 -35
  209. package/.agents/scripts/lib/signals/schema.js +8 -11
  210. package/.agents/scripts/lib/signals/span-tree.js +7 -7
  211. package/.agents/scripts/lib/signals/write.js +0 -1
  212. package/.agents/scripts/lib/single-story/story-merged-notify.js +13 -2
  213. package/.agents/scripts/lib/single-story-sweep/protection-ctx.js +1 -1
  214. package/.agents/scripts/lib/skills/parse-skill.js +16 -3
  215. package/.agents/scripts/lib/story-adjacency.js +17 -19
  216. package/.agents/scripts/lib/story-body/story-body.js +130 -75
  217. package/.agents/scripts/lib/story-plan.js +2 -4
  218. package/.agents/scripts/lib/templates/decomposer-prompts.js +51 -46
  219. package/.agents/scripts/lib/templates/spec-author-prompts.js +47 -45
  220. package/.agents/scripts/lib/test-env.js +14 -1
  221. package/.agents/scripts/lib/test-tiers.js +0 -3
  222. package/.agents/scripts/lib/{epic-body-sections.js → ticket-body-sections.js} +25 -39
  223. package/.agents/scripts/lib/validation-evidence.js +32 -60
  224. package/.agents/scripts/lib/wave-runner/ready-set.js +38 -12
  225. package/.agents/scripts/lib/workspace-provisioner.js +1 -1
  226. package/.agents/scripts/lib/worktree/lifecycle/pending-cleanup.js +1 -1
  227. package/.agents/scripts/lib/worktree/lifecycle/reap.js +72 -25
  228. package/.agents/scripts/lib/worktree/lifecycle-manager.js +1 -2
  229. package/.agents/scripts/lint-issue-body.js +71 -40
  230. package/.agents/scripts/mandrel-update-preflight.js +1 -1
  231. package/.agents/scripts/notify.js +4 -3
  232. package/.agents/scripts/plan-context.js +102 -80
  233. package/.agents/scripts/plan-persist.js +230 -279
  234. package/.agents/scripts/plan-run-epilogue.js +142 -0
  235. package/.agents/scripts/post-structured-comment.js +0 -38
  236. package/.agents/scripts/pr-watch-with-update.js +43 -22
  237. package/.agents/scripts/providers/github/compose.js +0 -1
  238. package/.agents/scripts/providers/github/errors.js +0 -19
  239. package/.agents/scripts/providers/github/issues.js +13 -39
  240. package/.agents/scripts/providers/github/mappers.js +5 -12
  241. package/.agents/scripts/providers/github/sub-issues.js +0 -47
  242. package/.agents/scripts/providers/github/tickets.js +33 -156
  243. package/.agents/scripts/providers/github.js +17 -6
  244. package/.agents/scripts/resolve-stories.js +236 -0
  245. package/.agents/scripts/run-coverage.js +4 -1
  246. package/.agents/scripts/run-lint.js +2 -2
  247. package/.agents/scripts/run-verify.js +31 -2
  248. package/.agents/scripts/signals-view.js +25 -21
  249. package/.agents/scripts/single-story-close.js +178 -26
  250. package/.agents/scripts/single-story-confirm-merge.js +313 -24
  251. package/.agents/scripts/single-story-init.js +35 -30
  252. package/.agents/scripts/stories-wave-tick.js +85 -10
  253. package/.agents/scripts/story-plan.js +28 -49
  254. package/.agents/scripts/update-ticket-state.js +14 -65
  255. package/.agents/skills/core/code-review-and-quality/SKILL.md +28 -450
  256. package/.agents/skills/core/code-review-and-quality/reference.md +458 -0
  257. package/.agents/skills/core/debugging-and-error-recovery/SKILL.md +22 -315
  258. package/.agents/skills/core/debugging-and-error-recovery/reference.md +323 -0
  259. package/.agents/skills/core/diagnose-friction/SKILL.md +14 -18
  260. package/.agents/skills/core/documentation-and-adrs/SKILL.md +25 -397
  261. package/.agents/skills/core/documentation-and-adrs/reference.md +403 -0
  262. package/.agents/skills/core/gates-and-baselines/SKILL.md +12 -12
  263. package/.agents/skills/core/idea-refinement/SKILL.md +9 -9
  264. package/.agents/skills/core/scope-triage/SKILL.md +31 -172
  265. package/.agents/skills/core/security-and-hardening/SKILL.md +22 -367
  266. package/.agents/skills/core/security-and-hardening/reference.md +375 -0
  267. package/.agents/skills/skills.index.json +3 -53
  268. package/.agents/skills/stack/qa/playwright-bdd/SKILL.md +2 -4
  269. package/.agents/skills/stack/qa/qa-explore-driving/SKILL.md +1 -1
  270. package/.agents/skills/stack/qa/qa-harness/SKILL.md +1 -3
  271. package/.agents/starter-agentrc.json +0 -5
  272. package/.agents/templates/agent-protocol.md +9 -10
  273. package/.agents/workflows/audit-architecture.md +6 -7
  274. package/.agents/workflows/audit-clean-code.md +7 -7
  275. package/.agents/workflows/audit-dependencies.md +3 -3
  276. package/.agents/workflows/audit-devops.md +3 -3
  277. package/.agents/workflows/audit-documentation.md +9 -10
  278. package/.agents/workflows/audit-lighthouse.md +11 -3
  279. package/.agents/workflows/audit-navigability.md +13 -2
  280. package/.agents/workflows/audit-performance.md +5 -6
  281. package/.agents/workflows/audit-privacy.md +3 -3
  282. package/.agents/workflows/audit-quality.md +11 -12
  283. package/.agents/workflows/audit-security.md +4 -5
  284. package/.agents/workflows/audit-seo.md +13 -3
  285. package/.agents/workflows/audit-sre.md +3 -3
  286. package/.agents/workflows/audit-to-stories.md +20 -20
  287. package/.agents/workflows/audit-ux-ui.md +10 -3
  288. package/.agents/workflows/deliver.md +177 -176
  289. package/.agents/workflows/git-cleanup.md +5 -6
  290. package/.agents/workflows/git-deliver.md +1 -1
  291. package/.agents/workflows/helpers/_merge-conflict-template.md +1 -1
  292. package/.agents/workflows/helpers/acceptance-self-eval.md +35 -40
  293. package/.agents/workflows/helpers/code-quality-guardrails.md +7 -7
  294. package/.agents/workflows/helpers/code-review.md +75 -196
  295. package/.agents/workflows/helpers/{single-story-deliver-reference.md → deliver-story-reference.md} +83 -44
  296. package/.agents/workflows/helpers/deliver-story.md +606 -0
  297. package/.agents/workflows/helpers/diagnose.md +10 -10
  298. package/.agents/workflows/helpers/parallel-tooling.md +3 -3
  299. package/.agents/workflows/helpers/signals.md +16 -16
  300. package/.agents/workflows/helpers/worktree-lifecycle.md +66 -86
  301. package/.agents/workflows/mandrel-update.md +2 -1
  302. package/.agents/workflows/plan.md +277 -145
  303. package/.agents/workflows/qa-assist.md +27 -33
  304. package/.agents/workflows/qa-explore.md +29 -38
  305. package/.agents/workflows/qa-run.md +2 -6
  306. package/README.md +9 -8
  307. package/bin/mandrel.js +12 -1
  308. package/docs/CHANGELOG.md +70 -0
  309. package/lib/cli/registry.js +262 -19
  310. package/lib/cli/sync-agents.js +157 -0
  311. package/lib/cli/sync-commands.js +115 -6
  312. package/lib/cli/sync.js +168 -6
  313. package/lib/cli/update.js +105 -8
  314. package/lib/cli/version-helpers.js +131 -0
  315. package/lib/migrations/README.md +7 -5
  316. package/lib/migrations/index.js +12 -8
  317. package/lib/migrations/steps/2.1.0-retire-mi-drop-knobs.js +100 -0
  318. package/lib/migrations/steps/2.1.0-retire-verify-concurrency-cap.js +101 -0
  319. package/package.json +2 -2
  320. package/.agents/agents/retro.md +0 -42
  321. package/.agents/personas/architect.md +0 -113
  322. package/.agents/personas/devops-engineer.md +0 -38
  323. package/.agents/personas/engineer.md +0 -33
  324. package/.agents/personas/project-manager.md +0 -114
  325. package/.agents/personas/qa-engineer.md +0 -95
  326. package/.agents/personas/security-engineer.md +0 -111
  327. package/.agents/personas/technical-writer.md +0 -101
  328. package/.agents/schemas/dispatch-manifest.json +0 -232
  329. package/.agents/schemas/epic-perf-report.schema.json +0 -89
  330. package/.agents/schemas/epic-spec.schema.json +0 -153
  331. package/.agents/schemas/lifecycle/acceptance.reconcile.failed.schema.json +0 -13
  332. package/.agents/schemas/lifecycle/acceptance.reconcile.ok.schema.json +0 -13
  333. package/.agents/schemas/lifecycle/acceptance.reconcile.skipped.schema.json +0 -13
  334. package/.agents/schemas/lifecycle/acceptance.reconcile.start.schema.json +0 -12
  335. package/.agents/schemas/lifecycle/acceptance.reconcile.waived.schema.json +0 -13
  336. package/.agents/schemas/lifecycle/epic.automerge.end.schema.json +0 -15
  337. package/.agents/schemas/lifecycle/epic.automerge.start.schema.json +0 -13
  338. package/.agents/schemas/lifecycle/epic.blocked.schema.json +0 -13
  339. package/.agents/schemas/lifecycle/epic.cleanup.end.schema.json +0 -12
  340. package/.agents/schemas/lifecycle/epic.cleanup.start.schema.json +0 -12
  341. package/.agents/schemas/lifecycle/epic.close.end.schema.json +0 -12
  342. package/.agents/schemas/lifecycle/epic.complete.schema.json +0 -13
  343. package/.agents/schemas/lifecycle/epic.finalize.end.schema.json +0 -13
  344. package/.agents/schemas/lifecycle/epic.finalize.start.schema.json +0 -12
  345. package/.agents/schemas/lifecycle/epic.merge.armed.schema.json +0 -13
  346. package/.agents/schemas/lifecycle/epic.merge.blocked.schema.json +0 -14
  347. package/.agents/schemas/lifecycle/epic.merge.confirmed.schema.json +0 -17
  348. package/.agents/schemas/lifecycle/epic.merge.ready.schema.json +0 -15
  349. package/.agents/schemas/lifecycle/epic.plan.end.schema.json +0 -18
  350. package/.agents/schemas/lifecycle/epic.plan.start.schema.json +0 -12
  351. package/.agents/schemas/lifecycle/epic.snapshot.end.schema.json +0 -16
  352. package/.agents/schemas/lifecycle/epic.snapshot.start.schema.json +0 -12
  353. package/.agents/schemas/lifecycle/epic.watch.end.schema.json +0 -29
  354. package/.agents/schemas/lifecycle/epic.watch.start.schema.json +0 -16
  355. package/.agents/schemas/lifecycle/slice.end.schema.json +0 -21
  356. package/.agents/schemas/lifecycle/slice.heartbeat.schema.json +0 -20
  357. package/.agents/schemas/lifecycle/slice.start.schema.json +0 -17
  358. package/.agents/schemas/lifecycle/story.heartbeat.schema.json +0 -20
  359. package/.agents/schemas/risk-verdict.schema.json +0 -66
  360. package/.agents/schemas/story-perf-summary.schema.json +0 -73
  361. package/.agents/scripts/acceptance-spec-reconciler.js +0 -642
  362. package/.agents/scripts/analyze-execution.js +0 -444
  363. package/.agents/scripts/bookkeeping-reconcile.js +0 -117
  364. package/.agents/scripts/check-prepush-recovery.js +0 -90
  365. package/.agents/scripts/dispatcher.js +0 -295
  366. package/.agents/scripts/epic-audit-prepare.js +0 -497
  367. package/.agents/scripts/epic-audit-recheck.js +0 -274
  368. package/.agents/scripts/epic-deliver-note-intervention.js +0 -192
  369. package/.agents/scripts/epic-deliver-preflight.js +0 -462
  370. package/.agents/scripts/epic-deliver-prepare.js +0 -852
  371. package/.agents/scripts/epic-execute-record-wave.js +0 -449
  372. package/.agents/scripts/epic-plan-clarity.js +0 -211
  373. package/.agents/scripts/epic-plan-healthcheck.js +0 -581
  374. package/.agents/scripts/epic-reconcile.js +0 -625
  375. package/.agents/scripts/lib/baseline-snapshot.js +0 -979
  376. package/.agents/scripts/lib/checks/epic-merge-lock-stale.js +0 -54
  377. package/.agents/scripts/lib/checks/stale-origin-epic.js +0 -49
  378. package/.agents/scripts/lib/config/lifecycle.js +0 -40
  379. package/.agents/scripts/lib/config/preflight.js +0 -58
  380. package/.agents/scripts/lib/config/retro.js +0 -77
  381. package/.agents/scripts/lib/epic-merge-lock.js +0 -322
  382. package/.agents/scripts/lib/epic-plan-clarity.js +0 -181
  383. package/.agents/scripts/lib/epic-plan-ideation.js +0 -261
  384. package/.agents/scripts/lib/git-merge-orchestrator.js +0 -261
  385. package/.agents/scripts/lib/observability/baseline-refresh-rate.js +0 -221
  386. package/.agents/scripts/lib/observability/hook-heartbeat.js +0 -219
  387. package/.agents/scripts/lib/observability/perf-aggregator.js +0 -813
  388. package/.agents/scripts/lib/observability/perf-report-readers.js +0 -328
  389. package/.agents/scripts/lib/observability/perf-report-render.js +0 -182
  390. package/.agents/scripts/lib/orchestration/bookkeeping-outbox.js +0 -270
  391. package/.agents/scripts/lib/orchestration/context-hydration-engine.js +0 -539
  392. package/.agents/scripts/lib/orchestration/deliver-route.js +0 -173
  393. package/.agents/scripts/lib/orchestration/dispatch-engine.js +0 -134
  394. package/.agents/scripts/lib/orchestration/dispatch-pipeline.js +0 -183
  395. package/.agents/scripts/lib/orchestration/epic-cleanup.js +0 -801
  396. package/.agents/scripts/lib/orchestration/epic-deliver-lease-guard.js +0 -310
  397. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/context.js +0 -163
  398. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/creation.js +0 -140
  399. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/dag.js +0 -64
  400. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/diagnostics.js +0 -72
  401. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist-helpers.js +0 -156
  402. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/persist.js +0 -345
  403. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/planning-artifacts.js +0 -41
  404. package/.agents/scripts/lib/orchestration/epic-plan-decompose/phases/reconcile-spawn.js +0 -86
  405. package/.agents/scripts/lib/orchestration/epic-plan-lease-guard.js +0 -391
  406. package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/drain.js +0 -94
  407. package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/plan-epic.js +0 -236
  408. package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/risk-verdict.js +0 -105
  409. package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/run-spec-phase.js +0 -307
  410. package/.agents/scripts/lib/orchestration/epic-plan-spec/phases/spec-freshness.js +0 -117
  411. package/.agents/scripts/lib/orchestration/epic-plan-state-store.js +0 -117
  412. package/.agents/scripts/lib/orchestration/epic-run-state-store.js +0 -621
  413. package/.agents/scripts/lib/orchestration/epic-runner/concurrency-gate.js +0 -186
  414. package/.agents/scripts/lib/orchestration/epic-runner/deliver-phases.js +0 -50
  415. package/.agents/scripts/lib/orchestration/epic-runner/phases/build-wave-dag.js +0 -129
  416. package/.agents/scripts/lib/orchestration/epic-runner/phases/snapshot.js +0 -103
  417. package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/composition.js +0 -267
  418. package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/signals.js +0 -210
  419. package/.agents/scripts/lib/orchestration/epic-runner/progress-reporter/transport.js +0 -238
  420. package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/_bullet-format.js +0 -32
  421. package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/component-drift.js +0 -203
  422. package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/crap-drift.js +0 -227
  423. package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/maintainability-drift.js +0 -117
  424. package/.agents/scripts/lib/orchestration/epic-runner/progress-signals/stalled-worktree.js +0 -37
  425. package/.agents/scripts/lib/orchestration/epic-runner/story-launcher.js +0 -127
  426. package/.agents/scripts/lib/orchestration/epic-runner/story-run-progress-writer.js +0 -400
  427. package/.agents/scripts/lib/orchestration/epic-runner/sub-agent-return.js +0 -276
  428. package/.agents/scripts/lib/orchestration/epic-runner/wave-scheduler.js +0 -66
  429. package/.agents/scripts/lib/orchestration/epic-spec-reconciler-apply.js +0 -789
  430. package/.agents/scripts/lib/orchestration/epic-spec-reconciler-diff.js +0 -676
  431. package/.agents/scripts/lib/orchestration/epic-spec-reconciler-discriminator.js +0 -389
  432. package/.agents/scripts/lib/orchestration/epic-spec-reconciler-format.js +0 -230
  433. package/.agents/scripts/lib/orchestration/epic-spec-reconciler-ops.js +0 -361
  434. package/.agents/scripts/lib/orchestration/error-journal.js +0 -139
  435. package/.agents/scripts/lib/orchestration/finalize/open-or-locate-pr.js +0 -306
  436. package/.agents/scripts/lib/orchestration/finalize/post-handoff-comment.js +0 -489
  437. package/.agents/scripts/lib/orchestration/finalize/sanitize-skip-ci.js +0 -88
  438. package/.agents/scripts/lib/orchestration/lifecycle/emit-slice-lifecycle.js +0 -270
  439. package/.agents/scripts/lib/orchestration/lifecycle/emit-story-dispatch-end.js +0 -147
  440. package/.agents/scripts/lib/orchestration/lifecycle/emit-story-heartbeat.js +0 -155
  441. package/.agents/scripts/lib/orchestration/lifecycle/ledger-diff.js +0 -140
  442. package/.agents/scripts/lib/orchestration/lifecycle/listeners/acceptance-reconciler.js +0 -465
  443. package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-armer.js +0 -501
  444. package/.agents/scripts/lib/orchestration/lifecycle/listeners/automerge-predicate.js +0 -984
  445. package/.agents/scripts/lib/orchestration/lifecycle/listeners/branch-cleaner.js +0 -264
  446. package/.agents/scripts/lib/orchestration/lifecycle/listeners/checkpoint-pointer-writer.js +0 -284
  447. package/.agents/scripts/lib/orchestration/lifecycle/listeners/cleaner.js +0 -355
  448. package/.agents/scripts/lib/orchestration/lifecycle/listeners/finalizer.js +0 -673
  449. package/.agents/scripts/lib/orchestration/lifecycle/listeners/index.js +0 -378
  450. package/.agents/scripts/lib/orchestration/lifecycle/listeners/intervention-recorder.js +0 -140
  451. package/.agents/scripts/lib/orchestration/lifecycle/listeners/label-transitioner.js +0 -144
  452. package/.agents/scripts/lib/orchestration/lifecycle/listeners/merge-watcher.js +0 -665
  453. package/.agents/scripts/lib/orchestration/lifecycle/listeners/notify-dispatcher.js +0 -174
  454. package/.agents/scripts/lib/orchestration/manifest-builder.js +0 -222
  455. package/.agents/scripts/lib/orchestration/plan-persist/amend.js +0 -359
  456. package/.agents/scripts/lib/orchestration/plan-persist/delivery-mode.js +0 -127
  457. package/.agents/scripts/lib/orchestration/plan-review-routing.js +0 -63
  458. package/.agents/scripts/lib/orchestration/planning-context-budget.js +0 -213
  459. package/.agents/scripts/lib/orchestration/planning-risk.js +0 -194
  460. package/.agents/scripts/lib/orchestration/post-merge/phases/branch-cleanup.js +0 -56
  461. package/.agents/scripts/lib/orchestration/post-merge/phases/dashboard-refresh.js +0 -33
  462. package/.agents/scripts/lib/orchestration/post-merge/phases/notification.js +0 -78
  463. package/.agents/scripts/lib/orchestration/post-merge/phases/temp-cleanup.js +0 -68
  464. package/.agents/scripts/lib/orchestration/post-merge/phases/ticket-closure.js +0 -118
  465. package/.agents/scripts/lib/orchestration/post-merge/phases/worktree-reap.js +0 -396
  466. package/.agents/scripts/lib/orchestration/post-merge-pipeline.js +0 -205
  467. package/.agents/scripts/lib/orchestration/preflight-cache.js +0 -187
  468. package/.agents/scripts/lib/orchestration/recurring-failure-detector.js +0 -152
  469. package/.agents/scripts/lib/orchestration/retro/phases/checks.js +0 -94
  470. package/.agents/scripts/lib/orchestration/retro/phases/compose-body.js +0 -571
  471. package/.agents/scripts/lib/orchestration/retro/phases/gather-signals.js +0 -450
  472. package/.agents/scripts/lib/orchestration/retro/phases/post-and-mirror.js +0 -191
  473. package/.agents/scripts/lib/orchestration/retro-heuristics.js +0 -57
  474. package/.agents/scripts/lib/orchestration/retro-perf-heuristics.js +0 -275
  475. package/.agents/scripts/lib/orchestration/retro-runner.js +0 -197
  476. package/.agents/scripts/lib/orchestration/spec-renderer.js +0 -447
  477. package/.agents/scripts/lib/orchestration/story-close/auto-refresh-runner.js +0 -747
  478. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/gate-failure.js +0 -211
  479. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/pre-merge-attribution.js +0 -158
  480. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/refresh-commit.js +0 -446
  481. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/regression-projection.js +0 -297
  482. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution/phases/scope-discovery.js +0 -48
  483. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution-wiring.js +0 -67
  484. package/.agents/scripts/lib/orchestration/story-close/baseline-attribution.js +0 -161
  485. package/.agents/scripts/lib/orchestration/story-close/baseline-friction-body.js +0 -117
  486. package/.agents/scripts/lib/orchestration/story-close/cd-out-guard.js +0 -86
  487. package/.agents/scripts/lib/orchestration/story-close/cleanup-reconciler.js +0 -147
  488. package/.agents/scripts/lib/orchestration/story-close/close-inputs.js +0 -142
  489. package/.agents/scripts/lib/orchestration/story-close/comment-bodies.js +0 -62
  490. package/.agents/scripts/lib/orchestration/story-close/merge-runner.js +0 -658
  491. package/.agents/scripts/lib/orchestration/story-close/merge-subject.js +0 -198
  492. package/.agents/scripts/lib/orchestration/story-close/phases/branch-restore.js +0 -105
  493. package/.agents/scripts/lib/orchestration/story-close/phases/close.js +0 -222
  494. package/.agents/scripts/lib/orchestration/story-close/phases/gates.js +0 -292
  495. package/.agents/scripts/lib/orchestration/story-close/phases/locked-pipeline.js +0 -270
  496. package/.agents/scripts/lib/orchestration/story-close/phases/preflight.js +0 -110
  497. package/.agents/scripts/lib/orchestration/story-close/phases/refresh.js +0 -86
  498. package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked-emitter.js +0 -112
  499. package/.agents/scripts/lib/orchestration/story-close/phases/timeout-blocked.js +0 -157
  500. package/.agents/scripts/lib/orchestration/story-close/post-merge-close.js +0 -421
  501. package/.agents/scripts/lib/orchestration/story-close/pre-merge-validation.js +0 -302
  502. package/.agents/scripts/lib/orchestration/story-close/shared-checkout-guard.js +0 -163
  503. package/.agents/scripts/lib/orchestration/story-close-recovery.js +0 -690
  504. package/.agents/scripts/lib/orchestration/wave-marker.js +0 -28
  505. package/.agents/scripts/lib/orchestration/wave-record-io.js +0 -218
  506. package/.agents/scripts/lib/orchestration/wave-record-notifications.js +0 -145
  507. package/.agents/scripts/lib/orchestration/wave-record-projection.js +0 -212
  508. package/.agents/scripts/lib/presentation/dispatch-manifest-render.js +0 -111
  509. package/.agents/scripts/lib/presentation/manifest-builder.js +0 -239
  510. package/.agents/scripts/lib/presentation/manifest-formatter.js +0 -242
  511. package/.agents/scripts/lib/presentation/manifest-helpers.js +0 -213
  512. package/.agents/scripts/lib/presentation/manifest-persistence.js +0 -261
  513. package/.agents/scripts/lib/presentation/manifest-procedures.js +0 -55
  514. package/.agents/scripts/lib/presentation/manifest-render-waves.js +0 -306
  515. package/.agents/scripts/lib/presentation/manifest-renderer.js +0 -188
  516. package/.agents/scripts/lib/presentation/manifest-story-views.js +0 -110
  517. package/.agents/scripts/lib/push-epic-retry.js +0 -209
  518. package/.agents/scripts/lib/spec/index.js +0 -36
  519. package/.agents/scripts/lib/spec/loader.js +0 -425
  520. package/.agents/scripts/lib/spec/state.js +0 -208
  521. package/.agents/scripts/lib/story-init/blocker-validator.js +0 -68
  522. package/.agents/scripts/lib/story-init/branch-initializer.js +0 -408
  523. package/.agents/scripts/lib/story-init/context-resolver.js +0 -92
  524. package/.agents/scripts/lib/story-init/donor-precheck.js +0 -207
  525. package/.agents/scripts/lib/story-init/state-transitioner.js +0 -80
  526. package/.agents/scripts/lib/story-init/task-graph-builder.js +0 -124
  527. package/.agents/scripts/lib/story-init/transition-summary.js +0 -34
  528. package/.agents/scripts/lib/test-reserved-epic-temp-ids.js +0 -35
  529. package/.agents/scripts/lib/wave-runner/tick.js +0 -754
  530. package/.agents/scripts/lib/wave-runner/wave-runner-error.js +0 -20
  531. package/.agents/scripts/lifecycle-emit-story-dispatch.js +0 -194
  532. package/.agents/scripts/lifecycle-emit.js +0 -510
  533. package/.agents/scripts/retro-run.js +0 -218
  534. package/.agents/scripts/slice-phase.js +0 -361
  535. package/.agents/scripts/standalone-feedback-rollup.js +0 -188
  536. package/.agents/scripts/story-close.js +0 -294
  537. package/.agents/scripts/story-init.js +0 -599
  538. package/.agents/scripts/story-phase.js +0 -369
  539. package/.agents/scripts/wave-tick.js +0 -464
  540. package/.agents/skills/core/analyze-execution/SKILL.md +0 -98
  541. package/.agents/skills/core/epic-plan-consolidate/SKILL.md +0 -172
  542. package/.agents/skills/core/epic-plan-consolidate/examples.md +0 -51
  543. package/.agents/skills/core/epic-plan-decompose-author/SKILL.md +0 -441
  544. package/.agents/skills/core/epic-plan-decompose-author/examples.md +0 -47
  545. package/.agents/skills/core/epic-plan-premortem/SKILL.md +0 -146
  546. package/.agents/skills/core/epic-plan-premortem/examples.md +0 -53
  547. package/.agents/skills/core/epic-plan-spec-author/SKILL.md +0 -383
  548. package/.agents/skills/core/epic-plan-spec-author/examples.md +0 -91
  549. package/.agents/workflows/helpers/deliver-epic-reference.md +0 -547
  550. package/.agents/workflows/helpers/deliver-epic-single.md +0 -331
  551. package/.agents/workflows/helpers/deliver-epic.md +0 -998
  552. package/.agents/workflows/helpers/deliver-stories.md +0 -450
  553. package/.agents/workflows/helpers/epic-audit.md +0 -189
  554. package/.agents/workflows/helpers/epic-deliver-story.md +0 -436
  555. package/.agents/workflows/helpers/epic-testing.md +0 -125
  556. package/.agents/workflows/helpers/plan-epic-reference.md +0 -160
  557. package/.agents/workflows/helpers/plan-epic.md +0 -353
  558. package/.agents/workflows/helpers/plan-story.md +0 -251
  559. package/.agents/workflows/helpers/scope-triage-gate.md +0 -108
  560. package/.agents/workflows/helpers/single-story-deliver.md +0 -557
@@ -16,7 +16,7 @@ renamed, scripts move, described workflows change shape, and
16
16
  version/topology claims go stale. The deterministic gates
17
17
  (`check-doc-links.js`, `check-lifecycle-doc-drift.js`,
18
18
  `validate-docs-freshness.js`) catch broken links, drift against generators,
19
- and Epic-scoped freshness — they cannot tell whether the prose still
19
+ and per-delivery freshness — they cannot tell whether the prose still
20
20
  describes how the code actually behaves. That semantic verification is this
21
21
  lens's job.
22
22
 
@@ -47,10 +47,10 @@ generator", not "edit the doc". Auto-generated changelog files
47
47
  (`docs/CHANGELOG.md`, release-please-owned) are likewise excluded from
48
48
  semantic review beyond Step 1's deterministic checks.
49
49
 
50
- ## Scope (Epic mode)
50
+ ## Scope (Story / plan-run mode)
51
51
 
52
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
53
- following block is populated with the Epic's change-set file list.
52
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
53
+ following block is populated with the Story (or plan-run) change-set file list.
54
54
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
55
55
  renders the literal substitution token and you MUST treat it as **no
56
56
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -71,8 +71,7 @@ before this section existed.
71
71
  ## Execution strategy (dual-path)
72
72
 
73
73
  This lens runs along one of two execution paths. Both emit the **identical**
74
- report contract (Step 3); downstream consumers (`/deliver` Phase 4
75
- epic-audit, `audit-to-stories`) are agnostic to which path produced it.
74
+ report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
76
75
 
77
76
  - **Orchestrated (dynamic-workflow) path.** When Claude Code's
78
77
  [dynamic workflows](https://code.claude.com/docs/en/workflows) are
@@ -174,7 +173,7 @@ and check each one:
174
173
  renames).
175
174
  3. **Workflow & Contract Descriptions:** Described workflows, label
176
175
  taxonomies (`agent::*`, `type::*`, `meta::*`), branch shapes
177
- (`story-<id>`, `epic/<id>`), and artifact contracts match how the
176
+ (`story-<id>`), and artifact contracts match how the
178
177
  current scripts actually behave — read the implementation when the
179
178
  prose makes a behavioural claim.
180
179
  4. **Version & Topology Claims:** Version numbers, package names, release
@@ -279,8 +278,8 @@ match the code), the deterministic-gate verdicts, and primary drift themes.]
279
278
  ## Periodic full-scope sweep
280
279
 
281
280
  Context Economy findings accrete slowly — a doc that is lean today grows a
282
- bloated tail over many Epics, and no single change-set-scoped `/deliver`
283
- Phase 4 run sees the whole picture. Run this lens **full-scope** on a
281
+ bloated tail over many deliveries, and no single change-set-scoped `/deliver`
282
+ run sees the whole picture. Run this lens **full-scope** on a
284
283
  recurring cadence so the drift is caught before it compounds:
285
284
 
286
285
  - **Scheduled invocation** — `/schedule` running `/audit-documentation`
@@ -293,7 +292,7 @@ recurring cadence so the drift is caught before it compounds:
293
292
  Route the resulting `audit-documentation-results.md` through
294
293
  [`/audit-to-stories`](audit-to-stories.md), which groups the findings,
295
294
  deduplicates them against existing Issues by fingerprint, and opens
296
- remediation Stories (or chains into `/plan --idea`) so the Context-Economy
295
+ remediation Stories (or chains into `/plan --seed`) so the Context-Economy
297
296
  findings land as actionable, tracked work rather than a report nobody reads.
298
297
 
299
298
  ## Constraint
@@ -5,6 +5,14 @@ command: false
5
5
 
6
6
  # Lighthouse Audit & Analysis
7
7
 
8
+ ## Applicability
9
+
10
+ **Web targets only.** Registered with `target: "web"` in
11
+ [`audit-rules.json`](../schemas/audit-rules.json): the selector skips this lens
12
+ on a project with no web surface, since there is no page to launch Lighthouse
13
+ against. See the `target` key's schema description for how applicability is
14
+ probed from the consumer's checkout.
15
+
8
16
  ## Role
9
17
 
10
18
  Senior Web Performance & Quality Engineer. You operate Lighthouse end-to-end:
@@ -30,10 +38,10 @@ inflate Performance scores misleadingly.
30
38
  (check `viewport` meta, responsive CSS, or operator instruction), run
31
39
  **Mobile** instead and note the choice in the report.
32
40
 
33
- ## Scope (Epic mode)
41
+ ## Scope (Story / plan-run mode)
34
42
 
35
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
36
- following block is populated with the Epic's change-set file list.
43
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
44
+ following block is populated with the Story (or plan-run) change-set file list.
37
45
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
38
46
  renders the literal substitution token and you MUST treat it as **no
39
47
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -8,6 +8,16 @@ description: >-
8
8
 
9
9
  # Navigability Audit
10
10
 
11
+ ## Applicability
12
+
13
+ **Web targets only.** Registered with `target: "web"` in
14
+ [`audit-rules.json`](../schemas/audit-rules.json). This is consistent with the
15
+ lens's own no-op contract below rather than an additional constraint: the
16
+ web-surface probe's first signal _is_ configured `routeGlobs`, so a consumer
17
+ that has configured this lens's route-tree SSOT always clears the gate. The
18
+ gate only bites where the lens had no route data to read anyway — it converts a
19
+ silent no-op run into no run at all.
20
+
11
21
  ## Role
12
22
 
13
23
  Information-Architecture Reviewer & Frontend Navigation Auditor
@@ -61,8 +71,9 @@ Read the consumer's navigability config (resolved from `.agentrc.json`):
61
71
 
62
72
  - `delivery.quality.navigability.routeGlobs` — globs identifying the
63
73
  route-adding files / route tree (e.g. `pages/**`, `app/**/route.ts`). Drives
64
- both the route-tree enumeration here and the route-added routing in
65
- [`epic-audit-prepare.js`](../scripts/epic-audit-prepare.js).
74
+ both the route-tree enumeration here and the plan-persist draft
75
+ reachability gate
76
+ ([`plan-reachability.js`](../scripts/lib/orchestration/plan-reachability.js)).
66
77
  - `delivery.quality.navigability.navRegistry` — path(s) to the consumer's
67
78
  nav-registry SSOT this lens reads.
68
79
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Audit hot paths, algorithmic complexity, and I/O bottlenecks in the tooling surface (`epic-close`, dispatcher, gates); propose remediations.
2
+ description: Audit hot paths, algorithmic complexity, and I/O bottlenecks in the tooling surface (`single-story-close`, dispatcher, gates); propose remediations.
3
3
  ---
4
4
 
5
5
  # Performance & Bottleneck Audit
@@ -14,10 +14,10 @@ Analyze the application for performance regressions, bottlenecks, and efficiency
14
14
  gaps. Your goal is to identify why a system is slow or where it might fail under
15
15
  load.
16
16
 
17
- ## Scope (Epic mode)
17
+ ## Scope (Story / plan-run mode)
18
18
 
19
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
20
- following block is populated with the Epic's change-set file list.
19
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
20
+ following block is populated with the Story (or plan-run) change-set file list.
21
21
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
22
22
  renders the literal substitution token and you MUST treat it as **no
23
23
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -38,8 +38,7 @@ before this section existed.
38
38
  ## Execution strategy (dual-path)
39
39
 
40
40
  This lens runs along one of two execution paths. Both emit the **identical**
41
- report contract (Step 3); downstream consumers (`/deliver` Phase 4
42
- epic-audit, `audit-to-stories`) are agnostic to which path produced it.
41
+ report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
43
42
 
44
43
  - **Orchestrated (dynamic-workflow) path.** When Claude Code's
45
44
  [dynamic workflows](https://code.claude.com/docs/en/workflows) are
@@ -15,10 +15,10 @@ Personally Identifiable Information (PII) and ensure compliance with data
15
15
  protection standards (GDPR, CCPA). Your goal is to find accidental logging,
16
16
  insecure storage, or unnecessary collection of sensitive data.
17
17
 
18
- ## Scope (Epic mode)
18
+ ## Scope (Story / plan-run mode)
19
19
 
20
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
21
- following block is populated with the Epic's change-set file list.
20
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
21
+ following block is populated with the Story (or plan-run) change-set file list.
22
22
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
23
23
  renders the literal substitution token and you MUST treat it as **no
24
24
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -15,7 +15,7 @@ infrastructure, test coverage, and overall quality assurance practices. Your
15
15
  goal is to identify testing gaps, flaky tests, inefficient mocking strategies,
16
16
  and opportunities to improve test execution speed and reliability without making
17
17
  any immediate changes. Additionally, you must evaluate the implemented tests
18
- against the active Epic and the current codebase to ensure all quality
18
+ against the Story under audit and the current codebase to ensure all quality
19
19
  requirements are met and correctly documented.
20
20
 
21
21
  **Note on Testing Responsibilities**: When evaluating test maturity, note the
@@ -24,10 +24,10 @@ and integration test coverage alongside their feature implementations. The QA
24
24
  Engineering function focuses on End-to-End (E2E) testing, complex system
25
25
  integrations, and test environment stability.
26
26
 
27
- ## Scope (Epic mode)
27
+ ## Scope (Story / plan-run mode)
28
28
 
29
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
30
- following block is populated with the Epic's change-set file list.
29
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
30
+ following block is populated with the Story (or plan-run) change-set file list.
31
31
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
32
32
  renders the literal substitution token and you MUST treat it as **no
33
33
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -48,8 +48,7 @@ before this section existed.
48
48
  ## Execution strategy (dual-path)
49
49
 
50
50
  This lens runs along one of two execution paths. Both emit the **identical**
51
- report contract (Step 3); downstream consumers (`/deliver` Phase 4
52
- epic-audit, `audit-to-stories`) are agnostic to which path produced it.
51
+ report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
53
52
 
54
53
  - **Orchestrated (dynamic-workflow) path.** When Claude Code's
55
54
  [dynamic workflows](https://code.claude.com/docs/en/workflows) are
@@ -101,8 +100,8 @@ degrade to the sequential path.
101
100
 
102
101
  ## Step 0 - Project Context
103
102
 
104
- 1. Read the active Epic and its child tickets to identify the current milestone
105
- and target features.
103
+ 1. Read the Story under audit its `## Goal`, inline `acceptance[]` /
104
+ `verify[]`, and folded `## Spec` — to identify the target features.
106
105
  2. Identify the target codebase paths for the audit.
107
106
 
108
107
  ## Step 1: Context Gathering (Read-Only Scan)
@@ -116,8 +115,8 @@ files. Pay special attention to:
116
115
  `playwright.config.ts`, `cypress.json`).
117
116
  - Test directories and files (e.g., `__tests__/`, `spec/`, `e2e/`, `*.test.ts`,
118
117
  `*.spec.js`).
119
- - The active Epic and its child tickets to map out expected features versus
120
- implemented tests.
118
+ - The Story's `acceptance[]` / `verify[]` arrays, to map expected behaviour
119
+ versus implemented tests.
121
120
  - Mocking and stubbing setups (e.g., `__mocks__/`, `setupTests.js`, MSW
122
121
  handlers).
123
122
  - CI/CD workflow files to understand how and when tests are executed.
@@ -140,8 +139,8 @@ Evaluate the gathered context against the following test quality dimensions:
140
139
  5. **Performance & Execution:** Find bottlenecks in the test suite, such as
141
140
  unnecessary serial execution, heavy setup running too frequently, or
142
141
  opportunities for parallelization.
143
- 6. **Requirement Alignment:** Cross-reference the features outlined in the
144
- active Epic to ensure they have corresponding and complete test coverage.
142
+ 6. **Requirement Alignment:** Cross-reference the Story's `acceptance[]`
143
+ criteria to ensure they have corresponding and complete test coverage.
145
144
  Verify that the implementation found in the codebase correctly matches the
146
145
  architectural requirements and highlight any inconsistencies or gaps.
147
146
 
@@ -15,10 +15,10 @@ Conduct a comprehensive security review of the codebase. Your goal is to
15
15
  identify common vulnerabilities (OWASP Top 10), insecure configurations, and
16
16
  potential attack vectors.
17
17
 
18
- ## Scope (Epic mode)
18
+ ## Scope (Story / plan-run mode)
19
19
 
20
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
21
- following block is populated with the Epic's change-set file list.
20
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
21
+ following block is populated with the Story (or plan-run) change-set file list.
22
22
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
23
23
  renders the literal substitution token and you MUST treat it as **no
24
24
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -39,8 +39,7 @@ before this section existed.
39
39
  ## Execution strategy (dual-path)
40
40
 
41
41
  This lens runs along one of two execution paths. Both emit the **identical**
42
- report contract (Step 3); downstream consumers (`/deliver` Phase 4
43
- epic-audit, `audit-to-stories`) are agnostic to which path produced it.
42
+ report contract (Step 3); downstream consumers (`audit-to-stories`) are agnostic to which path produced it.
44
43
 
45
44
  - **Orchestrated (dynamic-workflow) path.** When Claude Code's
46
45
  [dynamic workflows](https://code.claude.com/docs/en/workflows) are
@@ -4,6 +4,16 @@ description: Audit SEO fundamentals and Generative Engine Optimization signals (
4
4
 
5
5
  # SEO & Generative Engine Optimization Audit
6
6
 
7
+ ## Applicability
8
+
9
+ **Web targets only.** This lens is registered with `target: "web"` in
10
+ [`audit-rules.json`](../schemas/audit-rules.json), so the selector skips it
11
+ entirely on a project with no web surface — however well its keyword triggers
12
+ match the ticket prose. Applicability is derived from the consumer's own
13
+ checkout (configured navigability `routeGlobs`, a declared web-framework
14
+ dependency, or a tracked `.html` / `.css` / `.jsx` / `.tsx` source file), not
15
+ from an `.agentrc` key, and the probe fails open when indeterminate.
16
+
7
17
  ## Role
8
18
 
9
19
  Senior Technical SEO and Generative Engine Optimization (GEO) Specialist. You
@@ -18,10 +28,10 @@ codebase. Your goal is to surface structural, semantic, and content-level
18
28
  improvements that will increase discoverability in both traditional search
19
29
  indexes and AI-powered answer engines — without making any immediate changes.
20
30
 
21
- ## Scope (Epic mode)
31
+ ## Scope (Story / plan-run mode)
22
32
 
23
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
24
- following block is populated with the Epic's change-set file list.
33
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
34
+ following block is populated with the Story (or plan-run) change-set file list.
25
35
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
26
36
  renders the literal substitution token and you MUST treat it as **no
27
37
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -15,10 +15,10 @@ release candidate. Your goal is to surface critical risks across configuration
15
15
  integrity, security, observability, and code quality — providing a prioritized,
16
16
  actionable report that can be handed off for remediation before deployment.
17
17
 
18
- ## Scope (Epic mode)
18
+ ## Scope (Story / plan-run mode)
19
19
 
20
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
21
- following block is populated with the Epic's change-set file list.
20
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
21
+ following block is populated with the Story (or plan-run) change-set file list.
22
22
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
23
23
  renders the literal substitution token and you MUST treat it as **no
24
24
  scope filter — run the lens codebase-wide** exactly as you would have
@@ -3,7 +3,7 @@ description:
3
3
  Convert findings produced by the audit-* workflows into actionable
4
4
  GitHub Stories. Reads temp/audits/audit-*-results.md, groups findings
5
5
  cross-audit, deduplicates against existing Issues by fingerprint, and
6
- either chains into /plan --idea or opens standalone Stories.
6
+ either chains into /plan --seed-file or opens standalone Stories.
7
7
  ---
8
8
 
9
9
  # /audit-to-stories [audit-file-or-glob]
@@ -22,8 +22,8 @@ Dimension / Category, Current State, Recommendation, Agent Prompt).
22
22
  `/audit-to-stories` closes the loop: it parses those reports, groups
23
23
  related findings (including across audit dimensions), classifies each
24
24
  group as eligible-to-create or already-tracked, and — at the operator's
25
- choice — either chains into `/plan --idea` for a single planned
26
- Epic or opens standalone Stories directly.
25
+ choice — either chains into `/plan --seed-file` for a planned Story
26
+ (or N>1 under the split policy) or opens standalone Stories directly.
27
27
 
28
28
  The audit producers themselves are **not modified** by this workflow.
29
29
  They remain read-only emitters of audit reports.
@@ -117,23 +117,23 @@ Ask:
117
117
 
118
118
  > How would you like these `<M>` Stories created?
119
119
  >
120
- > - **Single Epic via `/plan`** **[Recommended]** — opens one Epic,
121
- > then chains into `/plan --idea` so the standard spec-and-WBS
122
- > authoring handles decomposition. Grouped Stories become the
123
- > seed for the authoring step's decomposition.
120
+ > - **Single plan via `/plan`** **[Recommended]** — chains into
121
+ > `/plan --seed-file <emitted.md>` so the standard Story authoring
122
+ > handles the seed. Prefer one Story; split only under the
123
+ > default-single policy.
124
124
  > - **Individual standalone Stories** — opens one GitHub Issue per
125
- > group directly, no Epic wrapper.
125
+ > group directly (no plan ceremony).
126
126
 
127
127
  **STOP** until the operator picks.
128
128
 
129
- ## Phase 5a — Single-Epic path
129
+ ## Phase 5a — Single-plan path
130
130
 
131
- Build the `/plan` idea seed from the filtered plan envelope:
131
+ Build the `/plan` seed from the filtered plan envelope:
132
132
 
133
133
  ```bash
134
- node .agents/scripts/audit-to-stories.js --emit-epic-seed \
134
+ node .agents/scripts/audit-to-stories.js --emit-plan-seed \
135
135
  --plan temp/audits/audit-to-stories-plan.json \
136
- --out "temp/audits/audit-epic-seed-$(date +%Y%m%dT%H%M%S).md"
136
+ --out "temp/audits/audit-plan-seed-$(date +%Y%m%dT%H%M%S).md"
137
137
  ```
138
138
 
139
139
  The seed renders the canonical one-pager sections — Problem Statement,
@@ -144,11 +144,11 @@ authoring step has concrete anchors), Not Doing.
144
144
  Chain into the existing planning entrypoint:
145
145
 
146
146
  ```text
147
- /plan --idea "<path-to-seed>"
147
+ /plan --seed-file <path-to-seed>
148
148
  ```
149
149
 
150
- `/plan` then runs its 3-step Epic path (interrogate author →
151
- persist), as documented in its workflow.
150
+ (`/plan --seed "$(cat <path>)"` also works for small seeds). `/plan`
151
+ then runs its author → persist path, as documented in its workflow.
152
152
  Each Story it spawns from the seed carries `context::audit:
153
153
  <reportLink>` and `audit-fingerprint: <sha>` in its body so future
154
154
  Phase 6 idempotency works on the next run.
@@ -220,13 +220,13 @@ Persist `temp/audits/audit-to-stories-$(date +%Y%m%dT%H%M%S).md`
220
220
  summarising the run:
221
221
 
222
222
  - Per-group breakdown: which findings merged, fingerprints, dependency
223
- edges, created/skipped Issue link (or new Epic link).
223
+ edges, created/skipped Issue link (or plan-run / Story links).
224
224
  - The severity threshold and grouping mode the operator chose.
225
225
  - Final tally: `"<M> groups planned · <K> created · <J> skipped (open)
226
226
  · <L> skipped (re-occurring)"`.
227
227
 
228
- When the Single-Epic path ran, link the Epic the chained `/plan`
229
- opened. When the Standalone-Stories path ran, list every Issue URL.
228
+ When the single-plan path ran, link the Story (or plan-run) the chained
229
+ `/plan` opened. When the Standalone-Stories path ran, list every Issue URL.
230
230
 
231
231
  ## Constraints
232
232
 
@@ -261,8 +261,8 @@ issue 4482.)
261
261
 
262
262
  ## See also
263
263
 
264
- - [`/plan`](helpers/plan-epic.md) — the planning pipeline `/audit-to-stories`
265
- chains into for the Single-Epic grouping mode.
264
+ - [`/plan`](plan.md) — the planning pipeline `/audit-to-stories`
265
+ chains into for Story creation.
266
266
  - [`lib/findings/route-finding.js`](../scripts/lib/findings/route-finding.js) —
267
267
  the shared fingerprint/dedup/route helper this workflow and `qa-explore`
268
268
  both consume. There is no second dedup implementation.
@@ -4,6 +4,13 @@ description: Audit UX/UI consistency and design system adherence
4
4
 
5
5
  # UX/UI & Design System Audit
6
6
 
7
+ ## Applicability
8
+
9
+ **Web targets only.** Registered with `target: "web"` in
10
+ [`audit-rules.json`](../schemas/audit-rules.json): the selector skips this lens
11
+ on a project with no rendered frontend. See the `target` key's schema
12
+ description for how applicability is probed from the consumer's checkout.
13
+
7
14
  ## Role
8
15
 
9
16
  Lead Product Designer & Frontend Architect
@@ -14,10 +21,10 @@ Evaluate the frontend implementation for UI consistency, UX best practices, and
14
21
  adherence to the project's design system. Ensure the application feels premium
15
22
  and cohesive.
16
23
 
17
- ## Scope (Epic mode)
24
+ ## Scope (Story / plan-run mode)
18
25
 
19
- When this lens is invoked from `/deliver` Phase 4 (epic-audit), the
20
- following block is populated with the Epic's change-set file list.
26
+ When this lens is invoked from `/deliver` close lenses (or a plan-run audit), the
27
+ following block is populated with the Story (or plan-run) change-set file list.
21
28
  Otherwise — for any manual `/audit-<dimension>` invocation — the block
22
29
  renders the literal substitution token and you MUST treat it as **no
23
30
  scope filter — run the lens codebase-wide** exactly as you would have