@joshuafolkken/kit 1.1035.0 → 1.1094.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 (605) hide show
  1. package/.claude/settings.json +9 -8
  2. package/.claude/skills/epic-commands/SKILL.md +5 -7
  3. package/.claude/skills/verify-ui/SKILL.md +1 -1
  4. package/.claude/skills/workflow-commands/SKILL.md +21 -13
  5. package/.claude/skills/workflow-commands/background-commands.md +5 -4
  6. package/.claude/skills/workflow-commands/backlogrun-child.md +3 -3
  7. package/.claude/skills/workflow-commands/backlogrun-lanes.md +9 -7
  8. package/.claude/skills/workflow-commands/backlogrun-park.md +6 -0
  9. package/.claude/skills/workflow-commands/backlogrun-progress.md +31 -37
  10. package/.claude/skills/workflow-commands/backlogrun-steps.md +25 -25
  11. package/.claude/skills/workflow-commands/backlogrun.md +2 -2
  12. package/.claude/skills/workflow-commands/chain-rule.md +6 -4
  13. package/.claude/skills/workflow-commands/delegation.md +3 -3
  14. package/.claude/skills/workflow-commands/followup-reference.md +3 -3
  15. package/.claude/skills/workflow-commands/followup.md +7 -3
  16. package/.claude/skills/workflow-commands/fullrun-steps.md +3 -2
  17. package/.claude/skills/workflow-commands/fullrun.md +3 -2
  18. package/.claude/skills/workflow-commands/halfrun.md +16 -19
  19. package/.claude/skills/workflow-commands/issue-comments.md +2 -2
  20. package/.claude/skills/workflow-commands/issue-fold-existing.md +10 -10
  21. package/.claude/skills/workflow-commands/issue-scout.md +1 -1
  22. package/.claude/skills/workflow-commands/kickoff.md +9 -4
  23. package/.claude/skills/workflow-commands/latest-gate.md +1 -1
  24. package/.claude/skills/workflow-commands/needs-human-review.md +1 -1
  25. package/.claude/skills/workflow-commands/observation-filing.md +44 -89
  26. package/.claude/skills/workflow-commands/pre-gate-cut.md +33 -36
  27. package/.claude/skills/workflow-commands/prerequisite.md +1 -1
  28. package/.claude/skills/workflow-commands/prrun.md +36 -0
  29. package/.claude/skills/workflow-commands/retrospective.md +1 -1
  30. package/.claude/skills/workflow-commands/working-tree-hold.md +24 -4
  31. package/.codex/hooks.json +16 -20
  32. package/.github/actions/setup-pnpm/action.yml +93 -0
  33. package/.github/dependabot.yml +5 -1
  34. package/.github/workflows/auto-tag.yml +21 -0
  35. package/.github/workflows/ci.yml +26 -128
  36. package/.github/workflows/pr-classification.yml +5 -41
  37. package/.github/workflows/publish.yml +42 -48
  38. package/.github/workflows/sonar-qube.yml +37 -4
  39. package/AGENTS.md +12 -2
  40. package/CLAUDE.md +15 -16
  41. package/GEMINI.md +14 -2
  42. package/README.md +59 -18
  43. package/SECURITY.md +36 -6
  44. package/cspell/index.yaml +2 -1
  45. package/dist/CLAUDE.md +15 -16
  46. package/dist/config-merge/index.js +15 -3
  47. package/dist/hooks/batch-guard.js +4 -4
  48. package/dist/hooks/{chunk-Y27M6A7X.js → chunk-3C4YCCEF.js} +5 -13
  49. package/dist/hooks/{chunk-D67KVGGY.js → chunk-7ZPFAVR7.js} +17 -88
  50. package/dist/hooks/{chunk-HOYJU5RM.js → chunk-E54KGFEQ.js} +11 -4
  51. package/dist/hooks/{chunk-KG6PZD72.js → chunk-IL27YTPH.js} +2 -2
  52. package/dist/hooks/{chunk-GJT4BNVE.js → chunk-KHWHKJOM.js} +3 -3
  53. package/dist/hooks/{chunk-HU66PWWL.js → chunk-M2XDCUKD.js} +1076 -509
  54. package/dist/hooks/{chunk-GLBDBJOK.js → chunk-NKOG3XAV.js} +199 -304
  55. package/dist/hooks/{chunk-ZXNE6NY3.js → chunk-O4LL4HTI.js} +2 -7
  56. package/dist/hooks/{chunk-XPLP27WA.js → chunk-OIZUHPJI.js} +5 -27
  57. package/dist/hooks/{chunk-EIFCAJRB.js → chunk-UD24EAIL.js} +2546 -1636
  58. package/dist/hooks/codex-hook-adapter.js +10 -11
  59. package/dist/hooks/duplicate-read-guard.js +5 -5
  60. package/dist/hooks/format-edited.js +15 -34
  61. package/dist/hooks/inputs.json +279 -0
  62. package/dist/hooks/investigation-guard.js +5 -5
  63. package/dist/hooks/pretool-guard.js +23 -16
  64. package/dist/hooks/session-lang.js +0 -1
  65. package/dist/hooks/stop-guard.js +188 -509
  66. package/dist/josh.js +166 -225
  67. package/dist/managed-marker/index.js +2 -1
  68. package/dist/version/index.js +412 -64
  69. package/eslint/rules/promise.js +5 -0
  70. package/package.json +13 -8
  71. package/prompts/collaboration-workflow/file-edits.md +6 -53
  72. package/prompts/collaboration-workflow/issue-citation.md +5 -5
  73. package/prompts/collaboration-workflow/operating-rules.md +4 -4
  74. package/prompts/collaboration-workflow/overview.md +13 -1
  75. package/prompts/collaboration-workflow/report-format.md +1 -1
  76. package/prompts/collaboration-workflow/residency.md +4 -4
  77. package/prompts/collaboration-workflow/rule-delivery.md +5 -36
  78. package/prompts/collaboration-workflow/shell-body.md +7 -9
  79. package/prompts/collaboration-workflow/turn-batching.md +21 -37
  80. package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
  81. package/prompts/collaboration-workflow/wip-cap.md +36 -36
  82. package/prompts/collaboration-workflow.md +5 -8
  83. package/prompts/review-rubric.md +1 -1
  84. package/prompts/review.md +3 -3
  85. package/prompts/sonar-hotspot-handling.md +12 -4
  86. package/prompts/testing-guide.md +3 -3
  87. package/scripts/adopt/adopt-toolkits.ts +2 -2
  88. package/scripts/adopt/adopt.ts +0 -2
  89. package/scripts/agent/agent-argv.ts +0 -2
  90. package/scripts/agent/agent-diagnostics.ts +1 -1
  91. package/scripts/agent/agent-role-profile.ts +0 -7
  92. package/scripts/agent/claude-agent-argv.ts +0 -2
  93. package/scripts/agent/codex-agent-argv.ts +1 -1
  94. package/scripts/agent/codex-hooks.ts +92 -0
  95. package/scripts/agent/interactive-ask.ts +1 -1
  96. package/scripts/auto-ok/auto-ok-cli.ts +15 -25
  97. package/scripts/backlog/backlog-budget.ts +0 -2
  98. package/scripts/backlog/backlog-defect-priority.ts +2 -2
  99. package/scripts/backlog/backlog-drive-cli.ts +10 -8
  100. package/scripts/backlog/backlog-drive-named-offer.ts +16 -3
  101. package/scripts/backlog/backlog-drive-named.ts +2 -1
  102. package/scripts/backlog/backlog-drive.ts +76 -16
  103. package/scripts/backlog/backlog-named.ts +0 -3
  104. package/scripts/backlog/backlog-next.ts +32 -22
  105. package/scripts/backlog/backlog-offer-cli.ts +0 -5
  106. package/scripts/backlog/backlog-plan-cli.ts +6 -8
  107. package/scripts/backlog/backlog-plan.ts +1 -1
  108. package/scripts/backlog/backlog-pool.ts +34 -17
  109. package/scripts/backlog/backlog-rank.ts +106 -0
  110. package/scripts/backlog/backlog-ready.ts +19 -3
  111. package/scripts/backlog/backlog-scope.ts +1 -3
  112. package/scripts/backlog/backlog-stalled-detect.ts +2 -2
  113. package/scripts/backlog/backlog-stalled.ts +0 -1
  114. package/scripts/backlog/backlog-waves.ts +47 -31
  115. package/scripts/behavior/behavior-cli.ts +1 -1
  116. package/scripts/build/build-codex-hooks.ts +26 -0
  117. package/scripts/build/build-hooks.ts +92 -11
  118. package/scripts/build/hook-bundle-stamp.ts +111 -0
  119. package/scripts/cases/cases-cli.ts +1 -1
  120. package/scripts/cases/cases-logic.ts +1 -1
  121. package/scripts/ci/composite-actions.ts +30 -0
  122. package/scripts/ci/pr-classification.ts +3 -3
  123. package/scripts/claude/workflow-destination.ts +10 -1
  124. package/scripts/clone/clone-fingerprint.ts +0 -1
  125. package/scripts/clone/clone-scan-cli.ts +1 -1
  126. package/scripts/clone/clone-scan.ts +1 -1
  127. package/scripts/config-merge/json-format.ts +0 -1
  128. package/scripts/config-merge/patch-yaml-list.ts +1 -1
  129. package/scripts/cost-runtime/codex-usage.ts +2 -9
  130. package/scripts/cost-runtime/cost-attribute.ts +0 -1
  131. package/scripts/cost-runtime/cost-cli.ts +0 -3
  132. package/scripts/cost-runtime/cost-corpus.ts +0 -2
  133. package/scripts/cost-runtime/cost-format.ts +0 -3
  134. package/scripts/cost-runtime/cost-pricing.ts +0 -1
  135. package/scripts/cost-runtime/cost-tokens.ts +0 -1
  136. package/scripts/delegation/delegation-cli.ts +1 -1
  137. package/scripts/delegation/delegation-policy.ts +11 -1
  138. package/scripts/delegation/duplicate-read-guard.ts +0 -8
  139. package/scripts/delegation/fanout-cli.ts +1 -1
  140. package/scripts/delegation/fanout.ts +0 -2
  141. package/scripts/delegation/investigation-reads.ts +1 -164
  142. package/scripts/discovery/repo-map-logic.ts +0 -1
  143. package/scripts/discovery/repo-party-cli.ts +1 -1
  144. package/scripts/doctor/doctor-consumer.ts +4 -6
  145. package/scripts/doctor/doctor-logic.ts +0 -4
  146. package/scripts/doctor/doctor.ts +14 -9
  147. package/scripts/document/document-byte-budget.ts +8 -9
  148. package/scripts/document/document-byte-check.ts +0 -1
  149. package/scripts/document/document-read-cli.ts +0 -2
  150. package/scripts/document/document-section-cli.ts +1 -1
  151. package/scripts/document/document-section.ts +0 -3
  152. package/scripts/document/edit-files-cli.ts +0 -1
  153. package/scripts/document/entry-read-budget.ts +13 -4
  154. package/scripts/document/lane-child-read-set.ts +1 -6
  155. package/scripts/document/read-files-cli.ts +0 -4
  156. package/scripts/document/read-set-cli.ts +0 -2
  157. package/scripts/document/read-set-point-of-use.ts +1 -0
  158. package/scripts/document/read-set-pricing.ts +0 -1
  159. package/scripts/document/read-set-trim.ts +1 -1
  160. package/scripts/epic/epic-add.ts +1 -1
  161. package/scripts/epic/epic-audit-cli.ts +1 -4
  162. package/scripts/epic/epic-audit-orphans.ts +1 -3
  163. package/scripts/epic/epic-audit-rationale.ts +0 -1
  164. package/scripts/epic/epic-audit-report.ts +0 -2
  165. package/scripts/epic/epic-audit.ts +5 -4
  166. package/scripts/epic/epic-bundle-cli.ts +1 -1
  167. package/scripts/epic/epic-bundle-evidence.ts +0 -1
  168. package/scripts/epic/epic-bundle-referenced.ts +1 -5
  169. package/scripts/epic/epic-bundle.ts +0 -4
  170. package/scripts/epic/epic-busy.ts +4 -5
  171. package/scripts/epic/epic-candidate-confirm.ts +0 -5
  172. package/scripts/epic/epic-classify.ts +2 -2
  173. package/scripts/epic/epic-cli-argv.ts +0 -1
  174. package/scripts/epic/epic-close-comment.ts +1 -1
  175. package/scripts/epic/epic-close.ts +5 -2
  176. package/scripts/epic/epic-cross-repo.ts +2 -4
  177. package/scripts/epic/epic-decision.ts +0 -1
  178. package/scripts/epic/epic-fetch.ts +2 -2
  179. package/scripts/epic/epic-index.ts +2 -3
  180. package/scripts/epic/epic-issue.ts +1 -15
  181. package/scripts/epic/epic-lane-offer.ts +20 -30
  182. package/scripts/epic/epic-nested.ts +1 -1
  183. package/scripts/epic/epic-next-read.ts +1 -3
  184. package/scripts/epic/epic-next-views.ts +0 -1
  185. package/scripts/epic/epic-next.ts +1 -10
  186. package/scripts/epic/epic-parse.ts +0 -1
  187. package/scripts/epic/epic-promote.ts +0 -9
  188. package/scripts/epic/epic-rank.ts +37 -0
  189. package/scripts/epic/epic-read.ts +1 -2
  190. package/scripts/epic/epic-reconcile.ts +1 -1
  191. package/scripts/epic/epic-reference.ts +1 -13
  192. package/scripts/epic/epic-relation-recheck.ts +1 -1
  193. package/scripts/epic/epic-relations.ts +1 -1
  194. package/scripts/epic/epic-remove.ts +1 -1
  195. package/scripts/epic/epic-report.ts +0 -1
  196. package/scripts/epic/epic-run.ts +2 -3
  197. package/scripts/epic/epic-shape.ts +1 -1
  198. package/scripts/epic/epic-solo-stale.ts +107 -0
  199. package/scripts/epic/epic-solo.ts +32 -30
  200. package/scripts/epic/epic-triage.ts +1 -1
  201. package/scripts/epic/epic-validate.ts +1 -1
  202. package/scripts/epic/epic.ts +1 -1
  203. package/scripts/exports/unused-members-cli.ts +53 -0
  204. package/scripts/{git → followup}/followup-issue-number.ts +1 -6
  205. package/scripts/{git → followup}/git-followup-cleanup.ts +2 -1
  206. package/scripts/{git → followup}/git-followup-finish.ts +1 -3
  207. package/scripts/{git → followup}/git-followup-flush.ts +2 -2
  208. package/scripts/{git → followup}/git-followup-issue-close.ts +2 -2
  209. package/scripts/{git → followup}/git-followup-label.ts +4 -4
  210. package/scripts/followup/git-followup-merged.ts +112 -0
  211. package/scripts/{git → followup}/git-followup-pending.ts +1 -1
  212. package/scripts/{git → followup}/git-followup-workflow.ts +19 -11
  213. package/scripts/{git → followup}/git-pr-followup-wrapup.ts +9 -3
  214. package/scripts/{git → followup}/git-pr-followup.ts +53 -16
  215. package/scripts/gate/core-budget.ts +3 -9
  216. package/scripts/gate/gate-plan.ts +7 -4
  217. package/scripts/gate/gate-report.ts +0 -6
  218. package/scripts/gate/gate-tree.ts +1 -1
  219. package/scripts/gate/pre-commit-type-check.ts +0 -6
  220. package/scripts/gate/project-checks.ts +7 -8
  221. package/scripts/gate/scoped-green.ts +0 -1
  222. package/scripts/gate/type-check-step.ts +1 -1
  223. package/scripts/gate/verification-gate.ts +0 -2
  224. package/scripts/gh/fix-gh-packages.ts +15 -12
  225. package/scripts/gh/gh-spawn.ts +2 -2
  226. package/scripts/{git → gh}/git-ai-review-scan.ts +1 -5
  227. package/scripts/{git → gh}/git-gh-check.ts +2 -1
  228. package/scripts/{git → gh}/git-gh-exec.ts +1 -1
  229. package/scripts/{git → gh}/git-gh-failure.ts +1 -1
  230. package/scripts/{git → gh}/git-gh-helpers.ts +0 -1
  231. package/scripts/{git → gh}/git-gh-issue-list.ts +2 -0
  232. package/scripts/{git → gh}/git-gh-issue-read.ts +1 -1
  233. package/scripts/{git → gh}/git-gh-issue-rest.ts +6 -3
  234. package/scripts/{git → gh}/git-gh-pr-read.ts +24 -0
  235. package/scripts/{git → gh}/git-gh-pr-rest.ts +5 -2
  236. package/scripts/{git → gh}/git-gh-pr-review.ts +2 -2
  237. package/scripts/{git → gh}/git-gh-pr-rollup.ts +1 -3
  238. package/scripts/{git → gh}/git-gh-pr.ts +3 -1
  239. package/scripts/{git → gh}/git-pr-ai-review.ts +2 -5
  240. package/scripts/{git → gh}/git-pr-checks-eval.ts +0 -10
  241. package/scripts/{git → gh}/git-pr-checks-parse.ts +4 -20
  242. package/scripts/{git → gh}/git-pr-checks.ts +2 -1
  243. package/scripts/{git → gh}/git-pr-coderabbit.ts +2 -5
  244. package/scripts/{git → gh}/git-pr-confirmation.ts +1 -3
  245. package/scripts/{git → gh}/git-pr-managed-config.ts +2 -3
  246. package/scripts/{git → gh}/git-pr.ts +3 -3
  247. package/scripts/git/changed-file-scope.ts +0 -1
  248. package/scripts/git/git-branch.ts +3 -6
  249. package/scripts/git/git-command.ts +1 -1
  250. package/scripts/git/git-commit.ts +1 -1
  251. package/scripts/git/git-common-directory.ts +80 -24
  252. package/scripts/git/git-error.ts +66 -9
  253. package/scripts/git/git-execa-error.ts +6 -1
  254. package/scripts/git/git-issue.ts +1 -1
  255. package/scripts/git/git-preflight.ts +24 -6
  256. package/scripts/git/git-prompt.ts +6 -31
  257. package/scripts/git/git-push-transport.ts +12 -69
  258. package/scripts/git/git-push.ts +1 -1
  259. package/scripts/git/git-spawn.ts +79 -3
  260. package/scripts/git/git-ssh-keepalive.ts +74 -0
  261. package/scripts/git/git-staging.ts +1 -0
  262. package/scripts/git/git-status.ts +1 -1
  263. package/scripts/git/git-workflow.ts +1 -1
  264. package/scripts/git/gone-branch.ts +4 -2
  265. package/scripts/git/listing-cutoff.ts +1 -1
  266. package/scripts/git/main-merge.ts +1 -1
  267. package/scripts/git/main-sync.ts +19 -1
  268. package/scripts/git/parse-json-array.ts +0 -3
  269. package/scripts/git/repository-lock.ts +16 -16
  270. package/scripts/git/{git-stash.ts → stash/git-stash.ts} +1 -1
  271. package/scripts/git/{stash-pop-args.ts → stash/stash-pop-args.ts} +1 -1
  272. package/scripts/git/{stash-pop-cli.ts → stash/stash-pop-cli.ts} +0 -1
  273. package/scripts/git/{stash-sweep-lock.ts → stash/stash-sweep-lock.ts} +3 -3
  274. package/scripts/hooks/codex-hook-adapter.ts +0 -1
  275. package/scripts/hooks/edited-cspell.ts +1 -1
  276. package/scripts/hooks/format-edited-cli.ts +15 -0
  277. package/scripts/hooks/format-edited-file.ts +4 -9
  278. package/scripts/hooks/pre-push-unit.ts +0 -4
  279. package/scripts/hooks/pretool-guard-cli.ts +21 -0
  280. package/scripts/hooks/pretool-guard.ts +36 -19
  281. package/scripts/hooks/reserved-run.ts +1 -1
  282. package/scripts/hooks/step-zero-notice.ts +76 -0
  283. package/scripts/hooks/stop-guard.ts +47 -21
  284. package/scripts/init/claude-plugin-config.ts +4 -5
  285. package/scripts/init/hook-command-rewrite.ts +16 -8
  286. package/scripts/init/hook-launch.ts +41 -15
  287. package/scripts/init/init-basic.ts +2 -5
  288. package/scripts/init/init-logic.ts +7 -0
  289. package/scripts/init/init.ts +0 -3
  290. package/scripts/init/project-profile.ts +6 -11
  291. package/scripts/init/start-exec.ts +8 -2
  292. package/scripts/init/start-plan.ts +18 -5
  293. package/scripts/init/start-setup-pr.ts +52 -25
  294. package/scripts/init/start-steps.ts +42 -9
  295. package/scripts/init/start.ts +40 -10
  296. package/scripts/issue/behavior-change-lint.ts +0 -1
  297. package/scripts/issue/defect-rate-cli.ts +3 -3
  298. package/scripts/issue/defect-rate.ts +1 -2
  299. package/scripts/{git → issue}/git-next-issues.ts +37 -8
  300. package/scripts/issue/issue-backlinks-cli.ts +1 -5
  301. package/scripts/issue/issue-cite-cli.ts +2 -6
  302. package/scripts/issue/issue-cite.ts +19 -3
  303. package/scripts/issue/issue-classification.ts +1 -9
  304. package/scripts/issue/issue-closing-pr.ts +4 -4
  305. package/scripts/issue/issue-comment-cli.ts +2 -2
  306. package/scripts/issue/issue-file-cli.ts +5 -5
  307. package/scripts/issue/issue-file.ts +2 -2
  308. package/scripts/issue/issue-fold-cli.ts +1 -1
  309. package/scripts/issue/issue-fold-existing-cli.ts +1 -1
  310. package/scripts/{git → issue}/issue-labels.ts +20 -0
  311. package/scripts/issue/issue-lint-cli.ts +1 -1
  312. package/scripts/issue/issue-merged.ts +2 -2
  313. package/scripts/issue/issue-rank.ts +89 -0
  314. package/scripts/issue/issue-read-cli.ts +8 -47
  315. package/scripts/issue/issue-read.ts +0 -2
  316. package/scripts/issue/issue-report-failures.ts +80 -0
  317. package/scripts/issue/issue-scout-cli.ts +1 -7
  318. package/scripts/issue/issue-scout-closed.ts +2 -2
  319. package/scripts/issue/issue-scout.ts +0 -2
  320. package/scripts/issue/issue-state-cli.ts +5 -46
  321. package/scripts/issue/issue-state.ts +1 -5
  322. package/scripts/issue/markdown-section.ts +1 -1
  323. package/scripts/issue/measure-rerun-cli.ts +1 -1
  324. package/scripts/issue/reproduction-measure.ts +1 -1
  325. package/scripts/josh/cli-body.ts +1 -1
  326. package/scripts/josh/file-map-stamp.ts +0 -3
  327. package/scripts/josh/josh-command-map.ts +2 -102
  328. package/scripts/josh/josh-commands-ai.ts +9 -102
  329. package/scripts/josh/josh-commands-backlog.ts +5 -1
  330. package/scripts/josh/josh-commands-development.ts +10 -3
  331. package/scripts/josh/josh-commands-issue.ts +2 -2
  332. package/scripts/josh/josh-commands-maintenance.ts +7 -0
  333. package/scripts/josh/josh-commands-project.ts +7 -1
  334. package/scripts/josh/josh-commands-run.ts +114 -0
  335. package/scripts/josh/josh-commands-versioning.ts +8 -0
  336. package/scripts/josh/josh-commands-workflow.ts +2 -2
  337. package/scripts/josh/path-decision.ts +0 -3
  338. package/scripts/josh/process-owner.ts +16 -0
  339. package/scripts/josh/session-language-cli.ts +0 -1
  340. package/scripts/lane/lane-await.ts +3 -6
  341. package/scripts/lane/lane-capacity.ts +6 -3
  342. package/scripts/lane/lane-child-invocation.ts +20 -7
  343. package/scripts/lane/lane-child-marker.ts +16 -2
  344. package/scripts/lane/lane-cli.ts +33 -18
  345. package/scripts/lane/lane-close.ts +1 -3
  346. package/scripts/lane/lane-dispatch.ts +3 -4
  347. package/scripts/lane/lane-environment.ts +0 -9
  348. package/scripts/lane/lane-handoff.ts +38 -0
  349. package/scripts/lane/lane-launch-cli.ts +21 -11
  350. package/scripts/lane/lane-open.ts +0 -3
  351. package/scripts/lane/lane-output.ts +0 -1
  352. package/scripts/lane/lane-registry.ts +9 -0
  353. package/scripts/lane/lane-report.ts +10 -4
  354. package/scripts/lane/openai-lane-ship.ts +2 -0
  355. package/scripts/lane/openai-lane-supervisor-decision.ts +2 -1
  356. package/scripts/lane/openai-lane-supervisor.ts +6 -4
  357. package/scripts/lane/openai-review-broker.ts +3 -0
  358. package/scripts/lib/bounded-pool.ts +1 -0
  359. package/scripts/lib/json-value.ts +5 -4
  360. package/scripts/lib/poll.ts +3 -1
  361. package/scripts/lib/timed-fetch.ts +15 -0
  362. package/scripts/lib/timeouts.ts +13 -0
  363. package/scripts/{yaml → lib}/yaml-document.ts +3 -1
  364. package/scripts/{bytes → lines}/bytes-command.ts +0 -2
  365. package/scripts/lines/lines-command.ts +0 -1
  366. package/scripts/lint/lint-related-scope.ts +0 -1
  367. package/scripts/lint/lint-related.ts +1 -1
  368. package/scripts/{git → notify}/telegram-notify.ts +2 -2
  369. package/scripts/{git → notify}/telegram-test.ts +4 -4
  370. package/scripts/observations/observation-ledger-home.ts +0 -1
  371. package/scripts/observations/observation-ledger-line.ts +0 -1
  372. package/scripts/observations/observation-ledger-migrate.ts +1 -1
  373. package/scripts/observations/observations-flush-landing.ts +3 -3
  374. package/scripts/observations/observations-flush.ts +2 -2
  375. package/scripts/overrides/lockfile-overrides.ts +1 -1
  376. package/scripts/overrides/overrides-logic.ts +1 -1
  377. package/scripts/package/package-scout-cli.ts +2 -7
  378. package/scripts/package/package-scout.ts +0 -2
  379. package/scripts/propagate/propagate-git-failure.ts +0 -1
  380. package/scripts/propagate/propagate-git.ts +0 -2
  381. package/scripts/propagate/propagate-plan.ts +185 -0
  382. package/scripts/propagate/propagate-publish.ts +2 -3
  383. package/scripts/propagate/propagate-run.ts +5 -3
  384. package/scripts/propagate/propagate-steps.ts +19 -6
  385. package/scripts/propagate/propagate-targets.ts +13 -6
  386. package/scripts/propagate/propagate.ts +60 -46
  387. package/scripts/refactor/import-graph.ts +0 -1
  388. package/scripts/refactor/refactor-lint.ts +0 -2
  389. package/scripts/refactor/refactor-scan.ts +0 -1
  390. package/scripts/refactor/refactor-targets.ts +0 -1
  391. package/scripts/registry-migration/migrate-logic.ts +1 -2
  392. package/scripts/registry-migration/migrate.ts +19 -9
  393. package/scripts/release/github-release-cli.ts +8 -6
  394. package/scripts/release/github-release-environment.ts +46 -0
  395. package/scripts/release/github-release.ts +151 -94
  396. package/scripts/release/release-history.ts +0 -1
  397. package/scripts/release/release-plan.ts +0 -1
  398. package/scripts/release/release-publish.ts +2 -3
  399. package/scripts/release/release-scope-cli.ts +1 -2
  400. package/scripts/release/release-tag.ts +2 -4
  401. package/scripts/repo/auto-merge-setting-logic.ts +1 -4
  402. package/scripts/repo/repo-setting.ts +1 -1
  403. package/scripts/repo/repository-labels.ts +3 -3
  404. package/scripts/repo/required-checks-logic.ts +206 -0
  405. package/scripts/repo/required-checks-report.ts +71 -0
  406. package/scripts/repo/ruleset-check-cli.ts +53 -0
  407. package/scripts/repo/ruleset-check.ts +147 -0
  408. package/scripts/report/report-lint-cli.ts +0 -4
  409. package/scripts/review/disposition-cli.ts +1 -1
  410. package/scripts/review/live-evidence.ts +1 -1
  411. package/scripts/review/review-attest-cli.ts +0 -6
  412. package/scripts/review/review-attest.ts +48 -16
  413. package/scripts/review/review-brief-cli.ts +72 -8
  414. package/scripts/review/review-brief.ts +67 -9
  415. package/scripts/review/review-diff-parts.ts +89 -0
  416. package/scripts/review/review-diff-write.ts +97 -0
  417. package/scripts/review/review-finding-ledger.ts +0 -1
  418. package/scripts/review/review-record-cli.ts +1 -1
  419. package/scripts/review/review-record.ts +0 -1
  420. package/scripts/review/review-round2-cli.ts +1 -1
  421. package/scripts/review/review-stamps.ts +6 -2
  422. package/scripts/review/review-tree.ts +14 -2
  423. package/scripts/rules/decision-oracle-stage.ts +18 -0
  424. package/scripts/rules/decision-oracle.ts +10 -7
  425. package/scripts/rules/delivered-rules.ts +9 -1
  426. package/scripts/rules/destructive-command.ts +119 -0
  427. package/scripts/rules/direct-filing.ts +1 -1
  428. package/scripts/rules/file-body.ts +0 -3
  429. package/scripts/rules/filing-cap.ts +0 -2
  430. package/scripts/rules/gh-api.ts +7 -2
  431. package/scripts/rules/git-argv.ts +18 -7
  432. package/scripts/rules/git-force.ts +0 -2
  433. package/scripts/rules/implementation-cut.ts +1 -2
  434. package/scripts/rules/index-guard.ts +71 -0
  435. package/scripts/rules/issue-citation.ts +50 -25
  436. package/scripts/rules/issue-fold.ts +1 -2
  437. package/scripts/rules/lane-background.ts +15 -7
  438. package/scripts/rules/lane-carry-conflict.ts +1 -2
  439. package/scripts/rules/lane-park.ts +14 -8
  440. package/scripts/rules/last-prompt.ts +1 -0
  441. package/scripts/rules/oracle-consulted.ts +1 -1
  442. package/scripts/rules/oracle-firing.ts +1 -0
  443. package/scripts/rules/oracle-list-cli.ts +0 -3
  444. package/scripts/rules/permission-guards.ts +14 -0
  445. package/scripts/rules/pre-gate-cut.ts +2 -2
  446. package/scripts/rules/protected-files.ts +74 -0
  447. package/scripts/rules/reply-language.ts +1 -1
  448. package/scripts/rules/rule-body-guard.ts +0 -3
  449. package/scripts/rules/rule-value-cli.ts +0 -1
  450. package/scripts/rules/shell-body-trigger.ts +0 -1
  451. package/scripts/rules/shell-segments.ts +0 -1
  452. package/scripts/rules/stop-rules.ts +13 -5
  453. package/scripts/rules/tail-commands.ts +1 -1
  454. package/scripts/rules/test-declared-commit.ts +1 -1
  455. package/scripts/rules/third-party-write.ts +0 -1
  456. package/scripts/rules/worktree-guard.ts +26 -9
  457. package/scripts/run/run-carry-cli.ts +0 -2
  458. package/scripts/run/run-carry-stash.ts +2 -2
  459. package/scripts/run/run-carry-streak.ts +1 -1
  460. package/scripts/run/run-cut-cli.ts +0 -7
  461. package/scripts/run/run-cut.ts +8 -54
  462. package/scripts/run/run-ending-cli.ts +1 -1
  463. package/scripts/run/run-ending.ts +1 -4
  464. package/scripts/run/run-entry-cli.ts +101 -24
  465. package/scripts/run/run-entry.ts +0 -1
  466. package/scripts/run/run-event-cli.ts +0 -2
  467. package/scripts/run/run-event-follow.ts +1 -0
  468. package/scripts/run/run-event-render.ts +1 -1
  469. package/scripts/run/run-event-scope.ts +53 -4
  470. package/scripts/run/run-event-stream.ts +0 -3
  471. package/scripts/run/run-event-watch.ts +1 -0
  472. package/scripts/run/run-halfrun-resume.ts +20 -7
  473. package/scripts/run/run-headless.ts +24 -8
  474. package/scripts/run/run-hold-cli.ts +33 -10
  475. package/scripts/run/run-hold.ts +25 -5
  476. package/scripts/run/run-issue-number.ts +1 -1
  477. package/scripts/run/run-liveness-cli.ts +1 -1
  478. package/scripts/run/run-liveness.ts +2 -3
  479. package/scripts/run/run-merge-cli.ts +5 -13
  480. package/scripts/run/run-merge-steps.ts +5 -5
  481. package/scripts/run/run-merge.ts +1 -1
  482. package/scripts/run/run-next-cli.ts +1 -1
  483. package/scripts/run/run-parent-cut-hook.ts +143 -0
  484. package/scripts/run/run-preflight.ts +2 -9
  485. package/scripts/run/run-prep-cli.ts +2 -2
  486. package/scripts/run/run-prep-locate.ts +1 -1
  487. package/scripts/run/run-progress-cli.ts +4 -7
  488. package/scripts/run/run-progress-clock.ts +6 -34
  489. package/scripts/run/run-progress-config.ts +0 -4
  490. package/scripts/run/run-progress-read.ts +3 -3
  491. package/scripts/run/run-progress.ts +22 -10
  492. package/scripts/run/run-prrun-resume.ts +117 -0
  493. package/scripts/run/run-report-cli.ts +1 -2
  494. package/scripts/run/run-report.ts +0 -1
  495. package/scripts/run/run-retrospective.ts +1 -1
  496. package/scripts/run/run-review-cli.ts +0 -3
  497. package/scripts/run/run-review-steps.ts +2 -0
  498. package/scripts/run/run-review.ts +0 -2
  499. package/scripts/run/run-ship-cli.ts +27 -77
  500. package/scripts/run/run-ship-detach.ts +1 -0
  501. package/scripts/run/run-ship-next.ts +106 -0
  502. package/scripts/run/run-ship-preflight.ts +87 -0
  503. package/scripts/run/run-ship-return.ts +8 -3
  504. package/scripts/run/run-ship-review-steps.ts +23 -30
  505. package/scripts/run/run-ship-review.ts +20 -0
  506. package/scripts/run/run-ship-scoped.ts +45 -0
  507. package/scripts/run/run-ship-stage.ts +5 -1
  508. package/scripts/run/run-ship-steps.ts +105 -0
  509. package/scripts/run/run-ship.ts +2 -1
  510. package/scripts/run/run-stage-read.ts +62 -0
  511. package/scripts/run/run-stage.ts +160 -0
  512. package/scripts/run/run-status-cli.ts +1 -1
  513. package/scripts/run/run-step-cli.ts +21 -14
  514. package/scripts/run/run-step.ts +1 -1
  515. package/scripts/run/run-stop-notify.ts +1 -3
  516. package/scripts/run/run-stranded-cli.ts +0 -4
  517. package/scripts/run/run-stranded-detect.ts +2 -2
  518. package/scripts/run/run-tail-cli.ts +17 -11
  519. package/scripts/run/run-tail.ts +2 -0
  520. package/scripts/run/run-tidy-lanes.ts +2 -1
  521. package/scripts/run/run-tidy-stashes.ts +12 -12
  522. package/scripts/run/run-wake-cli.ts +4 -5
  523. package/scripts/run/run-wake-describe.ts +19 -1
  524. package/scripts/run/run-wake-loop.ts +2 -2
  525. package/scripts/run/run-wake.ts +2 -4
  526. package/scripts/run/run-watcher-guard-cli.ts +0 -4
  527. package/scripts/run/run-watcher-guard.ts +9 -7
  528. package/scripts/run/run-watcher-hook.ts +1 -1
  529. package/scripts/safe-chain/ci-installer-pin.ts +11 -5
  530. package/scripts/safe-chain/project-config.ts +1 -1
  531. package/scripts/security/security-audit-provision-logic.ts +0 -1
  532. package/scripts/security/security-audit-provision.ts +3 -2
  533. package/scripts/security/security-audit.ts +0 -1
  534. package/scripts/security/security-updates-logic.ts +0 -1
  535. package/scripts/sonar/sonar-hotspots-cli.ts +10 -52
  536. package/scripts/sonar/sonar-hotspots.ts +0 -1
  537. package/scripts/sonar/sonar-new-code-cli.ts +150 -0
  538. package/scripts/sonar/sonar-new-code.ts +79 -0
  539. package/scripts/sonar/sonar-project.ts +97 -0
  540. package/scripts/split/split-assess-cli.ts +1 -1
  541. package/scripts/split/split-assess.ts +2 -5
  542. package/scripts/sync/managed-config-scope-cli.ts +1 -1
  543. package/scripts/sync/skill-migration.ts +0 -1
  544. package/scripts/sync/sync-hook-safety.ts +2 -3
  545. package/scripts/sync/sync.ts +1 -8
  546. package/scripts/sync/template-source-logic.ts +0 -1
  547. package/scripts/sync/workflow-pin-logic.ts +16 -28
  548. package/scripts/test/test-declared-logic.ts +0 -1
  549. package/scripts/test/test-declared.ts +0 -2
  550. package/scripts/test/test-red-commit.ts +2 -2
  551. package/scripts/test/test-red.ts +14 -7
  552. package/scripts/test/test-type-logic.ts +1 -1
  553. package/scripts/test/unit-worker-share.ts +7 -16
  554. package/scripts/time-runtime/time-batch-guard.ts +1 -2
  555. package/scripts/time-runtime/time-bundle-call.ts +2 -3
  556. package/scripts/time-runtime/time-bundles.ts +0 -4
  557. package/scripts/time-runtime/time-density-hook.ts +0 -2
  558. package/scripts/time-runtime/time-followup-stage.ts +1 -1
  559. package/scripts/time-runtime/time-format.ts +0 -73
  560. package/scripts/time-runtime/time-round-trips.ts +0 -4
  561. package/scripts/time-runtime/time-single-check.ts +1 -1
  562. package/scripts/time-runtime/time-spans.ts +1 -1
  563. package/scripts/time-runtime/time-transcript-line.ts +1 -2
  564. package/scripts/ui/ui-routes-cli.ts +0 -5
  565. package/scripts/ui/ui-routes.ts +0 -5
  566. package/scripts/version/effective-upstream.ts +2 -2
  567. package/scripts/version/latest-corepack.ts +7 -9
  568. package/scripts/version/latest-scope-cli.ts +0 -2
  569. package/scripts/version/latest-update.ts +0 -2
  570. package/scripts/version/npm-registry.ts +97 -0
  571. package/scripts/version/publishable-range-check.ts +1 -1
  572. package/scripts/version/release-hold.ts +0 -4
  573. package/scripts/version/running-binary.ts +2 -2
  574. package/scripts/version/version-check-logic.ts +0 -2
  575. package/scripts/version/version-commands.ts +5 -4
  576. package/scripts/version/version-remote.ts +28 -14
  577. package/scripts/version/version-targets.ts +4 -4
  578. package/templates/sonar-project.properties +28 -1
  579. package/templates/workflows/dependabot-auto-merge.yml +5 -3
  580. package/templates/workflows/github-release.yml +81 -0
  581. package/prompts/collaboration-workflow/cross-repo-epic.md +0 -5
  582. package/prompts/collaboration-workflow/epic-audit.md +0 -5
  583. package/prompts/collaboration-workflow/epic-bundle.md +0 -5
  584. package/scripts/init/plugin-install-hint.ts +0 -47
  585. package/scripts/version/parse-json.ts +0 -13
  586. /package/scripts/{git → followup}/git-followup-stages.ts +0 -0
  587. /package/scripts/{git → gh}/git-gh-api-path.ts +0 -0
  588. /package/scripts/{git → gh}/git-gh-command.ts +0 -0
  589. /package/scripts/{git → gh}/git-gh-issue-write.ts +0 -0
  590. /package/scripts/{git → gh}/git-gh-issue.ts +0 -0
  591. /package/scripts/{git → gh}/git-gh-pr-auto-merge.ts +0 -0
  592. /package/scripts/{git → gh}/git-gh-pr-snapshot.ts +0 -0
  593. /package/scripts/{git → gh}/git-gh-reachability.ts +0 -0
  594. /package/scripts/{git → gh}/git-gh-repo.ts +0 -0
  595. /package/scripts/{git → gh}/git-gh-rest-state.ts +0 -0
  596. /package/scripts/{git → gh}/git-pr-checks-watch.ts +0 -0
  597. /package/scripts/{git → gh}/git-pr-error.ts +0 -0
  598. /package/scripts/{git → gh}/git-pr-messages.ts +0 -0
  599. /package/scripts/{git → gh}/github-issue-url.ts +0 -0
  600. /package/scripts/git/{stash-orphans.ts → stash/stash-orphans.ts} +0 -0
  601. /package/scripts/{git → issue}/issue-reference.ts +0 -0
  602. /package/scripts/{git → lib}/animation-helpers.ts +0 -0
  603. /package/scripts/{git → lib}/git-animation.ts +0 -0
  604. /package/scripts/{git → notify}/git-notify.ts +0 -0
  605. /package/scripts/{git → notify}/telegram-test-logic.ts +0 -0
@@ -15,48 +15,6 @@ function is_record(value) {
15
15
  }
16
16
  var json_value = { parse_or_undefined, is_record };
17
17
 
18
- // scripts/josh/josh-command-types.ts
19
- var OPTIONAL_ENV_FILE_FLAGS = [`--env-file-if-exists=${ENV_FILE_NAME}`];
20
- var GATE_COMMAND = "gate";
21
- var ESLINT_CACHE_FILE = ".eslintcache";
22
- var TS_BUILD_INFO_FILE = ".tsbuildinfo";
23
- var CSPELL_CACHE_FILE = ".cspellcache";
24
- var ESLINT_EDIT_CACHE_FILE = ".eslintcache.edit";
25
- var ESLINT_RELATED_CACHE_FILE = ".eslintcache.related";
26
- var ROOTED_JSON_PORTABILITY = "rooted-json";
27
- var ESLINT_CACHE_SPEC = {
28
- cache_file: ESLINT_CACHE_FILE,
29
- portability: ROOTED_JSON_PORTABILITY
30
- };
31
- var TS_CACHE_SPEC = {
32
- cache_file: TS_BUILD_INFO_FILE,
33
- portability: "raw"
34
- };
35
- var CSPELL_CACHE_SPEC = {
36
- cache_file: CSPELL_CACHE_FILE,
37
- portability: "raw"
38
- };
39
- var GATE_CACHE_SPECS = [
40
- ESLINT_CACHE_SPEC,
41
- TS_CACHE_SPEC,
42
- CSPELL_CACHE_SPEC
43
- ];
44
- var GATE_CACHE_FILES = GATE_CACHE_SPECS.map((spec) => spec.cache_file);
45
- var IGNORED_CACHE_FILES = [
46
- ...GATE_CACHE_FILES,
47
- ESLINT_EDIT_CACHE_FILE,
48
- ESLINT_RELATED_CACHE_FILE
49
- ];
50
- var CONTENT_CACHE_FLAGS = ["--cache", "--cache-strategy", "content"];
51
- var CACHE_LOCATION_FLAG = "--cache-location";
52
- function content_cache_flags(cache_file) {
53
- return [...CONTENT_CACHE_FLAGS, CACHE_LOCATION_FLAG, cache_file];
54
- }
55
- var ESLINT_CACHE_FLAGS = content_cache_flags(ESLINT_CACHE_FILE);
56
- var ESLINT_EDIT_CACHE_FLAGS = content_cache_flags(ESLINT_EDIT_CACHE_FILE);
57
- var ESLINT_RELATED_CACHE_FLAGS = content_cache_flags(ESLINT_RELATED_CACHE_FILE);
58
- var CSPELL_CACHE_FLAGS = content_cache_flags(CSPELL_CACHE_FILE);
59
-
60
18
  // scripts/cost-runtime/cost-blocks.ts
61
19
  import { z } from "zod";
62
20
  var CONTENT_ITEM_SCHEMA = z.object({ text: z.string().nullish() });
@@ -136,14 +94,56 @@ var cost_blocks = {
136
94
  var GATE_PHASE = "gate";
137
95
  var PR_PHASE = "pr";
138
96
  var MERGE_PHASE = "merge";
139
- var GATE_COMMAND2 = "josh gate";
97
+ var GATE_COMMAND = "josh gate";
140
98
  var COMMAND_PHASES = /* @__PURE__ */ new Map([
141
- [GATE_COMMAND2, GATE_PHASE],
99
+ [GATE_COMMAND, GATE_PHASE],
142
100
  ["josh git", PR_PHASE],
143
101
  ["josh pr", PR_PHASE],
144
102
  ["josh followup", MERGE_PHASE]
145
103
  ]);
146
104
 
105
+ // scripts/josh/josh-command-types.ts
106
+ var OPTIONAL_ENV_FILE_FLAGS = [`--env-file-if-exists=${ENV_FILE_NAME}`];
107
+ var GATE_COMMAND2 = "gate";
108
+ var ESLINT_CACHE_FILE = ".eslintcache";
109
+ var TS_BUILD_INFO_FILE = ".tsbuildinfo";
110
+ var CSPELL_CACHE_FILE = ".cspellcache";
111
+ var ESLINT_EDIT_CACHE_FILE = ".eslintcache.edit";
112
+ var ESLINT_RELATED_CACHE_FILE = ".eslintcache.related";
113
+ var ROOTED_JSON_PORTABILITY = "rooted-json";
114
+ var ESLINT_CACHE_SPEC = {
115
+ cache_file: ESLINT_CACHE_FILE,
116
+ portability: ROOTED_JSON_PORTABILITY
117
+ };
118
+ var TS_CACHE_SPEC = {
119
+ cache_file: TS_BUILD_INFO_FILE,
120
+ portability: "raw"
121
+ };
122
+ var CSPELL_CACHE_SPEC = {
123
+ cache_file: CSPELL_CACHE_FILE,
124
+ portability: "raw"
125
+ };
126
+ var GATE_CACHE_SPECS = [
127
+ ESLINT_CACHE_SPEC,
128
+ TS_CACHE_SPEC,
129
+ CSPELL_CACHE_SPEC
130
+ ];
131
+ var GATE_CACHE_FILES = GATE_CACHE_SPECS.map((spec) => spec.cache_file);
132
+ var IGNORED_CACHE_FILES = [
133
+ ...GATE_CACHE_FILES,
134
+ ESLINT_EDIT_CACHE_FILE,
135
+ ESLINT_RELATED_CACHE_FILE
136
+ ];
137
+ var CONTENT_CACHE_FLAGS = ["--cache", "--cache-strategy", "content"];
138
+ var CACHE_LOCATION_FLAG = "--cache-location";
139
+ function content_cache_flags(cache_file) {
140
+ return [...CONTENT_CACHE_FLAGS, CACHE_LOCATION_FLAG, cache_file];
141
+ }
142
+ var ESLINT_CACHE_FLAGS = content_cache_flags(ESLINT_CACHE_FILE);
143
+ var ESLINT_EDIT_CACHE_FLAGS = content_cache_flags(ESLINT_EDIT_CACHE_FILE);
144
+ var ESLINT_RELATED_CACHE_FLAGS = content_cache_flags(ESLINT_RELATED_CACHE_FILE);
145
+ var CSPELL_CACHE_FLAGS = content_cache_flags(CSPELL_CACHE_FILE);
146
+
147
147
  // scripts/josh/josh-commands-backlog.ts
148
148
  var BACKLOG_COMMANDS = {
149
149
  "backlog:next": {
@@ -168,7 +168,11 @@ var BACKLOG_COMMANDS = {
168
168
  script: "scripts/backlog/backlog-plan-cli.ts",
169
169
  description: "Print the whole backlog as a plan: ready now, waiting on what, waiting on a person, out of scope",
170
170
  category: "AI tools",
171
- reference: ["[issue...] [--only]", "automation", ["network"]]
171
+ reference: [
172
+ "[issue...] [--only] [--waves] [--exclude <n>[,<n>...]]",
173
+ "automation",
174
+ ["network"]
175
+ ]
172
176
  },
173
177
  "backlog:stalled": {
174
178
  script: "scripts/backlog/backlog-stalled-cli.ts",
@@ -259,7 +263,7 @@ var ISSUE_COMMANDS = {
259
263
  script: "scripts/issue/issue-scout-cli.ts",
260
264
  description: "Before filing: say whether an issue like this exists and which epic it belongs to",
261
265
  category: "AI tools",
262
- reference: ["<title> [--body <summary>]", "automation", ["network"]]
266
+ reference: ["<title> [--body <summary> | --body-file <path>]", "automation", ["network"]]
263
267
  },
264
268
  "defect:rate": {
265
269
  script: "scripts/issue/defect-rate-cli.ts",
@@ -277,7 +281,7 @@ var ISSUE_COMMANDS = {
277
281
  script: "scripts/issue/issue-fold-existing-cli.ts",
278
282
  description: "Assess whether a complete draft can join an unstarted issue",
279
283
  category: "AI tools",
280
- reference: ["<assessment.json>", "automation", ["none"]]
284
+ reference: ["<assessment.json> [--json]", "automation", ["none"]]
281
285
  },
282
286
  "issue:cite": {
283
287
  script: "scripts/issue/issue-cite-cli.ts",
@@ -365,6 +369,107 @@ var LANE_COMMANDS = {
365
369
  }
366
370
  };
367
371
 
372
+ // scripts/josh/josh-commands-run.ts
373
+ var RUN_HOLD_SCRIPT = "scripts/run/run-hold-cli.ts";
374
+ var RUN_COMMANDS = {
375
+ "run:hold": {
376
+ script: RUN_HOLD_SCRIPT,
377
+ description: "Claim this working tree for a run, or say which run already holds it",
378
+ category: "AI tools",
379
+ reference: ["[<issue> [--fullrun | --halfrun-stop | --prrun-stop]]", "automation", ["files"]]
380
+ },
381
+ "run:release": {
382
+ script: RUN_HOLD_SCRIPT,
383
+ description: "Release this working tree's run record",
384
+ category: "AI tools",
385
+ reference: ["[issue|--force]", "automation", ["files"]],
386
+ default_script_arguments: ["--release"]
387
+ },
388
+ "run:tidy": {
389
+ script: "scripts/run/run-tidy-cli.ts",
390
+ description: "Close merged lanes and drop stashes whose issues are all merged",
391
+ category: "AI tools",
392
+ reference: ["", "automation", ["git", "network", "files"]]
393
+ },
394
+ "run:carry": {
395
+ script: "scripts/run/run-carry-cli.ts",
396
+ description: "Carry one invocation\u2019s budget across its own session cuts",
397
+ category: "AI tools",
398
+ reference: ["<operation> [arguments...]", "automation", ["files"]]
399
+ },
400
+ "run:wake": {
401
+ script: "scripts/run/run-wake-cli.ts",
402
+ // `.env` rather than the ambient environment:
403
+ // the failure warning needs the Telegram credentials, the same
404
+ // reasons `notify` and `followup` carry these flags.
405
+ tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
406
+ description: "Wake the next session of a cut backlogrun from outside the conversation",
407
+ category: "AI tools",
408
+ reference: ["[options]", "automation", ["processes", "notifications"]]
409
+ },
410
+ "run:cut": {
411
+ script: "scripts/run/run-cut-cli.ts",
412
+ description: "Cut a lane child before the gate and resume a fresh process",
413
+ category: "AI tools",
414
+ reference: ["[--resume] <issue> [--impl] [--handoff <path>]", "automation", ["files"]]
415
+ },
416
+ "run:liveness": {
417
+ script: "scripts/run/run-liveness-cli.ts",
418
+ description: "Say whether a delegated unit is still working, or stopped without reporting",
419
+ category: "AI tools",
420
+ reference: ["<issue> --output <path> [options]", "automation", ["processes"]]
421
+ },
422
+ "run:ending": {
423
+ script: "scripts/run/run-ending-cli.ts",
424
+ description: "Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)",
425
+ category: "AI tools",
426
+ reference: ["<issue> --output <path> [--repo <owner/repo>]", "automation", ["network"]]
427
+ },
428
+ "run:progress": {
429
+ script: "scripts/run/run-progress-cli.ts",
430
+ description: "Report an unattended run\u2019s progress once it has gone quiet for an interval",
431
+ category: "AI tools",
432
+ reference: [
433
+ "[--once | --wait] [--interval <minutes>] [--hours <hours>] [--repo <owner/repo>] [--output <path>] | --mark | --path",
434
+ "automation",
435
+ ["files"]
436
+ ]
437
+ },
438
+ "run:prep": {
439
+ script: "scripts/run/run-prep-cli.ts",
440
+ description: "Bundle a run\u2019s pre-edit reads: body, comments, state, dependency scope",
441
+ category: "AI tools",
442
+ reference: ["<issue>", "automation", ["network"]]
443
+ },
444
+ // The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
445
+ // read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
446
+ // `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
447
+ "run:entry": {
448
+ script: "scripts/run/run-entry-cli.ts",
449
+ description: "Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step",
450
+ category: "AI tools",
451
+ reference: ["<issue> [--to <command>]", "automation", ["git", "network", "files"]]
452
+ },
453
+ "run:status": {
454
+ script: "scripts/run/run-status-cli.ts",
455
+ description: "Bundle a run\u2019s read-only status: issue state, cost verdict, carry counters",
456
+ category: "AI tools",
457
+ reference: ["<issue> [--repo <owner/repo>]", "automation", ["network"]]
458
+ },
459
+ "run:next": {
460
+ script: "scripts/run/run-next-cli.ts",
461
+ description: "Print the next step a fullrun takes, computed from the run\u2019s state",
462
+ category: "AI tools",
463
+ reference: ["<issue>", "automation", ["network"]]
464
+ },
465
+ "run:step": {
466
+ script: "scripts/run/run-step-cli.ts",
467
+ description: "Print the run\u2019s next single action, computed from the event stream, carry record and issue state",
468
+ category: "AI tools",
469
+ reference: ["<issue>", "automation", ["network", "files"]]
470
+ }
471
+ };
472
+
368
473
  // scripts/josh/josh-commands-split.ts
369
474
  var SPLIT_COMMANDS = {
370
475
  "split:assess": {
@@ -376,7 +481,6 @@ var SPLIT_COMMANDS = {
376
481
  };
377
482
 
378
483
  // scripts/josh/josh-commands-ai.ts
379
- var RUN_HOLD_SCRIPT = "scripts/run/run-hold-cli.ts";
380
484
  var ISSUE_WITH_OPTIONS2 = "<issue> [options]";
381
485
  var AI_COMMANDS = {
382
486
  ...ISSUE_COMMANDS,
@@ -387,7 +491,7 @@ var AI_COMMANDS = {
387
491
  reference: ["<keywords> [--size <n>]", "automation", ["network"]]
388
492
  },
389
493
  "stash:pop": {
390
- script: "scripts/git/stash-pop-cli.ts",
494
+ script: "scripts/git/stash/stash-pop-cli.ts",
391
495
  description: "Pop the stash matching this message, not whichever a shared stack has on top",
392
496
  category: "AI tools",
393
497
  reference: ["<message>", "automation", ["git"]]
@@ -402,7 +506,7 @@ var AI_COMMANDS = {
402
506
  script: "scripts/epic/epic-next.ts",
403
507
  description: "List an epic's runnable children, bundled per repository",
404
508
  category: "AI tools",
405
- reference: ["<epic>", "automation", ["network"]]
509
+ reference: ["<epic>... [--repo <owner/repo>] [--lanes]", "automation", ["network"]]
406
510
  },
407
511
  "epic:bundle": {
408
512
  script: "scripts/epic/epic-bundle-cli.ts",
@@ -431,9 +535,9 @@ var AI_COMMANDS = {
431
535
  ...BACKLOG_COMMANDS,
432
536
  cost: {
433
537
  script: "scripts/cost-runtime/cost-cli.ts",
434
- description: "Report a run's token and credit cost from Claude Code's session transcripts",
538
+ description: "Say whether the next turn of a run crosses the context-cut threshold (--cut) or a given tokens-per-request figure (--over)",
435
539
  category: "AI tools",
436
- reference: ["[--cut|--over]", "automation", ["none"]]
540
+ reference: ["(--cut | --over <tokens-per-request>) [--path <dir>]", "automation", ["none"]]
437
541
  },
438
542
  ...DOCUMENT_COMMANDS,
439
543
  time: {
@@ -497,98 +601,7 @@ var AI_COMMANDS = {
497
601
  category: "AI tools",
498
602
  reference: ["<unit-files> <unit-files> [<unit-files> \u2026]", "automation", ["none"]]
499
603
  },
500
- "run:hold": {
501
- script: RUN_HOLD_SCRIPT,
502
- description: "Claim this working tree for a run, or say which run already holds it",
503
- category: "AI tools",
504
- reference: ["[issue]", "automation", ["files"]]
505
- },
506
- "run:release": {
507
- script: RUN_HOLD_SCRIPT,
508
- description: "Release this working tree's run record",
509
- category: "AI tools",
510
- reference: ["[issue|--force]", "automation", ["files"]],
511
- default_script_arguments: ["--release"]
512
- },
513
- "run:tidy": {
514
- script: "scripts/run/run-tidy-cli.ts",
515
- description: "Close merged lanes and drop stashes whose issues are all merged",
516
- category: "AI tools",
517
- reference: ["", "automation", ["git", "network", "files"]]
518
- },
519
- "run:carry": {
520
- script: "scripts/run/run-carry-cli.ts",
521
- description: "Carry one invocation\u2019s budget across its own session cuts",
522
- category: "AI tools",
523
- reference: ["<operation> [arguments...]", "automation", ["files"]]
524
- },
525
- "run:wake": {
526
- script: "scripts/run/run-wake-cli.ts",
527
- // `.env` rather than the ambient environment:
528
- // the failure warning needs the Telegram credentials, the same
529
- // reasons `notify` and `followup` carry these flags.
530
- tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
531
- description: "Wake the next session of a cut backlogrun from outside the conversation",
532
- category: "AI tools",
533
- reference: ["[options]", "automation", ["processes", "notifications"]]
534
- },
535
- "run:cut": {
536
- script: "scripts/run/run-cut-cli.ts",
537
- description: "Cut a lane child before the gate and resume a fresh process",
538
- category: "AI tools",
539
- reference: ["[--resume] <issue> [--impl] [--handoff <path>]", "automation", ["files"]]
540
- },
541
- "run:liveness": {
542
- script: "scripts/run/run-liveness-cli.ts",
543
- description: "Say whether a delegated unit is still working, or stopped without reporting",
544
- category: "AI tools",
545
- reference: ["<issue> --output <path> [options]", "automation", ["processes"]]
546
- },
547
- "run:ending": {
548
- script: "scripts/run/run-ending-cli.ts",
549
- description: "Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)",
550
- category: "AI tools",
551
- reference: ["<issue> --output <path> [--repo <owner/repo>]", "automation", ["network"]]
552
- },
553
- "run:progress": {
554
- script: "scripts/run/run-progress-cli.ts",
555
- description: "Report an unattended run\u2019s progress once it has gone quiet for an interval",
556
- category: "AI tools",
557
- reference: ["[--wait|--mark]", "automation", ["files"]]
558
- },
559
- "run:prep": {
560
- script: "scripts/run/run-prep-cli.ts",
561
- description: "Bundle a run\u2019s pre-edit reads: body, comments, state, dependency scope",
562
- category: "AI tools",
563
- reference: ["<issue>", "automation", ["network"]]
564
- },
565
- // The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
566
- // read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
567
- // `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
568
- "run:entry": {
569
- script: "scripts/run/run-entry-cli.ts",
570
- description: "Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step",
571
- category: "AI tools",
572
- reference: ["<issue>", "automation", ["git", "network", "files"]]
573
- },
574
- "run:status": {
575
- script: "scripts/run/run-status-cli.ts",
576
- description: "Bundle a run\u2019s read-only status: issue state, cost verdict, carry counters",
577
- category: "AI tools",
578
- reference: ["<issue> [--repo <owner/repo>]", "automation", ["network"]]
579
- },
580
- "run:next": {
581
- script: "scripts/run/run-next-cli.ts",
582
- description: "Print the next step a fullrun takes, computed from the run\u2019s state",
583
- category: "AI tools",
584
- reference: ["<issue>", "automation", ["network"]]
585
- },
586
- "run:step": {
587
- script: "scripts/run/run-step-cli.ts",
588
- description: "Print the run\u2019s next single action, computed from the event stream, carry record and issue state",
589
- category: "AI tools",
590
- reference: ["<issue>", "automation", ["network", "files"]]
591
- },
604
+ ...RUN_COMMANDS,
592
605
  "repo:party": {
593
606
  script: "scripts/discovery/repo-party-cli.ts",
594
607
  description: "Say whether a repository is first-party or third-party by owner equality (computed, not judged)",
@@ -612,7 +625,7 @@ var AI_COMMANDS = {
612
625
  // `issue:cite` and `release:scope` were three round trips re-billing the run's full context each.
613
626
  "run:tail": {
614
627
  script: "scripts/run/run-tail-cli.ts",
615
- description: "Close a run in one call: commit the observation ledger, read the citations, decide the release scope",
628
+ description: "Close a run in one call: return to the default branch, commit the observation ledger, read the citations, decide the release scope",
616
629
  category: "AI tools",
617
630
  reference: ["[<issue> ...]", "automation", ["git", "network"]]
618
631
  },
@@ -625,7 +638,7 @@ var AI_COMMANDS = {
625
638
  description: "Ship a change in one call: gate, commit/push/PR, the CI-wait merge and the report bookkeeping, stopping at the first failed step",
626
639
  category: "AI tools",
627
640
  reference: [
628
- '"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
641
+ '"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--body-file <path>] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
629
642
  "automation",
630
643
  ["git", "network"]
631
644
  ]
@@ -704,7 +717,7 @@ var DEV_COMMANDS = {
704
717
  category: "Development",
705
718
  reference: ["", "automation", ["none"]]
706
719
  },
707
- [GATE_COMMAND]: {
720
+ [GATE_COMMAND2]: {
708
721
  script: "scripts/gate/verification-gate.ts",
709
722
  description: "Run lint, type check, spell check and unit tests concurrently",
710
723
  category: "Development",
@@ -735,7 +748,7 @@ var DEV_COMMANDS = {
735
748
  reference: ["", "automation", ["processes"]]
736
749
  },
737
750
  bytes: {
738
- script: "scripts/bytes/bytes-command.ts",
751
+ script: "scripts/lines/bytes-command.ts",
739
752
  description: "Print an agent-read document's byte size against its ceiling and the headroom left",
740
753
  category: "Development",
741
754
  reference: [REQUIRED_FILE_ARGUMENTS, "developer", ["none"]]
@@ -753,7 +766,7 @@ var DEV_COMMANDS = {
753
766
  reference: ["", "developer", ["files", "processes"]]
754
767
  },
755
768
  "format:edited": {
756
- script: "scripts/hooks/format-edited-file.ts",
769
+ script: "scripts/hooks/format-edited-cli.ts",
757
770
  description: "Claude Code hook: format the file just edited (reads the tool call on stdin)",
758
771
  category: "Development",
759
772
  reference: ["", "automation", ["files", "processes"]]
@@ -771,7 +784,7 @@ var DEV_COMMANDS = {
771
784
  // node's own `--env-file` parser with node's own precedence.
772
785
  },
773
786
  "pretool:guard": {
774
- script: "scripts/hooks/pretool-guard.ts",
787
+ script: "scripts/hooks/pretool-guard-cli.ts",
775
788
  description: "Claude Code hook: the batch, investigation and rule guards in one process (reads the tool call on stdin)",
776
789
  category: "Development",
777
790
  reference: ["", "automation", ["none"]]
@@ -810,6 +823,12 @@ var DEV_COMMANDS = {
810
823
  category: "Development",
811
824
  reference: ["", "developer", ["files"]]
812
825
  },
826
+ "exports:unused": {
827
+ script: "scripts/exports/unused-members-cli.ts",
828
+ description: "Report exported namespace members nothing reads (kit only; a consumer project skips it)",
829
+ category: "Development",
830
+ reference: ["", "developer", ["none"]]
831
+ },
813
832
  "test:unit": {
814
833
  script: "scripts/test/test-unit-guard.ts",
815
834
  description: "Run unit tests with Vitest (skips when Vitest is absent; fails when it has no tests)",
@@ -950,6 +969,12 @@ var MAINTENANCE_COMMANDS = {
950
969
  reference: ["[--fix]", "developer", ["files"]],
951
970
  tsx_arguments: OPTIONAL_ENV_FILE_FLAGS
952
971
  },
972
+ "ruleset:check": {
973
+ script: "scripts/repo/ruleset-check-cli.ts",
974
+ description: "Check that the default branch requires every status check kit's workflows report (--apply adds the missing ones)",
975
+ category: "Maintenance",
976
+ reference: ["[--apply]", "maintainer", ["network"]]
977
+ },
953
978
  overrides: {
954
979
  script: "scripts/overrides/overrides-check.ts",
955
980
  description: "Check pnpm overrides for drift",
@@ -1029,7 +1054,7 @@ var PROJECT_COMMANDS = {
1029
1054
  description: "Set a project up for the GitHub Issue workflow, from git init to the setup PR",
1030
1055
  category: "Project",
1031
1056
  reference: [
1032
- `${PROFILE_ARGUMENTS} [--yes] [--github] [--public]`,
1057
+ `${PROFILE_ARGUMENTS} [--yes] [--github] [--public] [--init-command <command>]`,
1033
1058
  "developer",
1034
1059
  ["files", "git", "network", "processes"]
1035
1060
  ]
@@ -1068,6 +1093,12 @@ var PROJECT_COMMANDS = {
1068
1093
  category: "Project",
1069
1094
  reference: ["<PR>", "automation", ["network"]]
1070
1095
  },
1096
+ "sonar:new-code": {
1097
+ script: "scripts/sonar/sonar-new-code-cli.ts",
1098
+ description: "Fail when a pull request adds any new SonarCloud issue or duplicated block",
1099
+ category: "Project",
1100
+ reference: ["<PR>", "automation", ["network"]]
1101
+ },
1071
1102
  "ui:routes": {
1072
1103
  script: "scripts/ui/ui-routes-cli.ts",
1073
1104
  description: "List the screenshot-target routes the current change touches",
@@ -1133,6 +1164,14 @@ var VERSIONING_COMMANDS = {
1133
1164
  description: "Say whether a release is owed, from the unreleased merges on main",
1134
1165
  category: "Versioning",
1135
1166
  reference: ["[--json]", "automation", ["none"]]
1167
+ },
1168
+ // Run by the release workflows, kit's and the one sync distributes, after a tag has published
1169
+ // (joshuafolkken/kit#3007). Settings come from the environment, so the workflow decides them.
1170
+ "release:github": {
1171
+ script: "scripts/release/github-release-cli.ts",
1172
+ description: "Create the GitHub Release for a published tag, with generated notes",
1173
+ category: "Versioning",
1174
+ reference: ["", "automation", ["network", "release"]]
1136
1175
  }
1137
1176
  };
1138
1177
 
@@ -1170,7 +1209,7 @@ var WORKFLOW_COMMANDS = {
1170
1209
  // than dropped: `telegram_notify.send` now throws on missing credentials and on a failed send, so
1171
1210
  // `josh notify` exits non-zero instead of warning and answering 0.
1172
1211
  followup: {
1173
- script: "scripts/git/git-followup-workflow.ts",
1212
+ script: "scripts/followup/git-followup-workflow.ts",
1174
1213
  description: "Follow-up git workflow",
1175
1214
  category: "Workflow",
1176
1215
  reference: [
@@ -1181,7 +1220,7 @@ var WORKFLOW_COMMANDS = {
1181
1220
  tsx_arguments: OPTIONAL_ENV_FILE_FLAGS
1182
1221
  },
1183
1222
  notify: {
1184
- script: "scripts/git/telegram-test.ts",
1223
+ script: "scripts/notify/telegram-test.ts",
1185
1224
  description: "Send Telegram notification",
1186
1225
  category: "Workflow",
1187
1226
  reference: ["--task-type <type> --body <text>", "automation", ["notifications"]],
@@ -1265,18 +1304,15 @@ var ALIASES = {
1265
1304
  ln: "lines",
1266
1305
  by: "bytes",
1267
1306
  f: "format",
1268
- fd: "format:edited",
1269
- bg: "batch:guard",
1270
1307
  sd: "cspell:dot",
1271
1308
  bh: "behavior",
1309
+ eu: "exports:unused",
1272
1310
  t: "test",
1273
1311
  tu: "test:unit",
1274
1312
  tr: "test:related",
1275
1313
  td: "test:declared",
1276
1314
  trd: "test:red",
1277
1315
  te: "test:e2e",
1278
- er: "e2e:retry-check",
1279
- sl: "session:lang",
1280
1316
  c: "check",
1281
1317
  pt: "port",
1282
1318
  i: "init",
@@ -1284,127 +1320,30 @@ var ALIASES = {
1284
1320
  st: "start",
1285
1321
  sy: "sync",
1286
1322
  rmi: "registry:migrate",
1287
- sys: "sync:scope",
1288
1323
  g: "git",
1289
1324
  gp: "pr",
1290
- prc: "pr:classification",
1291
- fu: "followup",
1292
- nf: "notify",
1293
- obf: "observations:flush",
1294
- mrr: "measure:rerun",
1295
1325
  ms: "main:sync",
1296
1326
  mm: "main:merge",
1297
1327
  bp: "bump",
1298
1328
  re: "release",
1299
- res: "release:scope",
1300
1329
  v: "version",
1301
1330
  r: "ranges",
1302
1331
  dr: "doctor",
1332
+ rc: "ruleset:check",
1303
1333
  pg: "propagate",
1304
1334
  ad: "adopt",
1305
1335
  ov: "overrides",
1306
1336
  a: "audit",
1307
- ap: "audit:provision",
1308
1337
  rt: "reconcile-templates",
1309
1338
  u: "latest",
1310
- lg: "latest:guard",
1311
1339
  lc: "latest:corepack",
1312
1340
  lu: "latest:update",
1313
- ls: "latest:scope",
1314
- pm: "prevent-main-commit",
1315
- cm: "check-commit-message",
1316
- ss: "secretlint-scan",
1317
- ppu: "pre-push-unit",
1318
- rer: "reserved-run",
1319
- ptc: "pre-commit-type-check",
1320
- ird: "issue:read",
1321
- ist: "issue:state",
1322
- isc: "issue:scout",
1323
- ifl: "issue:file",
1324
- isf: "issue:fold",
1325
- isfe: "issue:fold-existing",
1326
- dfr: "defect:rate",
1327
- ici: "issue:cite",
1328
- icm: "issue:comment",
1329
- pks: "pkg:scout",
1330
- iln: "issue:lint",
1331
- ibl: "issue:backlinks",
1332
- rl: "report:lint",
1333
- ep: "epic",
1334
- ec: "epic:check",
1335
- en: "epic:next",
1336
- ea: "epic:audit",
1337
- eb: "epic:bundle",
1338
- ao: "auto-ok:next",
1339
- bl: "backlog:next",
1340
- blo: "backlog:offer",
1341
- bld: "backlog:drive",
1342
- blp: "backlog:plan",
1343
- bls: "backlog:stalled",
1344
- bb: "backlog:budget",
1345
- co: "cost",
1346
- ds: "doc:section",
1347
- rs: "read:set",
1348
- dcr: "doc:read",
1349
- rf: "read:files",
1350
- ef: "edit:files",
1351
- rfs: "refactor:scan",
1352
1341
  tm: "time",
1353
1342
  tmd: "time:density",
1354
1343
  rtr: "retrospective",
1355
- rb: "review:brief",
1356
- r2: "review:round2",
1357
- ra: "review:attest",
1358
- rvr: "review:record",
1359
1344
  rvf: "review:findings",
1360
- dp: "disposition",
1361
- dg: "delegate",
1362
- fo: "fanout",
1363
- rh: "run:hold",
1364
- rr: "run:release",
1365
- rc: "run:carry",
1366
- rtd: "run:tidy",
1367
- rw: "run:wake",
1368
- rct: "run:cut",
1369
- rv: "run:liveness",
1370
- red: "run:ending",
1371
- rg: "run:progress",
1372
- rp: "run:prep",
1373
- ren: "run:entry",
1374
- rtl: "run:tail",
1375
- shp: "ship",
1376
- rst: "run:status",
1377
- rn: "run:next",
1378
- rsp: "run:step",
1379
- rpy: "repo:party",
1380
- rmg: "run:merge",
1381
- rrp: "run:report",
1382
- rrv: "run:review",
1383
- rev: "run:event",
1384
- sp: "stash:pop",
1385
- lno: "lane:open",
1386
- lnc: "lane:close",
1387
- lnl: "lane:list",
1388
- lnp: "lane:prune",
1389
- lnv: "lane:output",
1390
- lnd: "lane:dispatch",
1391
- lna: "lane:await",
1392
- lnla: "lane:launch",
1393
- rwg: "run:watcher:guard",
1394
- rsd: "run:stranded",
1395
- ig: "investigation:guard",
1396
- drg: "duplicate-read:guard",
1397
- rug: "rule:guard",
1398
1345
  ruv: "rule:value",
1399
- ptg: "pretool:guard",
1400
- sg: "stop:guard",
1401
- ev: "eval",
1402
- ol: "oracle:list",
1403
- sa: "split:assess",
1404
- shs: "sonar:hotspots",
1405
- uir: "ui:routes",
1406
- cs: "clone:scan",
1407
- ca: "cases"
1346
+ ev: "eval"
1408
1347
  };
1409
1348
  function canonical_command(name) {
1410
1349
  if (!Object.hasOwn(ALIASES, name)) return name;
@@ -1894,7 +1833,6 @@ var time_bundle_call = {
1894
1833
  tool_targets,
1895
1834
  // Exported for the batching guard's own word scan (joshuafolkken/kit#1390), so the two scanners
1896
1835
  // cannot come to disagree about where one word of a shell line ends and the next begins.
1897
- words_of,
1898
1836
  // Exported for the read-fold notice (joshuafolkken/kit#2311), which offers `read:files <path>` only
1899
1837
  // over file-shaped targets — a bare directory like `scripts/` is a target here but not something
1900
1838
  // `read:files` can read, so the notice reuses this test rather than keep a second copy that could
@@ -1921,18 +1859,7 @@ var LABEL_WIDTH = 24;
1921
1859
  var MINUTES_WIDTH = 9;
1922
1860
  var NOT_MEASURED = "not measured";
1923
1861
  var NO_CALLS = "no tool call to divide";
1924
- var NAKED_PREFIX = "naked ";
1925
- var MODEL_LABEL = "model wait";
1926
- var TOOL_LABEL = "tool execution";
1927
- var HUMAN_LABEL = "human wait";
1928
- var CI_LABEL = "CI wait";
1929
1862
  var MAX_ROWS = 15;
1930
- var SUFFIX_SEPARATOR = " \xB7 ";
1931
- var RANGE_SEPARATOR = " \u2013 ";
1932
- var RUN_UNIT = "run(s)";
1933
- var CLOCK_START = 11;
1934
- var CLOCK_END = 19;
1935
- var WINDOW_ARROW = " \u2192 ";
1936
1863
  function overflow_line(row_count) {
1937
1864
  if (row_count <= MAX_ROWS) return [];
1938
1865
  return [
@@ -1961,45 +1888,21 @@ function format_row(label, duration_ms, suffix) {
1961
1888
  function unmeasured_row(label) {
1962
1889
  return format_columns(label, "", NOT_MEASURED);
1963
1890
  }
1964
- function format_spread(min, max, sample_count) {
1965
- const range = `${min}${RANGE_SEPARATOR}${max}`;
1966
- return `${range}${SUFFIX_SEPARATOR}${String(sample_count)} ${RUN_UNIT}`;
1967
- }
1968
- function format_clock(timestamp_ms) {
1969
- return new Date(timestamp_ms).toISOString().slice(CLOCK_START, CLOCK_END);
1970
- }
1971
- function format_window(started_ms3, ended_ms) {
1972
- return `${format_clock(started_ms3)}${WINDOW_ARROW}${format_clock(ended_ms)}`;
1973
- }
1974
- function note_lines(notes) {
1975
- return notes.map((note) => ` ${note}`);
1976
- }
1977
1891
  var time_format = {
1978
1892
  MAX_ROWS,
1979
1893
  NO_CALLS,
1980
- NAKED_PREFIX,
1981
- SUFFIX_SEPARATOR,
1982
- NOT_MEASURED,
1983
- MODEL_LABEL,
1984
- TOOL_LABEL,
1985
- HUMAN_LABEL,
1986
- CI_LABEL,
1987
1894
  overflow_line,
1988
- format_minutes,
1989
1895
  format_seconds,
1990
1896
  format_share,
1991
1897
  usd,
1992
1898
  format_columns,
1993
1899
  format_row,
1994
- format_spread,
1995
1900
  // `format_clock` stays private: `format_window` is its only caller, and a namespace that offers
1996
1901
  // both invites a second renderer to join the two with its own arrow.
1997
- format_window,
1998
- unmeasured_row,
1999
- note_lines
1902
+ unmeasured_row
2000
1903
  };
2001
1904
 
2002
- // scripts/git/git-followup-stages.ts
1905
+ // scripts/followup/git-followup-stages.ts
2003
1906
  var STAGE_LINE_PREFIX = "followup stage: ";
2004
1907
  var STAGE_TOTAL_PREFIX = "followup stages total: ";
2005
1908
  var STAGE_NAME_WIDTH = 26;
@@ -2152,7 +2055,6 @@ var cost_attribute = {
2152
2055
  UNATTRIBUTED_KEY,
2153
2056
  issue_from_branch,
2154
2057
  declared_issue,
2155
- fill,
2156
2058
  attribute,
2157
2059
  group_by_issue,
2158
2060
  records_for_issue
@@ -2375,7 +2277,7 @@ function check_key(josh_command, command) {
2375
2277
  if (!CHECK_COMMANDS.has(josh_command)) return NO_CHECK;
2376
2278
  return [josh_command, ...argument_key(command)].join(KEY_SEPARATOR);
2377
2279
  }
2378
- var time_single_check = { CHECK_COMMANDS, NO_CHECK, check_key };
2280
+ var time_single_check = { NO_CHECK, check_key };
2379
2281
 
2380
2282
  // scripts/time-runtime/time-transcript-line.ts
2381
2283
  import { z as z3 } from "zod";
@@ -2484,7 +2386,6 @@ function parse_line2(line) {
2484
2386
  }
2485
2387
  var time_transcript_line = {
2486
2388
  ERROR_TEXT_LIMIT,
2487
- REFUSAL_MARKER,
2488
2389
  NO_MESSAGE_ID,
2489
2390
  guard_from_refusal,
2490
2391
  parse_line: parse_line2
@@ -3403,11 +3304,7 @@ var time_round_trips = {
3403
3304
  // `time-model-gaps.ts` and needed the same predicates and the same opener test this walk uses. A
3404
3305
  // private copy there would be the clone `CLAUDE.md` prohibits, in the one place a drift would have
3405
3306
  // the distribution and the count disagreeing about what a round trip is.
3406
- is_call,
3407
- is_model,
3408
- opens_round_trip,
3409
- per_round_trip,
3410
- started_ms: started_ms2
3307
+ per_round_trip
3411
3308
  };
3412
3309
 
3413
3310
  // scripts/time-runtime/time-density.ts
@@ -3524,8 +3421,6 @@ function density_notice(raw_payload, now_ms = Date.now()) {
3524
3421
  }
3525
3422
  }
3526
3423
  var time_density_hook = {
3527
- NOTICE_PREFIX,
3528
- TAIL_BYTES,
3529
3424
  density_notice,
3530
3425
  notice_path,
3531
3426
  read_tail