@joshuafolkken/kit 1.1240.0 → 1.1373.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (934) hide show
  1. package/.claude/agents/investigator.md +1 -0
  2. package/.claude/settings.json +4 -0
  3. package/.claude/skills/dependency-update/SKILL.md +5 -3
  4. package/.claude/skills/epic-commands/SKILL.md +82 -113
  5. package/.claude/skills/epic-commands/epic-bundle.md +38 -63
  6. package/.claude/skills/epic-commands/execution-waves.md +30 -51
  7. package/.claude/skills/verify-ui/SKILL.md +13 -20
  8. package/.claude/skills/workflow-commands/SKILL.md +10 -10
  9. package/.claude/skills/workflow-commands/background-commands.md +4 -4
  10. package/.claude/skills/workflow-commands/backlogrun-child.md +30 -105
  11. package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +29 -0
  12. package/.claude/skills/workflow-commands/backlogrun-lanes.md +45 -131
  13. package/.claude/skills/workflow-commands/backlogrun-park.md +36 -53
  14. package/.claude/skills/workflow-commands/backlogrun-progress.md +81 -331
  15. package/.claude/skills/workflow-commands/backlogrun-recovery.md +29 -83
  16. package/.claude/skills/workflow-commands/backlogrun-steps.md +105 -424
  17. package/.claude/skills/workflow-commands/backlogrun.md +52 -61
  18. package/.claude/skills/workflow-commands/chain-rule.md +36 -40
  19. package/.claude/skills/workflow-commands/entry-sequence.md +6 -6
  20. package/.claude/skills/workflow-commands/followup.md +19 -20
  21. package/.claude/skills/workflow-commands/fullrun-steps.md +23 -27
  22. package/.claude/skills/workflow-commands/fullrun.md +10 -10
  23. package/.claude/skills/workflow-commands/halfrun.md +9 -8
  24. package/.claude/skills/workflow-commands/into-target.md +12 -18
  25. package/.claude/skills/workflow-commands/issue-comments.md +11 -26
  26. package/.claude/skills/workflow-commands/kickoff.md +26 -16
  27. package/.claude/skills/workflow-commands/latest-gate.md +17 -28
  28. package/.claude/skills/workflow-commands/needs-human-review.md +13 -24
  29. package/.claude/skills/workflow-commands/observation-filing.md +37 -28
  30. package/.claude/skills/workflow-commands/observation-ledger.md +48 -38
  31. package/.claude/skills/workflow-commands/pre-gate-cut.md +9 -9
  32. package/.claude/skills/workflow-commands/prerequisite.md +23 -15
  33. package/.claude/skills/workflow-commands/progress-watcher.md +17 -11
  34. package/.claude/skills/workflow-commands/prrun.md +3 -3
  35. package/.claude/skills/workflow-commands/retrospective.md +13 -18
  36. package/.claude/skills/workflow-commands/split-assessment.md +6 -4
  37. package/.claude/skills/workflow-commands/target-repository.md +25 -28
  38. package/.claude/skills/workflow-commands/working-tree-hold.md +11 -17
  39. package/.gitattributes +2 -1
  40. package/.github/workflows/ci.yml +14 -0
  41. package/.vscode/tasks.json +14 -0
  42. package/CLAUDE.md +10 -61
  43. package/README.md +23 -66
  44. package/SECURITY.md +1 -1
  45. package/dist/CLAUDE.md +10 -61
  46. package/dist/commands/document-section-cli.js +43 -11
  47. package/dist/config-merge/index.js +11 -2
  48. package/dist/hooks/audit-provision.js +2 -2
  49. package/dist/hooks/batch-guard.js +7 -7
  50. package/dist/hooks/{chunk-KHGB5S3Y.js → chunk-7UBFU3CL.js} +18 -20
  51. package/dist/hooks/{chunk-ZQGD4GBY.js → chunk-7WKYHEGU.js} +8 -44
  52. package/dist/hooks/{chunk-4TZVB44A.js → chunk-AKGCP4LX.js} +285 -363
  53. package/dist/hooks/{chunk-QVSWU24O.js → chunk-BZMPVFDY.js} +7 -5
  54. package/dist/hooks/{chunk-5VNDSNG3.js → chunk-FZ6FUSBM.js} +1 -1
  55. package/dist/hooks/{chunk-GPTFMK5E.js → chunk-GG72ANKI.js} +1 -1
  56. package/dist/hooks/{chunk-XZYKEM6J.js → chunk-JCRDBQXB.js} +13 -11
  57. package/dist/hooks/{chunk-F3ELQ2AF.js → chunk-JGW24KKM.js} +4 -4
  58. package/dist/hooks/{chunk-ELCN5LCH.js → chunk-NEC4AT4Z.js} +34 -12
  59. package/dist/hooks/chunk-NZN2UFI6.js +2409 -0
  60. package/dist/hooks/{chunk-WK2XSHSI.js → chunk-SLSFIWTX.js} +550 -875
  61. package/dist/hooks/chunk-UTHMB4O2.js +1590 -0
  62. package/dist/hooks/{chunk-KRBERBBI.js → chunk-V4TKZHER.js} +4 -4
  63. package/dist/hooks/chunk-YLBBSSTF.js +3705 -0
  64. package/dist/hooks/chunk-Z5TMJIPW.js +45 -0
  65. package/dist/hooks/codex-hook-adapter.js +26 -21
  66. package/dist/hooks/duplicate-read-guard.js +8 -8
  67. package/dist/hooks/format-edited.js +4 -4
  68. package/dist/hooks/inputs.json +195 -181
  69. package/dist/hooks/investigation-guard.js +8 -8
  70. package/dist/hooks/pretool-guard.js +15 -15
  71. package/dist/hooks/session-lang.js +406 -8
  72. package/dist/hooks/stop-guard.js +122 -187
  73. package/dist/josh.js +282 -95
  74. package/dist/version/index.js +15 -13
  75. package/eslint/base.js +43 -5
  76. package/eslint/rules/english-only-prose.js +3 -3
  77. package/eslint/rules/import.js +12 -0
  78. package/eslint/rules/namespace-object-export.js +2 -2
  79. package/package.json +17 -11
  80. package/pnpm-workspace.yaml +2 -4
  81. package/prompts/coding-standards.md +14 -48
  82. package/prompts/collaboration-workflow/file-edits.md +1 -1
  83. package/prompts/collaboration-workflow/issue-citation.md +1 -1
  84. package/prompts/collaboration-workflow/issue-template.md +3 -10
  85. package/prompts/collaboration-workflow/operating-rules.md +7 -8
  86. package/prompts/collaboration-workflow/output-bounds.md +1 -1
  87. package/prompts/collaboration-workflow/overview.md +1 -1
  88. package/prompts/collaboration-workflow/plan-comment.md +2 -1
  89. package/prompts/collaboration-workflow/principles.md +21 -3
  90. package/prompts/collaboration-workflow/report-format.md +16 -29
  91. package/prompts/collaboration-workflow/residency.md +1 -1
  92. package/prompts/collaboration-workflow/rule-delivery.md +7 -95
  93. package/prompts/collaboration-workflow/shell-body.md +3 -23
  94. package/prompts/collaboration-workflow/turn-batching.md +4 -13
  95. package/prompts/collaboration-workflow/wip-cap.md +5 -11
  96. package/prompts/refactoring.md +1 -1
  97. package/prompts/review-rubric.md +3 -22
  98. package/prompts/review.md +15 -38
  99. package/prompts/testing-guide.md +2 -4
  100. package/scripts/adopt/adopt-logic.ts +5 -5
  101. package/scripts/adopt/adopt-toolkits.ts +4 -5
  102. package/scripts/adopt/adopt.ts +2 -3
  103. package/scripts/agent/agent-argv.ts +7 -7
  104. package/scripts/agent/agent-diagnostics.ts +2 -2
  105. package/scripts/agent/agent-exit-record.ts +1 -1
  106. package/scripts/agent/agent-headless.ts +1 -1
  107. package/scripts/agent/agent-launch-environment.ts +6 -1
  108. package/scripts/agent/agent-role-profile.ts +49 -22
  109. package/scripts/agent/agent-session-role.ts +32 -0
  110. package/scripts/agent/api-outage.ts +1 -1
  111. package/scripts/agent/claude-agent-argv.ts +4 -4
  112. package/scripts/agent/claude-result-event.ts +4 -4
  113. package/scripts/agent/codex-hooks.ts +2 -2
  114. package/scripts/agent/interactive-ask.ts +3 -6
  115. package/scripts/auto-ok/auto-ok-cli.ts +46 -60
  116. package/scripts/backlog/backlog-arrival-added.ts +34 -0
  117. package/scripts/backlog/backlog-arrival.ts +54 -17
  118. package/scripts/backlog/backlog-budget-cli.ts +34 -6
  119. package/scripts/backlog/backlog-budget.ts +17 -24
  120. package/scripts/backlog/backlog-defect-priority.ts +1 -1
  121. package/scripts/backlog/backlog-drive-args.ts +5 -4
  122. package/scripts/backlog/backlog-drive-cli.ts +14 -10
  123. package/scripts/backlog/backlog-drive-epic.ts +85 -0
  124. package/scripts/backlog/backlog-drive-launch.ts +1 -1
  125. package/scripts/backlog/backlog-drive-named-offer.ts +60 -9
  126. package/scripts/backlog/backlog-drive-named.ts +39 -9
  127. package/scripts/backlog/backlog-drive-offer-argv.ts +1 -1
  128. package/scripts/backlog/backlog-drive-restore.ts +1 -1
  129. package/scripts/backlog/backlog-drive-retrospective.ts +2 -2
  130. package/scripts/backlog/backlog-drive.ts +43 -28
  131. package/scripts/backlog/backlog-idle.ts +88 -0
  132. package/scripts/backlog/backlog-named.ts +11 -15
  133. package/scripts/backlog/backlog-next.ts +26 -30
  134. package/scripts/backlog/backlog-offer-cli.ts +28 -23
  135. package/scripts/backlog/backlog-offer.ts +7 -7
  136. package/scripts/backlog/backlog-overlap.ts +178 -0
  137. package/scripts/backlog/backlog-plan-cli.ts +14 -90
  138. package/scripts/backlog/backlog-plan-read.ts +111 -0
  139. package/scripts/backlog/backlog-plan.ts +11 -10
  140. package/scripts/backlog/backlog-pool.ts +13 -14
  141. package/scripts/backlog/backlog-rank.ts +11 -11
  142. package/scripts/backlog/backlog-ready.ts +15 -10
  143. package/scripts/backlog/backlog-scope.ts +14 -15
  144. package/scripts/backlog/backlog-stalled-cli.ts +2 -2
  145. package/scripts/backlog/backlog-stalled-detect.ts +4 -4
  146. package/scripts/backlog/backlog-stalled.ts +5 -6
  147. package/scripts/backlog/backlog-waves.ts +4 -4
  148. package/scripts/backlog/backlogrun-args.ts +74 -0
  149. package/scripts/backlog/backlogrun-cli.ts +113 -0
  150. package/scripts/backlog/backlogrun-launch.ts +178 -0
  151. package/scripts/behavior/behavior-assertion.ts +6 -8
  152. package/scripts/behavior/behavior-cli.ts +1 -1
  153. package/scripts/behavior/behavior-rules.ts +3 -3
  154. package/scripts/build/build-claude-md.ts +4 -4
  155. package/scripts/build/build-codex-hooks.ts +2 -2
  156. package/scripts/build/build-commands.ts +1 -1
  157. package/scripts/build/build-hooks.ts +5 -5
  158. package/scripts/build/build.ts +1 -1
  159. package/scripts/build/hook-bundle-stamp.ts +109 -7
  160. package/scripts/build/local-bin.ts +2 -2
  161. package/scripts/cases/cases-cli.ts +1 -1
  162. package/scripts/cases/cases-logic.ts +2 -2
  163. package/scripts/ci/composite-actions.ts +1 -2
  164. package/scripts/ci/pr-classification.ts +2 -2
  165. package/scripts/claude/workflow-destination.ts +1 -1
  166. package/scripts/clone/clone-aggregate.ts +1 -1
  167. package/scripts/clone/clone-fingerprint.ts +1 -1
  168. package/scripts/clone/clone-scan-cli.ts +1 -1
  169. package/scripts/clone/clone-scan.ts +1 -1
  170. package/scripts/config-merge/index.ts +1 -1
  171. package/scripts/config-merge/json-format.ts +1 -3
  172. package/scripts/config-merge/patch-json-array.ts +90 -0
  173. package/scripts/config-merge/patch-json-key.ts +6 -3
  174. package/scripts/config-merge/patch-json-list.ts +1 -1
  175. package/scripts/cost-runtime/codex-usage.ts +1 -1
  176. package/scripts/cost-runtime/context-cut-payback.ts +4 -5
  177. package/scripts/cost-runtime/context-cut-threshold.ts +4 -6
  178. package/scripts/cost-runtime/cost-attribute.ts +3 -3
  179. package/scripts/cost-runtime/cost-blocks.ts +3 -4
  180. package/scripts/cost-runtime/cost-cli.ts +14 -11
  181. package/scripts/cost-runtime/cost-corpus.ts +11 -11
  182. package/scripts/cost-runtime/cost-pricing.ts +4 -4
  183. package/scripts/cost-runtime/cost-tokens.ts +1 -2
  184. package/scripts/cost-runtime/cost-transcript.ts +29 -29
  185. package/scripts/cost-runtime/cost-usage.ts +6 -7
  186. package/scripts/cost-runtime/cost-verdict.ts +10 -11
  187. package/scripts/cost-runtime/own-session.ts +1 -1
  188. package/scripts/cost-runtime/transcript-cwd.ts +2 -2
  189. package/scripts/delegation/delegation-cli.ts +4 -4
  190. package/scripts/delegation/delegation-policy.ts +13 -15
  191. package/scripts/delegation/duplicate-read-guard.ts +9 -10
  192. package/scripts/delegation/fanout-cli.ts +1 -1
  193. package/scripts/delegation/fanout.ts +1 -1
  194. package/scripts/delegation/investigation-guard.ts +18 -22
  195. package/scripts/delegation/investigation-reads.ts +48 -238
  196. package/scripts/discovery/repo-discovery.ts +1 -1
  197. package/scripts/discovery/repo-map-logic.ts +1 -2
  198. package/scripts/discovery/repo-origin.ts +3 -3
  199. package/scripts/discovery/repo-party-cli.ts +2 -2
  200. package/scripts/discovery/repo-party.ts +2 -2
  201. package/scripts/doctor/doctor-consumer.ts +1 -1
  202. package/scripts/doctor/doctor-io.ts +6 -7
  203. package/scripts/doctor/doctor-logic.ts +1 -1
  204. package/scripts/doctor/doctor-ports.ts +1 -1
  205. package/scripts/doctor/doctor.ts +8 -9
  206. package/scripts/document/backlogrun-parent-read-set.ts +5 -6
  207. package/scripts/document/bash-output-cap.ts +5 -7
  208. package/scripts/document/capped-print-part.ts +1 -1
  209. package/scripts/document/capped-print.ts +1 -1
  210. package/scripts/document/document-byte-budget.ts +33 -64
  211. package/scripts/document/document-byte-check.ts +4 -4
  212. package/scripts/document/document-reachability.ts +7 -8
  213. package/scripts/document/document-read-cli.ts +2 -2
  214. package/scripts/document/document-scan.ts +30 -5
  215. package/scripts/document/document-section-cli.ts +6 -8
  216. package/scripts/document/document-section.ts +8 -12
  217. package/scripts/document/edit-files-cli.ts +3 -4
  218. package/scripts/document/entry-read-budget.ts +8 -70
  219. package/scripts/document/entry-read-set.ts +51 -34
  220. package/scripts/document/lane-child-read-set.ts +9 -9
  221. package/scripts/document/read-files-cli.ts +1 -2
  222. package/scripts/document/read-set-cli.ts +16 -19
  223. package/scripts/document/read-set-cost.ts +4 -4
  224. package/scripts/document/read-set-point-of-use.ts +28 -38
  225. package/scripts/document/read-set-pricing.ts +1 -1
  226. package/scripts/document/read-set-trim.ts +3 -3
  227. package/scripts/document/resident-budget.ts +8 -10
  228. package/scripts/epic/epic-add-body.ts +15 -18
  229. package/scripts/epic/epic-add-plan.ts +26 -28
  230. package/scripts/epic/epic-add.ts +32 -25
  231. package/scripts/epic/epic-audit-checks.ts +27 -37
  232. package/scripts/epic/epic-audit-cli.ts +21 -22
  233. package/scripts/epic/epic-audit-orphans.ts +16 -17
  234. package/scripts/epic/epic-audit-rationale.ts +10 -15
  235. package/scripts/epic/epic-audit-report.ts +2 -5
  236. package/scripts/epic/epic-audit.ts +18 -14
  237. package/scripts/epic/epic-body.ts +10 -10
  238. package/scripts/epic/epic-bundle-cli.ts +36 -34
  239. package/scripts/epic/epic-bundle-evidence.ts +5 -5
  240. package/scripts/epic/epic-bundle-gaps.ts +6 -9
  241. package/scripts/epic/epic-bundle-poll.ts +1 -1
  242. package/scripts/epic/epic-bundle-referenced.ts +11 -14
  243. package/scripts/epic/epic-bundle.ts +19 -20
  244. package/scripts/epic/epic-busy.ts +44 -21
  245. package/scripts/epic/epic-candidate-confirm.ts +15 -18
  246. package/scripts/epic/epic-chains.ts +18 -23
  247. package/scripts/epic/epic-classify.ts +11 -12
  248. package/scripts/epic/epic-cli-argv.ts +5 -6
  249. package/scripts/epic/epic-cli-remove.ts +9 -4
  250. package/scripts/epic/epic-cli.ts +38 -26
  251. package/scripts/epic/epic-close-comment.ts +14 -15
  252. package/scripts/epic/epic-close.ts +25 -29
  253. package/scripts/epic/epic-cross-repo.ts +18 -21
  254. package/scripts/epic/epic-decision.ts +14 -18
  255. package/scripts/epic/epic-fetch.ts +25 -31
  256. package/scripts/epic/epic-graph.ts +15 -17
  257. package/scripts/epic/epic-index.ts +14 -16
  258. package/scripts/epic/epic-issue.ts +9 -11
  259. package/scripts/epic/epic-label-age.ts +74 -0
  260. package/scripts/epic/epic-lane-offer.ts +35 -24
  261. package/scripts/epic/epic-nested.ts +1 -1
  262. package/scripts/epic/epic-next-read.ts +8 -8
  263. package/scripts/epic/epic-next-views.ts +12 -12
  264. package/scripts/epic/epic-next.ts +29 -33
  265. package/scripts/epic/epic-outside-blocker.ts +11 -10
  266. package/scripts/epic/epic-parse.ts +22 -24
  267. package/scripts/epic/epic-promote.ts +3 -2
  268. package/scripts/epic/epic-rank.ts +1 -1
  269. package/scripts/epic/epic-read.ts +10 -8
  270. package/scripts/epic/epic-reconcile.ts +8 -6
  271. package/scripts/epic/epic-reference.ts +5 -4
  272. package/scripts/epic/epic-relation-recheck.ts +10 -11
  273. package/scripts/epic/epic-relations.ts +9 -8
  274. package/scripts/epic/epic-remove-plan.ts +4 -5
  275. package/scripts/epic/epic-remove.ts +7 -5
  276. package/scripts/epic/epic-report.ts +18 -20
  277. package/scripts/epic/epic-run.ts +6 -5
  278. package/scripts/epic/epic-sections.ts +2 -2
  279. package/scripts/epic/epic-shape.ts +3 -3
  280. package/scripts/epic/epic-solo-stale.ts +3 -2
  281. package/scripts/epic/epic-solo.ts +8 -8
  282. package/scripts/epic/epic-triage.ts +5 -4
  283. package/scripts/epic/epic-validate.ts +8 -7
  284. package/scripts/epic/epic.ts +5 -5
  285. package/scripts/exports/unused-members-cli.ts +1 -1
  286. package/scripts/followup/followup-issue-number.ts +1 -2
  287. package/scripts/followup/git-followup-cleanup.ts +6 -7
  288. package/scripts/followup/git-followup-finish.ts +11 -13
  289. package/scripts/followup/git-followup-flush.ts +11 -7
  290. package/scripts/followup/git-followup-issue-close.ts +16 -13
  291. package/scripts/followup/git-followup-label.ts +9 -6
  292. package/scripts/followup/git-followup-merged.ts +1 -1
  293. package/scripts/followup/git-followup-pending.ts +7 -9
  294. package/scripts/followup/git-followup-stages.ts +28 -17
  295. package/scripts/followup/git-followup-workflow.ts +19 -21
  296. package/scripts/followup/git-pr-followup-checks.ts +13 -20
  297. package/scripts/followup/git-pr-followup-wrapup.ts +7 -7
  298. package/scripts/followup/git-pr-followup.ts +18 -17
  299. package/scripts/gate/core-admission.ts +2 -2
  300. package/scripts/gate/core-budget.ts +15 -26
  301. package/scripts/gate/gate-ledger.ts +114 -0
  302. package/scripts/gate/gate-log.ts +7 -9
  303. package/scripts/gate/gate-plan.ts +70 -35
  304. package/scripts/gate/gate-report.ts +14 -15
  305. package/scripts/gate/gate-skip.ts +11 -13
  306. package/scripts/gate/gate-steps.ts +5 -1
  307. package/scripts/gate/gate-tree.ts +3 -4
  308. package/scripts/gate/hook-gate-reuse.ts +9 -9
  309. package/scripts/gate/machine-capacity.ts +168 -30
  310. package/scripts/gate/pre-commit-type-check.ts +4 -4
  311. package/scripts/gate/project-checks.ts +12 -4
  312. package/scripts/gate/scoped-green.ts +11 -18
  313. package/scripts/gate/type-check-command.ts +2 -2
  314. package/scripts/gate/type-check-step.ts +4 -4
  315. package/scripts/gate/verification-gate.ts +53 -51
  316. package/scripts/gh/gh-spawn.ts +2 -2
  317. package/scripts/gh/git-ai-review-scan.ts +3 -2
  318. package/scripts/gh/git-gh-api-path.ts +10 -11
  319. package/scripts/gh/git-gh-exec.ts +43 -48
  320. package/scripts/gh/git-gh-failure.ts +6 -9
  321. package/scripts/gh/git-gh-helpers.ts +1 -1
  322. package/scripts/gh/git-gh-issue-list.ts +15 -19
  323. package/scripts/gh/git-gh-issue-read.ts +43 -60
  324. package/scripts/gh/git-gh-issue-rest.ts +14 -15
  325. package/scripts/gh/git-gh-issue-write.ts +52 -40
  326. package/scripts/gh/git-gh-issue.ts +23 -24
  327. package/scripts/gh/git-gh-pr-auto-merge.ts +3 -3
  328. package/scripts/gh/git-gh-pr-read.ts +46 -50
  329. package/scripts/gh/git-gh-pr-rest.ts +23 -26
  330. package/scripts/gh/git-gh-pr-review.ts +2 -2
  331. package/scripts/gh/git-gh-pr-rollup.ts +4 -4
  332. package/scripts/gh/git-gh-pr-snapshot.ts +8 -10
  333. package/scripts/gh/git-gh-pr.ts +16 -16
  334. package/scripts/gh/git-gh-reachability.ts +11 -12
  335. package/scripts/gh/git-gh-repo.ts +2 -3
  336. package/scripts/gh/git-gh-rest-state.ts +1 -1
  337. package/scripts/gh/git-pr-ai-review.ts +6 -5
  338. package/scripts/gh/git-pr-checks-eval.ts +28 -30
  339. package/scripts/gh/git-pr-checks-parse.ts +14 -16
  340. package/scripts/gh/git-pr-checks-watch.ts +17 -17
  341. package/scripts/gh/git-pr-checks.ts +20 -23
  342. package/scripts/gh/git-pr-coderabbit.ts +8 -6
  343. package/scripts/gh/git-pr-confirmation.ts +5 -5
  344. package/scripts/gh/git-pr-managed-config.ts +7 -9
  345. package/scripts/gh/git-pr-messages.ts +1 -1
  346. package/scripts/gh/git-pr.ts +15 -16
  347. package/scripts/gh/github-issue-url.ts +8 -9
  348. package/scripts/git/base-tree.ts +66 -0
  349. package/scripts/git/change-base.ts +42 -2
  350. package/scripts/git/changed-file-scope.ts +5 -5
  351. package/scripts/git/changed-paths.ts +1 -2
  352. package/scripts/git/constants.ts +2 -2
  353. package/scripts/git/git-branch.ts +1 -1
  354. package/scripts/git/git-closes-keyword.ts +3 -3
  355. package/scripts/git/git-command.ts +53 -41
  356. package/scripts/git/git-common-directory.ts +3 -3
  357. package/scripts/git/git-diff-reads.ts +14 -15
  358. package/scripts/git/git-error.ts +1 -1
  359. package/scripts/git/git-execa-error.ts +1 -2
  360. package/scripts/git/git-issue.ts +10 -8
  361. package/scripts/git/git-location-environment.ts +3 -4
  362. package/scripts/git/git-ls-remote.ts +6 -8
  363. package/scripts/git/git-pre-push-hook.ts +11 -10
  364. package/scripts/git/git-preflight.ts +5 -5
  365. package/scripts/git/git-push-transport.ts +2 -2
  366. package/scripts/git/git-remote-branch.ts +1 -2
  367. package/scripts/git/git-schemas.ts +16 -23
  368. package/scripts/git/git-spawn-sync.ts +1 -1
  369. package/scripts/git/git-spawn.ts +37 -14
  370. package/scripts/git/git-ssh-keepalive.ts +12 -5
  371. package/scripts/git/git-staging.ts +7 -8
  372. package/scripts/git/git-workflow.ts +1 -1
  373. package/scripts/git/git-worktree.ts +35 -27
  374. package/scripts/git/gone-branch.ts +2 -2
  375. package/scripts/git/listing-cutoff.ts +1 -2
  376. package/scripts/git/lockfile-sync.ts +65 -0
  377. package/scripts/git/main-merge-guard.ts +1 -2
  378. package/scripts/git/main-merge.ts +7 -7
  379. package/scripts/git/main-sync.ts +23 -8
  380. package/scripts/git/parse-json-array.ts +18 -23
  381. package/scripts/git/repository-lock.ts +34 -2
  382. package/scripts/git/stash/git-stash.ts +4 -5
  383. package/scripts/git/stash/stash-orphans.ts +5 -3
  384. package/scripts/git/stash/stash-pop-args.ts +1 -1
  385. package/scripts/git/stash/stash-pop-cli.ts +3 -3
  386. package/scripts/git/stash/stash-sweep-lock.ts +2 -2
  387. package/scripts/hooks/batch-guard.ts +11 -13
  388. package/scripts/hooks/check-commit-message.ts +12 -9
  389. package/scripts/hooks/codex-hook-adapter.ts +16 -10
  390. package/scripts/hooks/edited-cspell.ts +3 -4
  391. package/scripts/hooks/format-edited-cli.ts +1 -1
  392. package/scripts/hooks/format-edited-file.ts +11 -17
  393. package/scripts/hooks/format-rewrite-notice.ts +19 -17
  394. package/scripts/hooks/pre-push-unit.ts +10 -14
  395. package/scripts/hooks/pretool-guard-cli.ts +4 -4
  396. package/scripts/hooks/pretool-guard.ts +93 -18
  397. package/scripts/hooks/reserved-run.ts +2 -2
  398. package/scripts/hooks/step-zero-notice.ts +1 -1
  399. package/scripts/hooks/stop-guard.ts +21 -10
  400. package/scripts/init/basic-path-migration.ts +2 -2
  401. package/scripts/init/claude-kit-only-settings.ts +2 -2
  402. package/scripts/init/claude-plugin-config.ts +2 -2
  403. package/scripts/init/distributed-paths.ts +4 -4
  404. package/scripts/init/hook-command-rewrite.ts +3 -3
  405. package/scripts/init/hook-launch.ts +5 -5
  406. package/scripts/init/init-actions.ts +13 -0
  407. package/scripts/init/init-ai-copy.ts +11 -11
  408. package/scripts/init/init-bootstrap.ts +3 -3
  409. package/scripts/init/init-copy-content.ts +4 -4
  410. package/scripts/init/init-logic-json-merge.ts +7 -9
  411. package/scripts/init/init-logic-migrate.ts +1 -1
  412. package/scripts/init/init-logic-templates.ts +1 -1
  413. package/scripts/init/init-logic-workspace.ts +4 -4
  414. package/scripts/init/init-logic-yaml-merge.ts +2 -2
  415. package/scripts/init/init-logic.ts +19 -22
  416. package/scripts/init/init.ts +7 -7
  417. package/scripts/init/kit-base-preset.ts +1 -1
  418. package/scripts/init/kit-setup-state.ts +1 -1
  419. package/scripts/init/kit-written-paths.ts +1 -2
  420. package/scripts/init/package-manager-pin.ts +1 -1
  421. package/scripts/init/project-profile-cli.ts +1 -1
  422. package/scripts/init/project-profile.ts +3 -3
  423. package/scripts/init/session-language-environment.ts +1 -1
  424. package/scripts/init/start-exec.ts +3 -4
  425. package/scripts/init/start-plan.ts +2 -2
  426. package/scripts/init/start-setup-pr.ts +3 -2
  427. package/scripts/init/start-steps.ts +2 -2
  428. package/scripts/init/tsconfig-preset-migration.ts +1 -1
  429. package/scripts/init/vscode-tasks.ts +62 -0
  430. package/scripts/issue/baseline-measure.ts +2 -2
  431. package/scripts/issue/behavior-change-lint.ts +2 -2
  432. package/scripts/issue/defect-rate-cli.ts +6 -7
  433. package/scripts/issue/defect-rate.ts +37 -27
  434. package/scripts/issue/git-next-issues.ts +9 -8
  435. package/scripts/issue/issue-auto-ok.ts +24 -11
  436. package/scripts/issue/issue-backlinks-cli.ts +5 -5
  437. package/scripts/issue/issue-backlinks.ts +6 -6
  438. package/scripts/issue/issue-cite-cli.ts +20 -18
  439. package/scripts/issue/issue-cite.ts +18 -8
  440. package/scripts/issue/issue-closing-pr.ts +4 -4
  441. package/scripts/issue/issue-comment-cli.ts +6 -4
  442. package/scripts/issue/issue-file-cli.ts +52 -15
  443. package/scripts/issue/issue-file-fold.ts +155 -0
  444. package/scripts/issue/issue-file.ts +9 -6
  445. package/scripts/issue/issue-fold-cli.ts +14 -9
  446. package/scripts/issue/issue-fold.ts +23 -8
  447. package/scripts/issue/issue-labels.ts +34 -38
  448. package/scripts/issue/issue-lint-cli.ts +2 -2
  449. package/scripts/issue/issue-lint.ts +1 -1
  450. package/scripts/issue/issue-merged.ts +10 -4
  451. package/scripts/issue/issue-number-shape.ts +27 -0
  452. package/scripts/issue/issue-rank.ts +1 -1
  453. package/scripts/issue/issue-read-cli.ts +4 -5
  454. package/scripts/issue/issue-read.ts +4 -5
  455. package/scripts/issue/issue-reference.ts +5 -5
  456. package/scripts/issue/issue-release-cli.ts +17 -7
  457. package/scripts/issue/issue-release.ts +3 -3
  458. package/scripts/issue/issue-report-failures.ts +7 -4
  459. package/scripts/issue/issue-scout-cli.ts +11 -11
  460. package/scripts/issue/issue-scout-closed.ts +4 -4
  461. package/scripts/issue/issue-scout.ts +4 -5
  462. package/scripts/issue/issue-state-cli.ts +17 -10
  463. package/scripts/issue/issue-state.ts +12 -13
  464. package/scripts/issue/issue-wip.ts +7 -7
  465. package/scripts/issue/markdown-section.ts +3 -3
  466. package/scripts/issue/measure-rerun-cli.ts +10 -9
  467. package/scripts/issue/reproduction-measure.ts +3 -3
  468. package/scripts/issue/session-cite.ts +56 -0
  469. package/scripts/josh/agent-session-environment.ts +10 -8
  470. package/scripts/josh/cli-body.ts +2 -2
  471. package/scripts/josh/command-suggest.ts +1 -1
  472. package/scripts/josh/file-map-stamp.ts +20 -23
  473. package/scripts/josh/hook-decision.ts +24 -28
  474. package/scripts/josh/josh-command-map.ts +4 -1
  475. package/scripts/josh/josh-command-types.ts +30 -35
  476. package/scripts/josh/josh-commands-ai.ts +6 -6
  477. package/scripts/josh/josh-commands-backlog.ts +15 -3
  478. package/scripts/josh/josh-commands-clone.ts +1 -1
  479. package/scripts/josh/josh-commands-development.ts +25 -4
  480. package/scripts/josh/josh-commands-document.ts +3 -3
  481. package/scripts/josh/josh-commands-guard.ts +3 -3
  482. package/scripts/josh/josh-commands-issue.ts +4 -5
  483. package/scripts/josh/josh-commands-lane.ts +14 -4
  484. package/scripts/josh/josh-commands-lint.ts +1 -1
  485. package/scripts/josh/josh-commands-run.ts +21 -7
  486. package/scripts/josh/josh-commands-split.ts +1 -2
  487. package/scripts/josh/josh-commands-versioning.ts +5 -5
  488. package/scripts/josh/josh-commands-workflow.ts +30 -22
  489. package/scripts/josh/josh-environment-file.ts +1 -1
  490. package/scripts/josh/josh-in-process.ts +3 -3
  491. package/scripts/josh/josh-logic.ts +6 -7
  492. package/scripts/josh/josh-run.ts +3 -3
  493. package/scripts/josh/josh-verdict.ts +9 -12
  494. package/scripts/josh/josh.ts +3 -3
  495. package/scripts/josh/kit-only.ts +2 -2
  496. package/scripts/josh/path-decision.ts +3 -3
  497. package/scripts/josh/platform-temporary.ts +7 -5
  498. package/scripts/josh/process-identity.ts +24 -6
  499. package/scripts/josh/process-owner.ts +4 -4
  500. package/scripts/josh/session-language-cli.ts +53 -11
  501. package/scripts/josh/session-language.ts +1 -1
  502. package/scripts/josh/stamp-file.ts +48 -29
  503. package/scripts/josh/stamp-record.ts +57 -0
  504. package/scripts/lane/lane-await.ts +35 -11
  505. package/scripts/lane/lane-cache.ts +6 -6
  506. package/scripts/lane/lane-capacity.ts +32 -17
  507. package/scripts/lane/lane-child-invocation.ts +17 -15
  508. package/scripts/lane/lane-child-marker.ts +12 -12
  509. package/scripts/lane/lane-cli.ts +12 -13
  510. package/scripts/lane/lane-close.ts +6 -6
  511. package/scripts/lane/lane-dispatch.ts +61 -72
  512. package/scripts/lane/lane-environment.ts +5 -5
  513. package/scripts/lane/lane-guard-policy.ts +7 -21
  514. package/scripts/lane/lane-handoff.ts +2 -2
  515. package/scripts/lane/lane-install.ts +9 -10
  516. package/scripts/lane/lane-launch-cli.ts +13 -8
  517. package/scripts/lane/lane-ledger.ts +73 -11
  518. package/scripts/lane/lane-leftover.ts +2 -2
  519. package/scripts/lane/lane-limit-cli.ts +160 -0
  520. package/scripts/lane/lane-limit-override.ts +74 -0
  521. package/scripts/lane/lane-load.ts +19 -68
  522. package/scripts/lane/lane-measure-cli.ts +15 -25
  523. package/scripts/lane/lane-occupancy.ts +6 -4
  524. package/scripts/lane/lane-open.ts +20 -19
  525. package/scripts/lane/lane-output.ts +4 -3
  526. package/scripts/lane/lane-paths.ts +12 -11
  527. package/scripts/lane/lane-phase.ts +33 -0
  528. package/scripts/lane/lane-reap.ts +2 -2
  529. package/scripts/lane/lane-registry.ts +16 -15
  530. package/scripts/lane/lane-relaunch.ts +9 -9
  531. package/scripts/lane/lane-report.ts +5 -4
  532. package/scripts/lane/lane-resume.ts +2 -2
  533. package/scripts/lane/lane-sampler.ts +55 -0
  534. package/scripts/lane/lane-seed.ts +7 -7
  535. package/scripts/lane/lane-stage-stats.ts +135 -0
  536. package/scripts/lane/lane-start-point.ts +8 -11
  537. package/scripts/lane/lane-stats.ts +60 -15
  538. package/scripts/lane/lane-stray.ts +1 -1
  539. package/scripts/lane/lane-vacant.ts +1 -1
  540. package/scripts/lane/openai-lane-supervisor-decision.ts +3 -7
  541. package/scripts/lane/openai-lane-supervisor-owner.ts +3 -9
  542. package/scripts/lane/openai-review-broker.ts +2 -4
  543. package/scripts/lib/ancestor-directories.ts +1 -1
  544. package/scripts/lib/bounded-pool.ts +2 -2
  545. package/scripts/lib/buffered-process.ts +4 -6
  546. package/scripts/lib/caddy-logs.sh +0 -0
  547. package/scripts/lib/cli-flags.ts +39 -6
  548. package/scripts/lib/error-message.ts +1 -1
  549. package/scripts/lib/json-value.ts +17 -3
  550. package/scripts/lib/poll.ts +1 -1
  551. package/scripts/lib/status-icons.ts +3 -3
  552. package/scripts/lib/timed-fetch.ts +1 -1
  553. package/scripts/lib/timeouts.ts +1 -1
  554. package/scripts/lines/bytes-command.ts +3 -4
  555. package/scripts/lines/effective-limit.ts +25 -12
  556. package/scripts/lines/line-budget.ts +47 -55
  557. package/scripts/lines/line-targets.ts +6 -2
  558. package/scripts/lines/lines-command.ts +3 -3
  559. package/scripts/lint/cross-file-recheck.ts +155 -0
  560. package/scripts/lint/cspell-cached.ts +1 -1
  561. package/scripts/lint/format.ts +1 -2
  562. package/scripts/lint/lint-parallel.ts +35 -19
  563. package/scripts/lint/lint-related-scope.ts +25 -15
  564. package/scripts/lint/lint-related.ts +6 -7
  565. package/scripts/managed-marker/index.ts +1 -1
  566. package/scripts/managed-marker/managed-marker-logic.ts +1 -2
  567. package/scripts/notify/git-notify.ts +9 -7
  568. package/scripts/notify/telegram-notify.ts +53 -37
  569. package/scripts/notify/telegram-test-logic.ts +3 -3
  570. package/scripts/notify/telegram-test.ts +45 -30
  571. package/scripts/observations/observation-ledger-home.ts +14 -8
  572. package/scripts/observations/observation-ledger-line.ts +3 -2
  573. package/scripts/observations/observation-ledger-migrate.ts +3 -4
  574. package/scripts/observations/observation-ledger-prepare.ts +4 -4
  575. package/scripts/observations/observation-ledger.ts +14 -15
  576. package/scripts/observations/observation-record-cli.ts +83 -0
  577. package/scripts/observations/observation-record.ts +91 -0
  578. package/scripts/observations/observations-flush-cli.ts +1 -1
  579. package/scripts/observations/observations-flush-landing.ts +7 -6
  580. package/scripts/observations/observations-flush.ts +26 -27
  581. package/scripts/overrides/overrides-check.ts +18 -8
  582. package/scripts/package/package-scout-cli.ts +1 -1
  583. package/scripts/package/package-scout-format.ts +2 -2
  584. package/scripts/package/package-scout.ts +1 -1
  585. package/scripts/propagate/propagate-git-failure.ts +1 -1
  586. package/scripts/propagate/propagate-git.ts +7 -7
  587. package/scripts/propagate/propagate-plan.ts +2 -2
  588. package/scripts/propagate/propagate-publish.ts +2 -3
  589. package/scripts/propagate/propagate-run.ts +5 -7
  590. package/scripts/propagate/propagate-select.ts +1 -1
  591. package/scripts/propagate/propagate-steps.ts +19 -20
  592. package/scripts/propagate/propagate-targets.ts +6 -10
  593. package/scripts/propagate/propagate.ts +5 -5
  594. package/scripts/refactor/import-graph.ts +1 -1
  595. package/scripts/refactor/refactor-lint.ts +4 -10
  596. package/scripts/refactor/refactor-scan-cli.ts +1 -1
  597. package/scripts/refactor/refactor-scan.ts +2 -2
  598. package/scripts/refactor/refactor-targets.ts +1 -1
  599. package/scripts/release/github-release-cli.ts +25 -3
  600. package/scripts/release/github-release-runs.ts +1 -1
  601. package/scripts/release/release-cli.ts +21 -4
  602. package/scripts/release/release-history.ts +6 -10
  603. package/scripts/release/release-plan.ts +3 -3
  604. package/scripts/release/release-progress.ts +3 -4
  605. package/scripts/release/release-publish.ts +8 -9
  606. package/scripts/release/release-scope-cli.ts +8 -10
  607. package/scripts/release/release-tag.ts +6 -8
  608. package/scripts/release/release-worktree.ts +5 -5
  609. package/scripts/repo/auto-merge-setting-logic.ts +7 -9
  610. package/scripts/repo/auto-merge-setting.ts +1 -1
  611. package/scripts/repo/repo-setting.ts +4 -4
  612. package/scripts/repo/repository-labels.ts +1 -1
  613. package/scripts/repo/required-checks-logic.ts +3 -3
  614. package/scripts/repo/required-checks-report.ts +1 -1
  615. package/scripts/repo/ruleset-check-cli.ts +1 -1
  616. package/scripts/repo/ruleset-check.ts +1 -1
  617. package/scripts/report/report-format-reference.ts +26 -0
  618. package/scripts/report/report-lint-cli.ts +2 -2
  619. package/scripts/report/report-lint.ts +16 -2
  620. package/scripts/review/disposition-cli.ts +2 -2
  621. package/scripts/review/disposition-logic.ts +1 -1
  622. package/scripts/review/live-evidence.ts +9 -6
  623. package/scripts/review/review-attest-cli.ts +1 -2
  624. package/scripts/review/review-attest.ts +3 -3
  625. package/scripts/review/review-brief-cli.ts +19 -20
  626. package/scripts/review/review-brief.ts +29 -32
  627. package/scripts/review/review-checkout.ts +2 -2
  628. package/scripts/review/review-diff-parts.ts +3 -5
  629. package/scripts/review/review-diff-write.ts +1 -1
  630. package/scripts/review/review-finding-ledger.ts +7 -4
  631. package/scripts/review/review-findings-cli.ts +2 -2
  632. package/scripts/review/review-level.ts +4 -7
  633. package/scripts/review/review-record-cli.ts +73 -16
  634. package/scripts/review/review-record.ts +5 -4
  635. package/scripts/review/review-round2-cli.ts +2 -3
  636. package/scripts/review/review-round2.ts +13 -21
  637. package/scripts/review/review-stamps.ts +9 -71
  638. package/scripts/review/review-tree.ts +4 -5
  639. package/scripts/rules/bash-triggers.ts +4 -4
  640. package/scripts/rules/decision-oracle-batch.ts +6 -7
  641. package/scripts/rules/decision-oracle-stage.ts +1 -1
  642. package/scripts/rules/decision-oracle-tokens.ts +1 -2
  643. package/scripts/rules/decision-oracle.ts +2 -2
  644. package/scripts/rules/delivered-rules.ts +61 -406
  645. package/scripts/rules/destructive-command.ts +2 -2
  646. package/scripts/rules/direct-filing.ts +4 -4
  647. package/scripts/rules/direct-pr-create.ts +2 -2
  648. package/scripts/rules/early-heartbeat.ts +15 -19
  649. package/scripts/rules/file-body.ts +5 -6
  650. package/scripts/rules/filing-cap.ts +6 -7
  651. package/scripts/rules/filing-offer.ts +1 -1
  652. package/scripts/rules/firing-point.ts +6 -6
  653. package/scripts/rules/gh-api.ts +2 -2
  654. package/scripts/rules/git-argv.ts +3 -3
  655. package/scripts/rules/git-force.ts +2 -2
  656. package/scripts/rules/hook-context-line.ts +31 -0
  657. package/scripts/rules/implementation-cut-verdict.ts +5 -8
  658. package/scripts/rules/implementation-cut.ts +35 -32
  659. package/scripts/rules/index-guard.ts +2 -2
  660. package/scripts/rules/issue-citation.ts +7 -7
  661. package/scripts/rules/issue-comments.ts +21 -13
  662. package/scripts/rules/josh-git-bare.ts +2 -2
  663. package/scripts/rules/lane-background.ts +14 -16
  664. package/scripts/rules/lane-carry-conflict.ts +41 -5
  665. package/scripts/rules/lane-interactive-ask.ts +6 -9
  666. package/scripts/rules/lane-park.ts +12 -16
  667. package/scripts/rules/lane-split-park.ts +1 -2
  668. package/scripts/rules/lane-switch-main.ts +10 -13
  669. package/scripts/rules/last-prompt.ts +1 -1
  670. package/scripts/rules/oracle-consulted.ts +5 -5
  671. package/scripts/rules/oracle-firing.ts +6 -9
  672. package/scripts/rules/oracle-list-cli.ts +2 -2
  673. package/scripts/rules/permission-guards.ts +2 -2
  674. package/scripts/rules/piped-verification.ts +79 -9
  675. package/scripts/rules/poll-loop.ts +9 -11
  676. package/scripts/rules/pre-gate-cut.ts +33 -30
  677. package/scripts/rules/prior-comment-read.ts +3 -3
  678. package/scripts/rules/protected-files.ts +25 -13
  679. package/scripts/rules/raw-field-body.ts +3 -4
  680. package/scripts/rules/reply-language.ts +1 -1
  681. package/scripts/rules/rule-body-guard.ts +10 -12
  682. package/scripts/rules/rule-guard.ts +1 -1
  683. package/scripts/rules/rule-list.ts +51 -0
  684. package/scripts/rules/rule-registry-rows.ts +282 -0
  685. package/scripts/rules/rule-registry.ts +109 -0
  686. package/scripts/rules/rule-value-cache.ts +2 -2
  687. package/scripts/rules/rule-value-cli.ts +6 -4
  688. package/scripts/rules/rule-value.ts +61 -22
  689. package/scripts/rules/run-tail-rule.ts +11 -15
  690. package/scripts/rules/shell-body-trigger.ts +7 -7
  691. package/scripts/rules/shell-segments.ts +2 -4
  692. package/scripts/rules/stop-rules.ts +54 -41
  693. package/scripts/rules/tail-commands.ts +1 -1
  694. package/scripts/rules/test-declared-commit.ts +2 -2
  695. package/scripts/rules/third-party-write.ts +3 -3
  696. package/scripts/rules/worktree-guard.ts +12 -5
  697. package/scripts/run/add/run-add-cli.ts +165 -0
  698. package/scripts/run/add/run-add.ts +124 -0
  699. package/scripts/run/board/run-board-cli.ts +207 -0
  700. package/scripts/run/board/run-board-closed.ts +95 -0
  701. package/scripts/run/board/run-board-every.ts +60 -0
  702. package/scripts/run/board/run-board-fetch.ts +38 -0
  703. package/scripts/run/board/run-board-fit.ts +219 -0
  704. package/scripts/run/board/run-board-github.ts +162 -0
  705. package/scripts/run/board/run-board-header.ts +275 -0
  706. package/scripts/run/board/run-board-kind.ts +35 -0
  707. package/scripts/run/board/run-board-labels.ts +299 -0
  708. package/scripts/run/board/run-board-layout.ts +222 -0
  709. package/scripts/run/board/run-board-link.ts +31 -0
  710. package/scripts/run/board/run-board-machine.ts +198 -0
  711. package/scripts/run/board/run-board-notes.ts +103 -0
  712. package/scripts/run/board/run-board-phase.ts +136 -0
  713. package/scripts/run/board/run-board-plan.ts +129 -0
  714. package/scripts/run/board/run-board-read.ts +62 -0
  715. package/scripts/run/board/run-board-render-legend.ts +82 -0
  716. package/scripts/run/board/run-board-render-notes.ts +77 -0
  717. package/scripts/run/board/run-board-render-slot.ts +50 -0
  718. package/scripts/run/board/run-board-render.ts +407 -0
  719. package/scripts/run/board/run-board-scope.ts +17 -0
  720. package/scripts/run/board/run-board-screen.ts +43 -0
  721. package/scripts/run/board/run-board-span.ts +66 -0
  722. package/scripts/run/board/run-board-spin.ts +115 -0
  723. package/scripts/run/board/run-board-state.ts +113 -0
  724. package/scripts/run/board/run-board-status.ts +279 -0
  725. package/scripts/run/board/run-board-tick.ts +210 -0
  726. package/scripts/run/board/run-board-track.ts +22 -0
  727. package/scripts/run/board/run-board-usage-read.ts +255 -0
  728. package/scripts/run/board/run-board-usage-rusage.ts +124 -0
  729. package/scripts/run/board/run-board-usage-text.ts +80 -0
  730. package/scripts/run/board/run-board-usage.ts +165 -0
  731. package/scripts/run/carry/run-carry-added.ts +62 -0
  732. package/scripts/run/carry/run-carry-args.ts +25 -22
  733. package/scripts/run/carry/run-carry-change.ts +1 -1
  734. package/scripts/run/carry/run-carry-cli.ts +71 -48
  735. package/scripts/run/carry/run-carry-conversation.ts +6 -7
  736. package/scripts/run/carry/run-carry-ended.ts +85 -0
  737. package/scripts/run/carry/run-carry-reclaim.ts +1 -1
  738. package/scripts/run/carry/run-carry-stash.ts +3 -2
  739. package/scripts/run/carry/run-carry-streak.ts +8 -10
  740. package/scripts/run/carry/run-carry.ts +85 -89
  741. package/scripts/run/cut/run-cut-args.ts +7 -7
  742. package/scripts/run/cut/run-cut-cli.ts +54 -36
  743. package/scripts/run/cut/run-cut-handoff.ts +15 -15
  744. package/scripts/run/cut/run-cut-report.ts +37 -16
  745. package/scripts/run/cut/run-cut.ts +63 -77
  746. package/scripts/run/detached-launch.ts +35 -50
  747. package/scripts/run/entry/run-entry-cli.ts +48 -27
  748. package/scripts/run/entry/run-entry-stop.ts +7 -9
  749. package/scripts/run/entry/run-entry.ts +5 -6
  750. package/scripts/run/event/run-event-cli.ts +5 -6
  751. package/scripts/run/event/run-event-filed.ts +69 -0
  752. package/scripts/run/event/run-event-follow.ts +3 -3
  753. package/scripts/run/event/run-event-plan.ts +38 -0
  754. package/scripts/run/event/run-event-render.ts +9 -4
  755. package/scripts/run/event/run-event-scope.ts +47 -18
  756. package/scripts/run/event/run-event-stream-emit.ts +64 -11
  757. package/scripts/run/event/run-event-stream.ts +171 -46
  758. package/scripts/run/event/run-event-watch.ts +4 -6
  759. package/scripts/run/hold/run-hold-cli.ts +65 -62
  760. package/scripts/run/hold/run-hold.ts +88 -46
  761. package/scripts/run/merge/run-merge-cli.ts +116 -77
  762. package/scripts/run/merge/run-merge-collect.ts +107 -0
  763. package/scripts/run/merge/run-merge-steps.ts +112 -65
  764. package/scripts/run/merge/run-merge-token.ts +30 -0
  765. package/scripts/run/merge/run-merge.ts +31 -22
  766. package/scripts/run/progress/run-progress-args.ts +4 -4
  767. package/scripts/run/progress/run-progress-cli.ts +39 -50
  768. package/scripts/run/progress/run-progress-clock.ts +25 -32
  769. package/scripts/run/progress/run-progress-config.ts +6 -9
  770. package/scripts/run/progress/run-progress-read.ts +9 -10
  771. package/scripts/run/progress/run-progress.ts +48 -53
  772. package/scripts/run/review/run-review-cli.ts +6 -6
  773. package/scripts/run/review/run-review-steps.ts +6 -6
  774. package/scripts/run/review/run-review.ts +9 -11
  775. package/scripts/run/run-cli-fault.ts +29 -0
  776. package/scripts/run/run-ending-cli.ts +3 -3
  777. package/scripts/run/run-ending.ts +10 -14
  778. package/scripts/run/run-halfrun-resume.ts +6 -8
  779. package/scripts/run/run-headless.ts +26 -12
  780. package/scripts/run/run-invocation.ts +17 -22
  781. package/scripts/run/run-label.ts +7 -5
  782. package/scripts/run/run-liveness-cli.ts +19 -6
  783. package/scripts/run/run-liveness.ts +27 -38
  784. package/scripts/run/run-next-cli.ts +5 -9
  785. package/scripts/run/run-next.ts +4 -5
  786. package/scripts/run/run-parent-cut-hook.ts +10 -12
  787. package/scripts/run/run-preflight.ts +25 -29
  788. package/scripts/run/run-prep-cli.ts +17 -13
  789. package/scripts/run/run-prep-locate.ts +4 -5
  790. package/scripts/run/run-prep.ts +7 -10
  791. package/scripts/run/run-prrun-resume.ts +2 -2
  792. package/scripts/run/run-report-cli.ts +4 -4
  793. package/scripts/run/run-report.ts +9 -14
  794. package/scripts/run/run-retrospective.ts +3 -3
  795. package/scripts/run/run-section.ts +42 -0
  796. package/scripts/run/run-stage-read.ts +2 -2
  797. package/scripts/run/run-stage.ts +6 -4
  798. package/scripts/run/run-status-cli.ts +7 -5
  799. package/scripts/run/run-status.ts +6 -7
  800. package/scripts/run/run-step-cli.ts +64 -18
  801. package/scripts/run/run-step.ts +107 -51
  802. package/scripts/run/run-stop-notify.ts +7 -8
  803. package/scripts/run/run-stranded-cli.ts +1 -1
  804. package/scripts/run/run-stranded-detect.ts +4 -4
  805. package/scripts/run/run-stranded.ts +11 -13
  806. package/scripts/run/run-tail-cli.ts +15 -16
  807. package/scripts/run/run-tail.ts +14 -33
  808. package/scripts/run/run-watcher-guard-cli.ts +3 -4
  809. package/scripts/run/run-watcher-guard.ts +11 -12
  810. package/scripts/run/run-watcher-hook.ts +6 -12
  811. package/scripts/run/ship/run-ship-cli.ts +67 -33
  812. package/scripts/run/ship/run-ship-detach.ts +15 -13
  813. package/scripts/run/ship/run-ship-lock.ts +1 -1
  814. package/scripts/run/ship/run-ship-next.ts +7 -8
  815. package/scripts/run/ship/run-ship-pre-detach.ts +27 -11
  816. package/scripts/run/ship/run-ship-preflight.ts +10 -11
  817. package/scripts/run/ship/run-ship-probe.ts +4 -4
  818. package/scripts/run/ship/run-ship-return.ts +1 -1
  819. package/scripts/run/ship/run-ship-review-steps.ts +43 -24
  820. package/scripts/run/ship/run-ship-review.ts +12 -14
  821. package/scripts/run/ship/run-ship-scoped.ts +15 -6
  822. package/scripts/run/ship/run-ship-stage.ts +80 -26
  823. package/scripts/run/ship/run-ship-steps.ts +26 -16
  824. package/scripts/run/ship/run-ship-stop-text.ts +4 -2
  825. package/scripts/run/ship/run-ship-sync.ts +9 -8
  826. package/scripts/run/ship/run-ship.ts +17 -32
  827. package/scripts/run/tidy/run-tidy-cli.ts +9 -5
  828. package/scripts/run/tidy/run-tidy-lanes.ts +18 -7
  829. package/scripts/run/tidy/run-tidy-stashes.ts +8 -8
  830. package/scripts/run/tidy/run-tidy.ts +4 -3
  831. package/scripts/run/wake/run-wake-cli.ts +27 -32
  832. package/scripts/run/wake/run-wake-describe.ts +24 -28
  833. package/scripts/run/wake/run-wake-driver.ts +14 -14
  834. package/scripts/run/wake/run-wake-handoff.ts +6 -6
  835. package/scripts/run/wake/run-wake-loop.ts +9 -9
  836. package/scripts/run/wake/run-wake-restart.ts +4 -5
  837. package/scripts/run/wake/run-wake-session.ts +23 -27
  838. package/scripts/run/wake/run-wake.ts +57 -279
  839. package/scripts/safe-chain/ci-installer-pin.ts +3 -3
  840. package/scripts/safe-chain/pack-hook.ts +2 -2
  841. package/scripts/safe-chain/preinstall-command.ts +2 -2
  842. package/scripts/security/security-audit-logic.ts +1 -1
  843. package/scripts/security/security-audit-provision-logic.ts +1 -1
  844. package/scripts/security/security-audit-provision.ts +2 -2
  845. package/scripts/security/security-audit.ts +5 -5
  846. package/scripts/security/security-updates-logic.ts +2 -3
  847. package/scripts/security/security-updates.ts +2 -4
  848. package/scripts/self-sync-guard/index.ts +1 -1
  849. package/scripts/self-sync-guard/self-sync-guard-logic.ts +2 -2
  850. package/scripts/self-sync-guard/self-sync-refusal.ts +1 -1
  851. package/scripts/sonar/sonar-hotspots-cli.ts +1 -1
  852. package/scripts/sonar/sonar-hotspots.ts +1 -1
  853. package/scripts/sonar/sonar-new-code-cli.ts +1 -1
  854. package/scripts/sonar/sonar-new-code.ts +1 -1
  855. package/scripts/sonar/sonar-project.ts +1 -1
  856. package/scripts/split/split-assess-cli.ts +1 -1
  857. package/scripts/split/split-assess.ts +3 -3
  858. package/scripts/sync/directory-copy-guard.ts +2 -3
  859. package/scripts/sync/managed-config-scope-cli.ts +1 -2
  860. package/scripts/sync/managed-config-scope.ts +4 -4
  861. package/scripts/sync/plugin-skill-directories.ts +2 -2
  862. package/scripts/sync/reconcile-templates.ts +17 -8
  863. package/scripts/sync/removed-skill-manifest.ts +2 -3
  864. package/scripts/sync/sync-ai-files.ts +7 -7
  865. package/scripts/sync/sync-configs.ts +30 -3
  866. package/scripts/sync/sync-hook-safety.ts +2 -2
  867. package/scripts/sync/sync.ts +23 -10
  868. package/scripts/sync/synced-paths.ts +2 -1
  869. package/scripts/sync/workflow-pin-logic.ts +1 -1
  870. package/scripts/test/test-declared-changed.ts +4 -4
  871. package/scripts/test/test-declared-logic.ts +2 -3
  872. package/scripts/test/test-declared-match.ts +25 -4
  873. package/scripts/test/test-declared.ts +26 -9
  874. package/scripts/test/test-red-commit.ts +3 -2
  875. package/scripts/test/test-red-logic.ts +7 -14
  876. package/scripts/test/test-red.ts +12 -47
  877. package/scripts/test/test-related-scope.ts +2 -3
  878. package/scripts/test/test-related.ts +3 -3
  879. package/scripts/test/test-type-logic.ts +1 -2
  880. package/scripts/test/test-unit-guard.ts +13 -17
  881. package/scripts/test/unit-worker-share.ts +7 -8
  882. package/scripts/time-runtime/time-agent-bundles.ts +2 -4
  883. package/scripts/time-runtime/time-background.ts +17 -21
  884. package/scripts/time-runtime/time-batch-guard.ts +67 -342
  885. package/scripts/time-runtime/time-bundle-call.ts +26 -28
  886. package/scripts/time-runtime/time-bundles.ts +11 -12
  887. package/scripts/time-runtime/time-call-identity.ts +1 -1
  888. package/scripts/time-runtime/time-command-key.ts +2 -2
  889. package/scripts/time-runtime/time-density-hook.ts +8 -11
  890. package/scripts/time-runtime/time-density.ts +5 -5
  891. package/scripts/time-runtime/time-followup-stage.ts +7 -7
  892. package/scripts/time-runtime/time-format.ts +5 -5
  893. package/scripts/time-runtime/time-hook-transcript.ts +3 -3
  894. package/scripts/time-runtime/time-instant.ts +1 -1
  895. package/scripts/time-runtime/time-markers.ts +15 -19
  896. package/scripts/time-runtime/time-phase-names.ts +3 -3
  897. package/scripts/time-runtime/time-reported-failure.ts +15 -19
  898. package/scripts/time-runtime/time-round-trips.ts +20 -23
  899. package/scripts/time-runtime/time-shell.ts +8 -8
  900. package/scripts/time-runtime/time-single-check.ts +1 -2
  901. package/scripts/time-runtime/time-spans.ts +35 -40
  902. package/scripts/time-runtime/time-tool-call.ts +15 -16
  903. package/scripts/time-runtime/time-transcript-line.ts +53 -34
  904. package/scripts/time-runtime/time-writes.ts +5 -5
  905. package/scripts/ui/ui-routes-cli.ts +1 -2
  906. package/scripts/ui/ui-routes.ts +1 -2
  907. package/scripts/version/bump-version.ts +1 -1
  908. package/scripts/version/fresh-metadata-cache.ts +2 -2
  909. package/scripts/version/latest-corepack.ts +26 -26
  910. package/scripts/version/latest-lane-guard.ts +1 -1
  911. package/scripts/version/latest-scope-cli.ts +2 -2
  912. package/scripts/version/latest-stamp.ts +1 -2
  913. package/scripts/version/latest-update.ts +2 -2
  914. package/scripts/version/npm-registry.ts +2 -2
  915. package/scripts/version/package-manager-version.ts +18 -0
  916. package/scripts/version/publishable-range-check.ts +2 -1
  917. package/scripts/version/publishable-range.ts +1 -1
  918. package/scripts/version/release-age.ts +11 -11
  919. package/scripts/version/release-hold.ts +2 -2
  920. package/scripts/version/safe-chain-version-update.ts +3 -3
  921. package/scripts/version/version-check-logic.ts +2 -3
  922. package/scripts/version/version-check.ts +1 -2
  923. package/scripts/version/version-command-config.ts +2 -2
  924. package/scripts/version/version-commands.ts +3 -3
  925. package/scripts/version/version-remote.ts +4 -4
  926. package/scripts/version/version-targets.ts +2 -2
  927. package/templates/gitignore +7 -0
  928. package/dist/hooks/chunk-KHX4U3BG.js +0 -6400
  929. package/dist/hooks/chunk-RKUAD3I6.js +0 -90
  930. package/dist/hooks/chunk-WPALEIRX.js +0 -18
  931. package/scripts/backlog/backlog-restructure.ts +0 -152
  932. package/scripts/rules/issue-fold-rule.ts +0 -72
  933. package/scripts/rules/wip-cap.ts +0 -63
  934. package/scripts/run/run-issue-number.ts +0 -19
@@ -1,11 +1,9 @@
1
1
  # `backlogrun` — the manifest (named issues, epics and the opted-in backlog)
2
2
 
3
- **This file is the manifest, not the procedure** (joshuafolkken/kit#2190). It carries the ordered flow
4
- as terse triggers and pointers; the fine print of each step is read on demand from
5
- `backlogrun-steps.md`, its reference-only companion. `backlogrun-steps.md` is **not an entry read** —
6
- it is classified point-of-use in `entry-read-set.ts`, exactly as the four `backlogrun-*.md` phase
7
- documents are, so a `backlogrun` entry carries this manifest and nothing else up front
8
- (joshuafolkken/kit#2010, joshuafolkken/kit#2190).
3
+ **This file is the manifest, not the procedure**: the ordered flow as terse triggers, and the route
4
+ table naming the one section each moment reads. Rationale and provenance:
5
+ `docs/maintainers/backlogrun-rationale.md` → "Why the loop's position is computed";
6
+ `docs/maintainers/backlogrun-rationale.md` → "Where each rule came from".
9
7
 
10
8
  **`backlogrun` names either nothing, or the issues and epics to run first.** With no argument it runs
11
9
  whatever `pnpm josh backlog:next` offers — the whole opted-in backlog, every issue carrying `auto-ok`
@@ -15,12 +13,10 @@ that same backlog. **`--only` stops it after the named list**, draining nothing.
15
13
 
16
14
  **The loop's current position is computed, not carried in the conversation.** `pnpm josh run:step <N>`
17
15
  reads where the run is from the event stream, the carry record and the issue state, and prints the next
18
- single action — a runnable command, or the one point a person has to judge — so a session cut, a
19
- compaction or a fresh resume reaches the same next step from the same three inputs
20
- (joshuafolkken/kit#2248).
16
+ single action — a runnable command, or the one point a person has to judge. **With no `<N>` it answers
17
+ for the parent itself**, from the carry record alone.
21
18
 
22
- **A named item may be a single issue or an epic** (joshuafolkken/kit#1985, folding in the old
23
- `epicrun` keyword). A single-issue item is one `fullrun`; **a named epic runs its children in
19
+ **A named item may be a single issue or an epic.** A single-issue item is one `fullrun`; **a named epic runs its children in
24
20
  dependency order across the free lanes, and the run does not advance to the next named item until
25
21
  every one of that epic's children has been processed — merged or parked.** `backlogrun #E --only`
26
22
  therefore runs exactly one epic's children and stops.
@@ -33,56 +29,51 @@ is still that one invocation (`backlogrun-steps.md` → "The session cut is insi
33
29
 
34
30
  ## The manifest — the ordered flow
35
31
 
36
- Each step is a terse trigger and a pointer; the procedure is read on demand from the section named.
37
-
38
32
  1. **Claim nothing at the entry — this parent orchestrates and never implements.** The working-tree
39
33
  hold, the split assessment and `fullrun.md` are read by a dispatched child inside its own delegated
40
- `fullrun` unit (`backlogrun-child.md`), never at the parent's entry.
34
+ `fullrun` unit, never at the parent's entry.
41
35
  2. **Begin the carry record before the plan** — `pnpm josh run:carry --begin "<invocation>" --owner
42
- "$PPID"` and `pnpm josh run:wake --start`, in the same turn as the first `git switch main && git
43
- pull`. The answer table (`began` / `resumed` / `busy` / `standing` / `mismatch` / `expired` /
44
- `unreadable` / `unknown`) and the counting/hand-off/resume mechanism are
45
- `backlogrun-steps.md` → "The session cut is inside the invocation".
46
- 3. **What this invocation approves** — `backlogrun-steps.md` → "What one invocation approves": the
47
- opted-in pool, a run's own filings once bundled, and the brake (`--max`, ten filings, the WIP cap)
48
- that bounds the amount. `auto-ok` reaches a run's own filings only through `issue:file`'s default.
36
+ "$PPID"` and `pnpm josh run:wake --start`, in the same turn as the first `pnpm josh ms`.
37
+ 3. **What this invocation approves** — the opted-in pool, a run's own filings once bundled, and the
38
+ brake that bounds the amount; the route table's row points at the single source of the `auto-ok` default.
49
39
  4. **Report the plan before the first child** — `pnpm josh backlog:plan`, then resolve every
50
- `needs-decision` issue decidable from its body in one pass. In the same pass, record `blocked-by`
51
- between issues that must land in order, and apply `run:solo` where all three of the
52
- `backlogrun-lanes.md` → "Lanes — running more than one child at a time" conditions hold, `run:lane` elsewhere. `backlogrun-steps.md` → "The plan,
53
- before the first child starts" and its "Resolve what the plan can resolve, before starting".
54
- 5. **Named issues run first, in order** — `backlogrun-steps.md` → "Named issues run first, in order":
55
- the supervisor's driver dispatches each as a delegated `fullrun`, one at a time, then drains the
56
- pool; `--only` stops after the list.
57
- 6. **The loop belongs to the supervisor** — `run:wake` runs `backlog:drive`; the driver uses
58
- `pnpm josh backlog:offer` as its loop head and returns a branch to an AI session only when it needs
59
- judgment. `backlogrun-steps.md` → "The loop"
60
- fixes what a handed-back branch asks, "The two budgets" the `run` / `watch` / `stop` verdict, "The cost
61
- check is not asked during a watch", and "Where the run stops" every termination.
62
- 7. **What runs once per session, not once per issue** — `backlogrun-steps.md` → "What runs once per
63
- session, not once per issue": the per-repository preflight, `josh latest` on `required`, the
64
- progress watcher, the carry/wake pair, and the release ask.
65
- 8. **End the record when the run ends** — the driver's finish path runs `run:report` before
66
- `run:carry --end` (or `--end --stopped "<reason>"`). The supervisor then observes that the record
67
- ended and exits; a judgment branch hands its reason and resume flags to the AI session.
68
- `backlogrun-steps.md` → "End the record when the run ends" is the single source.
69
-
70
- ## Running a child — read the phase document at its point of use
71
-
72
- Everything about *running one child* — of a named epic or of the opted-in pool — lives in four phase
73
- documents, split out so the entry read carries only what binds before the first child
74
- (joshuafolkken/kit#2010). **None of the four is an entry read.** Each is read in full, in the turn the
75
- named step reaches it, exactly as `backlogrun-steps.md` and the shared gate documents
76
- (`chain-rule.md` / `latest-gate.md` / `followup.md` / `background-commands.md`) are
77
- (`SKILL.md` → §1, "Four documents are read at the point of use"):
78
-
79
- | Read | In full, before | What it carries |
80
- | --- | --- | --- |
81
- | `backlogrun-child.md` | dispatching the first child (`pnpm josh delegate epic-child`, `pnpm josh lane:dispatch`) | the shared per-child `fullrun`, a bare non-epic `#N`, the delegated unit and its summary bound, liveness recovery, and the once-per-session setup (audit, `josh latest`, preflight) |
82
- | `backlogrun-lanes.md` | opening the first lane (`pnpm josh lane:open`) | the per-repository lane ceiling and the lane lifecycle, and how a merge conflict is resolved |
83
- | `progress-watcher.md` | starting the progress watcher (`pnpm josh run:progress --wait`) | the heartbeat, shared with every implementing run |
84
- | `backlogrun-progress.md` | dispatching the first child and the hand-off check at a merge (`pnpm josh cost --cut`) | the hand-off and the cut/resume, waiting without waiting forever, and the end-of-run summary and propagate |
85
- | `backlogrun-park.md` | a child cannot finish | park-and-continue, the `needs-human-review` stop, a stale `in-progress`, a prerequisite discovered mid-run, and a mid-run split |
40
+ `needs-decision` issue decidable from its body in one pass, recording `blocked-by`, `run:solo` and
41
+ `run:lane` in the same pass.
42
+ 5. **Named issues run first, in order** — each as a delegated `fullrun`, one at a time, then the pool;
43
+ `--only` stops after the list.
44
+ 6. **The loop belongs to the supervisor — hand it over with what the bare `pnpm josh run:step`
45
+ prints**, whatever the plan held: `run:wake` runs `backlog:drive`, which returns a branch to an AI
46
+ session only when it needs judgment.
47
+ 7. **End the record when the run ends** — `run:report`, then `run:carry --end` (or `--end --stopped
48
+ "<reason>"`) and `run:wake --stop`. An empty plan is not that end; the driver's idle watch decides it.
49
+
50
+ ## The route table
51
+
52
+ **Read one section, at the moment its row names, with `pnpm josh doc:section <file> "<heading>"`** —
53
+ never a whole document (`SKILL.md` → "A section reference is read as a section"):
54
+
55
+ | The moment | Read |
56
+ | --- | --- |
57
+ | The entry: the carry record and its answers | `backlogrun-steps.md` → "The session cut is inside the invocation" |
58
+ | What the invocation may merge, and the `auto-ok` default | `backlogrun-steps.md` → "What one invocation approves" |
59
+ | Before the first child: the plan and the decision pass | `backlogrun-steps.md` → "The plan, before the first child starts" |
60
+ | The driver hands a branch back | `backlogrun-steps.md` → "The loop" |
61
+ | Once per session | `backlogrun-steps.md` → "What runs once per session, not once per issue" |
62
+ | `josh latest:scope` answers `required` | `latest-gate.md` (whole) |
63
+ | Starting the progress watcher | `progress-watcher.md` → "Progress while the run is quiet" |
64
+ | The run ends | `backlogrun-steps.md` → "End the record when the run ends" |
65
+ | Labelling an issue `run:solo` | `backlogrun-lanes.md` → "A solo run" |
66
+ | Before the first lane opens | `backlogrun-lanes.md` → "Once per repository, before the first lane opens" |
67
+ | Opening a lane by hand | `backlogrun-lanes.md` → "Opening one lane and dispatching its child" |
68
+ | The first child is in hand | `backlogrun-child.md` → "`josh latest` runs once per session, not once per child" |
69
+ | Dispatching a child | `backlogrun-child.md` → "Each child runs in a delegated unit" |
70
+ | An `epic #N` hand-back, a `merge` branch, or a `run:merge` token | `backlogrun-progress.md` → "Running a named epic's children" |
71
+ | A merge answered `over` | `backlogrun-progress.md` → "The hand-off" |
72
+ | A resumed session | `backlogrun-progress.md` → "Resuming after a cut" |
73
+ | The run's last merge | `backlogrun-progress.md` → "Who sends the summary, and who propagates" |
74
+ | `josh release:scope`, after the last merge | `followup.md` → "When `pnpm josh release` runs" |
75
+ | A unit went silent | `backlogrun-recovery.md` → "A delegated unit that stopped without reporting" |
76
+ | A child cannot finish | `backlogrun-park.md` → "park and continue" |
86
77
 
87
78
  ## Guards
88
79
 
@@ -97,7 +88,7 @@ A failure that is not consecutive parks its child and the run continues.
97
88
  ## This file is the single source of the `backlogrun` procedure
98
89
 
99
90
  `CLAUDE.md` carries the keyword's row in the shorthand table and the explicit-invocation rule;
100
- `SKILL.md` → §1 routes here. This manifest names which children there are and in what order; the
101
- procedure for each step is `backlogrun-steps.md`, and *running one child* is the four phase documents
102
- above. Where any of them could disagree, the rule is that this manifest and `backlogrun-steps.md` add
103
- nothing to a child's procedure — they only say which children there are.
91
+ `SKILL.md` → §1 routes here. This manifest names which children there are and in what order; each
92
+ step's procedure is the section its route-table row names. Where any of them could disagree, the rule
93
+ is that this manifest and `backlogrun-steps.md` add nothing to a child's procedure — they only say
94
+ which children there are.
@@ -2,22 +2,21 @@
2
2
 
3
3
  ## Run the review-to-merge chain
4
4
 
5
- This is the execution contract for `fullrun` and `backlogrun`; the record below is reference only.
5
+ This is the execution contract for `fullrun` and `backlogrun`, and for `prrun` up to the pull request: a `prrun` never issues `pnpm josh ship` or a merging `pnpm josh followup` — it opens the pull request with `pnpm josh git -y` and ends by `prrun.md` → "The difference — the end of the run". The record below is reference only.
6
6
  Review results and successful pushes are never turn boundaries.
7
7
 
8
- 0. **A lane child** (#2428): `pnpm josh main:merge`, the scoped pair, `pnpm josh ship --detach --review
8
+ 0. **A lane child**: `pnpm josh main:merge`, the scoped pair, `pnpm josh ship --detach --review
9
9
  "<title> #<N>"` (`--cite <N>`), then **end the turn** on `launched`/`busy`. A stop relaunches a child
10
- whose prompt names `pnpm josh ship --log <N>` and (Anthropic lane, #2964) the re-detach to run after
10
+ whose prompt names `pnpm josh ship --log <N>` and (Anthropic lane) the re-detach to run after
11
11
  the fix — `pnpm josh ship --detach`, `--review` only if the stopped ship carried it and stopped before
12
12
  round 2, which is final (`scripts/run/ship/run-ship-next.ts`); the supervisor skips a recorded round 1.
13
13
  `failed` → step 1. A backgrounded `ship` issued alone is moved to the foreground by the hook
14
- rather than refused (#3154).
14
+ rather than refused.
15
15
  1. Run `pnpm josh main:merge`. **Then issue `pnpm josh run:cut <N>` alone, before the scoped pair and
16
- the gate** — the pre-gate cut (a no-op outside a lane, joshuafolkken/kit#2177). Then run the final scoped lint/test pair and `pnpm josh run:review`: it starts
17
- `pnpm josh gate` in the background and prints the `/code-review` brief in one call, so the two overlap
18
- rather than the review waiting on the gate (joshuafolkken/kit#2179). Launch the `/code-review`
19
- subagent as the `general-purpose` agent type with that brief (every tool, so `--fix` applies; a
20
- guessed type name fails, joshuafolkken/kit#2297).
16
+ the gate** — the pre-gate cut (a no-op outside a lane). Then run the final scoped lint/test pair and
17
+ `pnpm josh run:review`: it starts `pnpm josh gate` in the background and prints the `/code-review`
18
+ brief in one call, so the two overlap. Launch the `/code-review` subagent as the `general-purpose`
19
+ agent type with that brief (every tool, so `--fix` applies; never a guessed type name).
21
20
  Never load the review skill in the main line.
22
21
  2. Once the review returns, run `pnpm josh run:review --join` to join and read the gate before
23
22
  committing; it exits non-zero on a red gate. Fix any red check, then rerun the affected scoped check
@@ -34,14 +33,15 @@ Review results and successful pushes are never turn boundaries.
34
33
  of remaining non-High findings; a confirmed High blocks and receives a `confirmation` Telegram.
35
34
  Any round-1 fix runs its affected scoped check and the gate before `git -y`.
36
35
  Once a round's verdict is attested, record its findings with `pnpm josh review:record --issue <N>
37
- [<category>:<severity>:<file> ...]` — a clean round records one zero-finding line.
36
+ [<category>:<severity>:<file> ...]` — a clean round records one zero-finding line. **A round 2 that
37
+ passes takes `--comment`** (`observation-ledger.md` → "The commit path").
38
38
  **`pnpm josh followup` refuses the merge until the round is recorded**
39
- (`pnpm josh review:record --check --issue <N>`, joshuafolkken/kit#2343).
39
+ (`pnpm josh review:record --check --issue <N>`).
40
40
  5. **The clean path ships in one call** — with no second round due, background
41
- `pnpm josh ship "<title> #<N>" --body-file <evidence.md>`: PR preflight (#2946) → gate → `git -y` →
42
- `followup` → `run:tail`, stopping at the first failure (#2398). `--review` runs both rounds (#2489). **Else a due round 2
43
- does not fit `ship`**: the PR opens between the rounds — background `pnpm josh git -y "<title> #<N>"`, round 2 beside CI, then
44
- `pnpm josh followup`.
41
+ `pnpm josh ship "<title> #<N>" --body-file <evidence.md>`: PR preflight → gate → `git -y` →
42
+ `followup` → `run:tail`, stopping at the first failure. `--review` runs both rounds. **Else a due
43
+ round 2 does not fit `ship`**: the PR opens between the rounds — background
44
+ `pnpm josh git -y "<title> #<N>"`, round 2 beside CI, then `pnpm josh followup`.
45
45
 
46
46
  A lane child may end once, at step 0 or the pre-gate cut (`pre-gate-cut.md`); never at the push. The chain otherwise stops only when the PR is merged, the completion Telegram was sent, and
47
47
  `pnpm josh ms` returned to the default branch, or when user judgment is required by an unverifiable
@@ -51,51 +51,47 @@ Recommendations are informational; severity decides. A CodeRabbit rate-limit war
51
51
 
52
52
  ## Orchestration facts single-sourced here
53
53
 
54
- These are the gate → review → PR → merge facts other documents cite. This file is their single source
55
- (joshuafolkken/kit#1927 moved them out of `prompts/review.md`, which now carries only the review
56
- _policy_ — level, round cap, disposition — and `prompts/review-rubric.md` the rubric). Each is stated
57
- once here; the measurements that motivated each one live in the linked Issues.
54
+ These are the gate → review → PR → merge facts other documents cite; this file is their single source
55
+ (`prompts/review.md` carries the review _policy_, `prompts/review-rubric.md` the rubric). Where each
56
+ rule came from and why it holds: `docs/maintainers/chain-rule-rationale.md` → "Where each rule came
57
+ from", `docs/maintainers/chain-rule-rationale.md` → "Why the orchestration facts hold".
58
58
 
59
59
  - **The gate runs beside this review, not in front of it** — `pnpm josh gate` is started when the review
60
- starts and joined before the commit; the two read the same tree and neither writes to it, so running
61
- them serially is pure waiting. A red gate is fixed and re-run whatever the review concluded, and there
62
- is no path to a commit on a gate nobody read (joshuafolkken/kit#1242).
60
+ starts and joined before the commit. A red gate is fixed and re-run whatever the review concluded, and
61
+ there is no path to a commit on a gate nobody read.
63
62
  - **origin/main is merged in before the gate** — `pnpm josh main:merge` merges `origin/<default>` into
64
- the branch before the gate and the review start, so the gate verifies the tree that will actually
65
- merge rather than one that never existed (joshuafolkken/kit#1837). It is the last edit, so the scoped
66
- pair and the gate run once over it. A conflict here fires `backlogrun-recovery.md` → "Conflicts are not predicted"
67
- early. **This is the one place a conflicted merge's procedure is written** (joshuafolkken/kit#2445):
63
+ the branch before the gate and the review start. It is the last edit, so the scoped pair and the gate
64
+ run once over it. A conflict here fires `backlogrun-recovery.md` → "Conflicts are not predicted"
65
+ early. **This is the one place a conflicted merge's procedure is written**:
68
66
  `main:merge` refuses before merging when uncommitted changes touch a path the default branch also
69
67
  changed, or when the index still holds unresolved or staged paths — commit the work first with
70
- `pnpm josh git -y`, then rerun it, and **never stash around the merge** (a stash reapplied over it
71
- leaves `UU` in the index). A merge that stops on a conflict is finished the same way: remove the
72
- markers, then `pnpm josh git -y` stages the resolution and records the merge commit. That commit is
73
- the sanctioned flow, so it is **Tier A** — a lane child never stops to ask a person for `git add`, and
74
- the `Stop` hook sends back a reply that does.
68
+ `pnpm josh git -y`, then rerun it, and **never stash around the merge**. A merge that stops on a
69
+ conflict is finished the same way: remove the markers, then `pnpm josh git -y` stages the resolution
70
+ and records the merge commit. That commit is the sanctioned flow, so it is **Tier A** — a lane child
71
+ never stops to ask a person for `git add`, and the `Stop` hook sends back a reply that does.
75
72
  - **A single check answers once per tree** — while implementing, re-run a single check by name
76
73
  (`pnpm josh lint:related`, `pnpm josh cspell:dot`, `pnpm josh test:related`, or the project's type
77
74
  check) after every edit; a repeat of the same command with the same arguments over a tree nothing has
78
- touched since buys only a copy of the answer already in hand (joshuafolkken/kit#1383).
75
+ touched since buys only a copy of the answer already in hand. In kit a detached `pnpm josh ship` also
76
+ checks the metrics totals before the hand-off, so the implementing session accepts a grown total with
77
+ its reason, as the ship's output names.
79
78
  - **The pull request opens between the rounds, so CI runs beside round 2** — `pnpm josh git -y` sits
80
79
  between the two review rounds. Round 1 runs on the uncommitted tree and its High/Medium findings are
81
80
  fixed before anything is committed; the verification pass over those fixes then runs against the open
82
- pull request, beside the CI the commit started (joshuafolkken/kit#1261).
81
+ pull request, beside the CI the commit started.
83
82
  - **The round-2 fix commit is pushed before its gate** — a fix the second round makes in place is
84
83
  pushed (`pnpm josh git -y` again, a follow-up commit) before its `pnpm josh gate`, so the gate runs
85
- inside the CI wait and is joined before `pnpm josh followup` rather than in front of it
86
- (joshuafolkken/kit#1326). The commit and pre-push hooks and CI's `Checks` job mean pushing first is
87
- not pushing unverified code.
84
+ inside the CI wait and is joined before `pnpm josh followup` rather than in front of it.
88
85
  - **A clean second round issues the merge in the same turn** — the turn that reads a clean second round
89
86
  issues `pnpm josh followup`, after any branch-2 filing and `pnpm josh epic:bundle` and never in a turn
90
87
  of its own. Clean has two halves: no confirmed High is standing, and nothing was routed to branch 1 of
91
- the disposition (joshuafolkken/kit#1333).
88
+ the disposition.
92
89
  - **The review runs in a subagent, never a main-line skill load** — `/code-review` is spawned through
93
- the `Agent` tool in its own context, as the agent type step 1 names; a mid-run `Skill` load rewrites
94
- the whole cached prompt prefix, which is what makes it expensive (joshuafolkken/kit#1855).
90
+ the `Agent` tool in its own context, as the agent type step 1 names.
95
91
  - **The brief names the checkout, and a review that read another one is refused** — `pnpm josh
96
92
  review:brief` prints the checkout root, branch and HEAD and a nonce; the review runs `pnpm josh
97
93
  review:attest <nonce>` from the tree it read, and `pnpm josh review:attest --check` must answer `ok`
98
- before the run or `pnpm josh followup` acts on the verdict, or it is discarded (joshuafolkken/kit#1522).
94
+ before the run or `pnpm josh followup` acts on the verdict, or it is discarded.
99
95
 
100
96
  This file is the single source of the gate → review → PR → merge chain rule; other documents reference
101
97
  it rather than restating it. `prompts/collaboration-workflow/plan-comment.md` keeps Step 3.
@@ -1,12 +1,12 @@
1
1
  # The entry sequence and the stop branches — shared by `fullrun`, `halfrun` and `prrun`
2
2
 
3
- **This file is the part of the three implementing manifests that is one procedure**
4
- (joshuafolkken/kit#3174). `fullrun.md`, `halfrun.md` and `prrun.md` name only how their own run
5
- differs from it; `pnpm josh run:step <N>` prints the run's next single action.
3
+ `fullrun.md`, `halfrun.md` and `prrun.md` name only how their own run differs from this shared
4
+ procedure; `pnpm josh run:step <N>` prints the run's next single action. History:
5
+ `docs/maintainers/entry-sequence-rationale.md` → "Where each rule came from".
6
6
 
7
7
  ## The ordered entry sequence
8
8
 
9
- **One call folds the mechanical steps** (joshuafolkken/kit#2372): `pnpm josh run:entry <N> --to
9
+ **One call folds the mechanical steps**: `pnpm josh run:entry <N> --to
10
10
  <command>` claims the tree, reads the budget, bundles the reads and decides the pre-implementation
11
11
  step — steps 1, 3, 4 and 5 below in one round trip. Its `stage #<N>` line says where the run starts
12
12
  (`start: reached` redoes nothing — stop), and its `entry #<N> — hold: … · cost: … · verdict: …` line
@@ -33,7 +33,7 @@ short-circuits with a non-zero exit. The numbered steps are the detail behind ea
33
33
  dependency scope in one report; a `new` entry runs it once filed. The comment stops, the
34
34
  `human_review` stop (`needs-human-review.md`) and the dependency decision are read off it.
35
35
  5. **Print the next action — `pnpm josh run:step <N>`** — and follow it into the command's step list.
36
- Before implementing, `git switch main && git pull`, then `pnpm josh latest:scope` — update
36
+ Before implementing, `pnpm josh ms`, then `pnpm josh latest:scope` — update
37
37
  dependencies only on `required` (`latest-gate.md`), never on every run. `run:step` names every later
38
38
  action in order, each read at the point-of-use document `SKILL.md` lists, never re-narrated here
39
39
  (`residency.md` → "順序の問い").
@@ -54,7 +54,7 @@ lane child starts none and never reads that document (`pnpm josh read:set lane-c
54
54
  - **A prerequisite** — file it (`route:tier-a`), stash, record the dependency, and **STOP** with
55
55
  "Please run `backlogrun #<E> --only` to execute this epic"; `prerequisite.md` is the single source of
56
56
  the filing, the `-u` stash and the epic:bundle branch.
57
- - **An observation** — file it without asking and carry on; `observation-filing.md`.
57
+ - **An observation** — `observation-filing.md` (ask first if interactive).
58
58
 
59
59
  **Automatic filing is capped at 10 Issues per run.** On reaching it, stop and report.
60
60
 
@@ -3,7 +3,8 @@
3
3
  Everything between a green CI and a merged PR: the command, the merge it authorizes, the notifications,
4
4
  the reviewer scan, the config report and the release ask. `fullrun` and `backlogrun` end here;
5
5
  `halfrun` never reaches this file, because it stops before the commit. This file is the single source
6
- of the rule (joshuafolkken/kit#3176 merged the former post-execution reference into it).
6
+ of the rule. Where each rule came from: `docs/maintainers/followup-rationale.md` → "Where each rule
7
+ came from".
7
8
 
8
9
  ## Run `pnpm josh followup`
9
10
 
@@ -19,10 +20,10 @@ bullets. Use the file option whenever it contains a command or path.
19
20
  It waits for required CI, checks CodeRabbit and top-level AI review comments, sends the completion
20
21
  Telegram, merges by default, posts the Issue report, closes completed epics, removes `in-progress`,
21
22
  and releases the hold. Only `--no-merge` stops the merge; `--merge` is a deprecated no-op. **A pull
22
- request already merged by hand** (a `prrun` stop, joshuafolkken/kit#3023) skips the CI wait, the AI
23
- review scan and the merge and runs only the post-merge tail; a completion report already on the Issue
24
- is not posted or notified twice, so re-running is safe. Keep the default Issue target. Ignore a
25
- finding only after verifying it is inapplicable; rate-limit text is not a finding.
23
+ request already merged by hand** (a `prrun` stop) skips the CI wait, the AI review scan and the merge
24
+ and runs only the post-merge tail; a completion report already on the Issue is not posted or notified
25
+ twice, so re-running is safe. Keep the default Issue target. Ignore a finding only after verifying it
26
+ is inapplicable; rate-limit text is not a finding.
26
27
 
27
28
  **A red rate-limited CodeRabbit check is cleared by a retrigger, not a bypass.** Wait out the window
28
29
  the rate-limit comment states, post `@coderabbitai review` on the pull request, and rerun `followup`.
@@ -55,7 +56,7 @@ Invoking `fullrun` is itself the explicit authorization to merge; the user adds
55
56
 
56
57
  - **Always run `pnpm josh ms` after a successful merge** — it returns the tree to the default branch
57
58
  with the merge commit pulled. **In a lane, `pnpm josh lane:close <N>` is the terminal step instead**:
58
- git allows one branch per work tree, so `josh ms` refuses there, and the refresh is the parent's.
59
+ `josh ms` refuses there, and the refresh is the parent's.
59
60
  - **Green CI is not authorization to merge while AI review findings are open.** On a blocker
60
61
  `followup` sends a `confirmation` Telegram and exits non-zero — fix and re-run. SonarCloud is not
61
62
  scanned here; the required `SonarQube` check carries it.
@@ -90,13 +91,12 @@ no longer bumps, so `package.json` names the previous release. What the run does
90
91
  ## Reading the stage-timing block
91
92
 
92
93
  The command closes with one `followup stage: <name> <seconds>` row per stage and a
93
- `followup stages total:` line (joshuafolkken/kit#1349), so where it spent its time is read, not
94
- guessed.
94
+ `followup stages total:` line, so where it spent its time is read, not guessed.
95
95
 
96
96
  - **A failed run prints it too**, up to the stage that threw, named `interrupted` — a short block is
97
97
  the run stopping early, not the printer breaking. The `merge` row appears only on a run that merged.
98
- - **A row named `<a>-and-<b>` is a batch of requests sent together** (joshuafolkken/kit#1446);
99
- `checks-wait` is never overlapped, because it is the merge gate.
98
+ - **A row named `<a>-and-<b>` is a batch of requests sent together**; `checks-wait` is never
99
+ overlapped, because it is the merge gate.
100
100
  - **The total is the sum of the stages**, not the wall clock — the post-merge tail (record clears, the
101
101
  hold release, the next-issue listing) sits outside it.
102
102
 
@@ -116,25 +116,24 @@ posted after CI goes green is not silently shipped.
116
116
  N > 0. Rate-limit notices and sign-offs (`All issues resolved ✓`) match nothing.
117
117
  - **A standing blocker without `--ai-review-ignore-reason`** sends a `confirmation` Telegram and exits
118
118
  non-zero; with it, the reason is posted to the PR and the run proceeds.
119
- - **A comment listing that could not be read is a standing blocker** (joshuafolkken/kit#973) — never
120
- an empty listing that passes.
121
- - **Temporary (kit#753)**: CodeRabbit is non-blocking end to end — out of the default required checks
119
+ - **A comment listing that could not be read is a standing blocker** — never an empty listing that
120
+ passes.
121
+ - **Temporary**: CodeRabbit is non-blocking end to end — out of the default required checks
122
122
  (restore via `JOSH_REQUIRED_CHECKS`), its actionable count and unreadable line-comment listing are
123
- audit notes rather than blockers. Revert together with kit#752.
123
+ audit notes rather than blockers. When it is reverted:
124
+ `docs/maintainers/followup-rationale.md` → "The temporary CodeRabbit exemption".
124
125
 
125
126
  ## Config file reporting
126
127
 
127
128
  `followup` matches every changed path against what `josh sync` distributes (`AI_COPY_FILES`,
128
129
  `AI_COPY_FILE_MAPPINGS`, `AI_COPY_DIRECTORIES`, `SYNCED_PATHS`) and **reports** the claimed paths in the
129
- completion notification and the Issue report (joshuafolkken/kit#1578). **It stops nothing**
130
- (joshuafolkken/kit#1592): in kit every skill or prompt change is a distributed path, so a stop here
131
- only stopped the work its own acceptance criteria ordered. `pnpm josh sync:scope` gives the same
132
- answer on demand; there is no flag to pass.
130
+ completion notification and the Issue report. **It stops nothing**
131
+ (`docs/maintainers/followup-rationale.md` → "Why config claims are reported, not stopped").
132
+ `pnpm josh sync:scope` gives the same answer on demand; there is no flag to pass.
133
133
 
134
134
  ## When `pnpm josh release` runs
135
135
 
136
- **The release point is a position plus a command's answer, never a judgement**
137
- (joshuafolkken/kit#1582).
136
+ **The release point is a position plus a command's answer, never a judgement.**
138
137
 
139
138
  **The position: once per invocation, after the last merge** — a lone `fullrun`'s only one, a
140
139
  `backlogrun`'s **last** child, never once per child. In a lane the parent asks it, in the primary
@@ -1,9 +1,8 @@
1
1
  # `fullrun` — the step lists and the branches
2
2
 
3
- **This is the detailed procedure behind `fullrun.md`'s manifest, relocated here so the entry read
4
- carries the manifest, not the prose** (joshuafolkken/kit#2189). `fullrun.md` is the resident manifest;
5
- it routes here for the fine print of a step, read on demand — `pnpm josh run:next <N>` names which step
6
- the run is at, and the sections below carry that step in full.
3
+ **The detailed procedure behind `fullrun.md`'s manifest**, read on demand — `pnpm josh run:next <N>`
4
+ names which step the run is at, and the sections below carry that step in full. History:
5
+ `docs/maintainers/fullrun-steps-rationale.md` → "Where each rule came from".
7
6
 
8
7
  ## The `fullrun #N` step list
9
8
 
@@ -15,28 +14,26 @@ budget allowed the run, and `run:release <N>` takes it back off → Read Issue #
15
14
  derive a better English title and `gh api -X PATCH repos/{owner}/{repo}/issues/<N> -f title="<title>"`)
16
15
  → post the agreed plan only if the Issue body is blank (`gh api -X PATCH
17
16
  repos/{owner}/{repo}/issues/<N> -f body="<plan>"`); if the body already has content, skip the
18
- plan-posting step → **emit the plan event**: `pnpm josh run:event --append plan "planned #<N>"` (a no-op
19
- outside a run; no cut follows it — a lane child's context is bounded by the threshold-gated
20
- implementation cut alone, joshuafolkken/kit#2489)
21
- → implement → run the **verification gate** (the full procedure is `chain-rule.md`;
17
+ plan-posting step → implement (the `plan` event `run:board` draws 📝 from is written by code — by
18
+ `run:entry` for a `run:planned` issue, else at the first implementation edit — never by hand; no cut
19
+ follows the plan — a lane child's context is bounded by the
20
+ threshold-gated implementation cut alone) → run the **verification gate** (the full procedure is `chain-rule.md`;
22
21
  in outline: refactor → `pnpm josh main:merge` → **a dispatched lane child hands the rest to
23
- `pnpm josh ship --detach --review "<title> #<N>"` and ends its turn** (`chain-rule.md` step 0,
24
- joshuafolkken/kit#2428) → otherwise `pnpm josh run:cut <N>` (the pre-gate cut, before the gate; a no-op
22
+ `pnpm josh ship --detach --review "<title> #<N>"` and ends its turn** (`chain-rule.md` step 0) → otherwise `pnpm josh run:cut <N>` (the pre-gate cut, before the gate; a no-op
25
23
  outside a lane) → start `pnpm josh gate` and a subagent `/code-review`
26
24
  with the brief `pnpm josh review:brief` prints on `git diff main`, join the gate before the commit,
27
25
  iterate to no high/medium findings, within the round cap (`prompts/review.md`) → **the clean path folds the ship region into
28
26
  one call**, `pnpm josh ship "<title> #<N>"` (gate → commit/push/PR → the CI-wait `followup` → the
29
- `run:tail` report bookkeeping, stopping at the first failed step; joshuafolkken/kit#2398), with any
27
+ `run:tail` report bookkeeping, stopping at the first failed step), with any
30
28
  branch-2 filing (`pnpm josh issue:file`, which runs `epic:bundle` itself) run before it → **when a second round is due `ship` does not
31
29
  fit**: open the PR between the rounds with `pnpm josh git -y "<title> #<N>"`, run round 2 beside CI, then
32
30
  `pnpm josh followup` and `pnpm josh run:tail <N>`). Issue plan comments are written in the session language (`JOSH_SESSION_LANG`,
33
- default `ja`). Before implementing, run `git switch main && git pull`, then `pnpm josh latest:scope`
31
+ default `ja`). Before implementing, run `pnpm josh ms`, then `pnpm josh latest:scope`
34
32
  and update dependencies only on `required` — `latest-gate.md` is its single source, and on `required`
35
- load the `dependency-update` skill afterwards. **A dispatched lane child skips the `git switch main &&
36
- git pull`**: `git switch main` is refused in a lane (the primary checkout holds the default branch, so
37
- the switch fails with `already used by worktree`), the lane was branched from a fresh default before it
38
- opened, and the latest default is brought in during the gate by `pnpm josh main:merge`. The parent runs
39
- `git switch main && git pull` in the primary checkout, never the child — `backlogrun-lanes.md` and
33
+ load the `dependency-update` skill afterwards. **A dispatched lane child skips `pnpm josh ms`** — it
34
+ refuses in a lane, and `pnpm josh main:merge` brings the latest default in during the gate
35
+ (`docs/maintainers/fullrun-steps-rationale.md` → "Why a lane child skips `josh ms`"). The parent runs
36
+ `pnpm josh ms` in the primary checkout, never the child — `backlogrun-lanes.md` and
40
37
  `backlogrun-child.md` are the single sources. When running `pnpm josh followup`, pass an
41
38
  implementation summary via `--notify-message` in the session language, leading with the three
42
39
  plain-language lines: `"Implemented <title>\nCause: ...\nFix: ...\nResult: ...\n\nDetails:\n-
@@ -48,15 +45,15 @@ primary checkout; a Claude run keeps it.
48
45
  ## The `fullrun new` step list
49
46
 
50
47
  `kickoff new` + `fullrun #N` in one run. Steps: (1) Derive an English title, or use the provided one.
51
- (2) Create Issue: `pnpm josh issue:file "<title>" --body-file <body-file> --depth <n>` (per
48
+ (2) Create Issue: `pnpm josh issue:file "<title>" --body-file <body-file> --depth <n> --requested`,
49
+ with the labels `kickoff.md` → "Words typed after `new`" maps (per
52
50
  `prompts/collaboration-workflow/issue-template.md`) — its duplicate scan runs first, and a candidate
53
51
  that covers the same work stops the run rather than filing a second Issue (`issue-scout.md`). Capture
54
52
  `<N>`. (3) Add `in-progress` (the bare hold named no issue):
55
53
  `gh api repos/{owner}/{repo}/issues/<N>/labels -f 'labels[]=in-progress'`. (4) Post the agreed plan
56
54
  in the session language: fill the body if blank,
57
55
  otherwise add a comment. (5) If the working tree already has staged or modified files,
58
- `git stash push -m "fullrun new: pre-existing changes" -- ':!.josh/observations'` first
59
- (joshuafolkken/kit#2919). (6) `git switch main && git pull`. (7)
56
+ `git stash push -m "fullrun new: pre-existing changes" -- ':!.josh/observations'` first. (6) `pnpm josh ms`. (7)
60
57
  `pnpm josh latest:scope`; on `required` run `josh latest` and load the `dependency-update` skill; on
61
58
  `skip` neither runs (`latest-gate.md` is the single source). If you stashed in (5),
62
59
  `pnpm josh stash:pop "fullrun new: pre-existing changes"` — by message, never a positional `git stash
@@ -70,7 +67,7 @@ before its gate. (12) File whatever the review round cap routed to branch 2 with
70
67
  (it runs `epic:bundle` on each), and where (9a) answered `skip` record the skip on the Issue. (13) **Where no second
71
68
  round was due** (9a `skip`), fold steps (10)–(13) and the release bookkeeping into one call — `pnpm josh
72
69
  ship "<title> #<N>" --notify-message "..."` (gate → commit/push/PR → the CI-wait `followup` → `run:tail`,
73
- stopping at the first failed step; joshuafolkken/kit#2398); **where a second round ran**, the PR opened
70
+ stopping at the first failed step); **where a second round ran**, the PR opened
74
71
  at (11) and the region stays separate — `pnpm josh followup "<title> #<N>" --notify-message "..."` then
75
72
  `pnpm josh run:tail <N>`. (14) **After the merge, run `pnpm josh ms`.** (15) **Ask `pnpm josh
76
73
  release:scope` and close the completion summary with what it answered** (`followup.md` →
@@ -78,12 +75,11 @@ release:scope` and close the completion summary with what it answered** (`follow
78
75
 
79
76
  ## The release ask — the last step of either form
80
77
 
81
- **One call folds the post-merge bookkeeping** (joshuafolkken/kit#2372): after the merge, `pnpm josh
82
- run:tail <N>` commits ledger lines written outside any issue's run (`observations:flush`,
83
- joshuafolkken/kit#2919), reads the completion citations
84
- (`issue:cite`, given the closed issue and any follow-ups filed this run) and decides the release scope
85
- (`release:scope`) in one round trip, joining each under its own header. **On the clean path `run:tail`
86
- runs inside `pnpm josh ship`** as its report step (joshuafolkken/kit#2398), so it is a standalone call
78
+ **One call folds the post-merge bookkeeping**: after the merge, `pnpm josh
79
+ run:tail <N>` commits ledger lines written outside any issue's run (`observations:flush`), reads the
80
+ completion citations (`issue:cite`, given the closed issue and any follow-ups filed this run) and
81
+ decides the release scope (`release:scope`) in one round trip, joining each under its own header. **On
82
+ the clean path `run:tail` runs inside `pnpm josh ship`** as its report step, so it is a standalone call
87
83
  only where a second round kept the ship region separate. It folds only bookkeeping — the
88
84
  release ask below stays the single source of what `required` means and the Tier-C publish boundary; a
89
85
  `backlogrun` child still leaves `observations:flush`, `issue:cite` and the release ask to the batch's
@@ -1,11 +1,11 @@
1
1
  # `fullrun` — the manifest (plan → implement → PR → merge → notify)
2
2
 
3
- **This file is the manifest, not the procedure** (joshuafolkken/kit#2189). The entry sequence and
4
- the stop branches are `entry-sequence.md`, shared with `halfrun` and `prrun` (joshuafolkken/kit#3174);
5
- this file names only what is `fullrun`'s own. `pnpm josh run:step <N>` prints the run's next single
6
- action. `chain-rule.md`, `followup.md`, `background-commands.md` and `latest-gate.md` are **not entry
7
- reads** — each is fetched at its point of use. The step lists are `fullrun-steps.md`, read when a step
8
- needs its detail.
3
+ **This file is the manifest, not the procedure.** The entry sequence and the stop branches are
4
+ `entry-sequence.md`, shared with `halfrun` and `prrun`; this file names only what is `fullrun`'s own.
5
+ `pnpm josh run:step <N>` prints the run's next single action. `chain-rule.md`, `followup.md`,
6
+ `background-commands.md` and `latest-gate.md` are **not entry reads** — each is fetched at its point of
7
+ use. The step lists are `fullrun-steps.md`, read when a step needs its detail. History:
8
+ `docs/maintainers/fullrun-rationale.md` → "Where each rule came from".
9
9
 
10
10
  ## The difference — the entry and the end
11
11
 
@@ -18,10 +18,10 @@ needs its detail.
18
18
  ## The lane-child seam
19
19
 
20
20
  - **A lane child asks whether it is a resume first — `pnpm josh run:cut --resume <N>`** (`run:entry` asks it
21
- before the hold, joshuafolkken/kit#2760); on `resume` it skips the title, plan, hold and implementation and goes to the gate. At the pre-gate
21
+ before the hold); on `resume` it skips the title, plan, hold and implementation and goes to the gate. At the pre-gate
22
22
  boundary — immediately after `pnpm josh main:merge`, before the gate — it takes the cut with
23
23
  `pnpm josh run:cut <N>` (the ordered step in `chain-rule.md`, which names the cut's single source),
24
24
  and it records any park on the Issue before the stop notify. A run that is not a lane child never
25
- reads the cut's document (joshuafolkken/kit#3172).
26
- - **`resume: halfrun`** adopted a stopped `halfrun` (#2796): gate in full; `resume: prrun-*` a stopped
27
- `prrun` (#3023); `working-tree-hold.md`.
25
+ reads the cut's document.
26
+ - **`resume: halfrun`** adopted a stopped `halfrun`: gate in full; `resume: prrun-*` a stopped
27
+ `prrun`; `working-tree-hold.md`.