@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
@@ -168,7 +168,11 @@ var BACKLOG_COMMANDS = {
168
168
  script: "scripts/backlog/backlog-plan-cli.ts",
169
169
  description: "Print the whole backlog as a plan: ready now, waiting on what, waiting on a person, out of scope",
170
170
  category: "AI tools",
171
- reference: ["[issue...] [--only]", "automation", ["network"]]
171
+ reference: [
172
+ "[issue...] [--only] [--waves] [--exclude <n>[,<n>...]]",
173
+ "automation",
174
+ ["network"]
175
+ ]
172
176
  },
173
177
  "backlog:stalled": {
174
178
  script: "scripts/backlog/backlog-stalled-cli.ts",
@@ -259,7 +263,7 @@ var ISSUE_COMMANDS = {
259
263
  script: "scripts/issue/issue-scout-cli.ts",
260
264
  description: "Before filing: say whether an issue like this exists and which epic it belongs to",
261
265
  category: "AI tools",
262
- reference: ["<title> [--body <summary>]", "automation", ["network"]]
266
+ reference: ["<title> [--body <summary> | --body-file <path>]", "automation", ["network"]]
263
267
  },
264
268
  "defect:rate": {
265
269
  script: "scripts/issue/defect-rate-cli.ts",
@@ -277,7 +281,7 @@ var ISSUE_COMMANDS = {
277
281
  script: "scripts/issue/issue-fold-existing-cli.ts",
278
282
  description: "Assess whether a complete draft can join an unstarted issue",
279
283
  category: "AI tools",
280
- reference: ["<assessment.json>", "automation", ["none"]]
284
+ reference: ["<assessment.json> [--json]", "automation", ["none"]]
281
285
  },
282
286
  "issue:cite": {
283
287
  script: "scripts/issue/issue-cite-cli.ts",
@@ -365,6 +369,107 @@ var LANE_COMMANDS = {
365
369
  }
366
370
  };
367
371
 
372
+ // scripts/josh/josh-commands-run.ts
373
+ var RUN_HOLD_SCRIPT = "scripts/run/run-hold-cli.ts";
374
+ var RUN_COMMANDS = {
375
+ "run:hold": {
376
+ script: RUN_HOLD_SCRIPT,
377
+ description: "Claim this working tree for a run, or say which run already holds it",
378
+ category: "AI tools",
379
+ reference: ["[<issue> [--fullrun | --halfrun-stop | --prrun-stop]]", "automation", ["files"]]
380
+ },
381
+ "run:release": {
382
+ script: RUN_HOLD_SCRIPT,
383
+ description: "Release this working tree's run record",
384
+ category: "AI tools",
385
+ reference: ["[issue|--force]", "automation", ["files"]],
386
+ default_script_arguments: ["--release"]
387
+ },
388
+ "run:tidy": {
389
+ script: "scripts/run/run-tidy-cli.ts",
390
+ description: "Close merged lanes and drop stashes whose issues are all merged",
391
+ category: "AI tools",
392
+ reference: ["", "automation", ["git", "network", "files"]]
393
+ },
394
+ "run:carry": {
395
+ script: "scripts/run/run-carry-cli.ts",
396
+ description: "Carry one invocation\u2019s budget across its own session cuts",
397
+ category: "AI tools",
398
+ reference: ["<operation> [arguments...]", "automation", ["files"]]
399
+ },
400
+ "run:wake": {
401
+ script: "scripts/run/run-wake-cli.ts",
402
+ // `.env` rather than the ambient environment:
403
+ // the failure warning needs the Telegram credentials, the same
404
+ // reasons `notify` and `followup` carry these flags.
405
+ tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
406
+ description: "Wake the next session of a cut backlogrun from outside the conversation",
407
+ category: "AI tools",
408
+ reference: ["[options]", "automation", ["processes", "notifications"]]
409
+ },
410
+ "run:cut": {
411
+ script: "scripts/run/run-cut-cli.ts",
412
+ description: "Cut a lane child before the gate and resume a fresh process",
413
+ category: "AI tools",
414
+ reference: ["[--resume] <issue> [--impl] [--handoff <path>]", "automation", ["files"]]
415
+ },
416
+ "run:liveness": {
417
+ script: "scripts/run/run-liveness-cli.ts",
418
+ description: "Say whether a delegated unit is still working, or stopped without reporting",
419
+ category: "AI tools",
420
+ reference: ["<issue> --output <path> [options]", "automation", ["processes"]]
421
+ },
422
+ "run:ending": {
423
+ script: "scripts/run/run-ending-cli.ts",
424
+ description: "Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)",
425
+ category: "AI tools",
426
+ reference: ["<issue> --output <path> [--repo <owner/repo>]", "automation", ["network"]]
427
+ },
428
+ "run:progress": {
429
+ script: "scripts/run/run-progress-cli.ts",
430
+ description: "Report an unattended run\u2019s progress once it has gone quiet for an interval",
431
+ category: "AI tools",
432
+ reference: [
433
+ "[--once | --wait] [--interval <minutes>] [--hours <hours>] [--repo <owner/repo>] [--output <path>] | --mark | --path",
434
+ "automation",
435
+ ["files"]
436
+ ]
437
+ },
438
+ "run:prep": {
439
+ script: "scripts/run/run-prep-cli.ts",
440
+ description: "Bundle a run\u2019s pre-edit reads: body, comments, state, dependency scope",
441
+ category: "AI tools",
442
+ reference: ["<issue>", "automation", ["network"]]
443
+ },
444
+ // The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
445
+ // read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
446
+ // `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
447
+ "run:entry": {
448
+ script: "scripts/run/run-entry-cli.ts",
449
+ description: "Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step",
450
+ category: "AI tools",
451
+ reference: ["<issue> [--to <command>]", "automation", ["git", "network", "files"]]
452
+ },
453
+ "run:status": {
454
+ script: "scripts/run/run-status-cli.ts",
455
+ description: "Bundle a run\u2019s read-only status: issue state, cost verdict, carry counters",
456
+ category: "AI tools",
457
+ reference: ["<issue> [--repo <owner/repo>]", "automation", ["network"]]
458
+ },
459
+ "run:next": {
460
+ script: "scripts/run/run-next-cli.ts",
461
+ description: "Print the next step a fullrun takes, computed from the run\u2019s state",
462
+ category: "AI tools",
463
+ reference: ["<issue>", "automation", ["network"]]
464
+ },
465
+ "run:step": {
466
+ script: "scripts/run/run-step-cli.ts",
467
+ description: "Print the run\u2019s next single action, computed from the event stream, carry record and issue state",
468
+ category: "AI tools",
469
+ reference: ["<issue>", "automation", ["network", "files"]]
470
+ }
471
+ };
472
+
368
473
  // scripts/josh/josh-commands-split.ts
369
474
  var SPLIT_COMMANDS = {
370
475
  "split:assess": {
@@ -376,7 +481,6 @@ var SPLIT_COMMANDS = {
376
481
  };
377
482
 
378
483
  // scripts/josh/josh-commands-ai.ts
379
- var RUN_HOLD_SCRIPT = "scripts/run/run-hold-cli.ts";
380
484
  var ISSUE_WITH_OPTIONS2 = "<issue> [options]";
381
485
  var AI_COMMANDS = {
382
486
  ...ISSUE_COMMANDS,
@@ -387,7 +491,7 @@ var AI_COMMANDS = {
387
491
  reference: ["<keywords> [--size <n>]", "automation", ["network"]]
388
492
  },
389
493
  "stash:pop": {
390
- script: "scripts/git/stash-pop-cli.ts",
494
+ script: "scripts/git/stash/stash-pop-cli.ts",
391
495
  description: "Pop the stash matching this message, not whichever a shared stack has on top",
392
496
  category: "AI tools",
393
497
  reference: ["<message>", "automation", ["git"]]
@@ -402,7 +506,7 @@ var AI_COMMANDS = {
402
506
  script: "scripts/epic/epic-next.ts",
403
507
  description: "List an epic's runnable children, bundled per repository",
404
508
  category: "AI tools",
405
- reference: ["<epic>", "automation", ["network"]]
509
+ reference: ["<epic>... [--repo <owner/repo>] [--lanes]", "automation", ["network"]]
406
510
  },
407
511
  "epic:bundle": {
408
512
  script: "scripts/epic/epic-bundle-cli.ts",
@@ -431,9 +535,9 @@ var AI_COMMANDS = {
431
535
  ...BACKLOG_COMMANDS,
432
536
  cost: {
433
537
  script: "scripts/cost-runtime/cost-cli.ts",
434
- description: "Report a run's token and credit cost from Claude Code's session transcripts",
538
+ description: "Say whether the next turn of a run crosses the context-cut threshold (--cut) or a given tokens-per-request figure (--over)",
435
539
  category: "AI tools",
436
- reference: ["[--cut|--over]", "automation", ["none"]]
540
+ reference: ["(--cut | --over <tokens-per-request>) [--path <dir>]", "automation", ["none"]]
437
541
  },
438
542
  ...DOCUMENT_COMMANDS,
439
543
  time: {
@@ -497,98 +601,7 @@ var AI_COMMANDS = {
497
601
  category: "AI tools",
498
602
  reference: ["<unit-files> <unit-files> [<unit-files> \u2026]", "automation", ["none"]]
499
603
  },
500
- "run:hold": {
501
- script: RUN_HOLD_SCRIPT,
502
- description: "Claim this working tree for a run, or say which run already holds it",
503
- category: "AI tools",
504
- reference: ["[issue]", "automation", ["files"]]
505
- },
506
- "run:release": {
507
- script: RUN_HOLD_SCRIPT,
508
- description: "Release this working tree's run record",
509
- category: "AI tools",
510
- reference: ["[issue|--force]", "automation", ["files"]],
511
- default_script_arguments: ["--release"]
512
- },
513
- "run:tidy": {
514
- script: "scripts/run/run-tidy-cli.ts",
515
- description: "Close merged lanes and drop stashes whose issues are all merged",
516
- category: "AI tools",
517
- reference: ["", "automation", ["git", "network", "files"]]
518
- },
519
- "run:carry": {
520
- script: "scripts/run/run-carry-cli.ts",
521
- description: "Carry one invocation\u2019s budget across its own session cuts",
522
- category: "AI tools",
523
- reference: ["<operation> [arguments...]", "automation", ["files"]]
524
- },
525
- "run:wake": {
526
- script: "scripts/run/run-wake-cli.ts",
527
- // `.env` rather than the ambient environment:
528
- // the failure warning needs the Telegram credentials, the same
529
- // reasons `notify` and `followup` carry these flags.
530
- tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
531
- description: "Wake the next session of a cut backlogrun from outside the conversation",
532
- category: "AI tools",
533
- reference: ["[options]", "automation", ["processes", "notifications"]]
534
- },
535
- "run:cut": {
536
- script: "scripts/run/run-cut-cli.ts",
537
- description: "Cut a lane child before the gate and resume a fresh process",
538
- category: "AI tools",
539
- reference: ["[--resume] <issue> [--impl] [--handoff <path>]", "automation", ["files"]]
540
- },
541
- "run:liveness": {
542
- script: "scripts/run/run-liveness-cli.ts",
543
- description: "Say whether a delegated unit is still working, or stopped without reporting",
544
- category: "AI tools",
545
- reference: ["<issue> --output <path> [options]", "automation", ["processes"]]
546
- },
547
- "run:ending": {
548
- script: "scripts/run/run-ending-cli.ts",
549
- description: "Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)",
550
- category: "AI tools",
551
- reference: ["<issue> --output <path> [--repo <owner/repo>]", "automation", ["network"]]
552
- },
553
- "run:progress": {
554
- script: "scripts/run/run-progress-cli.ts",
555
- description: "Report an unattended run\u2019s progress once it has gone quiet for an interval",
556
- category: "AI tools",
557
- reference: ["[--wait|--mark]", "automation", ["files"]]
558
- },
559
- "run:prep": {
560
- script: "scripts/run/run-prep-cli.ts",
561
- description: "Bundle a run\u2019s pre-edit reads: body, comments, state, dependency scope",
562
- category: "AI tools",
563
- reference: ["<issue>", "automation", ["network"]]
564
- },
565
- // The entry sequence a lane opened on, folded into one call (joshuafolkken/kit#2372): claim the tree,
566
- // read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
567
- // `cost --cut`, `run:prep` and `run:step` were four round trips re-billing a lane's full context each.
568
- "run:entry": {
569
- script: "scripts/run/run-entry-cli.ts",
570
- description: "Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step",
571
- category: "AI tools",
572
- reference: ["<issue>", "automation", ["git", "network", "files"]]
573
- },
574
- "run:status": {
575
- script: "scripts/run/run-status-cli.ts",
576
- description: "Bundle a run\u2019s read-only status: issue state, cost verdict, carry counters",
577
- category: "AI tools",
578
- reference: ["<issue> [--repo <owner/repo>]", "automation", ["network"]]
579
- },
580
- "run:next": {
581
- script: "scripts/run/run-next-cli.ts",
582
- description: "Print the next step a fullrun takes, computed from the run\u2019s state",
583
- category: "AI tools",
584
- reference: ["<issue>", "automation", ["network"]]
585
- },
586
- "run:step": {
587
- script: "scripts/run/run-step-cli.ts",
588
- description: "Print the run\u2019s next single action, computed from the event stream, carry record and issue state",
589
- category: "AI tools",
590
- reference: ["<issue>", "automation", ["network", "files"]]
591
- },
604
+ ...RUN_COMMANDS,
592
605
  "repo:party": {
593
606
  script: "scripts/discovery/repo-party-cli.ts",
594
607
  description: "Say whether a repository is first-party or third-party by owner equality (computed, not judged)",
@@ -612,7 +625,7 @@ var AI_COMMANDS = {
612
625
  // `issue:cite` and `release:scope` were three round trips re-billing the run's full context each.
613
626
  "run:tail": {
614
627
  script: "scripts/run/run-tail-cli.ts",
615
- description: "Close a run in one call: commit the observation ledger, read the citations, decide the release scope",
628
+ description: "Close a run in one call: return to the default branch, commit the observation ledger, read the citations, decide the release scope",
616
629
  category: "AI tools",
617
630
  reference: ["[<issue> ...]", "automation", ["git", "network"]]
618
631
  },
@@ -625,7 +638,7 @@ var AI_COMMANDS = {
625
638
  description: "Ship a change in one call: gate, commit/push/PR, the CI-wait merge and the report bookkeeping, stopping at the first failed step",
626
639
  category: "AI tools",
627
640
  reference: [
628
- '"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
641
+ '"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--body-file <path>] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
629
642
  "automation",
630
643
  ["git", "network"]
631
644
  ]
@@ -735,7 +748,7 @@ var DEV_COMMANDS = {
735
748
  reference: ["", "automation", ["processes"]]
736
749
  },
737
750
  bytes: {
738
- script: "scripts/bytes/bytes-command.ts",
751
+ script: "scripts/lines/bytes-command.ts",
739
752
  description: "Print an agent-read document's byte size against its ceiling and the headroom left",
740
753
  category: "Development",
741
754
  reference: [REQUIRED_FILE_ARGUMENTS, "developer", ["none"]]
@@ -810,6 +823,12 @@ var DEV_COMMANDS = {
810
823
  category: "Development",
811
824
  reference: ["", "developer", ["files"]]
812
825
  },
826
+ "exports:unused": {
827
+ script: "scripts/exports/unused-members-cli.ts",
828
+ description: "Report exported namespace members nothing reads (kit only; a consumer project skips it)",
829
+ category: "Development",
830
+ reference: ["", "developer", ["none"]]
831
+ },
813
832
  "test:unit": {
814
833
  script: "scripts/test/test-unit-guard.ts",
815
834
  description: "Run unit tests with Vitest (skips when Vitest is absent; fails when it has no tests)",
@@ -950,6 +969,12 @@ var MAINTENANCE_COMMANDS = {
950
969
  reference: ["[--fix]", "developer", ["files"]],
951
970
  tsx_arguments: OPTIONAL_ENV_FILE_FLAGS
952
971
  },
972
+ "ruleset:check": {
973
+ script: "scripts/repo/ruleset-check-cli.ts",
974
+ description: "Check that the default branch requires every status check kit's workflows report (--apply adds the missing ones)",
975
+ category: "Maintenance",
976
+ reference: ["[--apply]", "maintainer", ["network"]]
977
+ },
953
978
  overrides: {
954
979
  script: "scripts/overrides/overrides-check.ts",
955
980
  description: "Check pnpm overrides for drift",
@@ -1068,6 +1093,12 @@ var PROJECT_COMMANDS = {
1068
1093
  category: "Project",
1069
1094
  reference: ["<PR>", "automation", ["network"]]
1070
1095
  },
1096
+ "sonar:new-code": {
1097
+ script: "scripts/sonar/sonar-new-code-cli.ts",
1098
+ description: "Fail when a pull request adds any new SonarCloud issue or duplicated block",
1099
+ category: "Project",
1100
+ reference: ["<PR>", "automation", ["network"]]
1101
+ },
1071
1102
  "ui:routes": {
1072
1103
  script: "scripts/ui/ui-routes-cli.ts",
1073
1104
  description: "List the screenshot-target routes the current change touches",
@@ -1133,6 +1164,14 @@ var VERSIONING_COMMANDS = {
1133
1164
  description: "Say whether a release is owed, from the unreleased merges on main",
1134
1165
  category: "Versioning",
1135
1166
  reference: ["[--json]", "automation", ["none"]]
1167
+ },
1168
+ // Run by the release workflows, kit's and the one sync distributes, after a tag has published
1169
+ // (joshuafolkken/kit#3007). Settings come from the environment, so the workflow decides them.
1170
+ "release:github": {
1171
+ script: "scripts/release/github-release-cli.ts",
1172
+ description: "Create the GitHub Release for a published tag, with generated notes",
1173
+ category: "Versioning",
1174
+ reference: ["", "automation", ["network", "release"]]
1136
1175
  }
1137
1176
  };
1138
1177
 
@@ -1170,7 +1209,7 @@ var WORKFLOW_COMMANDS = {
1170
1209
  // than dropped: `telegram_notify.send` now throws on missing credentials and on a failed send, so
1171
1210
  // `josh notify` exits non-zero instead of warning and answering 0.
1172
1211
  followup: {
1173
- script: "scripts/git/git-followup-workflow.ts",
1212
+ script: "scripts/followup/git-followup-workflow.ts",
1174
1213
  description: "Follow-up git workflow",
1175
1214
  category: "Workflow",
1176
1215
  reference: [
@@ -1181,7 +1220,7 @@ var WORKFLOW_COMMANDS = {
1181
1220
  tsx_arguments: OPTIONAL_ENV_FILE_FLAGS
1182
1221
  },
1183
1222
  notify: {
1184
- script: "scripts/git/telegram-test.ts",
1223
+ script: "scripts/notify/telegram-test.ts",
1185
1224
  description: "Send Telegram notification",
1186
1225
  category: "Workflow",
1187
1226
  reference: ["--task-type <type> --body <text>", "automation", ["notifications"]],
@@ -1267,6 +1306,7 @@ var ALIASES = {
1267
1306
  f: "format",
1268
1307
  sd: "cspell:dot",
1269
1308
  bh: "behavior",
1309
+ eu: "exports:unused",
1270
1310
  t: "test",
1271
1311
  tu: "test:unit",
1272
1312
  tr: "test:related",
@@ -1289,6 +1329,7 @@ var ALIASES = {
1289
1329
  v: "version",
1290
1330
  r: "ranges",
1291
1331
  dr: "doctor",
1332
+ rc: "ruleset:check",
1292
1333
  pg: "propagate",
1293
1334
  ad: "adopt",
1294
1335
  ov: "overrides",
@@ -1792,7 +1833,6 @@ var time_bundle_call = {
1792
1833
  tool_targets,
1793
1834
  // Exported for the batching guard's own word scan (joshuafolkken/kit#1390), so the two scanners
1794
1835
  // cannot come to disagree about where one word of a shell line ends and the next begins.
1795
- words_of,
1796
1836
  // Exported for the read-fold notice (joshuafolkken/kit#2311), which offers `read:files <path>` only
1797
1837
  // over file-shaped targets — a bare directory like `scripts/` is a target here but not something
1798
1838
  // `read:files` can read, so the notice reuses this test rather than keep a second copy that could
@@ -1819,18 +1859,7 @@ var LABEL_WIDTH = 24;
1819
1859
  var MINUTES_WIDTH = 9;
1820
1860
  var NOT_MEASURED = "not measured";
1821
1861
  var NO_CALLS = "no tool call to divide";
1822
- var NAKED_PREFIX = "naked ";
1823
- var MODEL_LABEL = "model wait";
1824
- var TOOL_LABEL = "tool execution";
1825
- var HUMAN_LABEL = "human wait";
1826
- var CI_LABEL = "CI wait";
1827
1862
  var MAX_ROWS = 15;
1828
- var SUFFIX_SEPARATOR = " \xB7 ";
1829
- var RANGE_SEPARATOR = " \u2013 ";
1830
- var RUN_UNIT = "run(s)";
1831
- var CLOCK_START = 11;
1832
- var CLOCK_END = 19;
1833
- var WINDOW_ARROW = " \u2192 ";
1834
1863
  function overflow_line(row_count) {
1835
1864
  if (row_count <= MAX_ROWS) return [];
1836
1865
  return [
@@ -1859,45 +1888,21 @@ function format_row(label, duration_ms, suffix) {
1859
1888
  function unmeasured_row(label) {
1860
1889
  return format_columns(label, "", NOT_MEASURED);
1861
1890
  }
1862
- function format_spread(min, max, sample_count) {
1863
- const range = `${min}${RANGE_SEPARATOR}${max}`;
1864
- return `${range}${SUFFIX_SEPARATOR}${String(sample_count)} ${RUN_UNIT}`;
1865
- }
1866
- function format_clock(timestamp_ms) {
1867
- return new Date(timestamp_ms).toISOString().slice(CLOCK_START, CLOCK_END);
1868
- }
1869
- function format_window(started_ms3, ended_ms) {
1870
- return `${format_clock(started_ms3)}${WINDOW_ARROW}${format_clock(ended_ms)}`;
1871
- }
1872
- function note_lines(notes) {
1873
- return notes.map((note) => ` ${note}`);
1874
- }
1875
1891
  var time_format = {
1876
1892
  MAX_ROWS,
1877
1893
  NO_CALLS,
1878
- NAKED_PREFIX,
1879
- SUFFIX_SEPARATOR,
1880
- NOT_MEASURED,
1881
- MODEL_LABEL,
1882
- TOOL_LABEL,
1883
- HUMAN_LABEL,
1884
- CI_LABEL,
1885
1894
  overflow_line,
1886
- format_minutes,
1887
1895
  format_seconds,
1888
1896
  format_share,
1889
1897
  usd,
1890
1898
  format_columns,
1891
1899
  format_row,
1892
- format_spread,
1893
1900
  // `format_clock` stays private: `format_window` is its only caller, and a namespace that offers
1894
1901
  // both invites a second renderer to join the two with its own arrow.
1895
- format_window,
1896
- unmeasured_row,
1897
- note_lines
1902
+ unmeasured_row
1898
1903
  };
1899
1904
 
1900
- // scripts/git/git-followup-stages.ts
1905
+ // scripts/followup/git-followup-stages.ts
1901
1906
  var STAGE_LINE_PREFIX = "followup stage: ";
1902
1907
  var STAGE_TOTAL_PREFIX = "followup stages total: ";
1903
1908
  var STAGE_NAME_WIDTH = 26;
@@ -2050,7 +2055,6 @@ var cost_attribute = {
2050
2055
  UNATTRIBUTED_KEY,
2051
2056
  issue_from_branch,
2052
2057
  declared_issue,
2053
- fill,
2054
2058
  attribute,
2055
2059
  group_by_issue,
2056
2060
  records_for_issue
@@ -2273,7 +2277,7 @@ function check_key(josh_command, command) {
2273
2277
  if (!CHECK_COMMANDS.has(josh_command)) return NO_CHECK;
2274
2278
  return [josh_command, ...argument_key(command)].join(KEY_SEPARATOR);
2275
2279
  }
2276
- var time_single_check = { CHECK_COMMANDS, NO_CHECK, check_key };
2280
+ var time_single_check = { NO_CHECK, check_key };
2277
2281
 
2278
2282
  // scripts/time-runtime/time-transcript-line.ts
2279
2283
  import { z as z3 } from "zod";
@@ -2382,7 +2386,6 @@ function parse_line2(line) {
2382
2386
  }
2383
2387
  var time_transcript_line = {
2384
2388
  ERROR_TEXT_LIMIT,
2385
- REFUSAL_MARKER,
2386
2389
  NO_MESSAGE_ID,
2387
2390
  guard_from_refusal,
2388
2391
  parse_line: parse_line2
@@ -3301,11 +3304,7 @@ var time_round_trips = {
3301
3304
  // `time-model-gaps.ts` and needed the same predicates and the same opener test this walk uses. A
3302
3305
  // private copy there would be the clone `CLAUDE.md` prohibits, in the one place a drift would have
3303
3306
  // the distribution and the count disagreeing about what a round trip is.
3304
- is_call,
3305
- is_model,
3306
- opens_round_trip,
3307
- per_round_trip,
3308
- started_ms: started_ms2
3307
+ per_round_trip
3309
3308
  };
3310
3309
 
3311
3310
  // scripts/time-runtime/time-density.ts
@@ -3422,8 +3421,6 @@ function density_notice(raw_payload, now_ms = Date.now()) {
3422
3421
  }
3423
3422
  }
3424
3423
  var time_density_hook = {
3425
- NOTICE_PREFIX,
3426
- TAIL_BYTES,
3427
3424
  density_notice,
3428
3425
  notice_path,
3429
3426
  read_tail
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  lane_child_marker
3
- } from "./chunk-WQ4OSBSS.js";
3
+ } from "./chunk-E54KGFEQ.js";
4
4
  import {
5
5
  time_bundle_call,
6
6
  time_format,
7
7
  time_round_trips,
8
8
  time_spans,
9
9
  time_transcript_line
10
- } from "./chunk-7VPDUBRN.js";
10
+ } from "./chunk-NKOG3XAV.js";
11
11
 
12
12
  // scripts/lane/lane-guard-policy.ts
13
13
  var DEFAULT_MODE = "refuse";
@@ -312,11 +312,7 @@ function bundle_lines(totals, price) {
312
312
  }
313
313
  var time_bundles = {
314
314
  HEADING,
315
- SEQUENCE_LABEL,
316
- RECOVERABLE_LABEL,
317
- SAVING_LABEL,
318
315
  BY_TOOL_LABEL,
319
- MIN_SEQUENCE,
320
316
  NO_BUNDLES,
321
317
  build_bundles,
322
318
  bundle_lines,
@@ -447,7 +443,6 @@ var time_batch_guard = {
447
443
  CONSECUTIVE_LIMIT,
448
444
  GUARD_LABEL,
449
445
  LANE_NOTICE,
450
- NAMED_CANDIDATE_COUNT,
451
446
  NOTICE,
452
447
  NOTICE_REFIRE_EVERY,
453
448
  NOTICE_STAMP_PREFIX,
@@ -6,7 +6,7 @@ import {
6
6
  ESLINT_EDIT_CACHE_FLAGS,
7
7
  file_reader,
8
8
  time_density_hook
9
- } from "./chunk-7VPDUBRN.js";
9
+ } from "./chunk-NKOG3XAV.js";
10
10
 
11
11
  // scripts/hooks/format-edited-file.ts
12
12
  import { existsSync as existsSync2 } from "node:fs";
@@ -84,7 +84,7 @@ async function spelling_diagnostics(file_path, project_root, runner = run_cspell
84
84
  return void 0;
85
85
  }
86
86
  }
87
- var edited_cspell = { format_unknown_words, is_checkable, spelling_diagnostics };
87
+ var edited_cspell = { format_unknown_words, spelling_diagnostics };
88
88
 
89
89
  // scripts/hooks/format-rewrite-notice.ts
90
90
  var MAX_REWRITE_CHARS = 1200;