@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,6 +1,12 @@
|
|
|
1
|
+
import { ports } from '#ports'
|
|
1
2
|
import { core_budget } from '#scripts/gate/core-budget'
|
|
2
3
|
import { gate_plan } from '#scripts/gate/gate-plan'
|
|
3
4
|
import { GATE_COMMAND, type CommandEntry } from './josh-command-types'
|
|
5
|
+
import { AGENT_HOOK_COMMANDS } from './josh-commands-agent-hooks'
|
|
6
|
+
|
|
7
|
+
const NARROWED = { arguments: 'scripts/thing.ts', note: 'narrow by the given files instead' }
|
|
8
|
+
// The unseeded ports are read from `ports/index.js`, their one definition (#818).
|
|
9
|
+
const UNSEEDED: Readonly<Record<string, string | undefined>> = {}
|
|
4
10
|
|
|
5
11
|
const FILE_ARGUMENTS = '[files...]'
|
|
6
12
|
const REQUIRED_FILE_ARGUMENTS = '<files...>'
|
|
@@ -11,24 +17,41 @@ const PATH_ARGUMENTS = '<path...>'
|
|
|
11
17
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
12
18
|
const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
13
19
|
'pr:classification': {
|
|
14
|
-
script: 'scripts/ci/pr-classification.ts',
|
|
20
|
+
script: 'scripts/ci/pr-classification-main.ts',
|
|
15
21
|
description: 'Require one release classification on a pull request',
|
|
16
22
|
category: 'Development',
|
|
17
23
|
reference: ['', 'automation', ['none']],
|
|
24
|
+
usage: {
|
|
25
|
+
examples: [{ arguments: '', note: 'run by CI on a pull request; fails without one label' }],
|
|
26
|
+
},
|
|
18
27
|
},
|
|
19
28
|
[GATE_COMMAND]: {
|
|
20
29
|
script: 'scripts/gate/verification-gate.ts',
|
|
21
30
|
description: 'Run lint, type check, spell check and unit tests concurrently',
|
|
22
31
|
category: 'Development',
|
|
23
32
|
reference: ['[--verbose|--force|--no-unit]', 'developer', ['files', 'processes']],
|
|
33
|
+
usage: {
|
|
34
|
+
examples: [
|
|
35
|
+
{ arguments: '' },
|
|
36
|
+
{ arguments: '--verbose', note: "every check's output, passing ones included" },
|
|
37
|
+
{ arguments: '--force', note: 're-run even on a tree already recorded green' },
|
|
38
|
+
{ arguments: '--no-unit', note: 'the static checks only (CI only)' },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
24
41
|
},
|
|
25
42
|
lint: {
|
|
26
|
-
script: 'scripts/lint/lint-parallel.ts',
|
|
43
|
+
script: 'scripts/lint/lint-parallel-main.ts',
|
|
27
44
|
description: 'Check code with prettier and eslint (skips a tool a basic project lacks)',
|
|
28
45
|
category: 'Development',
|
|
29
|
-
reference: ['', 'developer', ['processes']],
|
|
46
|
+
reference: ['[--changed]', 'developer', ['processes']],
|
|
30
47
|
core_weight: core_budget.CORE_WEIGHTS.lint,
|
|
31
48
|
memory_mb: core_budget.MEMORY_MB.lint,
|
|
49
|
+
usage: {
|
|
50
|
+
examples: [
|
|
51
|
+
{ arguments: '' },
|
|
52
|
+
{ arguments: '--changed', note: "the branch's changed files — the gate's form" },
|
|
53
|
+
],
|
|
54
|
+
},
|
|
32
55
|
},
|
|
33
56
|
'lint:related': {
|
|
34
57
|
script: 'scripts/lint/lint-related.ts',
|
|
@@ -37,6 +60,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
37
60
|
reference: [FILE_ARGUMENTS, 'developer', ['processes']],
|
|
38
61
|
core_weight: core_budget.CORE_WEIGHTS.lint,
|
|
39
62
|
memory_mb: core_budget.MEMORY_MB.lint,
|
|
63
|
+
usage: { examples: [{ arguments: '' }, NARROWED] },
|
|
40
64
|
},
|
|
41
65
|
lines: {
|
|
42
66
|
script: 'scripts/lines/lines-command.ts',
|
|
@@ -45,9 +69,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
45
69
|
reference: [REQUIRED_FILE_ARGUMENTS, 'developer', ['none']],
|
|
46
70
|
core_weight: core_budget.CORE_WEIGHTS.eslint_scan,
|
|
47
71
|
memory_mb: core_budget.MEMORY_MB.eslint_scan,
|
|
72
|
+
usage: {
|
|
73
|
+
examples: [{ arguments: 'scripts/hooks/format-edited-file.ts scripts/josh/josh-logic.ts' }],
|
|
74
|
+
},
|
|
48
75
|
},
|
|
49
76
|
metrics: {
|
|
50
|
-
script: '
|
|
77
|
+
script: 'tools/metrics/metrics-command.ts',
|
|
51
78
|
description:
|
|
52
79
|
'Print repository-wide quality totals and durations, and fail when a total grew past the merge-base or a duration past its baseline',
|
|
53
80
|
category: 'Development',
|
|
@@ -59,6 +86,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
59
86
|
core_weight: core_budget.CORE_WEIGHTS.eslint_scan,
|
|
60
87
|
memory_mb: core_budget.MEMORY_MB.eslint_scan,
|
|
61
88
|
is_kit_only: true,
|
|
89
|
+
usage: {
|
|
90
|
+
examples: [
|
|
91
|
+
{ arguments: '', note: "print the totals and check them against the merge-base's" },
|
|
92
|
+
{ arguments: '--accept --reason "<why>"', note: "record this branch's growth and why" },
|
|
93
|
+
],
|
|
94
|
+
},
|
|
62
95
|
},
|
|
63
96
|
'refactor:scan': {
|
|
64
97
|
script: 'scripts/refactor/refactor-scan-cli.ts',
|
|
@@ -68,6 +101,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
68
101
|
reference: ['', 'automation', ['processes']],
|
|
69
102
|
core_weight: core_budget.CORE_WEIGHTS.eslint_scan,
|
|
70
103
|
memory_mb: core_budget.MEMORY_MB.eslint_scan,
|
|
104
|
+
usage: { examples: [{ arguments: '' }] },
|
|
71
105
|
},
|
|
72
106
|
bytes: {
|
|
73
107
|
script: 'scripts/lines/bytes-command.ts',
|
|
@@ -75,6 +109,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
75
109
|
"Print an agent-read document's byte size against its ceiling and the headroom left",
|
|
76
110
|
category: 'Development',
|
|
77
111
|
reference: [REQUIRED_FILE_ARGUMENTS, 'developer', ['none']],
|
|
112
|
+
usage: {
|
|
113
|
+
examples: [
|
|
114
|
+
{ arguments: 'docs/josh-commands.md', note: 'one document' },
|
|
115
|
+
{ arguments: '', note: 'scan: every budgeted document near its ceiling' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
78
118
|
},
|
|
79
119
|
'rule:value': {
|
|
80
120
|
script: 'scripts/rules/rule-value-cli.ts',
|
|
@@ -82,6 +122,15 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
82
122
|
"Print each delivered rule's unaided compliance — runs reached, kept rate, refusals",
|
|
83
123
|
category: 'AI tools',
|
|
84
124
|
reference: ['[--refresh]', 'developer', ['files']],
|
|
125
|
+
usage: {
|
|
126
|
+
examples: [
|
|
127
|
+
{ arguments: '' },
|
|
128
|
+
{
|
|
129
|
+
arguments: '--refresh',
|
|
130
|
+
note: 'write the reading to the loop-head cache instead of stdout',
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
},
|
|
85
134
|
},
|
|
86
135
|
'rule:list': {
|
|
87
136
|
script: 'scripts/rules/rule-list.ts',
|
|
@@ -89,73 +138,16 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
89
138
|
"Print the trigger-delivered rules — each one's source, firing call and silent turn — from the guard rows",
|
|
90
139
|
category: 'AI tools',
|
|
91
140
|
reference: ['', 'automation', ['none']],
|
|
141
|
+
usage: { examples: [{ arguments: '', note: 'print every trigger-delivered rule' }] },
|
|
92
142
|
},
|
|
93
143
|
format: {
|
|
94
144
|
script: 'scripts/lint/format.ts',
|
|
95
145
|
description: 'Format code with prettier and eslint (skips a tool a basic project lacks)',
|
|
96
146
|
category: 'Development',
|
|
97
147
|
reference: ['', 'developer', ['files', 'processes']],
|
|
148
|
+
usage: { examples: [{ arguments: '' }] },
|
|
98
149
|
},
|
|
99
|
-
|
|
100
|
-
script: 'scripts/hooks/format-edited-cli.ts',
|
|
101
|
-
description: 'Claude Code hook: format the file just edited (reads the tool call on stdin)',
|
|
102
|
-
category: 'Development',
|
|
103
|
-
reference: ['', 'automation', ['files', 'processes']],
|
|
104
|
-
},
|
|
105
|
-
'batch:guard': {
|
|
106
|
-
script: 'scripts/hooks/batch-guard.ts',
|
|
107
|
-
description:
|
|
108
|
-
'Claude Code hook: refuse a third consecutive single-call turn (reads the tool call on stdin)',
|
|
109
|
-
category: 'Development',
|
|
110
|
-
reference: ['', 'automation', ['none']],
|
|
111
|
-
// **No `tsx_arguments`, deliberately.** `JOSH_BATCH_GUARD` is a per-machine preference kept in
|
|
112
|
-
// `.env`, which every other command reads through `OPTIONAL_ENV_FILE_FLAGS` — but declaring any
|
|
113
|
-
// `tsx_arguments` disqualifies a command from in-process dispatch (`josh-in-process.ts`), and
|
|
114
|
-
// this one runs before every `Bash` call, where a second ~0.16 s tsx start is not affordable.
|
|
115
|
-
// The script calls `process.loadEnvFile` itself instead, which is
|
|
116
|
-
// node's own `--env-file` parser with node's own precedence.
|
|
117
|
-
},
|
|
118
|
-
'pretool:guard': {
|
|
119
|
-
script: 'scripts/hooks/pretool-guard-cli.ts',
|
|
120
|
-
description:
|
|
121
|
-
'Claude Code hook: the batch, investigation and rule guards in one process (reads the tool call on stdin)',
|
|
122
|
-
category: 'Development',
|
|
123
|
-
reference: ['', 'automation', ['none']],
|
|
124
|
-
// **No `tsx_arguments`, deliberately**, the same as `batch:guard` above: this is the one
|
|
125
|
-
// PreToolUse hook consumers run before every guarded call, so it must stay eligible for
|
|
126
|
-
// in-process dispatch rather than pay a second tsx start. Each guard it composes loads `.env`
|
|
127
|
-
// through the shared loader.
|
|
128
|
-
},
|
|
129
|
-
'stop:guard': {
|
|
130
|
-
script: 'scripts/hooks/stop-guard.ts',
|
|
131
|
-
description:
|
|
132
|
-
'Claude Code Stop hook: send the hold notify, release the hold and print the issue citations itself; block on the rules that need the model (reads the Stop payload on stdin)',
|
|
133
|
-
category: 'Development',
|
|
134
|
-
reference: ['', 'automation', ['none']],
|
|
135
|
-
// **No `tsx_arguments`, deliberately**, the same as `pretool:guard` above: this runs at every
|
|
136
|
-
// turn end, so it must stay eligible for in-process dispatch rather than pay a second tsx start.
|
|
137
|
-
// It loads `.env` through the shared `hook-decision.ts` loader.
|
|
138
|
-
},
|
|
139
|
-
'session:lang': {
|
|
140
|
-
script: 'scripts/josh/session-language-cli.ts',
|
|
141
|
-
description:
|
|
142
|
-
'Claude Code hook: print a non-default JOSH_SESSION_LANG for the session context, and the run:board reply rule while a backlogrun is live (otherwise nothing)',
|
|
143
|
-
category: 'Development',
|
|
144
|
-
reference: ['', 'automation', ['none']],
|
|
145
|
-
// **No `tsx_arguments`, deliberately**, the same as `batch:guard` above: this runs on every
|
|
146
|
-
// `UserPromptSubmit`, so it must stay eligible for in-process dispatch rather than pay a second
|
|
147
|
-
// tsx start each turn. It calls `process.loadEnvFile` itself through the shared loader.
|
|
148
|
-
},
|
|
149
|
-
'codex:hook-adapter': {
|
|
150
|
-
script: 'scripts/hooks/codex-hook-adapter.ts',
|
|
151
|
-
description:
|
|
152
|
-
'Codex hook: run the pretool or posttool guard on a Codex payload (reads the tool call on stdin)',
|
|
153
|
-
category: 'Development',
|
|
154
|
-
reference: ['<pretool|posttool>', 'automation', ['none']],
|
|
155
|
-
// The live-source fallback `scripts/hooks/run-hook.sh` derives from the `codex-hook-adapter`
|
|
156
|
-
// bundle name. **No `tsx_arguments`**, the same as `pretool:guard`
|
|
157
|
-
// above: it runs before every guarded Codex call.
|
|
158
|
-
},
|
|
150
|
+
...AGENT_HOOK_COMMANDS,
|
|
159
151
|
'cspell:dot': {
|
|
160
152
|
script: 'scripts/lint/cspell-cached.ts',
|
|
161
153
|
description: 'Run spell check including dotfiles',
|
|
@@ -163,6 +155,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
163
155
|
reference: ['', 'developer', ['processes']],
|
|
164
156
|
core_weight: core_budget.CORE_WEIGHTS.spell_check,
|
|
165
157
|
memory_mb: core_budget.MEMORY_MB.spell_check,
|
|
158
|
+
usage: { examples: [{ arguments: '', note: 'includes dotfiles' }] },
|
|
166
159
|
},
|
|
167
160
|
behavior: {
|
|
168
161
|
script: 'scripts/behavior/behavior-cli.ts',
|
|
@@ -170,6 +163,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
170
163
|
"Check the current run's recorded transcript against the behavior assertions (no model call)",
|
|
171
164
|
category: 'Development',
|
|
172
165
|
reference: ['', 'developer', ['files']],
|
|
166
|
+
usage: { examples: [{ arguments: '' }] },
|
|
173
167
|
},
|
|
174
168
|
'exports:unused': {
|
|
175
169
|
script: 'scripts/exports/unused-members-cli.ts',
|
|
@@ -177,23 +171,30 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
177
171
|
'Report exported namespace members nothing reads (kit only; a consumer project skips it)',
|
|
178
172
|
category: 'Development',
|
|
179
173
|
reference: ['', 'developer', ['none']],
|
|
174
|
+
usage: { examples: [{ arguments: '' }] },
|
|
180
175
|
},
|
|
181
176
|
'test:unit': {
|
|
182
|
-
script: 'scripts/test/test-unit-guard.ts',
|
|
177
|
+
script: 'scripts/test/test-unit-guard-main.ts',
|
|
183
178
|
description:
|
|
184
179
|
'Run unit tests with Vitest (without Vitest: a basic project runs its own test script, others skip; fails when Vitest has no tests)',
|
|
185
180
|
category: 'Development',
|
|
186
181
|
reference: [FILTER_ARGUMENTS, 'developer', ['processes']],
|
|
187
|
-
|
|
188
|
-
|
|
182
|
+
...gate_plan.DIRECT_UNIT_CLAIM,
|
|
183
|
+
usage: { examples: [{ arguments: '' }] },
|
|
189
184
|
},
|
|
190
185
|
'test:related': {
|
|
191
|
-
script: 'scripts/test/test-related.ts',
|
|
186
|
+
script: 'scripts/test/test-related-main.ts',
|
|
192
187
|
description: 'Run only the unit tests related to the changed files (full suite on fallback)',
|
|
193
188
|
category: 'Development',
|
|
194
189
|
reference: [FILE_ARGUMENTS, 'developer', ['processes']],
|
|
195
|
-
|
|
196
|
-
|
|
190
|
+
...gate_plan.DIRECT_UNIT_CLAIM,
|
|
191
|
+
usage: {
|
|
192
|
+
examples: [
|
|
193
|
+
{ arguments: '' },
|
|
194
|
+
NARROWED,
|
|
195
|
+
{ arguments: '--silent', note: 'flags are forwarded to vitest' },
|
|
196
|
+
],
|
|
197
|
+
},
|
|
197
198
|
},
|
|
198
199
|
'test:declared': {
|
|
199
200
|
script: 'scripts/test/test-declared.ts',
|
|
@@ -201,13 +202,35 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
201
202
|
'Report whether the working-tree change needs a test (required/exempt/satisfied); --match checks Step 0 declarations on stdin',
|
|
202
203
|
category: 'Development',
|
|
203
204
|
reference: [MATCH_ARGUMENTS, 'developer', ['processes']],
|
|
205
|
+
usage: {
|
|
206
|
+
examples: [
|
|
207
|
+
{ arguments: '' },
|
|
208
|
+
{ arguments: '--match', note: 'check Step 0 declarations on stdin' },
|
|
209
|
+
{ arguments: '--help', note: 'print usage, including the --match stdin form' },
|
|
210
|
+
],
|
|
211
|
+
},
|
|
204
212
|
},
|
|
205
213
|
'test:red': {
|
|
206
|
-
script: 'scripts/test/test-red.ts',
|
|
214
|
+
script: 'scripts/test/test-red-main.ts',
|
|
207
215
|
description:
|
|
208
216
|
'Run the changed unit tests against the pre-fix tree (merge-base worktree) and report red/green/no-test/test-only',
|
|
209
217
|
category: 'Development',
|
|
210
218
|
reference: ['', 'developer', ['git', 'processes']],
|
|
219
|
+
usage: { examples: [{ arguments: '', note: 'red, green, no-test or test-only' }] },
|
|
220
|
+
},
|
|
221
|
+
'test:pinned': {
|
|
222
|
+
script: 'scripts/test/test-pinned-main.ts',
|
|
223
|
+
description:
|
|
224
|
+
'Revert each changed non-test hunk in a HEAD worktree, run its related tests, and list the hunks no test went red on',
|
|
225
|
+
category: 'Development',
|
|
226
|
+
reference: ['[--max <n>]', 'developer', ['git', 'processes']],
|
|
227
|
+
...gate_plan.DIRECT_UNIT_CLAIM,
|
|
228
|
+
usage: {
|
|
229
|
+
examples: [
|
|
230
|
+
{ arguments: '', note: 'unpinned / unchecked <file>:<line> lines' },
|
|
231
|
+
{ arguments: '--max 5', note: 'check at most 5 hunks; the rest print as unchecked' },
|
|
232
|
+
],
|
|
233
|
+
},
|
|
211
234
|
},
|
|
212
235
|
disposition: {
|
|
213
236
|
script: 'scripts/review/disposition-cli.ts',
|
|
@@ -215,18 +238,21 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
215
238
|
'Say whether a review finding reaches a runtime path (runtime) or is inert (non-runtime)',
|
|
216
239
|
category: 'AI tools',
|
|
217
240
|
reference: [PATH_ARGUMENTS, 'automation', ['none']],
|
|
241
|
+
usage: { examples: [{ arguments: '<path...>', note: '→ runtime | non-runtime' }] },
|
|
218
242
|
},
|
|
219
243
|
'e2e:retry-check': {
|
|
220
244
|
script: 'scripts/test/e2e-retry-check.ts',
|
|
221
245
|
description: 'Report whether the preview server crashed during a failed E2E attempt (CI)',
|
|
222
246
|
category: 'Development',
|
|
223
247
|
reference: ['', 'automation', ['none']],
|
|
248
|
+
usage: { examples: [{ arguments: '' }] },
|
|
224
249
|
},
|
|
225
250
|
'test:e2e': {
|
|
226
251
|
script: 'scripts/test/test-e2e-guard.ts',
|
|
227
252
|
description: 'Run E2E tests with Playwright (skips when absent or no e2e files)',
|
|
228
253
|
category: 'Development',
|
|
229
254
|
reference: [FILTER_ARGUMENTS, 'developer', ['processes']],
|
|
255
|
+
usage: { examples: [{ arguments: '' }] },
|
|
230
256
|
},
|
|
231
257
|
test: {
|
|
232
258
|
shell: ['sh', '-c', 'pnpm josh test:unit && pnpm josh test:e2e'],
|
|
@@ -234,6 +260,7 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
234
260
|
category: 'Development',
|
|
235
261
|
reference: ['', 'developer', ['processes']],
|
|
236
262
|
argument_targets: ['test:unit', 'test:e2e'],
|
|
263
|
+
usage: { examples: [{ arguments: '' }] },
|
|
237
264
|
},
|
|
238
265
|
check: {
|
|
239
266
|
script: 'scripts/gate/type-check-command.ts',
|
|
@@ -242,12 +269,25 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
242
269
|
reference: ['[arguments...]', 'developer', ['processes']],
|
|
243
270
|
core_weight: core_budget.CORE_WEIGHTS.type_check,
|
|
244
271
|
memory_mb: core_budget.MEMORY_MB.type_check,
|
|
272
|
+
usage: { examples: [{ arguments: '' }] },
|
|
245
273
|
},
|
|
246
274
|
port: {
|
|
247
275
|
script: 'scripts/ports/port-command.ts',
|
|
248
276
|
description: 'Print the PORT_SEED-resolved dev or preview port',
|
|
249
277
|
category: 'Development',
|
|
250
278
|
reference: ['<dev|preview>', 'developer', ['none']],
|
|
279
|
+
usage: {
|
|
280
|
+
examples: [
|
|
281
|
+
{
|
|
282
|
+
arguments: 'dev',
|
|
283
|
+
note: `${String(ports.resolve_development_port(UNSEEDED))} with no seed set`,
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
arguments: 'preview',
|
|
287
|
+
note: `${String(ports.resolve_preview_port(UNSEEDED))} with no seed set`,
|
|
288
|
+
},
|
|
289
|
+
],
|
|
290
|
+
},
|
|
251
291
|
},
|
|
252
292
|
}
|
|
253
293
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -9,17 +9,31 @@ import type { CommandEntry } from './josh-command-types'
|
|
|
9
9
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
10
10
|
const DOCUMENT_COMMANDS: Record<string, CommandEntry> = {
|
|
11
11
|
'doc:section': {
|
|
12
|
-
script: 'scripts/document/document-section-
|
|
12
|
+
script: 'scripts/document/document-section-main.ts',
|
|
13
13
|
description: 'Print one section of a markdown document, for a `file.md` → "Heading" reference',
|
|
14
14
|
category: 'AI tools',
|
|
15
15
|
reference: ['<file> <heading>', 'automation', ['none']],
|
|
16
16
|
is_bundled: true,
|
|
17
|
+
usage: {
|
|
18
|
+
examples: [
|
|
19
|
+
{ arguments: '<file.md> "<heading>"' },
|
|
20
|
+
{ arguments: 'backlogrun.md "The hand-off"' },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
17
23
|
},
|
|
18
24
|
'read:set': {
|
|
19
25
|
script: 'scripts/document/read-set-cli.ts',
|
|
20
26
|
description: 'Print what an entry point reads before it starts, and what that read costs',
|
|
21
27
|
category: 'AI tools',
|
|
22
28
|
reference: ['[<entry>] [--json]', 'automation', ['none']],
|
|
29
|
+
is_bundled: true,
|
|
30
|
+
usage: {
|
|
31
|
+
examples: [
|
|
32
|
+
{ arguments: '', note: 'every entry point' },
|
|
33
|
+
{ arguments: 'backlogrun', note: 'one of them' },
|
|
34
|
+
{ arguments: 'backlogrun --json' },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
23
37
|
},
|
|
24
38
|
'doc:read': {
|
|
25
39
|
script: 'scripts/document/document-read-cli.ts',
|
|
@@ -27,18 +41,46 @@ const DOCUMENT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
27
41
|
'Read a whole document safely: print it, or point at the Read tool when over the Bash cap',
|
|
28
42
|
category: 'AI tools',
|
|
29
43
|
reference: ['<file>', 'automation', ['none']],
|
|
44
|
+
is_bundled: true,
|
|
45
|
+
usage: {
|
|
46
|
+
examples: [
|
|
47
|
+
{ arguments: 'CLAUDE.md', note: 'under the cap: prints the document' },
|
|
48
|
+
{ arguments: 'backlogrun.md', note: 'over the cap: prints a directive, no content' },
|
|
49
|
+
],
|
|
50
|
+
},
|
|
30
51
|
},
|
|
31
52
|
'read:files': {
|
|
32
53
|
script: 'scripts/document/read-files-cli.ts',
|
|
33
54
|
description: 'Read several files in one call so edit targets fold into one turn',
|
|
34
55
|
category: 'AI tools',
|
|
35
56
|
reference: ['<path> [<path> ...]', 'automation', ['none']],
|
|
57
|
+
usage: {
|
|
58
|
+
examples: [
|
|
59
|
+
{
|
|
60
|
+
arguments: 'a.ts b.ts c.ts',
|
|
61
|
+
note: 'under the cap: prints each file under its own header',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
arguments: 'a.ts big.ts',
|
|
65
|
+
note: 'over the cap: prints a directive to Read them in one turn, no content',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
36
69
|
},
|
|
37
70
|
'edit:files': {
|
|
38
71
|
script: 'scripts/document/edit-files-cli.ts',
|
|
39
72
|
description: 'Apply several content-addressed edits from a plan in one call',
|
|
40
73
|
category: 'AI tools',
|
|
41
74
|
reference: ['<plan-path | ->', 'automation', ['none']],
|
|
75
|
+
usage: {
|
|
76
|
+
examples: [
|
|
77
|
+
{
|
|
78
|
+
arguments: 'plan.txt',
|
|
79
|
+
note: 'applies every block in the plan, one line per edit reporting the outcome',
|
|
80
|
+
},
|
|
81
|
+
{ arguments: "- <<'EDITS'", note: 'plan from stdin, then EDITS' },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
42
84
|
},
|
|
43
85
|
}
|
|
44
86
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
const REPO = '--repo <owner/repo>'
|
|
4
|
+
const EXCLUDE = '--exclude <N>'
|
|
5
|
+
const JUST_MERGED = 'skip the issue just merged'
|
|
6
|
+
|
|
7
|
+
// The epic and auto-ok commands, split out of `josh-commands-ai.ts` when each command's usage moved onto
|
|
8
|
+
// its entry (#4185). `AI_COMMANDS` spreads this in at the same place, so the map keeps its order.
|
|
9
|
+
|
|
10
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
11
|
+
const EPIC_COMMANDS: Record<string, CommandEntry> = {
|
|
12
|
+
epic: {
|
|
13
|
+
script: 'scripts/epic/epic.ts',
|
|
14
|
+
description: 'Create an epic issue from its child issue numbers',
|
|
15
|
+
category: 'AI tools',
|
|
16
|
+
reference: ['<title> <issue...> [--ordered]', 'automation', ['network']],
|
|
17
|
+
usage: {
|
|
18
|
+
examples: [
|
|
19
|
+
{ arguments: '"Epic: split the parser work" 101 102 103' },
|
|
20
|
+
{ arguments: '"Epic: staged rollout" 101 102 --ordered' },
|
|
21
|
+
{ arguments: '"Epic: ..." 101 102 --rationale-file rationale.md' },
|
|
22
|
+
{ arguments: '--promote 858 101 102 103', note: 'turn an existing issue into an epic' },
|
|
23
|
+
{ arguments: '--add 893 894', note: 'track #894, declaring no order for it' },
|
|
24
|
+
{ arguments: '--add 893 894 --before 891', note: '#894 must finish before #891' },
|
|
25
|
+
{ arguments: '--add 893 894 --after 890', note: '#894 starts once #890 is done' },
|
|
26
|
+
{ arguments: '--add 893 894 --decision-file why.md', note: '…and record why, in one call' },
|
|
27
|
+
{
|
|
28
|
+
arguments: '--reconcile 2184',
|
|
29
|
+
note: 'rewrite the body to match the recorded blocked-by, and record any order the body declared',
|
|
30
|
+
},
|
|
31
|
+
{ arguments: '--decide 893 894 --decision-file why.md' },
|
|
32
|
+
],
|
|
33
|
+
flags: [
|
|
34
|
+
{
|
|
35
|
+
names: ['--ordered'],
|
|
36
|
+
description:
|
|
37
|
+
'argument order is the dependency order; writes the arrow chain, records the matching `blocked-by` relations, and adds a `### Declared order` entry under `## Decisions`.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
names: ['--rationale-file <path|->'],
|
|
41
|
+
description: 'split rationale prose (`-` reads stdin).',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
names: ['--origin <owner/repo#N>'],
|
|
45
|
+
description: 'backlink when the split originated in another repository.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
names: ['--before <M>'],
|
|
49
|
+
description:
|
|
50
|
+
'with `--add`: insert before `#M`, re-pointing what `#M` was waiting on so the chain is never broken.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
names: ['--after <M>'],
|
|
54
|
+
description:
|
|
55
|
+
'with `--add`: start after `#M`; branches when `#M` already has a successor, extends when it is a tail.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
names: ['--order-before <M>', '--order-after <M>'],
|
|
59
|
+
description: 'with `--add`: move the task-list row only; write no `blocked-by` relation.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
names: ['--decision-file <path|->'],
|
|
63
|
+
description: 'with `--add`: record why the child was placed.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
names: ['--remove <E> <M> <N> [<N2> …]'],
|
|
67
|
+
description:
|
|
68
|
+
'delete a declared order from the body and the relations; each consecutive pair is one link.',
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
'epic:next': {
|
|
74
|
+
script: 'scripts/epic/epic-next-main.ts',
|
|
75
|
+
description: "List an epic's runnable children, bundled per repository",
|
|
76
|
+
category: 'AI tools',
|
|
77
|
+
reference: ['<epic>... [--repo <owner/repo>] [--lanes]', 'automation', ['network']],
|
|
78
|
+
usage: {
|
|
79
|
+
examples: [
|
|
80
|
+
{ arguments: '858' },
|
|
81
|
+
{
|
|
82
|
+
arguments: '858 --repo joshuafolkken/kit',
|
|
83
|
+
note: 'just the next child for one repository',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
arguments: '858 --repo joshuafolkken/kit --lanes',
|
|
87
|
+
note: 'one child per free lane there',
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
flags: [
|
|
91
|
+
{
|
|
92
|
+
names: [REPO],
|
|
93
|
+
description:
|
|
94
|
+
'answer for one repository; stdout carries one token (an issue number, or `wait`/`stop`/`complete`), everything else on stderr.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
names: ['--lanes'],
|
|
98
|
+
description:
|
|
99
|
+
'print one issue number per free lane (requires `--repo`); `JOSH_LANE_LIMIT` sets the ceiling, default 4. Prints `triage` instead while any candidate carries neither `run:solo` nor `run:lane` (the triage gate in `josh backlog:next`).',
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
'epic:bundle': {
|
|
105
|
+
script: 'scripts/epic/epic-bundle-main.ts',
|
|
106
|
+
description: 'Say whether a newly filed issue belongs with ones already in the backlog',
|
|
107
|
+
category: 'AI tools',
|
|
108
|
+
reference: ['<issue> [--apply]', 'automation', ['network']],
|
|
109
|
+
usage: {
|
|
110
|
+
examples: [{ arguments: '874' }, { arguments: '874 --apply', note: 'write it' }],
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
'epic:audit': {
|
|
114
|
+
script: 'scripts/epic/epic-audit-cli.ts',
|
|
115
|
+
description: "Audit an epic's children against each other for contradictions",
|
|
116
|
+
category: 'AI tools',
|
|
117
|
+
reference: ['<epic>', 'automation', ['network']],
|
|
118
|
+
usage: { examples: [{ arguments: '858' }] },
|
|
119
|
+
},
|
|
120
|
+
'epic:check': {
|
|
121
|
+
script: 'scripts/epic/epic-check.ts',
|
|
122
|
+
description: 'Check an epic issue against the tracking requirements',
|
|
123
|
+
category: 'AI tools',
|
|
124
|
+
reference: ['<epic>', 'automation', ['network']],
|
|
125
|
+
usage: { examples: [{ arguments: '700' }] },
|
|
126
|
+
},
|
|
127
|
+
'auto-ok:next': {
|
|
128
|
+
script: 'scripts/auto-ok/auto-ok-main.ts',
|
|
129
|
+
description: 'Print the next opted-in issue an unattended run may pick up outside an epic',
|
|
130
|
+
category: 'AI tools',
|
|
131
|
+
reference: ['[--exclude <n>[,<n>...]] [--label <name>]', 'automation', ['network']],
|
|
132
|
+
usage: {
|
|
133
|
+
examples: [{ arguments: '' }, { arguments: '--exclude 906', note: JUST_MERGED }],
|
|
134
|
+
flags: [
|
|
135
|
+
{
|
|
136
|
+
names: [EXCLUDE],
|
|
137
|
+
description: 'drop issues from the answer; comma-separated, repeatable.',
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
'auto-ok:judge': {
|
|
143
|
+
script: 'scripts/auto-ok/auto-ok-judge-cli.ts',
|
|
144
|
+
description:
|
|
145
|
+
'List the open issues backlogrun owes an auto-ok judgement, or record one (--apply / --decline)',
|
|
146
|
+
category: 'AI tools',
|
|
147
|
+
reference: [
|
|
148
|
+
'[--apply <n> (--lane | --solo) | --decline <n> --reason <text>]',
|
|
149
|
+
'automation',
|
|
150
|
+
['network'],
|
|
151
|
+
],
|
|
152
|
+
usage: {
|
|
153
|
+
examples: [
|
|
154
|
+
{ arguments: '', note: 'the issues that still owe a judgement' },
|
|
155
|
+
{ arguments: '--apply 912 --lane', note: 'opt it in, with its run label' },
|
|
156
|
+
{ arguments: '--decline 913 --reason "<why>"', note: 'record why it stays out' },
|
|
157
|
+
],
|
|
158
|
+
flags: [
|
|
159
|
+
{
|
|
160
|
+
names: ['--apply <N> --lane|--solo'],
|
|
161
|
+
description:
|
|
162
|
+
'checks the exclusions again against the labels as they stand, records the judgement on the issue, then applies the run label and then `auto-ok`.',
|
|
163
|
+
},
|
|
164
|
+
{ names: ['--decline <N> --reason <text>'], description: 'applies nothing.' },
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
}
|
|
169
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
170
|
+
|
|
171
|
+
export { EPIC_COMMANDS }
|
|
@@ -6,42 +6,65 @@ const HOOKS_COMMANDS: Record<string, CommandEntry> = {
|
|
|
6
6
|
description: 'Git hook: block commits to main',
|
|
7
7
|
category: 'Git hooks',
|
|
8
8
|
reference: ['', 'automation', ['none']],
|
|
9
|
+
usage: { examples: [{ arguments: '', note: 'run by the pre-commit hook' }] },
|
|
9
10
|
},
|
|
10
11
|
'check-commit-message': {
|
|
11
|
-
script: 'scripts/hooks/check-commit-message.ts',
|
|
12
|
+
script: 'scripts/hooks/check-commit-message-main.ts',
|
|
12
13
|
description: 'Git hook: validate commit message',
|
|
13
14
|
category: 'Git hooks',
|
|
14
15
|
reference: ['[<message-file>]', 'automation', ['none']],
|
|
16
|
+
usage: {
|
|
17
|
+
examples: [{ arguments: '.git/COMMIT_EDITMSG', note: 'run by the commit-msg hook' }],
|
|
18
|
+
},
|
|
15
19
|
},
|
|
16
20
|
'secretlint-scan': {
|
|
17
21
|
script: 'scripts/security/secretlint-scan.ts',
|
|
18
22
|
description: 'Git hook: scan staged files for secrets',
|
|
19
23
|
category: 'Git hooks',
|
|
20
24
|
reference: ['[paths...]', 'automation', ['none']],
|
|
25
|
+
usage: {
|
|
26
|
+
examples: [{ arguments: 'src/app.ts .env.example', note: 'the staged paths' }],
|
|
27
|
+
},
|
|
21
28
|
},
|
|
22
29
|
'pre-commit-lint': {
|
|
23
30
|
script: 'scripts/hooks/pre-commit-lint.ts',
|
|
24
31
|
description: 'Git hook: run cspell, prettier or eslint over staged files from a content cache',
|
|
25
32
|
category: 'Git hooks',
|
|
26
33
|
reference: ['<cspell|prettier|eslint> [paths...]', 'automation', ['files']],
|
|
34
|
+
usage: {
|
|
35
|
+
examples: [
|
|
36
|
+
{ arguments: 'cspell src/app.ts' },
|
|
37
|
+
{ arguments: 'prettier src/app.ts' },
|
|
38
|
+
{ arguments: 'eslint src/app.ts' },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
27
41
|
},
|
|
28
42
|
'pre-push-unit': {
|
|
29
43
|
script: 'scripts/hooks/pre-push-unit.ts',
|
|
30
44
|
description: 'Git hook: run unit tests, reusing a green gate recorded on the pushed tree',
|
|
31
45
|
category: 'Git hooks',
|
|
32
46
|
reference: ['', 'automation', ['processes']],
|
|
47
|
+
usage: { examples: [{ arguments: '' }] },
|
|
33
48
|
},
|
|
34
49
|
'reserved-run': {
|
|
35
50
|
script: 'scripts/hooks/reserved-run.ts',
|
|
36
51
|
description: 'Git hook: run a command while holding a place in the machine-wide core budget',
|
|
37
52
|
category: 'Git hooks',
|
|
38
|
-
reference: ['<weight> -- <command...>', 'automation', ['processes']],
|
|
53
|
+
reference: ['<weight> [--memory <MB>] -- <command...>', 'automation', ['processes']],
|
|
54
|
+
usage: {
|
|
55
|
+
examples: [
|
|
56
|
+
{ arguments: '2 -- pnpm install', note: 'hold 2 cores while installing' },
|
|
57
|
+
{ arguments: '1 -- pnpm josh audit', note: 'hold 1 core while scanning' },
|
|
58
|
+
{ arguments: '1 --memory 3000 -- <command>', note: 'hold 3,000 MB beside the core' },
|
|
59
|
+
],
|
|
60
|
+
},
|
|
39
61
|
},
|
|
40
62
|
'pre-commit-type-check': {
|
|
41
63
|
script: 'scripts/gate/pre-commit-type-check.ts',
|
|
42
64
|
description: 'Git hook: type-check, reusing a green gate recorded on the committed tree',
|
|
43
65
|
category: 'Git hooks',
|
|
44
66
|
reference: ['', 'automation', ['processes']],
|
|
67
|
+
usage: { examples: [{ arguments: '' }] },
|
|
45
68
|
},
|
|
46
69
|
}
|
|
47
70
|
|