@joshuafolkken/kit 1.1050.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 (581) hide show
  1. package/.claude/settings.json +9 -8
  2. package/.claude/skills/epic-commands/SKILL.md +5 -7
  3. package/.claude/skills/workflow-commands/SKILL.md +19 -11
  4. package/.claude/skills/workflow-commands/background-commands.md +4 -3
  5. package/.claude/skills/workflow-commands/backlogrun-child.md +1 -1
  6. package/.claude/skills/workflow-commands/backlogrun-lanes.md +8 -6
  7. package/.claude/skills/workflow-commands/backlogrun-progress.md +1 -1
  8. package/.claude/skills/workflow-commands/backlogrun-steps.md +10 -10
  9. package/.claude/skills/workflow-commands/backlogrun.md +2 -2
  10. package/.claude/skills/workflow-commands/chain-rule.md +4 -2
  11. package/.claude/skills/workflow-commands/delegation.md +3 -3
  12. package/.claude/skills/workflow-commands/followup-reference.md +1 -1
  13. package/.claude/skills/workflow-commands/followup.md +7 -3
  14. package/.claude/skills/workflow-commands/fullrun-steps.md +3 -2
  15. package/.claude/skills/workflow-commands/fullrun.md +3 -2
  16. package/.claude/skills/workflow-commands/halfrun.md +16 -19
  17. package/.claude/skills/workflow-commands/issue-comments.md +1 -1
  18. package/.claude/skills/workflow-commands/issue-fold-existing.md +10 -10
  19. package/.claude/skills/workflow-commands/issue-scout.md +1 -1
  20. package/.claude/skills/workflow-commands/kickoff.md +9 -4
  21. package/.claude/skills/workflow-commands/latest-gate.md +1 -1
  22. package/.claude/skills/workflow-commands/needs-human-review.md +1 -1
  23. package/.claude/skills/workflow-commands/observation-filing.md +3 -3
  24. package/.claude/skills/workflow-commands/prerequisite.md +1 -1
  25. package/.claude/skills/workflow-commands/prrun.md +36 -0
  26. package/.claude/skills/workflow-commands/retrospective.md +1 -1
  27. package/.claude/skills/workflow-commands/working-tree-hold.md +22 -2
  28. package/.codex/hooks.json +16 -20
  29. package/.github/actions/setup-pnpm/action.yml +93 -0
  30. package/.github/dependabot.yml +5 -1
  31. package/.github/workflows/ci.yml +26 -128
  32. package/.github/workflows/pr-classification.yml +5 -41
  33. package/.github/workflows/publish.yml +33 -38
  34. package/.github/workflows/sonar-qube.yml +37 -4
  35. package/AGENTS.md +12 -2
  36. package/CLAUDE.md +15 -16
  37. package/GEMINI.md +14 -2
  38. package/README.md +59 -18
  39. package/SECURITY.md +36 -6
  40. package/cspell/index.yaml +2 -1
  41. package/dist/CLAUDE.md +15 -16
  42. package/dist/config-merge/index.js +15 -3
  43. package/dist/hooks/batch-guard.js +4 -4
  44. package/dist/hooks/{chunk-HJIISEAC.js → chunk-3C4YCCEF.js} +5 -13
  45. package/dist/hooks/{chunk-EJDX2TOB.js → chunk-7ZPFAVR7.js} +7 -88
  46. package/dist/hooks/{chunk-WQ4OSBSS.js → chunk-E54KGFEQ.js} +2 -2
  47. package/dist/hooks/{chunk-GQ7KP45M.js → chunk-IL27YTPH.js} +2 -2
  48. package/dist/hooks/{chunk-DMQN45FN.js → chunk-KHWHKJOM.js} +3 -3
  49. package/dist/hooks/{chunk-5BK3K7V4.js → chunk-M2XDCUKD.js} +997 -478
  50. package/dist/hooks/{chunk-7VPDUBRN.js → chunk-NKOG3XAV.js} +150 -153
  51. package/dist/hooks/{chunk-NJQOBE6L.js → chunk-O4LL4HTI.js} +2 -7
  52. package/dist/hooks/{chunk-NAS4C7GP.js → chunk-OIZUHPJI.js} +2 -2
  53. package/dist/hooks/{chunk-RLDX5SOC.js → chunk-UD24EAIL.js} +2084 -1412
  54. package/dist/hooks/codex-hook-adapter.js +10 -11
  55. package/dist/hooks/duplicate-read-guard.js +5 -5
  56. package/dist/hooks/format-edited.js +2 -2
  57. package/dist/hooks/inputs.json +279 -0
  58. package/dist/hooks/investigation-guard.js +5 -5
  59. package/dist/hooks/pretool-guard.js +9 -9
  60. package/dist/hooks/session-lang.js +0 -1
  61. package/dist/hooks/stop-guard.js +178 -324
  62. package/dist/josh.js +162 -119
  63. package/dist/managed-marker/index.js +2 -1
  64. package/dist/version/index.js +34 -58
  65. package/eslint/rules/promise.js +5 -0
  66. package/package.json +9 -4
  67. package/prompts/collaboration-workflow/issue-citation.md +5 -5
  68. package/prompts/collaboration-workflow/operating-rules.md +4 -4
  69. package/prompts/collaboration-workflow/overview.md +13 -1
  70. package/prompts/collaboration-workflow/report-format.md +1 -1
  71. package/prompts/collaboration-workflow/residency.md +3 -3
  72. package/prompts/collaboration-workflow/rule-delivery.md +1 -1
  73. package/prompts/collaboration-workflow/turn-batching.md +3 -3
  74. package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
  75. package/prompts/collaboration-workflow/wip-cap.md +25 -22
  76. package/prompts/collaboration-workflow.md +5 -8
  77. package/prompts/review-rubric.md +1 -1
  78. package/prompts/review.md +3 -3
  79. package/prompts/sonar-hotspot-handling.md +11 -3
  80. package/prompts/testing-guide.md +3 -3
  81. package/scripts/adopt/adopt-toolkits.ts +0 -2
  82. package/scripts/adopt/adopt.ts +0 -2
  83. package/scripts/agent/agent-argv.ts +0 -2
  84. package/scripts/agent/agent-diagnostics.ts +1 -1
  85. package/scripts/agent/agent-role-profile.ts +0 -7
  86. package/scripts/agent/claude-agent-argv.ts +0 -2
  87. package/scripts/agent/codex-agent-argv.ts +1 -1
  88. package/scripts/agent/codex-hooks.ts +92 -0
  89. package/scripts/agent/interactive-ask.ts +1 -1
  90. package/scripts/auto-ok/auto-ok-cli.ts +6 -16
  91. package/scripts/backlog/backlog-budget.ts +0 -2
  92. package/scripts/backlog/backlog-defect-priority.ts +2 -2
  93. package/scripts/backlog/backlog-drive-cli.ts +10 -8
  94. package/scripts/backlog/backlog-drive-named-offer.ts +16 -3
  95. package/scripts/backlog/backlog-drive-named.ts +2 -1
  96. package/scripts/backlog/backlog-drive.ts +76 -16
  97. package/scripts/backlog/backlog-named.ts +0 -3
  98. package/scripts/backlog/backlog-next.ts +9 -15
  99. package/scripts/backlog/backlog-offer-cli.ts +0 -5
  100. package/scripts/backlog/backlog-plan-cli.ts +1 -7
  101. package/scripts/backlog/backlog-plan.ts +1 -1
  102. package/scripts/backlog/backlog-pool.ts +3 -6
  103. package/scripts/backlog/backlog-rank.ts +2 -2
  104. package/scripts/backlog/backlog-ready.ts +19 -3
  105. package/scripts/backlog/backlog-scope.ts +1 -3
  106. package/scripts/backlog/backlog-stalled-detect.ts +2 -2
  107. package/scripts/backlog/backlog-stalled.ts +0 -1
  108. package/scripts/backlog/backlog-waves.ts +5 -2
  109. package/scripts/behavior/behavior-cli.ts +1 -1
  110. package/scripts/build/build-codex-hooks.ts +26 -0
  111. package/scripts/build/build-hooks.ts +85 -9
  112. package/scripts/build/hook-bundle-stamp.ts +111 -0
  113. package/scripts/cases/cases-cli.ts +1 -1
  114. package/scripts/cases/cases-logic.ts +1 -1
  115. package/scripts/ci/composite-actions.ts +30 -0
  116. package/scripts/ci/pr-classification.ts +3 -3
  117. package/scripts/claude/workflow-destination.ts +10 -1
  118. package/scripts/clone/clone-fingerprint.ts +0 -1
  119. package/scripts/clone/clone-scan-cli.ts +1 -1
  120. package/scripts/clone/clone-scan.ts +1 -1
  121. package/scripts/config-merge/json-format.ts +0 -1
  122. package/scripts/config-merge/patch-yaml-list.ts +1 -1
  123. package/scripts/cost-runtime/codex-usage.ts +2 -9
  124. package/scripts/cost-runtime/cost-attribute.ts +0 -1
  125. package/scripts/cost-runtime/cost-cli.ts +0 -3
  126. package/scripts/cost-runtime/cost-corpus.ts +0 -2
  127. package/scripts/cost-runtime/cost-format.ts +0 -3
  128. package/scripts/cost-runtime/cost-pricing.ts +0 -1
  129. package/scripts/cost-runtime/cost-tokens.ts +0 -1
  130. package/scripts/delegation/delegation-cli.ts +1 -1
  131. package/scripts/delegation/delegation-policy.ts +0 -1
  132. package/scripts/delegation/duplicate-read-guard.ts +0 -8
  133. package/scripts/delegation/fanout-cli.ts +1 -1
  134. package/scripts/delegation/fanout.ts +0 -2
  135. package/scripts/delegation/investigation-reads.ts +1 -164
  136. package/scripts/discovery/repo-map-logic.ts +0 -1
  137. package/scripts/discovery/repo-party-cli.ts +1 -1
  138. package/scripts/doctor/doctor-consumer.ts +4 -6
  139. package/scripts/doctor/doctor-logic.ts +0 -4
  140. package/scripts/doctor/doctor.ts +14 -9
  141. package/scripts/document/document-byte-budget.ts +4 -5
  142. package/scripts/document/document-byte-check.ts +0 -1
  143. package/scripts/document/document-read-cli.ts +0 -2
  144. package/scripts/document/document-section-cli.ts +1 -1
  145. package/scripts/document/document-section.ts +0 -3
  146. package/scripts/document/edit-files-cli.ts +0 -1
  147. package/scripts/document/entry-read-budget.ts +10 -2
  148. package/scripts/document/lane-child-read-set.ts +1 -6
  149. package/scripts/document/read-files-cli.ts +0 -4
  150. package/scripts/document/read-set-cli.ts +0 -2
  151. package/scripts/document/read-set-point-of-use.ts +1 -0
  152. package/scripts/document/read-set-pricing.ts +0 -1
  153. package/scripts/document/read-set-trim.ts +1 -1
  154. package/scripts/epic/epic-add.ts +1 -1
  155. package/scripts/epic/epic-audit-cli.ts +1 -4
  156. package/scripts/epic/epic-audit-orphans.ts +1 -3
  157. package/scripts/epic/epic-audit-rationale.ts +0 -1
  158. package/scripts/epic/epic-audit-report.ts +0 -2
  159. package/scripts/epic/epic-audit.ts +5 -4
  160. package/scripts/epic/epic-bundle-cli.ts +1 -1
  161. package/scripts/epic/epic-bundle-evidence.ts +0 -1
  162. package/scripts/epic/epic-bundle-referenced.ts +1 -5
  163. package/scripts/epic/epic-bundle.ts +0 -4
  164. package/scripts/epic/epic-busy.ts +4 -5
  165. package/scripts/epic/epic-candidate-confirm.ts +0 -5
  166. package/scripts/epic/epic-classify.ts +2 -2
  167. package/scripts/epic/epic-cli-argv.ts +0 -1
  168. package/scripts/epic/epic-close-comment.ts +1 -1
  169. package/scripts/epic/epic-close.ts +5 -2
  170. package/scripts/epic/epic-cross-repo.ts +2 -4
  171. package/scripts/epic/epic-decision.ts +0 -1
  172. package/scripts/epic/epic-fetch.ts +2 -2
  173. package/scripts/epic/epic-index.ts +2 -3
  174. package/scripts/epic/epic-issue.ts +1 -15
  175. package/scripts/epic/epic-lane-offer.ts +9 -8
  176. package/scripts/epic/epic-nested.ts +1 -1
  177. package/scripts/epic/epic-next-read.ts +1 -3
  178. package/scripts/epic/epic-next-views.ts +0 -1
  179. package/scripts/epic/epic-next.ts +1 -10
  180. package/scripts/epic/epic-parse.ts +0 -1
  181. package/scripts/epic/epic-promote.ts +0 -9
  182. package/scripts/epic/epic-rank.ts +2 -2
  183. package/scripts/epic/epic-read.ts +1 -2
  184. package/scripts/epic/epic-reconcile.ts +1 -1
  185. package/scripts/epic/epic-reference.ts +1 -13
  186. package/scripts/epic/epic-relation-recheck.ts +1 -1
  187. package/scripts/epic/epic-relations.ts +1 -1
  188. package/scripts/epic/epic-remove.ts +1 -1
  189. package/scripts/epic/epic-report.ts +0 -1
  190. package/scripts/epic/epic-run.ts +2 -3
  191. package/scripts/epic/epic-shape.ts +1 -1
  192. package/scripts/epic/epic-solo-stale.ts +107 -0
  193. package/scripts/epic/epic-solo.ts +3 -2
  194. package/scripts/epic/epic-triage.ts +1 -1
  195. package/scripts/epic/epic-validate.ts +1 -1
  196. package/scripts/epic/epic.ts +1 -1
  197. package/scripts/exports/unused-members-cli.ts +53 -0
  198. package/scripts/{git → followup}/followup-issue-number.ts +1 -6
  199. package/scripts/{git → followup}/git-followup-cleanup.ts +2 -1
  200. package/scripts/{git → followup}/git-followup-finish.ts +1 -3
  201. package/scripts/{git → followup}/git-followup-flush.ts +2 -2
  202. package/scripts/{git → followup}/git-followup-issue-close.ts +2 -2
  203. package/scripts/{git → followup}/git-followup-label.ts +4 -4
  204. package/scripts/followup/git-followup-merged.ts +112 -0
  205. package/scripts/{git → followup}/git-followup-pending.ts +1 -1
  206. package/scripts/{git → followup}/git-followup-workflow.ts +19 -11
  207. package/scripts/{git → followup}/git-pr-followup-wrapup.ts +9 -3
  208. package/scripts/{git → followup}/git-pr-followup.ts +53 -16
  209. package/scripts/gate/core-budget.ts +3 -9
  210. package/scripts/gate/gate-plan.ts +7 -4
  211. package/scripts/gate/gate-report.ts +0 -6
  212. package/scripts/gate/gate-tree.ts +1 -1
  213. package/scripts/gate/pre-commit-type-check.ts +0 -6
  214. package/scripts/gate/project-checks.ts +7 -8
  215. package/scripts/gate/scoped-green.ts +0 -1
  216. package/scripts/gate/type-check-step.ts +1 -1
  217. package/scripts/gate/verification-gate.ts +0 -2
  218. package/scripts/gh/fix-gh-packages.ts +15 -12
  219. package/scripts/gh/gh-spawn.ts +2 -2
  220. package/scripts/{git → gh}/git-ai-review-scan.ts +1 -5
  221. package/scripts/{git → gh}/git-gh-check.ts +2 -1
  222. package/scripts/{git → gh}/git-gh-exec.ts +1 -1
  223. package/scripts/{git → gh}/git-gh-failure.ts +1 -1
  224. package/scripts/{git → gh}/git-gh-helpers.ts +0 -1
  225. package/scripts/{git → gh}/git-gh-issue-list.ts +2 -0
  226. package/scripts/{git → gh}/git-gh-issue-read.ts +1 -1
  227. package/scripts/{git → gh}/git-gh-issue-rest.ts +6 -3
  228. package/scripts/{git → gh}/git-gh-pr-read.ts +24 -0
  229. package/scripts/{git → gh}/git-gh-pr-rest.ts +5 -2
  230. package/scripts/{git → gh}/git-gh-pr-review.ts +2 -2
  231. package/scripts/{git → gh}/git-gh-pr-rollup.ts +1 -3
  232. package/scripts/{git → gh}/git-gh-pr.ts +3 -1
  233. package/scripts/{git → gh}/git-pr-ai-review.ts +2 -5
  234. package/scripts/{git → gh}/git-pr-checks-eval.ts +0 -10
  235. package/scripts/{git → gh}/git-pr-checks-parse.ts +4 -20
  236. package/scripts/{git → gh}/git-pr-checks.ts +2 -1
  237. package/scripts/{git → gh}/git-pr-coderabbit.ts +2 -5
  238. package/scripts/{git → gh}/git-pr-confirmation.ts +1 -3
  239. package/scripts/{git → gh}/git-pr-managed-config.ts +2 -3
  240. package/scripts/{git → gh}/git-pr.ts +3 -3
  241. package/scripts/git/changed-file-scope.ts +0 -1
  242. package/scripts/git/git-branch.ts +3 -6
  243. package/scripts/git/git-commit.ts +1 -1
  244. package/scripts/git/git-common-directory.ts +80 -24
  245. package/scripts/git/git-error.ts +66 -9
  246. package/scripts/git/git-issue.ts +1 -1
  247. package/scripts/git/git-preflight.ts +2 -2
  248. package/scripts/git/git-prompt.ts +6 -31
  249. package/scripts/git/git-push.ts +1 -1
  250. package/scripts/git/git-staging.ts +1 -0
  251. package/scripts/git/git-status.ts +1 -1
  252. package/scripts/git/git-workflow.ts +1 -1
  253. package/scripts/git/gone-branch.ts +1 -0
  254. package/scripts/git/listing-cutoff.ts +1 -1
  255. package/scripts/git/main-merge.ts +1 -1
  256. package/scripts/git/main-sync.ts +19 -1
  257. package/scripts/git/parse-json-array.ts +0 -3
  258. package/scripts/git/repository-lock.ts +16 -16
  259. package/scripts/git/{git-stash.ts → stash/git-stash.ts} +1 -1
  260. package/scripts/git/{stash-pop-args.ts → stash/stash-pop-args.ts} +1 -1
  261. package/scripts/git/{stash-pop-cli.ts → stash/stash-pop-cli.ts} +0 -1
  262. package/scripts/git/{stash-sweep-lock.ts → stash/stash-sweep-lock.ts} +3 -3
  263. package/scripts/hooks/codex-hook-adapter.ts +0 -1
  264. package/scripts/hooks/edited-cspell.ts +1 -1
  265. package/scripts/hooks/format-edited-file.ts +2 -0
  266. package/scripts/hooks/pre-push-unit.ts +0 -4
  267. package/scripts/hooks/pretool-guard.ts +22 -4
  268. package/scripts/hooks/reserved-run.ts +1 -1
  269. package/scripts/hooks/step-zero-notice.ts +76 -0
  270. package/scripts/hooks/stop-guard.ts +47 -21
  271. package/scripts/init/claude-plugin-config.ts +4 -5
  272. package/scripts/init/hook-command-rewrite.ts +16 -8
  273. package/scripts/init/hook-launch.ts +41 -15
  274. package/scripts/init/init-basic.ts +2 -5
  275. package/scripts/init/init-logic.ts +7 -0
  276. package/scripts/init/init.ts +0 -3
  277. package/scripts/init/project-profile.ts +6 -11
  278. package/scripts/init/start-exec.ts +1 -1
  279. package/scripts/init/start-setup-pr.ts +6 -6
  280. package/scripts/init/start-steps.ts +1 -0
  281. package/scripts/issue/behavior-change-lint.ts +0 -1
  282. package/scripts/issue/defect-rate-cli.ts +3 -3
  283. package/scripts/issue/defect-rate.ts +1 -2
  284. package/scripts/{git → issue}/git-next-issues.ts +3 -3
  285. package/scripts/issue/issue-backlinks-cli.ts +1 -5
  286. package/scripts/issue/issue-cite-cli.ts +2 -6
  287. package/scripts/issue/issue-cite.ts +0 -2
  288. package/scripts/issue/issue-classification.ts +1 -9
  289. package/scripts/issue/issue-closing-pr.ts +4 -4
  290. package/scripts/issue/issue-comment-cli.ts +2 -2
  291. package/scripts/issue/issue-file-cli.ts +5 -5
  292. package/scripts/issue/issue-file.ts +2 -2
  293. package/scripts/issue/issue-fold-cli.ts +1 -1
  294. package/scripts/issue/issue-fold-existing-cli.ts +1 -1
  295. package/scripts/{git → issue}/issue-labels.ts +8 -0
  296. package/scripts/issue/issue-lint-cli.ts +1 -1
  297. package/scripts/issue/issue-merged.ts +2 -2
  298. package/scripts/{git → issue}/issue-rank.ts +1 -1
  299. package/scripts/issue/issue-read-cli.ts +8 -47
  300. package/scripts/issue/issue-read.ts +0 -2
  301. package/scripts/issue/issue-report-failures.ts +80 -0
  302. package/scripts/issue/issue-scout-cli.ts +1 -7
  303. package/scripts/issue/issue-scout-closed.ts +2 -2
  304. package/scripts/issue/issue-scout.ts +0 -2
  305. package/scripts/issue/issue-state-cli.ts +5 -46
  306. package/scripts/issue/issue-state.ts +1 -5
  307. package/scripts/issue/markdown-section.ts +1 -1
  308. package/scripts/issue/measure-rerun-cli.ts +1 -1
  309. package/scripts/issue/reproduction-measure.ts +1 -1
  310. package/scripts/josh/cli-body.ts +1 -1
  311. package/scripts/josh/file-map-stamp.ts +0 -3
  312. package/scripts/josh/josh-command-map.ts +2 -0
  313. package/scripts/josh/josh-commands-ai.ts +9 -102
  314. package/scripts/josh/josh-commands-backlog.ts +5 -1
  315. package/scripts/josh/josh-commands-development.ts +8 -1
  316. package/scripts/josh/josh-commands-issue.ts +2 -2
  317. package/scripts/josh/josh-commands-maintenance.ts +7 -0
  318. package/scripts/josh/josh-commands-project.ts +6 -0
  319. package/scripts/josh/josh-commands-run.ts +114 -0
  320. package/scripts/josh/josh-commands-versioning.ts +8 -0
  321. package/scripts/josh/josh-commands-workflow.ts +2 -2
  322. package/scripts/josh/path-decision.ts +0 -3
  323. package/scripts/josh/process-owner.ts +16 -0
  324. package/scripts/josh/session-language-cli.ts +0 -1
  325. package/scripts/lane/lane-await.ts +3 -6
  326. package/scripts/lane/lane-capacity.ts +6 -3
  327. package/scripts/lane/lane-child-invocation.ts +20 -7
  328. package/scripts/lane/lane-cli.ts +1 -4
  329. package/scripts/lane/lane-close.ts +1 -3
  330. package/scripts/lane/lane-dispatch.ts +3 -4
  331. package/scripts/lane/lane-environment.ts +0 -9
  332. package/scripts/lane/lane-handoff.ts +38 -0
  333. package/scripts/lane/lane-launch-cli.ts +21 -11
  334. package/scripts/lane/lane-open.ts +0 -3
  335. package/scripts/lane/lane-output.ts +0 -1
  336. package/scripts/lane/lane-registry.ts +9 -0
  337. package/scripts/lane/openai-lane-ship.ts +2 -0
  338. package/scripts/lane/openai-lane-supervisor-decision.ts +2 -1
  339. package/scripts/lane/openai-lane-supervisor.ts +6 -4
  340. package/scripts/lane/openai-review-broker.ts +3 -0
  341. package/scripts/lib/bounded-pool.ts +1 -0
  342. package/scripts/lib/json-value.ts +5 -4
  343. package/scripts/lib/poll.ts +3 -1
  344. package/scripts/lib/timed-fetch.ts +15 -0
  345. package/scripts/lib/timeouts.ts +13 -0
  346. package/scripts/{yaml → lib}/yaml-document.ts +3 -1
  347. package/scripts/{bytes → lines}/bytes-command.ts +0 -2
  348. package/scripts/lines/lines-command.ts +0 -1
  349. package/scripts/lint/lint-related-scope.ts +0 -1
  350. package/scripts/lint/lint-related.ts +1 -1
  351. package/scripts/{git → notify}/telegram-notify.ts +2 -2
  352. package/scripts/{git → notify}/telegram-test.ts +4 -4
  353. package/scripts/observations/observation-ledger-home.ts +0 -1
  354. package/scripts/observations/observation-ledger-line.ts +0 -1
  355. package/scripts/observations/observation-ledger-migrate.ts +1 -1
  356. package/scripts/observations/observations-flush-landing.ts +3 -3
  357. package/scripts/observations/observations-flush.ts +2 -2
  358. package/scripts/overrides/lockfile-overrides.ts +1 -1
  359. package/scripts/overrides/overrides-logic.ts +1 -1
  360. package/scripts/package/package-scout-cli.ts +2 -7
  361. package/scripts/package/package-scout.ts +0 -2
  362. package/scripts/propagate/propagate-git-failure.ts +0 -1
  363. package/scripts/propagate/propagate-git.ts +0 -2
  364. package/scripts/propagate/propagate-publish.ts +2 -3
  365. package/scripts/propagate/propagate-run.ts +0 -2
  366. package/scripts/propagate/propagate-steps.ts +3 -5
  367. package/scripts/propagate/propagate-targets.ts +0 -4
  368. package/scripts/propagate/propagate.ts +0 -4
  369. package/scripts/refactor/import-graph.ts +0 -1
  370. package/scripts/refactor/refactor-lint.ts +0 -2
  371. package/scripts/refactor/refactor-scan.ts +0 -1
  372. package/scripts/refactor/refactor-targets.ts +0 -1
  373. package/scripts/registry-migration/migrate-logic.ts +0 -2
  374. package/scripts/registry-migration/migrate.ts +19 -9
  375. package/scripts/release/github-release-cli.ts +8 -6
  376. package/scripts/release/github-release-environment.ts +46 -0
  377. package/scripts/release/github-release.ts +151 -94
  378. package/scripts/release/release-history.ts +0 -1
  379. package/scripts/release/release-plan.ts +0 -1
  380. package/scripts/release/release-publish.ts +2 -3
  381. package/scripts/release/release-scope-cli.ts +1 -2
  382. package/scripts/release/release-tag.ts +2 -4
  383. package/scripts/repo/auto-merge-setting-logic.ts +1 -4
  384. package/scripts/repo/repo-setting.ts +1 -1
  385. package/scripts/repo/repository-labels.ts +3 -3
  386. package/scripts/repo/required-checks-logic.ts +206 -0
  387. package/scripts/repo/required-checks-report.ts +71 -0
  388. package/scripts/repo/ruleset-check-cli.ts +53 -0
  389. package/scripts/repo/ruleset-check.ts +147 -0
  390. package/scripts/report/report-lint-cli.ts +0 -4
  391. package/scripts/review/disposition-cli.ts +1 -1
  392. package/scripts/review/live-evidence.ts +1 -1
  393. package/scripts/review/review-attest-cli.ts +0 -6
  394. package/scripts/review/review-attest.ts +4 -16
  395. package/scripts/review/review-brief-cli.ts +23 -6
  396. package/scripts/review/review-brief.ts +21 -8
  397. package/scripts/review/review-diff-parts.ts +89 -0
  398. package/scripts/review/review-diff-write.ts +97 -0
  399. package/scripts/review/review-finding-ledger.ts +0 -1
  400. package/scripts/review/review-record-cli.ts +1 -1
  401. package/scripts/review/review-record.ts +0 -1
  402. package/scripts/review/review-round2-cli.ts +1 -1
  403. package/scripts/review/review-stamps.ts +0 -3
  404. package/scripts/review/review-tree.ts +14 -2
  405. package/scripts/rules/decision-oracle-stage.ts +18 -0
  406. package/scripts/rules/decision-oracle.ts +10 -7
  407. package/scripts/rules/delivered-rules.ts +9 -1
  408. package/scripts/rules/destructive-command.ts +119 -0
  409. package/scripts/rules/direct-filing.ts +1 -1
  410. package/scripts/rules/file-body.ts +0 -3
  411. package/scripts/rules/filing-cap.ts +0 -2
  412. package/scripts/rules/gh-api.ts +7 -2
  413. package/scripts/rules/git-argv.ts +18 -7
  414. package/scripts/rules/git-force.ts +0 -2
  415. package/scripts/rules/implementation-cut.ts +0 -1
  416. package/scripts/rules/index-guard.ts +71 -0
  417. package/scripts/rules/issue-citation.ts +50 -25
  418. package/scripts/rules/lane-background.ts +15 -7
  419. package/scripts/rules/lane-park.ts +13 -6
  420. package/scripts/rules/last-prompt.ts +1 -0
  421. package/scripts/rules/oracle-consulted.ts +1 -1
  422. package/scripts/rules/oracle-firing.ts +1 -0
  423. package/scripts/rules/oracle-list-cli.ts +0 -3
  424. package/scripts/rules/permission-guards.ts +14 -0
  425. package/scripts/rules/protected-files.ts +74 -0
  426. package/scripts/rules/reply-language.ts +1 -1
  427. package/scripts/rules/rule-body-guard.ts +0 -3
  428. package/scripts/rules/rule-value-cli.ts +0 -1
  429. package/scripts/rules/shell-body-trigger.ts +0 -1
  430. package/scripts/rules/shell-segments.ts +0 -1
  431. package/scripts/rules/stop-rules.ts +13 -5
  432. package/scripts/rules/tail-commands.ts +1 -1
  433. package/scripts/rules/test-declared-commit.ts +1 -1
  434. package/scripts/rules/third-party-write.ts +0 -1
  435. package/scripts/rules/worktree-guard.ts +26 -9
  436. package/scripts/run/run-carry-cli.ts +0 -2
  437. package/scripts/run/run-carry-stash.ts +2 -2
  438. package/scripts/run/run-carry-streak.ts +1 -1
  439. package/scripts/run/run-cut-cli.ts +0 -7
  440. package/scripts/run/run-cut.ts +8 -54
  441. package/scripts/run/run-ending-cli.ts +1 -1
  442. package/scripts/run/run-ending.ts +1 -4
  443. package/scripts/run/run-entry-cli.ts +101 -24
  444. package/scripts/run/run-entry.ts +0 -1
  445. package/scripts/run/run-event-cli.ts +0 -2
  446. package/scripts/run/run-event-follow.ts +1 -0
  447. package/scripts/run/run-event-render.ts +1 -1
  448. package/scripts/run/run-event-scope.ts +53 -4
  449. package/scripts/run/run-event-stream.ts +0 -3
  450. package/scripts/run/run-event-watch.ts +1 -0
  451. package/scripts/run/run-halfrun-resume.ts +20 -7
  452. package/scripts/run/run-headless.ts +2 -2
  453. package/scripts/run/run-hold-cli.ts +33 -10
  454. package/scripts/run/run-hold.ts +25 -5
  455. package/scripts/run/run-issue-number.ts +1 -1
  456. package/scripts/run/run-liveness-cli.ts +1 -1
  457. package/scripts/run/run-liveness.ts +2 -3
  458. package/scripts/run/run-merge-cli.ts +5 -13
  459. package/scripts/run/run-merge-steps.ts +5 -5
  460. package/scripts/run/run-merge.ts +1 -1
  461. package/scripts/run/run-next-cli.ts +1 -1
  462. package/scripts/run/run-parent-cut-hook.ts +0 -1
  463. package/scripts/run/run-preflight.ts +2 -9
  464. package/scripts/run/run-prep-cli.ts +2 -2
  465. package/scripts/run/run-prep-locate.ts +1 -1
  466. package/scripts/run/run-progress-cli.ts +4 -7
  467. package/scripts/run/run-progress-clock.ts +6 -34
  468. package/scripts/run/run-progress-config.ts +0 -4
  469. package/scripts/run/run-progress-read.ts +1 -2
  470. package/scripts/run/run-progress.ts +1 -2
  471. package/scripts/run/run-prrun-resume.ts +117 -0
  472. package/scripts/run/run-report-cli.ts +1 -2
  473. package/scripts/run/run-report.ts +0 -1
  474. package/scripts/run/run-retrospective.ts +1 -1
  475. package/scripts/run/run-review-cli.ts +0 -3
  476. package/scripts/run/run-review-steps.ts +2 -0
  477. package/scripts/run/run-review.ts +0 -2
  478. package/scripts/run/run-ship-cli.ts +21 -3
  479. package/scripts/run/run-ship-detach.ts +1 -0
  480. package/scripts/run/run-ship-next.ts +106 -0
  481. package/scripts/run/run-ship-preflight.ts +1 -1
  482. package/scripts/run/run-ship-return.ts +8 -3
  483. package/scripts/run/run-ship-review-steps.ts +18 -4
  484. package/scripts/run/run-ship-review.ts +11 -0
  485. package/scripts/run/run-ship-scoped.ts +1 -0
  486. package/scripts/run/run-ship-steps.ts +1 -1
  487. package/scripts/run/run-ship.ts +0 -1
  488. package/scripts/run/run-stage-read.ts +62 -0
  489. package/scripts/run/run-stage.ts +160 -0
  490. package/scripts/run/run-status-cli.ts +1 -1
  491. package/scripts/run/run-step-cli.ts +21 -14
  492. package/scripts/run/run-step.ts +1 -1
  493. package/scripts/run/run-stop-notify.ts +1 -3
  494. package/scripts/run/run-stranded-cli.ts +0 -4
  495. package/scripts/run/run-stranded-detect.ts +2 -2
  496. package/scripts/run/run-tail-cli.ts +17 -11
  497. package/scripts/run/run-tail.ts +2 -0
  498. package/scripts/run/run-tidy-lanes.ts +2 -1
  499. package/scripts/run/run-tidy-stashes.ts +12 -12
  500. package/scripts/run/run-wake-cli.ts +2 -3
  501. package/scripts/run/run-wake-loop.ts +2 -2
  502. package/scripts/run/run-wake.ts +2 -4
  503. package/scripts/run/run-watcher-guard-cli.ts +0 -4
  504. package/scripts/run/run-watcher-guard.ts +9 -7
  505. package/scripts/run/run-watcher-hook.ts +1 -1
  506. package/scripts/safe-chain/ci-installer-pin.ts +11 -5
  507. package/scripts/safe-chain/project-config.ts +1 -1
  508. package/scripts/security/security-audit-provision-logic.ts +0 -1
  509. package/scripts/security/security-audit-provision.ts +3 -2
  510. package/scripts/security/security-audit.ts +0 -1
  511. package/scripts/security/security-updates-logic.ts +0 -1
  512. package/scripts/sonar/sonar-hotspots-cli.ts +10 -52
  513. package/scripts/sonar/sonar-hotspots.ts +0 -1
  514. package/scripts/sonar/sonar-new-code-cli.ts +150 -0
  515. package/scripts/sonar/sonar-new-code.ts +79 -0
  516. package/scripts/sonar/sonar-project.ts +97 -0
  517. package/scripts/split/split-assess-cli.ts +1 -1
  518. package/scripts/split/split-assess.ts +2 -5
  519. package/scripts/sync/managed-config-scope-cli.ts +1 -1
  520. package/scripts/sync/skill-migration.ts +0 -1
  521. package/scripts/sync/sync-hook-safety.ts +2 -3
  522. package/scripts/sync/sync.ts +1 -8
  523. package/scripts/sync/template-source-logic.ts +0 -1
  524. package/scripts/sync/workflow-pin-logic.ts +16 -28
  525. package/scripts/test/test-declared-logic.ts +0 -1
  526. package/scripts/test/test-declared.ts +0 -2
  527. package/scripts/test/test-red-commit.ts +2 -2
  528. package/scripts/test/test-red.ts +14 -7
  529. package/scripts/test/test-type-logic.ts +1 -1
  530. package/scripts/test/unit-worker-share.ts +7 -16
  531. package/scripts/time-runtime/time-batch-guard.ts +1 -2
  532. package/scripts/time-runtime/time-bundle-call.ts +0 -1
  533. package/scripts/time-runtime/time-bundles.ts +0 -4
  534. package/scripts/time-runtime/time-density-hook.ts +0 -2
  535. package/scripts/time-runtime/time-followup-stage.ts +1 -1
  536. package/scripts/time-runtime/time-format.ts +0 -73
  537. package/scripts/time-runtime/time-round-trips.ts +0 -4
  538. package/scripts/time-runtime/time-single-check.ts +1 -1
  539. package/scripts/time-runtime/time-spans.ts +1 -1
  540. package/scripts/time-runtime/time-transcript-line.ts +1 -2
  541. package/scripts/ui/ui-routes-cli.ts +0 -5
  542. package/scripts/ui/ui-routes.ts +0 -5
  543. package/scripts/version/effective-upstream.ts +2 -2
  544. package/scripts/version/latest-corepack.ts +7 -9
  545. package/scripts/version/latest-scope-cli.ts +0 -2
  546. package/scripts/version/latest-update.ts +0 -2
  547. package/scripts/version/npm-registry.ts +2 -2
  548. package/scripts/version/publishable-range-check.ts +1 -1
  549. package/scripts/version/release-hold.ts +0 -4
  550. package/scripts/version/running-binary.ts +2 -2
  551. package/scripts/version/version-check-logic.ts +0 -2
  552. package/scripts/version/version-remote.ts +3 -3
  553. package/scripts/version/version-targets.ts +4 -4
  554. package/templates/sonar-project.properties +28 -1
  555. package/templates/workflows/dependabot-auto-merge.yml +5 -3
  556. package/templates/workflows/github-release.yml +81 -0
  557. package/prompts/collaboration-workflow/cross-repo-epic.md +0 -5
  558. package/prompts/collaboration-workflow/epic-audit.md +0 -5
  559. package/prompts/collaboration-workflow/epic-bundle.md +0 -5
  560. package/scripts/init/plugin-install-hint.ts +0 -47
  561. package/scripts/version/parse-json.ts +0 -13
  562. /package/scripts/{git → followup}/git-followup-stages.ts +0 -0
  563. /package/scripts/{git → gh}/git-gh-api-path.ts +0 -0
  564. /package/scripts/{git → gh}/git-gh-command.ts +0 -0
  565. /package/scripts/{git → gh}/git-gh-issue-write.ts +0 -0
  566. /package/scripts/{git → gh}/git-gh-issue.ts +0 -0
  567. /package/scripts/{git → gh}/git-gh-pr-auto-merge.ts +0 -0
  568. /package/scripts/{git → gh}/git-gh-pr-snapshot.ts +0 -0
  569. /package/scripts/{git → gh}/git-gh-reachability.ts +0 -0
  570. /package/scripts/{git → gh}/git-gh-repo.ts +0 -0
  571. /package/scripts/{git → gh}/git-gh-rest-state.ts +0 -0
  572. /package/scripts/{git → gh}/git-pr-checks-watch.ts +0 -0
  573. /package/scripts/{git → gh}/git-pr-error.ts +0 -0
  574. /package/scripts/{git → gh}/git-pr-messages.ts +0 -0
  575. /package/scripts/{git → gh}/github-issue-url.ts +0 -0
  576. /package/scripts/git/{stash-orphans.ts → stash/stash-orphans.ts} +0 -0
  577. /package/scripts/{git → issue}/issue-reference.ts +0 -0
  578. /package/scripts/{git → lib}/animation-helpers.ts +0 -0
  579. /package/scripts/{git → lib}/git-animation.ts +0 -0
  580. /package/scripts/{git → notify}/git-notify.ts +0 -0
  581. /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"]]
@@ -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",
@@ -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"]],
@@ -1452,6 +1493,7 @@ var ALIASES = {
1452
1493
  f: "format",
1453
1494
  sd: "cspell:dot",
1454
1495
  bh: "behavior",
1496
+ eu: "exports:unused",
1455
1497
  t: "test",
1456
1498
  tu: "test:unit",
1457
1499
  tr: "test:related",
@@ -1474,6 +1516,7 @@ var ALIASES = {
1474
1516
  v: "version",
1475
1517
  r: "ranges",
1476
1518
  dr: "doctor",
1519
+ rc: "ruleset:check",
1477
1520
  pg: "propagate",
1478
1521
  ad: "adopt",
1479
1522
  ov: "overrides",
@@ -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