dorfl 0.1.1 → 0.2.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 (492) hide show
  1. package/dist/advance-ci-template.d.ts +3 -3
  2. package/dist/advance-ci-template.js +1 -1
  3. package/dist/advance-ci-template.js.map +1 -1
  4. package/dist/advance-classify.d.ts +5 -5
  5. package/dist/advance-classify.d.ts.map +1 -1
  6. package/dist/advance-classify.js +4 -4
  7. package/dist/advance-drivers.d.ts +8 -8
  8. package/dist/advance-drivers.d.ts.map +1 -1
  9. package/dist/advance-drivers.js +20 -8
  10. package/dist/advance-drivers.js.map +1 -1
  11. package/dist/advance-isolated.d.ts +3 -3
  12. package/dist/advance-isolated.d.ts.map +1 -1
  13. package/dist/advance-isolated.js +1 -1
  14. package/dist/advance-lifecycle-template.d.ts +2 -2
  15. package/dist/advance-lifecycle-template.d.ts.map +1 -1
  16. package/dist/advance-lifecycle-template.js +85 -13
  17. package/dist/advance-lifecycle-template.js.map +1 -1
  18. package/dist/advance-loop-driver.d.ts +3 -3
  19. package/dist/advance-loop-driver.d.ts.map +1 -1
  20. package/dist/advance-loop-driver.js +1 -1
  21. package/dist/advance-treeless-publish.d.ts +24 -1
  22. package/dist/advance-treeless-publish.d.ts.map +1 -1
  23. package/dist/advance-treeless-publish.js +41 -0
  24. package/dist/advance-treeless-publish.js.map +1 -1
  25. package/dist/advance.d.ts +69 -17
  26. package/dist/advance.d.ts.map +1 -1
  27. package/dist/advance.js +409 -102
  28. package/dist/advance.js.map +1 -1
  29. package/dist/advancing-lock.d.ts +31 -3
  30. package/dist/advancing-lock.d.ts.map +1 -1
  31. package/dist/advancing-lock.js +55 -5
  32. package/dist/advancing-lock.js.map +1 -1
  33. package/dist/agent-launch.d.ts +12 -0
  34. package/dist/agent-launch.d.ts.map +1 -1
  35. package/dist/agent-launch.js +22 -12
  36. package/dist/agent-launch.js.map +1 -1
  37. package/dist/agent-stop.d.ts +40 -2
  38. package/dist/agent-stop.d.ts.map +1 -1
  39. package/dist/agent-stop.js +30 -2
  40. package/dist/agent-stop.js.map +1 -1
  41. package/dist/apply-decide.d.ts +19 -5
  42. package/dist/apply-decide.d.ts.map +1 -1
  43. package/dist/apply-decide.js +38 -9
  44. package/dist/apply-decide.js.map +1 -1
  45. package/dist/apply-merge-action.d.ts +20 -8
  46. package/dist/apply-merge-action.d.ts.map +1 -1
  47. package/dist/apply-merge-action.js +44 -9
  48. package/dist/apply-merge-action.js.map +1 -1
  49. package/dist/apply-persist.d.ts +62 -31
  50. package/dist/apply-persist.d.ts.map +1 -1
  51. package/dist/apply-persist.js +173 -44
  52. package/dist/apply-persist.js.map +1 -1
  53. package/dist/apply-stuck-action.d.ts +151 -0
  54. package/dist/apply-stuck-action.d.ts.map +1 -0
  55. package/dist/apply-stuck-action.js +125 -0
  56. package/dist/apply-stuck-action.js.map +1 -0
  57. package/dist/brand.d.ts +12 -1
  58. package/dist/brand.d.ts.map +1 -1
  59. package/dist/brand.js +2 -1
  60. package/dist/brand.js.map +1 -1
  61. package/dist/buildable-body.d.ts +14 -14
  62. package/dist/buildable-body.js +9 -9
  63. package/dist/claim-cas.d.ts +3 -3
  64. package/dist/claim-cas.js +1 -1
  65. package/dist/claim-cas.js.map +1 -1
  66. package/dist/cli-spinner.d.ts +1 -1
  67. package/dist/cli-spinner.js +1 -1
  68. package/dist/cli.d.ts +10 -0
  69. package/dist/cli.d.ts.map +1 -1
  70. package/dist/cli.js +385 -128
  71. package/dist/cli.js.map +1 -1
  72. package/dist/close-job-template.d.ts +3 -3
  73. package/dist/close-job-template.js +9 -9
  74. package/dist/close-job.d.ts +8 -8
  75. package/dist/close-job.js +25 -25
  76. package/dist/close-job.js.map +1 -1
  77. package/dist/complete.d.ts +9 -6
  78. package/dist/complete.d.ts.map +1 -1
  79. package/dist/complete.js +99 -45
  80. package/dist/complete.js.map +1 -1
  81. package/dist/concurrency.d.ts +1 -1
  82. package/dist/concurrency.js +1 -1
  83. package/dist/config.d.ts +86 -40
  84. package/dist/config.d.ts.map +1 -1
  85. package/dist/config.js +61 -9
  86. package/dist/config.js.map +1 -1
  87. package/dist/continue-branch.d.ts +1 -1
  88. package/dist/continue-branch.d.ts.map +1 -1
  89. package/dist/continue-branch.js +23 -1
  90. package/dist/continue-branch.js.map +1 -1
  91. package/dist/cwd-section.js +1 -1
  92. package/dist/cwd-section.js.map +1 -1
  93. package/dist/decision-engine.d.ts +39 -11
  94. package/dist/decision-engine.d.ts.map +1 -1
  95. package/dist/decision-engine.js +10 -6
  96. package/dist/decision-engine.js.map +1 -1
  97. package/dist/do-autopick.d.ts +6 -6
  98. package/dist/do-autopick.d.ts.map +1 -1
  99. package/dist/do-autopick.js +16 -6
  100. package/dist/do-autopick.js.map +1 -1
  101. package/dist/do-config.d.ts +4 -4
  102. package/dist/do-config.js +3 -3
  103. package/dist/do-config.js.map +1 -1
  104. package/dist/do-remote-auto.d.ts +2 -2
  105. package/dist/do-remote-auto.js +1 -1
  106. package/dist/do.d.ts +74 -81
  107. package/dist/do.d.ts.map +1 -1
  108. package/dist/do.js +439 -50
  109. package/dist/do.js.map +1 -1
  110. package/dist/drop-source.d.ts +2 -2
  111. package/dist/env-config.d.ts.map +1 -1
  112. package/dist/env-config.js +19 -11
  113. package/dist/env-config.js.map +1 -1
  114. package/dist/failure-cause.d.ts +3 -2
  115. package/dist/failure-cause.d.ts.map +1 -1
  116. package/dist/failure-cause.js +28 -1
  117. package/dist/failure-cause.js.map +1 -1
  118. package/dist/format.d.ts +6 -6
  119. package/dist/format.d.ts.map +1 -1
  120. package/dist/format.js +13 -30
  121. package/dist/format.js.map +1 -1
  122. package/dist/frontmatter.d.ts +28 -15
  123. package/dist/frontmatter.d.ts.map +1 -1
  124. package/dist/frontmatter.js +38 -24
  125. package/dist/frontmatter.js.map +1 -1
  126. package/dist/gc.d.ts +65 -6
  127. package/dist/gc.d.ts.map +1 -1
  128. package/dist/gc.js +126 -9
  129. package/dist/gc.js.map +1 -1
  130. package/dist/github.d.ts +14 -0
  131. package/dist/github.d.ts.map +1 -1
  132. package/dist/github.js +73 -0
  133. package/dist/github.js.map +1 -1
  134. package/dist/harness.d.ts +25 -0
  135. package/dist/harness.d.ts.map +1 -1
  136. package/dist/harness.js.map +1 -1
  137. package/dist/index.d.ts +4 -1
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +2 -1
  140. package/dist/index.js.map +1 -1
  141. package/dist/install-ci-branch-protection.d.ts +133 -39
  142. package/dist/install-ci-branch-protection.d.ts.map +1 -1
  143. package/dist/install-ci-branch-protection.js +191 -49
  144. package/dist/install-ci-branch-protection.js.map +1 -1
  145. package/dist/install-ci-capabilities/advance-lifecycle.d.ts +1 -1
  146. package/dist/install-ci-capabilities/advance-lifecycle.js +1 -1
  147. package/dist/install-ci-capabilities/close-job.d.ts +1 -1
  148. package/dist/install-ci-capabilities/close-job.js +1 -1
  149. package/dist/install-ci-capabilities/example-noop.d.ts +1 -1
  150. package/dist/install-ci-capabilities/example-noop.js +1 -1
  151. package/dist/install-ci-capabilities/intake.d.ts +2 -2
  152. package/dist/install-ci-capabilities/intake.js +2 -2
  153. package/dist/install-ci-capabilities/verify.d.ts +1 -1
  154. package/dist/install-ci-capabilities/verify.js +1 -1
  155. package/dist/install-ci-core.d.ts +24 -4
  156. package/dist/install-ci-core.d.ts.map +1 -1
  157. package/dist/install-ci-core.js +12 -5
  158. package/dist/install-ci-core.js.map +1 -1
  159. package/dist/install-ci-github.d.ts +33 -1
  160. package/dist/install-ci-github.d.ts.map +1 -1
  161. package/dist/install-ci-github.js +74 -1
  162. package/dist/install-ci-github.js.map +1 -1
  163. package/dist/install-ci.d.ts +1 -1
  164. package/dist/install-ci.js +4 -4
  165. package/dist/install-ci.js.map +1 -1
  166. package/dist/install-skills.d.ts +123 -0
  167. package/dist/install-skills.d.ts.map +1 -0
  168. package/dist/install-skills.js +100 -0
  169. package/dist/install-skills.js.map +1 -0
  170. package/dist/intake-event.d.ts +6 -6
  171. package/dist/intake-event.js +6 -6
  172. package/dist/intake-marker.d.ts +3 -3
  173. package/dist/intake-marker.d.ts.map +1 -1
  174. package/dist/intake-triage.d.ts +1 -1
  175. package/dist/intake-triage.js +2 -2
  176. package/dist/intake-trigger-template.d.ts +8 -8
  177. package/dist/intake-trigger-template.d.ts.map +1 -1
  178. package/dist/intake-trigger-template.js +17 -17
  179. package/dist/intake-trigger-template.js.map +1 -1
  180. package/dist/intake.d.ts +65 -52
  181. package/dist/intake.d.ts.map +1 -1
  182. package/dist/intake.js +92 -76
  183. package/dist/intake.js.map +1 -1
  184. package/dist/integration-core.d.ts +27 -24
  185. package/dist/integration-core.d.ts.map +1 -1
  186. package/dist/integration-core.js +191 -77
  187. package/dist/integration-core.js.map +1 -1
  188. package/dist/integrator.d.ts +1 -1
  189. package/dist/integrator.d.ts.map +1 -1
  190. package/dist/integrator.js +19 -3
  191. package/dist/integrator.js.map +1 -1
  192. package/dist/isolation.d.ts +4 -4
  193. package/dist/isolation.d.ts.map +1 -1
  194. package/dist/isolation.js +9 -0
  195. package/dist/isolation.js.map +1 -1
  196. package/dist/issue-provider.d.ts +4 -4
  197. package/dist/issue-provider.js +1 -1
  198. package/dist/item-lock.d.ts +216 -149
  199. package/dist/item-lock.d.ts.map +1 -1
  200. package/dist/item-lock.js +345 -270
  201. package/dist/item-lock.js.map +1 -1
  202. package/dist/item-path.d.ts +2 -2
  203. package/dist/item-path.js +2 -2
  204. package/dist/ledger-lint.d.ts +9 -9
  205. package/dist/ledger-lint.js +9 -9
  206. package/dist/ledger-read.d.ts +57 -57
  207. package/dist/ledger-read.d.ts.map +1 -1
  208. package/dist/ledger-read.js +24 -24
  209. package/dist/ledger-read.js.map +1 -1
  210. package/dist/ledger-write.d.ts +33 -28
  211. package/dist/ledger-write.d.ts.map +1 -1
  212. package/dist/ledger-write.js +100 -122
  213. package/dist/ledger-write.js.map +1 -1
  214. package/dist/lifecycle-gather.d.ts +18 -1
  215. package/dist/lifecycle-gather.d.ts.map +1 -1
  216. package/dist/lifecycle-gather.js +23 -17
  217. package/dist/lifecycle-gather.js.map +1 -1
  218. package/dist/lifecycle-pools.d.ts +44 -7
  219. package/dist/lifecycle-pools.d.ts.map +1 -1
  220. package/dist/lifecycle-pools.js +27 -7
  221. package/dist/lifecycle-pools.js.map +1 -1
  222. package/dist/merge-question-surfacer.d.ts +18 -4
  223. package/dist/merge-question-surfacer.d.ts.map +1 -1
  224. package/dist/merge-question-surfacer.js +20 -5
  225. package/dist/merge-question-surfacer.js.map +1 -1
  226. package/dist/migrate-stuck-locks.d.ts +129 -0
  227. package/dist/migrate-stuck-locks.d.ts.map +1 -0
  228. package/dist/migrate-stuck-locks.js +355 -0
  229. package/dist/migrate-stuck-locks.js.map +1 -0
  230. package/dist/mint-adr.js +4 -4
  231. package/dist/mirror-pool-scan.d.ts +2 -2
  232. package/dist/mirror-pool-scan.js +3 -3
  233. package/dist/mirror-pool-scan.js.map +1 -1
  234. package/dist/needs-attention.d.ts +304 -27
  235. package/dist/needs-attention.d.ts.map +1 -1
  236. package/dist/needs-attention.js +542 -67
  237. package/dist/needs-attention.js.map +1 -1
  238. package/dist/orphan-sidecar.d.ts +10 -6
  239. package/dist/orphan-sidecar.d.ts.map +1 -1
  240. package/dist/orphan-sidecar.js +35 -2
  241. package/dist/orphan-sidecar.js.map +1 -1
  242. package/dist/pi-harness.d.ts +16 -0
  243. package/dist/pi-harness.d.ts.map +1 -1
  244. package/dist/pi-harness.js +82 -2
  245. package/dist/pi-harness.js.map +1 -1
  246. package/dist/placement.d.ts +8 -8
  247. package/dist/placement.js +3 -3
  248. package/dist/prd-to-spec.d.ts.map +1 -1
  249. package/dist/prd-to-spec.js +9 -5
  250. package/dist/prd-to-spec.js.map +1 -1
  251. package/dist/prompt.d.ts +16 -19
  252. package/dist/prompt.d.ts.map +1 -1
  253. package/dist/prompt.js +17 -19
  254. package/dist/prompt.js.map +1 -1
  255. package/dist/protocol/CLAIM-PROTOCOL.md +17 -10
  256. package/dist/protocol/REVIEW-PROTOCOL.md +4 -1
  257. package/dist/protocol/SURFACE-PROTOCOL.md +16 -2
  258. package/dist/protocol/TASKING-PROTOCOL.md +3 -1
  259. package/dist/protocol/WORK-CONTRACT.md +22 -18
  260. package/dist/protocol/task-template.md +1 -1
  261. package/dist/readiness.d.ts +1 -1
  262. package/dist/reap-branches.d.ts +12 -9
  263. package/dist/reap-branches.d.ts.map +1 -1
  264. package/dist/reap-branches.js +25 -7
  265. package/dist/reap-branches.js.map +1 -1
  266. package/dist/recover-isolated.d.ts +12 -0
  267. package/dist/recover-isolated.d.ts.map +1 -1
  268. package/dist/recover-isolated.js +6 -1
  269. package/dist/recover-isolated.js.map +1 -1
  270. package/dist/repo-config.d.ts +23 -2
  271. package/dist/repo-config.d.ts.map +1 -1
  272. package/dist/repo-config.js +64 -18
  273. package/dist/repo-config.js.map +1 -1
  274. package/dist/repo-mirror.d.ts.map +1 -1
  275. package/dist/repo-mirror.js +18 -2
  276. package/dist/repo-mirror.js.map +1 -1
  277. package/dist/review-gate.d.ts +3 -3
  278. package/dist/review-gate.d.ts.map +1 -1
  279. package/dist/review-gate.js +11 -10
  280. package/dist/review-gate.js.map +1 -1
  281. package/dist/review-verdict.d.ts +2 -2
  282. package/dist/review-verdict.d.ts.map +1 -1
  283. package/dist/review-verdict.js +2 -2
  284. package/dist/review-verdict.js.map +1 -1
  285. package/dist/run.d.ts +2 -2
  286. package/dist/run.d.ts.map +1 -1
  287. package/dist/run.js +58 -23
  288. package/dist/run.js.map +1 -1
  289. package/dist/scan.d.ts +26 -17
  290. package/dist/scan.d.ts.map +1 -1
  291. package/dist/scan.js +29 -15
  292. package/dist/scan.js.map +1 -1
  293. package/dist/select-order.d.ts +1 -1
  294. package/dist/select-priority.d.ts +14 -14
  295. package/dist/select-priority.d.ts.map +1 -1
  296. package/dist/select-priority.js +5 -5
  297. package/dist/select-priority.js.map +1 -1
  298. package/dist/sidecar-apply.js +1 -1
  299. package/dist/sidecar-apply.js.map +1 -1
  300. package/dist/sidecar.d.ts +47 -12
  301. package/dist/sidecar.d.ts.map +1 -1
  302. package/dist/sidecar.js +84 -4
  303. package/dist/sidecar.js.map +1 -1
  304. package/dist/skills/answer-questions/SKILL.md +89 -0
  305. package/dist/skills/capture-signal/SKILL.md +52 -0
  306. package/dist/skills/convert-from-prd-to-spec/SKILL.md +90 -0
  307. package/dist/skills/drive-tasks/SKILL.md +218 -0
  308. package/dist/skills/from-idea/SKILL.md +83 -0
  309. package/dist/skills/merge-prs/SKILL.md +70 -0
  310. package/dist/skills/orchestrate/SKILL.md +101 -0
  311. package/dist/skills/promote/SKILL.md +35 -0
  312. package/dist/skills/review/SKILL.md +16 -0
  313. package/dist/skills/setup/SKILL.md +258 -0
  314. package/dist/skills/setup/protocol/ADR-FORMAT.md +47 -0
  315. package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +224 -0
  316. package/dist/skills/setup/protocol/REVIEW-PROTOCOL.md +122 -0
  317. package/dist/skills/setup/protocol/SURFACE-PROTOCOL.md +135 -0
  318. package/dist/skills/setup/protocol/TASKING-PROTOCOL.md +124 -0
  319. package/dist/skills/setup/protocol/WORK-CONTRACT.md +280 -0
  320. package/dist/skills/setup/protocol/spec-template.md +71 -0
  321. package/dist/skills/setup/protocol/task-template.md +65 -0
  322. package/dist/skills/surface-questions/SKILL.md +16 -0
  323. package/dist/skills/to-spec/SKILL.md +34 -0
  324. package/dist/skills/to-task/SKILL.md +19 -0
  325. package/dist/skills/triage-observations/SKILL.md +78 -0
  326. package/dist/skills/work/SKILL.md +51 -0
  327. package/dist/slug-namespace.d.ts +6 -6
  328. package/dist/slug-namespace.js +8 -8
  329. package/dist/slug-namespace.js.map +1 -1
  330. package/dist/spec-complete.d.ts.map +1 -1
  331. package/dist/spec-complete.js +4 -5
  332. package/dist/spec-complete.js.map +1 -1
  333. package/dist/start.d.ts +1 -1
  334. package/dist/start.d.ts.map +1 -1
  335. package/dist/start.js +54 -60
  336. package/dist/start.js.map +1 -1
  337. package/dist/status.d.ts +3 -3
  338. package/dist/status.js +4 -4
  339. package/dist/status.js.map +1 -1
  340. package/dist/surface-gate.d.ts +2 -2
  341. package/dist/surface-gate.d.ts.map +1 -1
  342. package/dist/surface-gate.js +10 -3
  343. package/dist/surface-gate.js.map +1 -1
  344. package/dist/surface-persist.d.ts +2 -2
  345. package/dist/surface-persist.d.ts.map +1 -1
  346. package/dist/surface-persist.js +1 -1
  347. package/dist/surface-persist.js.map +1 -1
  348. package/dist/tasker-review-loop.d.ts +11 -10
  349. package/dist/tasker-review-loop.d.ts.map +1 -1
  350. package/dist/tasker-review-loop.js +8 -8
  351. package/dist/tasker-review-loop.js.map +1 -1
  352. package/dist/tasking-eligibility.d.ts +21 -21
  353. package/dist/tasking-eligibility.d.ts.map +1 -1
  354. package/dist/tasking-eligibility.js +10 -10
  355. package/dist/tasking-lock.d.ts +10 -10
  356. package/dist/tasking-lock.d.ts.map +1 -1
  357. package/dist/tasking-lock.js +69 -49
  358. package/dist/tasking-lock.js.map +1 -1
  359. package/dist/tasking.d.ts +73 -39
  360. package/dist/tasking.d.ts.map +1 -1
  361. package/dist/tasking.js +309 -95
  362. package/dist/tasking.js.map +1 -1
  363. package/dist/triage-gate.d.ts +1 -1
  364. package/dist/triage-persist.d.ts +15 -11
  365. package/dist/triage-persist.d.ts.map +1 -1
  366. package/dist/triage-persist.js +48 -18
  367. package/dist/triage-persist.js.map +1 -1
  368. package/dist/vendor/incur/agents.d.ts +58 -0
  369. package/dist/vendor/incur/agents.d.ts.map +1 -0
  370. package/dist/vendor/incur/agents.js +343 -0
  371. package/dist/vendor/incur/agents.js.map +1 -0
  372. package/dist/verify-workflow-template.d.ts +1 -1
  373. package/dist/verify-workflow-template.js +3 -3
  374. package/dist/watch-session.d.ts +11 -3
  375. package/dist/watch-session.d.ts.map +1 -1
  376. package/dist/watch-session.js +94 -7
  377. package/dist/watch-session.js.map +1 -1
  378. package/dist/work-layout.d.ts +15 -9
  379. package/dist/work-layout.d.ts.map +1 -1
  380. package/dist/work-layout.js +14 -9
  381. package/dist/work-layout.js.map +1 -1
  382. package/dist/workspace.d.ts +2 -2
  383. package/package.json +2 -2
  384. package/src/advance-ci-template.ts +4 -4
  385. package/src/advance-classify.ts +5 -5
  386. package/src/advance-drivers.ts +26 -13
  387. package/src/advance-isolated.ts +3 -3
  388. package/src/advance-lifecycle-template.ts +98 -13
  389. package/src/advance-loop-driver.ts +3 -3
  390. package/src/advance-treeless-publish.ts +46 -1
  391. package/src/advance.ts +495 -115
  392. package/src/advancing-lock.ts +102 -7
  393. package/src/agent-launch.ts +37 -12
  394. package/src/agent-stop.ts +60 -2
  395. package/src/apply-decide.ts +38 -9
  396. package/src/apply-merge-action.ts +49 -11
  397. package/src/apply-persist.ts +236 -62
  398. package/src/apply-stuck-action.ts +260 -0
  399. package/src/brand.ts +14 -2
  400. package/src/buildable-body.ts +14 -14
  401. package/src/claim-cas.ts +4 -4
  402. package/src/cli-spinner.ts +1 -1
  403. package/src/cli.ts +472 -141
  404. package/src/close-job-template.ts +9 -9
  405. package/src/close-job.ts +26 -26
  406. package/src/complete.ts +121 -63
  407. package/src/concurrency.ts +1 -1
  408. package/src/config.ts +143 -49
  409. package/src/continue-branch.ts +23 -1
  410. package/src/cwd-section.ts +1 -1
  411. package/src/decision-engine.ts +57 -19
  412. package/src/do-autopick.ts +21 -10
  413. package/src/do-config.ts +7 -7
  414. package/src/do-remote-auto.ts +2 -2
  415. package/src/do.ts +558 -85
  416. package/src/drop-source.ts +2 -2
  417. package/src/env-config.ts +19 -11
  418. package/src/failure-cause.ts +30 -1
  419. package/src/format.ts +13 -33
  420. package/src/frontmatter.ts +55 -35
  421. package/src/gc.ts +172 -9
  422. package/src/github.ts +78 -0
  423. package/src/harness.ts +25 -0
  424. package/src/index.ts +10 -0
  425. package/src/install-ci-branch-protection.ts +283 -58
  426. package/src/install-ci-capabilities/advance-lifecycle.ts +1 -1
  427. package/src/install-ci-capabilities/close-job.ts +1 -1
  428. package/src/install-ci-capabilities/example-noop.ts +1 -1
  429. package/src/install-ci-capabilities/intake.ts +2 -2
  430. package/src/install-ci-capabilities/verify.ts +1 -1
  431. package/src/install-ci-core.ts +34 -7
  432. package/src/install-ci-github.ts +87 -1
  433. package/src/install-ci.ts +4 -4
  434. package/src/install-skills.ts +166 -0
  435. package/src/intake-event.ts +6 -6
  436. package/src/intake-marker.ts +3 -3
  437. package/src/intake-triage.ts +2 -2
  438. package/src/intake-trigger-template.ts +18 -18
  439. package/src/intake.ts +138 -103
  440. package/src/integration-core.ts +234 -100
  441. package/src/integrator.ts +22 -9
  442. package/src/isolation.ts +13 -4
  443. package/src/issue-provider.ts +4 -4
  444. package/src/item-lock.ts +505 -361
  445. package/src/item-path.ts +2 -2
  446. package/src/ledger-lint.ts +9 -9
  447. package/src/ledger-read.ts +81 -81
  448. package/src/ledger-write.ts +137 -152
  449. package/src/lifecycle-gather.ts +45 -22
  450. package/src/lifecycle-pools.ts +71 -13
  451. package/src/merge-question-surfacer.ts +32 -8
  452. package/src/migrate-stuck-locks.ts +451 -0
  453. package/src/mint-adr.ts +4 -4
  454. package/src/mirror-pool-scan.ts +5 -5
  455. package/src/needs-attention.ts +877 -104
  456. package/src/orphan-sidecar.ts +49 -8
  457. package/src/pi-harness.ts +82 -2
  458. package/src/placement.ts +8 -8
  459. package/src/prd-to-spec.ts +13 -5
  460. package/src/prompt.ts +20 -25
  461. package/src/readiness.ts +1 -1
  462. package/src/reap-branches.ts +38 -14
  463. package/src/recover-isolated.ts +18 -1
  464. package/src/repo-config.ts +66 -17
  465. package/src/repo-mirror.ts +23 -1
  466. package/src/review-gate.ts +12 -11
  467. package/src/review-verdict.ts +3 -3
  468. package/src/run.ts +69 -23
  469. package/src/scan.ts +36 -22
  470. package/src/select-order.ts +1 -1
  471. package/src/select-priority.ts +15 -15
  472. package/src/sidecar-apply.ts +1 -1
  473. package/src/sidecar.ts +141 -14
  474. package/src/slug-namespace.ts +10 -10
  475. package/src/spec-complete.ts +4 -5
  476. package/src/start.ts +57 -63
  477. package/src/status.ts +7 -7
  478. package/src/surface-gate.ts +12 -5
  479. package/src/surface-persist.ts +3 -3
  480. package/src/tasker-review-loop.ts +18 -17
  481. package/src/tasking-eligibility.ts +21 -21
  482. package/src/tasking-lock.ts +75 -60
  483. package/src/tasking.ts +381 -135
  484. package/src/triage-gate.ts +1 -1
  485. package/src/triage-persist.ts +71 -27
  486. package/src/vendor/incur/LICENSE +21 -0
  487. package/src/vendor/incur/README.md +19 -0
  488. package/src/vendor/incur/agents.ts +392 -0
  489. package/src/verify-workflow-template.ts +3 -3
  490. package/src/watch-session.ts +102 -7
  491. package/src/work-layout.ts +14 -9
  492. package/src/workspace.ts +2 -2
@@ -0,0 +1,355 @@
1
+ /**
2
+ * ONE-SHOT migration of pre-existing `stuck` per-item lock refs into the
3
+ * post-`retire-stuck-lock-state` resting shape (surface-on-`main` +
4
+ * `needsAnswers:true` + release the lock).
5
+ *
6
+ * Context (spec `surface-stuck-as-questions-and-retire-stuck-lock-state`,
7
+ * resolved decision #3, user story 5; task
8
+ * `migrate-existing-stuck-locks-one-shot`):
9
+ * - Before the retirement, a bounced item was recorded as a `state: stuck`
10
+ * lock ref (`refs/dorfl/lock/<entry>`) with the bounce reason (+ any
11
+ * agent-surfaced questions) on the ref's blob body.
12
+ * - After the retirement (task `retire-stuck-lock-state`), `LockState`
13
+ * admits only `active`. {@link parseLockEntry} silently COERCES a legacy
14
+ * `state: stuck` blob to `active` on read, and the `stuck`-only body
15
+ * sections (`## Reason` / `## Questions`) are no longer emitted or
16
+ * parsed. So a legacy stuck ref is now invisible to the runner (it looks
17
+ * like a healthy in-flight `active` hold) and its reason/questions would
18
+ * rot forever if the state were not migrated at rollout.
19
+ *
20
+ * This module runs the migration ONCE per arbiter at rollout: for every held
21
+ * lock ref whose RAW blob body still carries `state: stuck` in its
22
+ * frontmatter, it extracts the reason (+ questions) directly from the legacy
23
+ * body (bypassing the coercing {@link parseLockEntry}) and drives the SAME
24
+ * ordered surface-first-release-second transition the new bounce uses
25
+ * ({@link surfaceStuckToNeedsAttention}) — writing the `stuck`-kind
26
+ * `work/questions/<entry>.md` sidecar + flipping `needsAnswers:true` on the
27
+ * item body on `<arbiter>/main`, then releasing the ref. After the migration
28
+ * no `stuck` lock ref remains and every previously-stuck item rests as a
29
+ * `needsAnswers:true` pool item with a sidecar (the same resting shape a
30
+ * fresh bounce produces).
31
+ *
32
+ * IDEMPOTENT by construction: the legacy shape is identified from the raw
33
+ * blob's `state: stuck` frontmatter line, which the new lock module NEVER
34
+ * writes; a re-run therefore finds no legacy stuck ref → the report has zero
35
+ * `migrated` entries and no arbiter mutation occurs. Bare-arbiter safe (a ref
36
+ * is a ref): every operation goes through the same lock-ref plumbing the
37
+ * live path uses, so it works on a `--bare file://` arbiter identically to a
38
+ * real remote.
39
+ *
40
+ * SCOPE FENCE: this migrates ONLY lock entries whose name reverse-derives to
41
+ * a CURRENT item-form (`task-*` / `spec-*` / `observation-*` via
42
+ * {@link hasCurrentItemForm}); a pre-cutover `slice-*` / `prd-*` legacy stuck
43
+ * ref has no on-`main` body to flip and is out of scope for the surface
44
+ * transition — such entries are reported as `skipped-no-item-form` and left
45
+ * for the existing `release-lock --entry <literal>` escape hatch to clear (a
46
+ * human still asserts the clear on those; the migration never `--force`s or
47
+ * deletes them). See the CLI verb `dorfl migrate-stuck-locks` for the
48
+ * user-facing surface + its help text.
49
+ */
50
+ import { runAsync } from './git.js';
51
+ import { itemFromLockEntry, itemLockRef, hasCurrentItemForm, listItemLocks, } from './item-lock.js';
52
+ import { surfaceStuckToNeedsAttention, } from './needs-attention.js';
53
+ import { resolveSidecarIdentity } from './sidecar.js';
54
+ /**
55
+ * Run the one-shot migration against the arbiter. Enumerates every held
56
+ * per-item lock ref, and for each whose RAW blob body carries `state: stuck`
57
+ * (the legacy shape the retired `stuck` state produced) drives the shared
58
+ * surface-first-release-second transition (reason + questions extracted from
59
+ * the legacy body). Idempotent: a re-run finds no legacy stuck refs and is a
60
+ * clean no-op.
61
+ */
62
+ export async function migrateStuckLocks(options) {
63
+ const cwd = options.cwd;
64
+ const arbiter = options.arbiter ?? 'origin';
65
+ const env = options.env;
66
+ const note = options.note ?? (() => { });
67
+ const entries = [];
68
+ let migrated = 0;
69
+ let migratedBodyAbsent = 0;
70
+ let notStuck = 0;
71
+ let skippedNoItemForm = 0;
72
+ let lost = 0;
73
+ let errors = 0;
74
+ // Enumerate every held lock entry on the arbiter. `listItemLocks` fetches the
75
+ // lock refs first (hard-fails on a fetch fault) so the enumeration reads a
76
+ // fresh arbiter snapshot; if the fetch throws we surface it as a single
77
+ // terminal error rather than degrading to `[]` (which would silently claim
78
+ // "nothing to migrate").
79
+ let heldEntries;
80
+ try {
81
+ heldEntries = await listItemLocks(cwd, arbiter, env);
82
+ }
83
+ catch (err) {
84
+ return {
85
+ entries: [
86
+ {
87
+ entry: '',
88
+ ref: '',
89
+ item: '',
90
+ outcome: 'error',
91
+ message: `failed to enumerate lock refs on ${arbiter}: ${err instanceof Error ? err.message : String(err)}`,
92
+ },
93
+ ],
94
+ migrated: 0,
95
+ migratedBodyAbsent: 0,
96
+ notStuck: 0,
97
+ skippedNoItemForm: 0,
98
+ lost: 0,
99
+ errors: 1,
100
+ };
101
+ }
102
+ for (const entry of heldEntries) {
103
+ const ref = itemLockRef(entry);
104
+ const item = itemFromLockEntry(entry);
105
+ let body;
106
+ try {
107
+ body = await readLockBlob(ref, cwd, env);
108
+ }
109
+ catch (err) {
110
+ errors++;
111
+ entries.push({
112
+ entry,
113
+ ref,
114
+ item,
115
+ outcome: 'error',
116
+ message: `read failed: ${err instanceof Error ? err.message : String(err)}`,
117
+ });
118
+ continue;
119
+ }
120
+ if (!isLegacyStuckBlob(body)) {
121
+ notStuck++;
122
+ entries.push({
123
+ entry,
124
+ ref,
125
+ item,
126
+ outcome: 'not-stuck',
127
+ message: `${entry} is not a legacy stuck lock (state != stuck on the ref blob) — left untouched.`,
128
+ });
129
+ continue;
130
+ }
131
+ if (!hasCurrentItemForm(entry)) {
132
+ // A pre-cutover `slice-*` / `prd-*` stuck ref has no current
133
+ // item-form and therefore no on-`main` body path to flip. The
134
+ // existing `release-lock --entry <literal>` escape hatch is the
135
+ // supported clear here; the migration NEVER `--force`s such a ref.
136
+ skippedNoItemForm++;
137
+ entries.push({
138
+ entry,
139
+ ref,
140
+ item,
141
+ outcome: 'skipped-no-item-form',
142
+ message: `'${entry}' is a legacy stuck ref with no current item-form ` +
143
+ `(pre-cutover slice-*/prd-*); clear via ` +
144
+ `\`dorfl release-lock --entry ${entry}\` (no auto-force).`,
145
+ });
146
+ continue;
147
+ }
148
+ const { slug } = resolveSidecarIdentity(item);
149
+ const reason = extractLegacyReason(body) ?? '(no reason recorded)';
150
+ const questions = extractLegacyQuestions(body).map((q) => ({ question: q }));
151
+ let result;
152
+ try {
153
+ result = await surfaceStuckToNeedsAttention({
154
+ cwd,
155
+ slug,
156
+ item,
157
+ reason,
158
+ questions,
159
+ arbiter,
160
+ env,
161
+ note,
162
+ });
163
+ }
164
+ catch (err) {
165
+ errors++;
166
+ entries.push({
167
+ entry,
168
+ ref,
169
+ item,
170
+ outcome: 'error',
171
+ message: `surface transition threw: ${err instanceof Error ? err.message : String(err)}`,
172
+ });
173
+ continue;
174
+ }
175
+ if (result.surfaced && result.released) {
176
+ migrated++;
177
+ entries.push({
178
+ entry,
179
+ ref,
180
+ item,
181
+ outcome: 'migrated',
182
+ message: `migrated '${entry}' → surfaced on ${arbiter}/main ` +
183
+ '(needsAnswers:true + sidecar) and released the lock.',
184
+ });
185
+ continue;
186
+ }
187
+ if (!result.surfaced && result.released && result.bodyAbsent === true) {
188
+ // D1 body-absent probe: no `main` body existed to flip. The bounce
189
+ // primitive STILL released the lock so the legacy stuck ref no longer
190
+ // dangles; there is just nothing to surface. Counted as a drained
191
+ // migration (the goal — no stuck ref remains).
192
+ migratedBodyAbsent++;
193
+ entries.push({
194
+ entry,
195
+ ref,
196
+ item,
197
+ outcome: 'migrated-body-absent',
198
+ message: `released legacy stuck lock '${entry}': no body for '${item}' on ` +
199
+ `${arbiter}/main (D1 probe) — sidecar surface skipped, but the ` +
200
+ 'stale lock was drained (the migration goal).',
201
+ });
202
+ continue;
203
+ }
204
+ // The surface CAS or the release did not converge (contention exhausted,
205
+ // or the leased release lost the race). Reported, never forced.
206
+ lost++;
207
+ entries.push({
208
+ entry,
209
+ ref,
210
+ item,
211
+ outcome: 'lost',
212
+ message: result.reasonNotSurfaced ??
213
+ `surface/release for '${entry}' did not converge (surfaced=${result.surfaced}, released=${result.released}); re-run.`,
214
+ });
215
+ }
216
+ return {
217
+ entries,
218
+ migrated,
219
+ migratedBodyAbsent,
220
+ notStuck,
221
+ skippedNoItemForm,
222
+ lost,
223
+ errors,
224
+ };
225
+ }
226
+ /**
227
+ * True iff the migration report leaves a state a human should look at: a
228
+ * `lost` (CAS race) or an `error` (read/plumbing fault). A `not-stuck` /
229
+ * `skipped-no-item-form` outcome is INFORMATIONAL (the former is the normal
230
+ * healthy-hold state; the latter is deferred to `release-lock --entry`) and
231
+ * does NOT count. A pure "0 migrated, 0 lost, 0 error" report is exit-0.
232
+ */
233
+ export function migrateStuckLocksNeedsAttention(report) {
234
+ return report.lost > 0 || report.errors > 0;
235
+ }
236
+ /** Format the sweep for the terminal. An empty enumeration (no lock refs at
237
+ * all) yields no lines (silent, like the gc lock report). */
238
+ export function formatMigrateStuckLocksReport(report) {
239
+ if (report.entries.length === 0) {
240
+ return [
241
+ 'Migrate stuck locks: no per-item lock refs held on the arbiter — nothing to migrate.',
242
+ ];
243
+ }
244
+ const lines = [
245
+ `Migrate stuck locks: migrated ${report.migrated}` +
246
+ (report.migratedBodyAbsent > 0
247
+ ? ` (+${report.migratedBodyAbsent} body-absent — lock drained, no on-main body to surface)`
248
+ : '') +
249
+ `, left ${report.notStuck} healthy active hold(s) untouched` +
250
+ (report.skippedNoItemForm > 0
251
+ ? `, skipped ${report.skippedNoItemForm} pre-cutover entry (clear via release-lock --entry)`
252
+ : '') +
253
+ (report.lost > 0
254
+ ? `, ${report.lost} could not converge (lease lost — re-run)`
255
+ : '') +
256
+ (report.errors > 0
257
+ ? `, ${report.errors} error(s) (left untouched)`
258
+ : '') +
259
+ ':',
260
+ ];
261
+ for (const e of report.entries) {
262
+ const tag = e.outcome === 'migrated'
263
+ ? '[migrated] '
264
+ : e.outcome === 'migrated-body-absent'
265
+ ? '[migrated:body-absent]'
266
+ : e.outcome === 'not-stuck'
267
+ ? '[healthy] '
268
+ : e.outcome === 'skipped-no-item-form'
269
+ ? '[skipped:no-item-form]'
270
+ : e.outcome === 'lost'
271
+ ? '[lost] '
272
+ : '[error] ';
273
+ lines.push(` ${tag} ${e.entry} ${e.message}`);
274
+ }
275
+ return lines;
276
+ }
277
+ /** Read the raw `lock.md` blob body from a lock ref, or throw. Bypasses
278
+ * {@link parseLockEntry} on purpose — the caller needs the untouched legacy
279
+ * text (which the coercing parser strips). */
280
+ async function readLockBlob(ref, cwd, env) {
281
+ const show = await runAsync('git', ['show', `${ref}:lock.md`], cwd, { env });
282
+ if (show.status !== 0) {
283
+ throw new Error(`git show ${ref}:lock.md failed (exit ${show.status}): ${show.stderr.trim()}`);
284
+ }
285
+ return show.stdout;
286
+ }
287
+ /** True iff `body` is the legacy `state: stuck` shape (the pre-retirement
288
+ * lock-entry blob). Matched on the raw frontmatter line so this is unaffected
289
+ * by the current parser's coercion to `active`. */
290
+ export function isLegacyStuckBlob(body) {
291
+ const normalized = body.replace(/\r\n/g, '\n');
292
+ const fm = /^---\n([\s\S]*?)\n---/.exec(normalized);
293
+ if (!fm) {
294
+ return false;
295
+ }
296
+ return /^state:\s*stuck\s*$/m.test(fm[1]);
297
+ }
298
+ /**
299
+ * Extract the bounce reason from a legacy stuck lock blob. Preference order
300
+ * (the two shapes the retired serialiser produced):
301
+ * 1. A `## Reason` block in the body (multi-line, blank-trimmed).
302
+ * 2. A one-line `reason:` field in the frontmatter (pre-cutover shape).
303
+ * Returns `undefined` when neither is present.
304
+ */
305
+ export function extractLegacyReason(body) {
306
+ const normalized = body.replace(/\r\n/g, '\n');
307
+ const fm = /^---\n([\s\S]*?)\n---/.exec(normalized);
308
+ const bodyText = fm ? normalized.slice(fm[0].length) : normalized;
309
+ const lines = bodyText.split('\n');
310
+ const start = lines.findIndex((l) => l.trim() === '## Reason');
311
+ if (start !== -1) {
312
+ const collected = [];
313
+ for (let i = start + 1; i < lines.length; i++) {
314
+ if (/^##\s/.test(lines[i])) {
315
+ break;
316
+ }
317
+ collected.push(lines[i]);
318
+ }
319
+ const text = collected.join('\n').replace(/^\n+/, '').replace(/\n+$/, '');
320
+ if (text !== '') {
321
+ return text;
322
+ }
323
+ }
324
+ if (fm) {
325
+ const m = /^reason:\s*(.*)$/m.exec(fm[1]);
326
+ if (m && m[1].trim() !== '') {
327
+ return m[1].trim();
328
+ }
329
+ }
330
+ return undefined;
331
+ }
332
+ /** Extract the `## Questions` bulleted list from a legacy stuck lock blob (or
333
+ * `[]` when absent). Each bullet becomes one question string. */
334
+ export function extractLegacyQuestions(body) {
335
+ const normalized = body.replace(/\r\n/g, '\n');
336
+ const fm = /^---\n[\s\S]*?\n---/.exec(normalized);
337
+ const bodyText = fm ? normalized.slice(fm[0].length) : normalized;
338
+ const lines = bodyText.split('\n');
339
+ const start = lines.findIndex((l) => l.trim() === '## Questions');
340
+ if (start === -1) {
341
+ return [];
342
+ }
343
+ const questions = [];
344
+ for (let i = start + 1; i < lines.length; i++) {
345
+ if (/^##\s/.test(lines[i])) {
346
+ break;
347
+ }
348
+ const m = /^-\s+(.*)$/.exec(lines[i].trim());
349
+ if (m) {
350
+ questions.push(m[1]);
351
+ }
352
+ }
353
+ return questions;
354
+ }
355
+ //# sourceMappingURL=migrate-stuck-locks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-stuck-locks.js","sourceRoot":"","sources":["../src/migrate-stuck-locks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,EAAC,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAClD,OAAO,EACN,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,aAAa,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,4BAA4B,GAE5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,sBAAsB,EAAC,MAAM,cAAc,CAAC;AAwDpD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,OAAiC;IAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAExC,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,yBAAyB;IACzB,IAAI,WAAqB,CAAC;IAC1B,IAAI,CAAC;QACJ,WAAW,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO;YACN,OAAO,EAAE;gBACR;oBACC,KAAK,EAAE,EAAE;oBACT,GAAG,EAAE,EAAE;oBACP,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,oCAAoC,OAAO,KACnD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAChD,EAAE;iBACF;aACD;YACD,QAAQ,EAAE,CAAC;YACX,kBAAkB,EAAE,CAAC;YACrB,QAAQ,EAAE,CAAC;YACX,iBAAiB,EAAE,CAAC;YACpB,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;SACT,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACJ,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAC3E,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,GAAG,KAAK,gFAAgF;aACjG,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,6DAA6D;YAC7D,8DAA8D;YAC9D,gEAAgE;YAChE,mEAAmE;YACnE,iBAAiB,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EACN,IAAI,KAAK,oDAAoD;oBAC7D,yCAAyC;oBACzC,gCAAgC,KAAK,qBAAqB;aAC3D,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,MAAM,EAAC,IAAI,EAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC;QACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,MAA0C,CAAC;QAC/C,IAAI,CAAC;YACJ,MAAM,GAAG,MAAM,4BAA4B,CAAC;gBAC3C,GAAG;gBACH,IAAI;gBACJ,IAAI;gBACJ,MAAM;gBACN,SAAS;gBACT,OAAO;gBACP,GAAG;gBACH,IAAI;aACJ,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,6BACR,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAChD,EAAE;aACF,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,OAAO,EAAE,UAAU;gBACnB,OAAO,EACN,aAAa,KAAK,mBAAmB,OAAO,QAAQ;oBACpD,sDAAsD;aACvD,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACvE,mEAAmE;YACnE,sEAAsE;YACtE,kEAAkE;YAClE,+CAA+C;YAC/C,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EACN,+BAA+B,KAAK,mBAAmB,IAAI,OAAO;oBAClE,GAAG,OAAO,sDAAsD;oBAChE,8CAA8C;aAC/C,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,IAAI,CAAC;YACZ,KAAK;YACL,GAAG;YACH,IAAI;YACJ,OAAO,EAAE,MAAM;YACf,OAAO,EACN,MAAM,CAAC,iBAAiB;gBACxB,wBAAwB,KAAK,gCAAgC,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,QAAQ,YAAY;SACtH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,OAAO;QACP,QAAQ;QACR,kBAAkB;QAClB,QAAQ;QACR,iBAAiB;QACjB,IAAI;QACJ,MAAM;KACN,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC9C,MAA+B;IAE/B,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED;6DAC6D;AAC7D,MAAM,UAAU,6BAA6B,CAC5C,MAA+B;IAE/B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;YACN,sFAAsF;SACtF,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG;QACb,iCAAiC,MAAM,CAAC,QAAQ,EAAE;YACjD,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC;gBAC7B,CAAC,CAAC,MAAM,MAAM,CAAC,kBAAkB,0DAA0D;gBAC3F,CAAC,CAAC,EAAE,CAAC;YACN,UAAU,MAAM,CAAC,QAAQ,mCAAmC;YAC5D,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC;gBAC5B,CAAC,CAAC,aAAa,MAAM,CAAC,iBAAiB,qDAAqD;gBAC5F,CAAC,CAAC,EAAE,CAAC;YACN,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;gBACf,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,2CAA2C;gBAC7D,CAAC,CAAC,EAAE,CAAC;YACN,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,4BAA4B;gBAChD,CAAC,CAAC,EAAE,CAAC;YACN,GAAG;KACJ,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,GAAG,GACR,CAAC,CAAC,OAAO,KAAK,UAAU;YACvB,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,sBAAsB;gBACrC,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW;oBAC1B,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,sBAAsB;wBACrC,CAAC,CAAC,wBAAwB;wBAC1B,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM;4BACrB,CAAC,CAAC,uBAAuB;4BACzB,CAAC,CAAC,uBAAuB,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;8CAE8C;AAC9C,KAAK,UAAU,YAAY,CAC1B,GAAW,EACX,GAAW,EACX,GAAkC;IAElC,MAAM,IAAI,GAAc,MAAM,QAAQ,CACrC,KAAK,EACL,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU,CAAC,EAC1B,GAAG,EACH,EAAC,GAAG,EAAC,CACL,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACd,YAAY,GAAG,yBAAyB,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAC7E,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB,CAAC;AAED;;mDAEmD;AACnD,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAC;IAC/D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,MAAM;YACP,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,IAAI,EAAE,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;iEACiE;AACjE,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,MAAM;QACP,CAAC;QACD,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,CAAC;YACP,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
package/dist/mint-adr.js CHANGED
@@ -4,7 +4,7 @@ import { run } from './git.js';
4
4
  import { createItemThroughCas, } from './advancing-lock.js';
5
5
  import { resolveSidecarIdentity, sidecarPathFor } from './sidecar.js';
6
6
  /**
7
- * The **ADR-MINT route** (prd
7
+ * The **ADR-MINT route** (spec
8
8
  * `agentic-question-resolution-retire-disposition-vocabulary` US #2, task
9
9
  * `agentic-apply-mint-adr-route`) — the SIBLING of {@link
10
10
  * import('./triage-persist.js').promoteObservation}, for the agentic apply
@@ -12,8 +12,8 @@ import { resolveSidecarIdentity, sidecarPathFor } from './sidecar.js';
12
12
  *
13
13
  * Why a SIBLING and not an `adr` artifact type on `promoteObservation`
14
14
  * (recorded `## Decisions`): `promoteObservation` is `work/`-folder-SHAPED — it
15
- * targets `work/tasks/ready` / `work/prds/proposed` via `workItemRel`, and builds
16
- * a task/prd body (a `## What to build` / `## Problem Statement` lead + an
15
+ * targets `work/tasks/ready` / `work/specs/proposed` via `workItemRel`, and builds
16
+ * a task/spec body (a `## What to build` / `## Problem Statement` lead + an
17
17
  * `## Open questions` block, with `needsAnswers` carried). An ADR is DIFFERENT in
18
18
  * EVERY one of those: it lives in `docs/adr/` (OUTSIDE the work board, so the
19
19
  * `work/`-layout path builder does not fit), it carries NO `needsAnswers`/open-
@@ -226,7 +226,7 @@ function renderAdrFile(slug, title, body) {
226
226
  * The observation's mechanism PROSE: everything before its first
227
227
  * `## Open questions` heading, with the frontmatter fence dropped. An ADR records
228
228
  * a SETTLED decision, so an observation's open-questions scoping is deliberately
229
- * NOT carried into the ADR body (unlike a promoted task/prd, which keeps the
229
+ * NOT carried into the ADR body (unlike a promoted task/spec, which keeps the
230
230
  * open questions live) — the answered question(s) ARE the decision.
231
231
  */
232
232
  function mechanismOf(observation) {
@@ -9,7 +9,7 @@ import type { LifecyclePoolGates } from './lifecycle-pools.js';
9
9
  * SAME two pools (eligible TASKS + taskable PRDS) but reads a BARE hub mirror's
10
10
  * committed `main` ref (`git ls-tree`/`git show`), NOT a working checkout.
11
11
  *
12
- * This is the ONE reusable enumeration unit the prd's FOLD-IN note demands: BOTH
12
+ * This is the ONE reusable enumeration unit the spec's FOLD-IN note demands: BOTH
13
13
  * the `run` loop driver's isolated+parallel auto-pick AND the one-shot/CI
14
14
  * `advance --remote -n` / the CI matrix consume it, so the `-n`/auto-pick rungs
15
15
  * (both `do` and `advance`, both `run`-loop and one-shot) all call the SAME scan.
@@ -29,7 +29,7 @@ import type { LifecyclePoolGates } from './lifecycle-pools.js';
29
29
  * `scanRepoPaths`/registry `scan` use) over the mirror's `work/backlog` +
30
30
  * `work/done` read via {@link LedgerReadStrategy.resolveMirrorState}.
31
31
  * - **taskable prds** — {@link taskableSpecs} (`autoslice-gate`'s predicate)
32
- * over the mirror's `work/prds/ready` + `work/prds/tasked` read via the mirror-ref
32
+ * over the mirror's `work/specs/ready` + `work/specs/tasked` read via the mirror-ref
33
33
  * {@link LedgerReadStrategy.resolveMirrorSpecPool}.
34
34
  *
35
35
  * Per-repo policy parity: a bare mirror has no checked-out `.dorfl.json`,
@@ -35,7 +35,7 @@ export async function scanMirrorPool(options) {
35
35
  // scored through the EXACT same `scoreItems` the in-place/registry scans use.
36
36
  const state = await read.resolveMirrorState({ mirrorPath, ref, env });
37
37
  const counts = { totalItems: 0, totalEligible: 0 };
38
- // HELD-SLUG SUBTRACTION (prd `ledger-status-per-item-lock-refs` US #15): a bare
38
+ // HELD-SLUG SUBTRACTION (spec `ledger-status-per-item-lock-refs` US #15): a bare
39
39
  // hub mirror's arbiter is its `origin`; read the held lock refs from there and
40
40
  // exclude those slugs from the enumerated `backlog/` pool. Non-fatal (empty set
41
41
  // on any fault) and redundant-but-harmless while the body still moves — wired now
@@ -44,7 +44,7 @@ export async function scanMirrorPool(options) {
44
44
  // its own lock-ref fetch.
45
45
  const heldSlugs = await heldTaskSlugs(mirrorPath, 'origin', env);
46
46
  const items = scoreItems(state, repoConfig.autoBuild, counts, heldSlugs);
47
- // Pool 2 — TASKABLE PRDS from the bare mirror's `work/prds/ready`+`work/prds/tasked`,
47
+ // Pool 2 — TASKABLE PRDS from the bare mirror's `work/specs/ready`+`work/specs/tasked`,
48
48
  // filtered through `autoslice-gate`'s predicate (NOT reinvented). Read FIRST so
49
49
  // we can populate the `specs[]` companion of `items[]` on the RepoReport below.
50
50
  const pool = await read.resolveMirrorSpecPool({ mirrorPath, ref, env });
@@ -60,7 +60,7 @@ export async function scanMirrorPool(options) {
60
60
  autoTask: repoConfig.autoTask,
61
61
  });
62
62
  // The one-slug-one-folder LINT is a HUMAN-FACING surface (`scan`/`status`); this
63
- // mirror-side pool scan exists only to SCORE the task/prd candidate pools for
63
+ // mirror-side pool scan exists only to SCORE the task/spec candidate pools for
64
64
  // autonomous selection, never to render a dashboard, so it carries an empty lint
65
65
  // (the duplicate surface is the user-facing `scan`/`status`, per the task). The
66
66
  // `specs[]` companion of `items[]` is filled via the SAME `scoreSpecs` helper
@@ -1 +1 @@
1
- {"version":3,"file":"mirror-pool-scan.js","sourceRoot":"","sources":["../src/mirror-pool-scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mirror-pool-scan.js","sourceRoot":"","sources":["../src/mirror-pool-scan.ts"],"names":[],"mappings":"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"}