dorfl 0.1.2 → 0.2.1

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 (364) hide show
  1. package/dist/advance-drivers.d.ts +1 -1
  2. package/dist/advance-drivers.d.ts.map +1 -1
  3. package/dist/advance-drivers.js +15 -3
  4. package/dist/advance-drivers.js.map +1 -1
  5. package/dist/advance-lifecycle-template.d.ts.map +1 -1
  6. package/dist/advance-lifecycle-template.js +76 -4
  7. package/dist/advance-lifecycle-template.js.map +1 -1
  8. package/dist/advance-treeless-publish.d.ts +23 -0
  9. package/dist/advance-treeless-publish.d.ts.map +1 -1
  10. package/dist/advance-treeless-publish.js +41 -0
  11. package/dist/advance-treeless-publish.js.map +1 -1
  12. package/dist/advance.d.ts +59 -7
  13. package/dist/advance.d.ts.map +1 -1
  14. package/dist/advance.js +389 -82
  15. package/dist/advance.js.map +1 -1
  16. package/dist/advancing-lock.d.ts +30 -2
  17. package/dist/advancing-lock.d.ts.map +1 -1
  18. package/dist/advancing-lock.js +50 -0
  19. package/dist/advancing-lock.js.map +1 -1
  20. package/dist/agent-launch.d.ts +12 -0
  21. package/dist/agent-launch.d.ts.map +1 -1
  22. package/dist/agent-launch.js +22 -12
  23. package/dist/agent-launch.js.map +1 -1
  24. package/dist/agent-stop.d.ts +40 -2
  25. package/dist/agent-stop.d.ts.map +1 -1
  26. package/dist/agent-stop.js +30 -2
  27. package/dist/agent-stop.js.map +1 -1
  28. package/dist/apply-decide.d.ts +17 -3
  29. package/dist/apply-decide.d.ts.map +1 -1
  30. package/dist/apply-decide.js +36 -7
  31. package/dist/apply-decide.js.map +1 -1
  32. package/dist/apply-merge-action.d.ts +17 -5
  33. package/dist/apply-merge-action.d.ts.map +1 -1
  34. package/dist/apply-merge-action.js +43 -8
  35. package/dist/apply-merge-action.js.map +1 -1
  36. package/dist/apply-persist.d.ts +57 -26
  37. package/dist/apply-persist.d.ts.map +1 -1
  38. package/dist/apply-persist.js +166 -37
  39. package/dist/apply-persist.js.map +1 -1
  40. package/dist/apply-stuck-action.d.ts +151 -0
  41. package/dist/apply-stuck-action.d.ts.map +1 -0
  42. package/dist/apply-stuck-action.js +125 -0
  43. package/dist/apply-stuck-action.js.map +1 -0
  44. package/dist/brand.d.ts +12 -1
  45. package/dist/brand.d.ts.map +1 -1
  46. package/dist/brand.js +2 -1
  47. package/dist/brand.js.map +1 -1
  48. package/dist/cli-spinner.d.ts +1 -1
  49. package/dist/cli-spinner.js +1 -1
  50. package/dist/cli.d.ts +10 -0
  51. package/dist/cli.d.ts.map +1 -1
  52. package/dist/cli.js +320 -63
  53. package/dist/cli.js.map +1 -1
  54. package/dist/close-job-template.js +1 -1
  55. package/dist/complete.d.ts +6 -3
  56. package/dist/complete.d.ts.map +1 -1
  57. package/dist/complete.js +91 -37
  58. package/dist/complete.js.map +1 -1
  59. package/dist/config.d.ts +55 -9
  60. package/dist/config.d.ts.map +1 -1
  61. package/dist/config.js +56 -4
  62. package/dist/config.js.map +1 -1
  63. package/dist/continue-branch.d.ts.map +1 -1
  64. package/dist/continue-branch.js +22 -0
  65. package/dist/continue-branch.js.map +1 -1
  66. package/dist/decision-engine.d.ts +38 -10
  67. package/dist/decision-engine.d.ts.map +1 -1
  68. package/dist/decision-engine.js +10 -6
  69. package/dist/decision-engine.js.map +1 -1
  70. package/dist/do-autopick.d.ts.map +1 -1
  71. package/dist/do-autopick.js +11 -1
  72. package/dist/do-autopick.js.map +1 -1
  73. package/dist/do-config.d.ts +1 -1
  74. package/dist/do.d.ts +49 -56
  75. package/dist/do.d.ts.map +1 -1
  76. package/dist/do.js +419 -30
  77. package/dist/do.js.map +1 -1
  78. package/dist/env-config.d.ts.map +1 -1
  79. package/dist/env-config.js +12 -4
  80. package/dist/env-config.js.map +1 -1
  81. package/dist/failure-cause.d.ts +3 -2
  82. package/dist/failure-cause.d.ts.map +1 -1
  83. package/dist/failure-cause.js +28 -1
  84. package/dist/failure-cause.js.map +1 -1
  85. package/dist/format.d.ts +6 -6
  86. package/dist/format.d.ts.map +1 -1
  87. package/dist/format.js +10 -27
  88. package/dist/format.js.map +1 -1
  89. package/dist/frontmatter.d.ts +16 -4
  90. package/dist/frontmatter.d.ts.map +1 -1
  91. package/dist/frontmatter.js +27 -1
  92. package/dist/frontmatter.js.map +1 -1
  93. package/dist/gc.d.ts +65 -6
  94. package/dist/gc.d.ts.map +1 -1
  95. package/dist/gc.js +126 -9
  96. package/dist/gc.js.map +1 -1
  97. package/dist/github.d.ts +14 -0
  98. package/dist/github.d.ts.map +1 -1
  99. package/dist/github.js +73 -0
  100. package/dist/github.js.map +1 -1
  101. package/dist/harness.d.ts +25 -0
  102. package/dist/harness.d.ts.map +1 -1
  103. package/dist/harness.js.map +1 -1
  104. package/dist/index.d.ts +4 -1
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +2 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/install-ci-branch-protection.d.ts +132 -38
  109. package/dist/install-ci-branch-protection.d.ts.map +1 -1
  110. package/dist/install-ci-branch-protection.js +190 -48
  111. package/dist/install-ci-branch-protection.js.map +1 -1
  112. package/dist/install-ci-core.d.ts +21 -1
  113. package/dist/install-ci-core.d.ts.map +1 -1
  114. package/dist/install-ci-core.js +10 -3
  115. package/dist/install-ci-core.js.map +1 -1
  116. package/dist/install-ci-github.d.ts +32 -0
  117. package/dist/install-ci-github.d.ts.map +1 -1
  118. package/dist/install-ci-github.js +73 -0
  119. package/dist/install-ci-github.js.map +1 -1
  120. package/dist/install-skills.d.ts +123 -0
  121. package/dist/install-skills.d.ts.map +1 -0
  122. package/dist/install-skills.js +100 -0
  123. package/dist/install-skills.js.map +1 -0
  124. package/dist/intake-trigger-template.js +1 -1
  125. package/dist/intake.d.ts +17 -4
  126. package/dist/intake.d.ts.map +1 -1
  127. package/dist/intake.js +23 -7
  128. package/dist/intake.js.map +1 -1
  129. package/dist/integration-core.d.ts +10 -7
  130. package/dist/integration-core.d.ts.map +1 -1
  131. package/dist/integration-core.js +174 -60
  132. package/dist/integration-core.js.map +1 -1
  133. package/dist/integrator.d.ts +1 -1
  134. package/dist/integrator.d.ts.map +1 -1
  135. package/dist/integrator.js +19 -3
  136. package/dist/integrator.js.map +1 -1
  137. package/dist/isolation.d.ts +2 -2
  138. package/dist/isolation.d.ts.map +1 -1
  139. package/dist/isolation.js +9 -0
  140. package/dist/isolation.js.map +1 -1
  141. package/dist/item-lock.d.ts +196 -129
  142. package/dist/item-lock.d.ts.map +1 -1
  143. package/dist/item-lock.js +329 -254
  144. package/dist/item-lock.js.map +1 -1
  145. package/dist/ledger-write.d.ts +31 -26
  146. package/dist/ledger-write.d.ts.map +1 -1
  147. package/dist/ledger-write.js +100 -122
  148. package/dist/ledger-write.js.map +1 -1
  149. package/dist/lifecycle-gather.d.ts +17 -0
  150. package/dist/lifecycle-gather.d.ts.map +1 -1
  151. package/dist/lifecycle-gather.js +7 -1
  152. package/dist/lifecycle-gather.js.map +1 -1
  153. package/dist/lifecycle-pools.d.ts +40 -3
  154. package/dist/lifecycle-pools.d.ts.map +1 -1
  155. package/dist/lifecycle-pools.js +26 -6
  156. package/dist/lifecycle-pools.js.map +1 -1
  157. package/dist/merge-question-surfacer.d.ts +15 -1
  158. package/dist/merge-question-surfacer.d.ts.map +1 -1
  159. package/dist/merge-question-surfacer.js +18 -3
  160. package/dist/merge-question-surfacer.js.map +1 -1
  161. package/dist/migrate-stuck-locks.d.ts +129 -0
  162. package/dist/migrate-stuck-locks.d.ts.map +1 -0
  163. package/dist/migrate-stuck-locks.js +355 -0
  164. package/dist/migrate-stuck-locks.js.map +1 -0
  165. package/dist/needs-attention.d.ts +293 -16
  166. package/dist/needs-attention.d.ts.map +1 -1
  167. package/dist/needs-attention.js +532 -57
  168. package/dist/needs-attention.js.map +1 -1
  169. package/dist/orphan-sidecar.d.ts +8 -4
  170. package/dist/orphan-sidecar.d.ts.map +1 -1
  171. package/dist/orphan-sidecar.js +35 -2
  172. package/dist/orphan-sidecar.js.map +1 -1
  173. package/dist/pi-harness.d.ts +16 -0
  174. package/dist/pi-harness.d.ts.map +1 -1
  175. package/dist/pi-harness.js +82 -2
  176. package/dist/pi-harness.js.map +1 -1
  177. package/dist/placement.d.ts +3 -3
  178. package/dist/placement.js +1 -1
  179. package/dist/prd-to-spec.d.ts.map +1 -1
  180. package/dist/prd-to-spec.js +9 -5
  181. package/dist/prd-to-spec.js.map +1 -1
  182. package/dist/protocol/CLAIM-PROTOCOL.md +17 -10
  183. package/dist/protocol/REVIEW-PROTOCOL.md +4 -1
  184. package/dist/protocol/SURFACE-PROTOCOL.md +16 -2
  185. package/dist/protocol/TASKING-PROTOCOL.md +3 -1
  186. package/dist/protocol/WORK-CONTRACT.md +22 -18
  187. package/dist/protocol/task-template.md +1 -1
  188. package/dist/reap-branches.d.ts +12 -9
  189. package/dist/reap-branches.d.ts.map +1 -1
  190. package/dist/reap-branches.js +25 -7
  191. package/dist/reap-branches.js.map +1 -1
  192. package/dist/recover-isolated.d.ts +12 -0
  193. package/dist/recover-isolated.d.ts.map +1 -1
  194. package/dist/recover-isolated.js +5 -0
  195. package/dist/recover-isolated.js.map +1 -1
  196. package/dist/repo-config.d.ts +23 -2
  197. package/dist/repo-config.d.ts.map +1 -1
  198. package/dist/repo-config.js +53 -7
  199. package/dist/repo-config.js.map +1 -1
  200. package/dist/repo-mirror.d.ts.map +1 -1
  201. package/dist/repo-mirror.js +18 -2
  202. package/dist/repo-mirror.js.map +1 -1
  203. package/dist/review-verdict.js +1 -1
  204. package/dist/review-verdict.js.map +1 -1
  205. package/dist/run.d.ts +1 -1
  206. package/dist/run.d.ts.map +1 -1
  207. package/dist/run.js +54 -19
  208. package/dist/run.js.map +1 -1
  209. package/dist/scan.d.ts +17 -8
  210. package/dist/scan.d.ts.map +1 -1
  211. package/dist/scan.js +22 -8
  212. package/dist/scan.js.map +1 -1
  213. package/dist/select-priority.d.ts +2 -2
  214. package/dist/select-priority.js +1 -1
  215. package/dist/select-priority.js.map +1 -1
  216. package/dist/sidecar-apply.js +1 -1
  217. package/dist/sidecar-apply.js.map +1 -1
  218. package/dist/sidecar.d.ts +45 -10
  219. package/dist/sidecar.d.ts.map +1 -1
  220. package/dist/sidecar.js +82 -2
  221. package/dist/sidecar.js.map +1 -1
  222. package/dist/skills/answer-questions/SKILL.md +89 -0
  223. package/dist/skills/capture-signal/SKILL.md +52 -0
  224. package/dist/skills/convert-from-prd-to-spec/SKILL.md +90 -0
  225. package/dist/skills/drive-tasks/SKILL.md +218 -0
  226. package/dist/skills/from-idea/SKILL.md +83 -0
  227. package/dist/skills/merge-prs/SKILL.md +70 -0
  228. package/dist/skills/orchestrate/SKILL.md +101 -0
  229. package/dist/skills/promote/SKILL.md +35 -0
  230. package/dist/skills/review/SKILL.md +16 -0
  231. package/dist/skills/setup/SKILL.md +258 -0
  232. package/dist/skills/setup/protocol/ADR-FORMAT.md +47 -0
  233. package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +224 -0
  234. package/dist/skills/setup/protocol/REVIEW-PROTOCOL.md +122 -0
  235. package/dist/skills/setup/protocol/SURFACE-PROTOCOL.md +135 -0
  236. package/dist/skills/setup/protocol/TASKING-PROTOCOL.md +124 -0
  237. package/dist/skills/setup/protocol/WORK-CONTRACT.md +280 -0
  238. package/dist/skills/setup/protocol/spec-template.md +71 -0
  239. package/dist/skills/setup/protocol/task-template.md +65 -0
  240. package/dist/skills/surface-questions/SKILL.md +16 -0
  241. package/dist/skills/to-spec/SKILL.md +34 -0
  242. package/dist/skills/to-task/SKILL.md +19 -0
  243. package/dist/skills/triage-observations/SKILL.md +78 -0
  244. package/dist/skills/work/SKILL.md +51 -0
  245. package/dist/slug-namespace.d.ts +5 -5
  246. package/dist/slug-namespace.js +5 -5
  247. package/dist/slug-namespace.js.map +1 -1
  248. package/dist/spec-complete.d.ts.map +1 -1
  249. package/dist/spec-complete.js +2 -3
  250. package/dist/spec-complete.js.map +1 -1
  251. package/dist/start.d.ts.map +1 -1
  252. package/dist/start.js +51 -57
  253. package/dist/start.js.map +1 -1
  254. package/dist/surface-gate.d.ts.map +1 -1
  255. package/dist/surface-gate.js +10 -3
  256. package/dist/surface-gate.js.map +1 -1
  257. package/dist/surface-persist.js +1 -1
  258. package/dist/surface-persist.js.map +1 -1
  259. package/dist/tasker-review-loop.d.ts +4 -3
  260. package/dist/tasker-review-loop.d.ts.map +1 -1
  261. package/dist/tasker-review-loop.js.map +1 -1
  262. package/dist/tasking-lock.d.ts +2 -2
  263. package/dist/tasking-lock.d.ts.map +1 -1
  264. package/dist/tasking-lock.js +53 -32
  265. package/dist/tasking-lock.js.map +1 -1
  266. package/dist/tasking.d.ts +40 -6
  267. package/dist/tasking.d.ts.map +1 -1
  268. package/dist/tasking.js +224 -12
  269. package/dist/tasking.js.map +1 -1
  270. package/dist/triage-persist.d.ts +10 -6
  271. package/dist/triage-persist.d.ts.map +1 -1
  272. package/dist/triage-persist.js +34 -4
  273. package/dist/triage-persist.js.map +1 -1
  274. package/dist/vendor/incur/agents.d.ts +58 -0
  275. package/dist/vendor/incur/agents.d.ts.map +1 -0
  276. package/dist/vendor/incur/agents.js +343 -0
  277. package/dist/vendor/incur/agents.js.map +1 -0
  278. package/dist/verify-workflow-template.js +1 -1
  279. package/dist/watch-session.d.ts +11 -3
  280. package/dist/watch-session.d.ts.map +1 -1
  281. package/dist/watch-session.js +94 -7
  282. package/dist/watch-session.js.map +1 -1
  283. package/dist/work-layout.d.ts +7 -3
  284. package/dist/work-layout.d.ts.map +1 -1
  285. package/dist/work-layout.js +6 -3
  286. package/dist/work-layout.js.map +1 -1
  287. package/dist/workspace.d.ts +1 -1
  288. package/package.json +2 -2
  289. package/src/advance-drivers.ts +16 -3
  290. package/src/advance-lifecycle-template.ts +89 -4
  291. package/src/advance-treeless-publish.ts +45 -0
  292. package/src/advance.ts +467 -87
  293. package/src/advancing-lock.ts +96 -1
  294. package/src/agent-launch.ts +37 -12
  295. package/src/agent-stop.ts +60 -2
  296. package/src/apply-decide.ts +36 -7
  297. package/src/apply-merge-action.ts +45 -7
  298. package/src/apply-persist.ts +228 -54
  299. package/src/apply-stuck-action.ts +260 -0
  300. package/src/brand.ts +14 -2
  301. package/src/cli-spinner.ts +1 -1
  302. package/src/cli.ts +401 -70
  303. package/src/close-job-template.ts +1 -1
  304. package/src/complete.ts +110 -52
  305. package/src/config.ts +107 -13
  306. package/src/continue-branch.ts +22 -0
  307. package/src/decision-engine.ts +55 -17
  308. package/src/do-autopick.ts +12 -1
  309. package/src/do-config.ts +1 -1
  310. package/src/do.ts +511 -38
  311. package/src/env-config.ts +12 -4
  312. package/src/failure-cause.ts +30 -1
  313. package/src/format.ts +10 -30
  314. package/src/frontmatter.ts +35 -5
  315. package/src/gc.ts +172 -9
  316. package/src/github.ts +78 -0
  317. package/src/harness.ts +25 -0
  318. package/src/index.ts +10 -0
  319. package/src/install-ci-branch-protection.ts +282 -57
  320. package/src/install-ci-core.ts +30 -3
  321. package/src/install-ci-github.ts +86 -0
  322. package/src/install-skills.ts +166 -0
  323. package/src/intake-trigger-template.ts +1 -1
  324. package/src/intake.ts +46 -11
  325. package/src/integration-core.ts +199 -65
  326. package/src/integrator.ts +22 -9
  327. package/src/isolation.ts +11 -2
  328. package/src/item-lock.ts +485 -341
  329. package/src/ledger-write.ts +135 -150
  330. package/src/lifecycle-gather.ts +29 -6
  331. package/src/lifecycle-pools.ts +67 -9
  332. package/src/merge-question-surfacer.ts +28 -4
  333. package/src/migrate-stuck-locks.ts +451 -0
  334. package/src/needs-attention.ts +857 -84
  335. package/src/orphan-sidecar.ts +47 -6
  336. package/src/pi-harness.ts +82 -2
  337. package/src/placement.ts +3 -3
  338. package/src/prd-to-spec.ts +13 -5
  339. package/src/reap-branches.ts +38 -14
  340. package/src/recover-isolated.ts +17 -0
  341. package/src/repo-config.ts +55 -6
  342. package/src/repo-mirror.ts +23 -1
  343. package/src/review-verdict.ts +1 -1
  344. package/src/run.ts +64 -18
  345. package/src/scan.ts +22 -8
  346. package/src/select-priority.ts +3 -3
  347. package/src/sidecar-apply.ts +1 -1
  348. package/src/sidecar.ts +138 -11
  349. package/src/slug-namespace.ts +7 -7
  350. package/src/spec-complete.ts +2 -3
  351. package/src/start.ts +53 -59
  352. package/src/surface-gate.ts +10 -3
  353. package/src/surface-persist.ts +1 -1
  354. package/src/tasker-review-loop.ts +4 -3
  355. package/src/tasking-lock.ts +52 -36
  356. package/src/tasking.ts +261 -17
  357. package/src/triage-persist.ts +56 -12
  358. package/src/vendor/incur/LICENSE +21 -0
  359. package/src/vendor/incur/README.md +19 -0
  360. package/src/vendor/incur/agents.ts +392 -0
  361. package/src/verify-workflow-template.ts +1 -1
  362. package/src/watch-session.ts +102 -7
  363. package/src/work-layout.ts +6 -3
  364. package/src/workspace.ts +1 -1
@@ -206,6 +206,62 @@ export class GitHubCIContext {
206
206
  return false;
207
207
  return undefined;
208
208
  }
209
+ /**
210
+ * Detect the repo's DEFAULT BRANCH via
211
+ * `gh repo view --json defaultBranchRef --jq .defaultBranchRef.name`. Returns
212
+ * `undefined` when `gh` is unavailable / the repo is unknown / the call fails
213
+ * / the name is empty — the caller falls back to `main` (and logs it) so a
214
+ * `master`-defaulted repo is never silently protected on a hardcoded `main`.
215
+ */
216
+ async getDefaultBranch() {
217
+ if (!this.repo) {
218
+ return undefined;
219
+ }
220
+ const result = this.runGh([
221
+ 'repo',
222
+ 'view',
223
+ '--json',
224
+ 'defaultBranchRef',
225
+ '--jq',
226
+ '.defaultBranchRef.name',
227
+ ]);
228
+ if (result === undefined || result.status !== 0) {
229
+ return undefined;
230
+ }
231
+ const name = result.stdout.trim();
232
+ return name === '' ? undefined : name;
233
+ }
234
+ /**
235
+ * Create the deadlock-guard RULESET via
236
+ * `POST /repos/{owner}/{repo}/rulesets`. The `ruleset` body is JSON-piped on
237
+ * stdin (`gh api --input -`) so the nested rule shape carries cleanly. Throws
238
+ * on a non-zero exit; caller logs + falls back. See the module header of
239
+ * `install-ci-branch-protection.ts` for why the required-check guard uses a
240
+ * ruleset while base protection stays a classic PUT.
241
+ */
242
+ async setBranchRuleset(ruleset) {
243
+ if (!this.repo) {
244
+ throw new Error('cannot create branch ruleset: repo unknown');
245
+ }
246
+ const args = [
247
+ 'api',
248
+ '-X',
249
+ 'POST',
250
+ '-H',
251
+ 'Accept: application/vnd.github+json',
252
+ `repos/${this.repo}/rulesets`,
253
+ '--input',
254
+ '-',
255
+ ];
256
+ const result = this.runGhWithInput(args, JSON.stringify(ruleset));
257
+ if (result === undefined) {
258
+ throw new Error('gh not available; cannot create branch ruleset');
259
+ }
260
+ if (result.status !== 0) {
261
+ throw new Error(`gh api POST repos/${this.repo}/rulesets failed: ` +
262
+ (result.stderr.trim() || 'unknown error'));
263
+ }
264
+ }
209
265
  /**
210
266
  * Configure Tier-1 branch protection via
211
267
  * `PUT /repos/{owner}/{repo}/branches/{branch}/protection`. The `spec` body
@@ -281,16 +337,24 @@ export class MemoryCIProviderContext {
281
337
  repoSettings = new Map();
282
338
  /** Branch-protection spec recorded in memory (branch → spec). */
283
339
  branchProtections = new Map();
340
+ /** Deadlock-guard rulesets recorded in memory (append-only). */
341
+ rulesets = [];
284
342
  /** What `getRepoAdminScope()` should return (tests configure). */
285
343
  adminScope;
344
+ /** What `getDefaultBranch()` should return (tests configure). */
345
+ defaultBranch;
286
346
  /** Whether `setBranchProtection` should throw (tests configure). */
287
347
  branchProtectionError;
348
+ /** Whether `setBranchRuleset` should throw (tests configure). */
349
+ branchRulesetError;
288
350
  constructor(options) {
289
351
  this.workDir = options.workDir;
290
352
  this.repo = options.repo;
291
353
  this.ghAvailable = options.ghAvailable ?? false;
292
354
  this.adminScope = options.adminScope;
355
+ this.defaultBranch = options.defaultBranch;
293
356
  this.branchProtectionError = options.branchProtectionError;
357
+ this.branchRulesetError = options.branchRulesetError;
294
358
  this.providerId = options.providerId ?? GITHUB_PROVIDER_ID;
295
359
  }
296
360
  renderProjectSetup(payload) {
@@ -305,11 +369,20 @@ export class MemoryCIProviderContext {
305
369
  async getRepoAdminScope() {
306
370
  return this.adminScope;
307
371
  }
372
+ async getDefaultBranch() {
373
+ return this.defaultBranch;
374
+ }
308
375
  async setBranchProtection(branch, spec) {
309
376
  if (this.branchProtectionError !== undefined) {
310
377
  throw new Error(this.branchProtectionError);
311
378
  }
312
379
  this.branchProtections.set(branch, spec);
313
380
  }
381
+ async setBranchRuleset(ruleset) {
382
+ if (this.branchRulesetError !== undefined) {
383
+ throw new Error(this.branchRulesetError);
384
+ }
385
+ this.rulesets.push(ruleset);
386
+ }
314
387
  }
315
388
  //# sourceMappingURL=install-ci-github.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-ci-github.js","sourceRoot":"","sources":["../src/install-ci-github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-ci-github.js","sourceRoot":"","sources":["../src/install-ci-github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * The dorfl-side wrapper around the VENDORED `incur/agents.ts` (MIT — see
3
+ * `./vendor/incur/`, and the ADR `docs/adr/skill-install-vendors-incur-agents-map.md`).
4
+ * The vendored file provides the ~22-harness destination map, `detect()`, and
5
+ * `install(sourceDir, options)` that copies each skill into the canonical
6
+ * `~/.agents/skills/` and symlinks non-universal harnesses. This module is the
7
+ * dorfl-authored code AROUND it: it resolves the packaged-skills SOURCE dir
8
+ * and drives the vendored `install()` — nothing more. Keep the vendored file
9
+ * untouched (byte-close to upstream) so future incur updates stay a mechanical
10
+ * re-copy.
11
+ *
12
+ * ## Decisions (in-scope, non-obvious)
13
+ *
14
+ * - **Sibling script over merged.** The build-time packaging lives in
15
+ * `scripts/vendor-skills.mjs`, a SIBLING of the existing `vendor-protocol.mjs`
16
+ * rather than an appended block on it. The two scripts copy DIFFERENT concept
17
+ * sets (contract docs vs. hand-authored skills) into different dest subtrees;
18
+ * each has its own set that evolves independently. See the header of
19
+ * `vendor-skills.mjs` for the rationale (mirrors the wording here).
20
+ * - **Vendored file location.** `src/vendor/incur/agents.ts` (co-located with
21
+ * its MIT `LICENSE` + a `README.md` provenance note). Under `src/` so `tsc`
22
+ * compiles it into `dist/vendor/incur/agents.js`; under `vendor/incur/` so
23
+ * the upstream origin is CLEAR from the path, and a future re-copy is a
24
+ * drop-in overwrite. All dorfl wrapper code lives OUTSIDE that directory.
25
+ * - **Resolver home.** {@link resolveSkillsSourceDir} lives IN this module
26
+ * (not in `prompt.ts` next to `resolveProtocolDoc`) because "the packaged
27
+ * skills source" is a concept OWNED by skill-install; `resolveProtocolDoc`
28
+ * is owned by the runner's prompt-assembly. Same SHAPE, different concept —
29
+ * duplicating the small resolver body keeps the ownership boundary clean.
30
+ */
31
+ import { type Agent } from './vendor/incur/agents.js';
32
+ /**
33
+ * Locate the SOURCE directory of the vendored skills the installer copies
34
+ * from. Resolution order, highest authority first:
35
+ *
36
+ * 1. `override` — explicit, for tests / unusual layouts (short-circuits).
37
+ * 2. `dist/skills/` — a copy VENDORED inside this package (by the
38
+ * `vendor-skills` build step). The published-CLI primary: an installed
39
+ * CLI has no sibling monorepo-root `skills/` tree.
40
+ * 3. the legacy monorepo-relative `skills/` walk — DEV-only, kept LAST (it
41
+ * only resolves inside this dev monorepo; an installed CLI's walks escape
42
+ * into the consumer's filesystem \u2192 nothing there, which is why it cannot
43
+ * be the primary source).
44
+ *
45
+ * Mirrors the shape of {@link import('./prompt.js').resolveProtocolDoc} — the
46
+ * prefer-`dist/`-then-dev-walk order. Returns the first existing candidate;
47
+ * when nothing exists, returns the first candidate (the caller then hits a
48
+ * clean ENOENT rather than a silent no-op).
49
+ */
50
+ export declare function resolveSkillsSourceDir(override?: string): string;
51
+ /**
52
+ * Options threaded through {@link installSkills} to the vendored `install()`.
53
+ * The shape mirrors incur's `install.Options` verbatim, plus a `sourceDir`
54
+ * override for the resolver seam. Everything is optional; a bare call
55
+ * `installSkills()` performs the "install every packaged skill, globally,
56
+ * into every detected harness" default.
57
+ */
58
+ export interface InstallSkillsOptions {
59
+ /**
60
+ * Override the resolved packaged-skills source dir. Tests pin this to a
61
+ * scratch dir with fake skill folders; production callers omit it and take
62
+ * whatever {@link resolveSkillsSourceDir} returns.
63
+ */
64
+ sourceDir?: string;
65
+ /**
66
+ * `false` \u21d2 project-local placement (canonical base is `<cwd>/.agents/skills/`,
67
+ * and non-universal harnesses use their PROJECT-relative dirs). Default
68
+ * `true` (or omitted) \u21d2 global placement under `~/.agents/skills/`.
69
+ */
70
+ global?: boolean;
71
+ /**
72
+ * Working directory for project-local installs. Ignored when `global` is not
73
+ * `false`. Defaults (in the vendored file) to `process.cwd()`.
74
+ */
75
+ cwd?: string;
76
+ /**
77
+ * Override the detected harnesses. Tests use this to force a deterministic
78
+ * set; production callers omit it and let the vendored `detect()` pick.
79
+ */
80
+ agents?: Agent[];
81
+ }
82
+ /**
83
+ * The per-harness install detail returned by the vendored `install()` (for
84
+ * NON-UNIVERSAL harnesses only \u2014 universal harnesses read from the canonical
85
+ * `.agents/skills/` directly and need no per-harness entry).
86
+ */
87
+ export interface InstalledAgent {
88
+ /** Harness display name (e.g. `'Claude Code'`, `'Windsurf'`). */
89
+ agent: string;
90
+ /** Absolute path the skill was placed at for this harness. */
91
+ path: string;
92
+ /** How the placement was materialised. Symlink is the norm; copy is the
93
+ * Windows/no-permission fallback. */
94
+ mode: 'symlink' | 'copy';
95
+ }
96
+ /** The report {@link installSkills} returns to its CLI caller. */
97
+ export interface InstallSkillsResult {
98
+ /**
99
+ * The SOURCE directory the vendored `install()` was driven from (the value
100
+ * {@link resolveSkillsSourceDir} chose). Included so `dorfl skills add`
101
+ * can print WHERE the skills were read from, and tests can assert the
102
+ * resolver picked what they expected.
103
+ */
104
+ sourceDir: string;
105
+ /** Canonical install paths (one per skill directory copied). */
106
+ paths: string[];
107
+ /** Per-harness placements for non-universal harnesses. */
108
+ agents: InstalledAgent[];
109
+ }
110
+ /**
111
+ * Resolve the packaged-skills source, drive the vendored `install()`, return
112
+ * the source + canonical paths + per-harness report. Global by default; pass
113
+ * `global: false` for project-local placement. Tests pin `sourceDir`/`agents`
114
+ * to keep the run hermetic; production callers pass nothing.
115
+ *
116
+ * The vendored `install()` reads `os.homedir()` (etc.) at MODULE LOAD, so
117
+ * shared-write isolation for `global: true` (the default) has to happen BEFORE
118
+ * this module is loaded (e.g. by pointing `HOME` at a scratch dir). Tests use
119
+ * `global: false` + a scratch `cwd` for the common path (no env dance needed);
120
+ * see `test/install-skills.test.ts`.
121
+ */
122
+ export declare function installSkills(options?: InstallSkillsOptions): InstallSkillsResult;
123
+ //# sourceMappingURL=install-skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-skills.d.ts","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EAAU,KAAK,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBhE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;0CACsC;IACtC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;CACzB;AAED,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IACnC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0DAA0D;IAC1D,MAAM,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC5B,OAAO,GAAE,oBAAyB,GAChC,mBAAmB,CAYrB"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * The dorfl-side wrapper around the VENDORED `incur/agents.ts` (MIT — see
3
+ * `./vendor/incur/`, and the ADR `docs/adr/skill-install-vendors-incur-agents-map.md`).
4
+ * The vendored file provides the ~22-harness destination map, `detect()`, and
5
+ * `install(sourceDir, options)` that copies each skill into the canonical
6
+ * `~/.agents/skills/` and symlinks non-universal harnesses. This module is the
7
+ * dorfl-authored code AROUND it: it resolves the packaged-skills SOURCE dir
8
+ * and drives the vendored `install()` — nothing more. Keep the vendored file
9
+ * untouched (byte-close to upstream) so future incur updates stay a mechanical
10
+ * re-copy.
11
+ *
12
+ * ## Decisions (in-scope, non-obvious)
13
+ *
14
+ * - **Sibling script over merged.** The build-time packaging lives in
15
+ * `scripts/vendor-skills.mjs`, a SIBLING of the existing `vendor-protocol.mjs`
16
+ * rather than an appended block on it. The two scripts copy DIFFERENT concept
17
+ * sets (contract docs vs. hand-authored skills) into different dest subtrees;
18
+ * each has its own set that evolves independently. See the header of
19
+ * `vendor-skills.mjs` for the rationale (mirrors the wording here).
20
+ * - **Vendored file location.** `src/vendor/incur/agents.ts` (co-located with
21
+ * its MIT `LICENSE` + a `README.md` provenance note). Under `src/` so `tsc`
22
+ * compiles it into `dist/vendor/incur/agents.js`; under `vendor/incur/` so
23
+ * the upstream origin is CLEAR from the path, and a future re-copy is a
24
+ * drop-in overwrite. All dorfl wrapper code lives OUTSIDE that directory.
25
+ * - **Resolver home.** {@link resolveSkillsSourceDir} lives IN this module
26
+ * (not in `prompt.ts` next to `resolveProtocolDoc`) because "the packaged
27
+ * skills source" is a concept OWNED by skill-install; `resolveProtocolDoc`
28
+ * is owned by the runner's prompt-assembly. Same SHAPE, different concept —
29
+ * duplicating the small resolver body keeps the ownership boundary clean.
30
+ */
31
+ import { existsSync } from 'node:fs';
32
+ import { dirname, resolve } from 'node:path';
33
+ import { fileURLToPath } from 'node:url';
34
+ import { install } from './vendor/incur/agents.js';
35
+ /**
36
+ * Locate the SOURCE directory of the vendored skills the installer copies
37
+ * from. Resolution order, highest authority first:
38
+ *
39
+ * 1. `override` — explicit, for tests / unusual layouts (short-circuits).
40
+ * 2. `dist/skills/` — a copy VENDORED inside this package (by the
41
+ * `vendor-skills` build step). The published-CLI primary: an installed
42
+ * CLI has no sibling monorepo-root `skills/` tree.
43
+ * 3. the legacy monorepo-relative `skills/` walk — DEV-only, kept LAST (it
44
+ * only resolves inside this dev monorepo; an installed CLI's walks escape
45
+ * into the consumer's filesystem \u2192 nothing there, which is why it cannot
46
+ * be the primary source).
47
+ *
48
+ * Mirrors the shape of {@link import('./prompt.js').resolveProtocolDoc} — the
49
+ * prefer-`dist/`-then-dev-walk order. Returns the first existing candidate;
50
+ * when nothing exists, returns the first candidate (the caller then hits a
51
+ * clean ENOENT rather than a silent no-op).
52
+ */
53
+ export function resolveSkillsSourceDir(override) {
54
+ if (override) {
55
+ return override;
56
+ }
57
+ const here = dirname(fileURLToPath(import.meta.url));
58
+ // here = .../packages/dorfl/{src,dist}.
59
+ const candidates = [
60
+ // 2. Package-vendored copy (published-CLI primary). From `src/` (tsx)
61
+ // `dist/` is a sibling; from `dist/` it is the dir itself.
62
+ resolve(here, '..', 'dist', 'skills'),
63
+ resolve(here, 'skills'),
64
+ // 3. Legacy monorepo-root walk \u2014 DEV-only, LAST.
65
+ resolve(here, '..', '..', '..', 'skills'),
66
+ resolve(here, '..', '..', '..', '..', 'skills'),
67
+ ];
68
+ for (const candidate of candidates) {
69
+ if (existsSync(candidate)) {
70
+ return candidate;
71
+ }
72
+ }
73
+ return candidates[0];
74
+ }
75
+ /**
76
+ * Resolve the packaged-skills source, drive the vendored `install()`, return
77
+ * the source + canonical paths + per-harness report. Global by default; pass
78
+ * `global: false` for project-local placement. Tests pin `sourceDir`/`agents`
79
+ * to keep the run hermetic; production callers pass nothing.
80
+ *
81
+ * The vendored `install()` reads `os.homedir()` (etc.) at MODULE LOAD, so
82
+ * shared-write isolation for `global: true` (the default) has to happen BEFORE
83
+ * this module is loaded (e.g. by pointing `HOME` at a scratch dir). Tests use
84
+ * `global: false` + a scratch `cwd` for the common path (no env dance needed);
85
+ * see `test/install-skills.test.ts`.
86
+ */
87
+ export function installSkills(options = {}) {
88
+ const sourceDir = resolveSkillsSourceDir(options.sourceDir);
89
+ const result = install(sourceDir, {
90
+ global: options.global,
91
+ cwd: options.cwd,
92
+ agents: options.agents,
93
+ });
94
+ return {
95
+ sourceDir,
96
+ paths: result.paths,
97
+ agents: result.agents,
98
+ };
99
+ }
100
+ //# sourceMappingURL=install-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-skills.js","sourceRoot":"","sources":["../src/install-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,OAAO,EAAa,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAiB;IACvD,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,wCAAwC;IACxC,MAAM,UAAU,GAAa;QAC5B,sEAAsE;QACtE,8DAA8D;QAC9D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;QACrC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACvB,sDAAsD;QACtD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;QACzC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;KAC/C,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAgED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC5B,UAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE;QACjC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB,CAAC,CAAC;IACH,OAAO;QACN,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACrB,CAAC;AACH,CAAC"}
@@ -260,7 +260,7 @@ jobs:
260
260
  if: \${{ github.event.issue.number && !github.event.issue.pull_request }}
261
261
  runs-on: ubuntu-latest
262
262
  steps:
263
- - uses: actions/checkout@v4
263
+ - uses: actions/checkout@v5
264
264
  with:
265
265
  fetch-depth: 0
266
266
  - uses: ./.github/actions/dorfl-setup${setupWith}
package/dist/intake.d.ts CHANGED
@@ -53,7 +53,7 @@ import { type IntakeTriageDecision } from './intake-triage.js';
53
53
  * table). EXPAND step (spec
54
54
  * `prd-to-spec-vocabulary-cutover-and-migration-command`): the `spec` outcome
55
55
  * names the "clear + coherent but >1 task" classification (a parent SPEC). HARD
56
- * CUTOVER (contract step): the legacy `prd` outcome token is GONE — the prompt
56
+ * CUTOVER (contract step): the legacy ''prd'' outcome token is GONE — the prompt
57
57
  * emits `spec` and the parser rejects any other token.
58
58
  */
59
59
  export type IntakeOutcome = 'ask' | 'task' | 'spec' | 'bounce';
@@ -198,7 +198,7 @@ export interface PerformIntakeOptions {
198
198
  * The PER-OUTCOME integration modes (spec `issue-intake` US #9) the emitted artifact integrates
199
199
  * THROUGH the shared core with. Because `intake` decides the artifact TYPE at
200
200
  * RUNTIME, the mode is keyed per type: an emitted task integrates with
201
- * `integration.task`, an emitted spec with `integration.prd` (`propose` =
201
+ * `integration.task`, an emitted spec with `integration.spec` (`propose` =
202
202
  * push the `work/<slug>` branch + open a PR, NO `main` touch; `merge` = land on
203
203
  * `main`). The CLI resolves this from the granular + aggregate flags via
204
204
  * {@link resolveIntakeIntegrationModes}; ask/bounce emit nothing, so the modes
@@ -209,7 +209,7 @@ export interface PerformIntakeOptions {
209
209
  * **The ORIGIN-TRUST verdict, passed IN** (task
210
210
  * `untrusted-origin-forces-build-propose`; the `--origin-trust <trusted|untrusted>`
211
211
  * CLI flag). `intake` STAMPS `origin: issue` + this `originTrust` onto every spec/
212
- * task it emits, so the author-trust signal SURVIVES the prd/task merge
212
+ * task it emits, so the author-trust signal SURVIVES the spec/task merge
213
213
  * boundary (a landed-on-main artifact otherwise erases how it was born, the
214
214
  * laundering gap). `intake` does NOT resolve trust itself: the verdict is CI's
215
215
  * POLICY, computed in the `intake.yml` shell from the SAME `author_association`
@@ -267,6 +267,19 @@ export interface PerformIntakeOptions {
267
267
  * must not act as the bot. Absent ⇒ ambient (today's behaviour).
268
268
  */
269
269
  identity?: Identity;
270
+ /**
271
+ * **The cross-job merge-serialiser CAS-retry cap** (config `mergeRetries`, spec
272
+ * `land-time-reverify-and-parallel-merge-ceiling` Story 5 / Applied Answer q1
273
+ * (a)). Threaded VERBATIM into the shared integrate core so a wide-matrix CI's
274
+ * raised cap reaches intake's task/spec emit land tail too (task
275
+ * `thread-merge-retries-cross-task-and-ratify-default`). Resolved ONCE at the
276
+ * entry point (the CLI) through the env + per-repo layers of the gate-family
277
+ * precedence chain — the `intake` command has NO `--merge-retries` flag today
278
+ * (the flag layer legitimately does not apply here; intake is
279
+ * unattended-CI-first, env + per-repo cover the need). Unset ⇒ the engine's
280
+ * `DEFAULT_MERGE_RETRIES = 1000` (byte-for-byte unchanged).
281
+ */
282
+ mergeRetries?: number;
270
283
  /** Environment for child git/agent processes (the AGENT-launch ambient env). */
271
284
  env?: NodeJS.ProcessEnv;
272
285
  /** Sink for human-readable progress notes. */
@@ -286,7 +299,7 @@ export interface PerformIntakeOptions {
286
299
  export declare const STAGED_SPECS_DIR: string;
287
300
  /**
288
301
  * The emitted artifact TYPE `intake` decides at RUNTIME — a `task` verdict emits
289
- * `work/backlog/<slug>.md`, a `prd` verdict emits the spec file (`work/specs/ready/<slug>.md`). The two
302
+ * `work/backlog/<slug>.md`, a `spec` verdict emits the spec file (`work/specs/ready/<slug>.md`). The two
290
303
  * granular flag axes (`--merge-task`/`--propose-task` vs `--merge-spec`/
291
304
  * `--propose-spec`) are keyed on this. (ask/bounce emit NOTHING, so the modes are
292
305
  * no-ops for them.)
@@ -1 +1 @@
1
- {"version":3,"file":"intake.d.ts","sourceRoot":"","sources":["../src/intake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intake.d.ts","sourceRoot":"","sources":["../src/intake.ts"],"names":[],"mappings":"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"}
package/dist/intake.js CHANGED
@@ -411,6 +411,9 @@ async function decideAndDispatch(options, cwd, issue, comments, ctx) {
411
411
  cwd,
412
412
  arbiter,
413
413
  integration: modes.task,
414
+ // The resolved cross-job CAS-retry cap (config `mergeRetries`) — threaded so
415
+ // intake's lone-task emit lands under the same per-repo cap the build path uses.
416
+ mergeRetries: options.mergeRetries,
414
417
  // The origin-trust STAMP, passed IN (not resolved here): the emitted task
415
418
  // carries `origin: issue` + this verdict so the becomes-code checkpoint is
416
419
  // not laundered. Unset ⇒ unstamped (a local intake ⇒ human/trusted).
@@ -429,7 +432,7 @@ async function decideAndDispatch(options, cwd, issue, comments, ctx) {
429
432
  note,
430
433
  });
431
434
  // The `spec` outcome is the parent-spec verdict; it dispatches through
432
- // `modes.spec`. HARD CUTOVER: the legacy `prd` outcome case is GONE.
435
+ // `modes.spec`. HARD CUTOVER: the legacy ''prd'' outcome case is GONE.
433
436
  case 'spec':
434
437
  return dispatchSpec({
435
438
  verdict,
@@ -437,6 +440,9 @@ async function decideAndDispatch(options, cwd, issue, comments, ctx) {
437
440
  cwd,
438
441
  arbiter,
439
442
  integration: modes.spec,
443
+ // The resolved cross-job CAS-retry cap (config `mergeRetries`) — threaded so
444
+ // intake's spec emit lands under the same per-repo cap the build path uses.
445
+ mergeRetries: options.mergeRetries,
440
446
  // Same origin-trust stamp on the spec outcome (propagated onto its tasks
441
447
  // later by the tasker). Passed IN; not resolved here.
442
448
  originTrust: options.originTrust,
@@ -580,7 +586,7 @@ async function dispatchComment(params) {
580
586
  * agent did NO git/seam ops.
581
587
  */
582
588
  async function dispatchTask(params) {
583
- const { verdict, issueNumber, cwd, arbiter, integration, originTrust, noPR, providerInstance, issueProvider, reviewTask, seen, env, agentEnv, note, } = params;
589
+ const { verdict, issueNumber, cwd, arbiter, integration, mergeRetries, originTrust, noPR, providerInstance, issueProvider, reviewTask, seen, env, agentEnv, note, } = params;
584
590
  // A content-derived slug — NEVER a counter (spec `issue-intake` US #8). Prefer the drafted
585
591
  // `taskSlug`, else derive from the drafted title; sanitise either through
586
592
  // `paramCase` so the filename + frontmatter slug are well-formed.
@@ -684,6 +690,12 @@ async function dispatchTask(params) {
684
690
  // EXPLICITLY-chosen mode proceeds as-is: a future `--merge-task` lands on main
685
691
  // (`merge` IS the auto-land mode, never downgraded).
686
692
  mode: integration,
693
+ // The cross-job merge-serialiser CAS-retry cap (config `mergeRetries`) — the
694
+ // git-alone floor of the cross-job land queue, resolved through the gate-
695
+ // family precedence chain in the CLI and threaded here so intake's lone-task
696
+ // emit lands under the same per-repo cap the build path uses. Unset ⇒ the
697
+ // engine default (byte-for-byte unchanged).
698
+ mergeRetries,
687
699
  noPR,
688
700
  providerInstance,
689
701
  type: 'feat',
@@ -713,8 +725,8 @@ async function dispatchTask(params) {
713
725
  });
714
726
  }
715
727
  /**
716
- * DISPATCH the `spec` outcome (canonical; the legacy `prd` outcome routes here too
717
- * through the cutover): derive a content-derived slug, write the spec file
728
+ * DISPATCH the `spec` outcome (the SOLE parent-spec outcome after the HARD CUTOVER;
729
+ * the legacy ''prd'' outcome token is GONE): derive a content-derived slug, write the spec file
718
730
  * (`work/specs/ready/<slug>.md`) carrying `issue: N` (the loop-closure linkage the
719
731
  * close JOB reaches via `task.spec: → spec issue:`; on a fanned spec the number
720
732
  * lives ONLY on the spec — a fanned task uses `spec:`, NOT its own `issue:`, which
@@ -725,7 +737,7 @@ async function dispatchTask(params) {
725
737
  * runner owns the git exactly as the task branch does; the agent did NO git/seam ops.
726
738
  */
727
739
  async function dispatchSpec(params) {
728
- const { verdict, issueNumber, cwd, arbiter, integration, originTrust, noPR, specsLandIn, explicitSpecsLandIn, providerInstance, issueProvider, seen, env, note, } = params;
740
+ const { verdict, issueNumber, cwd, arbiter, integration, mergeRetries, originTrust, noPR, specsLandIn, explicitSpecsLandIn, providerInstance, issueProvider, seen, env, note, } = params;
729
741
  // A content-derived slug — NEVER a counter (spec `issue-intake` US #8). Prefer the drafted
730
742
  // `specSlug`, else derive from the drafted title.
731
743
  const slug = resolveSpecSlug(verdict);
@@ -774,6 +786,10 @@ async function dispatchSpec(params) {
774
786
  // not a build), exactly as the task branch + the tasking transition skip it.
775
787
  skipVerify: true,
776
788
  mode: integration,
789
+ // The cross-job merge-serialiser CAS-retry cap (config `mergeRetries`) — same
790
+ // rationale as the lone-task emit above; threaded so intake's spec emit lands
791
+ // under the same per-repo cap. Unset ⇒ the engine default (byte-for-byte).
792
+ mergeRetries,
777
793
  noPR,
778
794
  providerInstance,
779
795
  type: 'feat',
@@ -1091,7 +1107,7 @@ async function stageIntakeContent(params) {
1091
1107
  * `intake-` PRODUCER prefix keeps this short-lived "create the item" branch
1092
1108
  * DISTINCT from the later build branch (`work/task-<slug>`) for the same slug
1093
1109
  * — the firing `intake` × `do task:` collision the observation traced. The
1094
- * task-emit path passes `'task'`, the spec-emit path `'prd'`. A pre-existing
1110
+ * task-emit path passes `'task'`, the spec-emit path `'spec'`. A pre-existing
1095
1111
  * local branch (a re-run) is force-recreated off fresh main.
1096
1112
  */
1097
1113
  async function switchToWorkBranch(cwd, arbiter, type, slug, env) {
@@ -1184,7 +1200,7 @@ export function parseIntakeVerdict(output) {
1184
1200
  outcome !== 'spec' &&
1185
1201
  outcome !== 'bounce') {
1186
1202
  // The prompt teaches the LLM to emit `spec`, so the accepted outcome set is
1187
- // `ask|task|spec|bounce`. HARD CUTOVER: the legacy `prd` outcome token is
1203
+ // `ask|task|spec|bounce`. HARD CUTOVER: the legacy ''prd'' outcome token is
1188
1204
  // fully gone (rejected here + removed from the `IntakeOutcome` type + the
1189
1205
  // dispatch `case`).
1190
1206
  throw new Error(`intake verdict 'outcome' was not one of ask|task|spec|bounce (got ` +