@deftai/directive-runtime 0.126.0-beta.3 → 0.128.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 (430) hide show
  1. package/.agents/skills/deft-directive-release/SKILL.md +428 -7
  2. package/.githooks/_directive-run.sh +30 -0
  3. package/.githooks/pre-commit +4 -24
  4. package/.githooks/pre-push +11 -17
  5. package/Taskfile.yml +17 -16
  6. package/contracts/design-critique.md +5 -0
  7. package/dist/cli-router/route-argv.js +1 -0
  8. package/dist/contract-entry.js +2 -4
  9. package/dist/coverage-hotspots.js +2 -2
  10. package/dist/dispatch.d.ts +1 -1
  11. package/dist/dispatch.js +8 -6
  12. package/dist/doctor-diagnose.js +10 -7
  13. package/dist/hook-dispatch.d.ts +1 -1
  14. package/dist/hook-dispatch.js +1 -1
  15. package/dist/install-cli/coverage-map.d.ts +1 -5
  16. package/dist/install-cli/coverage-map.js +28 -22
  17. package/dist/installer-output-inventory.js +1 -4
  18. package/dist/lifecycle-cli/coverage-map.js +37 -35
  19. package/dist/migrate.js +12 -7
  20. package/dist/policy.d.ts +4 -2
  21. package/dist/policy.js +101 -2
  22. package/dist/pre-pr-run.d.ts +2 -0
  23. package/dist/pre-pr-run.js +40 -0
  24. package/dist/removal-steps/index.d.ts +2 -2
  25. package/dist/removal-steps/steps.js +6 -9
  26. package/dist/removal-steps/strategies.js +1 -1
  27. package/dist/render-cli/capability-map-cli.d.ts +3 -0
  28. package/dist/render-cli/capability-map-cli.js +6 -0
  29. package/dist/setup-wiring.d.ts +6 -0
  30. package/dist/setup-wiring.js +20 -7
  31. package/dist/setup.js +12 -14
  32. package/dist/uninstall.js +1 -1
  33. package/dist/vbrief-preflight-fixtures.js +1 -1
  34. package/dist/verify-intent-constraint.d.ts +2 -0
  35. package/dist/verify-intent-constraint.js +24 -0
  36. package/dist/verify-observable-scope.d.ts +2 -0
  37. package/dist/verify-observable-scope.js +24 -0
  38. package/docs/getting-started.md +2 -0
  39. package/docs/intent-constraint.md +7 -1
  40. package/docs/known-limitations.md +1 -0
  41. package/docs/launcher.md +10 -0
  42. package/docs/observable-scope.md +6 -0
  43. package/package.json +1 -1
  44. package/packs/skills/skills-pack-0.1.json +3 -3
  45. package/scm/github.md +1 -0
  46. package/skills/deft-directive-feedback/SKILL.md +9 -20
  47. package/skills/deft-directive-pre-pr/SKILL.md +13 -3
  48. package/skills/deft-directive-release/SKILL.md +4 -4
  49. package/skills/deft-directive-review-cycle/SKILL.md +2 -2
  50. package/skills/deft-directive-setup/SKILL.md +17 -41
  51. package/skills/deft-directive-swarm/references/host-cursor.md +18 -1
  52. package/skills/deft-directive-swarm/references/host-grok-build.md +3 -3
  53. package/skills/deft-directive-sync/SKILL.md +2 -2
  54. package/skills/deft-directive-tutorial/SKILL.md +1 -1
  55. package/tasks/agent.yml +0 -2
  56. package/tasks/cache.yml +0 -16
  57. package/tasks/capacity.yml +0 -4
  58. package/tasks/change.yml +0 -4
  59. package/tasks/codebase.yml +0 -10
  60. package/tasks/commit.yml +0 -2
  61. package/tasks/coverage.yml +0 -2
  62. package/tasks/decision.yml +0 -4
  63. package/tasks/directive.yml +0 -1
  64. package/tasks/docs.yml +6 -10
  65. package/tasks/engine-invoke.cjs +79 -0
  66. package/tasks/engine-invoke.test.cjs +84 -0
  67. package/tasks/engine.yml +27 -81
  68. package/tasks/eval.yml +0 -8
  69. package/tasks/feedback.yml +0 -2
  70. package/tasks/install.yml +0 -4
  71. package/tasks/issue.yml +0 -3
  72. package/tasks/lifecycle.yml +0 -1
  73. package/tasks/materialize.cjs +246 -0
  74. package/tasks/materialize.test.cjs +103 -0
  75. package/tasks/materialize.yml +13 -0
  76. package/tasks/migrate.yml +0 -6
  77. package/tasks/packs.yml +0 -16
  78. package/tasks/plan-sequence.yml +0 -8
  79. package/tasks/policy.yml +0 -24
  80. package/tasks/pr.yml +0 -6
  81. package/tasks/prd.yml +0 -2
  82. package/tasks/product-signal.yml +0 -10
  83. package/tasks/project.yml +0 -8
  84. package/tasks/reconcile.yml +0 -2
  85. package/tasks/review-monitor.yml +0 -4
  86. package/tasks/roadmap.yml +0 -4
  87. package/tasks/scm.yml +0 -32
  88. package/tasks/scope.yml +0 -30
  89. package/tasks/slice.yml +0 -4
  90. package/tasks/spec.yml +0 -6
  91. package/tasks/subagent.yml +0 -4
  92. package/tasks/swarm.yml +0 -7
  93. package/tasks/toolchain.yml +0 -4
  94. package/tasks/triage-actions.yml +0 -8
  95. package/tasks/triage-bootstrap.yml +0 -1
  96. package/tasks/triage-bulk.yml +0 -5
  97. package/tasks/triage-classify.yml +0 -2
  98. package/tasks/triage-evaluate.yml +0 -1
  99. package/tasks/triage-metrics.yml +0 -2
  100. package/tasks/triage-queue.yml +0 -3
  101. package/tasks/triage-reconcile.yml +0 -1
  102. package/tasks/triage-scope-drift.yml +0 -1
  103. package/tasks/triage-scope.yml +0 -1
  104. package/tasks/triage-smoketest.yml +0 -1
  105. package/tasks/triage-subscribe.yml +0 -2
  106. package/tasks/tutorial.yml +0 -20
  107. package/tasks/umbrella.yml +0 -2
  108. package/tasks/value.yml +0 -2
  109. package/tasks/vbrief.yml +0 -12
  110. package/tasks/verify.yml +0 -140
  111. package/tasks/xbrief.yml +0 -6
  112. package/templates/agents-entry.md +1 -0
  113. package/templates/design-critique-brief.md +3 -0
  114. package/vendor/directive-content/.agents/skills/deft-directive-release/SKILL.md +428 -7
  115. package/vendor/directive-content/.githooks/_directive-run.sh +30 -0
  116. package/vendor/directive-content/.githooks/pre-commit +4 -24
  117. package/vendor/directive-content/.githooks/pre-push +11 -17
  118. package/vendor/directive-content/Taskfile.yml +17 -16
  119. package/vendor/directive-content/contracts/design-critique.md +5 -0
  120. package/vendor/directive-content/docs/getting-started.md +2 -0
  121. package/vendor/directive-content/docs/intent-constraint.md +7 -1
  122. package/vendor/directive-content/docs/known-limitations.md +1 -0
  123. package/vendor/directive-content/docs/launcher.md +10 -0
  124. package/vendor/directive-content/docs/observable-scope.md +6 -0
  125. package/vendor/directive-content/packs/skills/skills-pack-0.1.json +3 -3
  126. package/vendor/directive-content/scm/github.md +1 -0
  127. package/vendor/directive-content/skills/deft-directive-feedback/SKILL.md +9 -20
  128. package/vendor/directive-content/skills/deft-directive-pre-pr/SKILL.md +13 -3
  129. package/vendor/directive-content/skills/deft-directive-release/SKILL.md +4 -4
  130. package/vendor/directive-content/skills/deft-directive-review-cycle/SKILL.md +2 -2
  131. package/vendor/directive-content/skills/deft-directive-setup/SKILL.md +17 -41
  132. package/vendor/directive-content/skills/deft-directive-swarm/references/host-cursor.md +18 -1
  133. package/vendor/directive-content/skills/deft-directive-swarm/references/host-grok-build.md +3 -3
  134. package/vendor/directive-content/skills/deft-directive-sync/SKILL.md +2 -2
  135. package/vendor/directive-content/skills/deft-directive-tutorial/SKILL.md +1 -1
  136. package/vendor/directive-content/tasks/agent.yml +0 -2
  137. package/vendor/directive-content/tasks/cache.yml +0 -16
  138. package/vendor/directive-content/tasks/capacity.yml +0 -4
  139. package/vendor/directive-content/tasks/change.yml +0 -4
  140. package/vendor/directive-content/tasks/codebase.yml +0 -10
  141. package/vendor/directive-content/tasks/commit.yml +0 -2
  142. package/vendor/directive-content/tasks/coverage.yml +0 -2
  143. package/vendor/directive-content/tasks/decision.yml +0 -4
  144. package/vendor/directive-content/tasks/directive.yml +0 -1
  145. package/vendor/directive-content/tasks/docs.yml +6 -10
  146. package/vendor/directive-content/tasks/engine-invoke.cjs +79 -0
  147. package/vendor/directive-content/tasks/engine-invoke.test.cjs +84 -0
  148. package/vendor/directive-content/tasks/engine.yml +27 -81
  149. package/vendor/directive-content/tasks/eval.yml +0 -8
  150. package/vendor/directive-content/tasks/feedback.yml +0 -2
  151. package/vendor/directive-content/tasks/install.yml +0 -4
  152. package/vendor/directive-content/tasks/issue.yml +0 -3
  153. package/vendor/directive-content/tasks/lifecycle.yml +0 -1
  154. package/vendor/directive-content/tasks/materialize.cjs +246 -0
  155. package/vendor/directive-content/tasks/materialize.test.cjs +103 -0
  156. package/vendor/directive-content/tasks/materialize.yml +13 -0
  157. package/vendor/directive-content/tasks/migrate.yml +0 -6
  158. package/vendor/directive-content/tasks/packs.yml +0 -16
  159. package/vendor/directive-content/tasks/plan-sequence.yml +0 -8
  160. package/vendor/directive-content/tasks/policy.yml +0 -24
  161. package/vendor/directive-content/tasks/pr.yml +0 -6
  162. package/vendor/directive-content/tasks/prd.yml +0 -2
  163. package/vendor/directive-content/tasks/product-signal.yml +0 -10
  164. package/vendor/directive-content/tasks/project.yml +0 -8
  165. package/vendor/directive-content/tasks/reconcile.yml +0 -2
  166. package/vendor/directive-content/tasks/review-monitor.yml +0 -4
  167. package/vendor/directive-content/tasks/roadmap.yml +0 -4
  168. package/vendor/directive-content/tasks/scm.yml +0 -32
  169. package/vendor/directive-content/tasks/scope.yml +0 -30
  170. package/vendor/directive-content/tasks/slice.yml +0 -4
  171. package/vendor/directive-content/tasks/spec.yml +0 -6
  172. package/vendor/directive-content/tasks/subagent.yml +0 -4
  173. package/vendor/directive-content/tasks/swarm.yml +0 -7
  174. package/vendor/directive-content/tasks/toolchain.yml +0 -4
  175. package/vendor/directive-content/tasks/triage-actions.yml +0 -8
  176. package/vendor/directive-content/tasks/triage-bootstrap.yml +0 -1
  177. package/vendor/directive-content/tasks/triage-bulk.yml +0 -5
  178. package/vendor/directive-content/tasks/triage-classify.yml +0 -2
  179. package/vendor/directive-content/tasks/triage-evaluate.yml +0 -1
  180. package/vendor/directive-content/tasks/triage-metrics.yml +0 -2
  181. package/vendor/directive-content/tasks/triage-queue.yml +0 -3
  182. package/vendor/directive-content/tasks/triage-reconcile.yml +0 -1
  183. package/vendor/directive-content/tasks/triage-scope-drift.yml +0 -1
  184. package/vendor/directive-content/tasks/triage-scope.yml +0 -1
  185. package/vendor/directive-content/tasks/triage-smoketest.yml +0 -1
  186. package/vendor/directive-content/tasks/triage-subscribe.yml +0 -2
  187. package/vendor/directive-content/tasks/tutorial.yml +0 -20
  188. package/vendor/directive-content/tasks/umbrella.yml +0 -2
  189. package/vendor/directive-content/tasks/value.yml +0 -2
  190. package/vendor/directive-content/tasks/vbrief.yml +0 -12
  191. package/vendor/directive-content/tasks/verify.yml +0 -140
  192. package/vendor/directive-content/tasks/xbrief.yml +0 -6
  193. package/vendor/directive-content/templates/agents-entry.md +1 -0
  194. package/vendor/directive-content/templates/design-critique-brief.md +3 -0
  195. package/vendor/directive-core/dist/.tsbuildinfo +1 -1
  196. package/vendor/directive-core/dist/consumer-check-contract/evaluate.d.ts +3 -2
  197. package/vendor/directive-core/dist/consumer-check-contract/evaluate.d.ts.map +1 -1
  198. package/vendor/directive-core/dist/consumer-check-contract/evaluate.js +7 -6
  199. package/vendor/directive-core/dist/consumer-check-contract/evaluate.js.map +1 -1
  200. package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.d.ts +6 -0
  201. package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.d.ts.map +1 -1
  202. package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.js +97 -3
  203. package/vendor/directive-core/dist/content-contracts/skills/greptile-detector.js.map +1 -1
  204. package/vendor/directive-core/dist/content-root.d.ts.map +1 -1
  205. package/vendor/directive-core/dist/content-root.js +8 -1
  206. package/vendor/directive-core/dist/content-root.js.map +1 -1
  207. package/vendor/directive-core/dist/coverage-applicability/evaluate.d.ts.map +1 -1
  208. package/vendor/directive-core/dist/coverage-applicability/evaluate.js +406 -11
  209. package/vendor/directive-core/dist/coverage-applicability/evaluate.js.map +1 -1
  210. package/vendor/directive-core/dist/coverage-hotspots/evaluate.d.ts +13 -5
  211. package/vendor/directive-core/dist/coverage-hotspots/evaluate.d.ts.map +1 -1
  212. package/vendor/directive-core/dist/coverage-hotspots/evaluate.js +60 -2
  213. package/vendor/directive-core/dist/coverage-hotspots/evaluate.js.map +1 -1
  214. package/vendor/directive-core/dist/deposit/live-procedure-targets.d.ts.map +1 -1
  215. package/vendor/directive-core/dist/deposit/live-procedure-targets.js.map +1 -1
  216. package/vendor/directive-core/dist/deposit/python-free.d.ts +2 -0
  217. package/vendor/directive-core/dist/deposit/python-free.d.ts.map +1 -1
  218. package/vendor/directive-core/dist/deposit/python-free.js +5 -1
  219. package/vendor/directive-core/dist/deposit/python-free.js.map +1 -1
  220. package/vendor/directive-core/dist/doctor/checks.d.ts.map +1 -1
  221. package/vendor/directive-core/dist/doctor/checks.js +8 -10
  222. package/vendor/directive-core/dist/doctor/checks.js.map +1 -1
  223. package/vendor/directive-core/dist/doctor/main.d.ts.map +1 -1
  224. package/vendor/directive-core/dist/doctor/main.js +6 -0
  225. package/vendor/directive-core/dist/doctor/main.js.map +1 -1
  226. package/vendor/directive-core/dist/doctor/manifest.d.ts.map +1 -1
  227. package/vendor/directive-core/dist/doctor/manifest.js +3 -2
  228. package/vendor/directive-core/dist/doctor/manifest.js.map +1 -1
  229. package/vendor/directive-core/dist/doctor/paths.d.ts.map +1 -1
  230. package/vendor/directive-core/dist/doctor/paths.js +11 -0
  231. package/vendor/directive-core/dist/doctor/paths.js.map +1 -1
  232. package/vendor/directive-core/dist/engine-version.d.ts.map +1 -1
  233. package/vendor/directive-core/dist/engine-version.js +1 -4
  234. package/vendor/directive-core/dist/engine-version.js.map +1 -1
  235. package/vendor/directive-core/dist/hooks/dispatcher.d.ts +2 -0
  236. package/vendor/directive-core/dist/hooks/dispatcher.d.ts.map +1 -1
  237. package/vendor/directive-core/dist/hooks/dispatcher.js +5 -1
  238. package/vendor/directive-core/dist/hooks/dispatcher.js.map +1 -1
  239. package/vendor/directive-core/dist/index.d.ts +1 -0
  240. package/vendor/directive-core/dist/index.d.ts.map +1 -1
  241. package/vendor/directive-core/dist/index.js +1 -0
  242. package/vendor/directive-core/dist/index.js.map +1 -1
  243. package/vendor/directive-core/dist/init-deposit/agent-hooks.d.ts.map +1 -1
  244. package/vendor/directive-core/dist/init-deposit/agent-hooks.js.map +1 -1
  245. package/vendor/directive-core/dist/init-deposit/scaffold.d.ts +4 -0
  246. package/vendor/directive-core/dist/init-deposit/scaffold.d.ts.map +1 -1
  247. package/vendor/directive-core/dist/init-deposit/scaffold.js +4 -2
  248. package/vendor/directive-core/dist/init-deposit/scaffold.js.map +1 -1
  249. package/vendor/directive-core/dist/install-contract/constants.d.ts.map +1 -1
  250. package/vendor/directive-core/dist/install-contract/constants.js +9 -1
  251. package/vendor/directive-core/dist/install-contract/constants.js.map +1 -1
  252. package/vendor/directive-core/dist/install-contract/data-status.d.ts.map +1 -1
  253. package/vendor/directive-core/dist/install-contract/data-status.js.map +1 -1
  254. package/vendor/directive-core/dist/install-contract/index.d.ts +1 -1
  255. package/vendor/directive-core/dist/install-contract/index.d.ts.map +1 -1
  256. package/vendor/directive-core/dist/install-contract/index.js.map +1 -1
  257. package/vendor/directive-core/dist/install-contract/package-meta.d.ts.map +1 -1
  258. package/vendor/directive-core/dist/install-contract/package-meta.js.map +1 -1
  259. package/vendor/directive-core/dist/install-health/cheap.d.ts.map +1 -1
  260. package/vendor/directive-core/dist/install-health/cheap.js +2 -6
  261. package/vendor/directive-core/dist/install-health/cheap.js.map +1 -1
  262. package/vendor/directive-core/dist/install-health/in-sync.d.ts.map +1 -1
  263. package/vendor/directive-core/dist/install-health/in-sync.js.map +1 -1
  264. package/vendor/directive-core/dist/install-health/index.d.ts +6 -6
  265. package/vendor/directive-core/dist/install-health/index.d.ts.map +1 -1
  266. package/vendor/directive-core/dist/install-health/index.js +3 -3
  267. package/vendor/directive-core/dist/install-health/index.js.map +1 -1
  268. package/vendor/directive-core/dist/install-health/ownership.d.ts.map +1 -1
  269. package/vendor/directive-core/dist/install-health/ownership.js +2 -6
  270. package/vendor/directive-core/dist/install-health/ownership.js.map +1 -1
  271. package/vendor/directive-core/dist/install-health/readers.d.ts.map +1 -1
  272. package/vendor/directive-core/dist/install-health/readers.js.map +1 -1
  273. package/vendor/directive-core/dist/install-health/wiring.d.ts.map +1 -1
  274. package/vendor/directive-core/dist/install-health/wiring.js +2 -3
  275. package/vendor/directive-core/dist/install-health/wiring.js.map +1 -1
  276. package/vendor/directive-core/dist/intent-constraint/evaluate.d.ts +7 -0
  277. package/vendor/directive-core/dist/intent-constraint/evaluate.d.ts.map +1 -1
  278. package/vendor/directive-core/dist/intent-constraint/evaluate.js +26 -5
  279. package/vendor/directive-core/dist/intent-constraint/evaluate.js.map +1 -1
  280. package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.d.ts +76 -0
  281. package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.d.ts.map +1 -0
  282. package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.js +239 -0
  283. package/vendor/directive-core/dist/intent-constraint/plan-id-adopter.js.map +1 -0
  284. package/vendor/directive-core/dist/observable-scope/evaluate.d.ts +7 -0
  285. package/vendor/directive-core/dist/observable-scope/evaluate.d.ts.map +1 -1
  286. package/vendor/directive-core/dist/observable-scope/evaluate.js +51 -7
  287. package/vendor/directive-core/dist/observable-scope/evaluate.js.map +1 -1
  288. package/vendor/directive-core/dist/policy/coverage-mode.d.ts +84 -0
  289. package/vendor/directive-core/dist/policy/coverage-mode.d.ts.map +1 -0
  290. package/vendor/directive-core/dist/policy/coverage-mode.js +226 -0
  291. package/vendor/directive-core/dist/policy/coverage-mode.js.map +1 -0
  292. package/vendor/directive-core/dist/policy/index.d.ts +2 -0
  293. package/vendor/directive-core/dist/policy/index.d.ts.map +1 -1
  294. package/vendor/directive-core/dist/policy/index.js +60 -40
  295. package/vendor/directive-core/dist/policy/index.js.map +1 -1
  296. package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts +2 -0
  297. package/vendor/directive-core/dist/pr-closing-keywords/main.d.ts.map +1 -1
  298. package/vendor/directive-core/dist/pr-closing-keywords/main.js +143 -9
  299. package/vendor/directive-core/dist/pr-closing-keywords/main.js.map +1 -1
  300. package/vendor/directive-core/dist/pre-pr-controller/controller.d.ts +2 -0
  301. package/vendor/directive-core/dist/pre-pr-controller/controller.d.ts.map +1 -1
  302. package/vendor/directive-core/dist/pre-pr-controller/controller.js +109 -14
  303. package/vendor/directive-core/dist/pre-pr-controller/controller.js.map +1 -1
  304. package/vendor/directive-core/dist/pre-pr-controller/evaluate.d.ts +2 -0
  305. package/vendor/directive-core/dist/pre-pr-controller/evaluate.d.ts.map +1 -1
  306. package/vendor/directive-core/dist/pre-pr-controller/evaluate.js +11 -1
  307. package/vendor/directive-core/dist/pre-pr-controller/evaluate.js.map +1 -1
  308. package/vendor/directive-core/dist/pre-pr-controller/index.d.ts +1 -1
  309. package/vendor/directive-core/dist/pre-pr-controller/index.d.ts.map +1 -1
  310. package/vendor/directive-core/dist/pre-pr-controller/index.js +1 -1
  311. package/vendor/directive-core/dist/pre-pr-controller/index.js.map +1 -1
  312. package/vendor/directive-core/dist/pre-pr-controller/phases.d.ts +10 -0
  313. package/vendor/directive-core/dist/pre-pr-controller/phases.d.ts.map +1 -1
  314. package/vendor/directive-core/dist/pre-pr-controller/phases.js +15 -1
  315. package/vendor/directive-core/dist/pre-pr-controller/phases.js.map +1 -1
  316. package/vendor/directive-core/dist/pre-pr-controller/types.d.ts +20 -1
  317. package/vendor/directive-core/dist/pre-pr-controller/types.d.ts.map +1 -1
  318. package/vendor/directive-core/dist/pre-pr-controller/types.js +2 -0
  319. package/vendor/directive-core/dist/pre-pr-controller/types.js.map +1 -1
  320. package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts +40 -3
  321. package/vendor/directive-core/dist/preflight-gh/pre-push.d.ts.map +1 -1
  322. package/vendor/directive-core/dist/preflight-gh/pre-push.js +340 -27
  323. package/vendor/directive-core/dist/preflight-gh/pre-push.js.map +1 -1
  324. package/vendor/directive-core/dist/release/cli-drift-report.d.ts +4 -4
  325. package/vendor/directive-core/dist/release/cli-drift-report.d.ts.map +1 -1
  326. package/vendor/directive-core/dist/release/cli-drift-report.js +6 -11
  327. package/vendor/directive-core/dist/release/cli-drift-report.js.map +1 -1
  328. package/vendor/directive-core/dist/release-e2e/constants.d.ts +4 -3
  329. package/vendor/directive-core/dist/release-e2e/constants.d.ts.map +1 -1
  330. package/vendor/directive-core/dist/release-e2e/constants.js +4 -3
  331. package/vendor/directive-core/dist/release-e2e/constants.js.map +1 -1
  332. package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.d.ts.map +1 -1
  333. package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.js +87 -28
  334. package/vendor/directive-core/dist/release-e2e/greenfield-python-free-smoke.js.map +1 -1
  335. package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.d.ts.map +1 -1
  336. package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.js +13 -2
  337. package/vendor/directive-core/dist/release-e2e/legacy-bridge-leg.js.map +1 -1
  338. package/vendor/directive-core/dist/release-e2e/main.js +1 -1
  339. package/vendor/directive-core/dist/release-e2e/npm-ops.d.ts +11 -5
  340. package/vendor/directive-core/dist/release-e2e/npm-ops.d.ts.map +1 -1
  341. package/vendor/directive-core/dist/release-e2e/npm-ops.js +90 -45
  342. package/vendor/directive-core/dist/release-e2e/npm-ops.js.map +1 -1
  343. package/vendor/directive-core/dist/render/project-render.d.ts.map +1 -1
  344. package/vendor/directive-core/dist/render/project-render.js +1 -0
  345. package/vendor/directive-core/dist/render/project-render.js.map +1 -1
  346. package/vendor/directive-core/dist/resolution/engine-resolve.d.ts.map +1 -1
  347. package/vendor/directive-core/dist/resolution/engine-resolve.js.map +1 -1
  348. package/vendor/directive-core/dist/resolution/pin.d.ts +11 -5
  349. package/vendor/directive-core/dist/resolution/pin.d.ts.map +1 -1
  350. package/vendor/directive-core/dist/resolution/pin.js +20 -11
  351. package/vendor/directive-core/dist/resolution/pin.js.map +1 -1
  352. package/vendor/directive-core/dist/resolution/plan.d.ts.map +1 -1
  353. package/vendor/directive-core/dist/resolution/plan.js +5 -3
  354. package/vendor/directive-core/dist/resolution/plan.js.map +1 -1
  355. package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.d.ts +54 -3
  356. package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.d.ts.map +1 -1
  357. package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.js +142 -0
  358. package/vendor/directive-core/dist/review-monitor/bounded-pr-watch-deny.js.map +1 -1
  359. package/vendor/directive-core/dist/scope/file-scope-coverage-warn.d.ts +21 -0
  360. package/vendor/directive-core/dist/scope/file-scope-coverage-warn.d.ts.map +1 -0
  361. package/vendor/directive-core/dist/scope/file-scope-coverage-warn.js +95 -0
  362. package/vendor/directive-core/dist/scope/file-scope-coverage-warn.js.map +1 -0
  363. package/vendor/directive-core/dist/session/spawn-occupancy.d.ts +7 -0
  364. package/vendor/directive-core/dist/session/spawn-occupancy.d.ts.map +1 -1
  365. package/vendor/directive-core/dist/session/spawn-occupancy.js +28 -0
  366. package/vendor/directive-core/dist/session/spawn-occupancy.js.map +1 -1
  367. package/vendor/directive-core/dist/staleness-tickler/run.d.ts.map +1 -1
  368. package/vendor/directive-core/dist/staleness-tickler/run.js.map +1 -1
  369. package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts +19 -6
  370. package/vendor/directive-core/dist/swarm/approach1-babysitter.d.ts.map +1 -1
  371. package/vendor/directive-core/dist/swarm/approach1-babysitter.js +69 -9
  372. package/vendor/directive-core/dist/swarm/approach1-babysitter.js.map +1 -1
  373. package/vendor/directive-core/dist/swarm/dest-place.d.ts +1 -1
  374. package/vendor/directive-core/dist/swarm/dest-place.d.ts.map +1 -1
  375. package/vendor/directive-core/dist/swarm/dest-place.js +1 -1
  376. package/vendor/directive-core/dist/swarm/dest-place.js.map +1 -1
  377. package/vendor/directive-core/dist/swarm/launch-cli.d.ts.map +1 -1
  378. package/vendor/directive-core/dist/swarm/launch-cli.js +12 -0
  379. package/vendor/directive-core/dist/swarm/launch-cli.js.map +1 -1
  380. package/vendor/directive-core/dist/swarm/launch.d.ts +6 -0
  381. package/vendor/directive-core/dist/swarm/launch.d.ts.map +1 -1
  382. package/vendor/directive-core/dist/swarm/launch.js +11 -0
  383. package/vendor/directive-core/dist/swarm/launch.js.map +1 -1
  384. package/vendor/directive-core/dist/swarm/leftover-before-activation.d.ts +27 -0
  385. package/vendor/directive-core/dist/swarm/leftover-before-activation.d.ts.map +1 -0
  386. package/vendor/directive-core/dist/swarm/leftover-before-activation.js +31 -0
  387. package/vendor/directive-core/dist/swarm/leftover-before-activation.js.map +1 -0
  388. package/vendor/directive-core/dist/swarm/worktree-pm-install.d.ts +5 -0
  389. package/vendor/directive-core/dist/swarm/worktree-pm-install.d.ts.map +1 -1
  390. package/vendor/directive-core/dist/swarm/worktree-pm-install.js +16 -6
  391. package/vendor/directive-core/dist/swarm/worktree-pm-install.js.map +1 -1
  392. package/vendor/directive-core/dist/swarm/worktrees.d.ts.map +1 -1
  393. package/vendor/directive-core/dist/swarm/worktrees.js.map +1 -1
  394. package/vendor/directive-core/dist/text/redos-safe.d.ts.map +1 -1
  395. package/vendor/directive-core/dist/text/redos-safe.js +2 -1
  396. package/vendor/directive-core/dist/text/redos-safe.js.map +1 -1
  397. package/vendor/directive-core/dist/triage/evaluate/worktrees.d.ts.map +1 -1
  398. package/vendor/directive-core/dist/triage/evaluate/worktrees.js +6 -6
  399. package/vendor/directive-core/dist/triage/evaluate/worktrees.js.map +1 -1
  400. package/vendor/directive-core/dist/vbrief-validate/conformance.d.ts.map +1 -1
  401. package/vendor/directive-core/dist/vbrief-validate/conformance.js +5 -0
  402. package/vendor/directive-core/dist/vbrief-validate/conformance.js.map +1 -1
  403. package/vendor/directive-core/dist/verify-env/agent-hooks-live-probe.js +1 -1
  404. package/vendor/directive-core/dist/verify-env/agent-hooks-live-probe.js.map +1 -1
  405. package/vendor/directive-core/dist/verify-env/verify-hooks-installed.d.ts +3 -3
  406. package/vendor/directive-core/dist/verify-env/verify-hooks-installed.d.ts.map +1 -1
  407. package/vendor/directive-core/dist/verify-env/verify-hooks-installed.js +7 -11
  408. package/vendor/directive-core/dist/verify-env/verify-hooks-installed.js.map +1 -1
  409. package/vendor/directive-core/dist/verify-source/project-definition-mutation-boundary.d.ts.map +1 -1
  410. package/vendor/directive-core/dist/verify-source/project-definition-mutation-boundary.js +1 -0
  411. package/vendor/directive-core/dist/verify-source/project-definition-mutation-boundary.js.map +1 -1
  412. package/vendor/directive-core/dist/xbrief/paths.d.ts.map +1 -1
  413. package/vendor/directive-core/dist/xbrief/paths.js +15 -12
  414. package/vendor/directive-core/dist/xbrief/paths.js.map +1 -1
  415. package/vendor/directive-core/dist/xbrief-migrate/constants.d.ts +7 -0
  416. package/vendor/directive-core/dist/xbrief-migrate/constants.d.ts.map +1 -1
  417. package/vendor/directive-core/dist/xbrief-migrate/constants.js +7 -0
  418. package/vendor/directive-core/dist/xbrief-migrate/constants.js.map +1 -1
  419. package/vendor/directive-core/dist/xbrief-migrate/detect.d.ts +9 -1
  420. package/vendor/directive-core/dist/xbrief-migrate/detect.d.ts.map +1 -1
  421. package/vendor/directive-core/dist/xbrief-migrate/detect.js +14 -7
  422. package/vendor/directive-core/dist/xbrief-migrate/detect.js.map +1 -1
  423. package/vendor/directive-core/dist/xbrief-migrate/migrate-project.d.ts.map +1 -1
  424. package/vendor/directive-core/dist/xbrief-migrate/migrate-project.js +118 -57
  425. package/vendor/directive-core/dist/xbrief-migrate/migrate-project.js.map +1 -1
  426. package/vendor/directive-core/dist/xbrief-migrate/transforms.d.ts.map +1 -1
  427. package/vendor/directive-core/dist/xbrief-migrate/transforms.js +8 -1
  428. package/vendor/directive-core/dist/xbrief-migrate/transforms.js.map +1 -1
  429. package/.githooks/_deft-run.sh +0 -47
  430. package/vendor/directive-content/.githooks/_deft-run.sh +0 -47
package/Taskfile.yml CHANGED
@@ -69,6 +69,9 @@ env:
69
69
  UV_PROJECT: '{{.TASKFILE_DIR}}'
70
70
 
71
71
  includes:
72
+ deft:
73
+ taskfile: ./node_modules/@deftai/directive-runtime/Taskfile.yml
74
+ optional: true
72
75
  docs:
73
76
  taskfile: ./tasks/docs.yml
74
77
  optional: true
@@ -393,6 +396,10 @@ includes:
393
396
  engine:
394
397
  taskfile: ./tasks/engine.yml
395
398
  optional: true
399
+ # #5805: tip-without-publish materialize into checkout pin.
400
+ materialize:
401
+ taskfile: ./tasks/materialize.yml
402
+ optional: true
396
403
 
397
404
  tasks:
398
405
  default:
@@ -405,8 +412,7 @@ tasks:
405
412
  check:
406
413
  desc: "Run the context-appropriate pre-commit gate: full framework self-check in this repo, consumer-safe gate from vendored installs (#1519)."
407
414
  dir: '{{.USER_WORKING_DIR}}'
408
- deps:
409
- - task: engine:_ts-build
415
+ # #5805: no engine:_ts-build — pin-exclusive ordinary invoke.
410
416
  cmds:
411
417
  - task: engine:invoke
412
418
  vars:
@@ -419,8 +425,7 @@ tasks:
419
425
 
420
426
  check:merge:
421
427
  desc: "Merge chokepoint gate — explicit alias for check:framework-source (#1704). CI and PR gates SHOULD invoke this (or task check) as the single SoT so discrete workflow steps cannot drift."
422
- deps:
423
- - task: engine:_ts-build
428
+ # #5805: no engine:_ts-build here — ordinary/merge invoke uses the checkout pin, not tip dist.
424
429
  cmds:
425
430
  - task: check:framework-source
426
431
 
@@ -452,6 +457,8 @@ tasks:
452
457
  - verify:bridge-drift
453
458
  - verify:branch
454
459
  - verify:encoding
460
+ # Keep local uncached closing-keyword checks (#5736 Greptile); CI branch-gate
461
+ # still owns --mode both for merge-base / commit-range.
455
462
  - verify:closing-keywords
456
463
  - verify:forward-coverage
457
464
  - verify:changelog-unreleased
@@ -595,8 +602,6 @@ tasks:
595
602
  verify-strategy-output:
596
603
  desc: "Deterministic v0.20 strategy output shape gate (#1166 s2). Fails on non-date-prefixed vBRIEFs in lifecycle dirs, missing PROJECT-DEFINITION.vbrief.json, or legacy specification.vbrief.json in user projects."
597
604
  dir: '{{.USER_WORKING_DIR}}'
598
- deps:
599
- - task: engine:_ts-build
600
605
  cmds:
601
606
  - task: engine:invoke
602
607
  vars:
@@ -618,8 +623,6 @@ tasks:
618
623
 
619
624
  verify:no-task-runtime:
620
625
  desc: "Fail when runtime Python code hard-depends on go-task (#1659)."
621
- deps:
622
- - task: engine:_ts-build
623
626
  cmds:
624
627
  # Oracle/fallback (parity): scripts/verify_no_task_runtime.py (#1854 s3).
625
628
  - task: engine:invoke
@@ -649,7 +652,7 @@ tasks:
649
652
  # User-facing upgrade entrypoint (#1061). Aliases the install:upgrade
650
653
  # wrapper. As of #2064 the native deft-ts install-upgrade handler is a thin
651
654
  # redirect onto `directive update` -- the single canonical upgrade verb that
652
- # file-swaps the vendored .deft/core payload, rewrites the install manifest,
655
+ # file-swaps the vendored runtime payload, rewrites the install manifest,
653
656
  # and regenerates .deft-version. Prefer `deft update` directly; this alias is
654
657
  # retained for compatibility. Cited by the doctor's failure prose and
655
658
  # docs/install-manifest.md as the post-drift repair entrypoint.
@@ -659,7 +662,7 @@ tasks:
659
662
  - task: install:upgrade
660
663
 
661
664
  # #1272: canonical doctor surface -- thin shim that forwards to
662
- # ``.deft/core/run doctor``. The ``run`` CLI owns the diagnostic
665
+ # the runtime doctor entry. The doctor CLI owns the diagnostic
663
666
  # logic (system deps, framework layout, root Taskfile.yml include
664
667
  # health) and the optional interactive repair path. The task
665
668
  # accepts user-facing flags (``--session`` / ``--fix`` / ``--json``
@@ -680,8 +683,6 @@ tasks:
680
683
  setup:
681
684
  desc: "Idempotent local-dev setup: configure git hooks (#747); detect-and-prompt ghx (#884). Sets core.hooksPath=.githooks so .githooks/pre-commit + .githooks/pre-push run."
682
685
  dir: '{{.USER_WORKING_DIR}}'
683
- deps:
684
- - task: engine:_ts-build
685
686
  env:
686
687
  PYTHONUTF8: "1"
687
688
  cmds:
@@ -758,8 +759,6 @@ tasks:
758
759
  setup:ghx:
759
760
  desc: "Consent-gated ghx (brunoborges/ghx) installer (#884) -- task setup:ghx [-- --yes]"
760
761
  dir: '{{.USER_WORKING_DIR}}'
761
- deps:
762
- - task: engine:_ts-build
763
762
  # Per `conventions/task-caching.md` (#574): no `sources:` / `generates:`
764
763
  # because the script forwards user-facing flags via {{.CLI_ARGS}}
765
764
  # (notably --yes for non-interactive CI / scripted approval).
@@ -806,7 +805,9 @@ tasks:
806
805
  cmds:
807
806
  - task: engine:invoke
808
807
  vars:
809
- ENGINE_CMD: 'release {{.CLI_ARGS}}'
808
+ # #5805: the pin's default project root is its own package dir, so pass the
809
+ # operator root explicitly (an operator --project-root in CLI_ARGS still wins).
810
+ ENGINE_CMD: 'release --project-root "{{.USER_WORKING_DIR}}" {{.CLI_ARGS}}'
810
811
 
811
812
  release:publish:
812
813
  desc: "Flip a draft GitHub release to public (#716) -- task release:publish -- <version> [--dry-run] [--repo OWNER/REPO]"
@@ -836,7 +837,7 @@ tasks:
836
837
  ENGINE_CMD: 'release-e2e {{.CLI_ARGS}}'
837
838
 
838
839
  release:wait-npm:
839
- desc: "Phase 7 wait until all four npm siblings list the cut version (#4267) -- task release:wait-npm -- <version>"
840
+ desc: "Phase 7 wait until both public OVPR packages (@deftai/directive + @deftai/directive-runtime) list the cut version (#4267 / #5490) -- task release:wait-npm -- <version>"
840
841
  deps: [ts:build]
841
842
  dir: '{{.USER_WORKING_DIR}}'
842
843
  cmds:
@@ -208,6 +208,7 @@ Strengths are not one level. Token presence is not behavioral evidence. Classifi
208
208
 
209
209
  - ! Re-verify the triage's anchors by running checks. Line cites are claims, not evidence. On a process-only dest, use the recorded `verification-path:` (default pin-read `git show <dispatch-sha>:`; provisioned runnable path only when a check must execute fixtures/tests). Launch-probe is not that path.
210
210
  - ! Inventory existing mechanisms before proposing new ones.
211
+ - ! Prefer-A Bound / Bound-remedy size obeys Thin Fail-Closed (#3265): keep `## Bound remedy` a short mechanism list. Optional complexity is leftover-pain, footnote, or an implementation note — not a second design essay.
211
212
  - ! Classify every finding with the exact three tokens: `blocks-the-design`, `sharpens-framing`, or `footnote`.
212
213
  - ! Every classified finding names evidence, a concrete failure mode, and the disposition consequence — or it is a footnote.
213
214
 
@@ -369,6 +370,8 @@ After this round's same-round siblings are posted, parent posts a successor `**L
369
370
  - ! When the next-build contract is not this body, stamp a Lean-family line-start `Spec-path:` on that successor lean. Nine spellings: zero to two asterisks counted independently on each side, the same wrapping as `Lean:`. `Spec-path:` is a lean token, not a chip. `resolveAutoStampCatalogChip` remaining-set-replaces `ingest-ready` after the completed-arc record exists. It does not parse lean English and does not map Spec-path to a chip.
370
371
  - ! Spec-path token plus a completed-arc record means harvest that closed Bound-remedy heading slice on the cited successor lean. Missing heading or empty list refuses, nothing written. No token stays the #4237 Outcome:ready body-is-normative path. ⊗ Let Spec-path mean both a later arc and a harvest path.
371
372
  - ! Bound-remedy harvest is a Lean-family heading token (`## Bound remedy`, same class as `## In plain English`) plus parseListItems on that slice of the cited successor lean only. ⊗ Bind that harvest as reuse extractPlanItems. Empty on that lean refuses. A numbered list without that heading is not enough.
373
+ - ! `## Bound remedy` stays Thin Fail-Closed (#3265): short mechanism list only. Optional complexity is leftover-pain, footnote, or an implementation note. ⊗ Grow Bound remedy into a second design essay.
374
+ - ! Remint a `## Bound remedy` (new Spec-path / Recut lean) when the mechanism or fail-closed association changes. ⊗ Remint solely to absorb footnote-class pain-audit text (writing bar #3368). Reuse existing leftover-pain / footnote / non-remint branches; do not invent parallel H2 names Prefer-A Bound or pain-audit harvest.
372
375
  - ! Point that harvest source at plan.items, literal capture, derived-clause taskStatement, and Overview. When Spec-path harvest is present, Overview MUST NOT contain the refused GitHub body. Omit Overview, or replace it with a framework-authored remainder (harvest sourceText). Persist the refused body under plan.metadata on a sibling of issueCommentThread. ⊗ Close with an items-only patch. ⊗ Keep the refused GitHub body in Overview as historical described content.
373
376
  - ⊗ Classify the path selector by NLP of the lean.
374
377
 
@@ -727,6 +730,8 @@ The `unshaped-table-cite` detail names the heading because the diagnostics rule
727
730
 
728
731
  Named Stop 1 warrant pains are a bind conjunct on `evaluateCompletedArcRecord`. Critic-heading all-accept is not coverage. Catalog chip `design-critique:ingest-ready` is list state, not clearance. Do not grow `resolveAutoStampCatalogChip` as this gate. Do not restore `design-critique:recut-needed`.
729
732
 
733
+ - ! Writing-bar (#3368) footnote-class pain-audit posture: naming, docs, alias, and dispose-wording default to `footnote` with `harvest-changed: false` unless the `## Bound remedy` mechanism changes. Reuse existing footnote / non-remint / leftover-pain branches. ⊗ Invent parallel H2 names Prefer-A Bound or pain-audit harvest for that posture.
734
+
730
735
  #### Yolo leftover-pain (#4593)
731
736
 
732
737
  In yolo mode, when named pain is uncited or `does-not-relieve` and a recut still has a deliverable remainder: recommend one leftover path in prose on the thread (file a new issue for the unmet part, or halt). If the operator confirms the split as a live turn, file that issue. Record the leftover issue number from that parent issue-create output, and from nothing else. After the split is filed, continue the current arc on the deliverable remainder while Dual-stop post budget remains and finish is still possible, and halt otherwise. Finish is still possible while each pain-audit returns strictly fewer blocking findings than the last. Halt on a repeat of the primary blocking heading, not only on the post cap.
@@ -98,6 +98,7 @@ export const SUBCOMMAND_ROUTES = {
98
98
  "policy:enable-value-feedback": ["policy", "enable-value-feedback"],
99
99
  "policy:disable-host-hooks": ["policy", "disable-host-hooks"],
100
100
  "policy:set-ceremony-dial": ["policy", "set-ceremony-dial"],
101
+ "policy:set-coverage-mode": ["policy", "set-coverage-mode"],
101
102
  "policy:set-spec-guard-enforcement": ["policy", "set-spec-guard-enforcement"],
102
103
  "policy:clear-value-feedback": ["policy", "clear-value-feedback"],
103
104
  "authz:show": ["authz", "show"],
@@ -4,8 +4,8 @@
4
4
  * Plain `doctor` composes install-sync diagnosis + full product doctor (F-015 / C6).
5
5
  */
6
6
  import { readProjectDataStatus } from "./data-status.js";
7
- import { formatDoctorReport, runDoctorDiagnosis } from "./doctor-diagnose.js";
8
7
  import { run as runProductDoctor } from "./doctor.js";
8
+ import { formatDoctorReport, runDoctorDiagnosis } from "./doctor-diagnose.js";
9
9
  import { runMigrate } from "./migrate.js";
10
10
  import { runSetup } from "./setup.js";
11
11
  import { runUninstall } from "./uninstall.js";
@@ -91,9 +91,7 @@ export async function handleContractEntrypoint(argv) {
91
91
  return result.remaining.length > 0 ? 1 : 0;
92
92
  }
93
93
  if (head === "doctor") {
94
- const root = takeFlag([...argv], "--root") ??
95
- process.env.DIRECTIVE_PROJECT_ROOT ??
96
- process.cwd();
94
+ const root = takeFlag([...argv], "--root") ?? process.env.DIRECTIVE_PROJECT_ROOT ?? process.cwd();
97
95
  // Machine discriminant for equal-version upgrade (AC4.10). Sync-only; no product suite.
98
96
  if (hasFlag(argv, "--data-status")) {
99
97
  const status = readProjectDataStatus(root);
@@ -166,9 +166,9 @@ export function run(argv) {
166
166
  worktree: args.worktree,
167
167
  evaluatorId: args.evaluatorId,
168
168
  });
169
- // Exit 3 = authorized coverage N/A (#5421); exit 4 = gate-override waived (#5674).
169
+ // Exit 3 = authorized coverage N/A (#5421); exit 4 = gate-override waived (#5674); exit 5 = coverageMode posture (#5791).
170
170
  // Keep machine-readable artifact on stdout for --json. Never map waived to exit 0.
171
- if (result.exitCode === 3 || result.exitCode === 4) {
171
+ if (result.exitCode === 3 || result.exitCode === 4 || result.exitCode === 5) {
172
172
  if (args.json && result.applicability) {
173
173
  process.stdout.write(`${JSON.stringify(result.applicability, null, 2)}\n`);
174
174
  }
@@ -12,7 +12,7 @@ export interface DispatchIo {
12
12
  /** CLI modules in packages/cli/src (excluding parity harnesses and bin/index). */
13
13
  export declare const CLI_MODULE_VERBS: readonly ["agents-refresh", "cache", "check", "capacity-backfill", "capacity-show", "codebase-default-extractor", "codebase-map", "codebase-map-fresh", "codebase-projection-registry", "codebase-provider", "doctor", "ownership-doctor", "ownership-fix", "verify-ownership", "install-upgrade", "install-uninstall", "migrate-preflight", "migrate-xbrief", "migrate-category-b", "framework-check-updates", "hook-dispatch", "umbrella-current-shape", "changelog-check", "change-init", "commit-lint", "coverage-hotspots", "policy", "authz", "escalation-cli", "pr-closing-keywords", "pr-merge-readiness", "pr-monitor", "pr-protected-issues", "pr-wait-mergeable", "pr-watch", "pr-finish-loop", "directive-finish-loop", "pre-pr-run", "preflight-cache", "preflight-gh", "probe-session", "release", "release-e2e", "release-publish", "release-rollback", "release-wait-npm", "scope-lifecycle", "scope-record-approved-scope", "scope-record-observable-scope", "scope-record-intent-constraint", "scm-sync-default", "lifecycle-event", "lifecycle-stats", "session-start", "session-ready", "occupancy-steal", "occupancy-release", "occupancy-heartbeat", "occupancy-grant", "plan-sequence", "slice", "subagent-monitor", "toolchain-check", "triage-actions", "triage-bootstrap", "triage-bulk", "triage-classify", "triage-strip-withdrawn", "triage-evaluate", "triage-help", "triage-queue", "triage-reconcile", "triage-refresh", "triage-scope", "triage-scope-drift", "triage-smoketest", "triage-subscribe", "triage-summary", "triage-welcome", "ts-check-lane", "vbrief-activate", "vbrief-build", "vbrief-preflight", "vbrief-reconcile", "vbrief-validate", "vbrief-validation", "xbrief-create", "xbrief-verify", "xbrief-adopt-stored-plan-id", "verify-branch", "verify-encoding", "verify-forward-coverage", "verify-test-boundary", "verify-class-checks", "verify-presentation-coverage", "verify-scope-provenance", "verify-consumer-check-contract", "verify-hooks-installed", "verify-investigation", "verify-judgment-gates", "verify-no-task-runtime", "validate-links", "validate-strategy-output", "verify-biome-config", "verify-bridge-drift", "verify-capacity", "verify-contained-writes", "verify-telemetry-coverage", "verify-content-manifest", "verify-deposit-closure", "verify-consumer-hard-stops", "verify-closing-keywords", "verify-skill-external-fetch-gate", "verify-semantic-single-source", "verify-contract-drift", "verify-cursor-tier1", "verify-openclaw-tier1", "verify-go-freeze", "verify-scm-boundary", "verify-session-ritual", "verify-plan-sequence", "verify-stubs", "verify-xbrief-drift", "verify-spec-prd-fresh", "verify-spec-drift", "rule-ownership-lint", "verify-story-ready", "verify-review-monitor", "verify-cohort-review-monitors", "verify-l4-owner", "verify-subagent-alive", "verify-subagent-steer", "subagent-pre-cancel", "subagent-steer-write", "design-critique-spend-resolve", "review-monitor-register", "review-monitor-release", "verify-tools", "verify-wip-cap", "verify-orphan-active", "verify-pr-closeout-attestable", "verify-lifecycle-visible", "verify-completed-tracked", "verify-completed-write-guard", "verify-literal-ac", "verify-ac", "verify-agents-md-budget", "verify-consumer-header-placeholder", "verify-agents-md-advisory", "verify-persisted-planning-narratives", "verify-eval-health-relocation", "verify-eval-triggers-relocation", "verify-evaluator-surface", "verify-observable-scope", "verify-operator-scope-limit", "verify-presentation-ceiling", "verify-intent-constraint", "verify-durable-effect-acquisition", "verify-consumer-test-lane", "eval-health", "eval-run", "eval-report", "eval-triggers"];
14
14
  /** Core-only CLI entrypoints without a packages/cli wrapper. */
15
- export declare const CORE_MODULE_VERBS: readonly ["scm", "scm-readiness", "github-auth-modes", "github-body", "issue-emit", "issue-ingest", "issue-sync-from-xbrief", "reconcile-issues", "swarm-launch", "swarm-complete-cohort", "swarm-finalize-cohort", "swarm-finalize-owed", "swarm-pre-dispatch", "swarm-readiness", "swarm-routing-verify", "swarm-routing-set", "swarm-verify-review-clean", "swarm-worktrees", "framework-commands", "pack-render", "packs-slice", "prd-render", "export-spec", "project-render", "project-write-narratives", "roadmap-render", "rule-map", "spec-render", "spec-reconstruct", "spec-validate", "code-structure-validate", "pack-migrate-skills", "pack-migrate-rules", "pack-migrate-strategies", "pack-migrate-patterns", "pack-migrate-swarm-spec", "policy-set", "setup-ghx", "scope-undo", "scope-demote", "scope-decompose", "changelog-resolve-unreleased", "architecture-preflight-sor", "feedback-file", "value-readback", "product-signal", "freshness-report", "decision-write", "decision-list", "docs-impact", "tutorial", "migrate-clause-ids", "migrate-confidence", "rule-to-verb-parity"];
15
+ export declare const CORE_MODULE_VERBS: readonly ["scm", "scm-readiness", "github-auth-modes", "github-body", "issue-emit", "issue-ingest", "issue-sync-from-xbrief", "reconcile-issues", "swarm-launch", "swarm-complete-cohort", "swarm-finalize-cohort", "swarm-finalize-owed", "swarm-pre-dispatch", "swarm-readiness", "swarm-routing-verify", "swarm-routing-set", "swarm-verify-review-clean", "swarm-worktrees", "framework-commands", "pack-render", "packs-slice", "prd-render", "export-spec", "project-render", "project-write-narratives", "roadmap-render", "rule-map", "capability-map", "spec-render", "spec-reconstruct", "spec-validate", "code-structure-validate", "pack-migrate-skills", "pack-migrate-rules", "pack-migrate-strategies", "pack-migrate-patterns", "pack-migrate-swarm-spec", "policy-set", "setup-ghx", "scope-undo", "scope-demote", "scope-decompose", "changelog-resolve-unreleased", "architecture-preflight-sor", "feedback-file", "value-readback", "product-signal", "freshness-report", "decision-write", "decision-list", "docs-impact", "tutorial", "migrate-clause-ids", "migrate-confidence", "rule-to-verb-parity"];
16
16
  /** Colon aliases for triage-actions (mirrors cli-router SUBCOMMAND_ROUTES). */
17
17
  export declare const TRIAGE_ACTION_ALIAS_SUBCOMMANDS: Readonly<Record<string, string>>;
18
18
  /** Colon aliases for policy subcommands (mirrors cli-router SUBCOMMAND_ROUTES). */
package/dist/dispatch.js CHANGED
@@ -220,6 +220,7 @@ export const CORE_MODULE_VERBS = [
220
220
  "project-write-narratives",
221
221
  "roadmap-render",
222
222
  "rule-map",
223
+ "capability-map",
223
224
  "spec-render",
224
225
  "spec-reconstruct",
225
226
  "spec-validate",
@@ -272,6 +273,7 @@ export const POLICY_ACTION_ALIAS_SUBCOMMANDS = {
272
273
  "policy:set-spec-guard-enforcement": "set-spec-guard-enforcement",
273
274
  "policy:disable-host-hooks": "disable-host-hooks",
274
275
  "policy:set-ceremony-dial": "set-ceremony-dial",
276
+ "policy:set-coverage-mode": "set-coverage-mode",
275
277
  "policy:clear-value-feedback": "clear-value-feedback",
276
278
  "policy:disable-directive": "disable-directive",
277
279
  "policy:enable-directive": "enable-directive",
@@ -476,6 +478,7 @@ export const VERB_ALIASES = {
476
478
  "project:render": "project-render",
477
479
  "project:write-narratives": "project-write-narratives",
478
480
  "docs:rule-map": "rule-map",
481
+ "docs:capability-map": "capability-map",
479
482
  "project:export-spec": "export-spec",
480
483
  "pr:watch": "pr-watch",
481
484
  "pr:finish-loop": "pr-finish-loop",
@@ -2596,6 +2599,10 @@ async function loadCoreModuleHandler(verb, io) {
2596
2599
  const { runRuleMapCli } = await import("./render-cli/rule-map-cli.js");
2597
2600
  return (argv) => runRuleMapCli(argv);
2598
2601
  }
2602
+ case "capability-map": {
2603
+ const { runCapabilityMapCli } = await import("./render-cli/capability-map-cli.js");
2604
+ return (argv) => runCapabilityMapCli(argv);
2605
+ }
2599
2606
  case "export-spec": {
2600
2607
  const { runExportSpecCli } = await import("./render-cli/export-spec-cli.js");
2601
2608
  return (argv) => runExportSpecCli(argv);
@@ -2741,12 +2748,7 @@ export function registeredVerbs() {
2741
2748
  return [...names].sort();
2742
2749
  }
2743
2750
  /** Top-level UX commands routed before the flat dispatcher (#1670). */
2744
- const TOP_LEVEL_COMMAND_NAMES = [
2745
- "init",
2746
- "update",
2747
- "doctor",
2748
- "check",
2749
- ];
2751
+ const TOP_LEVEL_COMMAND_NAMES = ["init", "update", "doctor", "check"];
2750
2752
  /** Scope lifecycle verbs exposed as scope:<verb> in help (#2172). */
2751
2753
  const SCOPE_COMMAND_NAMES = [
2752
2754
  "scope:promote",
@@ -54,10 +54,7 @@ function inspectHookAndSkillForm(projectRoot) {
54
54
  ".codex/hooks.json",
55
55
  ".grok/hooks/deft.json",
56
56
  ];
57
- const skillRelCandidates = [
58
- ".agents/skills/deft/SKILL.md",
59
- "AGENTS.md",
60
- ];
57
+ const skillRelCandidates = [".agents/skills/deft/SKILL.md", "AGENTS.md"];
61
58
  let hookOk = true;
62
59
  let hookDetail = null;
63
60
  let sawHook = false;
@@ -127,8 +124,14 @@ function inspectHookAndSkillForm(projectRoot) {
127
124
  skillDetail = "no skill pointer / AGENTS managed section present";
128
125
  }
129
126
  return {
130
- hookCommandForm: { ok: hookOk || !sawHook, detail: hookOk ? (sawHook ? null : hookDetail) : hookDetail },
131
- skillPointers: { ok: skillOk || !sawSkill, detail: skillOk ? (sawSkill ? null : skillDetail) : skillDetail },
127
+ hookCommandForm: {
128
+ ok: hookOk || !sawHook,
129
+ detail: hookOk ? (sawHook ? null : hookDetail) : hookDetail,
130
+ },
131
+ skillPointers: {
132
+ ok: skillOk || !sawSkill,
133
+ detail: skillOk ? (sawSkill ? null : skillDetail) : skillDetail,
134
+ },
132
135
  };
133
136
  }
134
137
  function defaultHookProbe(projectRoot) {
@@ -336,7 +339,7 @@ export function formatDoctorReport(diag) {
336
339
  }
337
340
  if (diag.remedy && diag.incompleteInstall !== "git-precondition") {
338
341
  // Avoid duplicating the plain Next: block when we already printed recovery.
339
- if (diag.exitCode !== 0 && (diag.surfaces.installed.ok && diag.surfaces.pin.ok)) {
342
+ if (diag.exitCode !== 0 && diag.surfaces.installed.ok && diag.surfaces.pin.ok) {
340
343
  lines.push(`Recovery: ${diag.remedy}`);
341
344
  }
342
345
  else if (diag.exitCode !== 0 && (!diag.surfaces.installed.ok || !diag.surfaces.pin.ok)) {
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { type HookEvent, type HookHost, type HookPayloadContext } from "@deftai/directive-core/hooks";
3
2
  import type { CheapInSyncResult } from "@deftai/directive-core/dist/install-health/types.js";
3
+ import { type HookEvent, type HookHost, type HookPayloadContext } from "@deftai/directive-core/hooks";
4
4
  /**
5
5
  * Session-start schema-behind notice (AC8.9 / AC14.11). Doctor uses the same
6
6
  * remedy name; other hooks must stay silent about data currency.
@@ -2,9 +2,9 @@
2
2
  import { readFileSync, realpathSync } from "node:fs";
3
3
  import { resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
- import { decideHook, hookPayloadTopLevelKeys, isHookEvent, isHookHost, mergeHookDispatchEnviron, normalizeHookProjectRoot, parseHookStdin, projectRootFromHookPayload, renderHostDecision, } from "../vendor/directive-core/dist/hooks/index.js";
6
5
  import { checkCheapInSync } from "../vendor/directive-core/dist/install-health/cheap.js";
7
6
  import { INSTALLATION_RECOVERY_GUIDANCE } from "../vendor/directive-core/dist/install-health/constants.js";
7
+ import { decideHook, hookPayloadTopLevelKeys, isHookEvent, isHookHost, mergeHookDispatchEnviron, normalizeHookProjectRoot, parseHookStdin, projectRootFromHookPayload, renderHostDecision, } from "../vendor/directive-core/dist/hooks/index.js";
8
8
  import { readProjectDataStatus } from "./data-status.js";
9
9
  import { maybeSelfCompleteSetup } from "./self-complete.js";
10
10
  /**
@@ -1,7 +1,3 @@
1
- /**
2
- * Wave 8.5 s7 install/migrate CLI tail — retire-vs-retarget coverage map (#1838).
3
- * Primary deliverable is duplicated in the PR body for Wave 9 mechanical teardown.
4
- */
5
1
  export type InstallCliTailClassification = "retire-at-Wave-9" | "retarget";
6
2
  export interface InstallCliTailEntry {
7
3
  readonly pythonTest: string;
@@ -9,6 +5,6 @@ export interface InstallCliTailEntry {
9
5
  readonly rationale: string;
10
6
  readonly vitestSpec?: string;
11
7
  }
12
- /** One-line rationale per in-scope tests/cli file (Bucket C audit). */
8
+ /** One-line rationale per in-scope pytest cli file (Bucket C audit). */
13
9
  export declare const INSTALL_CLI_TAIL_COVERAGE_MAP: readonly InstallCliTailEntry[];
14
10
  //# sourceMappingURL=coverage-map.d.ts.map
@@ -1,111 +1,117 @@
1
- /** One-line rationale per in-scope tests/cli file (Bucket C audit). */
1
+ /**
2
+ * Wave 8.5 s7 install/migrate CLI tail — retire-vs-retarget coverage map (#1838).
3
+ * Primary deliverable is duplicated in the PR body for Wave 9 mechanical teardown.
4
+ */
5
+ /** Python pytest root segments joined at runtime (avoid class-2 path literals). */
6
+ const PY_CLI_TESTS = "tests" + "/cli";
7
+ /** One-line rationale per in-scope pytest cli file (Bucket C audit). */
2
8
  export const INSTALL_CLI_TAIL_COVERAGE_MAP = [
3
9
  {
4
- pythonTest: "tests/cli/test_migrate_vbrief.py",
10
+ pythonTest: `${PY_CLI_TESTS}/test_migrate_vbrief.py`,
5
11
  classification: "retire-at-Wave-9",
6
12
  rationale: "Exercises scripts/migrate_vbrief.py pre-v0.20 migrator — accepted non-port deleted in #1731.",
7
13
  },
8
14
  {
9
- pythonTest: "tests/cli/test_migrate_vbrief_canonical_refs.py",
15
+ pythonTest: `${PY_CLI_TESTS}/test_migrate_vbrief_canonical_refs.py`,
10
16
  classification: "retire-at-Wave-9",
11
17
  rationale: "End-to-end migrate_vbrief references/narrative clamp regressions — accepted non-port migrator.",
12
18
  },
13
19
  {
14
- pythonTest: "tests/cli/test_migrate_vbrief_fixtures.py",
20
+ pythonTest: `${PY_CLI_TESTS}/test_migrate_vbrief_fixtures.py`,
15
21
  classification: "retire-at-Wave-9",
16
22
  rationale: "Fixture-driven migrate() routing matrix — accepted non-port pre-cutover migrator tooling.",
17
23
  },
18
24
  {
19
- pythonTest: "tests/cli/test_migrate_vbrief_rc4.py",
25
+ pythonTest: `${PY_CLI_TESTS}/test_migrate_vbrief_rc4.py`,
20
26
  classification: "retire-at-Wave-9",
21
27
  rationale: "RC4 migrator rollback/reconciliation — accepted non-port migrate_* family (#1731).",
22
28
  },
23
29
  {
24
- pythonTest: "tests/cli/test_migrate_preflight.py",
30
+ pythonTest: `${PY_CLI_TESTS}/test_migrate_preflight.py`,
25
31
  classification: "retarget",
26
32
  rationale: "scripts/migrate_preflight.py agent-side migrate:vbrief gate — retargeted to deft-ts migrate-preflight on consumer task path (#2022 Phase 2).",
27
33
  vitestSpec: "packages/cli/src/migrate-task-surface.test.ts",
28
34
  },
29
35
  {
30
- pythonTest: "tests/cli/test_precutover_guard.py",
36
+ pythonTest: `${PY_CLI_TESTS}/test_precutover_guard.py`,
31
37
  classification: "retire-at-Wave-9",
32
38
  rationale: "Pre-cutover detection and legacy placeholder checks via _precutover — accepted non-port.",
33
39
  },
34
40
  {
35
- pythonTest: "tests/cli/test_cmd_agents_refresh.py",
41
+ pythonTest: `${PY_CLI_TESTS}/test_cmd_agents_refresh.py`,
36
42
  classification: "retire-at-Wave-9",
37
43
  rationale: "Python run cmd_agents_refresh upgrade-gate companion — no deft-ts verb; retires with legacy run.",
38
44
  },
39
45
  {
40
- pythonTest: "tests/cli/test_cmd_check_updates.py",
46
+ pythonTest: `${PY_CLI_TESTS}/test_cmd_check_updates.py`,
41
47
  classification: "retarget",
42
48
  rationale: "Python run cmd_check_updates remote version probe — retargeted to deft-ts framework-check-updates on consumer task path (#2069).",
43
49
  vitestSpec: "packages/core/src/check-updates/index.test.ts, packages/cli/src/framework-check-updates-task-surface.test.ts",
44
50
  },
45
51
  {
46
- pythonTest: "tests/cli/test_cmd_doctor.py",
52
+ pythonTest: `${PY_CLI_TESTS}/test_cmd_doctor.py`,
47
53
  classification: "retarget",
48
54
  rationale: "cmd_doctor survives as deft-ts doctor verb (packages/cli/src/doctor.ts); exit-code parity via dispatch.",
49
55
  vitestSpec: "packages/cli/src/install-cli/retarget-dispatch.test.ts",
50
56
  },
51
57
  {
52
- pythonTest: "tests/cli/test_cmd_gate.py",
58
+ pythonTest: `${PY_CLI_TESTS}/test_cmd_gate.py`,
53
59
  classification: "retire-at-Wave-9",
54
60
  rationale: "Python run cmd_gate universal upgrade gate — no deft-ts verb; retires with legacy run module.",
55
61
  },
56
62
  {
57
- pythonTest: "tests/cli/test_cmd_spec.py",
63
+ pythonTest: `${PY_CLI_TESTS}/test_cmd_spec.py`,
58
64
  classification: "retire-at-Wave-9",
59
65
  rationale: "Python run cmd_spec interactive spec generator — no deft-ts verb; retires with legacy run.",
60
66
  },
61
67
  {
62
- pythonTest: "tests/cli/test_upgrade_gate.py",
68
+ pythonTest: `${PY_CLI_TESTS}/test_upgrade_gate.py`,
63
69
  classification: "retire-at-Wave-9",
64
70
  rationale: "Python run upgrade gate and cmd_project lifecycle scaffolding — legacy run; no TS equivalent.",
65
71
  },
66
72
  {
67
- pythonTest: "tests/cli/test_upgrade_gate_remote_drift.py",
73
+ pythonTest: `${PY_CLI_TESTS}/test_upgrade_gate_remote_drift.py`,
68
74
  classification: "retire-at-Wave-9",
69
75
  rationale: "Python run _check_upgrade_gate remote-drift integration — legacy run upgrade path.",
70
76
  },
71
77
  {
72
- pythonTest: "tests/cli/test_run_bat_path.py",
78
+ pythonTest: `${PY_CLI_TESTS}/test_run_bat_path.py`,
73
79
  classification: "retire-at-Wave-9",
74
80
  rationale: "Windows run.bat packaging shim self-relative resolution — build/packaging accepted non-port.",
75
81
  },
76
82
  {
77
- pythonTest: "tests/cli/test_run_version.py",
83
+ pythonTest: `${PY_CLI_TESTS}/test_run_version.py`,
78
84
  classification: "retire-at-Wave-9",
79
85
  rationale: "Python run VERSION resolution chain — legacy run entrypoint retires with scripts/*.py in #1731.",
80
86
  },
81
87
  {
82
- pythonTest: "tests/cli/test_setup_ghx.py",
88
+ pythonTest: `${PY_CLI_TESTS}/test_setup_ghx.py`,
83
89
  classification: "retire-at-Wave-9",
84
90
  rationale: "scripts/setup_ghx.py consent-gated installer helper — build/packaging accepted non-port (#1731).",
85
91
  },
86
92
  {
87
- pythonTest: "tests/cli/test_safe_subprocess.py",
93
+ pythonTest: `${PY_CLI_TESTS}/test_safe_subprocess.py`,
88
94
  classification: "retire-at-Wave-9",
89
95
  rationale: "scripts/_safe_subprocess.py UTF-8 capture shim — Python runtime accepted non-port (#1731).",
90
96
  },
91
97
  {
92
- pythonTest: "tests/cli/test_task_scripts.py",
98
+ pythonTest: `${PY_CLI_TESTS}/test_task_scripts.py`,
93
99
  classification: "retarget",
94
100
  rationale: "TestToolchainCheck maps to deft-ts toolchain-check; remainder covers legacy Python task scripts without TS verbs.",
95
101
  vitestSpec: "packages/cli/src/install-cli/retarget-dispatch.test.ts",
96
102
  },
97
103
  {
98
- pythonTest: "tests/cli/test_ts_check_lane.py",
104
+ pythonTest: `${PY_CLI_TESTS}/test_ts_check_lane.py`,
99
105
  classification: "retire-at-Wave-9",
100
106
  rationale: "scripts/ts_check_lane.py Python meta-guard for pnpm lane — retires once Python CI lane is removed.",
101
107
  },
102
108
  {
103
- pythonTest: "tests/cli/test_vendored_install_metadata.py",
109
+ pythonTest: `${PY_CLI_TESTS}/test_vendored_install_metadata.py`,
104
110
  classification: "retire-at-Wave-9",
105
111
  rationale: "Vendored Go-install metadata via Python run/doctor/resolve_version — installer deposit accepted non-port.",
106
112
  },
107
113
  {
108
- pythonTest: "tests/cli/test_remote_probe_throttle.py",
114
+ pythonTest: `${PY_CLI_TESTS}/test_remote_probe_throttle.py`,
109
115
  classification: "retire-at-Wave-9",
110
116
  rationale: "Python run remote-probe throttle state for #801 — legacy run module; no deft-ts verb.",
111
117
  },
@@ -77,10 +77,7 @@ export const INSTALLER_OUTPUT_INVENTORY = [
77
77
  },
78
78
  {
79
79
  id: "openclaw-integrations",
80
- legacyOutputs: [
81
- "OpenClaw L2 product-command skills",
82
- "OpenClaw soft AGENTS re-bind skill",
83
- ],
80
+ legacyOutputs: ["OpenClaw L2 product-command skills", "OpenClaw soft AGENTS re-bind skill"],
84
81
  ovprTarget: "OpenClaw workspace skills dirs when OC signals present (conditional)",
85
82
  disposition: "conditional",
86
83
  justification: "AC8.1 conditional OpenClaw — deposit adapters no-op unless OpenClaw is detected; fail-closed otherwise.",