@joshuafolkken/kit 1.1514.0 → 1.1784.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 (858) hide show
  1. package/.claude/agents/investigator.md +1 -1
  2. package/.claude/settings.json +5 -5
  3. package/.claude/skills/epic-commands/SKILL.md +26 -65
  4. package/.claude/skills/epic-commands/epic-bundle.md +3 -1
  5. package/.claude/skills/workflow-commands/SKILL.md +5 -5
  6. package/.claude/skills/workflow-commands/background-commands.md +5 -5
  7. package/.claude/skills/workflow-commands/backlogrun-child.md +10 -8
  8. package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
  9. package/.claude/skills/workflow-commands/backlogrun-lanes.md +17 -13
  10. package/.claude/skills/workflow-commands/backlogrun-park.md +14 -23
  11. package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -2
  12. package/.claude/skills/workflow-commands/backlogrun-recovery.md +5 -5
  13. package/.claude/skills/workflow-commands/backlogrun-steps.md +10 -10
  14. package/.claude/skills/workflow-commands/backlogrun.md +1 -1
  15. package/.claude/skills/workflow-commands/chain-rule.md +13 -7
  16. package/.claude/skills/workflow-commands/delegation.md +6 -5
  17. package/.claude/skills/workflow-commands/entry-sequence.md +9 -9
  18. package/.claude/skills/workflow-commands/followup.md +9 -31
  19. package/.claude/skills/workflow-commands/fullrun-steps.md +36 -45
  20. package/.claude/skills/workflow-commands/fullrun.md +2 -2
  21. package/.claude/skills/workflow-commands/halfrun.md +17 -25
  22. package/.claude/skills/workflow-commands/issue-comments.md +16 -12
  23. package/.claude/skills/workflow-commands/issue-scout.md +2 -2
  24. package/.claude/skills/workflow-commands/kickoff.md +24 -23
  25. package/.claude/skills/workflow-commands/latest-gate.md +7 -12
  26. package/.claude/skills/workflow-commands/needs-human-review.md +9 -14
  27. package/.claude/skills/workflow-commands/observation-filing.md +4 -36
  28. package/.claude/skills/workflow-commands/observation-ledger.md +1 -1
  29. package/.claude/skills/workflow-commands/pre-gate-cut.md +13 -30
  30. package/.claude/skills/workflow-commands/prerequisite.md +10 -16
  31. package/.claude/skills/workflow-commands/progress-watcher.md +1 -1
  32. package/.claude/skills/workflow-commands/prrun.md +3 -7
  33. package/.claude/skills/workflow-commands/retrospective.md +1 -1
  34. package/.claude/skills/workflow-commands/split-assessment.md +13 -1
  35. package/.claude/skills/workflow-commands/working-tree-hold.md +9 -9
  36. package/.codex/hooks.json +5 -5
  37. package/.github/actions/setup-node/action.yml +9 -0
  38. package/.github/actions/setup-pnpm/action.yml +1 -1
  39. package/.github/dependabot.yml +16 -0
  40. package/.github/release.yml +0 -2
  41. package/.github/workflows/ci.yml +120 -10
  42. package/.github/workflows/publish.yml +8 -1
  43. package/.github/workflows/sonar-qube.yml +1 -0
  44. package/.prettierignore +2 -0
  45. package/.vscode/tasks.json +1 -2
  46. package/CLAUDE.md +3 -7
  47. package/README.md +4 -2
  48. package/SECURITY.md +1 -1
  49. package/dist/CLAUDE.md +3 -7
  50. package/dist/commands/document-read-cli.js +882 -0
  51. package/dist/commands/{document-section-cli.js → document-section-main.js} +79 -37
  52. package/dist/commands/read-set-cli.js +1867 -0
  53. package/dist/commands/run-prep-main.js +21653 -0
  54. package/dist/commands/run-step-cli.js +23880 -0
  55. package/dist/config-merge/index.js +5 -1
  56. package/dist/hooks/audit-provision.js +20 -35
  57. package/dist/hooks/{chunk-DGT54IH5.js → chunk-AZX4FGQ3.js} +63 -17
  58. package/dist/hooks/chunk-CWMBGKYW.js +6483 -0
  59. package/dist/hooks/chunk-O2YBIDSI.js +4306 -0
  60. package/dist/hooks/{chunk-TNUMY6NL.js → chunk-PT5R6UJD.js} +4193 -1900
  61. package/dist/hooks/chunk-TUIFS5E7.js +72 -0
  62. package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
  63. package/dist/hooks/{chunk-APUO6U4J.js → chunk-WR2KQAYZ.js} +1843 -440
  64. package/dist/hooks/{chunk-O6GDRNJB.js → chunk-XGBNSWEI.js} +248 -46
  65. package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
  66. package/dist/hooks/codex-hook-adapter.js +10 -22
  67. package/dist/hooks/format-edited.js +5 -6
  68. package/dist/hooks/inputs.json +443 -317
  69. package/dist/hooks/pretool-guard.js +7 -25
  70. package/dist/hooks/session-lang.js +44 -51
  71. package/dist/hooks/stop-guard.js +7716 -2187
  72. package/dist/josh.js +6002 -3583
  73. package/dist/self-sync-guard/index.js +74 -10
  74. package/dist/version/index.js +115 -406
  75. package/eslint/base.js +1 -1
  76. package/lefthook/base.yml +3 -1
  77. package/package.json +10 -48
  78. package/pnpm-workspace.yaml +4 -2
  79. package/prompts/coding-standards.md +1 -1
  80. package/prompts/collaboration-workflow/file-edits.md +1 -7
  81. package/prompts/collaboration-workflow/issue-citation.md +1 -1
  82. package/prompts/collaboration-workflow/issue-template.md +33 -16
  83. package/prompts/collaboration-workflow/lane-instructions.md +1 -2
  84. package/prompts/collaboration-workflow/measurement.md +37 -0
  85. package/prompts/collaboration-workflow/operating-rules.md +4 -6
  86. package/prompts/collaboration-workflow/output-bounds.md +2 -7
  87. package/prompts/collaboration-workflow/plan-comment.md +3 -42
  88. package/prompts/collaboration-workflow/principles.md +5 -0
  89. package/prompts/collaboration-workflow/report-format.md +31 -60
  90. package/prompts/collaboration-workflow/residency.md +2 -2
  91. package/prompts/collaboration-workflow/shell-body.md +6 -16
  92. package/prompts/collaboration-workflow/turn-batching.md +0 -2
  93. package/prompts/collaboration-workflow/upstream-interrupt.md +14 -4
  94. package/prompts/collaboration-workflow/wip-cap.md +1 -1
  95. package/prompts/collaboration-workflow.md +3 -7
  96. package/prompts/refactoring.md +1 -1
  97. package/prompts/review-rubric.md +1 -2
  98. package/prompts/review.md +41 -21
  99. package/prompts/testing-guide.md +8 -43
  100. package/scripts/agent/agent-event.ts +15 -15
  101. package/scripts/agent/agent-exit-record.ts +13 -1
  102. package/scripts/agent/api-auth.ts +41 -0
  103. package/scripts/agent/api-outage.ts +1 -1
  104. package/scripts/auto-ok/auto-ok-cli.ts +14 -16
  105. package/scripts/auto-ok/auto-ok-judge-read.ts +12 -3
  106. package/scripts/auto-ok/auto-ok-judge-write.ts +46 -19
  107. package/scripts/auto-ok/auto-ok-judge.ts +13 -2
  108. package/scripts/auto-ok/auto-ok-main.ts +17 -0
  109. package/scripts/backlog/backlog-arrival.ts +14 -3
  110. package/scripts/backlog/backlog-budget-cli.ts +7 -33
  111. package/scripts/backlog/backlog-budget-main.ts +16 -0
  112. package/scripts/backlog/backlog-budget.ts +2 -3
  113. package/scripts/backlog/backlog-defect-priority.ts +4 -3
  114. package/scripts/backlog/backlog-drive-adopt.ts +67 -0
  115. package/scripts/backlog/backlog-drive-args.ts +4 -5
  116. package/scripts/backlog/backlog-drive-cli.ts +113 -28
  117. package/scripts/backlog/backlog-drive-hold.ts +162 -0
  118. package/scripts/backlog/backlog-drive-idle.ts +151 -0
  119. package/scripts/backlog/backlog-drive-judge.ts +25 -0
  120. package/scripts/backlog/backlog-drive-memory.ts +126 -0
  121. package/scripts/backlog/backlog-drive-named-offer.ts +5 -10
  122. package/scripts/backlog/backlog-drive-named.ts +53 -6
  123. package/scripts/backlog/backlog-drive-offer-argv.ts +3 -8
  124. package/scripts/backlog/backlog-drive-paused.ts +169 -0
  125. package/scripts/backlog/backlog-drive-restore.ts +30 -7
  126. package/scripts/backlog/backlog-drive-seats.ts +18 -8
  127. package/scripts/backlog/backlog-drive-token-handling.ts +38 -0
  128. package/scripts/backlog/backlog-drive.ts +79 -75
  129. package/scripts/backlog/backlog-next-main.ts +16 -0
  130. package/scripts/backlog/backlog-next-shared.ts +73 -0
  131. package/scripts/backlog/backlog-next.ts +48 -16
  132. package/scripts/backlog/backlog-occupied.ts +52 -39
  133. package/scripts/backlog/backlog-offer-cli.ts +6 -21
  134. package/scripts/backlog/backlog-offer-exclude.ts +15 -0
  135. package/scripts/backlog/backlog-offer-main.ts +12 -0
  136. package/scripts/backlog/backlog-offer.ts +36 -3
  137. package/scripts/backlog/backlog-overlap.ts +22 -4
  138. package/scripts/backlog/backlog-plan-read.ts +6 -2
  139. package/scripts/backlog/backlog-plan.ts +18 -4
  140. package/scripts/backlog/backlog-pool.ts +10 -10
  141. package/scripts/backlog/backlog-rank.ts +10 -2
  142. package/scripts/backlog/backlog-ready.ts +112 -30
  143. package/scripts/backlog/backlog-stalled-detect.ts +109 -36
  144. package/scripts/backlog/backlog-stalled.ts +52 -16
  145. package/scripts/backlog/backlog-wait-cause.ts +86 -0
  146. package/scripts/backlog/backlog-waves.ts +39 -13
  147. package/scripts/backlog/backlogrun-args.ts +19 -7
  148. package/scripts/backlog/backlogrun-cli.ts +19 -5
  149. package/scripts/backlog/backlogrun-launch.ts +6 -0
  150. package/scripts/backlog/backlogrun-restart.ts +97 -0
  151. package/scripts/backlog/backlogrun-stop.ts +79 -7
  152. package/scripts/behavior/behavior-cli.ts +2 -2
  153. package/scripts/behavior/behavior-rules.ts +47 -24
  154. package/scripts/build/build-bin.ts +2 -16
  155. package/scripts/build/build-claude-md.ts +0 -7
  156. package/scripts/build/build-commands.ts +0 -13
  157. package/scripts/build/build-hooks.ts +49 -48
  158. package/scripts/build/hook-bundle-stamp.ts +29 -11
  159. package/scripts/build/local-bin.ts +1 -1
  160. package/scripts/cases/cases-cli.ts +25 -13
  161. package/scripts/cases/cases-interaction-scan.ts +134 -0
  162. package/scripts/cases/cases-interaction.ts +183 -0
  163. package/scripts/cases/cases-logic.ts +39 -6
  164. package/scripts/ci/pr-classification-main.ts +18 -0
  165. package/scripts/ci/pr-classification.ts +10 -17
  166. package/scripts/clone/clone-scan.ts +1 -1
  167. package/scripts/cost-runtime/cost-blocks.ts +22 -37
  168. package/scripts/cost-runtime/cost-cli.ts +31 -14
  169. package/scripts/cost-runtime/cost-main.ts +12 -0
  170. package/scripts/cost-runtime/cost-transcript.ts +1 -0
  171. package/scripts/delegation/delegation-policy.ts +17 -4
  172. package/scripts/delegation/duplicate-read-guard.ts +0 -8
  173. package/scripts/delegation/investigation-guard.ts +0 -8
  174. package/scripts/delegation/investigation-reads.ts +3 -4
  175. package/scripts/dependabot/dependabot-cooldown.ts +194 -0
  176. package/scripts/discovery/repo-discovery.ts +24 -6
  177. package/scripts/doctor/doctor-consumer.ts +2 -5
  178. package/scripts/document/document-byte-budget.ts +8 -6
  179. package/scripts/document/document-scan.ts +1 -1
  180. package/scripts/document/document-section-cli.ts +0 -8
  181. package/scripts/document/document-section-main.ts +12 -0
  182. package/scripts/epic/epic-audit-cli.ts +12 -6
  183. package/scripts/epic/epic-bundle-apply.ts +137 -0
  184. package/scripts/epic/epic-bundle-cli.ts +32 -121
  185. package/scripts/epic/epic-bundle-format.ts +116 -0
  186. package/scripts/epic/epic-bundle-main.ts +17 -0
  187. package/scripts/epic/epic-busy.ts +5 -12
  188. package/scripts/epic/epic-classify.ts +24 -15
  189. package/scripts/epic/epic-cli-argv.ts +31 -0
  190. package/scripts/epic/epic-cli-decide.ts +42 -0
  191. package/scripts/epic/epic-cli.ts +6 -38
  192. package/scripts/epic/epic-close.ts +112 -55
  193. package/scripts/epic/epic-cross-repo.ts +4 -7
  194. package/scripts/epic/epic-decide.ts +119 -0
  195. package/scripts/epic/epic-decision.ts +9 -0
  196. package/scripts/epic/epic-fetch.ts +4 -0
  197. package/scripts/epic/epic-graph.ts +2 -0
  198. package/scripts/epic/epic-issue.ts +5 -1
  199. package/scripts/epic/epic-label-age.ts +1 -1
  200. package/scripts/epic/epic-lane-offer.ts +39 -4
  201. package/scripts/epic/epic-next-main.ts +24 -0
  202. package/scripts/epic/epic-next.ts +6 -24
  203. package/scripts/epic/epic-outside-blocker.ts +6 -2
  204. package/scripts/epic/epic-parse.ts +9 -3
  205. package/scripts/epic/epic-read.ts +1 -0
  206. package/scripts/epic/epic-reconcile.ts +39 -0
  207. package/scripts/epic/epic-run.ts +10 -1
  208. package/scripts/epic/epic-solo.ts +50 -14
  209. package/scripts/epic/epic.ts +41 -7
  210. package/scripts/exports/unused-members-cli.ts +2 -2
  211. package/scripts/followup/followup-checks-event.ts +8 -3
  212. package/scripts/followup/followup-coderabbit-wait.ts +82 -0
  213. package/scripts/followup/followup-review-gates.ts +81 -0
  214. package/scripts/followup/git-followup-stages.ts +13 -3
  215. package/scripts/followup/git-followup-workflow.ts +19 -66
  216. package/scripts/followup/git-pr-followup-wrapup.ts +9 -14
  217. package/scripts/followup/git-pr-followup.ts +36 -8
  218. package/scripts/fresh-machine/fresh-machine-cli.ts +1 -1
  219. package/scripts/fresh-machine/fresh-machine-run.ts +8 -8
  220. package/scripts/fresh-machine/specs/kit-test-backlogrun.json +1 -1
  221. package/scripts/gate/busy-average.ts +58 -0
  222. package/scripts/gate/check-cpu.ts +60 -0
  223. package/scripts/gate/check-inputs.ts +39 -95
  224. package/scripts/gate/check-reuse.ts +33 -54
  225. package/scripts/gate/command-memory.ts +192 -0
  226. package/scripts/gate/core-admission.ts +218 -28
  227. package/scripts/gate/core-budget-timing.ts +37 -0
  228. package/scripts/gate/core-budget.ts +80 -98
  229. package/scripts/gate/core-wait-record.ts +48 -0
  230. package/scripts/gate/core-wait.ts +37 -5
  231. package/scripts/gate/core-weights.ts +86 -0
  232. package/scripts/gate/free-cores.ts +27 -4
  233. package/scripts/gate/gate-ledger.ts +32 -4
  234. package/scripts/gate/gate-plan.ts +41 -34
  235. package/scripts/gate/gate-report.ts +14 -2
  236. package/scripts/gate/gate-run-steps.ts +53 -8
  237. package/scripts/gate/gate-skip.ts +12 -2
  238. package/scripts/gate/gate-steps.ts +12 -1
  239. package/scripts/gate/input-fingerprint.ts +42 -0
  240. package/scripts/gate/machine-capacity.ts +65 -31
  241. package/scripts/gate/moved-paths.ts +67 -0
  242. package/scripts/gate/project-checks.ts +5 -12
  243. package/scripts/gate/scoped-green.ts +12 -8
  244. package/scripts/gate/since-green.ts +62 -0
  245. package/scripts/gate/toolchain-inputs.ts +115 -0
  246. package/scripts/gate/verification-gate.ts +27 -24
  247. package/scripts/gate/verification-inputs.ts +250 -0
  248. package/scripts/gh/gh-author-association.ts +96 -9
  249. package/scripts/gh/git-ai-review-scan.ts +4 -2
  250. package/scripts/gh/git-gh-api-path.ts +15 -0
  251. package/scripts/gh/git-gh-branch-rules.ts +73 -0
  252. package/scripts/gh/git-gh-conditional.ts +5 -2
  253. package/scripts/gh/git-gh-issue-read.ts +5 -1
  254. package/scripts/gh/git-gh-issue-write.ts +67 -29
  255. package/scripts/gh/git-gh-issue.ts +7 -3
  256. package/scripts/gh/git-gh-poll-read.ts +89 -0
  257. package/scripts/gh/git-gh-pr-auto-merge.ts +8 -3
  258. package/scripts/gh/git-gh-pr-rest.ts +1 -1
  259. package/scripts/gh/git-gh-pr-snapshot.ts +33 -20
  260. package/scripts/gh/git-gh-pr.ts +27 -15
  261. package/scripts/gh/git-pr-checks-eval.ts +39 -7
  262. package/scripts/gh/git-pr-checks-parse.ts +39 -9
  263. package/scripts/gh/git-pr-merge-checked.ts +80 -0
  264. package/scripts/git/base-tree.ts +19 -2
  265. package/scripts/git/changed-file-scope.ts +6 -4
  266. package/scripts/git/changed-paths.ts +18 -1
  267. package/scripts/git/git-diff-reads.ts +27 -2
  268. package/scripts/git/git-grep-hits.ts +85 -0
  269. package/scripts/git/git-location-environment.ts +1 -1
  270. package/scripts/git/git-merge-conflicts.ts +83 -0
  271. package/scripts/git/git-preflight.ts +37 -12
  272. package/scripts/git/git-push-transport.ts +1 -2
  273. package/scripts/git/git-schemas.ts +17 -7
  274. package/scripts/git/git-spawn.ts +1 -2
  275. package/scripts/git/git-status.ts +4 -4
  276. package/scripts/git/main-merge-main.ts +12 -0
  277. package/scripts/git/main-merge-regenerate.ts +2 -2
  278. package/scripts/git/main-merge.ts +25 -9
  279. package/scripts/git/main-sync-main.ts +12 -0
  280. package/scripts/git/main-sync.ts +0 -9
  281. package/scripts/git/stash/git-stash.ts +27 -4
  282. package/scripts/git/stash/{stash-pop-args.ts → stash-args.ts} +13 -10
  283. package/scripts/git/stash/stash-pop-cli.ts +6 -12
  284. package/scripts/git/stash/stash-pop-main.ts +12 -0
  285. package/scripts/git/stash/stash-push-cli.ts +76 -0
  286. package/scripts/git/stash/stash-push-main.ts +12 -0
  287. package/scripts/hooks/batch-guard.ts +0 -8
  288. package/scripts/hooks/check-commit-message-main.ts +8 -0
  289. package/scripts/hooks/check-commit-message.ts +4 -7
  290. package/scripts/hooks/format-edited-file.ts +8 -24
  291. package/scripts/hooks/pre-commit-lint.ts +30 -3
  292. package/scripts/hooks/pre-push-unit.ts +4 -2
  293. package/scripts/hooks/pretool-guard-cli.ts +1 -8
  294. package/scripts/hooks/pretool-guard.ts +32 -19
  295. package/scripts/hooks/reserved-run.ts +67 -9
  296. package/scripts/hooks/run-hook.sh +13 -4
  297. package/scripts/hooks/shell-rules-notice.ts +37 -0
  298. package/scripts/hooks/stop-actions.ts +2 -21
  299. package/scripts/hooks/stop-guard.ts +13 -9
  300. package/scripts/init/hook-command-rewrite.ts +19 -5
  301. package/scripts/init/hook-launch.ts +15 -17
  302. package/scripts/init/init-actions.ts +0 -6
  303. package/scripts/init/init-ai-copy.ts +10 -36
  304. package/scripts/init/init-bootstrap.ts +9 -8
  305. package/scripts/init/init-dry-run-report.ts +1 -1
  306. package/scripts/init/init-dry-run.ts +1 -1
  307. package/scripts/init/init-file-action.ts +7 -9
  308. package/scripts/init/init-logic-json-merge.ts +2 -2
  309. package/scripts/init/init-logic-migrate.ts +9 -82
  310. package/scripts/init/init-logic.ts +3 -2
  311. package/scripts/init/init-main.ts +12 -0
  312. package/scripts/init/init.ts +5 -12
  313. package/scripts/init/kit-development-versions.ts +3 -7
  314. package/scripts/init/kit-written-paths.ts +2 -2
  315. package/scripts/init/project-profile.ts +5 -4
  316. package/scripts/init/tsconfig-preset-migration.ts +2 -1
  317. package/scripts/init/vscode-tasks.ts +1 -1
  318. package/scripts/issue/defect-origin-cli.ts +106 -0
  319. package/scripts/issue/defect-origin-line.ts +60 -0
  320. package/scripts/issue/defect-origin-main.ts +11 -0
  321. package/scripts/issue/defect-origin.ts +114 -0
  322. package/scripts/issue/defect-rate-cli.ts +34 -78
  323. package/scripts/issue/defect-rate.ts +0 -16
  324. package/scripts/issue/defect-report-cli.ts +128 -0
  325. package/scripts/issue/defect-report-format.ts +56 -0
  326. package/scripts/issue/defect-report-main.ts +11 -0
  327. package/scripts/issue/defect-report.ts +160 -0
  328. package/scripts/issue/expected-effect-lint.ts +1 -0
  329. package/scripts/issue/issue-already-done-cli.ts +62 -0
  330. package/scripts/issue/issue-body-or-comment.ts +40 -0
  331. package/scripts/issue/issue-cite-cli.ts +0 -9
  332. package/scripts/issue/issue-cite-main.ts +12 -0
  333. package/scripts/issue/issue-classification.ts +12 -7
  334. package/scripts/issue/issue-comment-cli.ts +10 -24
  335. package/scripts/issue/issue-comment-main.ts +12 -0
  336. package/scripts/issue/issue-evidence-exit.ts +100 -0
  337. package/scripts/issue/issue-file-cli.ts +29 -7
  338. package/scripts/issue/issue-file.ts +19 -19
  339. package/scripts/issue/issue-fold-cli.ts +2 -11
  340. package/scripts/issue/issue-fold-main.ts +12 -0
  341. package/scripts/issue/issue-labels.ts +81 -90
  342. package/scripts/issue/issue-lint-cli.ts +2 -10
  343. package/scripts/issue/issue-lint-main.ts +12 -0
  344. package/scripts/issue/issue-measured-cli.ts +56 -0
  345. package/scripts/issue/issue-merged.ts +19 -2
  346. package/scripts/issue/issue-not-before-label.ts +135 -0
  347. package/scripts/issue/issue-not-before.ts +111 -0
  348. package/scripts/issue/issue-number-shape.ts +15 -1
  349. package/scripts/issue/issue-park.ts +28 -0
  350. package/scripts/issue/issue-plan-cli.ts +151 -0
  351. package/scripts/issue/issue-priority.ts +151 -0
  352. package/scripts/issue/issue-rank.ts +7 -1
  353. package/scripts/issue/issue-read-cli.ts +3 -10
  354. package/scripts/issue/issue-read-main.ts +12 -0
  355. package/scripts/issue/issue-read.ts +29 -5
  356. package/scripts/issue/issue-release-cli.ts +0 -10
  357. package/scripts/issue/issue-release-main.ts +13 -0
  358. package/scripts/issue/issue-release.ts +7 -12
  359. package/scripts/issue/issue-sample-gate.ts +192 -0
  360. package/scripts/issue/issue-sample-source.ts +76 -0
  361. package/scripts/issue/issue-scout-cli.ts +0 -11
  362. package/scripts/issue/issue-scout-main.ts +14 -0
  363. package/scripts/issue/issue-state-cli.ts +0 -10
  364. package/scripts/issue/issue-state-main.ts +12 -0
  365. package/scripts/issue/issue-watch-diff.ts +56 -15
  366. package/scripts/issue/issue-watch.ts +2 -1
  367. package/scripts/issue/issue-wip.ts +2 -7
  368. package/scripts/issue/measure-rerun-cli.ts +13 -8
  369. package/scripts/issue/plan-consumers-cli.ts +39 -0
  370. package/scripts/issue/plan-consumers-main.ts +11 -0
  371. package/scripts/issue/plan-consumers-section.ts +55 -0
  372. package/scripts/issue/plan-consumers.ts +127 -0
  373. package/scripts/josh/agent-session-environment.ts +1 -1
  374. package/scripts/josh/command-usage.ts +15 -43
  375. package/scripts/josh/file-map-stamp.ts +49 -16
  376. package/scripts/josh/hook-decision.ts +32 -20
  377. package/scripts/josh/josh-command-map.ts +4 -1
  378. package/scripts/josh/josh-command-types.ts +12 -6
  379. package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
  380. package/scripts/josh/josh-commands-ai.ts +157 -158
  381. package/scripts/josh/josh-commands-backlog.ts +82 -16
  382. package/scripts/josh/josh-commands-clone.ts +1 -0
  383. package/scripts/josh/josh-commands-development.ts +111 -71
  384. package/scripts/josh/josh-commands-document.ts +43 -1
  385. package/scripts/josh/josh-commands-epic.ts +171 -0
  386. package/scripts/josh/josh-commands-hooks.ts +25 -2
  387. package/scripts/josh/josh-commands-issue-write.ts +181 -0
  388. package/scripts/josh/josh-commands-issue.ts +124 -24
  389. package/scripts/josh/josh-commands-lane.ts +103 -2
  390. package/scripts/josh/josh-commands-lint.ts +19 -8
  391. package/scripts/josh/josh-commands-maintenance.ts +112 -4
  392. package/scripts/josh/josh-commands-pause.ts +29 -0
  393. package/scripts/josh/josh-commands-progress.ts +87 -0
  394. package/scripts/josh/josh-commands-project.ts +138 -9
  395. package/scripts/josh/josh-commands-review.ts +124 -0
  396. package/scripts/josh/josh-commands-run.ts +211 -23
  397. package/scripts/josh/josh-commands-ship.ts +169 -0
  398. package/scripts/josh/josh-commands-split.ts +9 -0
  399. package/scripts/josh/josh-commands-versioning.ts +49 -2
  400. package/scripts/josh/josh-commands-workflow.ts +144 -6
  401. package/scripts/josh/josh-logic.ts +6 -13
  402. package/scripts/josh/package-directory.ts +2 -4
  403. package/scripts/josh/process-identity.ts +13 -4
  404. package/scripts/josh/session-language-cli.ts +4 -8
  405. package/scripts/josh/session-language-main.ts +13 -0
  406. package/scripts/josh/session-language.ts +6 -1
  407. package/scripts/josh/shared-cache.ts +90 -0
  408. package/scripts/josh/stamp-file.ts +9 -15
  409. package/scripts/lane/lane-await.ts +51 -12
  410. package/scripts/lane/lane-cache.ts +5 -30
  411. package/scripts/lane/lane-capacity.ts +14 -23
  412. package/scripts/lane/lane-check-stats.ts +62 -21
  413. package/scripts/lane/lane-child-invocation.ts +8 -0
  414. package/scripts/lane/lane-cli.ts +15 -5
  415. package/scripts/lane/lane-close.ts +86 -18
  416. package/scripts/lane/lane-core-wait-stats.ts +66 -0
  417. package/scripts/lane/lane-dispatch.ts +24 -3
  418. package/scripts/lane/lane-gap-stats.ts +156 -0
  419. package/scripts/lane/lane-handoff.ts +69 -1
  420. package/scripts/lane/lane-held-stats.ts +129 -0
  421. package/scripts/lane/lane-install.ts +4 -11
  422. package/scripts/lane/lane-launch-cli.ts +0 -9
  423. package/scripts/lane/lane-launch-main.ts +12 -0
  424. package/scripts/lane/lane-ledger-schema.ts +266 -0
  425. package/scripts/lane/lane-ledger.ts +92 -123
  426. package/scripts/lane/lane-limit-cli.ts +12 -1
  427. package/scripts/lane/lane-measure-cli.ts +57 -11
  428. package/scripts/lane/lane-open.ts +9 -1
  429. package/scripts/lane/lane-parked.ts +3 -3
  430. package/scripts/lane/lane-pause-cli.ts +130 -0
  431. package/scripts/lane/lane-pause.ts +158 -0
  432. package/scripts/lane/lane-process-table.ts +166 -0
  433. package/scripts/lane/lane-reap-settle.ts +124 -0
  434. package/scripts/lane/lane-reap.ts +50 -15
  435. package/scripts/lane/lane-registry.ts +24 -3
  436. package/scripts/lane/lane-residents.ts +162 -0
  437. package/scripts/lane/lane-restart.ts +22 -2
  438. package/scripts/lane/lane-round-two-stats.ts +49 -0
  439. package/scripts/lane/lane-sampler.ts +4 -0
  440. package/scripts/lane/lane-session-action.ts +19 -5
  441. package/scripts/lane/lane-session-broker.ts +102 -21
  442. package/scripts/lane/lane-snapshot-trace.ts +84 -0
  443. package/scripts/lane/lane-spans.ts +51 -0
  444. package/scripts/lane/lane-spent.ts +6 -3
  445. package/scripts/lane/lane-stage-stats.ts +7 -2
  446. package/scripts/lane/lane-state.ts +302 -0
  447. package/scripts/lane/lane-stats.ts +58 -4
  448. package/scripts/lane/lane-stop-stats.ts +113 -37
  449. package/scripts/lane/lane-test-related-stats.ts +127 -0
  450. package/scripts/lane/lane-transcript-calls.ts +145 -0
  451. package/scripts/lane/lane-transcript-stats.ts +168 -0
  452. package/scripts/lane/lane-vacant.ts +13 -3
  453. package/scripts/lane/lane-withdraw-cli.ts +5 -4
  454. package/scripts/lane/lane-withdraw.ts +50 -49
  455. package/scripts/lane/process-directories.ts +70 -0
  456. package/scripts/lane/process-lane-marks.ts +94 -0
  457. package/scripts/lib/atomic-write.ts +62 -0
  458. package/scripts/lib/buffered-process.ts +12 -5
  459. package/scripts/lib/cli-flags.ts +53 -0
  460. package/scripts/lib/figure-format.ts +63 -0
  461. package/scripts/lib/json-value.ts +9 -1
  462. package/scripts/lib/package-manifest.ts +35 -0
  463. package/scripts/lib/read-file.ts +3 -1
  464. package/scripts/lib/stamped-memo.ts +63 -0
  465. package/scripts/lib/stdout-on-stderr.ts +24 -0
  466. package/scripts/lib/timeouts.ts +9 -0
  467. package/scripts/lib/transcript-record.ts +91 -0
  468. package/scripts/lines/effective-limit.ts +1 -1
  469. package/scripts/lint/eslint-cache-dependencies.ts +145 -0
  470. package/scripts/lint/eslint-daemon.ts +265 -0
  471. package/scripts/lint/format.ts +11 -2
  472. package/scripts/lint/import-graph.ts +279 -0
  473. package/scripts/lint/lint-gate-scope.ts +102 -0
  474. package/scripts/lint/lint-parallel-main.ts +19 -0
  475. package/scripts/lint/lint-parallel.ts +62 -30
  476. package/scripts/lint/lint-related-scope.ts +30 -24
  477. package/scripts/lint/lint-related.ts +38 -6
  478. package/scripts/notify/confirmation-options.ts +1 -2
  479. package/scripts/notify/telegram-notify.ts +20 -20
  480. package/scripts/notify/telegram-test-logic.ts +0 -1
  481. package/scripts/notify/telegram-test-main.ts +8 -0
  482. package/scripts/notify/telegram-test.ts +2 -6
  483. package/scripts/observations/observation-ledger.ts +13 -0
  484. package/scripts/observations/observations-flush-landing.ts +5 -3
  485. package/scripts/observations/observations-flush.ts +6 -1
  486. package/scripts/overrides/overrides-check.ts +2 -5
  487. package/scripts/overrides/overrides-files.ts +2 -1
  488. package/scripts/overrides/overrides-logic.ts +3 -6
  489. package/scripts/package/verify-optional-eslint-install.ts +8 -6
  490. package/scripts/propagate/propagate-publish.ts +2 -7
  491. package/scripts/propagate/propagate-targets.ts +4 -12
  492. package/scripts/refactor/import-graph.ts +9 -7
  493. package/scripts/release/github-release-runs.ts +17 -6
  494. package/scripts/release/release-approval-prune.ts +18 -0
  495. package/scripts/release/release-history.ts +1 -3
  496. package/scripts/release/release-progress.ts +42 -22
  497. package/scripts/release/release-publish-run.ts +39 -0
  498. package/scripts/release/release-publish.ts +6 -6
  499. package/scripts/release/release-scope-cli.ts +0 -10
  500. package/scripts/release/release-scope-main.ts +12 -0
  501. package/scripts/repo/repo-setting.ts +3 -6
  502. package/scripts/repo/required-checks-logic.ts +6 -15
  503. package/scripts/report/report-format-reference.ts +2 -0
  504. package/scripts/report/report-labels.ts +155 -0
  505. package/scripts/report/report-lint-cli.ts +3 -0
  506. package/scripts/report/report-lint.ts +85 -110
  507. package/scripts/report/report-template-cli.ts +59 -0
  508. package/scripts/report/report-template.ts +112 -0
  509. package/scripts/review/acceptance-map.ts +1 -0
  510. package/scripts/review/removed-tests-check.ts +86 -0
  511. package/scripts/review/removed-tests.ts +149 -0
  512. package/scripts/review/review-brief-cli.ts +81 -15
  513. package/scripts/review/review-brief-main.ts +12 -0
  514. package/scripts/review/review-brief.ts +31 -3
  515. package/scripts/review/review-code-tree.ts +10 -6
  516. package/scripts/review/review-comment-round.ts +26 -8
  517. package/scripts/review/review-finding-ledger.ts +30 -15
  518. package/scripts/review/review-interaction.ts +94 -0
  519. package/scripts/review/review-readers-scan.ts +163 -0
  520. package/scripts/review/review-record-cli.ts +69 -30
  521. package/scripts/review/review-record-main.ts +12 -0
  522. package/scripts/review/review-round-one-blobs.ts +221 -0
  523. package/scripts/review/review-round2-cli.ts +49 -12
  524. package/scripts/review/review-round2.ts +80 -12
  525. package/scripts/review/review-stamps.ts +19 -1
  526. package/scripts/review/review-stop-log.ts +96 -0
  527. package/scripts/review/review-stops-cli.ts +85 -0
  528. package/scripts/review/review-tree.ts +6 -17
  529. package/scripts/review/review-untouched-readers.ts +146 -0
  530. package/scripts/review/test-titles.ts +118 -0
  531. package/scripts/rules/agent-model.ts +8 -0
  532. package/scripts/rules/bash-triggers.ts +46 -3
  533. package/scripts/rules/decision-oracle-batch.ts +9 -1
  534. package/scripts/rules/decision-oracle.ts +2 -2
  535. package/scripts/rules/delivered-rules.ts +80 -2
  536. package/scripts/rules/destructive-command.ts +8 -1
  537. package/scripts/rules/direct-filing.ts +10 -2
  538. package/scripts/rules/direct-issue-comment.ts +117 -0
  539. package/scripts/rules/direct-pr-create.ts +69 -3
  540. package/scripts/rules/early-heartbeat.ts +2 -1
  541. package/scripts/rules/file-body.ts +7 -0
  542. package/scripts/rules/filing-cap.ts +7 -0
  543. package/scripts/rules/git-argv.ts +72 -14
  544. package/scripts/rules/git-force.ts +12 -2
  545. package/scripts/rules/guard-remedy.ts +4 -0
  546. package/scripts/rules/implementation-cut-verdict.ts +1 -1
  547. package/scripts/rules/implementation-cut.ts +11 -3
  548. package/scripts/rules/index-guard.ts +8 -1
  549. package/scripts/rules/issue-comments.ts +9 -1
  550. package/scripts/rules/josh-git-bare.ts +7 -0
  551. package/scripts/rules/lane-background.ts +67 -25
  552. package/scripts/rules/lane-carry-conflict.ts +6 -0
  553. package/scripts/rules/lane-direct-tool.ts +74 -0
  554. package/scripts/rules/lane-interactive-ask.ts +9 -2
  555. package/scripts/rules/lane-park.ts +45 -23
  556. package/scripts/rules/lane-split-park.ts +10 -2
  557. package/scripts/rules/lane-switch-main.ts +7 -0
  558. package/scripts/rules/oracle-consulted.ts +10 -0
  559. package/scripts/rules/oracle-firing.ts +1 -0
  560. package/scripts/rules/permission-guards.ts +3 -0
  561. package/scripts/rules/piped-verification.ts +1 -1
  562. package/scripts/rules/poll-loop.ts +7 -0
  563. package/scripts/rules/pr-merge.ts +123 -0
  564. package/scripts/rules/protected-files.ts +32 -5
  565. package/scripts/rules/raw-field-body.ts +6 -0
  566. package/scripts/rules/rule-body-guard.ts +8 -0
  567. package/scripts/rules/rule-list.ts +9 -28
  568. package/scripts/rules/rule-value-cache.ts +4 -9
  569. package/scripts/rules/rule-value-cli.ts +51 -32
  570. package/scripts/rules/rule-value.ts +1 -1
  571. package/scripts/rules/shell-segments.ts +35 -0
  572. package/scripts/rules/stop-rule-rows.ts +64 -0
  573. package/scripts/rules/stop-rules.ts +3 -4
  574. package/scripts/rules/test-declared-commit.ts +11 -1
  575. package/scripts/rules/third-party-write.ts +7 -0
  576. package/scripts/rules/timed-rerun.ts +69 -0
  577. package/scripts/rules/worktree-guard.ts +13 -3
  578. package/scripts/run/board/run-board-app-name.ts +23 -0
  579. package/scripts/run/board/run-board-cli.ts +65 -32
  580. package/scripts/run/board/run-board-earlier.ts +94 -0
  581. package/scripts/run/board/run-board-ending-reason.ts +67 -0
  582. package/scripts/run/board/run-board-estimate-schedule.ts +103 -0
  583. package/scripts/run/board/run-board-estimate.ts +98 -0
  584. package/scripts/run/board/run-board-fit.ts +153 -36
  585. package/scripts/run/board/run-board-fold.ts +123 -0
  586. package/scripts/run/board/run-board-fresh.ts +2 -2
  587. package/scripts/run/board/run-board-gather-live.ts +29 -0
  588. package/scripts/run/board/run-board-gather-thread.ts +189 -0
  589. package/scripts/run/board/run-board-gather-worker.ts +29 -0
  590. package/scripts/run/board/run-board-gather.ts +187 -0
  591. package/scripts/run/board/run-board-github.ts +118 -38
  592. package/scripts/run/board/run-board-header.ts +82 -20
  593. package/scripts/run/board/run-board-keys.ts +58 -0
  594. package/scripts/run/board/run-board-kind.ts +20 -6
  595. package/scripts/run/board/run-board-labels.ts +116 -71
  596. package/scripts/run/board/run-board-lane-state.ts +109 -0
  597. package/scripts/run/board/run-board-lane-time.ts +122 -0
  598. package/scripts/run/board/run-board-layout.ts +239 -60
  599. package/scripts/run/board/run-board-length.ts +52 -0
  600. package/scripts/run/board/run-board-machine.ts +8 -4
  601. package/scripts/run/board/run-board-main.ts +12 -0
  602. package/scripts/run/board/run-board-notes.ts +52 -31
  603. package/scripts/run/board/run-board-now.ts +1 -1
  604. package/scripts/run/board/run-board-operation.ts +15 -33
  605. package/scripts/run/board/run-board-phase.ts +1 -1
  606. package/scripts/run/board/run-board-plan-shared.ts +115 -0
  607. package/scripts/run/board/run-board-plan.ts +55 -3
  608. package/scripts/run/board/run-board-planning.ts +45 -0
  609. package/scripts/run/board/run-board-priority.ts +44 -0
  610. package/scripts/run/board/run-board-process-groups.ts +195 -0
  611. package/scripts/run/board/run-board-read.ts +151 -27
  612. package/scripts/run/board/run-board-reason.ts +235 -51
  613. package/scripts/run/board/run-board-released.ts +35 -0
  614. package/scripts/run/board/run-board-render-checks.ts +39 -5
  615. package/scripts/run/board/run-board-render-condition.ts +96 -0
  616. package/scripts/run/board/run-board-render-drawn.ts +67 -0
  617. package/scripts/run/board/run-board-render-foot.ts +59 -0
  618. package/scripts/run/board/run-board-render-icon.ts +35 -0
  619. package/scripts/run/board/run-board-render-lanes.ts +145 -0
  620. package/scripts/run/board/run-board-render-lead.ts +80 -0
  621. package/scripts/run/board/run-board-render-legend.ts +117 -48
  622. package/scripts/run/board/run-board-render-notes.ts +156 -29
  623. package/scripts/run/board/run-board-render-processes.ts +196 -0
  624. package/scripts/run/board/run-board-render-section.ts +119 -0
  625. package/scripts/run/board/run-board-render-slot.ts +3 -36
  626. package/scripts/run/board/run-board-render-tail.ts +115 -48
  627. package/scripts/run/board/run-board-render-time.ts +56 -0
  628. package/scripts/run/board/run-board-render-title.ts +117 -24
  629. package/scripts/run/board/run-board-render-waits.ts +104 -20
  630. package/scripts/run/board/run-board-render.ts +207 -265
  631. package/scripts/run/board/run-board-roots.ts +54 -0
  632. package/scripts/run/board/run-board-row-yield.ts +9 -4
  633. package/scripts/run/board/run-board-setup.ts +1 -12
  634. package/scripts/run/board/run-board-snapshot.ts +111 -0
  635. package/scripts/run/board/run-board-spin.ts +2 -2
  636. package/scripts/run/board/run-board-state.ts +22 -33
  637. package/scripts/run/board/run-board-status.ts +147 -71
  638. package/scripts/run/board/run-board-thanks-read.ts +2 -2
  639. package/scripts/run/board/run-board-tick.ts +122 -107
  640. package/scripts/run/board/run-board-usage-board.ts +78 -0
  641. package/scripts/run/board/run-board-usage-lanes.ts +113 -0
  642. package/scripts/run/board/run-board-usage-listing.ts +93 -0
  643. package/scripts/run/board/run-board-usage-read.ts +120 -150
  644. package/scripts/run/board/run-board-usage-rusage.ts +19 -7
  645. package/scripts/run/board/run-board-usage-text.ts +139 -51
  646. package/scripts/run/board/run-board-usage-top.ts +102 -0
  647. package/scripts/run/board/run-board-usage.ts +89 -72
  648. package/scripts/run/board/run-board-usual.ts +20 -9
  649. package/scripts/run/carry/run-carry-args.ts +4 -7
  650. package/scripts/run/carry/run-carry-conversation.ts +1 -1
  651. package/scripts/run/carry/run-carry.ts +9 -4
  652. package/scripts/run/cut/run-cut-handoff.ts +2 -2
  653. package/scripts/run/event/run-event-cli.ts +1 -5
  654. package/scripts/run/event/run-event-filed.ts +12 -6
  655. package/scripts/run/event/run-event-follow.ts +2 -3
  656. package/scripts/run/event/run-event-render.ts +6 -10
  657. package/scripts/run/event/run-event-scope.ts +2 -2
  658. package/scripts/run/event/run-event-stream-emit.ts +82 -22
  659. package/scripts/run/event/run-event-stream.ts +34 -8
  660. package/scripts/run/hold/run-hold-adopt.ts +65 -0
  661. package/scripts/run/hold/run-hold-cli.ts +93 -22
  662. package/scripts/run/hold/run-hold-main.ts +12 -0
  663. package/scripts/run/hold/run-hold-member.ts +37 -0
  664. package/scripts/run/hold/run-stop-notify.ts +183 -0
  665. package/scripts/run/merge/run-merge-auth.ts +31 -0
  666. package/scripts/run/merge/run-merge-cli.ts +62 -48
  667. package/scripts/run/merge/run-merge-close.ts +74 -0
  668. package/scripts/run/merge/run-merge-collect.ts +6 -13
  669. package/scripts/run/merge/run-merge-driver.ts +71 -0
  670. package/scripts/run/merge/run-merge-main.ts +12 -0
  671. package/scripts/run/merge/run-merge-outcome.ts +23 -0
  672. package/scripts/run/merge/run-merge-restart.ts +39 -0
  673. package/scripts/run/merge/run-merge-ship.ts +20 -4
  674. package/scripts/run/merge/run-merge-signals.ts +33 -9
  675. package/scripts/run/merge/run-merge-steps.ts +120 -85
  676. package/scripts/run/merge/run-merge.ts +38 -37
  677. package/scripts/run/park/run-park-cli.ts +91 -0
  678. package/scripts/run/park/run-park.ts +88 -0
  679. package/scripts/run/park/run-stalled.ts +68 -0
  680. package/scripts/run/pause/run-pause-cli.ts +73 -0
  681. package/scripts/run/pause/run-pause.ts +251 -0
  682. package/scripts/run/progress/run-progress-cli.ts +4 -12
  683. package/scripts/run/progress/run-progress-clock.ts +1 -1
  684. package/scripts/run/progress/run-progress-config.ts +6 -14
  685. package/scripts/run/progress/run-progress-main.ts +12 -0
  686. package/scripts/run/progress/run-progress.ts +1 -4
  687. package/scripts/run/review/run-review.ts +2 -1
  688. package/scripts/run/run-ending.ts +1 -0
  689. package/scripts/run/run-invocation.ts +5 -6
  690. package/scripts/run/run-liveness-cli.ts +6 -8
  691. package/scripts/run/run-liveness.ts +60 -29
  692. package/scripts/run/run-next.ts +1 -1
  693. package/scripts/run/run-parent-cut-hook.ts +2 -2
  694. package/scripts/run/run-preflight.ts +18 -3
  695. package/scripts/run/run-prep-cli.ts +1 -10
  696. package/scripts/run/run-prep-locate.ts +7 -50
  697. package/scripts/run/run-prep-main.ts +12 -0
  698. package/scripts/run/run-prep.ts +6 -0
  699. package/scripts/run/run-report-cli.ts +101 -13
  700. package/scripts/run/run-report-handoff.ts +114 -0
  701. package/scripts/run/run-step.ts +1 -1
  702. package/scripts/run/run-stranded-detect.ts +13 -0
  703. package/scripts/run/run-watcher-guard-cli.ts +1 -1
  704. package/scripts/run/run-watcher-guard.ts +1 -1
  705. package/scripts/run/ship/run-ship-args.ts +121 -0
  706. package/scripts/run/ship/run-ship-body-draft.ts +110 -0
  707. package/scripts/run/ship/run-ship-cli.ts +63 -140
  708. package/scripts/run/ship/run-ship-detach.ts +19 -8
  709. package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
  710. package/scripts/run/ship/run-ship-next.ts +18 -2
  711. package/scripts/run/ship/run-ship-overlap.ts +42 -5
  712. package/scripts/run/ship/run-ship-place.ts +96 -0
  713. package/scripts/run/ship/run-ship-pre-detach-timed.ts +43 -0
  714. package/scripts/run/ship/run-ship-pre-detach.ts +81 -24
  715. package/scripts/run/ship/run-ship-preflight.ts +137 -32
  716. package/scripts/run/ship/run-ship-probe.ts +11 -3
  717. package/scripts/run/ship/run-ship-relaunch-cap.ts +70 -0
  718. package/scripts/run/ship/run-ship-removed-rows.ts +61 -0
  719. package/scripts/run/ship/run-ship-return.ts +107 -23
  720. package/scripts/run/ship/run-ship-review-steps.ts +105 -151
  721. package/scripts/run/ship/run-ship-review.ts +73 -6
  722. package/scripts/run/ship/run-ship-reviewer.ts +207 -0
  723. package/scripts/run/ship/run-ship-stage.ts +55 -6
  724. package/scripts/run/ship/run-ship-steps.ts +46 -15
  725. package/scripts/run/ship/run-ship-stop-cause.ts +135 -0
  726. package/scripts/run/ship/run-ship-stop-text.ts +11 -6
  727. package/scripts/run/ship/run-ship-sync.ts +43 -6
  728. package/scripts/run/ship/run-ship.ts +30 -2
  729. package/scripts/run/tidy/run-tidy-cli.ts +0 -4
  730. package/scripts/run/tidy/run-tidy-lanes.ts +3 -0
  731. package/scripts/run/tidy/run-tidy-main.ts +8 -0
  732. package/scripts/run/wake/run-wake-cli.ts +119 -100
  733. package/scripts/run/wake/run-wake-code.ts +83 -0
  734. package/scripts/run/wake/run-wake-driver.ts +19 -8
  735. package/scripts/run/wake/run-wake-loop.ts +34 -3
  736. package/scripts/run/wake/run-wake-main.ts +13 -0
  737. package/scripts/run/wake/run-wake-ports.ts +90 -0
  738. package/scripts/run/wake/run-wake-takeover.ts +66 -0
  739. package/scripts/run/wake/run-wake.ts +2 -1
  740. package/scripts/safe-chain/pack-hook.ts +2 -2
  741. package/scripts/safe-chain/preinstall-command.ts +2 -1
  742. package/scripts/safe-chain/project-config.ts +3 -9
  743. package/scripts/security/security-audit-main.ts +8 -0
  744. package/scripts/security/security-audit-provision-logic.ts +0 -11
  745. package/scripts/security/security-audit-provision-main.ts +12 -0
  746. package/scripts/security/security-audit-provision.ts +11 -26
  747. package/scripts/security/security-audit.ts +6 -7
  748. package/scripts/self-sync-guard/self-sync-guard-logic.ts +6 -13
  749. package/scripts/split/split-assess-cli.ts +2 -2
  750. package/scripts/split/split-assess.ts +15 -0
  751. package/scripts/split/split-measure.ts +65 -0
  752. package/scripts/sync/claude-settings-merge.ts +8 -15
  753. package/scripts/sync/directory-copy-guard.ts +4 -9
  754. package/scripts/sync/file-content.ts +78 -8
  755. package/scripts/sync/sync-ai-files.ts +3 -5
  756. package/scripts/sync/sync-configs.ts +11 -23
  757. package/scripts/sync/sync-hook-safety.ts +4 -10
  758. package/scripts/sync/sync-main.ts +11 -0
  759. package/scripts/sync/sync.ts +25 -37
  760. package/scripts/test/test-declared-changed.ts +2 -2
  761. package/scripts/test/test-declared.ts +1 -1
  762. package/scripts/test/test-e2e-guard.ts +25 -1
  763. package/scripts/test/test-e2e-stamp.ts +38 -0
  764. package/scripts/test/test-pinned-logic.ts +145 -0
  765. package/scripts/test/test-pinned-main.ts +78 -0
  766. package/scripts/test/test-pinned.ts +100 -0
  767. package/scripts/test/test-read-map.ts +264 -0
  768. package/scripts/test/test-read-recording.ts +91 -0
  769. package/scripts/test/test-read-trace.ts +148 -0
  770. package/scripts/test/test-red-main.ts +12 -0
  771. package/scripts/test/test-red.ts +12 -30
  772. package/scripts/test/test-related-main.ts +18 -0
  773. package/scripts/test/test-related-record.ts +119 -0
  774. package/scripts/test/test-related-scope.ts +229 -43
  775. package/scripts/test/test-related.ts +300 -22
  776. package/scripts/test/test-unit-guard-main.ts +15 -0
  777. package/scripts/test/test-unit-guard.ts +42 -24
  778. package/scripts/test/unit-count-file.ts +37 -0
  779. package/scripts/test/unit-run-marker.ts +162 -0
  780. package/scripts/test/unit-setup-files.ts +51 -0
  781. package/scripts/test/unit-worker-share.ts +61 -149
  782. package/scripts/test/whole-suite-files.ts +63 -0
  783. package/scripts/time-runtime/time-background.ts +20 -2
  784. package/scripts/time-runtime/time-bundles.ts +4 -3
  785. package/scripts/time-runtime/time-density-hook.ts +8 -6
  786. package/scripts/time-runtime/time-followup-stage.ts +1 -3
  787. package/scripts/time-runtime/time-format.ts +5 -28
  788. package/scripts/time-runtime/time-markers.ts +10 -1
  789. package/scripts/time-runtime/time-shell.ts +97 -10
  790. package/scripts/time-runtime/time-transcript-line.ts +49 -62
  791. package/scripts/uninstall/uninstall.ts +1 -1
  792. package/scripts/version/bump-version-main.ts +12 -0
  793. package/scripts/version/bump-version.ts +25 -25
  794. package/scripts/version/effective-upstream.ts +6 -12
  795. package/scripts/version/latest-corepack.ts +17 -32
  796. package/scripts/version/latest-if-required-cli.ts +93 -0
  797. package/scripts/version/latest-lane-guard-main.ts +8 -0
  798. package/scripts/version/latest-lane-guard.ts +0 -4
  799. package/scripts/version/latest-scope-cli.ts +0 -9
  800. package/scripts/version/latest-scope-main.ts +12 -0
  801. package/scripts/version/latest-update.ts +5 -5
  802. package/scripts/version/npm-registry.ts +44 -6
  803. package/scripts/version/publishable-range-check.ts +5 -16
  804. package/scripts/version/release-age.ts +1 -1
  805. package/scripts/version/release-hold.ts +1 -1
  806. package/scripts/version/release-window.ts +38 -0
  807. package/scripts/version/running-binary.ts +1 -1
  808. package/scripts/version/safe-chain-version-update.ts +3 -8
  809. package/scripts/version/version-targets.ts +6 -28
  810. package/templates/dependabot.yml +29 -0
  811. package/templates/gitignore +4 -1
  812. package/templates/pnpm-workspace.basic.yaml +1 -1
  813. package/templates/sonar-project.properties +3 -2
  814. package/templates/workflows/ci.yml +12 -4
  815. package/templates/workflows/github-release.yml +4 -0
  816. package/tsconfig.sonar.json +1 -1
  817. package/.ncurc.json +0 -3
  818. package/dist/hooks/batch-guard.js +0 -29
  819. package/dist/hooks/chunk-4KKD2UTK.js +0 -66
  820. package/dist/hooks/chunk-6TS2JD6D.js +0 -237
  821. package/dist/hooks/chunk-7DSBJVFH.js +0 -50
  822. package/dist/hooks/chunk-A65Y4YOR.js +0 -79
  823. package/dist/hooks/chunk-CDY4NFQG.js +0 -15
  824. package/dist/hooks/chunk-EFXE6C37.js +0 -81
  825. package/dist/hooks/chunk-GP4IEC4O.js +0 -20
  826. package/dist/hooks/chunk-JP45SOCJ.js +0 -56
  827. package/dist/hooks/chunk-LAOV7NLM.js +0 -45
  828. package/dist/hooks/chunk-M4HGZV7U.js +0 -83
  829. package/dist/hooks/chunk-PF2NZL2A.js +0 -131
  830. package/dist/hooks/chunk-PTICX4OL.js +0 -358
  831. package/dist/hooks/chunk-RT27QRJW.js +0 -6247
  832. package/dist/hooks/chunk-SYOTDYCI.js +0 -3533
  833. package/dist/hooks/chunk-UPUZF3AN.js +0 -279
  834. package/dist/hooks/chunk-WK6SMBIC.js +0 -3180
  835. package/dist/hooks/duplicate-read-guard.js +0 -30
  836. package/dist/hooks/investigation-guard.js +0 -29
  837. package/scripts/backlog/backlog-stalled-cli.ts +0 -30
  838. package/scripts/cost-runtime/cost-format.ts +0 -29
  839. package/scripts/init/basic-path-migration.ts +0 -24
  840. package/scripts/issue/issue-backlinks-cli.ts +0 -93
  841. package/scripts/josh/josh-commands-guard.ts +0 -38
  842. package/scripts/josh/josh-usage-automation.ts +0 -121
  843. package/scripts/josh/josh-usage-backlog.ts +0 -180
  844. package/scripts/josh/josh-usage-developer.ts +0 -230
  845. package/scripts/josh/josh-usage-hooks.ts +0 -38
  846. package/scripts/josh/josh-usage-issue.ts +0 -205
  847. package/scripts/josh/josh-usage-review.ts +0 -101
  848. package/scripts/josh/josh-usage-run.ts +0 -252
  849. package/scripts/josh/josh-usage-session.ts +0 -238
  850. package/scripts/josh/josh-usage-workflow.ts +0 -212
  851. package/scripts/lint/cross-file-recheck.ts +0 -155
  852. package/scripts/registry-migration/migrate-logic.ts +0 -237
  853. package/scripts/registry-migration/migrate.ts +0 -292
  854. package/scripts/registry-migration/user-npmrc.ts +0 -15
  855. package/scripts/rules/rule-guard.ts +0 -23
  856. package/scripts/rules/rule-registry-rows.ts +0 -292
  857. package/scripts/rules/rule-registry.ts +0 -112
  858. package/scripts/run/run-stranded-cli.ts +0 -27
@@ -1,6 +1,12 @@
1
+ import { ports } from '#ports'
1
2
  import { core_budget } from '#scripts/gate/core-budget'
2
3
  import { gate_plan } from '#scripts/gate/gate-plan'
3
4
  import { GATE_COMMAND, type CommandEntry } from './josh-command-types'
5
+ import { AGENT_HOOK_COMMANDS } from './josh-commands-agent-hooks'
6
+
7
+ const NARROWED = { arguments: 'scripts/thing.ts', note: 'narrow by the given files instead' }
8
+ // The unseeded ports are read from `ports/index.js`, their one definition (#818).
9
+ const UNSEEDED: Readonly<Record<string, string | undefined>> = {}
4
10
 
5
11
  const FILE_ARGUMENTS = '[files...]'
6
12
  const REQUIRED_FILE_ARGUMENTS = '<files...>'
@@ -11,24 +17,41 @@ const PATH_ARGUMENTS = '<path...>'
11
17
  /* eslint-disable @typescript-eslint/naming-convention */
12
18
  const DEV_COMMANDS: Record<string, CommandEntry> = {
13
19
  'pr:classification': {
14
- script: 'scripts/ci/pr-classification.ts',
20
+ script: 'scripts/ci/pr-classification-main.ts',
15
21
  description: 'Require one release classification on a pull request',
16
22
  category: 'Development',
17
23
  reference: ['', 'automation', ['none']],
24
+ usage: {
25
+ examples: [{ arguments: '', note: 'run by CI on a pull request; fails without one label' }],
26
+ },
18
27
  },
19
28
  [GATE_COMMAND]: {
20
29
  script: 'scripts/gate/verification-gate.ts',
21
30
  description: 'Run lint, type check, spell check and unit tests concurrently',
22
31
  category: 'Development',
23
32
  reference: ['[--verbose|--force|--no-unit]', 'developer', ['files', 'processes']],
33
+ usage: {
34
+ examples: [
35
+ { arguments: '' },
36
+ { arguments: '--verbose', note: "every check's output, passing ones included" },
37
+ { arguments: '--force', note: 're-run even on a tree already recorded green' },
38
+ { arguments: '--no-unit', note: 'the static checks only (CI only)' },
39
+ ],
40
+ },
24
41
  },
25
42
  lint: {
26
- script: 'scripts/lint/lint-parallel.ts',
43
+ script: 'scripts/lint/lint-parallel-main.ts',
27
44
  description: 'Check code with prettier and eslint (skips a tool a basic project lacks)',
28
45
  category: 'Development',
29
- reference: ['', 'developer', ['processes']],
46
+ reference: ['[--changed]', 'developer', ['processes']],
30
47
  core_weight: core_budget.CORE_WEIGHTS.lint,
31
48
  memory_mb: core_budget.MEMORY_MB.lint,
49
+ usage: {
50
+ examples: [
51
+ { arguments: '' },
52
+ { arguments: '--changed', note: "the branch's changed files — the gate's form" },
53
+ ],
54
+ },
32
55
  },
33
56
  'lint:related': {
34
57
  script: 'scripts/lint/lint-related.ts',
@@ -37,6 +60,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
37
60
  reference: [FILE_ARGUMENTS, 'developer', ['processes']],
38
61
  core_weight: core_budget.CORE_WEIGHTS.lint,
39
62
  memory_mb: core_budget.MEMORY_MB.lint,
63
+ usage: { examples: [{ arguments: '' }, NARROWED] },
40
64
  },
41
65
  lines: {
42
66
  script: 'scripts/lines/lines-command.ts',
@@ -45,9 +69,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
45
69
  reference: [REQUIRED_FILE_ARGUMENTS, 'developer', ['none']],
46
70
  core_weight: core_budget.CORE_WEIGHTS.eslint_scan,
47
71
  memory_mb: core_budget.MEMORY_MB.eslint_scan,
72
+ usage: {
73
+ examples: [{ arguments: 'scripts/hooks/format-edited-file.ts scripts/josh/josh-logic.ts' }],
74
+ },
48
75
  },
49
76
  metrics: {
50
- script: 'scripts/metrics/metrics-command.ts',
77
+ script: 'tools/metrics/metrics-command.ts',
51
78
  description:
52
79
  'Print repository-wide quality totals and durations, and fail when a total grew past the merge-base or a duration past its baseline',
53
80
  category: 'Development',
@@ -59,6 +86,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
59
86
  core_weight: core_budget.CORE_WEIGHTS.eslint_scan,
60
87
  memory_mb: core_budget.MEMORY_MB.eslint_scan,
61
88
  is_kit_only: true,
89
+ usage: {
90
+ examples: [
91
+ { arguments: '', note: "print the totals and check them against the merge-base's" },
92
+ { arguments: '--accept --reason "<why>"', note: "record this branch's growth and why" },
93
+ ],
94
+ },
62
95
  },
63
96
  'refactor:scan': {
64
97
  script: 'scripts/refactor/refactor-scan-cli.ts',
@@ -68,6 +101,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
68
101
  reference: ['', 'automation', ['processes']],
69
102
  core_weight: core_budget.CORE_WEIGHTS.eslint_scan,
70
103
  memory_mb: core_budget.MEMORY_MB.eslint_scan,
104
+ usage: { examples: [{ arguments: '' }] },
71
105
  },
72
106
  bytes: {
73
107
  script: 'scripts/lines/bytes-command.ts',
@@ -75,6 +109,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
75
109
  "Print an agent-read document's byte size against its ceiling and the headroom left",
76
110
  category: 'Development',
77
111
  reference: [REQUIRED_FILE_ARGUMENTS, 'developer', ['none']],
112
+ usage: {
113
+ examples: [
114
+ { arguments: 'docs/josh-commands.md', note: 'one document' },
115
+ { arguments: '', note: 'scan: every budgeted document near its ceiling' },
116
+ ],
117
+ },
78
118
  },
79
119
  'rule:value': {
80
120
  script: 'scripts/rules/rule-value-cli.ts',
@@ -82,6 +122,15 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
82
122
  "Print each delivered rule's unaided compliance — runs reached, kept rate, refusals",
83
123
  category: 'AI tools',
84
124
  reference: ['[--refresh]', 'developer', ['files']],
125
+ usage: {
126
+ examples: [
127
+ { arguments: '' },
128
+ {
129
+ arguments: '--refresh',
130
+ note: 'write the reading to the loop-head cache instead of stdout',
131
+ },
132
+ ],
133
+ },
85
134
  },
86
135
  'rule:list': {
87
136
  script: 'scripts/rules/rule-list.ts',
@@ -89,73 +138,16 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
89
138
  "Print the trigger-delivered rules — each one's source, firing call and silent turn — from the guard rows",
90
139
  category: 'AI tools',
91
140
  reference: ['', 'automation', ['none']],
141
+ usage: { examples: [{ arguments: '', note: 'print every trigger-delivered rule' }] },
92
142
  },
93
143
  format: {
94
144
  script: 'scripts/lint/format.ts',
95
145
  description: 'Format code with prettier and eslint (skips a tool a basic project lacks)',
96
146
  category: 'Development',
97
147
  reference: ['', 'developer', ['files', 'processes']],
148
+ usage: { examples: [{ arguments: '' }] },
98
149
  },
99
- 'format:edited': {
100
- script: 'scripts/hooks/format-edited-cli.ts',
101
- description: 'Claude Code hook: format the file just edited (reads the tool call on stdin)',
102
- category: 'Development',
103
- reference: ['', 'automation', ['files', 'processes']],
104
- },
105
- 'batch:guard': {
106
- script: 'scripts/hooks/batch-guard.ts',
107
- description:
108
- 'Claude Code hook: refuse a third consecutive single-call turn (reads the tool call on stdin)',
109
- category: 'Development',
110
- reference: ['', 'automation', ['none']],
111
- // **No `tsx_arguments`, deliberately.** `JOSH_BATCH_GUARD` is a per-machine preference kept in
112
- // `.env`, which every other command reads through `OPTIONAL_ENV_FILE_FLAGS` — but declaring any
113
- // `tsx_arguments` disqualifies a command from in-process dispatch (`josh-in-process.ts`), and
114
- // this one runs before every `Bash` call, where a second ~0.16 s tsx start is not affordable.
115
- // The script calls `process.loadEnvFile` itself instead, which is
116
- // node's own `--env-file` parser with node's own precedence.
117
- },
118
- 'pretool:guard': {
119
- script: 'scripts/hooks/pretool-guard-cli.ts',
120
- description:
121
- 'Claude Code hook: the batch, investigation and rule guards in one process (reads the tool call on stdin)',
122
- category: 'Development',
123
- reference: ['', 'automation', ['none']],
124
- // **No `tsx_arguments`, deliberately**, the same as `batch:guard` above: this is the one
125
- // PreToolUse hook consumers run before every guarded call, so it must stay eligible for
126
- // in-process dispatch rather than pay a second tsx start. Each guard it composes loads `.env`
127
- // through the shared loader.
128
- },
129
- 'stop:guard': {
130
- script: 'scripts/hooks/stop-guard.ts',
131
- description:
132
- 'Claude Code Stop hook: send the hold notify, release the hold and print the issue citations itself; block on the rules that need the model (reads the Stop payload on stdin)',
133
- category: 'Development',
134
- reference: ['', 'automation', ['none']],
135
- // **No `tsx_arguments`, deliberately**, the same as `pretool:guard` above: this runs at every
136
- // turn end, so it must stay eligible for in-process dispatch rather than pay a second tsx start.
137
- // It loads `.env` through the shared `hook-decision.ts` loader.
138
- },
139
- 'session:lang': {
140
- script: 'scripts/josh/session-language-cli.ts',
141
- description:
142
- 'Claude Code hook: print a non-default JOSH_SESSION_LANG for the session context, and the run:board reply rule while a backlogrun is live (otherwise nothing)',
143
- category: 'Development',
144
- reference: ['', 'automation', ['none']],
145
- // **No `tsx_arguments`, deliberately**, the same as `batch:guard` above: this runs on every
146
- // `UserPromptSubmit`, so it must stay eligible for in-process dispatch rather than pay a second
147
- // tsx start each turn. It calls `process.loadEnvFile` itself through the shared loader.
148
- },
149
- 'codex:hook-adapter': {
150
- script: 'scripts/hooks/codex-hook-adapter.ts',
151
- description:
152
- 'Codex hook: run the pretool or posttool guard on a Codex payload (reads the tool call on stdin)',
153
- category: 'Development',
154
- reference: ['<pretool|posttool>', 'automation', ['none']],
155
- // The live-source fallback `scripts/hooks/run-hook.sh` derives from the `codex-hook-adapter`
156
- // bundle name. **No `tsx_arguments`**, the same as `pretool:guard`
157
- // above: it runs before every guarded Codex call.
158
- },
150
+ ...AGENT_HOOK_COMMANDS,
159
151
  'cspell:dot': {
160
152
  script: 'scripts/lint/cspell-cached.ts',
161
153
  description: 'Run spell check including dotfiles',
@@ -163,6 +155,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
163
155
  reference: ['', 'developer', ['processes']],
164
156
  core_weight: core_budget.CORE_WEIGHTS.spell_check,
165
157
  memory_mb: core_budget.MEMORY_MB.spell_check,
158
+ usage: { examples: [{ arguments: '', note: 'includes dotfiles' }] },
166
159
  },
167
160
  behavior: {
168
161
  script: 'scripts/behavior/behavior-cli.ts',
@@ -170,6 +163,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
170
163
  "Check the current run's recorded transcript against the behavior assertions (no model call)",
171
164
  category: 'Development',
172
165
  reference: ['', 'developer', ['files']],
166
+ usage: { examples: [{ arguments: '' }] },
173
167
  },
174
168
  'exports:unused': {
175
169
  script: 'scripts/exports/unused-members-cli.ts',
@@ -177,23 +171,30 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
177
171
  'Report exported namespace members nothing reads (kit only; a consumer project skips it)',
178
172
  category: 'Development',
179
173
  reference: ['', 'developer', ['none']],
174
+ usage: { examples: [{ arguments: '' }] },
180
175
  },
181
176
  'test:unit': {
182
- script: 'scripts/test/test-unit-guard.ts',
177
+ script: 'scripts/test/test-unit-guard-main.ts',
183
178
  description:
184
179
  'Run unit tests with Vitest (without Vitest: a basic project runs its own test script, others skip; fails when Vitest has no tests)',
185
180
  category: 'Development',
186
181
  reference: [FILTER_ARGUMENTS, 'developer', ['processes']],
187
- core_weight: gate_plan.direct_unit_weight,
188
- memory_mb: gate_plan.direct_unit_memory,
182
+ ...gate_plan.DIRECT_UNIT_CLAIM,
183
+ usage: { examples: [{ arguments: '' }] },
189
184
  },
190
185
  'test:related': {
191
- script: 'scripts/test/test-related.ts',
186
+ script: 'scripts/test/test-related-main.ts',
192
187
  description: 'Run only the unit tests related to the changed files (full suite on fallback)',
193
188
  category: 'Development',
194
189
  reference: [FILE_ARGUMENTS, 'developer', ['processes']],
195
- core_weight: gate_plan.direct_unit_weight,
196
- memory_mb: gate_plan.direct_unit_memory,
190
+ ...gate_plan.DIRECT_UNIT_CLAIM,
191
+ usage: {
192
+ examples: [
193
+ { arguments: '' },
194
+ NARROWED,
195
+ { arguments: '--silent', note: 'flags are forwarded to vitest' },
196
+ ],
197
+ },
197
198
  },
198
199
  'test:declared': {
199
200
  script: 'scripts/test/test-declared.ts',
@@ -201,13 +202,35 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
201
202
  'Report whether the working-tree change needs a test (required/exempt/satisfied); --match checks Step 0 declarations on stdin',
202
203
  category: 'Development',
203
204
  reference: [MATCH_ARGUMENTS, 'developer', ['processes']],
205
+ usage: {
206
+ examples: [
207
+ { arguments: '' },
208
+ { arguments: '--match', note: 'check Step 0 declarations on stdin' },
209
+ { arguments: '--help', note: 'print usage, including the --match stdin form' },
210
+ ],
211
+ },
204
212
  },
205
213
  'test:red': {
206
- script: 'scripts/test/test-red.ts',
214
+ script: 'scripts/test/test-red-main.ts',
207
215
  description:
208
216
  'Run the changed unit tests against the pre-fix tree (merge-base worktree) and report red/green/no-test/test-only',
209
217
  category: 'Development',
210
218
  reference: ['', 'developer', ['git', 'processes']],
219
+ usage: { examples: [{ arguments: '', note: 'red, green, no-test or test-only' }] },
220
+ },
221
+ 'test:pinned': {
222
+ script: 'scripts/test/test-pinned-main.ts',
223
+ description:
224
+ 'Revert each changed non-test hunk in a HEAD worktree, run its related tests, and list the hunks no test went red on',
225
+ category: 'Development',
226
+ reference: ['[--max <n>]', 'developer', ['git', 'processes']],
227
+ ...gate_plan.DIRECT_UNIT_CLAIM,
228
+ usage: {
229
+ examples: [
230
+ { arguments: '', note: 'unpinned / unchecked <file>:<line> lines' },
231
+ { arguments: '--max 5', note: 'check at most 5 hunks; the rest print as unchecked' },
232
+ ],
233
+ },
211
234
  },
212
235
  disposition: {
213
236
  script: 'scripts/review/disposition-cli.ts',
@@ -215,18 +238,21 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
215
238
  'Say whether a review finding reaches a runtime path (runtime) or is inert (non-runtime)',
216
239
  category: 'AI tools',
217
240
  reference: [PATH_ARGUMENTS, 'automation', ['none']],
241
+ usage: { examples: [{ arguments: '<path...>', note: '→ runtime | non-runtime' }] },
218
242
  },
219
243
  'e2e:retry-check': {
220
244
  script: 'scripts/test/e2e-retry-check.ts',
221
245
  description: 'Report whether the preview server crashed during a failed E2E attempt (CI)',
222
246
  category: 'Development',
223
247
  reference: ['', 'automation', ['none']],
248
+ usage: { examples: [{ arguments: '' }] },
224
249
  },
225
250
  'test:e2e': {
226
251
  script: 'scripts/test/test-e2e-guard.ts',
227
252
  description: 'Run E2E tests with Playwright (skips when absent or no e2e files)',
228
253
  category: 'Development',
229
254
  reference: [FILTER_ARGUMENTS, 'developer', ['processes']],
255
+ usage: { examples: [{ arguments: '' }] },
230
256
  },
231
257
  test: {
232
258
  shell: ['sh', '-c', 'pnpm josh test:unit && pnpm josh test:e2e'],
@@ -234,6 +260,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
234
260
  category: 'Development',
235
261
  reference: ['', 'developer', ['processes']],
236
262
  argument_targets: ['test:unit', 'test:e2e'],
263
+ usage: { examples: [{ arguments: '' }] },
237
264
  },
238
265
  check: {
239
266
  script: 'scripts/gate/type-check-command.ts',
@@ -242,12 +269,25 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
242
269
  reference: ['[arguments...]', 'developer', ['processes']],
243
270
  core_weight: core_budget.CORE_WEIGHTS.type_check,
244
271
  memory_mb: core_budget.MEMORY_MB.type_check,
272
+ usage: { examples: [{ arguments: '' }] },
245
273
  },
246
274
  port: {
247
275
  script: 'scripts/ports/port-command.ts',
248
276
  description: 'Print the PORT_SEED-resolved dev or preview port',
249
277
  category: 'Development',
250
278
  reference: ['<dev|preview>', 'developer', ['none']],
279
+ usage: {
280
+ examples: [
281
+ {
282
+ arguments: 'dev',
283
+ note: `${String(ports.resolve_development_port(UNSEEDED))} with no seed set`,
284
+ },
285
+ {
286
+ arguments: 'preview',
287
+ note: `${String(ports.resolve_preview_port(UNSEEDED))} with no seed set`,
288
+ },
289
+ ],
290
+ },
251
291
  },
252
292
  }
253
293
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -9,17 +9,31 @@ import type { CommandEntry } from './josh-command-types'
9
9
  /* eslint-disable @typescript-eslint/naming-convention */
10
10
  const DOCUMENT_COMMANDS: Record<string, CommandEntry> = {
11
11
  'doc:section': {
12
- script: 'scripts/document/document-section-cli.ts',
12
+ script: 'scripts/document/document-section-main.ts',
13
13
  description: 'Print one section of a markdown document, for a `file.md` → "Heading" reference',
14
14
  category: 'AI tools',
15
15
  reference: ['<file> <heading>', 'automation', ['none']],
16
16
  is_bundled: true,
17
+ usage: {
18
+ examples: [
19
+ { arguments: '<file.md> "<heading>"' },
20
+ { arguments: 'backlogrun.md "The hand-off"' },
21
+ ],
22
+ },
17
23
  },
18
24
  'read:set': {
19
25
  script: 'scripts/document/read-set-cli.ts',
20
26
  description: 'Print what an entry point reads before it starts, and what that read costs',
21
27
  category: 'AI tools',
22
28
  reference: ['[<entry>] [--json]', 'automation', ['none']],
29
+ is_bundled: true,
30
+ usage: {
31
+ examples: [
32
+ { arguments: '', note: 'every entry point' },
33
+ { arguments: 'backlogrun', note: 'one of them' },
34
+ { arguments: 'backlogrun --json' },
35
+ ],
36
+ },
23
37
  },
24
38
  'doc:read': {
25
39
  script: 'scripts/document/document-read-cli.ts',
@@ -27,18 +41,46 @@ const DOCUMENT_COMMANDS: Record<string, CommandEntry> = {
27
41
  'Read a whole document safely: print it, or point at the Read tool when over the Bash cap',
28
42
  category: 'AI tools',
29
43
  reference: ['<file>', 'automation', ['none']],
44
+ is_bundled: true,
45
+ usage: {
46
+ examples: [
47
+ { arguments: 'CLAUDE.md', note: 'under the cap: prints the document' },
48
+ { arguments: 'backlogrun.md', note: 'over the cap: prints a directive, no content' },
49
+ ],
50
+ },
30
51
  },
31
52
  'read:files': {
32
53
  script: 'scripts/document/read-files-cli.ts',
33
54
  description: 'Read several files in one call so edit targets fold into one turn',
34
55
  category: 'AI tools',
35
56
  reference: ['<path> [<path> ...]', 'automation', ['none']],
57
+ usage: {
58
+ examples: [
59
+ {
60
+ arguments: 'a.ts b.ts c.ts',
61
+ note: 'under the cap: prints each file under its own header',
62
+ },
63
+ {
64
+ arguments: 'a.ts big.ts',
65
+ note: 'over the cap: prints a directive to Read them in one turn, no content',
66
+ },
67
+ ],
68
+ },
36
69
  },
37
70
  'edit:files': {
38
71
  script: 'scripts/document/edit-files-cli.ts',
39
72
  description: 'Apply several content-addressed edits from a plan in one call',
40
73
  category: 'AI tools',
41
74
  reference: ['<plan-path | ->', 'automation', ['none']],
75
+ usage: {
76
+ examples: [
77
+ {
78
+ arguments: 'plan.txt',
79
+ note: 'applies every block in the plan, one line per edit reporting the outcome',
80
+ },
81
+ { arguments: "- <<'EDITS'", note: 'plan from stdin, then EDITS' },
82
+ ],
83
+ },
42
84
  },
43
85
  }
44
86
  /* eslint-enable @typescript-eslint/naming-convention */
@@ -0,0 +1,171 @@
1
+ import type { CommandEntry } from './josh-command-types'
2
+
3
+ const REPO = '--repo <owner/repo>'
4
+ const EXCLUDE = '--exclude <N>'
5
+ const JUST_MERGED = 'skip the issue just merged'
6
+
7
+ // The epic and auto-ok commands, split out of `josh-commands-ai.ts` when each command's usage moved onto
8
+ // its entry (#4185). `AI_COMMANDS` spreads this in at the same place, so the map keeps its order.
9
+
10
+ /* eslint-disable @typescript-eslint/naming-convention */
11
+ const EPIC_COMMANDS: Record<string, CommandEntry> = {
12
+ epic: {
13
+ script: 'scripts/epic/epic.ts',
14
+ description: 'Create an epic issue from its child issue numbers',
15
+ category: 'AI tools',
16
+ reference: ['<title> <issue...> [--ordered]', 'automation', ['network']],
17
+ usage: {
18
+ examples: [
19
+ { arguments: '"Epic: split the parser work" 101 102 103' },
20
+ { arguments: '"Epic: staged rollout" 101 102 --ordered' },
21
+ { arguments: '"Epic: ..." 101 102 --rationale-file rationale.md' },
22
+ { arguments: '--promote 858 101 102 103', note: 'turn an existing issue into an epic' },
23
+ { arguments: '--add 893 894', note: 'track #894, declaring no order for it' },
24
+ { arguments: '--add 893 894 --before 891', note: '#894 must finish before #891' },
25
+ { arguments: '--add 893 894 --after 890', note: '#894 starts once #890 is done' },
26
+ { arguments: '--add 893 894 --decision-file why.md', note: '…and record why, in one call' },
27
+ {
28
+ arguments: '--reconcile 2184',
29
+ note: 'rewrite the body to match the recorded blocked-by, and record any order the body declared',
30
+ },
31
+ { arguments: '--decide 893 894 --decision-file why.md' },
32
+ ],
33
+ flags: [
34
+ {
35
+ names: ['--ordered'],
36
+ description:
37
+ 'argument order is the dependency order; writes the arrow chain, records the matching `blocked-by` relations, and adds a `### Declared order` entry under `## Decisions`.',
38
+ },
39
+ {
40
+ names: ['--rationale-file <path|->'],
41
+ description: 'split rationale prose (`-` reads stdin).',
42
+ },
43
+ {
44
+ names: ['--origin <owner/repo#N>'],
45
+ description: 'backlink when the split originated in another repository.',
46
+ },
47
+ {
48
+ names: ['--before <M>'],
49
+ description:
50
+ 'with `--add`: insert before `#M`, re-pointing what `#M` was waiting on so the chain is never broken.',
51
+ },
52
+ {
53
+ names: ['--after <M>'],
54
+ description:
55
+ 'with `--add`: start after `#M`; branches when `#M` already has a successor, extends when it is a tail.',
56
+ },
57
+ {
58
+ names: ['--order-before <M>', '--order-after <M>'],
59
+ description: 'with `--add`: move the task-list row only; write no `blocked-by` relation.',
60
+ },
61
+ {
62
+ names: ['--decision-file <path|->'],
63
+ description: 'with `--add`: record why the child was placed.',
64
+ },
65
+ {
66
+ names: ['--remove <E> <M> <N> [<N2> …]'],
67
+ description:
68
+ 'delete a declared order from the body and the relations; each consecutive pair is one link.',
69
+ },
70
+ ],
71
+ },
72
+ },
73
+ 'epic:next': {
74
+ script: 'scripts/epic/epic-next-main.ts',
75
+ description: "List an epic's runnable children, bundled per repository",
76
+ category: 'AI tools',
77
+ reference: ['<epic>... [--repo <owner/repo>] [--lanes]', 'automation', ['network']],
78
+ usage: {
79
+ examples: [
80
+ { arguments: '858' },
81
+ {
82
+ arguments: '858 --repo joshuafolkken/kit',
83
+ note: 'just the next child for one repository',
84
+ },
85
+ {
86
+ arguments: '858 --repo joshuafolkken/kit --lanes',
87
+ note: 'one child per free lane there',
88
+ },
89
+ ],
90
+ flags: [
91
+ {
92
+ names: [REPO],
93
+ description:
94
+ 'answer for one repository; stdout carries one token (an issue number, or `wait`/`stop`/`complete`), everything else on stderr.',
95
+ },
96
+ {
97
+ names: ['--lanes'],
98
+ description:
99
+ 'print one issue number per free lane (requires `--repo`); `JOSH_LANE_LIMIT` sets the ceiling, default 4. Prints `triage` instead while any candidate carries neither `run:solo` nor `run:lane` (the triage gate in `josh backlog:next`).',
100
+ },
101
+ ],
102
+ },
103
+ },
104
+ 'epic:bundle': {
105
+ script: 'scripts/epic/epic-bundle-main.ts',
106
+ description: 'Say whether a newly filed issue belongs with ones already in the backlog',
107
+ category: 'AI tools',
108
+ reference: ['<issue> [--apply]', 'automation', ['network']],
109
+ usage: {
110
+ examples: [{ arguments: '874' }, { arguments: '874 --apply', note: 'write it' }],
111
+ },
112
+ },
113
+ 'epic:audit': {
114
+ script: 'scripts/epic/epic-audit-cli.ts',
115
+ description: "Audit an epic's children against each other for contradictions",
116
+ category: 'AI tools',
117
+ reference: ['<epic>', 'automation', ['network']],
118
+ usage: { examples: [{ arguments: '858' }] },
119
+ },
120
+ 'epic:check': {
121
+ script: 'scripts/epic/epic-check.ts',
122
+ description: 'Check an epic issue against the tracking requirements',
123
+ category: 'AI tools',
124
+ reference: ['<epic>', 'automation', ['network']],
125
+ usage: { examples: [{ arguments: '700' }] },
126
+ },
127
+ 'auto-ok:next': {
128
+ script: 'scripts/auto-ok/auto-ok-main.ts',
129
+ description: 'Print the next opted-in issue an unattended run may pick up outside an epic',
130
+ category: 'AI tools',
131
+ reference: ['[--exclude <n>[,<n>...]] [--label <name>]', 'automation', ['network']],
132
+ usage: {
133
+ examples: [{ arguments: '' }, { arguments: '--exclude 906', note: JUST_MERGED }],
134
+ flags: [
135
+ {
136
+ names: [EXCLUDE],
137
+ description: 'drop issues from the answer; comma-separated, repeatable.',
138
+ },
139
+ ],
140
+ },
141
+ },
142
+ 'auto-ok:judge': {
143
+ script: 'scripts/auto-ok/auto-ok-judge-cli.ts',
144
+ description:
145
+ 'List the open issues backlogrun owes an auto-ok judgement, or record one (--apply / --decline)',
146
+ category: 'AI tools',
147
+ reference: [
148
+ '[--apply <n> (--lane | --solo) | --decline <n> --reason <text>]',
149
+ 'automation',
150
+ ['network'],
151
+ ],
152
+ usage: {
153
+ examples: [
154
+ { arguments: '', note: 'the issues that still owe a judgement' },
155
+ { arguments: '--apply 912 --lane', note: 'opt it in, with its run label' },
156
+ { arguments: '--decline 913 --reason "<why>"', note: 'record why it stays out' },
157
+ ],
158
+ flags: [
159
+ {
160
+ names: ['--apply <N> --lane|--solo'],
161
+ description:
162
+ 'checks the exclusions again against the labels as they stand, records the judgement on the issue, then applies the run label and then `auto-ok`.',
163
+ },
164
+ { names: ['--decline <N> --reason <text>'], description: 'applies nothing.' },
165
+ ],
166
+ },
167
+ },
168
+ }
169
+ /* eslint-enable @typescript-eslint/naming-convention */
170
+
171
+ export { EPIC_COMMANDS }
@@ -6,42 +6,65 @@ const HOOKS_COMMANDS: Record<string, CommandEntry> = {
6
6
  description: 'Git hook: block commits to main',
7
7
  category: 'Git hooks',
8
8
  reference: ['', 'automation', ['none']],
9
+ usage: { examples: [{ arguments: '', note: 'run by the pre-commit hook' }] },
9
10
  },
10
11
  'check-commit-message': {
11
- script: 'scripts/hooks/check-commit-message.ts',
12
+ script: 'scripts/hooks/check-commit-message-main.ts',
12
13
  description: 'Git hook: validate commit message',
13
14
  category: 'Git hooks',
14
15
  reference: ['[<message-file>]', 'automation', ['none']],
16
+ usage: {
17
+ examples: [{ arguments: '.git/COMMIT_EDITMSG', note: 'run by the commit-msg hook' }],
18
+ },
15
19
  },
16
20
  'secretlint-scan': {
17
21
  script: 'scripts/security/secretlint-scan.ts',
18
22
  description: 'Git hook: scan staged files for secrets',
19
23
  category: 'Git hooks',
20
24
  reference: ['[paths...]', 'automation', ['none']],
25
+ usage: {
26
+ examples: [{ arguments: 'src/app.ts .env.example', note: 'the staged paths' }],
27
+ },
21
28
  },
22
29
  'pre-commit-lint': {
23
30
  script: 'scripts/hooks/pre-commit-lint.ts',
24
31
  description: 'Git hook: run cspell, prettier or eslint over staged files from a content cache',
25
32
  category: 'Git hooks',
26
33
  reference: ['<cspell|prettier|eslint> [paths...]', 'automation', ['files']],
34
+ usage: {
35
+ examples: [
36
+ { arguments: 'cspell src/app.ts' },
37
+ { arguments: 'prettier src/app.ts' },
38
+ { arguments: 'eslint src/app.ts' },
39
+ ],
40
+ },
27
41
  },
28
42
  'pre-push-unit': {
29
43
  script: 'scripts/hooks/pre-push-unit.ts',
30
44
  description: 'Git hook: run unit tests, reusing a green gate recorded on the pushed tree',
31
45
  category: 'Git hooks',
32
46
  reference: ['', 'automation', ['processes']],
47
+ usage: { examples: [{ arguments: '' }] },
33
48
  },
34
49
  'reserved-run': {
35
50
  script: 'scripts/hooks/reserved-run.ts',
36
51
  description: 'Git hook: run a command while holding a place in the machine-wide core budget',
37
52
  category: 'Git hooks',
38
- reference: ['<weight> -- <command...>', 'automation', ['processes']],
53
+ reference: ['<weight> [--memory <MB>] -- <command...>', 'automation', ['processes']],
54
+ usage: {
55
+ examples: [
56
+ { arguments: '2 -- pnpm install', note: 'hold 2 cores while installing' },
57
+ { arguments: '1 -- pnpm josh audit', note: 'hold 1 core while scanning' },
58
+ { arguments: '1 --memory 3000 -- <command>', note: 'hold 3,000 MB beside the core' },
59
+ ],
60
+ },
39
61
  },
40
62
  'pre-commit-type-check': {
41
63
  script: 'scripts/gate/pre-commit-type-check.ts',
42
64
  description: 'Git hook: type-check, reusing a green gate recorded on the committed tree',
43
65
  category: 'Git hooks',
44
66
  reference: ['', 'automation', ['processes']],
67
+ usage: { examples: [{ arguments: '' }] },
45
68
  },
46
69
  }
47
70