dorfl 0.1.0 → 0.1.2

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 (324) 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 +7 -7
  8. package/dist/advance-drivers.d.ts.map +1 -1
  9. package/dist/advance-drivers.js +5 -5
  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.js +9 -9
  16. package/dist/advance-lifecycle-template.js.map +1 -1
  17. package/dist/advance-loop-driver.d.ts +3 -3
  18. package/dist/advance-loop-driver.d.ts.map +1 -1
  19. package/dist/advance-loop-driver.js +1 -1
  20. package/dist/advance-treeless-publish.d.ts +1 -1
  21. package/dist/advance.d.ts +11 -11
  22. package/dist/advance.d.ts.map +1 -1
  23. package/dist/advance.js +21 -21
  24. package/dist/advance.js.map +1 -1
  25. package/dist/advancing-lock.d.ts +1 -1
  26. package/dist/advancing-lock.js +5 -5
  27. package/dist/apply-decide.d.ts +2 -2
  28. package/dist/apply-decide.js +2 -2
  29. package/dist/apply-merge-action.d.ts +4 -4
  30. package/dist/apply-merge-action.js +2 -2
  31. package/dist/apply-persist.d.ts +5 -5
  32. package/dist/apply-persist.d.ts.map +1 -1
  33. package/dist/apply-persist.js +7 -7
  34. package/dist/apply-persist.js.map +1 -1
  35. package/dist/buildable-body.d.ts +14 -14
  36. package/dist/buildable-body.js +9 -9
  37. package/dist/claim-cas.d.ts +3 -3
  38. package/dist/claim-cas.js +1 -1
  39. package/dist/claim-cas.js.map +1 -1
  40. package/dist/cli.d.ts.map +1 -1
  41. package/dist/cli.js +83 -77
  42. package/dist/cli.js.map +1 -1
  43. package/dist/close-job-template.d.ts +3 -3
  44. package/dist/close-job-template.js +8 -8
  45. package/dist/close-job.d.ts +8 -8
  46. package/dist/close-job.js +25 -25
  47. package/dist/close-job.js.map +1 -1
  48. package/dist/complete.d.ts +3 -3
  49. package/dist/complete.js +8 -8
  50. package/dist/complete.js.map +1 -1
  51. package/dist/concurrency.d.ts +1 -1
  52. package/dist/concurrency.js +1 -1
  53. package/dist/config.d.ts +32 -32
  54. package/dist/config.js +5 -5
  55. package/dist/config.js.map +1 -1
  56. package/dist/continue-branch.d.ts +1 -1
  57. package/dist/continue-branch.js +1 -1
  58. package/dist/cwd-section.js +1 -1
  59. package/dist/cwd-section.js.map +1 -1
  60. package/dist/decision-engine.d.ts +2 -2
  61. package/dist/do-autopick.d.ts +6 -6
  62. package/dist/do-autopick.d.ts.map +1 -1
  63. package/dist/do-autopick.js +5 -5
  64. package/dist/do-autopick.js.map +1 -1
  65. package/dist/do-config.d.ts +3 -3
  66. package/dist/do-config.js +3 -3
  67. package/dist/do-config.js.map +1 -1
  68. package/dist/do-remote-auto.d.ts +2 -2
  69. package/dist/do-remote-auto.js +1 -1
  70. package/dist/do.d.ts +25 -25
  71. package/dist/do.d.ts.map +1 -1
  72. package/dist/do.js +22 -22
  73. package/dist/do.js.map +1 -1
  74. package/dist/drop-source.d.ts +2 -2
  75. package/dist/env-config.js +8 -8
  76. package/dist/env-config.js.map +1 -1
  77. package/dist/format.js +3 -3
  78. package/dist/format.js.map +1 -1
  79. package/dist/frontmatter.d.ts +33 -39
  80. package/dist/frontmatter.d.ts.map +1 -1
  81. package/dist/frontmatter.js +18 -31
  82. package/dist/frontmatter.js.map +1 -1
  83. package/dist/install-ci-branch-protection.d.ts +1 -1
  84. package/dist/install-ci-branch-protection.js +1 -1
  85. package/dist/install-ci-capabilities/advance-lifecycle.d.ts +1 -1
  86. package/dist/install-ci-capabilities/advance-lifecycle.js +1 -1
  87. package/dist/install-ci-capabilities/close-job.d.ts +1 -1
  88. package/dist/install-ci-capabilities/close-job.js +1 -1
  89. package/dist/install-ci-capabilities/example-noop.d.ts +1 -1
  90. package/dist/install-ci-capabilities/example-noop.js +1 -1
  91. package/dist/install-ci-capabilities/intake.d.ts +2 -2
  92. package/dist/install-ci-capabilities/intake.js +2 -2
  93. package/dist/install-ci-capabilities/verify.d.ts +1 -1
  94. package/dist/install-ci-capabilities/verify.js +1 -1
  95. package/dist/install-ci-core.d.ts +3 -3
  96. package/dist/install-ci-core.js +2 -2
  97. package/dist/install-ci-core.js.map +1 -1
  98. package/dist/install-ci-github.d.ts +1 -1
  99. package/dist/install-ci-github.js +1 -1
  100. package/dist/install-ci.d.ts +1 -1
  101. package/dist/install-ci.js +4 -4
  102. package/dist/install-ci.js.map +1 -1
  103. package/dist/intake-event.d.ts +6 -6
  104. package/dist/intake-event.js +6 -6
  105. package/dist/intake-marker.d.ts +3 -3
  106. package/dist/intake-marker.d.ts.map +1 -1
  107. package/dist/intake-triage.d.ts +1 -1
  108. package/dist/intake-triage.js +2 -2
  109. package/dist/intake-trigger-template.d.ts +8 -8
  110. package/dist/intake-trigger-template.d.ts.map +1 -1
  111. package/dist/intake-trigger-template.js +16 -16
  112. package/dist/intake-trigger-template.js.map +1 -1
  113. package/dist/intake.d.ts +50 -50
  114. package/dist/intake.d.ts.map +1 -1
  115. package/dist/intake.js +70 -70
  116. package/dist/intake.js.map +1 -1
  117. package/dist/integration-core.d.ts +17 -17
  118. package/dist/integration-core.js +17 -17
  119. package/dist/integration-core.js.map +1 -1
  120. package/dist/isolation.d.ts +3 -3
  121. package/dist/issue-provider.d.ts +4 -4
  122. package/dist/issue-provider.js +1 -1
  123. package/dist/item-lock.d.ts +21 -21
  124. package/dist/item-lock.d.ts.map +1 -1
  125. package/dist/item-lock.js +16 -16
  126. package/dist/item-path.d.ts +2 -2
  127. package/dist/item-path.js +2 -2
  128. package/dist/ledger-lint.d.ts +9 -9
  129. package/dist/ledger-lint.js +9 -9
  130. package/dist/ledger-read.d.ts +57 -57
  131. package/dist/ledger-read.d.ts.map +1 -1
  132. package/dist/ledger-read.js +24 -24
  133. package/dist/ledger-read.js.map +1 -1
  134. package/dist/ledger-write.d.ts +2 -2
  135. package/dist/ledger-write.js +1 -1
  136. package/dist/lifecycle-gather.d.ts +1 -1
  137. package/dist/lifecycle-gather.js +16 -16
  138. package/dist/lifecycle-gather.js.map +1 -1
  139. package/dist/lifecycle-pools.d.ts +4 -4
  140. package/dist/lifecycle-pools.js +1 -1
  141. package/dist/merge-question-surfacer.d.ts +3 -3
  142. package/dist/merge-question-surfacer.js +2 -2
  143. package/dist/merge-question-surfacer.js.map +1 -1
  144. package/dist/mint-adr.js +4 -4
  145. package/dist/mirror-pool-scan.d.ts +2 -2
  146. package/dist/mirror-pool-scan.js +3 -3
  147. package/dist/mirror-pool-scan.js.map +1 -1
  148. package/dist/needs-attention.d.ts +13 -13
  149. package/dist/needs-attention.d.ts.map +1 -1
  150. package/dist/needs-attention.js +11 -11
  151. package/dist/needs-attention.js.map +1 -1
  152. package/dist/orphan-sidecar.d.ts +2 -2
  153. package/dist/placement.d.ts +6 -6
  154. package/dist/placement.js +2 -2
  155. package/dist/prd-to-spec.d.ts +15 -1
  156. package/dist/prd-to-spec.d.ts.map +1 -1
  157. package/dist/prd-to-spec.js +36 -14
  158. package/dist/prd-to-spec.js.map +1 -1
  159. package/dist/prompt.d.ts +24 -24
  160. package/dist/prompt.d.ts.map +1 -1
  161. package/dist/prompt.js +29 -31
  162. package/dist/prompt.js.map +1 -1
  163. package/dist/protocol/CLAIM-PROTOCOL.md +4 -4
  164. package/dist/protocol/REVIEW-PROTOCOL.md +1 -1
  165. package/dist/protocol/TASKING-PROTOCOL.md +12 -12
  166. package/dist/protocol/WORK-CONTRACT.md +39 -39
  167. package/dist/protocol/spec-template.md +1 -1
  168. package/dist/protocol/task-template.md +3 -3
  169. package/dist/readiness.d.ts +1 -1
  170. package/dist/recover-isolated.js +1 -1
  171. package/dist/repo-config.js +12 -12
  172. package/dist/repo-config.js.map +1 -1
  173. package/dist/review-gate.d.ts +3 -3
  174. package/dist/review-gate.d.ts.map +1 -1
  175. package/dist/review-gate.js +11 -10
  176. package/dist/review-gate.js.map +1 -1
  177. package/dist/review-verdict.d.ts +2 -2
  178. package/dist/review-verdict.d.ts.map +1 -1
  179. package/dist/review-verdict.js +1 -1
  180. package/dist/run.d.ts +1 -1
  181. package/dist/run.js +5 -5
  182. package/dist/run.js.map +1 -1
  183. package/dist/scan.d.ts +10 -10
  184. package/dist/scan.d.ts.map +1 -1
  185. package/dist/scan.js +8 -8
  186. package/dist/scan.js.map +1 -1
  187. package/dist/select-order.d.ts +1 -1
  188. package/dist/select-priority.d.ts +12 -12
  189. package/dist/select-priority.d.ts.map +1 -1
  190. package/dist/select-priority.js +5 -5
  191. package/dist/select-priority.js.map +1 -1
  192. package/dist/sidecar.d.ts +2 -2
  193. package/dist/sidecar.js +2 -2
  194. package/dist/sidecar.js.map +1 -1
  195. package/dist/slug-namespace.d.ts +1 -1
  196. package/dist/slug-namespace.js +3 -3
  197. package/dist/slug-namespace.js.map +1 -1
  198. package/dist/spec-complete.js +2 -2
  199. package/dist/spec-complete.js.map +1 -1
  200. package/dist/start.d.ts +1 -1
  201. package/dist/start.js +3 -3
  202. package/dist/start.js.map +1 -1
  203. package/dist/status.d.ts +3 -3
  204. package/dist/status.js +4 -4
  205. package/dist/status.js.map +1 -1
  206. package/dist/surface-gate.d.ts +2 -2
  207. package/dist/surface-gate.d.ts.map +1 -1
  208. package/dist/surface-persist.d.ts +2 -2
  209. package/dist/surface-persist.d.ts.map +1 -1
  210. package/dist/tasker-review-loop.d.ts +8 -8
  211. package/dist/tasker-review-loop.d.ts.map +1 -1
  212. package/dist/tasker-review-loop.js +8 -8
  213. package/dist/tasker-review-loop.js.map +1 -1
  214. package/dist/tasking-eligibility.d.ts +21 -21
  215. package/dist/tasking-eligibility.d.ts.map +1 -1
  216. package/dist/tasking-eligibility.js +10 -10
  217. package/dist/tasking-lock.d.ts +8 -8
  218. package/dist/tasking-lock.d.ts.map +1 -1
  219. package/dist/tasking-lock.js +20 -21
  220. package/dist/tasking-lock.js.map +1 -1
  221. package/dist/tasking.d.ts +33 -33
  222. package/dist/tasking.d.ts.map +1 -1
  223. package/dist/tasking.js +89 -88
  224. package/dist/tasking.js.map +1 -1
  225. package/dist/triage-gate.d.ts +1 -1
  226. package/dist/triage-persist.d.ts +5 -5
  227. package/dist/triage-persist.js +15 -15
  228. package/dist/triage-persist.js.map +1 -1
  229. package/dist/verify-workflow-template.d.ts +1 -1
  230. package/dist/verify-workflow-template.js +2 -2
  231. package/dist/work-layout.d.ts +9 -7
  232. package/dist/work-layout.d.ts.map +1 -1
  233. package/dist/work-layout.js +9 -7
  234. package/dist/work-layout.js.map +1 -1
  235. package/dist/workspace.d.ts +1 -1
  236. package/package.json +1 -1
  237. package/src/advance-ci-template.ts +4 -4
  238. package/src/advance-classify.ts +5 -5
  239. package/src/advance-drivers.ts +10 -10
  240. package/src/advance-isolated.ts +3 -3
  241. package/src/advance-lifecycle-template.ts +9 -9
  242. package/src/advance-loop-driver.ts +3 -3
  243. package/src/advance-treeless-publish.ts +1 -1
  244. package/src/advance.ts +30 -30
  245. package/src/advancing-lock.ts +6 -6
  246. package/src/apply-decide.ts +2 -2
  247. package/src/apply-merge-action.ts +5 -5
  248. package/src/apply-persist.ts +8 -8
  249. package/src/buildable-body.ts +14 -14
  250. package/src/claim-cas.ts +4 -4
  251. package/src/cli.ts +94 -84
  252. package/src/close-job-template.ts +8 -8
  253. package/src/close-job.ts +26 -26
  254. package/src/complete.ts +11 -11
  255. package/src/concurrency.ts +1 -1
  256. package/src/config.ts +37 -37
  257. package/src/continue-branch.ts +1 -1
  258. package/src/cwd-section.ts +1 -1
  259. package/src/decision-engine.ts +3 -3
  260. package/src/do-autopick.ts +9 -9
  261. package/src/do-config.ts +6 -6
  262. package/src/do-remote-auto.ts +2 -2
  263. package/src/do.ts +49 -49
  264. package/src/drop-source.ts +2 -2
  265. package/src/env-config.ts +8 -8
  266. package/src/format.ts +3 -3
  267. package/src/frontmatter.ts +42 -60
  268. package/src/install-ci-branch-protection.ts +1 -1
  269. package/src/install-ci-capabilities/advance-lifecycle.ts +1 -1
  270. package/src/install-ci-capabilities/close-job.ts +1 -1
  271. package/src/install-ci-capabilities/example-noop.ts +1 -1
  272. package/src/install-ci-capabilities/intake.ts +2 -2
  273. package/src/install-ci-capabilities/verify.ts +1 -1
  274. package/src/install-ci-core.ts +4 -4
  275. package/src/install-ci-github.ts +1 -1
  276. package/src/install-ci.ts +4 -4
  277. package/src/intake-event.ts +6 -6
  278. package/src/intake-marker.ts +3 -3
  279. package/src/intake-triage.ts +2 -2
  280. package/src/intake-trigger-template.ts +17 -17
  281. package/src/intake.ts +97 -97
  282. package/src/integration-core.ts +35 -35
  283. package/src/isolation.ts +3 -3
  284. package/src/issue-provider.ts +4 -4
  285. package/src/item-lock.ts +21 -21
  286. package/src/item-path.ts +2 -2
  287. package/src/ledger-lint.ts +9 -9
  288. package/src/ledger-read.ts +81 -81
  289. package/src/ledger-write.ts +3 -3
  290. package/src/lifecycle-gather.ts +16 -16
  291. package/src/lifecycle-pools.ts +4 -4
  292. package/src/merge-question-surfacer.ts +4 -4
  293. package/src/mint-adr.ts +4 -4
  294. package/src/mirror-pool-scan.ts +5 -5
  295. package/src/needs-attention.ts +22 -22
  296. package/src/orphan-sidecar.ts +2 -2
  297. package/src/placement.ts +6 -6
  298. package/src/prd-to-spec.ts +51 -15
  299. package/src/prompt.ts +33 -35
  300. package/src/readiness.ts +1 -1
  301. package/src/recover-isolated.ts +1 -1
  302. package/src/repo-config.ts +12 -12
  303. package/src/review-gate.ts +12 -11
  304. package/src/review-verdict.ts +2 -2
  305. package/src/run.ts +6 -6
  306. package/src/scan.ts +15 -15
  307. package/src/select-order.ts +1 -1
  308. package/src/select-priority.ts +13 -13
  309. package/src/sidecar.ts +3 -3
  310. package/src/slug-namespace.ts +3 -3
  311. package/src/spec-complete.ts +2 -2
  312. package/src/start.ts +4 -4
  313. package/src/status.ts +7 -7
  314. package/src/surface-gate.ts +2 -2
  315. package/src/surface-persist.ts +2 -2
  316. package/src/tasker-review-loop.ts +15 -15
  317. package/src/tasking-eligibility.ts +21 -21
  318. package/src/tasking-lock.ts +27 -28
  319. package/src/tasking.ts +124 -123
  320. package/src/triage-gate.ts +1 -1
  321. package/src/triage-persist.ts +16 -16
  322. package/src/verify-workflow-template.ts +2 -2
  323. package/src/work-layout.ts +9 -7
  324. package/src/workspace.ts +1 -1
@@ -1,14 +1,14 @@
1
1
  /**
2
- * **`intake`'s PURE event-classification** (task `intake-event-classification`, prd
2
+ * **`intake`'s PURE event-classification** (task `intake-event-classification`, spec
3
3
  * `issue-intake` US #2 — the resume-on-thread-change behaviour).
4
4
  *
5
5
  * `intake` is a CONVERSATION on an issue thread: a run may ASK a clarifying question
6
- * and STOP, expecting a LATER run to resume from the updated thread (prd "Loop
6
+ * and STOP, expecting a LATER run to resume from the updated thread (spec "Loop
7
7
  * closure" / the decision table's ASK row). This module is the PURE CONTROL-PATH
8
8
  * classifier the re-run depends on: given an issue EVENT, it decides whether `intake`
9
9
  * should RE-EVALUATE the whole thread or IGNORE the event.
10
10
  *
11
- * THE CANONICAL RULE (from prd `issue-intake`, "The engine shape"): *"The loop
11
+ * THE CANONICAL RULE (from spec `issue-intake`, "The engine shape"): *"The loop
12
12
  * re-runs on a new comment OR an issue-body edit (re-evaluate the whole thread); a
13
13
  * buried prior-comment edit is IGNORED."*
14
14
  *
@@ -23,7 +23,7 @@
23
23
  * distinction the rule turns on is "a NEW turn vs an edit of a BURIED prior turn",
24
24
  * NOT "edit vs reply".
25
25
  *
26
- * SCOPE FENCE (prd "Scope: the engine only"): this is ONLY the pure classifier. It is
26
+ * SCOPE FENCE (spec "Scope: the engine only"): this is ONLY the pure classifier. It is
27
27
  * NOT CI's TRIGGER POLICY (command/every-issue, maintainer/anyone) — that is
28
28
  * `runner-in-ci`'s. CI's trigger LATER CONSULTS this classifier, but the policy of
29
29
  * WHO/WHAT may trigger lives in CI, not here. This module touches no seam, no git, no
@@ -62,10 +62,10 @@ export interface IntakeEvent {
62
62
  }
63
63
  /**
64
64
  * Classify an issue EVENT into the CONTROL-PATH decision: RE-EVALUATE the whole
65
- * thread, or IGNORE the event. The PURE realisation of the prd's canonical rule
65
+ * thread, or IGNORE the event. The PURE realisation of the spec's canonical rule
66
66
  * (no seam, no git, no `gh`).
67
67
  *
68
- * The table (prd `issue-intake` US #2):
68
+ * The table (spec `issue-intake` US #2):
69
69
  *
70
70
  * | event kind | decision | why |
71
71
  * | ----------------------- | ------------- | -------------------------------------------- |
@@ -1,14 +1,14 @@
1
1
  /**
2
- * **`intake`'s PURE event-classification** (task `intake-event-classification`, prd
2
+ * **`intake`'s PURE event-classification** (task `intake-event-classification`, spec
3
3
  * `issue-intake` US #2 — the resume-on-thread-change behaviour).
4
4
  *
5
5
  * `intake` is a CONVERSATION on an issue thread: a run may ASK a clarifying question
6
- * and STOP, expecting a LATER run to resume from the updated thread (prd "Loop
6
+ * and STOP, expecting a LATER run to resume from the updated thread (spec "Loop
7
7
  * closure" / the decision table's ASK row). This module is the PURE CONTROL-PATH
8
8
  * classifier the re-run depends on: given an issue EVENT, it decides whether `intake`
9
9
  * should RE-EVALUATE the whole thread or IGNORE the event.
10
10
  *
11
- * THE CANONICAL RULE (from prd `issue-intake`, "The engine shape"): *"The loop
11
+ * THE CANONICAL RULE (from spec `issue-intake`, "The engine shape"): *"The loop
12
12
  * re-runs on a new comment OR an issue-body edit (re-evaluate the whole thread); a
13
13
  * buried prior-comment edit is IGNORED."*
14
14
  *
@@ -23,7 +23,7 @@
23
23
  * distinction the rule turns on is "a NEW turn vs an edit of a BURIED prior turn",
24
24
  * NOT "edit vs reply".
25
25
  *
26
- * SCOPE FENCE (prd "Scope: the engine only"): this is ONLY the pure classifier. It is
26
+ * SCOPE FENCE (spec "Scope: the engine only"): this is ONLY the pure classifier. It is
27
27
  * NOT CI's TRIGGER POLICY (command/every-issue, maintainer/anyone) — that is
28
28
  * `runner-in-ci`'s. CI's trigger LATER CONSULTS this classifier, but the policy of
29
29
  * WHO/WHAT may trigger lives in CI, not here. This module touches no seam, no git, no
@@ -32,10 +32,10 @@
32
32
  */
33
33
  /**
34
34
  * Classify an issue EVENT into the CONTROL-PATH decision: RE-EVALUATE the whole
35
- * thread, or IGNORE the event. The PURE realisation of the prd's canonical rule
35
+ * thread, or IGNORE the event. The PURE realisation of the spec's canonical rule
36
36
  * (no seam, no git, no `gh`).
37
37
  *
38
- * The table (prd `issue-intake` US #2):
38
+ * The table (spec `issue-intake` US #2):
39
39
  *
40
40
  * | event kind | decision | why |
41
41
  * | ----------------------- | ------------- | -------------------------------------------- |
@@ -1,6 +1,6 @@
1
1
  import type { IssueComment } from './issue-provider.js';
2
2
  /**
3
- * **The intake MARKER** (task `intake-self-awareness-resumption-tracking`, prd
3
+ * **The intake MARKER** (task `intake-self-awareness-resumption-tracking`, spec
4
4
  * `issue-intake` US #2/#10): the ONE primitive the deterministic pre-decision
5
5
  * TRIAGE GATE is built on. A machine-readable HIDDEN HTML comment intake stamps on
6
6
  * EVERY comment it posts, recording a neutral FACT about what intake did:
@@ -24,7 +24,7 @@ import type { IssueComment } from './issue-provider.js';
24
24
  * TERMINAL is the TRIAGE's interpretation, NEVER data in the marker (no `terminal`
25
25
  * field): if a kind's terminal-ness ever changes that is a triage change and old
26
26
  * markers stay valid.
27
- * - **`slug`** \u2014 present only on `kind=created` (which task/prd intake produced).
27
+ * - **`slug`** \u2014 present only on `kind=created` (which task/spec intake produced).
28
28
  * - **`seen=<id>,\u2026`** \u2014 the per-run DELTA of HUMAN comment ids intake READ this run
29
29
  * (EXCLUDING intake's own marker-comments AND any human id already in a prior
30
30
  * marker's `seen=`). Ids, not a count, because a count cannot distinguish "a new
@@ -43,7 +43,7 @@ export interface IntakeMarker {
43
43
  kind: IntakeMarkerKind;
44
44
  /** The HUMAN comment ids intake READ this run (the per-run delta; may be empty). */
45
45
  seen: string[];
46
- /** The created task/prd slug \u2014 present only on `kind=created`. */
46
+ /** The created task/spec slug \u2014 present only on `kind=created`. */
47
47
  slug?: string;
48
48
  }
49
49
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"intake-marker.d.ts","sourceRoot":"","sources":["../src/intake-marker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,iGAAiG;AACjG,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7D,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC5B,iFAAiF;IACjF,IAAI,EAAE,gBAAgB,CAAC;IACvB,oFAAoF;IACpF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,GAC7D,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAsBxE;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAiBnE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYjE"}
1
+ {"version":3,"file":"intake-marker.d.ts","sourceRoot":"","sources":["../src/intake-marker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,iGAAiG;AACjG,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7D,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC5B,iFAAiF;IACjF,IAAI,EAAE,gBAAgB,CAAC;IACvB,oFAAoF;IACpF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,GAC7D,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAsBxE;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAiBnE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYjE"}
@@ -25,7 +25,7 @@ export type IntakeTriageDecision = {
25
25
  };
26
26
  /**
27
27
  * Run the TRIAGE over the issue's full comment thread (oldest-first, as
28
- * `listComments` returns it). The canonical branches (prd `issue-intake`):
28
+ * `listComments` returns it). The canonical branches (spec `issue-intake`):
29
29
  *
30
30
  * 1. **Last comment is INTAKE's** (carries a marker). Build `seenSet` = the UNION of
31
31
  * every intake marker's `seen=` id-list, then:
@@ -1,6 +1,6 @@
1
1
  import { parseIntakeMarker, seenSetFrom, } from './intake-marker.js';
2
2
  /**
3
- * **The intake TRIAGE GATE** (task `intake-self-awareness-resumption-tracking`, prd
3
+ * **The intake TRIAGE GATE** (task `intake-self-awareness-resumption-tracking`, spec
4
4
  * `issue-intake` US #2/#10): a DETERMINISTIC pre-decision gate that runs UNDER the
5
5
  * processing lock, BEFORE the decision prompt, deciding whether intake should run
6
6
  * the prompt at all. Built ENTIRELY on the thread MARKER (no sidecar, no cursor, no
@@ -21,7 +21,7 @@ import { parseIntakeMarker, seenSetFrom, } from './intake-marker.js';
21
21
  const TERMINAL_KINDS = new Set(['bounced', 'created']);
22
22
  /**
23
23
  * Run the TRIAGE over the issue's full comment thread (oldest-first, as
24
- * `listComments` returns it). The canonical branches (prd `issue-intake`):
24
+ * `listComments` returns it). The canonical branches (spec `issue-intake`):
25
25
  *
26
26
  * 1. **Last comment is INTAKE's** (carries a marker). Build `seenSet` = the UNION of
27
27
  * every intake marker's `seen=` id-list, then:
@@ -1,7 +1,7 @@
1
1
  /**
2
- * The `install-ci` ISSUE-INTAKE capability (prd `runner-in-ci`, task
2
+ * The `install-ci` ISSUE-INTAKE capability (spec `runner-in-ci`, task
3
3
  * `install-ci-intake-trigger-and-review-surface`; capability D: consider incoming
4
- * issues → task/prd, AND insertion point E: surface the review verdict back into
4
+ * issues → task/spec, AND insertion point E: surface the review verdict back into
5
5
  * the issue thread). This module GENERATES the one fixed intake workflow file and
6
6
  * STRUCTURALLY VALIDATES it, mirroring the snapshot-assertion style of
7
7
  * `advance-lifecycle-template.ts` / `advance-ci-template.ts` (the package depends on
@@ -10,13 +10,13 @@
10
10
  * ({@link deriveIntakeFlags}) — CI's merge-vs-propose POLICY, the load-bearing
11
11
  * testable logic the workflow encodes at runtime.
12
12
  *
13
- * SCOPE FENCE (prd Out-of-Scope): the issue→artifact TRANSFORM engine is
13
+ * SCOPE FENCE (spec Out-of-Scope): the issue→artifact TRANSFORM engine is
14
14
  * `issue-intake`'s (`intake <N>` + its four-outcome dispatch + the per-outcome
15
15
  * KNOBS + the lone-task review that posts to the issue thread). CI only
16
16
  * WIRES/SCHEDULES/INVOKES it and owns the merge-vs-propose POLICY + the delivery
17
17
  * surface. This module emits NO transform; it emits the WORKFLOW that calls it.
18
18
  *
19
- * The discipline (prd capability-D row + the merge-vs-propose POLICY + the two
19
+ * The discipline (spec capability-D row + the merge-vs-propose POLICY + the two
20
20
  * RESOLVED design decisions in the task):
21
21
  *
22
22
  * - TRIGGERS: `issues` opened, `issue_comment` created, and a label
@@ -36,7 +36,7 @@
36
36
  * everywhere" path is a LOUD, NON-DEFAULT opt-in — the default is conservative
37
37
  * (propose / human-in-the-loop).
38
38
  * - INSERTION POINT E (the issue-thread review surface): the review verdict over
39
- * intake's generated prds/tasks is surfaced into the ISSUE THREAD via the
39
+ * intake's generated specs/tasks is surfaced into the ISSUE THREAD via the
40
40
  * `IssueProvider.postIssueComment` seam (issue thread, by NUMBER — NOT the PR
41
41
  * seam `postPRComment`, which is keyed by url). This is REUSED, not new:
42
42
  * `intake <N>` already runs the lone-task review/edit loop and posts its
@@ -59,7 +59,7 @@ import type { ResolvedCIConfig } from './install-ci-core.js';
59
59
  /** The capability id (the registry key + the emitted workflow file stem). */
60
60
  export declare const INTAKE_TRIGGER_CAPABILITY_ID = "intake";
61
61
  /** The wizard-facing label for the issue-intake capability. */
62
- export declare const INTAKE_TRIGGER_CAPABILITY_LABEL = "Consider incoming issues \u2192 task/prd + surface the review verdict into the issue thread (the intake trigger: issues / issue_comment / label)";
62
+ export declare const INTAKE_TRIGGER_CAPABILITY_LABEL = "Consider incoming issues \u2192 task/spec + surface the review verdict into the issue thread (the intake trigger: issues / issue_comment / label)";
63
63
  /** The repo-relative path (under the output base) of the emitted workflow. */
64
64
  export declare const INTAKE_TRIGGER_WORKFLOW_PATH = "workflows/intake.yml";
65
65
  /**
@@ -90,7 +90,7 @@ export interface IntakeIntegrationFlags {
90
90
  task: 'merge' | 'propose';
91
91
  /**
92
92
  * The ORIGIN-TRUST verdict CI passes to `intake <N>` via `--origin-trust`
93
- * (task `untrusted-origin-forces-build-propose`) so the emitted prd/task is
93
+ * (task `untrusted-origin-forces-build-propose`) so the emitted spec/task is
94
94
  * STAMPED with how it was born. Derived from the SAME `author_association` case
95
95
  * as the integration flags (it IS `authorTrusted` collapsed to the wire value),
96
96
  * so the stamp and the integration mode CANNOT desync. `intake.ts` writes it
@@ -116,7 +116,7 @@ export interface IntakeGateState {
116
116
  }
117
117
  /**
118
118
  * DERIVE the per-outcome merge-vs-propose flags from the gate state COMPOSED with
119
- * author-trust — CI's merge-vs-propose POLICY (prd "merge-vs-propose POLICY" +
119
+ * author-trust — CI's merge-vs-propose POLICY (spec "merge-vs-propose POLICY" +
120
120
  * "Composed with AUTHOR-TRUST"; task Decision 1). This is the load-bearing pure
121
121
  * logic the workflow encodes at runtime (it reads `author_association` off the
122
122
  * event payload and sets the flags accordingly):
@@ -1 +1 @@
1
- {"version":3,"file":"intake-trigger-template.d.ts","sourceRoot":"","sources":["../src/intake-trigger-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAG3D,6EAA6E;AAC7E,eAAO,MAAM,4BAA4B,WAAW,CAAC;AAErD,+DAA+D;AAC/D,eAAO,MAAM,+BAA+B,qJACkG,CAAC;AAE/I,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAyB,CAAC;AAI3D;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,8CAI9B,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC,mEAAmE;IACnE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,mEAAmE;IACnE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;CACrC;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC/B;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACvB,GAAG,sBAAsB,CAoBzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,iBAAiB,EAAE,MAAM,GAAG,SAAS,GACnC,OAAO,CAMT;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA4LvE;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACpC,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,uBAAuB;IACvC,kEAAkE;IAClE,EAAE,EAAE,OAAO,CAAC;IACZ,iDAAiD;IACjD,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAsK5E"}
1
+ {"version":3,"file":"intake-trigger-template.d.ts","sourceRoot":"","sources":["../src/intake-trigger-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAG3D,6EAA6E;AAC7E,eAAO,MAAM,4BAA4B,WAAW,CAAC;AAErD,+DAA+D;AAC/D,eAAO,MAAM,+BAA+B,sJACmG,CAAC;AAEhJ,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAyB,CAAC;AAI3D;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,8CAI9B,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC,mEAAmE;IACnE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,mEAAmE;IACnE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC;CACrC;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC/B;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACvB,GAAG,sBAAsB,CAoBzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,iBAAiB,EAAE,MAAM,GAAG,SAAS,GACnC,OAAO,CAMT;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA4LvE;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACpC,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,uBAAuB;IACvC,kEAAkE;IAClE,EAAE,EAAE,OAAO,CAAC;IACZ,iDAAiD;IACjD,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAsK5E"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * The `install-ci` ISSUE-INTAKE capability (prd `runner-in-ci`, task
2
+ * The `install-ci` ISSUE-INTAKE capability (spec `runner-in-ci`, task
3
3
  * `install-ci-intake-trigger-and-review-surface`; capability D: consider incoming
4
- * issues → task/prd, AND insertion point E: surface the review verdict back into
4
+ * issues → task/spec, AND insertion point E: surface the review verdict back into
5
5
  * the issue thread). This module GENERATES the one fixed intake workflow file and
6
6
  * STRUCTURALLY VALIDATES it, mirroring the snapshot-assertion style of
7
7
  * `advance-lifecycle-template.ts` / `advance-ci-template.ts` (the package depends on
@@ -10,13 +10,13 @@
10
10
  * ({@link deriveIntakeFlags}) — CI's merge-vs-propose POLICY, the load-bearing
11
11
  * testable logic the workflow encodes at runtime.
12
12
  *
13
- * SCOPE FENCE (prd Out-of-Scope): the issue→artifact TRANSFORM engine is
13
+ * SCOPE FENCE (spec Out-of-Scope): the issue→artifact TRANSFORM engine is
14
14
  * `issue-intake`'s (`intake <N>` + its four-outcome dispatch + the per-outcome
15
15
  * KNOBS + the lone-task review that posts to the issue thread). CI only
16
16
  * WIRES/SCHEDULES/INVOKES it and owns the merge-vs-propose POLICY + the delivery
17
17
  * surface. This module emits NO transform; it emits the WORKFLOW that calls it.
18
18
  *
19
- * The discipline (prd capability-D row + the merge-vs-propose POLICY + the two
19
+ * The discipline (spec capability-D row + the merge-vs-propose POLICY + the two
20
20
  * RESOLVED design decisions in the task):
21
21
  *
22
22
  * - TRIGGERS: `issues` opened, `issue_comment` created, and a label
@@ -36,7 +36,7 @@
36
36
  * everywhere" path is a LOUD, NON-DEFAULT opt-in — the default is conservative
37
37
  * (propose / human-in-the-loop).
38
38
  * - INSERTION POINT E (the issue-thread review surface): the review verdict over
39
- * intake's generated prds/tasks is surfaced into the ISSUE THREAD via the
39
+ * intake's generated specs/tasks is surfaced into the ISSUE THREAD via the
40
40
  * `IssueProvider.postIssueComment` seam (issue thread, by NUMBER — NOT the PR
41
41
  * seam `postPRComment`, which is keyed by url). This is REUSED, not new:
42
42
  * `intake <N>` already runs the lone-task review/edit loop and posts its
@@ -60,7 +60,7 @@ import { providerSecretsWithBlock } from './install-ci-core.js';
60
60
  /** The capability id (the registry key + the emitted workflow file stem). */
61
61
  export const INTAKE_TRIGGER_CAPABILITY_ID = 'intake';
62
62
  /** The wizard-facing label for the issue-intake capability. */
63
- export const INTAKE_TRIGGER_CAPABILITY_LABEL = 'Consider incoming issues → task/prd + surface the review verdict into the issue thread (the intake trigger: issues / issue_comment / label)';
63
+ export const INTAKE_TRIGGER_CAPABILITY_LABEL = 'Consider incoming issues → task/spec + surface the review verdict into the issue thread (the intake trigger: issues / issue_comment / label)';
64
64
  /** The repo-relative path (under the output base) of the emitted workflow. */
65
65
  export const INTAKE_TRIGGER_WORKFLOW_PATH = 'workflows/intake.yml';
66
66
  /**
@@ -86,7 +86,7 @@ export const TRUSTED_AUTHOR_ASSOCIATIONS = [
86
86
  ];
87
87
  /**
88
88
  * DERIVE the per-outcome merge-vs-propose flags from the gate state COMPOSED with
89
- * author-trust — CI's merge-vs-propose POLICY (prd "merge-vs-propose POLICY" +
89
+ * author-trust — CI's merge-vs-propose POLICY (spec "merge-vs-propose POLICY" +
90
90
  * "Composed with AUTHOR-TRUST"; task Decision 1). This is the load-bearing pure
91
91
  * logic the workflow encodes at runtime (it reads `author_association` off the
92
92
  * event payload and sets the flags accordingly):
@@ -115,9 +115,9 @@ export function deriveIntakeFlags(options) {
115
115
  // ORIGIN-TRUST stamp (task `untrusted-origin-forces-build-propose`): the SAME
116
116
  // author-trust verdict, collapsed to the wire value `intake` stamps onto the
117
117
  // emitted artifact. Derived HERE — next to the integration flags, off the SAME
118
- // `authorTrusted` input — so the stamp and the task/prd modes cannot desync.
118
+ // `authorTrusted` input — so the stamp and the task/spec modes cannot desync.
119
119
  // It is NOT a re-resolution of trust (CI already resolved it); it is the verdict
120
- // being CARRIED so it survives the prd/task merge boundary (the becomes-code
120
+ // being CARRIED so it survives the spec/task merge boundary (the becomes-code
121
121
  // checkpoint is not laundered when the file lands on main).
122
122
  const originTrust = authorTrusted
123
123
  ? 'trusted'
@@ -159,12 +159,12 @@ export function generateIntakeWorkflow(config) {
159
159
  const setupWith = providerSecretsWithBlock(config);
160
160
  return `\
161
161
  # dorfl — the ISSUE INTAKE trigger in CI (capability D: consider incoming
162
- # issues → task/prd, PLUS insertion point E: surface the review verdict into the
163
- # issue thread, prd runner-in-ci). EMITTED by \`dorfl install-ci\`; the human
162
+ # issues → task/spec, PLUS insertion point E: surface the review verdict into the
163
+ # issue thread, spec runner-in-ci). EMITTED by \`dorfl install-ci\`; the human
164
164
  # commits it. DO NOT hand-edit a copy — re-run install-ci to upgrade the shell.
165
165
  #
166
166
  # WHAT IT DOES — \`dorfl intake <N>\` reads issue #N + its comment thread,
167
- # runs a prompt→verdict decision (ask / task / PRD / bounce), and dispatches it.
167
+ # runs a prompt→verdict decision (ask / task / SPEC / bounce), and dispatches it.
168
168
  # CI owns ONLY the trigger + the merge-vs-propose POLICY + the delivery surface;
169
169
  # the TRANSFORM is the engine's (the Out-of-Scope fence — CI re-implements none of
170
170
  # it). The lone-task review/edit loop \`intake\` already runs ALSO surfaces its
@@ -250,7 +250,7 @@ env:
250
250
  # permissive merge side; author-trust then forces propose for a task from an
251
251
  # untrusted author.
252
252
  DORFL_AUTO_BUILD: 'false' # gate: will an agent auto-build the emitted task next?
253
- DORFL_AUTO_TASK: 'false' # gate: will an agent auto-task the emitted prd next?
253
+ DORFL_AUTO_TASK: 'false' # gate: will an agent auto-task the emitted spec next?
254
254
 
255
255
  jobs:
256
256
  intake:
@@ -308,8 +308,8 @@ jobs:
308
308
 
309
309
  # ORIGIN-TRUST stamp (task untrusted-origin-forces-build-propose):
310
310
  # derived from the SAME \${trusted} case above (one author-trust read,
311
- # two consumers — the task/prd modes AND the stamp — so they cannot
312
- # desync). \`intake\` STAMPS this onto the emitted prd/task frontmatter
311
+ # two consumers — the task/spec modes AND the stamp — so they cannot
312
+ # desync). \`intake\` STAMPS this onto the emitted spec/task frontmatter
313
313
  # (origin: issue + originTrust: <value>); it does NOT re-resolve trust
314
314
  # (that is CI's policy, passed IN). The stamp SURVIVES the merge boundary
315
315
  # so a later auto-task/auto-build of an untrusted-origin artifact still
@@ -410,7 +410,7 @@ export function validateIntakeWorkflow(text) {
410
410
  require('derives-propose-spec', /--propose-spec\b/.test(operative), 'the policy derivation must be able to emit `--propose-spec` (autoTask on).');
411
411
  // ORIGIN-TRUST stamp (task untrusted-origin-forces-build-propose): the shell
412
412
  // must derive `--origin-trust <trusted|untrusted>` from the SAME author-trust
413
- // case it uses for the task/PRD modes, and pass it to `intake` so the emitted
413
+ // case it uses for the task/SPEC modes, and pass it to `intake` so the emitted
414
414
  // artifact is stamped (the stamp + the modes cannot desync).
415
415
  require('derives-origin-trust-untrusted', /--origin-trust=untrusted\b/.test(operative), 'the policy derivation must emit `--origin-trust=untrusted` for a non-trusted ' +
416
416
  'author (so the emitted artifact is stamped untrusted; task ' +
@@ -1 +1 @@
1
- {"version":3,"file":"intake-trigger-template.js","sourceRoot":"","sources":["../src/intake-trigger-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intake-trigger-template.js","sourceRoot":"","sources":["../src/intake-trigger-template.ts"],"names":[],"mappings":"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"}
package/dist/intake.d.ts CHANGED
@@ -7,7 +7,7 @@ import { type Issue, type IssueComment, type IssueProvider } from './issue-provi
7
7
  import { parseReviewVerdict, type ReviewFinding, type ReviewVerdict } from './review-verdict.js';
8
8
  import { type IntakeTriageDecision } from './intake-triage.js';
9
9
  /**
10
- * **`intake <N>`** (prd `issue-intake`, task `intake-tracer-slice-outcome`): the
10
+ * **`intake <N>`** (spec `issue-intake`, task `intake-tracer-slice-outcome`): the
11
11
  * KEYSTONE of the issue front-door. A new, GATE-FREE command — explicit invocation
12
12
  * IS the authorization (precedent: `explicit-do-prd-not-gated-by-autoslice`), so
13
13
  * `autoTask`/`autoBuild` config does NOT apply — that reads a GitHub issue + its
@@ -21,24 +21,24 @@ import { type IntakeTriageDecision } from './intake-triage.js';
21
21
  * prompt's JUDGEMENT is NOT unit-tested (like the review prompt's is not); only the
22
22
  * dispatch is.
23
23
  *
24
- * The dispatcher implements the FULL four-outcome decision table (prd
24
+ * The dispatcher implements the FULL four-outcome decision table (spec
25
25
  * `issue-intake` — the source of truth):
26
26
  * - **ASK** (not clear enough to act on): `postIssueComment` the next clarifying
27
27
  * question; emit NOTHING; STOP.
28
28
  * - **TASK** (clear AND fits ONE tracer-bullet task): write
29
- * `work/backlog/<slug>.md` (`covers: []`, NO `prd:`) carrying `issue: N` (the
29
+ * `work/backlog/<slug>.md` (`covers: []`, NO `spec:`) carrying `issue: N` (the
30
30
  * lone-task closure link, NOT `Fixes #N`), integrate via {@link
31
31
  * performIntegration} (default `propose`).
32
- * - **PRD** (clear AND coherent but >1 task — INCLUDING a coupled-but-SMALL pair,
33
- * which is NEVER bounced): write the prd file (`work/prds/ready/<slug>.md`) with `issue: N` (+ the gate
34
- * axes the verdict carried), integrate, STOP (tasking is the separate `do prd:`
32
+ * - **SPEC** (clear AND coherent but >1 task — INCLUDING a coupled-but-SMALL pair,
33
+ * which is NEVER bounced): write the spec file (`work/specs/ready/<slug>.md`) with `issue: N` (+ the gate
34
+ * axes the verdict carried), integrate, STOP (tasking is the separate `do spec:`
35
35
  * step).
36
36
  * - **BOUNCE** (genuinely UNRELATED concerns — no shared vision): the bounce is
37
37
  * TERMINAL (the asks are unrelated and must be re-filed), so intake CLOSES the
38
38
  * issue ATOMICALLY — the "file separate issues" text as the closing comment +
39
39
  * `reason: not planned` (the honest GitHub-native signal) in ONE `closeIssue`
40
40
  * call; emit NOTHING. Intake closes on BOUNCE (as not planned); NEVER on
41
- * task/prd (CI's close-job closes those via the `issue:` field) / ask.
41
+ * task/spec (CI's close-job closes those via the `issue:` field) / ask.
42
42
  *
43
43
  * The per-outcome integration KNOBS, the processing LOCK, and event-classification
44
44
  * are LATER tasks and are NOT built here (default `propose` is fine here).
@@ -50,7 +50,7 @@ import { type IntakeTriageDecision } from './intake-triage.js';
50
50
  */
51
51
  /**
52
52
  * The four outcomes the decision prompt classifies an issue into (the decision
53
- * table). EXPAND step (prd
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
56
  * CUTOVER (contract step): the legacy `prd` outcome token is GONE — the prompt
@@ -79,7 +79,7 @@ export interface IntakeVerdict {
79
79
  /**
80
80
  * The drafted task BODY (`task` outcome) — the markdown AFTER the frontmatter
81
81
  * (the `## What to build` / `## Acceptance criteria` / `## Prompt` sections). The
82
- * dispatcher writes the frontmatter (slug/title/`covers: []`, NO `prd:`) carrying
82
+ * dispatcher writes the frontmatter (slug/title/`covers: []`, NO `spec:`) carrying
83
83
  * the lone-task `issue: N` closure link itself; the agent never writes
84
84
  * git-visible files.
85
85
  */
@@ -108,7 +108,7 @@ export interface IntakeVerdict {
108
108
  specBody?: string;
109
109
  /**
110
110
  * The spec's gate axes (`spec` outcome) AS THE PROMPT JUDGED THEM — surfaced onto
111
- * the emitted spec frontmatter (prd `issue-intake` US #8: "the emitted artifact
111
+ * the emitted spec frontmatter (spec `issue-intake` US #8: "the emitted artifact
112
112
  * carries … its own gate axes"). Both omitted (undeclared) by default; the prompt
113
113
  * sets `specHumanOnly: true` when a human should drive the TASKING and/or
114
114
  * `specNeedsAnswers: true` when open questions remain.
@@ -130,16 +130,16 @@ export interface IntakeResult {
130
130
  outcome: IntakeRunOutcome;
131
131
  /** The issue number acted on. */
132
132
  issueNumber: number;
133
- /** The slug of the emitted artifact (task OR prd outcome). */
133
+ /** The slug of the emitted artifact (task OR spec outcome). */
134
134
  emittedSlug?: string;
135
- /** Repo-relative path of the emitted artifact (task OR prd outcome). */
135
+ /** Repo-relative path of the emitted artifact (task OR spec outcome). */
136
136
  emitted?: string;
137
137
  /** True iff a comment was posted on the issue (ask / bounce outcomes). */
138
138
  commented?: boolean;
139
139
  /**
140
140
  * True iff the ISSUE was closed (the BOUNCE outcome — a terminal bounce closes
141
141
  * the issue atomically as `not planned`). Additive (mirrors {@link commented}),
142
- * so CI / callers can observe the close. Never set on ask/task/prd.
142
+ * so CI / callers can observe the close. Never set on ask/task/spec.
143
143
  */
144
144
  closed?: boolean;
145
145
  /** Human-readable summary of the terminal condition. */
@@ -195,10 +195,10 @@ export interface PerformIntakeOptions {
195
195
  /** The HOST-ONLY sessions root for the pi session file. */
196
196
  sessionsDir?: string;
197
197
  /**
198
- * The PER-OUTCOME integration modes (prd `issue-intake` US #9) the emitted artifact integrates
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 prd with `integration.prd` (`propose` =
201
+ * `integration.task`, an emitted spec with `integration.prd` (`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
@@ -208,7 +208,7 @@ export interface PerformIntakeOptions {
208
208
  /**
209
209
  * **The ORIGIN-TRUST verdict, passed IN** (task
210
210
  * `untrusted-origin-forces-build-propose`; the `--origin-trust <trusted|untrusted>`
211
- * CLI flag). `intake` STAMPS `origin: issue` + this `originTrust` onto every prd/
211
+ * CLI flag). `intake` STAMPS `origin: issue` + this `originTrust` onto every spec/
212
212
  * task it emits, so the author-trust signal SURVIVES the prd/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
@@ -227,7 +227,7 @@ export interface PerformIntakeOptions {
227
227
  */
228
228
  noPR?: boolean;
229
229
  /**
230
- * **The per-repo PRD-PLACEMENT default, passed IN** (prd
230
+ * **The per-repo SPEC-PLACEMENT default, passed IN** (spec
231
231
  * `staging-pool-position-gate-and-trust-model` US #2/#5, task
232
232
  * `pre-prd-staging-pool-split-and-untrusted-prd-placement`). The resolved
233
233
  * per-repo default landing for `intake`-authored prds (`pre-proposed` =
@@ -235,8 +235,8 @@ export interface PerformIntakeOptions {
235
235
  * into the shared placement resolver (`src/placement.ts`). The resolver
236
236
  * overlays an EXPLICIT operator flag ({@link explicitSpecsLandIn}, top) and
237
237
  * the UNTRUSTED-ORIGIN force (`originTrust: untrusted` ⇒ staging) on top.
238
- * Unset ⇒ the resolver's built-in floor applies (`staging` = `prds/proposed/`,
239
- * the conservative landing). The PRD TWIN of `tasksLandIn` on the tasker
238
+ * Unset ⇒ the resolver's built-in floor applies (`staging` = `specs/proposed/`,
239
+ * the conservative landing). The SPEC TWIN of `tasksLandIn` on the tasker
240
240
  * path — one resolver, two lifecycles.
241
241
  */
242
242
  specsLandIn?: SpecsLandIn;
@@ -273,29 +273,29 @@ export interface PerformIntakeOptions {
273
273
  note?: (message: string) => void;
274
274
  }
275
275
  /**
276
- * **The STAGED-prds dir** (prd `staging-pool-position-gate-and-trust-model`,
276
+ * **The STAGED-prds dir** (spec `staging-pool-position-gate-and-trust-model`,
277
277
  * task `pre-prd-staging-pool-split-and-untrusted-prd-placement`, governing
278
278
  * ADR `placement-is-runner-deterministic-humanonly-is-agent-judgement`). When
279
279
  * the runner-deterministic placement resolver picks the staging side for an
280
- * `intake`-authored prd, the runner writes the prd file HERE instead of in
281
- * `work/prds/ready/`. An item born in `prds/proposed/` is durable + readable but NOT in
282
- * the tasking candidate POOL (`work/prds/ready/` is the pool). A runner/human-owned promotion
283
- * ({@link promoteFromPreSpec} in `needs-attention.ts`) moves an approved prd
284
- * `prds/proposed/ → prds/ready/` to make it taskable.
280
+ * `intake`-authored spec, the runner writes the spec file HERE instead of in
281
+ * `work/specs/ready/`. An item born in `specs/proposed/` is durable + readable but NOT in
282
+ * the tasking candidate POOL (`work/specs/ready/` is the pool). A runner/human-owned promotion
283
+ * ({@link promoteFromPreSpec} in `needs-attention.ts`) moves an approved spec
284
+ * `specs/proposed/ → specs/ready/` to make it taskable.
285
285
  */
286
286
  export declare const STAGED_SPECS_DIR: string;
287
287
  /**
288
288
  * The emitted artifact TYPE `intake` decides at RUNTIME — a `task` verdict emits
289
- * `work/backlog/<slug>.md`, a `prd` verdict emits the prd file (`work/prds/ready/<slug>.md`). The two
289
+ * `work/backlog/<slug>.md`, a `prd` verdict emits the spec file (`work/specs/ready/<slug>.md`). The two
290
290
  * granular flag axes (`--merge-task`/`--propose-task` vs `--merge-spec`/
291
291
  * `--propose-spec`) are keyed on this. (ask/bounce emit NOTHING, so the modes are
292
292
  * no-ops for them.)
293
293
  */
294
294
  export type IntakeArtifactType = 'task' | 'spec';
295
295
  /**
296
- * The PER-OUTCOME integration mode FLAG SET (prd `issue-intake` US #9). Because
296
+ * The PER-OUTCOME integration mode FLAG SET (spec `issue-intake` US #9). Because
297
297
  * `intake` decides the artifact TYPE at runtime, a single `--merge`/`--propose`
298
- * cannot express a type-conditional policy ("merge a prd but propose a task") —
298
+ * cannot express a type-conditional policy ("merge a spec but propose a task") —
299
299
  * hence the four GRANULAR per-type flags layered over the two AGGREGATES:
300
300
  *
301
301
  * - **granular:** `--merge-spec`/`--propose-spec` apply iff the outcome is a spec;
@@ -306,9 +306,9 @@ export type IntakeArtifactType = 'task' | 'spec';
306
306
  * author-trust) is CI's POLICY, authored in `runner-in-ci` — NOT here.
307
307
  */
308
308
  export interface IntakeIntegrationFlags {
309
- /** Aggregate: merge BOTH a task and a prd (the broad knob, overridden per type). */
309
+ /** Aggregate: merge BOTH a task and a spec (the broad knob, overridden per type). */
310
310
  merge?: boolean;
311
- /** Aggregate: propose BOTH a task and a prd. */
311
+ /** Aggregate: propose BOTH a task and a spec. */
312
312
  propose?: boolean;
313
313
  /** Granular: merge a spec (overrides the aggregate for the spec outcome). */
314
314
  mergeSpec?: boolean;
@@ -324,17 +324,17 @@ export interface IntakeIntegrationModes {
324
324
  /** The mode an EMITTED task integrates with. */
325
325
  task: IntegrationMode;
326
326
  /**
327
- * The mode an EMITTED spec integrates with. `spec` is the CANONICAL key (prd
327
+ * The mode an EMITTED spec integrates with. `spec` is the CANONICAL key (spec
328
328
  * spec cutover); the user-facing `--merge-spec`/`--propose-spec` flags that FEED
329
329
  * it carry the same `spec` spelling (the cli-flag rename landed in batch 4f).
330
330
  */
331
331
  spec: IntegrationMode;
332
332
  }
333
333
  /**
334
- * The PURE per-outcome integration mode resolution (prd `issue-intake` US #9 —
334
+ * The PURE per-outcome integration mode resolution (spec `issue-intake` US #9 —
335
335
  * the canonical table). Given ONLY the flag set, resolve BOTH per-type modes in
336
336
  * one eager pass (so a usage error is caught before the runtime verdict is even
337
- * known). The rules, all decided in the prd:
337
+ * known). The rules, all decided in the spec:
338
338
  *
339
339
  * - **unset ⇒ propose for BOTH** (conservative default; matches `do`).
340
340
  * - **aggregates:** `--merge` ⇒ merge both; `--propose` ⇒ propose both (this axis
@@ -377,7 +377,7 @@ export declare function performIntake(options: PerformIntakeOptions): Promise<In
377
377
  * `commit` (the additive {@link IntegrateResult.commit}) in merge. A degraded
378
378
  * propose (no `url`) or a failed merge-tip read (no `commit`) simply OMITS the
379
379
  * link — the comment still confirms what was created (the artifact is safe on the
380
- * branch/main regardless). No prd link beyond the slug.
380
+ * branch/main regardless). No spec link beyond the slug.
381
381
  * - carries the FULL intake MARKER via the SHARED {@link stampIntakeMarker} helper
382
382
  * (`kind=created slug=<slug> seen=<id>,…`) so the triage's `already-terminal`
383
383
  * branch consumes it — the comment cannot re-trigger intake.
@@ -390,13 +390,13 @@ export declare function composeIntakeCompletionComment(params: {
390
390
  }): string;
391
391
  /**
392
392
  * Render the backlog task file: the frontmatter (`title`/`slug`/`covers: []`, NO
393
- * `prd:` — its own source of truth, prd `issue-intake` decision table) carrying the lone-task
393
+ * `spec:` — its own source of truth, spec `issue-intake` decision table) carrying the lone-task
394
394
  * `issue: N` closure link + the drafted body. The task closes its source issue
395
395
  * via its `issue:` field (the provider-agnostic link a FUTURE CI close-job reads
396
396
  * from folder + field state); it carries NO `Fixes #N` (a deferred GitHub-only
397
397
  * optimisation, structurally unplaceable on the `--merge` path). The number is
398
- * the task's own closure path — `issue:` XOR `prd:`; a lone task never carries a
399
- * `prd:` (prd `issue-intake` decision table). When the agent drafted no body, a thin default
398
+ * the task's own closure path — `issue:` XOR `spec:`; a lone task never carries a
399
+ * `spec:` (spec `issue-intake` decision table). When the agent drafted no body, a thin default
400
400
  * scaffold keeps the file a valid task.
401
401
  */
402
402
  export declare function renderBacklogTask(params: {
@@ -413,16 +413,16 @@ export declare function renderBacklogTask(params: {
413
413
  originTrust?: OriginTrust;
414
414
  }): string;
415
415
  /**
416
- * Render the emitted prd file: the frontmatter (`title`/`slug` + the loop-closure
417
- * `issue: N` + the gate axes the prompt JUDGED) followed by the drafted prd body.
418
- * For a FANNED prd the `issue: N` lives ONLY on the prd — never duplicated across
419
- * the N fanned tasks, which reach it via `task.prd: → prd issue:` (a fanned
420
- * task carries `prd:`, NOT its own `issue:`; the lone-task outcome is the only
421
- * one that puts `issue:` on a task). The close JOB reaches the prd's number via
422
- * `task.prd: → prd issue:`. The gate axes (`humanOnly`/`needsAnswers`) are emitted ONLY when the
416
+ * Render the emitted spec file: the frontmatter (`title`/`slug` + the loop-closure
417
+ * `issue: N` + the gate axes the prompt JUDGED) followed by the drafted spec body.
418
+ * For a FANNED spec the `issue: N` lives ONLY on the spec — never duplicated across
419
+ * the N fanned tasks, which reach it via `task.spec: → spec issue:` (a fanned
420
+ * task carries `spec:`, NOT its own `issue:`; the lone-task outcome is the only
421
+ * one that puts `issue:` on a task). The close JOB reaches the spec's number via
422
+ * `task.spec: → spec issue:`. The gate axes (`humanOnly`/`needsAnswers`) are emitted ONLY when the
423
423
  * verdict declared them `true` — an omitted axis is `undefined` (undeclared), the
424
424
  * same convention `frontmatter.ts` parses. When the agent drafted no body, a thin
425
- * default scaffold keeps the file a valid prd that `do prd:` can later task.
425
+ * default scaffold keeps the file a valid spec that `do spec:` can later task.
426
426
  */
427
427
  export declare function renderSpec(params: {
428
428
  slug: string;
@@ -544,20 +544,20 @@ export declare function buildLoneTaskReviewPrompt(input: LoneTaskReviewGateInput
544
544
  */
545
545
  export declare const parseLoneTaskReviewVerdict: typeof parseReviewVerdict;
546
546
  /**
547
- * Build the intake decision PRD (an inline prompt builder, like `buildTaskingPrd`
547
+ * Build the intake decision SPEC (an inline prompt builder, like `buildTaskingPrd`
548
548
  * in `tasking.ts` / the reviewer prompts in `review-gate.ts` — NOT a standalone
549
549
  * asset/`.md` file; no such convention exists in this package). It encodes the FULL
550
- * four-outcome decision table (prd `issue-intake` — the source of truth) and the
550
+ * four-outcome decision table (spec `issue-intake` — the source of truth) and the
551
551
  * three DECISION AIDS stated once there:
552
552
  *
553
553
  * 1. the **"clear?" bar** = `to-task`/`needsAnswers`' "would I build the wrong
554
554
  * thing if I guessed?" — if a material requirement/scope/acceptance question is
555
555
  * unanswered, ASK (never guess a spec from a vague issue);
556
556
  * 2. the **"one task?" bar** = `to-task`' tracer-bullet test (one thin end-to-end
557
- * path, demoable on its own) — fits → TASK, needs splitting → PRD;
558
- * 3. **PRD vs BOUNCE** turns on a **SHARED VISION**: coupled (even if small) → PRD;
557
+ * path, demoable on its own) — fits → TASK, needs splitting → SPEC;
558
+ * 3. **SPEC vs BOUNCE** turns on a **SHARED VISION**: coupled (even if small) → SPEC;
559
559
  * genuinely unrelated → BOUNCE. Size NEVER forces a bounce — only unrelatedness
560
- * (the over-bounce guard: a coupled-but-small pair gets a light PRD, never a
560
+ * (the over-bounce guard: a coupled-but-small pair gets a light SPEC, never a
561
561
  * bounce).
562
562
  *
563
563
  * The prompt anchors to `to-task`/`to-spec` for the task/spec SHAPES it drafts. Its