@joshuafolkken/kit 1.1514.0 → 1.1784.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/investigator.md +1 -1
- package/.claude/settings.json +5 -5
- package/.claude/skills/epic-commands/SKILL.md +26 -65
- package/.claude/skills/epic-commands/epic-bundle.md +3 -1
- package/.claude/skills/workflow-commands/SKILL.md +5 -5
- package/.claude/skills/workflow-commands/background-commands.md +5 -5
- package/.claude/skills/workflow-commands/backlogrun-child.md +10 -8
- package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +17 -13
- package/.claude/skills/workflow-commands/backlogrun-park.md +14 -23
- package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -2
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +5 -5
- package/.claude/skills/workflow-commands/backlogrun-steps.md +10 -10
- package/.claude/skills/workflow-commands/backlogrun.md +1 -1
- package/.claude/skills/workflow-commands/chain-rule.md +13 -7
- package/.claude/skills/workflow-commands/delegation.md +6 -5
- package/.claude/skills/workflow-commands/entry-sequence.md +9 -9
- package/.claude/skills/workflow-commands/followup.md +9 -31
- package/.claude/skills/workflow-commands/fullrun-steps.md +36 -45
- package/.claude/skills/workflow-commands/fullrun.md +2 -2
- package/.claude/skills/workflow-commands/halfrun.md +17 -25
- package/.claude/skills/workflow-commands/issue-comments.md +16 -12
- package/.claude/skills/workflow-commands/issue-scout.md +2 -2
- package/.claude/skills/workflow-commands/kickoff.md +24 -23
- package/.claude/skills/workflow-commands/latest-gate.md +7 -12
- package/.claude/skills/workflow-commands/needs-human-review.md +9 -14
- package/.claude/skills/workflow-commands/observation-filing.md +4 -36
- package/.claude/skills/workflow-commands/observation-ledger.md +1 -1
- package/.claude/skills/workflow-commands/pre-gate-cut.md +13 -30
- package/.claude/skills/workflow-commands/prerequisite.md +10 -16
- package/.claude/skills/workflow-commands/progress-watcher.md +1 -1
- package/.claude/skills/workflow-commands/prrun.md +3 -7
- package/.claude/skills/workflow-commands/retrospective.md +1 -1
- package/.claude/skills/workflow-commands/split-assessment.md +13 -1
- package/.claude/skills/workflow-commands/working-tree-hold.md +9 -9
- package/.codex/hooks.json +5 -5
- package/.github/actions/setup-node/action.yml +9 -0
- package/.github/actions/setup-pnpm/action.yml +1 -1
- package/.github/dependabot.yml +16 -0
- package/.github/release.yml +0 -2
- package/.github/workflows/ci.yml +120 -10
- package/.github/workflows/publish.yml +8 -1
- package/.github/workflows/sonar-qube.yml +1 -0
- package/.prettierignore +2 -0
- package/.vscode/tasks.json +1 -2
- package/CLAUDE.md +3 -7
- package/README.md +4 -2
- package/SECURITY.md +1 -1
- package/dist/CLAUDE.md +3 -7
- package/dist/commands/document-read-cli.js +882 -0
- package/dist/commands/{document-section-cli.js → document-section-main.js} +79 -37
- package/dist/commands/read-set-cli.js +1867 -0
- package/dist/commands/run-prep-main.js +21653 -0
- package/dist/commands/run-step-cli.js +23880 -0
- package/dist/config-merge/index.js +5 -1
- package/dist/hooks/audit-provision.js +20 -35
- package/dist/hooks/{chunk-DGT54IH5.js → chunk-AZX4FGQ3.js} +63 -17
- package/dist/hooks/chunk-CWMBGKYW.js +6483 -0
- package/dist/hooks/chunk-O2YBIDSI.js +4306 -0
- package/dist/hooks/{chunk-TNUMY6NL.js → chunk-PT5R6UJD.js} +4193 -1900
- package/dist/hooks/chunk-TUIFS5E7.js +72 -0
- package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
- package/dist/hooks/{chunk-APUO6U4J.js → chunk-WR2KQAYZ.js} +1843 -440
- package/dist/hooks/{chunk-O6GDRNJB.js → chunk-XGBNSWEI.js} +248 -46
- package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
- package/dist/hooks/codex-hook-adapter.js +10 -22
- package/dist/hooks/format-edited.js +5 -6
- package/dist/hooks/inputs.json +443 -317
- package/dist/hooks/pretool-guard.js +7 -25
- package/dist/hooks/session-lang.js +44 -51
- package/dist/hooks/stop-guard.js +7716 -2187
- package/dist/josh.js +6002 -3583
- package/dist/self-sync-guard/index.js +74 -10
- package/dist/version/index.js +115 -406
- package/eslint/base.js +1 -1
- package/lefthook/base.yml +3 -1
- package/package.json +10 -48
- package/pnpm-workspace.yaml +4 -2
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +1 -7
- package/prompts/collaboration-workflow/issue-citation.md +1 -1
- package/prompts/collaboration-workflow/issue-template.md +33 -16
- package/prompts/collaboration-workflow/lane-instructions.md +1 -2
- package/prompts/collaboration-workflow/measurement.md +37 -0
- package/prompts/collaboration-workflow/operating-rules.md +4 -6
- package/prompts/collaboration-workflow/output-bounds.md +2 -7
- package/prompts/collaboration-workflow/plan-comment.md +3 -42
- package/prompts/collaboration-workflow/principles.md +5 -0
- package/prompts/collaboration-workflow/report-format.md +31 -60
- package/prompts/collaboration-workflow/residency.md +2 -2
- package/prompts/collaboration-workflow/shell-body.md +6 -16
- package/prompts/collaboration-workflow/turn-batching.md +0 -2
- package/prompts/collaboration-workflow/upstream-interrupt.md +14 -4
- package/prompts/collaboration-workflow/wip-cap.md +1 -1
- package/prompts/collaboration-workflow.md +3 -7
- package/prompts/refactoring.md +1 -1
- package/prompts/review-rubric.md +1 -2
- package/prompts/review.md +41 -21
- package/prompts/testing-guide.md +8 -43
- package/scripts/agent/agent-event.ts +15 -15
- package/scripts/agent/agent-exit-record.ts +13 -1
- package/scripts/agent/api-auth.ts +41 -0
- package/scripts/agent/api-outage.ts +1 -1
- package/scripts/auto-ok/auto-ok-cli.ts +14 -16
- package/scripts/auto-ok/auto-ok-judge-read.ts +12 -3
- package/scripts/auto-ok/auto-ok-judge-write.ts +46 -19
- package/scripts/auto-ok/auto-ok-judge.ts +13 -2
- package/scripts/auto-ok/auto-ok-main.ts +17 -0
- package/scripts/backlog/backlog-arrival.ts +14 -3
- package/scripts/backlog/backlog-budget-cli.ts +7 -33
- package/scripts/backlog/backlog-budget-main.ts +16 -0
- package/scripts/backlog/backlog-budget.ts +2 -3
- package/scripts/backlog/backlog-defect-priority.ts +4 -3
- package/scripts/backlog/backlog-drive-adopt.ts +67 -0
- package/scripts/backlog/backlog-drive-args.ts +4 -5
- package/scripts/backlog/backlog-drive-cli.ts +113 -28
- package/scripts/backlog/backlog-drive-hold.ts +162 -0
- package/scripts/backlog/backlog-drive-idle.ts +151 -0
- package/scripts/backlog/backlog-drive-judge.ts +25 -0
- package/scripts/backlog/backlog-drive-memory.ts +126 -0
- package/scripts/backlog/backlog-drive-named-offer.ts +5 -10
- package/scripts/backlog/backlog-drive-named.ts +53 -6
- package/scripts/backlog/backlog-drive-offer-argv.ts +3 -8
- package/scripts/backlog/backlog-drive-paused.ts +169 -0
- package/scripts/backlog/backlog-drive-restore.ts +30 -7
- package/scripts/backlog/backlog-drive-seats.ts +18 -8
- package/scripts/backlog/backlog-drive-token-handling.ts +38 -0
- package/scripts/backlog/backlog-drive.ts +79 -75
- package/scripts/backlog/backlog-next-main.ts +16 -0
- package/scripts/backlog/backlog-next-shared.ts +73 -0
- package/scripts/backlog/backlog-next.ts +48 -16
- package/scripts/backlog/backlog-occupied.ts +52 -39
- package/scripts/backlog/backlog-offer-cli.ts +6 -21
- package/scripts/backlog/backlog-offer-exclude.ts +15 -0
- package/scripts/backlog/backlog-offer-main.ts +12 -0
- package/scripts/backlog/backlog-offer.ts +36 -3
- package/scripts/backlog/backlog-overlap.ts +22 -4
- package/scripts/backlog/backlog-plan-read.ts +6 -2
- package/scripts/backlog/backlog-plan.ts +18 -4
- package/scripts/backlog/backlog-pool.ts +10 -10
- package/scripts/backlog/backlog-rank.ts +10 -2
- package/scripts/backlog/backlog-ready.ts +112 -30
- package/scripts/backlog/backlog-stalled-detect.ts +109 -36
- package/scripts/backlog/backlog-stalled.ts +52 -16
- package/scripts/backlog/backlog-wait-cause.ts +86 -0
- package/scripts/backlog/backlog-waves.ts +39 -13
- package/scripts/backlog/backlogrun-args.ts +19 -7
- package/scripts/backlog/backlogrun-cli.ts +19 -5
- package/scripts/backlog/backlogrun-launch.ts +6 -0
- package/scripts/backlog/backlogrun-restart.ts +97 -0
- package/scripts/backlog/backlogrun-stop.ts +79 -7
- package/scripts/behavior/behavior-cli.ts +2 -2
- package/scripts/behavior/behavior-rules.ts +47 -24
- package/scripts/build/build-bin.ts +2 -16
- package/scripts/build/build-claude-md.ts +0 -7
- package/scripts/build/build-commands.ts +0 -13
- package/scripts/build/build-hooks.ts +49 -48
- package/scripts/build/hook-bundle-stamp.ts +29 -11
- package/scripts/build/local-bin.ts +1 -1
- package/scripts/cases/cases-cli.ts +25 -13
- package/scripts/cases/cases-interaction-scan.ts +134 -0
- package/scripts/cases/cases-interaction.ts +183 -0
- package/scripts/cases/cases-logic.ts +39 -6
- package/scripts/ci/pr-classification-main.ts +18 -0
- package/scripts/ci/pr-classification.ts +10 -17
- package/scripts/clone/clone-scan.ts +1 -1
- package/scripts/cost-runtime/cost-blocks.ts +22 -37
- package/scripts/cost-runtime/cost-cli.ts +31 -14
- package/scripts/cost-runtime/cost-main.ts +12 -0
- package/scripts/cost-runtime/cost-transcript.ts +1 -0
- package/scripts/delegation/delegation-policy.ts +17 -4
- package/scripts/delegation/duplicate-read-guard.ts +0 -8
- package/scripts/delegation/investigation-guard.ts +0 -8
- package/scripts/delegation/investigation-reads.ts +3 -4
- package/scripts/dependabot/dependabot-cooldown.ts +194 -0
- package/scripts/discovery/repo-discovery.ts +24 -6
- package/scripts/doctor/doctor-consumer.ts +2 -5
- package/scripts/document/document-byte-budget.ts +8 -6
- package/scripts/document/document-scan.ts +1 -1
- package/scripts/document/document-section-cli.ts +0 -8
- package/scripts/document/document-section-main.ts +12 -0
- package/scripts/epic/epic-audit-cli.ts +12 -6
- package/scripts/epic/epic-bundle-apply.ts +137 -0
- package/scripts/epic/epic-bundle-cli.ts +32 -121
- package/scripts/epic/epic-bundle-format.ts +116 -0
- package/scripts/epic/epic-bundle-main.ts +17 -0
- package/scripts/epic/epic-busy.ts +5 -12
- package/scripts/epic/epic-classify.ts +24 -15
- package/scripts/epic/epic-cli-argv.ts +31 -0
- package/scripts/epic/epic-cli-decide.ts +42 -0
- package/scripts/epic/epic-cli.ts +6 -38
- package/scripts/epic/epic-close.ts +112 -55
- package/scripts/epic/epic-cross-repo.ts +4 -7
- package/scripts/epic/epic-decide.ts +119 -0
- package/scripts/epic/epic-decision.ts +9 -0
- package/scripts/epic/epic-fetch.ts +4 -0
- package/scripts/epic/epic-graph.ts +2 -0
- package/scripts/epic/epic-issue.ts +5 -1
- package/scripts/epic/epic-label-age.ts +1 -1
- package/scripts/epic/epic-lane-offer.ts +39 -4
- package/scripts/epic/epic-next-main.ts +24 -0
- package/scripts/epic/epic-next.ts +6 -24
- package/scripts/epic/epic-outside-blocker.ts +6 -2
- package/scripts/epic/epic-parse.ts +9 -3
- package/scripts/epic/epic-read.ts +1 -0
- package/scripts/epic/epic-reconcile.ts +39 -0
- package/scripts/epic/epic-run.ts +10 -1
- package/scripts/epic/epic-solo.ts +50 -14
- package/scripts/epic/epic.ts +41 -7
- package/scripts/exports/unused-members-cli.ts +2 -2
- package/scripts/followup/followup-checks-event.ts +8 -3
- package/scripts/followup/followup-coderabbit-wait.ts +82 -0
- package/scripts/followup/followup-review-gates.ts +81 -0
- package/scripts/followup/git-followup-stages.ts +13 -3
- package/scripts/followup/git-followup-workflow.ts +19 -66
- package/scripts/followup/git-pr-followup-wrapup.ts +9 -14
- package/scripts/followup/git-pr-followup.ts +36 -8
- package/scripts/fresh-machine/fresh-machine-cli.ts +1 -1
- package/scripts/fresh-machine/fresh-machine-run.ts +8 -8
- package/scripts/fresh-machine/specs/kit-test-backlogrun.json +1 -1
- package/scripts/gate/busy-average.ts +58 -0
- package/scripts/gate/check-cpu.ts +60 -0
- package/scripts/gate/check-inputs.ts +39 -95
- package/scripts/gate/check-reuse.ts +33 -54
- package/scripts/gate/command-memory.ts +192 -0
- package/scripts/gate/core-admission.ts +218 -28
- package/scripts/gate/core-budget-timing.ts +37 -0
- package/scripts/gate/core-budget.ts +80 -98
- package/scripts/gate/core-wait-record.ts +48 -0
- package/scripts/gate/core-wait.ts +37 -5
- package/scripts/gate/core-weights.ts +86 -0
- package/scripts/gate/free-cores.ts +27 -4
- package/scripts/gate/gate-ledger.ts +32 -4
- package/scripts/gate/gate-plan.ts +41 -34
- package/scripts/gate/gate-report.ts +14 -2
- package/scripts/gate/gate-run-steps.ts +53 -8
- package/scripts/gate/gate-skip.ts +12 -2
- package/scripts/gate/gate-steps.ts +12 -1
- package/scripts/gate/input-fingerprint.ts +42 -0
- package/scripts/gate/machine-capacity.ts +65 -31
- package/scripts/gate/moved-paths.ts +67 -0
- package/scripts/gate/project-checks.ts +5 -12
- package/scripts/gate/scoped-green.ts +12 -8
- package/scripts/gate/since-green.ts +62 -0
- package/scripts/gate/toolchain-inputs.ts +115 -0
- package/scripts/gate/verification-gate.ts +27 -24
- package/scripts/gate/verification-inputs.ts +250 -0
- package/scripts/gh/gh-author-association.ts +96 -9
- package/scripts/gh/git-ai-review-scan.ts +4 -2
- package/scripts/gh/git-gh-api-path.ts +15 -0
- package/scripts/gh/git-gh-branch-rules.ts +73 -0
- package/scripts/gh/git-gh-conditional.ts +5 -2
- package/scripts/gh/git-gh-issue-read.ts +5 -1
- package/scripts/gh/git-gh-issue-write.ts +67 -29
- package/scripts/gh/git-gh-issue.ts +7 -3
- package/scripts/gh/git-gh-poll-read.ts +89 -0
- package/scripts/gh/git-gh-pr-auto-merge.ts +8 -3
- package/scripts/gh/git-gh-pr-rest.ts +1 -1
- package/scripts/gh/git-gh-pr-snapshot.ts +33 -20
- package/scripts/gh/git-gh-pr.ts +27 -15
- package/scripts/gh/git-pr-checks-eval.ts +39 -7
- package/scripts/gh/git-pr-checks-parse.ts +39 -9
- package/scripts/gh/git-pr-merge-checked.ts +80 -0
- package/scripts/git/base-tree.ts +19 -2
- package/scripts/git/changed-file-scope.ts +6 -4
- package/scripts/git/changed-paths.ts +18 -1
- package/scripts/git/git-diff-reads.ts +27 -2
- package/scripts/git/git-grep-hits.ts +85 -0
- package/scripts/git/git-location-environment.ts +1 -1
- package/scripts/git/git-merge-conflicts.ts +83 -0
- package/scripts/git/git-preflight.ts +37 -12
- package/scripts/git/git-push-transport.ts +1 -2
- package/scripts/git/git-schemas.ts +17 -7
- package/scripts/git/git-spawn.ts +1 -2
- package/scripts/git/git-status.ts +4 -4
- package/scripts/git/main-merge-main.ts +12 -0
- package/scripts/git/main-merge-regenerate.ts +2 -2
- package/scripts/git/main-merge.ts +25 -9
- package/scripts/git/main-sync-main.ts +12 -0
- package/scripts/git/main-sync.ts +0 -9
- package/scripts/git/stash/git-stash.ts +27 -4
- package/scripts/git/stash/{stash-pop-args.ts → stash-args.ts} +13 -10
- package/scripts/git/stash/stash-pop-cli.ts +6 -12
- package/scripts/git/stash/stash-pop-main.ts +12 -0
- package/scripts/git/stash/stash-push-cli.ts +76 -0
- package/scripts/git/stash/stash-push-main.ts +12 -0
- package/scripts/hooks/batch-guard.ts +0 -8
- package/scripts/hooks/check-commit-message-main.ts +8 -0
- package/scripts/hooks/check-commit-message.ts +4 -7
- package/scripts/hooks/format-edited-file.ts +8 -24
- package/scripts/hooks/pre-commit-lint.ts +30 -3
- package/scripts/hooks/pre-push-unit.ts +4 -2
- package/scripts/hooks/pretool-guard-cli.ts +1 -8
- package/scripts/hooks/pretool-guard.ts +32 -19
- package/scripts/hooks/reserved-run.ts +67 -9
- package/scripts/hooks/run-hook.sh +13 -4
- package/scripts/hooks/shell-rules-notice.ts +37 -0
- package/scripts/hooks/stop-actions.ts +2 -21
- package/scripts/hooks/stop-guard.ts +13 -9
- package/scripts/init/hook-command-rewrite.ts +19 -5
- package/scripts/init/hook-launch.ts +15 -17
- package/scripts/init/init-actions.ts +0 -6
- package/scripts/init/init-ai-copy.ts +10 -36
- package/scripts/init/init-bootstrap.ts +9 -8
- package/scripts/init/init-dry-run-report.ts +1 -1
- package/scripts/init/init-dry-run.ts +1 -1
- package/scripts/init/init-file-action.ts +7 -9
- package/scripts/init/init-logic-json-merge.ts +2 -2
- package/scripts/init/init-logic-migrate.ts +9 -82
- package/scripts/init/init-logic.ts +3 -2
- package/scripts/init/init-main.ts +12 -0
- package/scripts/init/init.ts +5 -12
- package/scripts/init/kit-development-versions.ts +3 -7
- package/scripts/init/kit-written-paths.ts +2 -2
- package/scripts/init/project-profile.ts +5 -4
- package/scripts/init/tsconfig-preset-migration.ts +2 -1
- package/scripts/init/vscode-tasks.ts +1 -1
- package/scripts/issue/defect-origin-cli.ts +106 -0
- package/scripts/issue/defect-origin-line.ts +60 -0
- package/scripts/issue/defect-origin-main.ts +11 -0
- package/scripts/issue/defect-origin.ts +114 -0
- package/scripts/issue/defect-rate-cli.ts +34 -78
- package/scripts/issue/defect-rate.ts +0 -16
- package/scripts/issue/defect-report-cli.ts +128 -0
- package/scripts/issue/defect-report-format.ts +56 -0
- package/scripts/issue/defect-report-main.ts +11 -0
- package/scripts/issue/defect-report.ts +160 -0
- package/scripts/issue/expected-effect-lint.ts +1 -0
- package/scripts/issue/issue-already-done-cli.ts +62 -0
- package/scripts/issue/issue-body-or-comment.ts +40 -0
- package/scripts/issue/issue-cite-cli.ts +0 -9
- package/scripts/issue/issue-cite-main.ts +12 -0
- package/scripts/issue/issue-classification.ts +12 -7
- package/scripts/issue/issue-comment-cli.ts +10 -24
- package/scripts/issue/issue-comment-main.ts +12 -0
- package/scripts/issue/issue-evidence-exit.ts +100 -0
- package/scripts/issue/issue-file-cli.ts +29 -7
- package/scripts/issue/issue-file.ts +19 -19
- package/scripts/issue/issue-fold-cli.ts +2 -11
- package/scripts/issue/issue-fold-main.ts +12 -0
- package/scripts/issue/issue-labels.ts +81 -90
- package/scripts/issue/issue-lint-cli.ts +2 -10
- package/scripts/issue/issue-lint-main.ts +12 -0
- package/scripts/issue/issue-measured-cli.ts +56 -0
- package/scripts/issue/issue-merged.ts +19 -2
- package/scripts/issue/issue-not-before-label.ts +135 -0
- package/scripts/issue/issue-not-before.ts +111 -0
- package/scripts/issue/issue-number-shape.ts +15 -1
- package/scripts/issue/issue-park.ts +28 -0
- package/scripts/issue/issue-plan-cli.ts +151 -0
- package/scripts/issue/issue-priority.ts +151 -0
- package/scripts/issue/issue-rank.ts +7 -1
- package/scripts/issue/issue-read-cli.ts +3 -10
- package/scripts/issue/issue-read-main.ts +12 -0
- package/scripts/issue/issue-read.ts +29 -5
- package/scripts/issue/issue-release-cli.ts +0 -10
- package/scripts/issue/issue-release-main.ts +13 -0
- package/scripts/issue/issue-release.ts +7 -12
- package/scripts/issue/issue-sample-gate.ts +192 -0
- package/scripts/issue/issue-sample-source.ts +76 -0
- package/scripts/issue/issue-scout-cli.ts +0 -11
- package/scripts/issue/issue-scout-main.ts +14 -0
- package/scripts/issue/issue-state-cli.ts +0 -10
- package/scripts/issue/issue-state-main.ts +12 -0
- package/scripts/issue/issue-watch-diff.ts +56 -15
- package/scripts/issue/issue-watch.ts +2 -1
- package/scripts/issue/issue-wip.ts +2 -7
- package/scripts/issue/measure-rerun-cli.ts +13 -8
- package/scripts/issue/plan-consumers-cli.ts +39 -0
- package/scripts/issue/plan-consumers-main.ts +11 -0
- package/scripts/issue/plan-consumers-section.ts +55 -0
- package/scripts/issue/plan-consumers.ts +127 -0
- package/scripts/josh/agent-session-environment.ts +1 -1
- package/scripts/josh/command-usage.ts +15 -43
- package/scripts/josh/file-map-stamp.ts +49 -16
- package/scripts/josh/hook-decision.ts +32 -20
- package/scripts/josh/josh-command-map.ts +4 -1
- package/scripts/josh/josh-command-types.ts +12 -6
- package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
- package/scripts/josh/josh-commands-ai.ts +157 -158
- package/scripts/josh/josh-commands-backlog.ts +82 -16
- package/scripts/josh/josh-commands-clone.ts +1 -0
- package/scripts/josh/josh-commands-development.ts +111 -71
- package/scripts/josh/josh-commands-document.ts +43 -1
- package/scripts/josh/josh-commands-epic.ts +171 -0
- package/scripts/josh/josh-commands-hooks.ts +25 -2
- package/scripts/josh/josh-commands-issue-write.ts +181 -0
- package/scripts/josh/josh-commands-issue.ts +124 -24
- package/scripts/josh/josh-commands-lane.ts +103 -2
- package/scripts/josh/josh-commands-lint.ts +19 -8
- package/scripts/josh/josh-commands-maintenance.ts +112 -4
- package/scripts/josh/josh-commands-pause.ts +29 -0
- package/scripts/josh/josh-commands-progress.ts +87 -0
- package/scripts/josh/josh-commands-project.ts +138 -9
- package/scripts/josh/josh-commands-review.ts +124 -0
- package/scripts/josh/josh-commands-run.ts +211 -23
- package/scripts/josh/josh-commands-ship.ts +169 -0
- package/scripts/josh/josh-commands-split.ts +9 -0
- package/scripts/josh/josh-commands-versioning.ts +49 -2
- package/scripts/josh/josh-commands-workflow.ts +144 -6
- package/scripts/josh/josh-logic.ts +6 -13
- package/scripts/josh/package-directory.ts +2 -4
- package/scripts/josh/process-identity.ts +13 -4
- package/scripts/josh/session-language-cli.ts +4 -8
- package/scripts/josh/session-language-main.ts +13 -0
- package/scripts/josh/session-language.ts +6 -1
- package/scripts/josh/shared-cache.ts +90 -0
- package/scripts/josh/stamp-file.ts +9 -15
- package/scripts/lane/lane-await.ts +51 -12
- package/scripts/lane/lane-cache.ts +5 -30
- package/scripts/lane/lane-capacity.ts +14 -23
- package/scripts/lane/lane-check-stats.ts +62 -21
- package/scripts/lane/lane-child-invocation.ts +8 -0
- package/scripts/lane/lane-cli.ts +15 -5
- package/scripts/lane/lane-close.ts +86 -18
- package/scripts/lane/lane-core-wait-stats.ts +66 -0
- package/scripts/lane/lane-dispatch.ts +24 -3
- package/scripts/lane/lane-gap-stats.ts +156 -0
- package/scripts/lane/lane-handoff.ts +69 -1
- package/scripts/lane/lane-held-stats.ts +129 -0
- package/scripts/lane/lane-install.ts +4 -11
- package/scripts/lane/lane-launch-cli.ts +0 -9
- package/scripts/lane/lane-launch-main.ts +12 -0
- package/scripts/lane/lane-ledger-schema.ts +266 -0
- package/scripts/lane/lane-ledger.ts +92 -123
- package/scripts/lane/lane-limit-cli.ts +12 -1
- package/scripts/lane/lane-measure-cli.ts +57 -11
- package/scripts/lane/lane-open.ts +9 -1
- package/scripts/lane/lane-parked.ts +3 -3
- package/scripts/lane/lane-pause-cli.ts +130 -0
- package/scripts/lane/lane-pause.ts +158 -0
- package/scripts/lane/lane-process-table.ts +166 -0
- package/scripts/lane/lane-reap-settle.ts +124 -0
- package/scripts/lane/lane-reap.ts +50 -15
- package/scripts/lane/lane-registry.ts +24 -3
- package/scripts/lane/lane-residents.ts +162 -0
- package/scripts/lane/lane-restart.ts +22 -2
- package/scripts/lane/lane-round-two-stats.ts +49 -0
- package/scripts/lane/lane-sampler.ts +4 -0
- package/scripts/lane/lane-session-action.ts +19 -5
- package/scripts/lane/lane-session-broker.ts +102 -21
- package/scripts/lane/lane-snapshot-trace.ts +84 -0
- package/scripts/lane/lane-spans.ts +51 -0
- package/scripts/lane/lane-spent.ts +6 -3
- package/scripts/lane/lane-stage-stats.ts +7 -2
- package/scripts/lane/lane-state.ts +302 -0
- package/scripts/lane/lane-stats.ts +58 -4
- package/scripts/lane/lane-stop-stats.ts +113 -37
- package/scripts/lane/lane-test-related-stats.ts +127 -0
- package/scripts/lane/lane-transcript-calls.ts +145 -0
- package/scripts/lane/lane-transcript-stats.ts +168 -0
- package/scripts/lane/lane-vacant.ts +13 -3
- package/scripts/lane/lane-withdraw-cli.ts +5 -4
- package/scripts/lane/lane-withdraw.ts +50 -49
- package/scripts/lane/process-directories.ts +70 -0
- package/scripts/lane/process-lane-marks.ts +94 -0
- package/scripts/lib/atomic-write.ts +62 -0
- package/scripts/lib/buffered-process.ts +12 -5
- package/scripts/lib/cli-flags.ts +53 -0
- package/scripts/lib/figure-format.ts +63 -0
- package/scripts/lib/json-value.ts +9 -1
- package/scripts/lib/package-manifest.ts +35 -0
- package/scripts/lib/read-file.ts +3 -1
- package/scripts/lib/stamped-memo.ts +63 -0
- package/scripts/lib/stdout-on-stderr.ts +24 -0
- package/scripts/lib/timeouts.ts +9 -0
- package/scripts/lib/transcript-record.ts +91 -0
- package/scripts/lines/effective-limit.ts +1 -1
- package/scripts/lint/eslint-cache-dependencies.ts +145 -0
- package/scripts/lint/eslint-daemon.ts +265 -0
- package/scripts/lint/format.ts +11 -2
- package/scripts/lint/import-graph.ts +279 -0
- package/scripts/lint/lint-gate-scope.ts +102 -0
- package/scripts/lint/lint-parallel-main.ts +19 -0
- package/scripts/lint/lint-parallel.ts +62 -30
- package/scripts/lint/lint-related-scope.ts +30 -24
- package/scripts/lint/lint-related.ts +38 -6
- package/scripts/notify/confirmation-options.ts +1 -2
- package/scripts/notify/telegram-notify.ts +20 -20
- package/scripts/notify/telegram-test-logic.ts +0 -1
- package/scripts/notify/telegram-test-main.ts +8 -0
- package/scripts/notify/telegram-test.ts +2 -6
- package/scripts/observations/observation-ledger.ts +13 -0
- package/scripts/observations/observations-flush-landing.ts +5 -3
- package/scripts/observations/observations-flush.ts +6 -1
- package/scripts/overrides/overrides-check.ts +2 -5
- package/scripts/overrides/overrides-files.ts +2 -1
- package/scripts/overrides/overrides-logic.ts +3 -6
- package/scripts/package/verify-optional-eslint-install.ts +8 -6
- package/scripts/propagate/propagate-publish.ts +2 -7
- package/scripts/propagate/propagate-targets.ts +4 -12
- package/scripts/refactor/import-graph.ts +9 -7
- package/scripts/release/github-release-runs.ts +17 -6
- package/scripts/release/release-approval-prune.ts +18 -0
- package/scripts/release/release-history.ts +1 -3
- package/scripts/release/release-progress.ts +42 -22
- package/scripts/release/release-publish-run.ts +39 -0
- package/scripts/release/release-publish.ts +6 -6
- package/scripts/release/release-scope-cli.ts +0 -10
- package/scripts/release/release-scope-main.ts +12 -0
- package/scripts/repo/repo-setting.ts +3 -6
- package/scripts/repo/required-checks-logic.ts +6 -15
- package/scripts/report/report-format-reference.ts +2 -0
- package/scripts/report/report-labels.ts +155 -0
- package/scripts/report/report-lint-cli.ts +3 -0
- package/scripts/report/report-lint.ts +85 -110
- package/scripts/report/report-template-cli.ts +59 -0
- package/scripts/report/report-template.ts +112 -0
- package/scripts/review/acceptance-map.ts +1 -0
- package/scripts/review/removed-tests-check.ts +86 -0
- package/scripts/review/removed-tests.ts +149 -0
- package/scripts/review/review-brief-cli.ts +81 -15
- package/scripts/review/review-brief-main.ts +12 -0
- package/scripts/review/review-brief.ts +31 -3
- package/scripts/review/review-code-tree.ts +10 -6
- package/scripts/review/review-comment-round.ts +26 -8
- package/scripts/review/review-finding-ledger.ts +30 -15
- package/scripts/review/review-interaction.ts +94 -0
- package/scripts/review/review-readers-scan.ts +163 -0
- package/scripts/review/review-record-cli.ts +69 -30
- package/scripts/review/review-record-main.ts +12 -0
- package/scripts/review/review-round-one-blobs.ts +221 -0
- package/scripts/review/review-round2-cli.ts +49 -12
- package/scripts/review/review-round2.ts +80 -12
- package/scripts/review/review-stamps.ts +19 -1
- package/scripts/review/review-stop-log.ts +96 -0
- package/scripts/review/review-stops-cli.ts +85 -0
- package/scripts/review/review-tree.ts +6 -17
- package/scripts/review/review-untouched-readers.ts +146 -0
- package/scripts/review/test-titles.ts +118 -0
- package/scripts/rules/agent-model.ts +8 -0
- package/scripts/rules/bash-triggers.ts +46 -3
- package/scripts/rules/decision-oracle-batch.ts +9 -1
- package/scripts/rules/decision-oracle.ts +2 -2
- package/scripts/rules/delivered-rules.ts +80 -2
- package/scripts/rules/destructive-command.ts +8 -1
- package/scripts/rules/direct-filing.ts +10 -2
- package/scripts/rules/direct-issue-comment.ts +117 -0
- package/scripts/rules/direct-pr-create.ts +69 -3
- package/scripts/rules/early-heartbeat.ts +2 -1
- package/scripts/rules/file-body.ts +7 -0
- package/scripts/rules/filing-cap.ts +7 -0
- package/scripts/rules/git-argv.ts +72 -14
- package/scripts/rules/git-force.ts +12 -2
- package/scripts/rules/guard-remedy.ts +4 -0
- package/scripts/rules/implementation-cut-verdict.ts +1 -1
- package/scripts/rules/implementation-cut.ts +11 -3
- package/scripts/rules/index-guard.ts +8 -1
- package/scripts/rules/issue-comments.ts +9 -1
- package/scripts/rules/josh-git-bare.ts +7 -0
- package/scripts/rules/lane-background.ts +67 -25
- package/scripts/rules/lane-carry-conflict.ts +6 -0
- package/scripts/rules/lane-direct-tool.ts +74 -0
- package/scripts/rules/lane-interactive-ask.ts +9 -2
- package/scripts/rules/lane-park.ts +45 -23
- package/scripts/rules/lane-split-park.ts +10 -2
- package/scripts/rules/lane-switch-main.ts +7 -0
- package/scripts/rules/oracle-consulted.ts +10 -0
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/permission-guards.ts +3 -0
- package/scripts/rules/piped-verification.ts +1 -1
- package/scripts/rules/poll-loop.ts +7 -0
- package/scripts/rules/pr-merge.ts +123 -0
- package/scripts/rules/protected-files.ts +32 -5
- package/scripts/rules/raw-field-body.ts +6 -0
- package/scripts/rules/rule-body-guard.ts +8 -0
- package/scripts/rules/rule-list.ts +9 -28
- package/scripts/rules/rule-value-cache.ts +4 -9
- package/scripts/rules/rule-value-cli.ts +51 -32
- package/scripts/rules/rule-value.ts +1 -1
- package/scripts/rules/shell-segments.ts +35 -0
- package/scripts/rules/stop-rule-rows.ts +64 -0
- package/scripts/rules/stop-rules.ts +3 -4
- package/scripts/rules/test-declared-commit.ts +11 -1
- package/scripts/rules/third-party-write.ts +7 -0
- package/scripts/rules/timed-rerun.ts +69 -0
- package/scripts/rules/worktree-guard.ts +13 -3
- package/scripts/run/board/run-board-app-name.ts +23 -0
- package/scripts/run/board/run-board-cli.ts +65 -32
- package/scripts/run/board/run-board-earlier.ts +94 -0
- package/scripts/run/board/run-board-ending-reason.ts +67 -0
- package/scripts/run/board/run-board-estimate-schedule.ts +103 -0
- package/scripts/run/board/run-board-estimate.ts +98 -0
- package/scripts/run/board/run-board-fit.ts +153 -36
- package/scripts/run/board/run-board-fold.ts +123 -0
- package/scripts/run/board/run-board-fresh.ts +2 -2
- package/scripts/run/board/run-board-gather-live.ts +29 -0
- package/scripts/run/board/run-board-gather-thread.ts +189 -0
- package/scripts/run/board/run-board-gather-worker.ts +29 -0
- package/scripts/run/board/run-board-gather.ts +187 -0
- package/scripts/run/board/run-board-github.ts +118 -38
- package/scripts/run/board/run-board-header.ts +82 -20
- package/scripts/run/board/run-board-keys.ts +58 -0
- package/scripts/run/board/run-board-kind.ts +20 -6
- package/scripts/run/board/run-board-labels.ts +116 -71
- package/scripts/run/board/run-board-lane-state.ts +109 -0
- package/scripts/run/board/run-board-lane-time.ts +122 -0
- package/scripts/run/board/run-board-layout.ts +239 -60
- package/scripts/run/board/run-board-length.ts +52 -0
- package/scripts/run/board/run-board-machine.ts +8 -4
- package/scripts/run/board/run-board-main.ts +12 -0
- package/scripts/run/board/run-board-notes.ts +52 -31
- package/scripts/run/board/run-board-now.ts +1 -1
- package/scripts/run/board/run-board-operation.ts +15 -33
- package/scripts/run/board/run-board-phase.ts +1 -1
- package/scripts/run/board/run-board-plan-shared.ts +115 -0
- package/scripts/run/board/run-board-plan.ts +55 -3
- package/scripts/run/board/run-board-planning.ts +45 -0
- package/scripts/run/board/run-board-priority.ts +44 -0
- package/scripts/run/board/run-board-process-groups.ts +195 -0
- package/scripts/run/board/run-board-read.ts +151 -27
- package/scripts/run/board/run-board-reason.ts +235 -51
- package/scripts/run/board/run-board-released.ts +35 -0
- package/scripts/run/board/run-board-render-checks.ts +39 -5
- package/scripts/run/board/run-board-render-condition.ts +96 -0
- package/scripts/run/board/run-board-render-drawn.ts +67 -0
- package/scripts/run/board/run-board-render-foot.ts +59 -0
- package/scripts/run/board/run-board-render-icon.ts +35 -0
- package/scripts/run/board/run-board-render-lanes.ts +145 -0
- package/scripts/run/board/run-board-render-lead.ts +80 -0
- package/scripts/run/board/run-board-render-legend.ts +117 -48
- package/scripts/run/board/run-board-render-notes.ts +156 -29
- package/scripts/run/board/run-board-render-processes.ts +196 -0
- package/scripts/run/board/run-board-render-section.ts +119 -0
- package/scripts/run/board/run-board-render-slot.ts +3 -36
- package/scripts/run/board/run-board-render-tail.ts +115 -48
- package/scripts/run/board/run-board-render-time.ts +56 -0
- package/scripts/run/board/run-board-render-title.ts +117 -24
- package/scripts/run/board/run-board-render-waits.ts +104 -20
- package/scripts/run/board/run-board-render.ts +207 -265
- package/scripts/run/board/run-board-roots.ts +54 -0
- package/scripts/run/board/run-board-row-yield.ts +9 -4
- package/scripts/run/board/run-board-setup.ts +1 -12
- package/scripts/run/board/run-board-snapshot.ts +111 -0
- package/scripts/run/board/run-board-spin.ts +2 -2
- package/scripts/run/board/run-board-state.ts +22 -33
- package/scripts/run/board/run-board-status.ts +147 -71
- package/scripts/run/board/run-board-thanks-read.ts +2 -2
- package/scripts/run/board/run-board-tick.ts +122 -107
- package/scripts/run/board/run-board-usage-board.ts +78 -0
- package/scripts/run/board/run-board-usage-lanes.ts +113 -0
- package/scripts/run/board/run-board-usage-listing.ts +93 -0
- package/scripts/run/board/run-board-usage-read.ts +120 -150
- package/scripts/run/board/run-board-usage-rusage.ts +19 -7
- package/scripts/run/board/run-board-usage-text.ts +139 -51
- package/scripts/run/board/run-board-usage-top.ts +102 -0
- package/scripts/run/board/run-board-usage.ts +89 -72
- package/scripts/run/board/run-board-usual.ts +20 -9
- package/scripts/run/carry/run-carry-args.ts +4 -7
- package/scripts/run/carry/run-carry-conversation.ts +1 -1
- package/scripts/run/carry/run-carry.ts +9 -4
- package/scripts/run/cut/run-cut-handoff.ts +2 -2
- package/scripts/run/event/run-event-cli.ts +1 -5
- package/scripts/run/event/run-event-filed.ts +12 -6
- package/scripts/run/event/run-event-follow.ts +2 -3
- package/scripts/run/event/run-event-render.ts +6 -10
- package/scripts/run/event/run-event-scope.ts +2 -2
- package/scripts/run/event/run-event-stream-emit.ts +82 -22
- package/scripts/run/event/run-event-stream.ts +34 -8
- package/scripts/run/hold/run-hold-adopt.ts +65 -0
- package/scripts/run/hold/run-hold-cli.ts +93 -22
- package/scripts/run/hold/run-hold-main.ts +12 -0
- package/scripts/run/hold/run-hold-member.ts +37 -0
- package/scripts/run/hold/run-stop-notify.ts +183 -0
- package/scripts/run/merge/run-merge-auth.ts +31 -0
- package/scripts/run/merge/run-merge-cli.ts +62 -48
- package/scripts/run/merge/run-merge-close.ts +74 -0
- package/scripts/run/merge/run-merge-collect.ts +6 -13
- package/scripts/run/merge/run-merge-driver.ts +71 -0
- package/scripts/run/merge/run-merge-main.ts +12 -0
- package/scripts/run/merge/run-merge-outcome.ts +23 -0
- package/scripts/run/merge/run-merge-restart.ts +39 -0
- package/scripts/run/merge/run-merge-ship.ts +20 -4
- package/scripts/run/merge/run-merge-signals.ts +33 -9
- package/scripts/run/merge/run-merge-steps.ts +120 -85
- package/scripts/run/merge/run-merge.ts +38 -37
- package/scripts/run/park/run-park-cli.ts +91 -0
- package/scripts/run/park/run-park.ts +88 -0
- package/scripts/run/park/run-stalled.ts +68 -0
- package/scripts/run/pause/run-pause-cli.ts +73 -0
- package/scripts/run/pause/run-pause.ts +251 -0
- package/scripts/run/progress/run-progress-cli.ts +4 -12
- package/scripts/run/progress/run-progress-clock.ts +1 -1
- package/scripts/run/progress/run-progress-config.ts +6 -14
- package/scripts/run/progress/run-progress-main.ts +12 -0
- package/scripts/run/progress/run-progress.ts +1 -4
- package/scripts/run/review/run-review.ts +2 -1
- package/scripts/run/run-ending.ts +1 -0
- package/scripts/run/run-invocation.ts +5 -6
- package/scripts/run/run-liveness-cli.ts +6 -8
- package/scripts/run/run-liveness.ts +60 -29
- package/scripts/run/run-next.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +2 -2
- package/scripts/run/run-preflight.ts +18 -3
- package/scripts/run/run-prep-cli.ts +1 -10
- package/scripts/run/run-prep-locate.ts +7 -50
- package/scripts/run/run-prep-main.ts +12 -0
- package/scripts/run/run-prep.ts +6 -0
- package/scripts/run/run-report-cli.ts +101 -13
- package/scripts/run/run-report-handoff.ts +114 -0
- package/scripts/run/run-step.ts +1 -1
- package/scripts/run/run-stranded-detect.ts +13 -0
- package/scripts/run/run-watcher-guard-cli.ts +1 -1
- package/scripts/run/run-watcher-guard.ts +1 -1
- package/scripts/run/ship/run-ship-args.ts +121 -0
- package/scripts/run/ship/run-ship-body-draft.ts +110 -0
- package/scripts/run/ship/run-ship-cli.ts +63 -140
- package/scripts/run/ship/run-ship-detach.ts +19 -8
- package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
- package/scripts/run/ship/run-ship-next.ts +18 -2
- package/scripts/run/ship/run-ship-overlap.ts +42 -5
- package/scripts/run/ship/run-ship-place.ts +96 -0
- package/scripts/run/ship/run-ship-pre-detach-timed.ts +43 -0
- package/scripts/run/ship/run-ship-pre-detach.ts +81 -24
- package/scripts/run/ship/run-ship-preflight.ts +137 -32
- package/scripts/run/ship/run-ship-probe.ts +11 -3
- package/scripts/run/ship/run-ship-relaunch-cap.ts +70 -0
- package/scripts/run/ship/run-ship-removed-rows.ts +61 -0
- package/scripts/run/ship/run-ship-return.ts +107 -23
- package/scripts/run/ship/run-ship-review-steps.ts +105 -151
- package/scripts/run/ship/run-ship-review.ts +73 -6
- package/scripts/run/ship/run-ship-reviewer.ts +207 -0
- package/scripts/run/ship/run-ship-stage.ts +55 -6
- package/scripts/run/ship/run-ship-steps.ts +46 -15
- package/scripts/run/ship/run-ship-stop-cause.ts +135 -0
- package/scripts/run/ship/run-ship-stop-text.ts +11 -6
- package/scripts/run/ship/run-ship-sync.ts +43 -6
- package/scripts/run/ship/run-ship.ts +30 -2
- package/scripts/run/tidy/run-tidy-cli.ts +0 -4
- package/scripts/run/tidy/run-tidy-lanes.ts +3 -0
- package/scripts/run/tidy/run-tidy-main.ts +8 -0
- package/scripts/run/wake/run-wake-cli.ts +119 -100
- package/scripts/run/wake/run-wake-code.ts +83 -0
- package/scripts/run/wake/run-wake-driver.ts +19 -8
- package/scripts/run/wake/run-wake-loop.ts +34 -3
- package/scripts/run/wake/run-wake-main.ts +13 -0
- package/scripts/run/wake/run-wake-ports.ts +90 -0
- package/scripts/run/wake/run-wake-takeover.ts +66 -0
- package/scripts/run/wake/run-wake.ts +2 -1
- package/scripts/safe-chain/pack-hook.ts +2 -2
- package/scripts/safe-chain/preinstall-command.ts +2 -1
- package/scripts/safe-chain/project-config.ts +3 -9
- package/scripts/security/security-audit-main.ts +8 -0
- package/scripts/security/security-audit-provision-logic.ts +0 -11
- package/scripts/security/security-audit-provision-main.ts +12 -0
- package/scripts/security/security-audit-provision.ts +11 -26
- package/scripts/security/security-audit.ts +6 -7
- package/scripts/self-sync-guard/self-sync-guard-logic.ts +6 -13
- package/scripts/split/split-assess-cli.ts +2 -2
- package/scripts/split/split-assess.ts +15 -0
- package/scripts/split/split-measure.ts +65 -0
- package/scripts/sync/claude-settings-merge.ts +8 -15
- package/scripts/sync/directory-copy-guard.ts +4 -9
- package/scripts/sync/file-content.ts +78 -8
- package/scripts/sync/sync-ai-files.ts +3 -5
- package/scripts/sync/sync-configs.ts +11 -23
- package/scripts/sync/sync-hook-safety.ts +4 -10
- package/scripts/sync/sync-main.ts +11 -0
- package/scripts/sync/sync.ts +25 -37
- package/scripts/test/test-declared-changed.ts +2 -2
- package/scripts/test/test-declared.ts +1 -1
- package/scripts/test/test-e2e-guard.ts +25 -1
- package/scripts/test/test-e2e-stamp.ts +38 -0
- package/scripts/test/test-pinned-logic.ts +145 -0
- package/scripts/test/test-pinned-main.ts +78 -0
- package/scripts/test/test-pinned.ts +100 -0
- package/scripts/test/test-read-map.ts +264 -0
- package/scripts/test/test-read-recording.ts +91 -0
- package/scripts/test/test-read-trace.ts +148 -0
- package/scripts/test/test-red-main.ts +12 -0
- package/scripts/test/test-red.ts +12 -30
- package/scripts/test/test-related-main.ts +18 -0
- package/scripts/test/test-related-record.ts +119 -0
- package/scripts/test/test-related-scope.ts +229 -43
- package/scripts/test/test-related.ts +300 -22
- package/scripts/test/test-unit-guard-main.ts +15 -0
- package/scripts/test/test-unit-guard.ts +42 -24
- package/scripts/test/unit-count-file.ts +37 -0
- package/scripts/test/unit-run-marker.ts +162 -0
- package/scripts/test/unit-setup-files.ts +51 -0
- package/scripts/test/unit-worker-share.ts +61 -149
- package/scripts/test/whole-suite-files.ts +63 -0
- package/scripts/time-runtime/time-background.ts +20 -2
- package/scripts/time-runtime/time-bundles.ts +4 -3
- package/scripts/time-runtime/time-density-hook.ts +8 -6
- package/scripts/time-runtime/time-followup-stage.ts +1 -3
- package/scripts/time-runtime/time-format.ts +5 -28
- package/scripts/time-runtime/time-markers.ts +10 -1
- package/scripts/time-runtime/time-shell.ts +97 -10
- package/scripts/time-runtime/time-transcript-line.ts +49 -62
- package/scripts/uninstall/uninstall.ts +1 -1
- package/scripts/version/bump-version-main.ts +12 -0
- package/scripts/version/bump-version.ts +25 -25
- package/scripts/version/effective-upstream.ts +6 -12
- package/scripts/version/latest-corepack.ts +17 -32
- package/scripts/version/latest-if-required-cli.ts +93 -0
- package/scripts/version/latest-lane-guard-main.ts +8 -0
- package/scripts/version/latest-lane-guard.ts +0 -4
- package/scripts/version/latest-scope-cli.ts +0 -9
- package/scripts/version/latest-scope-main.ts +12 -0
- package/scripts/version/latest-update.ts +5 -5
- package/scripts/version/npm-registry.ts +44 -6
- package/scripts/version/publishable-range-check.ts +5 -16
- package/scripts/version/release-age.ts +1 -1
- package/scripts/version/release-hold.ts +1 -1
- package/scripts/version/release-window.ts +38 -0
- package/scripts/version/running-binary.ts +1 -1
- package/scripts/version/safe-chain-version-update.ts +3 -8
- package/scripts/version/version-targets.ts +6 -28
- package/templates/dependabot.yml +29 -0
- package/templates/gitignore +4 -1
- package/templates/pnpm-workspace.basic.yaml +1 -1
- package/templates/sonar-project.properties +3 -2
- package/templates/workflows/ci.yml +12 -4
- package/templates/workflows/github-release.yml +4 -0
- package/tsconfig.sonar.json +1 -1
- package/.ncurc.json +0 -3
- package/dist/hooks/batch-guard.js +0 -29
- package/dist/hooks/chunk-4KKD2UTK.js +0 -66
- package/dist/hooks/chunk-6TS2JD6D.js +0 -237
- package/dist/hooks/chunk-7DSBJVFH.js +0 -50
- package/dist/hooks/chunk-A65Y4YOR.js +0 -79
- package/dist/hooks/chunk-CDY4NFQG.js +0 -15
- package/dist/hooks/chunk-EFXE6C37.js +0 -81
- package/dist/hooks/chunk-GP4IEC4O.js +0 -20
- package/dist/hooks/chunk-JP45SOCJ.js +0 -56
- package/dist/hooks/chunk-LAOV7NLM.js +0 -45
- package/dist/hooks/chunk-M4HGZV7U.js +0 -83
- package/dist/hooks/chunk-PF2NZL2A.js +0 -131
- package/dist/hooks/chunk-PTICX4OL.js +0 -358
- package/dist/hooks/chunk-RT27QRJW.js +0 -6247
- package/dist/hooks/chunk-SYOTDYCI.js +0 -3533
- package/dist/hooks/chunk-UPUZF3AN.js +0 -279
- package/dist/hooks/chunk-WK6SMBIC.js +0 -3180
- package/dist/hooks/duplicate-read-guard.js +0 -30
- package/dist/hooks/investigation-guard.js +0 -29
- package/scripts/backlog/backlog-stalled-cli.ts +0 -30
- package/scripts/cost-runtime/cost-format.ts +0 -29
- package/scripts/init/basic-path-migration.ts +0 -24
- package/scripts/issue/issue-backlinks-cli.ts +0 -93
- package/scripts/josh/josh-commands-guard.ts +0 -38
- package/scripts/josh/josh-usage-automation.ts +0 -121
- package/scripts/josh/josh-usage-backlog.ts +0 -180
- package/scripts/josh/josh-usage-developer.ts +0 -230
- package/scripts/josh/josh-usage-hooks.ts +0 -38
- package/scripts/josh/josh-usage-issue.ts +0 -205
- package/scripts/josh/josh-usage-review.ts +0 -101
- package/scripts/josh/josh-usage-run.ts +0 -252
- package/scripts/josh/josh-usage-session.ts +0 -238
- package/scripts/josh/josh-usage-workflow.ts +0 -212
- package/scripts/lint/cross-file-recheck.ts +0 -155
- package/scripts/registry-migration/migrate-logic.ts +0 -237
- package/scripts/registry-migration/migrate.ts +0 -292
- package/scripts/registry-migration/user-npmrc.ts +0 -15
- package/scripts/rules/rule-guard.ts +0 -23
- package/scripts/rules/rule-registry-rows.ts +0 -292
- package/scripts/rules/rule-registry.ts +0 -112
- package/scripts/run/run-stranded-cli.ts +0 -27
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
|
+
import { PAUSE_COMMANDS } from './josh-commands-pause'
|
|
3
|
+
import { PROGRESS_COMMANDS } from './josh-commands-progress'
|
|
4
|
+
|
|
5
|
+
const OWNER = '--owner <pid>'
|
|
6
|
+
const OUTPUT = '--output <path>'
|
|
7
|
+
const REPO_FLAG = { names: ['--repo <owner/name>'], description: 'a child in another repository.' }
|
|
8
|
+
const ISSUE = { arguments: '<N>' }
|
|
2
9
|
|
|
3
10
|
// The run-lifecycle registry (`run:hold` through `run:step`), split out of `josh-commands-ai.ts` so
|
|
4
11
|
// that file stays under its 300-code-line limit, as `BACKLOG_COMMANDS` and `LANE_COMMANDS` are. It
|
|
@@ -6,7 +13,7 @@ import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types
|
|
|
6
13
|
// order.
|
|
7
14
|
|
|
8
15
|
// One script answers both `run:hold` and `run:release`; the flag below is what tells them apart.
|
|
9
|
-
const RUN_HOLD_SCRIPT = 'scripts/run/hold/run-hold-
|
|
16
|
+
const RUN_HOLD_SCRIPT = 'scripts/run/hold/run-hold-main.ts'
|
|
10
17
|
|
|
11
18
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
12
19
|
const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
@@ -14,20 +21,72 @@ const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
|
14
21
|
script: RUN_HOLD_SCRIPT,
|
|
15
22
|
description: 'Claim this working tree for a run, or say which run already holds it',
|
|
16
23
|
category: 'AI tools',
|
|
17
|
-
|
|
24
|
+
// A `--halfrun-stop` / `--human-review-stop` / `--prrun-stop` sends the stop confirmation.
|
|
25
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
26
|
+
reference: [
|
|
27
|
+
'[<issue> [--fullrun | --halfrun-stop | --human-review-stop | --prrun-stop]] | --adopt <issue>',
|
|
28
|
+
'automation',
|
|
29
|
+
['files'],
|
|
30
|
+
],
|
|
31
|
+
usage: {
|
|
32
|
+
examples: [
|
|
33
|
+
{ arguments: '1091', note: 'claim for issue 1091' },
|
|
34
|
+
{ arguments: '1091 --fullrun', note: 'claim as `fullrun #1091` (what `run:entry` runs)' },
|
|
35
|
+
{ arguments: '--adopt 1091', note: "hand a `new` run's hold to the issue it filed" },
|
|
36
|
+
],
|
|
37
|
+
flags: [
|
|
38
|
+
{ names: ['--fullrun'], description: "marks the record as `fullrun #N`'s." },
|
|
39
|
+
{
|
|
40
|
+
names: ['--adopt <issue>'],
|
|
41
|
+
description:
|
|
42
|
+
"re-keys the unnumbered `new` run's record to the filed issue and applies `in-progress`; answers `none` (exit 1) when the tree holds no record.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
names: ['--halfrun-stop'],
|
|
46
|
+
description:
|
|
47
|
+
'marks a `halfrun` stop for `run:entry` to adopt, and sends its `confirmation` Telegram; answers `e2e-owed` (exit 1) until `test:e2e` answered green on this tree.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
names: ['--human-review-stop'],
|
|
51
|
+
description:
|
|
52
|
+
'marks a `needs-human-review` stop as a `halfrun` stop, and sends its `confirmation` Telegram naming the lane; answers `e2e-owed` (exit 1) until `test:e2e` answered green on this tree.',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
names: ['--prrun-stop'],
|
|
56
|
+
description:
|
|
57
|
+
'marks a `prrun` stop with the commit its pull request is on, and sends its `confirmation` Telegram.',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
18
61
|
},
|
|
19
62
|
'run:release': {
|
|
20
63
|
script: RUN_HOLD_SCRIPT,
|
|
21
64
|
description: "Release this working tree's run record",
|
|
22
65
|
category: 'AI tools',
|
|
66
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
23
67
|
reference: ['[issue|--force]', 'automation', ['files']],
|
|
24
68
|
default_script_arguments: ['--release'],
|
|
69
|
+
usage: {
|
|
70
|
+
examples: [
|
|
71
|
+
{ arguments: '1091', note: "release this run's own record" },
|
|
72
|
+
{ arguments: '--force', note: 'clear a record left by a run that has ended' },
|
|
73
|
+
],
|
|
74
|
+
flags: [
|
|
75
|
+
{
|
|
76
|
+
names: ['--force'],
|
|
77
|
+
description:
|
|
78
|
+
"removes a record this run did not write, clearing another run's stale claim.",
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
25
82
|
},
|
|
83
|
+
...PAUSE_COMMANDS,
|
|
26
84
|
'run:tidy': {
|
|
27
|
-
script: 'scripts/run/tidy/run-tidy-
|
|
85
|
+
script: 'scripts/run/tidy/run-tidy-main.ts',
|
|
28
86
|
description: 'Close merged lanes and drop stashes whose issues are all merged',
|
|
29
87
|
category: 'AI tools',
|
|
30
88
|
reference: ['', 'automation', ['git', 'network', 'files']],
|
|
89
|
+
usage: { examples: [{ arguments: '' }] },
|
|
31
90
|
},
|
|
32
91
|
'run:carry': {
|
|
33
92
|
script: 'scripts/run/carry/run-carry-cli.ts',
|
|
@@ -37,15 +96,70 @@ const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
|
37
96
|
description: 'Carry one invocation’s budget across its own session cuts',
|
|
38
97
|
category: 'AI tools',
|
|
39
98
|
reference: ['<operation> [arguments...]', 'automation', ['files']],
|
|
99
|
+
usage: {
|
|
100
|
+
examples: [
|
|
101
|
+
{ arguments: '--begin "backlogrun --max 5" --owner "$PPID"' },
|
|
102
|
+
{ arguments: '--json', note: 'read the record back in a resumed session' },
|
|
103
|
+
{ arguments: '--cut --owner "$PPID"', note: 'hand the record off before a cut' },
|
|
104
|
+
{
|
|
105
|
+
arguments:
|
|
106
|
+
'--retrospective --summary "0 filed; dropped #2240 already merged" --owner "$PPID"',
|
|
107
|
+
note: 'close the end-of-run retrospective',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
arguments: '--resume "backlogrun --max 5" --owner "$PPID"',
|
|
111
|
+
note: 'adopt a record no cut handed off',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
arguments: '--end --stopped "epic #2126: everything is blocked behind parked #2118"',
|
|
115
|
+
note: 'end + push',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
flags: [
|
|
119
|
+
{
|
|
120
|
+
names: [OWNER],
|
|
121
|
+
description:
|
|
122
|
+
'the long-lived process spending the budget (`$PPID` under a loop); required by counts and `--begin` / `--resume`. A live PID stays `busy` if probes fail.',
|
|
123
|
+
},
|
|
124
|
+
{ names: ['--done <issue>'], description: "shrinks a named-issue run's `remaining` list." },
|
|
125
|
+
{
|
|
126
|
+
names: ['--merged <issue>'],
|
|
127
|
+
description:
|
|
128
|
+
'names the merged issue and counts it once against `merged_issues`, so a merge `run:merge` already recorded is not counted twice.',
|
|
129
|
+
},
|
|
130
|
+
{ names: ['--filed', '--cut'], description: 'increments, never totals.' },
|
|
131
|
+
{
|
|
132
|
+
names: ['--retrospective'],
|
|
133
|
+
description:
|
|
134
|
+
"marks the end-of-run retrospective run, once per invocation, and requires `--summary <text>` — the same close writes that result as one `retrospective` event on the run's event stream (best-effort), so a run that filed zero improvements reads apart from one whose retrospective never ran. Either flag without the other is refused.",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
names: ['--stopped <reason>'],
|
|
138
|
+
description:
|
|
139
|
+
'rides on `--end`: the run stopped rather than finished, so one ⏸️ confirmation is pushed with the reason.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
names: ['--end'],
|
|
143
|
+
description:
|
|
144
|
+
'over a live record flushes pending ledger lines once (a failed flush goes to stderr and the record is still cleared); first collects each lane the run launched whose issue merged, exactly as `run:merge` would; keeps the run it removes as the last ended run — its invocation, start and end, one record overwritten by the next `--end` — so `run:board` can still draw a finished run.',
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
},
|
|
40
148
|
},
|
|
41
149
|
'run:add': {
|
|
42
150
|
script: 'scripts/run/add/run-add-cli.ts',
|
|
43
151
|
description: 'Add issues to a live backlogrun, ahead of the queue unless --no-priority',
|
|
44
152
|
category: 'AI tools',
|
|
45
153
|
reference: ['<issue...> [--no-priority]', 'automation', ['network', 'files']],
|
|
154
|
+
usage: {
|
|
155
|
+
examples: [
|
|
156
|
+
{ arguments: '101 102', note: 'ahead of the rest of the queue (`#N` works too)' },
|
|
157
|
+
{ arguments: '101 --no-priority', note: 'at the end of the queue' },
|
|
158
|
+
],
|
|
159
|
+
},
|
|
46
160
|
},
|
|
47
161
|
'run:wake': {
|
|
48
|
-
script: 'scripts/run/wake/run-wake-
|
|
162
|
+
script: 'scripts/run/wake/run-wake-main.ts',
|
|
49
163
|
// `.env` rather than the ambient environment:
|
|
50
164
|
// the failure warning needs the Telegram credentials, the same
|
|
51
165
|
// reasons `notify` and `followup` carry these flags.
|
|
@@ -53,48 +167,105 @@ const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
|
53
167
|
description: 'Wake the next session of a cut backlogrun from outside the conversation',
|
|
54
168
|
category: 'AI tools',
|
|
55
169
|
reference: ['[options]', 'automation', ['processes', 'notifications']],
|
|
170
|
+
usage: {
|
|
171
|
+
examples: [
|
|
172
|
+
{ arguments: '--start', note: 'launch the detached supervisor' },
|
|
173
|
+
{ arguments: '--list', note: 'supervisor state, cut/wake counts, latest progress line' },
|
|
174
|
+
{ arguments: '--stop', note: 'stop the supervisor alone' },
|
|
175
|
+
{ arguments: '--loop --interval 30', note: 'run the loop body in the foreground' },
|
|
176
|
+
],
|
|
177
|
+
},
|
|
56
178
|
},
|
|
57
179
|
'run:cut': {
|
|
58
180
|
script: 'scripts/run/cut/run-cut-cli.ts',
|
|
59
181
|
description: 'Cut a lane child before the gate and resume a fresh process',
|
|
60
182
|
category: 'AI tools',
|
|
61
183
|
reference: ['[--resume] <issue> [--impl] [--handoff <path>]', 'automation', ['files']],
|
|
184
|
+
usage: {
|
|
185
|
+
examples: [
|
|
186
|
+
{ arguments: '1839', note: 'take the cut and hand it to a fresh process' },
|
|
187
|
+
{
|
|
188
|
+
arguments: '--impl 1839 --handoff .josh/tmp/handoff-1839.json',
|
|
189
|
+
note: 'cut mid-implementation, carrying the instruction',
|
|
190
|
+
},
|
|
191
|
+
{ arguments: '--resume 1839', note: "a fresh process's entry check" },
|
|
192
|
+
{ arguments: '--end', note: 'clear the record' },
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
'run:park': {
|
|
197
|
+
script: 'scripts/run/park/run-park-cli.ts',
|
|
198
|
+
description: 'Park a lane child for a decision, or clear the park',
|
|
199
|
+
category: 'AI tools',
|
|
200
|
+
reference: ['<issue> --body-file <path> | <issue> --clear', 'automation', ['files', 'network']],
|
|
201
|
+
usage: {
|
|
202
|
+
examples: [
|
|
203
|
+
{
|
|
204
|
+
arguments: '1839 --body-file .josh/tmp/park-1839.md',
|
|
205
|
+
note: 'comment, needs-decision and the local record',
|
|
206
|
+
},
|
|
207
|
+
{ arguments: '1839 --clear', note: 'remove needs-decision and the record' },
|
|
208
|
+
],
|
|
209
|
+
},
|
|
62
210
|
},
|
|
63
211
|
'run:liveness': {
|
|
64
212
|
script: 'scripts/run/run-liveness-cli.ts',
|
|
65
213
|
description: 'Say whether a delegated unit is still working, or stopped without reporting',
|
|
66
214
|
category: 'AI tools',
|
|
67
215
|
reference: ['<issue> --output <path> [options]', 'automation', ['processes']],
|
|
216
|
+
usage: {
|
|
217
|
+
examples: [
|
|
218
|
+
{ arguments: '1169 --output <path>' },
|
|
219
|
+
{ arguments: '1169 --output <path> --window 45 --gap 2 --repo joshuafolkken/app-kit' },
|
|
220
|
+
],
|
|
221
|
+
flags: [
|
|
222
|
+
{
|
|
223
|
+
names: [OUTPUT],
|
|
224
|
+
description:
|
|
225
|
+
'absolute, under the home or temp directory; a symlink is followed and size compared as well as mtime.',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
names: ['--process alive | none'],
|
|
229
|
+
description:
|
|
230
|
+
"overrides the process trace, which the command otherwise reads itself: the child's own command line (`fullrun #<N>`) or its detached ship supervisor.",
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
names: ['--window <min>'],
|
|
234
|
+
description: 'silent window the file must be frozen for (default 30).',
|
|
235
|
+
},
|
|
236
|
+
{ names: ['--gap <sec>'], description: 'spacing between samples (default 5).' },
|
|
237
|
+
REPO_FLAG,
|
|
238
|
+
],
|
|
239
|
+
},
|
|
68
240
|
},
|
|
69
241
|
'run:ending': {
|
|
70
242
|
script: 'scripts/run/run-ending-cli.ts',
|
|
71
243
|
description: 'Classify how a dispatched lane child ended (merged, cut, abandoned, unreadable)',
|
|
72
244
|
category: 'AI tools',
|
|
73
245
|
reference: ['<issue> --output <path> [--repo <owner/repo>]', 'automation', ['network']],
|
|
246
|
+
usage: {
|
|
247
|
+
examples: [
|
|
248
|
+
{ arguments: '2118 --output <path>' },
|
|
249
|
+
{ arguments: '2118 --output <path> --repo joshuafolkken/app-kit' },
|
|
250
|
+
],
|
|
251
|
+
flags: [
|
|
252
|
+
{
|
|
253
|
+
names: [OUTPUT],
|
|
254
|
+
description:
|
|
255
|
+
"the child's transcript, absolute and under the home or temp directory (validated the same way `run:liveness --output` is).",
|
|
256
|
+
},
|
|
257
|
+
REPO_FLAG,
|
|
258
|
+
],
|
|
259
|
+
},
|
|
74
260
|
},
|
|
75
|
-
|
|
76
|
-
script: 'scripts/run/progress/run-progress-cli.ts',
|
|
77
|
-
description: 'Report an unattended run’s progress once it has gone quiet for an interval',
|
|
78
|
-
category: 'AI tools',
|
|
79
|
-
reference: [
|
|
80
|
-
'[--once | --wait] [--interval <minutes>] [--hours <hours>] [--repo <owner/repo>] [--output <path>] | --mark | --path',
|
|
81
|
-
'automation',
|
|
82
|
-
['files'],
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
|
-
'run:board': {
|
|
86
|
-
script: 'scripts/run/board/run-board-cli.ts',
|
|
87
|
-
// `--every` pushes its frame as a Telegram, so the credentials come from `.env` as for `run:carry`.
|
|
88
|
-
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
89
|
-
description: 'Draw a live board of the running backlogrun, redrawn every second',
|
|
90
|
-
category: 'AI tools',
|
|
91
|
-
reference: ['[--once | --chat | --every <minutes>]', 'automation', ['files', 'network']],
|
|
92
|
-
},
|
|
261
|
+
...PROGRESS_COMMANDS,
|
|
93
262
|
'run:prep': {
|
|
94
|
-
script: 'scripts/run/run-prep-
|
|
263
|
+
script: 'scripts/run/run-prep-main.ts',
|
|
95
264
|
description: 'Bundle a run’s pre-edit reads: body, comments, state, dependency scope',
|
|
96
265
|
category: 'AI tools',
|
|
97
266
|
reference: ['<issue>', 'automation', ['network']],
|
|
267
|
+
is_bundled: true,
|
|
268
|
+
usage: { examples: [ISSUE] },
|
|
98
269
|
},
|
|
99
270
|
// The entry sequence a lane opened on, folded into one call: claim the tree,
|
|
100
271
|
// read the budget, gather the issue reads and decide the pre-implementation step. `run:hold`,
|
|
@@ -107,18 +278,28 @@ const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
|
107
278
|
'Open a run in one call: claim the tree, read the budget, bundle the reads, decide the pre-implementation step',
|
|
108
279
|
category: 'AI tools',
|
|
109
280
|
reference: ['<issue> [--to <command>]', 'automation', ['git', 'network', 'files']],
|
|
281
|
+
usage: {
|
|
282
|
+
examples: [
|
|
283
|
+
{ arguments: '<N>', note: 'a `fullrun`' },
|
|
284
|
+
{ arguments: '<N> --to halfrun', note: 'a run that goes as far as `halfrun`' },
|
|
285
|
+
],
|
|
286
|
+
},
|
|
110
287
|
},
|
|
111
288
|
'run:status': {
|
|
112
289
|
script: 'scripts/run/run-status-cli.ts',
|
|
113
290
|
description: 'Bundle a run’s read-only status: issue state, cost verdict, carry counters',
|
|
114
291
|
category: 'AI tools',
|
|
115
292
|
reference: ['<issue> [--repo <owner/repo>]', 'automation', ['network']],
|
|
293
|
+
usage: {
|
|
294
|
+
examples: [ISSUE, { arguments: '<N> --repo <owner/repo>', note: 'a cross-repo child' }],
|
|
295
|
+
},
|
|
116
296
|
},
|
|
117
297
|
'run:next': {
|
|
118
298
|
script: 'scripts/run/run-next-cli.ts',
|
|
119
299
|
description: 'Print the next step a fullrun takes, computed from the run’s state',
|
|
120
300
|
category: 'AI tools',
|
|
121
301
|
reference: ['<issue>', 'automation', ['network']],
|
|
302
|
+
usage: { examples: [ISSUE] },
|
|
122
303
|
},
|
|
123
304
|
'run:step': {
|
|
124
305
|
script: 'scripts/run/run-step-cli.ts',
|
|
@@ -126,6 +307,13 @@ const RUN_COMMANDS: Record<string, CommandEntry> = {
|
|
|
126
307
|
'Print the run’s next single action, computed from the event stream, carry record and issue state',
|
|
127
308
|
category: 'AI tools',
|
|
128
309
|
reference: ['[<issue>]', 'automation', ['network', 'files']],
|
|
310
|
+
is_bundled: true,
|
|
311
|
+
usage: {
|
|
312
|
+
examples: [
|
|
313
|
+
{ arguments: '<N>', note: "the run's next action for issue <N>" },
|
|
314
|
+
{ arguments: '', note: "the `backlogrun` parent's next action" },
|
|
315
|
+
],
|
|
316
|
+
},
|
|
129
317
|
},
|
|
130
318
|
}
|
|
131
319
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
const OUTPUT = '--output <path>'
|
|
4
|
+
const OWNER = '--owner <pid>'
|
|
5
|
+
const ISSUE_WITH_OPTIONS = '<issue> [options]'
|
|
6
|
+
|
|
7
|
+
// The merge, review-launch, tail and ship commands, split out of `josh-commands-ai.ts` when each
|
|
8
|
+
// command's usage moved onto its entry (#4185). `AI_COMMANDS` spreads this in at the same place, so the
|
|
9
|
+
// map keeps its order.
|
|
10
|
+
|
|
11
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
12
|
+
const SHIP_COMMANDS: Record<string, CommandEntry> = {
|
|
13
|
+
'run:merge': {
|
|
14
|
+
script: 'scripts/run/merge/run-merge-main.ts',
|
|
15
|
+
description:
|
|
16
|
+
'Collapse a backlogrun merge event into one call: confirm the child, do the post-merge steps, offer the next child',
|
|
17
|
+
category: 'AI tools',
|
|
18
|
+
reference: [ISSUE_WITH_OPTIONS, 'automation', ['git', 'network']],
|
|
19
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
20
|
+
usage: {
|
|
21
|
+
examples: [
|
|
22
|
+
{
|
|
23
|
+
arguments: '<N> --epic <E> --repo <owner/repo> --owner "$PPID" --output <path>',
|
|
24
|
+
note: 'prints the next child number, or a verdict',
|
|
25
|
+
},
|
|
26
|
+
{ arguments: '<N> --owner "$PPID"', note: 'backlog offer (no epic)' },
|
|
27
|
+
],
|
|
28
|
+
flags: [
|
|
29
|
+
{
|
|
30
|
+
names: ['--epic <E>', '--repo <owner/repo>'],
|
|
31
|
+
description: "offer the epic's next children; omit both for the opted-in backlog.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
names: [OWNER],
|
|
35
|
+
description: "the parent's process, so the carry count respects the ownership guard.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
names: [OUTPUT],
|
|
39
|
+
description: 'the transcript the outage split reads; absent, it is off.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
names: ['--driver'],
|
|
43
|
+
description:
|
|
44
|
+
'the caller is `backlog:drive`, which has no context to cut and asks `backlog:offer` itself, so the merge is never handed back `over` and answers `deferred` in place of the next offer.',
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
'run:review': {
|
|
50
|
+
script: 'scripts/run/review/run-review-cli.ts',
|
|
51
|
+
description:
|
|
52
|
+
'Start the gate in the background and print the /code-review brief in one call so the two overlap (--join to join the gate and check its verdict)',
|
|
53
|
+
category: 'AI tools',
|
|
54
|
+
reference: ['[--join]', 'automation', ['processes', 'files']],
|
|
55
|
+
usage: {
|
|
56
|
+
examples: [
|
|
57
|
+
{
|
|
58
|
+
arguments: '',
|
|
59
|
+
note: 'detach the gate, print the brief; then launch the /code-review subagent',
|
|
60
|
+
},
|
|
61
|
+
{ arguments: '--join', note: 'after the review returns: join the gate, check its verdict' },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
// The post-merge sequence a run closed on, folded into one call: commit the
|
|
66
|
+
// observation ledger, read the completion citations and decide the release scope. `observations:flush`,
|
|
67
|
+
// `issue:cite` and `release:scope` were three round trips re-billing the run's full context each.
|
|
68
|
+
'run:tail': {
|
|
69
|
+
script: 'scripts/run/run-tail-cli.ts',
|
|
70
|
+
description:
|
|
71
|
+
'Close a run in one call: return to the default branch, commit the observation ledger, read the citations, decide the release scope',
|
|
72
|
+
category: 'AI tools',
|
|
73
|
+
reference: ['[<issue> ...]', 'automation', ['git', 'network']],
|
|
74
|
+
usage: {
|
|
75
|
+
examples: [
|
|
76
|
+
{ arguments: '<N>', note: 'the closed issue' },
|
|
77
|
+
{ arguments: '<N> <follow-up-N>', note: 'and a follow-up filed this run' },
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
// The commit-to-report region a run ships a change on, folded into one call:
|
|
82
|
+
// the gate, the commit/push/PR (`git -y`), the CI-wait merge (`followup`) and the report bookkeeping
|
|
83
|
+
// (`run:tail`) were four round trips re-billing the run's full context each. It stops at the first
|
|
84
|
+
// failed step and names it, so the run reads only the step to fix.
|
|
85
|
+
ship: {
|
|
86
|
+
script: 'scripts/run/ship/run-ship-cli.ts',
|
|
87
|
+
// `.env` rather than the ambient environment: parking a lane child past the relaunch cap
|
|
88
|
+
// sends a Telegram warning, which needs the credentials.
|
|
89
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
90
|
+
description:
|
|
91
|
+
'Ship a change in one call: gate, commit/push/PR, the CI-wait merge and the report bookkeeping, stopping at the first failed step',
|
|
92
|
+
category: 'AI tools',
|
|
93
|
+
reference: [
|
|
94
|
+
'"<title> #<N>" [<follow-up-N> ...] [--cite <N>] [--review] [--detach] [--body-file <path>] [--notify-message <text> | --notify-message-file <path>] | --log <N>',
|
|
95
|
+
'automation',
|
|
96
|
+
['git', 'network'],
|
|
97
|
+
],
|
|
98
|
+
usage: {
|
|
99
|
+
examples: [
|
|
100
|
+
{ arguments: '"<title> #<N>" --body-file <evidence.md>' },
|
|
101
|
+
{ arguments: '"<title> #<N>" --review', note: 'both review rounds inside the ship' },
|
|
102
|
+
{ arguments: '--detach "<title> #<N>"', note: 'hand the ship to a supervisor' },
|
|
103
|
+
{ arguments: '--log <N>', note: "a detached ship's log" },
|
|
104
|
+
],
|
|
105
|
+
flags: [
|
|
106
|
+
{
|
|
107
|
+
names: ['--body-file <path>'],
|
|
108
|
+
description:
|
|
109
|
+
'the PR body carrying the live-execution evidence `followup` gates on; forwarded to `git -y` alone.',
|
|
110
|
+
},
|
|
111
|
+
{ names: ['--notify-message <text>'], description: 'forwarded to `followup` alone.' },
|
|
112
|
+
{
|
|
113
|
+
names: ['--review'],
|
|
114
|
+
description:
|
|
115
|
+
'runs review round 1 beside the gate, and round 2 after the commit when `review:round2` requires it; a High or an unfixed Medium stops the ship.',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
names: ['--detach'],
|
|
119
|
+
description:
|
|
120
|
+
'hands the ship to a supervisor (implied in a lane child); a stop emits `ship-stop` (`--log <N>`). The preflight, type check, unused exports, cspell and guard tests run before the hand-off, the checks even after a preflight refusal, so one stop reports every failure; a stop returns to the same session.',
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
'run:event': {
|
|
126
|
+
script: 'scripts/run/event/run-event-cli.ts',
|
|
127
|
+
description:
|
|
128
|
+
'Append to, read or watch the run’s append-only event stream (--append <kind> <text> | --from|--follow <n> | --watch [<n>] | --last)',
|
|
129
|
+
category: 'AI tools',
|
|
130
|
+
reference: [
|
|
131
|
+
'--append <kind> <text> | --from|--follow <n> | --watch [<n>] | --last',
|
|
132
|
+
'automation',
|
|
133
|
+
['files'],
|
|
134
|
+
],
|
|
135
|
+
usage: {
|
|
136
|
+
examples: [
|
|
137
|
+
{ arguments: '--append <kind> <text>', note: 'append one event; prints its position' },
|
|
138
|
+
{ arguments: '--from <position>', note: 'every event after <position>, in order (JSON)' },
|
|
139
|
+
{
|
|
140
|
+
arguments: '--follow <position>',
|
|
141
|
+
note: 'new events, waiting for one; position on stderr',
|
|
142
|
+
},
|
|
143
|
+
{ arguments: '--watch [<position>]', note: 'every new event, rendered, until interrupted' },
|
|
144
|
+
{ arguments: '--last', note: 'the newest event alone' },
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
'run:report': {
|
|
149
|
+
script: 'scripts/run/run-report-cli.ts',
|
|
150
|
+
// `.env` rather than the ambient environment: `--handoff` sends the hand-off confirmation.
|
|
151
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
152
|
+
description:
|
|
153
|
+
'Generate the session-facing report for this invocation from the run’s event stream (merges, parks, cuts) with the release tail — the same text josh notify sends',
|
|
154
|
+
category: 'AI tools',
|
|
155
|
+
reference: ['[--handoff]', 'automation', ['files', 'network']],
|
|
156
|
+
usage: {
|
|
157
|
+
examples: [
|
|
158
|
+
{ arguments: '', note: 'print the report; the same text josh notify sends' },
|
|
159
|
+
{
|
|
160
|
+
arguments: '--handoff',
|
|
161
|
+
note: 'print the backlogrun hand-off report and send it as the confirmation',
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
}
|
|
167
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
168
|
+
|
|
169
|
+
export { SHIP_COMMANDS }
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { CommandEntry } from './josh-command-types'
|
|
2
2
|
|
|
3
|
+
const MACHINE_READABLE = 'the verdict and the reason, machine-readable'
|
|
4
|
+
const JSON_FLAG = '--json'
|
|
5
|
+
|
|
3
6
|
// The `split:assess` command registry, split out of `josh-commands-ai.ts` so that file stays under its
|
|
4
7
|
// 300-code-line limit, exactly as `LANE_COMMANDS` was for the same reason. It is spread into `AI_COMMANDS` so the command stays grouped with the other
|
|
5
8
|
// decision oracles under the 'AI tools' category.
|
|
@@ -12,6 +15,12 @@ const SPLIT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
12
15
|
'Measure the branch change size (tests excluded) and answer the split assessment size question: split | single',
|
|
13
16
|
category: 'AI tools',
|
|
14
17
|
reference: ['[--json]', 'automation', ['none']],
|
|
18
|
+
usage: {
|
|
19
|
+
examples: [
|
|
20
|
+
{ arguments: '', note: '→ single' },
|
|
21
|
+
{ arguments: JSON_FLAG, note: MACHINE_READABLE },
|
|
22
|
+
],
|
|
23
|
+
},
|
|
15
24
|
},
|
|
16
25
|
}
|
|
17
26
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -3,16 +3,33 @@ import type { CommandEntry } from './josh-command-types'
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
4
|
const VERSIONING_COMMANDS: Record<string, CommandEntry> = {
|
|
5
5
|
bump: {
|
|
6
|
-
script: 'scripts/version/bump-version.ts',
|
|
6
|
+
script: 'scripts/version/bump-version-main.ts',
|
|
7
7
|
description: 'Bump package version',
|
|
8
8
|
category: 'Versioning',
|
|
9
9
|
reference: ['[major|minor|patch]', 'maintainer', ['files']],
|
|
10
|
+
usage: { examples: [{ arguments: 'major' }, { arguments: 'minor' }, { arguments: 'patch' }] },
|
|
10
11
|
},
|
|
11
12
|
version: {
|
|
12
13
|
script: 'scripts/version/version-check.ts',
|
|
13
14
|
description: 'Show kit versions; --upgrade updates the global and project install',
|
|
14
15
|
category: 'Versioning',
|
|
15
16
|
reference: ['[--upgrade]', 'developer', ['files', 'network', 'processes']],
|
|
17
|
+
usage: {
|
|
18
|
+
examples: [
|
|
19
|
+
{ arguments: '' },
|
|
20
|
+
{
|
|
21
|
+
arguments: '--upgrade',
|
|
22
|
+
note: 'upgrade global + project to latest, then re-run fix-gh-packages',
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
flags: [
|
|
26
|
+
{
|
|
27
|
+
names: ['--upgrade'],
|
|
28
|
+
description:
|
|
29
|
+
'upgrade both the global install (`pnpm add -g`) and the project devDependency (`pnpm add -D` + `fix-gh-packages`); already-current or not-installed targets are skipped.',
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
16
33
|
},
|
|
17
34
|
// A `script` entry, not a shell one: script paths resolve against the kit package root, so this
|
|
18
35
|
// keeps working from a consumer repo where the file lives under node_modules. The registry
|
|
@@ -24,6 +41,7 @@ const VERSIONING_COMMANDS: Record<string, CommandEntry> = {
|
|
|
24
41
|
'Check that every published dependency range still resolves for a consumer and no peer range falls below an installed toolkit',
|
|
25
42
|
category: 'Versioning',
|
|
26
43
|
reference: ['', 'developer', ['network']],
|
|
44
|
+
usage: { examples: [{ arguments: '' }] },
|
|
27
45
|
},
|
|
28
46
|
// The one place that decides a version. A `script` entry for the same
|
|
29
47
|
// reason `ranges` is one: script paths resolve against the kit package root, so it keeps working
|
|
@@ -33,15 +51,39 @@ const VERSIONING_COMMANDS: Record<string, CommandEntry> = {
|
|
|
33
51
|
description: 'Release the merges main has taken since the version last changed',
|
|
34
52
|
category: 'Versioning',
|
|
35
53
|
reference: ['[--dry-run]', 'maintainer', ['git', 'network', 'release']],
|
|
54
|
+
usage: {
|
|
55
|
+
examples: [
|
|
56
|
+
{ arguments: '' },
|
|
57
|
+
{ arguments: '--dry-run', note: 'count and report, write nothing' },
|
|
58
|
+
],
|
|
59
|
+
flags: [
|
|
60
|
+
{
|
|
61
|
+
names: ['--dry-run'],
|
|
62
|
+
description:
|
|
63
|
+
'count and report only; writes nothing, fetches nothing, and creates no work tree.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
names: ['--help', '-h'],
|
|
67
|
+
description:
|
|
68
|
+
'print the usage line and exit 0 without fetching or releasing. Any other argument is refused with the usage line and a non-zero exit, before anything is fetched.',
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
36
72
|
},
|
|
37
73
|
// The read-only half of the one above. `release --dry-run` cannot
|
|
38
74
|
// answer this question: it refuses off the default branch and on a dirty tree, which is every
|
|
39
75
|
// position a run asks it from. A `script` entry for the same reason `release` is one.
|
|
40
76
|
'release:scope': {
|
|
41
|
-
script: 'scripts/release/release-scope-
|
|
77
|
+
script: 'scripts/release/release-scope-main.ts',
|
|
42
78
|
description: 'Say whether a release is owed, from the unreleased merges on main',
|
|
43
79
|
category: 'Versioning',
|
|
44
80
|
reference: ['[--json]', 'automation', ['none']],
|
|
81
|
+
usage: {
|
|
82
|
+
examples: [
|
|
83
|
+
{ arguments: '', note: '→ required | skip | unknown' },
|
|
84
|
+
{ arguments: '--json', note: '{"scope":"…","reason":"…"} on one line' },
|
|
85
|
+
],
|
|
86
|
+
},
|
|
45
87
|
},
|
|
46
88
|
// Run by the release workflows, kit's and the one sync distributes, after a tag has published.
|
|
47
89
|
// Settings come from the environment, so the workflow decides them.
|
|
@@ -50,6 +92,11 @@ const VERSIONING_COMMANDS: Record<string, CommandEntry> = {
|
|
|
50
92
|
description: 'Create the GitHub Release for a published tag, with generated notes',
|
|
51
93
|
category: 'Versioning',
|
|
52
94
|
reference: ['', 'automation', ['network', 'release']],
|
|
95
|
+
usage: {
|
|
96
|
+
examples: [
|
|
97
|
+
{ arguments: '', note: 'run by CI with GH_TOKEN, RELEASE_TAG and GITHUB_REPOSITORY set' },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
53
100
|
},
|
|
54
101
|
}
|
|
55
102
|
/* eslint-enable @typescript-eslint/naming-convention */
|