@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
package/dist/josh.js CHANGED
@@ -4,6 +4,19 @@
4
4
  import { existsSync } from "node:fs";
5
5
  import path from "node:path";
6
6
 
7
+ // scripts/lib/json-value.ts
8
+ function parse_or_undefined(text) {
9
+ try {
10
+ return JSON.parse(text);
11
+ } catch {
12
+ return void 0;
13
+ }
14
+ }
15
+ function is_record(value) {
16
+ return typeof value === "object" && value !== null && !Array.isArray(value);
17
+ }
18
+ var json_value = { parse_or_undefined, is_record };
19
+
7
20
  // scripts/lib/read-file.ts
8
21
  import { readFileSync } from "node:fs";
9
22
  var ABSENT_CODE = "ENOENT";
@@ -46,15 +59,6 @@ function read_spawn_stdout(result) {
46
59
  // scripts/version/kit-descriptor.ts
47
60
  var KIT_PACKAGE_NAME = "@joshuafolkken/kit";
48
61
 
49
- // scripts/version/parse-json.ts
50
- function safe_json_parse(raw) {
51
- try {
52
- return JSON.parse(raw);
53
- } catch {
54
- return void 0;
55
- }
56
- }
57
-
58
62
  // scripts/doctor/doctor-consumer.ts
59
63
  import { execaSync } from "execa";
60
64
  import { z } from "zod";
@@ -79,7 +83,7 @@ var STATE_MISSING = "missing";
79
83
  function parse_manifest(root) {
80
84
  const content = file_reader.read_if_readable(path.join(root, "package.json"));
81
85
  if (content === void 0) return void 0;
82
- const parsed = manifest_schema.safeParse(safe_json_parse(content));
86
+ const parsed = manifest_schema.safeParse(json_value.parse_or_undefined(content));
83
87
  return parsed.success ? parsed.data : void 0;
84
88
  }
85
89
  function lists_kit_dependency(manifest) {
@@ -94,7 +98,7 @@ function is_kit_consumer(root) {
94
98
  function is_plugin_declared(root) {
95
99
  const content = file_reader.read_if_readable(path.join(root, SETTINGS_PATH));
96
100
  if (content === void 0) return false;
97
- const parsed = settings_schema.safeParse(safe_json_parse(content));
101
+ const parsed = settings_schema.safeParse(json_value.parse_or_undefined(content));
98
102
  return parsed.success && parsed.data.enabledPlugins?.[PLUGIN_ID] === true;
99
103
  }
100
104
  function configured_hooks_path(root) {
@@ -120,7 +124,7 @@ function status_line(is_ok, ok_text, warn_text) {
120
124
  function plugin_line(is_declared) {
121
125
  return status_line(
122
126
  is_declared,
123
- `kit plugin declared (run \`claude plugin install ${PLUGIN_ID}\` once if skills are missing)`,
127
+ "kit plugin declared (skills load in a trusted workspace; headless from its second session)",
124
128
  "kit plugin not declared in .claude/settings.json \u2014 run `pnpm josh sync`"
125
129
  );
126
130
  }
@@ -162,8 +166,6 @@ function report_consumer_setup(root) {
162
166
  var doctor_consumer = {
163
167
  claude_md_line,
164
168
  claude_md_state,
165
- configured_hooks_path,
166
- consumer_setup_lines,
167
169
  hooks_path_line,
168
170
  is_kit_consumer,
169
171
  is_plugin_declared,
@@ -344,7 +346,11 @@ var BACKLOG_COMMANDS = {
344
346
  script: "scripts/backlog/backlog-plan-cli.ts",
345
347
  description: "Print the whole backlog as a plan: ready now, waiting on what, waiting on a person, out of scope",
346
348
  category: "AI tools",
347
- reference: ["[issue...] [--only]", "automation", ["network"]]
349
+ reference: [
350
+ "[issue...] [--only] [--waves] [--exclude <n>[,<n>...]]",
351
+ "automation",
352
+ ["network"]
353
+ ]
348
354
  },
349
355
  "backlog:stalled": {
350
356
  script: "scripts/backlog/backlog-stalled-cli.ts",
@@ -435,7 +441,7 @@ var ISSUE_COMMANDS = {
435
441
  script: "scripts/issue/issue-scout-cli.ts",
436
442
  description: "Before filing: say whether an issue like this exists and which epic it belongs to",
437
443
  category: "AI tools",
438
- reference: ["<title> [--body <summary>]", "automation", ["network"]]
444
+ reference: ["<title> [--body <summary> | --body-file <path>]", "automation", ["network"]]
439
445
  },
440
446
  "defect:rate": {
441
447
  script: "scripts/issue/defect-rate-cli.ts",
@@ -453,7 +459,7 @@ var ISSUE_COMMANDS = {
453
459
  script: "scripts/issue/issue-fold-existing-cli.ts",
454
460
  description: "Assess whether a complete draft can join an unstarted issue",
455
461
  category: "AI tools",
456
- reference: ["<assessment.json>", "automation", ["none"]]
462
+ reference: ["<assessment.json> [--json]", "automation", ["none"]]
457
463
  },
458
464
  "issue:cite": {
459
465
  script: "scripts/issue/issue-cite-cli.ts",
@@ -541,6 +547,107 @@ var LANE_COMMANDS = {
541
547
  }
542
548
  };
543
549
 
550
+ // scripts/josh/josh-commands-run.ts
551
+ var RUN_HOLD_SCRIPT = "scripts/run/run-hold-cli.ts";
552
+ var RUN_COMMANDS = {
553
+ "run:hold": {
554
+ script: RUN_HOLD_SCRIPT,
555
+ description: "Claim this working tree for a run, or say which run already holds it",
556
+ category: "AI tools",
557
+ reference: ["[<issue> [--fullrun | --halfrun-stop | --prrun-stop]]", "automation", ["files"]]
558
+ },
559
+ "run:release": {
560
+ script: RUN_HOLD_SCRIPT,
561
+ description: "Release this working tree's run record",
562
+ category: "AI tools",
563
+ reference: ["[issue|--force]", "automation", ["files"]],
564
+ default_script_arguments: ["--release"]
565
+ },
566
+ "run:tidy": {
567
+ script: "scripts/run/run-tidy-cli.ts",
568
+ description: "Close merged lanes and drop stashes whose issues are all merged",
569
+ category: "AI tools",
570
+ reference: ["", "automation", ["git", "network", "files"]]
571
+ },
572
+ "run:carry": {
573
+ script: "scripts/run/run-carry-cli.ts",
574
+ description: "Carry one invocation\u2019s budget across its own session cuts",
575
+ category: "AI tools",
576
+ reference: ["<operation> [arguments...]", "automation", ["files"]]
577
+ },
578
+ "run:wake": {
579
+ script: "scripts/run/run-wake-cli.ts",
580
+ // `.env` rather than the ambient environment:
581
+ // the failure warning needs the Telegram credentials, the same
582
+ // reasons `notify` and `followup` carry these flags.
583
+ tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
584
+ description: "Wake the next session of a cut backlogrun from outside the conversation",
585
+ category: "AI tools",
586
+ reference: ["[options]", "automation", ["processes", "notifications"]]
587
+ },
588
+ "run:cut": {
589
+ script: "scripts/run/run-cut-cli.ts",
590
+ description: "Cut a lane child before the gate and resume a fresh process",
591
+ category: "AI tools",
592
+ reference: ["[--resume] <issue> [--impl] [--handoff <path>]", "automation", ["files"]]
593
+ },
594
+ "run:liveness": {
595
+ script: "scripts/run/run-liveness-cli.ts",
596
+ description: "Say whether a delegated unit is still working, or stopped without reporting",
597
+ category: "AI tools",
598
+ reference: ["<issue> --output <path> [options]", "automation", ["processes"]]
599
+ },
600
+ "run:ending": {
601
+ script: "scripts/run/run-ending-cli.ts",
602
+ description: "Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)",
603
+ category: "AI tools",
604
+ reference: ["<issue> --output <path> [--repo <owner/repo>]", "automation", ["network"]]
605
+ },
606
+ "run:progress": {
607
+ script: "scripts/run/run-progress-cli.ts",
608
+ description: "Report an unattended run\u2019s progress once it has gone quiet for an interval",
609
+ category: "AI tools",
610
+ reference: [
611
+ "[--once | --wait] [--interval <minutes>] [--hours <hours>] [--repo <owner/repo>] [--output <path>] | --mark | --path",
612
+ "automation",
613
+ ["files"]
614
+ ]
615
+ },
616
+ "run:prep": {
617
+ script: "scripts/run/run-prep-cli.ts",
618
+ description: "Bundle a run\u2019s pre-edit reads: body, comments, state, dependency scope",
619
+ category: "AI tools",
620
+ reference: ["<issue>", "automation", ["network"]]
621
+ },
622
+ // The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
623
+ // read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
624
+ // `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
625
+ "run:entry": {
626
+ script: "scripts/run/run-entry-cli.ts",
627
+ description: "Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step",
628
+ category: "AI tools",
629
+ reference: ["<issue> [--to <command>]", "automation", ["git", "network", "files"]]
630
+ },
631
+ "run:status": {
632
+ script: "scripts/run/run-status-cli.ts",
633
+ description: "Bundle a run\u2019s read-only status: issue state, cost verdict, carry counters",
634
+ category: "AI tools",
635
+ reference: ["<issue> [--repo <owner/repo>]", "automation", ["network"]]
636
+ },
637
+ "run:next": {
638
+ script: "scripts/run/run-next-cli.ts",
639
+ description: "Print the next step a fullrun takes, computed from the run\u2019s state",
640
+ category: "AI tools",
641
+ reference: ["<issue>", "automation", ["network"]]
642
+ },
643
+ "run:step": {
644
+ script: "scripts/run/run-step-cli.ts",
645
+ description: "Print the run\u2019s next single action, computed from the event stream, carry record and issue state",
646
+ category: "AI tools",
647
+ reference: ["<issue>", "automation", ["network", "files"]]
648
+ }
649
+ };
650
+
544
651
  // scripts/josh/josh-commands-split.ts
545
652
  var SPLIT_COMMANDS = {
546
653
  "split:assess": {
@@ -552,7 +659,6 @@ var SPLIT_COMMANDS = {
552
659
  };
553
660
 
554
661
  // scripts/josh/josh-commands-ai.ts
555
- var RUN_HOLD_SCRIPT = "scripts/run/run-hold-cli.ts";
556
662
  var ISSUE_WITH_OPTIONS2 = "<issue> [options]";
557
663
  var AI_COMMANDS = {
558
664
  ...ISSUE_COMMANDS,
@@ -563,7 +669,7 @@ var AI_COMMANDS = {
563
669
  reference: ["<keywords> [--size <n>]", "automation", ["network"]]
564
670
  },
565
671
  "stash:pop": {
566
- script: "scripts/git/stash-pop-cli.ts",
672
+ script: "scripts/git/stash/stash-pop-cli.ts",
567
673
  description: "Pop the stash matching this message, not whichever a shared stack has on top",
568
674
  category: "AI tools",
569
675
  reference: ["<message>", "automation", ["git"]]
@@ -578,7 +684,7 @@ var AI_COMMANDS = {
578
684
  script: "scripts/epic/epic-next.ts",
579
685
  description: "List an epic's runnable children, bundled per repository",
580
686
  category: "AI tools",
581
- reference: ["<epic>", "automation", ["network"]]
687
+ reference: ["<epic>... [--repo <owner/repo>] [--lanes]", "automation", ["network"]]
582
688
  },
583
689
  "epic:bundle": {
584
690
  script: "scripts/epic/epic-bundle-cli.ts",
@@ -607,9 +713,9 @@ var AI_COMMANDS = {
607
713
  ...BACKLOG_COMMANDS,
608
714
  cost: {
609
715
  script: "scripts/cost-runtime/cost-cli.ts",
610
- description: "Report a run's token and credit cost from Claude Code's session transcripts",
716
+ description: "Say whether the next turn of a run crosses the context-cut threshold (--cut) or a given tokens-per-request figure (--over)",
611
717
  category: "AI tools",
612
- reference: ["[--cut|--over]", "automation", ["none"]]
718
+ reference: ["(--cut | --over <tokens-per-request>) [--path <dir>]", "automation", ["none"]]
613
719
  },
614
720
  ...DOCUMENT_COMMANDS,
615
721
  time: {
@@ -673,98 +779,7 @@ var AI_COMMANDS = {
673
779
  category: "AI tools",
674
780
  reference: ["<unit-files> <unit-files> [<unit-files> \u2026]", "automation", ["none"]]
675
781
  },
676
- "run:hold": {
677
- script: RUN_HOLD_SCRIPT,
678
- description: "Claim this working tree for a run, or say which run already holds it",
679
- category: "AI tools",
680
- reference: ["[issue]", "automation", ["files"]]
681
- },
682
- "run:release": {
683
- script: RUN_HOLD_SCRIPT,
684
- description: "Release this working tree's run record",
685
- category: "AI tools",
686
- reference: ["[issue|--force]", "automation", ["files"]],
687
- default_script_arguments: ["--release"]
688
- },
689
- "run:tidy": {
690
- script: "scripts/run/run-tidy-cli.ts",
691
- description: "Close merged lanes and drop stashes whose issues are all merged",
692
- category: "AI tools",
693
- reference: ["", "automation", ["git", "network", "files"]]
694
- },
695
- "run:carry": {
696
- script: "scripts/run/run-carry-cli.ts",
697
- description: "Carry one invocation\u2019s budget across its own session cuts",
698
- category: "AI tools",
699
- reference: ["<operation> [arguments...]", "automation", ["files"]]
700
- },
701
- "run:wake": {
702
- script: "scripts/run/run-wake-cli.ts",
703
- // `.env` rather than the ambient environment:
704
- // the failure warning needs the Telegram credentials, the same
705
- // reasons `notify` and `followup` carry these flags.
706
- tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
707
- description: "Wake the next session of a cut backlogrun from outside the conversation",
708
- category: "AI tools",
709
- reference: ["[options]", "automation", ["processes", "notifications"]]
710
- },
711
- "run:cut": {
712
- script: "scripts/run/run-cut-cli.ts",
713
- description: "Cut a lane child before the gate and resume a fresh process",
714
- category: "AI tools",
715
- reference: ["[--resume] <issue> [--impl] [--handoff <path>]", "automation", ["files"]]
716
- },
717
- "run:liveness": {
718
- script: "scripts/run/run-liveness-cli.ts",
719
- description: "Say whether a delegated unit is still working, or stopped without reporting",
720
- category: "AI tools",
721
- reference: ["<issue> --output <path> [options]", "automation", ["processes"]]
722
- },
723
- "run:ending": {
724
- script: "scripts/run/run-ending-cli.ts",
725
- description: "Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)",
726
- category: "AI tools",
727
- reference: ["<issue> --output <path> [--repo <owner/repo>]", "automation", ["network"]]
728
- },
729
- "run:progress": {
730
- script: "scripts/run/run-progress-cli.ts",
731
- description: "Report an unattended run\u2019s progress once it has gone quiet for an interval",
732
- category: "AI tools",
733
- reference: ["[--wait|--mark]", "automation", ["files"]]
734
- },
735
- "run:prep": {
736
- script: "scripts/run/run-prep-cli.ts",
737
- description: "Bundle a run\u2019s pre-edit reads: body, comments, state, dependency scope",
738
- category: "AI tools",
739
- reference: ["<issue>", "automation", ["network"]]
740
- },
741
- // The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
742
- // read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
743
- // `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
744
- "run:entry": {
745
- script: "scripts/run/run-entry-cli.ts",
746
- description: "Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step",
747
- category: "AI tools",
748
- reference: ["<issue>", "automation", ["git", "network", "files"]]
749
- },
750
- "run:status": {
751
- script: "scripts/run/run-status-cli.ts",
752
- description: "Bundle a run\u2019s read-only status: issue state, cost verdict, carry counters",
753
- category: "AI tools",
754
- reference: ["<issue> [--repo <owner/repo>]", "automation", ["network"]]
755
- },
756
- "run:next": {
757
- script: "scripts/run/run-next-cli.ts",
758
- description: "Print the next step a fullrun takes, computed from the run\u2019s state",
759
- category: "AI tools",
760
- reference: ["<issue>", "automation", ["network"]]
761
- },
762
- "run:step": {
763
- script: "scripts/run/run-step-cli.ts",
764
- description: "Print the run\u2019s next single action, computed from the event stream, carry record and issue state",
765
- category: "AI tools",
766
- reference: ["<issue>", "automation", ["network", "files"]]
767
- },
782
+ ...RUN_COMMANDS,
768
783
  "repo:party": {
769
784
  script: "scripts/discovery/repo-party-cli.ts",
770
785
  description: "Say whether a repository is first-party or third-party by owner equality (computed, not judged)",
@@ -788,7 +803,7 @@ var AI_COMMANDS = {
788
803
  // `issue:cite` and `release:scope` were three round trips re-billing the run's full context each.
789
804
  "run:tail": {
790
805
  script: "scripts/run/run-tail-cli.ts",
791
- description: "Close a run in one call: commit the observation ledger, read the citations, decide the release scope",
806
+ description: "Close a run in one call: return to the default branch, commit the observation ledger, read the citations, decide the release scope",
792
807
  category: "AI tools",
793
808
  reference: ["[<issue> ...]", "automation", ["git", "network"]]
794
809
  },
@@ -801,7 +816,7 @@ var AI_COMMANDS = {
801
816
  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",
802
817
  category: "AI tools",
803
818
  reference: [
804
- '"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
819
+ '"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--body-file <path>] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
805
820
  "automation",
806
821
  ["git", "network"]
807
822
  ]
@@ -911,7 +926,7 @@ var DEV_COMMANDS = {
911
926
  reference: ["", "automation", ["processes"]]
912
927
  },
913
928
  bytes: {
914
- script: "scripts/bytes/bytes-command.ts",
929
+ script: "scripts/lines/bytes-command.ts",
915
930
  description: "Print an agent-read document's byte size against its ceiling and the headroom left",
916
931
  category: "Development",
917
932
  reference: [REQUIRED_FILE_ARGUMENTS, "developer", ["none"]]
@@ -929,7 +944,7 @@ var DEV_COMMANDS = {
929
944
  reference: ["", "developer", ["files", "processes"]]
930
945
  },
931
946
  "format:edited": {
932
- script: "scripts/hooks/format-edited-file.ts",
947
+ script: "scripts/hooks/format-edited-cli.ts",
933
948
  description: "Claude Code hook: format the file just edited (reads the tool call on stdin)",
934
949
  category: "Development",
935
950
  reference: ["", "automation", ["files", "processes"]]
@@ -947,7 +962,7 @@ var DEV_COMMANDS = {
947
962
  // node's own `--env-file` parser with node's own precedence.
948
963
  },
949
964
  "pretool:guard": {
950
- script: "scripts/hooks/pretool-guard.ts",
965
+ script: "scripts/hooks/pretool-guard-cli.ts",
951
966
  description: "Claude Code hook: the batch, investigation and rule guards in one process (reads the tool call on stdin)",
952
967
  category: "Development",
953
968
  reference: ["", "automation", ["none"]]
@@ -986,6 +1001,12 @@ var DEV_COMMANDS = {
986
1001
  category: "Development",
987
1002
  reference: ["", "developer", ["files"]]
988
1003
  },
1004
+ "exports:unused": {
1005
+ script: "scripts/exports/unused-members-cli.ts",
1006
+ description: "Report exported namespace members nothing reads (kit only; a consumer project skips it)",
1007
+ category: "Development",
1008
+ reference: ["", "developer", ["none"]]
1009
+ },
989
1010
  "test:unit": {
990
1011
  script: "scripts/test/test-unit-guard.ts",
991
1012
  description: "Run unit tests with Vitest (skips when Vitest is absent; fails when it has no tests)",
@@ -1126,6 +1147,12 @@ var MAINTENANCE_COMMANDS = {
1126
1147
  reference: ["[--fix]", "developer", ["files"]],
1127
1148
  tsx_arguments: OPTIONAL_ENV_FILE_FLAGS
1128
1149
  },
1150
+ "ruleset:check": {
1151
+ script: "scripts/repo/ruleset-check-cli.ts",
1152
+ description: "Check that the default branch requires every status check kit's workflows report (--apply adds the missing ones)",
1153
+ category: "Maintenance",
1154
+ reference: ["[--apply]", "maintainer", ["network"]]
1155
+ },
1129
1156
  overrides: {
1130
1157
  script: "scripts/overrides/overrides-check.ts",
1131
1158
  description: "Check pnpm overrides for drift",
@@ -1205,7 +1232,7 @@ var PROJECT_COMMANDS = {
1205
1232
  description: "Set a project up for the GitHub Issue workflow, from git init to the setup PR",
1206
1233
  category: "Project",
1207
1234
  reference: [
1208
- `${PROFILE_ARGUMENTS} [--yes] [--github] [--public]`,
1235
+ `${PROFILE_ARGUMENTS} [--yes] [--github] [--public] [--init-command <command>]`,
1209
1236
  "developer",
1210
1237
  ["files", "git", "network", "processes"]
1211
1238
  ]
@@ -1244,6 +1271,12 @@ var PROJECT_COMMANDS = {
1244
1271
  category: "Project",
1245
1272
  reference: ["<PR>", "automation", ["network"]]
1246
1273
  },
1274
+ "sonar:new-code": {
1275
+ script: "scripts/sonar/sonar-new-code-cli.ts",
1276
+ description: "Fail when a pull request adds any new SonarCloud issue or duplicated block",
1277
+ category: "Project",
1278
+ reference: ["<PR>", "automation", ["network"]]
1279
+ },
1247
1280
  "ui:routes": {
1248
1281
  script: "scripts/ui/ui-routes-cli.ts",
1249
1282
  description: "List the screenshot-target routes the current change touches",
@@ -1309,6 +1342,14 @@ var VERSIONING_COMMANDS = {
1309
1342
  description: "Say whether a release is owed, from the unreleased merges on main",
1310
1343
  category: "Versioning",
1311
1344
  reference: ["[--json]", "automation", ["none"]]
1345
+ },
1346
+ // Run by the release workflows, kit's and the one sync distributes, after a tag has published
1347
+ // (joshuafolkken/kit#3007). Settings come from the environment, so the workflow decides them.
1348
+ "release:github": {
1349
+ script: "scripts/release/github-release-cli.ts",
1350
+ description: "Create the GitHub Release for a published tag, with generated notes",
1351
+ category: "Versioning",
1352
+ reference: ["", "automation", ["network", "release"]]
1312
1353
  }
1313
1354
  };
1314
1355
 
@@ -1346,7 +1387,7 @@ var WORKFLOW_COMMANDS = {
1346
1387
  // than dropped: `telegram_notify.send` now throws on missing credentials and on a failed send, so
1347
1388
  // `josh notify` exits non-zero instead of warning and answering 0.
1348
1389
  followup: {
1349
- script: "scripts/git/git-followup-workflow.ts",
1390
+ script: "scripts/followup/git-followup-workflow.ts",
1350
1391
  description: "Follow-up git workflow",
1351
1392
  category: "Workflow",
1352
1393
  reference: [
@@ -1357,7 +1398,7 @@ var WORKFLOW_COMMANDS = {
1357
1398
  tsx_arguments: OPTIONAL_ENV_FILE_FLAGS
1358
1399
  },
1359
1400
  notify: {
1360
- script: "scripts/git/telegram-test.ts",
1401
+ script: "scripts/notify/telegram-test.ts",
1361
1402
  description: "Send Telegram notification",
1362
1403
  category: "Workflow",
1363
1404
  reference: ["--task-type <type> --body <text>", "automation", ["notifications"]],
@@ -1450,18 +1491,15 @@ var ALIASES = {
1450
1491
  ln: "lines",
1451
1492
  by: "bytes",
1452
1493
  f: "format",
1453
- fd: "format:edited",
1454
- bg: "batch:guard",
1455
1494
  sd: "cspell:dot",
1456
1495
  bh: "behavior",
1496
+ eu: "exports:unused",
1457
1497
  t: "test",
1458
1498
  tu: "test:unit",
1459
1499
  tr: "test:related",
1460
1500
  td: "test:declared",
1461
1501
  trd: "test:red",
1462
1502
  te: "test:e2e",
1463
- er: "e2e:retry-check",
1464
- sl: "session:lang",
1465
1503
  c: "check",
1466
1504
  pt: "port",
1467
1505
  i: "init",
@@ -1469,127 +1507,30 @@ var ALIASES = {
1469
1507
  st: "start",
1470
1508
  sy: "sync",
1471
1509
  rmi: "registry:migrate",
1472
- sys: "sync:scope",
1473
1510
  g: "git",
1474
1511
  gp: "pr",
1475
- prc: "pr:classification",
1476
- fu: "followup",
1477
- nf: "notify",
1478
- obf: "observations:flush",
1479
- mrr: "measure:rerun",
1480
1512
  ms: "main:sync",
1481
1513
  mm: "main:merge",
1482
1514
  bp: "bump",
1483
1515
  re: "release",
1484
- res: "release:scope",
1485
1516
  v: "version",
1486
1517
  r: "ranges",
1487
1518
  dr: "doctor",
1519
+ rc: "ruleset:check",
1488
1520
  pg: "propagate",
1489
1521
  ad: "adopt",
1490
1522
  ov: "overrides",
1491
1523
  a: "audit",
1492
- ap: "audit:provision",
1493
1524
  rt: "reconcile-templates",
1494
1525
  u: "latest",
1495
- lg: "latest:guard",
1496
1526
  lc: "latest:corepack",
1497
1527
  lu: "latest:update",
1498
- ls: "latest:scope",
1499
- pm: "prevent-main-commit",
1500
- cm: "check-commit-message",
1501
- ss: "secretlint-scan",
1502
- ppu: "pre-push-unit",
1503
- rer: "reserved-run",
1504
- ptc: "pre-commit-type-check",
1505
- ird: "issue:read",
1506
- ist: "issue:state",
1507
- isc: "issue:scout",
1508
- ifl: "issue:file",
1509
- isf: "issue:fold",
1510
- isfe: "issue:fold-existing",
1511
- dfr: "defect:rate",
1512
- ici: "issue:cite",
1513
- icm: "issue:comment",
1514
- pks: "pkg:scout",
1515
- iln: "issue:lint",
1516
- ibl: "issue:backlinks",
1517
- rl: "report:lint",
1518
- ep: "epic",
1519
- ec: "epic:check",
1520
- en: "epic:next",
1521
- ea: "epic:audit",
1522
- eb: "epic:bundle",
1523
- ao: "auto-ok:next",
1524
- bl: "backlog:next",
1525
- blo: "backlog:offer",
1526
- bld: "backlog:drive",
1527
- blp: "backlog:plan",
1528
- bls: "backlog:stalled",
1529
- bb: "backlog:budget",
1530
- co: "cost",
1531
- ds: "doc:section",
1532
- rs: "read:set",
1533
- dcr: "doc:read",
1534
- rf: "read:files",
1535
- ef: "edit:files",
1536
- rfs: "refactor:scan",
1537
1528
  tm: "time",
1538
1529
  tmd: "time:density",
1539
1530
  rtr: "retrospective",
1540
- rb: "review:brief",
1541
- r2: "review:round2",
1542
- ra: "review:attest",
1543
- rvr: "review:record",
1544
1531
  rvf: "review:findings",
1545
- dp: "disposition",
1546
- dg: "delegate",
1547
- fo: "fanout",
1548
- rh: "run:hold",
1549
- rr: "run:release",
1550
- rc: "run:carry",
1551
- rtd: "run:tidy",
1552
- rw: "run:wake",
1553
- rct: "run:cut",
1554
- rv: "run:liveness",
1555
- red: "run:ending",
1556
- rg: "run:progress",
1557
- rp: "run:prep",
1558
- ren: "run:entry",
1559
- rtl: "run:tail",
1560
- shp: "ship",
1561
- rst: "run:status",
1562
- rn: "run:next",
1563
- rsp: "run:step",
1564
- rpy: "repo:party",
1565
- rmg: "run:merge",
1566
- rrp: "run:report",
1567
- rrv: "run:review",
1568
- rev: "run:event",
1569
- sp: "stash:pop",
1570
- lno: "lane:open",
1571
- lnc: "lane:close",
1572
- lnl: "lane:list",
1573
- lnp: "lane:prune",
1574
- lnv: "lane:output",
1575
- lnd: "lane:dispatch",
1576
- lna: "lane:await",
1577
- lnla: "lane:launch",
1578
- rwg: "run:watcher:guard",
1579
- rsd: "run:stranded",
1580
- ig: "investigation:guard",
1581
- drg: "duplicate-read:guard",
1582
- rug: "rule:guard",
1583
1532
  ruv: "rule:value",
1584
- ptg: "pretool:guard",
1585
- sg: "stop:guard",
1586
- ev: "eval",
1587
- ol: "oracle:list",
1588
- sa: "split:assess",
1589
- shs: "sonar:hotspots",
1590
- uir: "ui:routes",
1591
- cs: "clone:scan",
1592
- ca: "cases"
1533
+ ev: "eval"
1593
1534
  };
1594
1535
 
1595
1536
  // scripts/josh/josh-composite-arguments.ts
@@ -1,7 +1,8 @@
1
1
  // scripts/claude/workflow-destination.ts
2
2
  var WORKFLOW_DESTINATION_PATTERN = /(?:^|[/\\])\.github[/\\]workflows[/\\][^/\\]+\.ya?ml$/u;
3
+ var COMPOSITE_ACTION_DESTINATION_PATTERN = /(?:^|[/\\])\.github[/\\]actions[/\\][^/\\]+[/\\]action\.ya?ml$/u;
3
4
  function is_workflow_destination(destination) {
4
- return WORKFLOW_DESTINATION_PATTERN.test(destination);
5
+ return WORKFLOW_DESTINATION_PATTERN.test(destination) || COMPOSITE_ACTION_DESTINATION_PATTERN.test(destination);
5
6
  }
6
7
 
7
8
  // scripts/managed-marker/managed-marker-logic.ts