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
@@ -3,7 +3,7 @@ import {launchWithOptionalWatch} from './agent-launch.js';
3
3
  import {extractJsonObjectSpan} from './verdict-json.js';
4
4
 
5
5
  /**
6
- * The **TRIAGE auto-disposition GATE** (prd `advance-loop`, task
6
+ * The **TRIAGE auto-disposition GATE** (spec `advance-loop`, task
7
7
  * `advance-rung-triage`, US #17) — the CONSERVATIVE, `observationTriage: 'auto'`-
8
8
  * gated exception to the question-gated default. On `classify=triage-observation`
9
9
  * AND `observationTriage` resolved to `'auto'`, the engine asks this gate whether
@@ -12,7 +12,7 @@ import type {TriageAutoKind} from './triage-gate.js';
12
12
  import {renderTaskBody, renderSpecBody} from './buildable-body.js';
13
13
 
14
14
  /**
15
- * The engine-owned TRIAGE PERSIST (prd `advance-loop`, task `advance-rung-triage`,
15
+ * The engine-owned TRIAGE PERSIST (spec `advance-loop`, task `advance-rung-triage`,
16
16
  * US #16/17/24/30) — the half of the observation-triage rung the ENGINE owns (the
17
17
  * triage gate JUDGES, the engine ACTS). It is the SIBLING of `surface-persist.ts`
18
18
  * (the surface rung's persist) and `apply-persist.ts` (the apply rung's persist),
@@ -232,7 +232,7 @@ export interface PromoteObservationOptions {
232
232
  * triage-local {@link createItemThroughCas} writer (one local commit through the
233
233
  * CAS) — NOT intake's branch+integrate band — so the CAS-loser-backs-off
234
234
  * guarantee and the same-commit note deletion are uniform across the two routes.
235
- * MIGRATE step (prd `prd-to-spec-vocabulary-cutover-and-migration-command`): the
235
+ * MIGRATE step (spec `prd-to-spec-vocabulary-cutover-and-migration-command`): the
236
236
  * produced VALUE is `'spec'` (the verdict outcome renamed from `'prd'`).
237
237
  */
238
238
  artifact?: 'task' | 'spec';
@@ -287,22 +287,22 @@ export interface PromoteObservationResult {
287
287
 
288
288
  /**
289
289
  * Promote an ANSWERED observation to a NEW, SELF-CONTAINED artifact (US #1/#3/#8
290
- * for the task route; US #4/#9 for the PRD route): CAS-create the new item keyed
290
+ * for the task route; US #4/#9 for the SPEC route): CAS-create the new item keyed
291
291
  * on the NEW item's identity (its target path), with the observation note + its
292
292
  * answered sidecar `git rm`-ed IN THE SAME atomic commit. Promote is ONE commit
293
293
  * (create + delete).
294
294
  *
295
295
  * The artifact TYPE (`options.artifact`) selects the target + body shape: `'task'`
296
296
  * (default) mints `work/tasks/ready/<slug>.md`; `'prd'` mints
297
- * `work/prds/proposed/<slug>.md` (PRD staging — a human later promotes it to
297
+ * `work/specs/proposed/<slug>.md` (SPEC staging — a human later promotes it to
298
298
  * `ready/`). BOTH routes use the SAME triage-local {@link createItemThroughCas}
299
299
  * writer (NOT intake's `switchToWorkBranch`/`performIntegration` branch+integrate
300
300
  * band, which is intake's standalone front door): one create/integrate surface for
301
- * triage, the CAS-loser-backs-off guarantee uniform across task and PRD promotion.
301
+ * triage, the CAS-loser-backs-off guarantee uniform across task and SPEC promotion.
302
302
  *
303
303
  * The minted body is built FROM the observation (see {@link buildPromotedBody}):
304
304
  * its mechanism + fix prose is carried into the artifact's lead section (`## What
305
- * to build` for a task, `## Problem Statement` for a PRD), and its
305
+ * to build` for a task, `## Problem Statement` for a SPEC), and its
306
306
  * `## Open questions` scoping is transcribed into the new item's own
307
307
  * `## Open questions` block with `needsAnswers` set when questions remain (cleared
308
308
  * when none do) — so an agent can build from the artifact ALONE and no decision
@@ -398,10 +398,10 @@ export async function promoteObservation(
398
398
  *
399
399
  * The artifact TYPE selects the frontmatter + lead heading: a `task` gets
400
400
  * `## What to build` + `blockedBy: []` + a `## Prompt` (the buildable-task shape);
401
- * a `prd` gets `## Problem Statement` (the PRD document shape, with no `blockedBy` —
402
- * a PRD is not a blockable task — and no `## Prompt`, since a PRD is not
401
+ * a `prd` gets `## Problem Statement` (the SPEC document shape, with no `blockedBy` —
402
+ * a SPEC is not a blockable task — and no `## Prompt`, since a SPEC is not
403
403
  * dispatched by `do`/`run`). BOTH carry the SAME transcribed mechanism prose +
404
- * open-question block, so a PRD minted into `proposed/` is just as self-contained
404
+ * open-question block, so a SPEC minted into `proposed/` is just as self-contained
405
405
  * as a task.
406
406
  *
407
407
  * The `## Prompt` (task only) is the STRUCTURAL dispatchability the validator
@@ -409,9 +409,9 @@ export async function promoteObservation(
409
409
  * dispatched build throws "has no '## Prompt' section". The body BELOW the
410
410
  * frontmatter (lead section + mechanism prose + optional `## Open questions` +
411
411
  * the task-only `## Prompt`) is rendered by the SHARED owner of the
412
- * buildable-task/PRD schema, {@link renderTaskBody} / {@link renderSpecBody}
412
+ * buildable-task/SPEC schema, {@link renderTaskBody} / {@link renderSpecBody}
413
413
  * (`buildable-body.ts`), so the producer and the consumer cannot drift apart
414
- * (prd `centralize-buildable-task-renderer-shared-by-intake-and-promotion`,
414
+ * (spec `centralize-buildable-task-renderer-shared-by-intake-and-promotion`,
415
415
  * US #3/#5/#6). This function owns only the FRONTMATTER writer; the section
416
416
  * skeleton lives in the one renderer. The empty-mechanism `## Prompt` seed is
417
417
  * passed EXPLICITLY (`Build the task '<slug>', described above.`) so promotion's
@@ -434,8 +434,8 @@ export async function promoteObservation(
434
434
  * fails with `has no '## Prompt' section` (the `extractPromptSection`/`resolveTask`
435
435
  * guard in `prompt.ts`). This is the robust backstop that closes that hole
436
436
  * regardless of agent compliance: for a TASK, if the body has no `## Prompt`
437
- * heading, append a seeded one (blockquoted, matching the renderer's shape). A PRD
438
- * is left UNTOUCHED — a PRD is a north-star doc, not dispatched by `do`/`run`, and carries no
437
+ * heading, append a seeded one (blockquoted, matching the renderer's shape). A SPEC
438
+ * is left UNTOUCHED — a SPEC is a north-star doc, not dispatched by `do`/`run`, and carries no
439
439
  * `## Prompt` by design.
440
440
  */
441
441
  function ensureTaskDispatchable(
@@ -472,7 +472,7 @@ function buildPromotedBody(
472
472
  `title: ${slug}`,
473
473
  `slug: ${slug}`,
474
474
  `needsAnswers: ${hasQuestions ? 'true' : 'false'}`,
475
- // A PRD is a north-star doc, not a blockable task — only the task shape carries
475
+ // A SPEC is a north-star doc, not a blockable task — only the task shape carries
476
476
  // `blockedBy`.
477
477
  ...(artifact === 'spec' ? [] : ['blockedBy: []']),
478
478
  '---',
@@ -488,8 +488,8 @@ function buildPromotedBody(
488
488
  // no leading blank. Do NOT move the separator into the renderer.
489
489
  const fenceToBody = frontmatter.join('\n') + '\n\n';
490
490
  // The body BELOW the frontmatter is rendered by the SHARED schema owner so the
491
- // section skeleton has one home, not two (prd
492
- // `centralize-buildable-task-renderer-shared-by-intake-and-promotion`). A PRD
491
+ // section skeleton has one home, not two (spec
492
+ // `centralize-buildable-task-renderer-shared-by-intake-and-promotion`). A SPEC
493
493
  // goes through `renderSpecBody` (no `## Prompt`); a task through
494
494
  // `renderTaskBody` (always a `## Prompt`).
495
495
  if (artifact === 'spec') {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The `install-ci` VERIFY-WORKFLOW capability (prd
2
+ * The `install-ci` VERIFY-WORKFLOW capability (spec
3
3
  * `land-time-reverify-and-parallel-merge-ceiling`, task
4
4
  * `install-ci-tier1-branch-protection`; Story 11 — the Tier-1 GitHub ceiling).
5
5
  * Emits a small `verify.yml` workflow whose ONLY job is `verify` and runs on
@@ -49,7 +49,7 @@ export const VERIFY_WORKFLOW_PATH = 'workflows/verify.yml';
49
49
  */
50
50
  export function generateVerifyWorkflow(_config: ResolvedCIConfig): string {
51
51
  return `\
52
- # dorfl — the VERIFY workflow (Tier-1 GitHub ceiling; prd
52
+ # dorfl — the VERIFY workflow (Tier-1 GitHub ceiling; spec
53
53
  # land-time-reverify-and-parallel-merge-ceiling, task
54
54
  # install-ci-tier1-branch-protection). EMITTED by \`dorfl install-ci\`; the
55
55
  # human commits it. DO NOT hand-edit a copy — re-run install-ci to upgrade.
@@ -5,7 +5,7 @@ import {join} from 'node:path';
5
5
  * folder-name union/array, the item-scan predicate, and the prefix-task helpers
6
6
  * used across `src/`.
7
7
  *
8
- * This is Phase 0 of the `folder-taxonomy-reorg-and-rename` prd — the de-risking
8
+ * This is Phase 0 of the `folder-taxonomy-reorg-and-rename` spec — the de-risking
9
9
  * checkpoint. EVERY raw work-path literal (`join(cwd, 'work', ...)`, `'work/<folder>'`,
10
10
  * `'work/<folder>/'.length` prefix-tasks) and EVERY folder-name union/array that
11
11
  * used to be scattered across ~70 files now routes through here. The NAMES are
@@ -16,7 +16,7 @@ import {join} from 'node:path';
16
16
  * {@link WORK_FOLDER_NAME} (and `git mv` the on-disk folders) and NOTHING ELSE.
17
17
  * Call sites reference folders by their SYMBOLIC key (`'tasks-ready'`,
18
18
  * `'specs-ready'`, …), never by a raw string, so a folder-VALUE flip never
19
- * re-touches a single call site (a KEY rename, e.g. the prd→spec cutover below,
19
+ * re-touches a single call site (a KEY rename, e.g. the spec→spec cutover below,
20
20
  * is a mechanical relabel of the key literal at each site — behaviour-preserving).
21
21
  *
22
22
  * Domain note (crown-jewel invariant): a `work/` tree is a set of governance
@@ -65,17 +65,19 @@ export const WORK_ROOT = 'work' as const;
65
65
  * and `needs-attention` (both are really lock-ref state, NOT durable folders;
66
66
  * routed here only so no reader hand-writes the literal).
67
67
  *
68
- * NOTE on the prd→spec vocabulary cutover
68
+ * NOTE on the spec→spec vocabulary cutover
69
69
  * (`rename-spec-work-layout-and-folders`, migrate-batch 1 of
70
70
  * `prd-to-spec-vocabulary-cutover-and-migration-command`): the spec-regime KEYS
71
71
  * below now read in the `spec` vocabulary (`specs-proposed`/`specs-ready`/
72
72
  * `specs-tasked`/`specs-dropped`) AND their VALUES flip to `work/specs/*` in
73
- * lockstep with the on-disk `git mv work/prds/* → work/specs/*`. Unlike the earlier
73
+ * lockstep with the on-disk `git mv work/specs/* → work/specs/*`. Unlike the earlier
74
74
  * key-only relabel, this batch moves the folders too, so the KEY and VALUE change
75
75
  * together and the self-renaming-folder guard stays green. The KEY rename is a
76
76
  * mechanical relabel of the key literal at each call site (behaviour-preserving);
77
- * the frontmatter `prd:` field (a DATA alias the migration command converts) is the
78
- * one deliberate survivor; the `--specs-land-in` flag/`specsLandIn` config + the
77
+ * the legacy frontmatter `prd:` field survives ONLY as un-migrated on-disk DATA the
78
+ * `dorfl prd-to-spec` command textually converts to `spec:` (HARD CUTOVER: it is no
79
+ * longer READ by `parseFrontmatter` — `spec:` is the only read key); the
80
+ * `--specs-land-in` flag/`specsLandIn` config + the
79
81
  * `Spec*` symbols were completed by the later batches + the contract task. The
80
82
  * folder-as-status invariant is unchanged.
81
83
  */
@@ -193,7 +195,7 @@ export function isWorkItemFile(name: string): boolean {
193
195
  * order: `in-progress` over `tasks-ready`, with `done` appended only behind the
194
196
  * stranded-continue gate. Order is load-bearing — kept exactly as the original
195
197
  * union/array. (`tasks-backlog` is NOT in this DEFAULT order: it is appended at
196
- * the LOWEST priority ONLY behind the explicit `--allow-backlog` flag, prd
198
+ * the LOWEST priority ONLY behind the explicit `--allow-backlog` flag, spec
197
199
  * `do-allow-backlog-drive-staged-tasks-without-promotion` — see
198
200
  * {@link TaskResolutionFolder}.)
199
201
  */
package/src/workspace.ts CHANGED
@@ -156,7 +156,7 @@ export interface CreateJobOptions {
156
156
  slug: string;
157
157
  /**
158
158
  * The item TYPE — `'task'` (build) or `'prd'` (tasking) — namespacing the
159
- * work branch via {@link workBranchRef} so a same-slug task and prd never
159
+ * work branch via {@link workBranchRef} so a same-slug task and spec never
160
160
  * collide. Defaults to `'task'`.
161
161
  */
162
162
  type?: SlugNamespace;