@joshuafolkken/kit 1.1471.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 +6 -6
- package/.claude/skills/epic-commands/SKILL.md +26 -77
- package/.claude/skills/epic-commands/epic-bundle.md +12 -6
- package/.claude/skills/epic-commands/execution-waves.md +1 -2
- package/.claude/skills/verify-ui/SKILL.md +1 -2
- package/.claude/skills/workflow-commands/SKILL.md +12 -14
- package/.claude/skills/workflow-commands/background-commands.md +8 -12
- package/.claude/skills/workflow-commands/backlogrun-child.md +13 -18
- package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +23 -28
- package/.claude/skills/workflow-commands/backlogrun-park.md +16 -31
- package/.claude/skills/workflow-commands/backlogrun-progress.md +12 -21
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +12 -12
- package/.claude/skills/workflow-commands/backlogrun-steps.md +12 -20
- package/.claude/skills/workflow-commands/backlogrun.md +32 -51
- package/.claude/skills/workflow-commands/chain-rule.md +18 -11
- package/.claude/skills/workflow-commands/delegation.md +13 -8
- package/.claude/skills/workflow-commands/entry-sequence.md +10 -12
- package/.claude/skills/workflow-commands/followup.md +10 -35
- package/.claude/skills/workflow-commands/fullrun-steps.md +38 -49
- package/.claude/skills/workflow-commands/fullrun.md +6 -8
- package/.claude/skills/workflow-commands/halfrun.md +20 -32
- package/.claude/skills/workflow-commands/into-target.md +1 -2
- package/.claude/skills/workflow-commands/issue-comments.md +19 -15
- package/.claude/skills/workflow-commands/issue-scout.md +5 -4
- package/.claude/skills/workflow-commands/kickoff.md +24 -23
- package/.claude/skills/workflow-commands/latest-gate.md +9 -18
- package/.claude/skills/workflow-commands/needs-human-review.md +11 -19
- package/.claude/skills/workflow-commands/observation-filing.md +4 -50
- package/.claude/skills/workflow-commands/observation-ledger.md +5 -10
- package/.claude/skills/workflow-commands/pre-gate-cut.md +22 -44
- package/.claude/skills/workflow-commands/prerequisite.md +11 -18
- package/.claude/skills/workflow-commands/progress-watcher.md +3 -8
- package/.claude/skills/workflow-commands/prrun.md +6 -12
- package/.claude/skills/workflow-commands/retrospective.md +5 -5
- package/.claude/skills/workflow-commands/split-assessment.md +14 -4
- package/.claude/skills/workflow-commands/target-repository.md +1 -2
- package/.claude/skills/workflow-commands/working-tree-hold.md +11 -13
- package/.codex/hooks.json +6 -6
- package/.github/actions/setup-node/action.yml +10 -1
- 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 +121 -11
- package/.github/workflows/publish.yml +10 -3
- package/.github/workflows/sonar-qube.yml +1 -0
- package/.prettierignore +2 -0
- package/.vscode/tasks.json +1 -2
- package/CLAUDE.md +4 -8
- package/README.md +4 -2
- package/SECURITY.md +1 -1
- package/cspell/index.yaml +7 -0
- package/dist/CLAUDE.md +4 -8
- package/dist/commands/document-read-cli.js +882 -0
- package/dist/commands/{document-section-cli.js → document-section-main.js} +137 -62
- 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-AS74OU3D.js → chunk-PT5R6UJD.js} +4582 -2118
- package/dist/hooks/chunk-TUIFS5E7.js +72 -0
- package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
- package/dist/hooks/{chunk-E7OIKX5Z.js → chunk-WR2KQAYZ.js} +1863 -382
- package/dist/hooks/{chunk-KC5AK2GF.js → chunk-XGBNSWEI.js} +248 -46
- package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
- package/dist/hooks/codex-hook-adapter.js +10 -19
- package/dist/hooks/format-edited.js +5 -5
- package/dist/hooks/inputs.json +436 -257
- package/dist/hooks/pretool-guard.js +7 -22
- package/dist/hooks/session-lang.js +380 -42
- package/dist/hooks/stop-guard.js +8711 -782
- package/dist/josh.js +5263 -997
- 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 +8 -4
- package/package.json +17 -53
- package/pnpm-workspace.yaml +4 -2
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +1 -9
- package/prompts/collaboration-workflow/gh-rest.md +1 -2
- package/prompts/collaboration-workflow/issue-citation.md +2 -4
- package/prompts/collaboration-workflow/issue-template.md +42 -17
- package/prompts/collaboration-workflow/lane-instructions.md +34 -0
- package/prompts/collaboration-workflow/measurement.md +37 -0
- package/prompts/collaboration-workflow/operating-rules.md +6 -12
- package/prompts/collaboration-workflow/output-bounds.md +4 -9
- package/prompts/collaboration-workflow/overview.md +1 -1
- package/prompts/collaboration-workflow/plan-comment.md +3 -42
- package/prompts/collaboration-workflow/principles.md +19 -8
- package/prompts/collaboration-workflow/report-format.md +37 -57
- package/prompts/collaboration-workflow/residency.md +12 -8
- package/prompts/collaboration-workflow/rule-delivery.md +3 -11
- package/prompts/collaboration-workflow/shell-body.md +8 -18
- package/prompts/collaboration-workflow/turn-batching.md +4 -6
- package/prompts/collaboration-workflow/upstream-interrupt.md +16 -6
- package/prompts/collaboration-workflow/wip-cap.md +7 -7
- package/prompts/collaboration-workflow.md +4 -7
- package/prompts/refactoring.md +1 -1
- package/prompts/review-rubric.md +1 -2
- package/prompts/review.md +45 -26
- package/prompts/testing-guide.md +10 -45
- package/scripts/agent/agent-argv.ts +20 -4
- package/scripts/agent/agent-event.ts +15 -15
- package/scripts/agent/agent-exit-record.ts +13 -1
- package/scripts/agent/agent-role-profile.ts +101 -45
- package/scripts/agent/agent-safe-text.ts +60 -0
- package/scripts/agent/api-auth.ts +41 -0
- package/scripts/agent/api-outage.ts +1 -1
- package/scripts/agent/claude-agent-argv.ts +14 -0
- package/scripts/agent/codex-agent-argv.ts +2 -0
- package/scripts/agent/lane-instructions.ts +144 -0
- 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 +6 -7
- 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 +54 -7
- 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 +39 -8
- 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 +69 -0
- 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 +137 -18
- 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 +2 -10
- package/scripts/delegation/investigation-guard.ts +15 -73
- package/scripts/delegation/investigation-reads.ts +3 -5
- 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 +9 -6
- package/scripts/document/document-scan.ts +1 -1
- package/scripts/document/document-section-cli.ts +17 -13
- package/scripts/document/document-section-main.ts +12 -0
- package/scripts/document/entry-read-budget.ts +2 -2
- package/scripts/document/read-set-cli.ts +4 -1
- package/scripts/epic/epic-audit-cli.ts +12 -6
- package/scripts/epic/epic-audit-orphans.ts +5 -8
- package/scripts/epic/epic-audit.ts +52 -1
- package/scripts/epic/epic-bundle-apply.ts +137 -0
- package/scripts/epic/epic-bundle-cli.ts +32 -121
- package/scripts/epic/epic-bundle-evidence.ts +49 -26
- package/scripts/epic/epic-bundle-format.ts +116 -0
- package/scripts/epic/epic-bundle-main.ts +17 -0
- package/scripts/epic/epic-bundle-referenced.ts +14 -3
- package/scripts/epic/epic-bundle.ts +17 -9
- 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 +31 -60
- 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 +73 -0
- package/scripts/gate/check-reuse.ts +141 -0
- 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 +150 -119
- package/scripts/gate/core-wait-record.ts +48 -0
- package/scripts/gate/core-wait.ts +162 -0
- package/scripts/gate/core-weights.ts +86 -0
- package/scripts/gate/free-cores.ts +72 -0
- package/scripts/gate/gate-ledger.ts +49 -7
- package/scripts/gate/gate-plan.ts +44 -15
- package/scripts/gate/gate-report.ts +29 -4
- package/scripts/gate/gate-run-steps.ts +195 -0
- package/scripts/gate/gate-skip.ts +12 -2
- package/scripts/gate/gate-steps.ts +12 -1
- package/scripts/gate/held-mark.ts +55 -0
- package/scripts/gate/input-fingerprint.ts +42 -0
- package/scripts/gate/machine-capacity.ts +124 -31
- package/scripts/gate/moved-paths.ts +67 -0
- package/scripts/gate/pre-commit-type-check.ts +14 -1
- 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 +65 -129
- 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-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +77 -17
- 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/gh/git-pr.ts +13 -1
- 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 +78 -0
- package/scripts/git/main-merge.ts +39 -14
- 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 +5 -16
- 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 +118 -0
- package/scripts/hooks/pre-push-unit.ts +4 -2
- package/scripts/hooks/pretool-guard-cli.ts +1 -8
- package/scripts/hooks/pretool-guard.ts +57 -69
- package/scripts/hooks/reserved-run.ts +67 -8
- package/scripts/hooks/run-hook.sh +18 -11
- package/scripts/hooks/shell-rules-notice.ts +37 -0
- package/scripts/hooks/stop-actions.ts +185 -0
- package/scripts/hooks/stop-guard.ts +72 -27
- package/scripts/init/hook-command-rewrite.ts +19 -5
- package/scripts/init/hook-launch.ts +15 -12
- 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 +60 -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 +33 -22
- package/scripts/issue/issue-cite-main.ts +12 -0
- package/scripts/issue/issue-classification.ts +13 -8
- 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 +7 -13
- 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 +19 -25
- 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/markdown-section.ts +19 -5
- 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 +82 -0
- package/scripts/josh/file-map-stamp.ts +49 -16
- package/scripts/josh/hook-decision.ts +32 -20
- package/scripts/josh/josh-command-map.ts +6 -1
- package/scripts/josh/josh-command-types.ts +65 -13
- package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
- package/scripts/josh/josh-commands-ai.ts +169 -157
- 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 +31 -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 +112 -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 +149 -6
- package/scripts/josh/josh-logic.ts +11 -27
- package/scripts/josh/josh.ts +14 -5
- package/scripts/josh/package-directory.ts +18 -0
- 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 +19 -22
- package/scripts/lane/lane-check-stats.ts +97 -0
- package/scripts/lane/lane-child-invocation.ts +43 -4
- 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 +27 -6
- package/scripts/lane/lane-gap-stats.ts +156 -0
- package/scripts/lane/lane-guard-policy.ts +2 -2
- package/scripts/lane/lane-handoff.ts +76 -1
- package/scripts/lane/lane-held-stats.ts +129 -0
- package/scripts/lane/lane-install.ts +16 -15
- 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 +108 -97
- package/scripts/lane/lane-limit-cli.ts +19 -9
- package/scripts/lane/lane-measure-cli.ts +58 -10
- 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-preserve.ts +29 -1
- 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 +33 -10
- package/scripts/lane/lane-residents.ts +162 -0
- package/scripts/lane/lane-restart.ts +26 -27
- 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 +160 -0
- package/scripts/lane/lane-session-broker.ts +134 -134
- 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 +72 -0
- package/scripts/lane/lane-withdraw.ts +183 -0
- 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 +14 -5
- 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 +72 -33
- package/scripts/lint/lint-related-scope.ts +33 -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 +12 -11
- 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 +4 -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-check.ts +61 -0
- package/scripts/review/acceptance-map.ts +206 -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 +82 -16
- 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 +67 -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 +90 -3
- 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 +8 -0
- package/scripts/rules/firing-point.ts +6 -5
- package/scripts/rules/git-argv.ts +72 -14
- package/scripts/rules/git-force.ts +12 -2
- package/scripts/rules/guard-remedy.ts +121 -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 +76 -7
- 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/last-prompt.ts +50 -5
- package/scripts/rules/oracle-consulted.ts +10 -0
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/oracle-list-cli.ts +7 -0
- package/scripts/rules/permission-guards.ts +3 -0
- package/scripts/rules/piped-verification.ts +4 -2
- 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 +12 -28
- package/scripts/rules/rule-rewrite.ts +114 -0
- package/scripts/rules/rule-value-cache.ts +4 -9
- package/scripts/rules/rule-value-cli.ts +51 -32
- package/scripts/rules/rule-value.ts +8 -2
- package/scripts/rules/shell-segments.ts +50 -0
- package/scripts/rules/stop-decision.ts +77 -0
- package/scripts/rules/stop-rule-rows.ts +64 -0
- package/scripts/rules/stop-rules.ts +150 -51
- package/scripts/rules/tail-commands.ts +15 -1
- 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 -30
- package/scripts/run/board/run-board-closed.ts +8 -2
- 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 +119 -31
- package/scripts/run/board/run-board-header.ts +86 -21
- 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 +118 -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 +240 -61
- 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 +153 -13
- package/scripts/run/board/run-board-reason.ts +238 -45
- 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 -47
- 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 +125 -0
- package/scripts/run/board/run-board-render.ts +206 -259
- package/scripts/run/board/run-board-roots.ts +54 -0
- package/scripts/run/board/run-board-row-yield.ts +10 -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 +23 -29
- package/scripts/run/board/run-board-status.ts +206 -79
- package/scripts/run/board/run-board-thanks-read.ts +2 -2
- package/scripts/run/board/run-board-tick.ts +123 -104
- 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-cli.ts +3 -2
- package/scripts/run/cut/run-cut-handoff.ts +2 -2
- package/scripts/run/cut/run-cut-report.ts +16 -0
- package/scripts/run/detached-launch.ts +23 -4
- package/scripts/run/entry/run-entry-cli.ts +8 -1
- 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 +7 -10
- package/scripts/run/event/run-event-scope.ts +20 -2
- package/scripts/run/event/run-event-stream-emit.ts +78 -11
- package/scripts/run/event/run-event-stream.ts +37 -7
- 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-hold-session.ts +46 -0
- package/scripts/run/hold/run-hold.ts +7 -1
- package/scripts/run/hold/run-stop-notify.ts +183 -0
- package/scripts/run/launch-priority.ts +32 -0
- package/scripts/run/merge/run-merge-auth.ts +31 -0
- package/scripts/run/merge/run-merge-cli.ts +72 -107
- 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 +123 -0
- package/scripts/run/merge/run-merge-steps.ts +128 -83
- package/scripts/run/merge/run-merge.ts +53 -40
- 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 +61 -30
- package/scripts/run/run-next.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +2 -2
- package/scripts/run/run-poll-hook.ts +157 -0
- 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-cli.ts +22 -15
- package/scripts/run/run-step-section.ts +85 -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 +67 -151
- package/scripts/run/ship/run-ship-detach.ts +27 -7
- package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
- package/scripts/run/ship/run-ship-next.ts +27 -3
- package/scripts/run/ship/run-ship-overlap.ts +232 -0
- 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 +102 -27
- package/scripts/run/ship/run-ship-preflight.ts +161 -30
- 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 +123 -15
- package/scripts/run/ship/run-ship-review-steps.ts +105 -149
- 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-context.ts +206 -0
- package/scripts/run/ship/run-ship-stop-text.ts +11 -6
- package/scripts/run/ship/run-ship-sync.ts +57 -12
- 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 +55 -6
- 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 +54 -21
- 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 +71 -137
- 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 +126 -14
- package/scripts/time-runtime/time-spans.ts +1 -0
- package/scripts/time-runtime/time-tool-call.ts +7 -0
- 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 +10 -3
- 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-43ZHT22P.js +0 -3495
- package/dist/hooks/chunk-CDY4NFQG.js +0 -15
- package/dist/hooks/chunk-EUMACUK2.js +0 -2038
- package/dist/hooks/chunk-H5HVWYXK.js +0 -359
- package/dist/hooks/chunk-IIGFYXKC.js +0 -7104
- package/dist/hooks/chunk-IX6TTTI6.js +0 -95
- package/dist/hooks/chunk-J47HU5H5.js +0 -237
- package/dist/hooks/chunk-K4EOONYM.js +0 -45
- package/dist/hooks/chunk-K4LMBQC2.js +0 -68
- package/dist/hooks/chunk-SHGPANFB.js +0 -56
- package/dist/hooks/chunk-YHBZAJSV.js +0 -79
- package/dist/hooks/chunk-YYPI7SJZ.js +0 -131
- package/dist/hooks/duplicate-read-guard.js +0 -30
- package/dist/hooks/investigation-guard.js +0 -32
- 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/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 -282
- package/scripts/rules/rule-registry.ts +0 -109
- package/scripts/run/run-stranded-cli.ts +0 -27
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
2
|
|
|
3
|
+
const CHECK = '--check'
|
|
4
|
+
const JSON_FLAG = '--json'
|
|
5
|
+
|
|
3
6
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
7
|
const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
5
8
|
doctor: {
|
|
@@ -9,6 +12,21 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
9
12
|
category: 'Maintenance',
|
|
10
13
|
reference: ['[--fix]', 'developer', ['files']],
|
|
11
14
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
15
|
+
usage: {
|
|
16
|
+
examples: [
|
|
17
|
+
{ arguments: '', note: 'diagnose only' },
|
|
18
|
+
{ arguments: '--fix', note: 'reclaim the global josh by removing a stale kit shim' },
|
|
19
|
+
{ arguments: '--ports', note: 'also print the per-repository port-seed table' },
|
|
20
|
+
],
|
|
21
|
+
flags: [
|
|
22
|
+
{
|
|
23
|
+
names: ['--fix'],
|
|
24
|
+
description:
|
|
25
|
+
'remove a shadowing binary **only if it is a kit shim** (its body references `@joshuafolkken/kit` or the removed `install-bin` script); any other binary is left and reported for manual review. Also the one-shot recovery for an old project that re-created the global shim.',
|
|
26
|
+
},
|
|
27
|
+
{ names: ['--ports'], description: 'additionally print the port-seed table (see below).' },
|
|
28
|
+
],
|
|
29
|
+
},
|
|
12
30
|
},
|
|
13
31
|
'ruleset:check': {
|
|
14
32
|
script: 'scripts/repo/ruleset-check-cli.ts',
|
|
@@ -16,30 +34,94 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
16
34
|
"Check that the default branch requires every status check kit's workflows report (--apply adds the missing ones)",
|
|
17
35
|
category: 'Maintenance',
|
|
18
36
|
reference: ['[--apply]', 'maintainer', ['network']],
|
|
37
|
+
usage: {
|
|
38
|
+
examples: [
|
|
39
|
+
{ arguments: '', note: 'report only' },
|
|
40
|
+
{ arguments: '--apply', note: 'add the missing checks to the existing rule' },
|
|
41
|
+
],
|
|
42
|
+
flags: [
|
|
43
|
+
{
|
|
44
|
+
names: ['--apply'],
|
|
45
|
+
description:
|
|
46
|
+
"append the missing checks to the ruleset's required-checks rule (or to the branch protection's contexts). It never creates a ruleset: with none, create one under Settings → Rules → Rulesets, then rerun. Writing a repository setting needs admin access, so only this flag writes — `josh sync` and `josh doctor` never do.",
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
19
50
|
},
|
|
20
51
|
overrides: {
|
|
21
52
|
script: 'scripts/overrides/overrides-check.ts',
|
|
22
53
|
description: 'Check pnpm overrides for drift',
|
|
23
54
|
category: 'Maintenance',
|
|
24
55
|
reference: ['[--save]', 'developer', ['files']],
|
|
56
|
+
usage: {
|
|
57
|
+
examples: [
|
|
58
|
+
{ arguments: '', note: 'verify overrides unchanged' },
|
|
59
|
+
{ arguments: '--save', note: 'snapshot current merged overrides' },
|
|
60
|
+
],
|
|
61
|
+
flags: [
|
|
62
|
+
{
|
|
63
|
+
names: ['--save'],
|
|
64
|
+
description:
|
|
65
|
+
'write the current merged overrides to `.overrides-snapshot.json` (gitignored); later runs compare against it and exit non-zero on any add, removal, or change.',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
25
69
|
},
|
|
26
70
|
audit: {
|
|
27
|
-
script: 'scripts/security/security-audit.ts',
|
|
71
|
+
script: 'scripts/security/security-audit-main.ts',
|
|
28
72
|
description: 'Run security audit',
|
|
29
73
|
category: 'Maintenance',
|
|
30
74
|
reference: ['', 'developer', ['processes']],
|
|
75
|
+
usage: { examples: [{ arguments: '' }] },
|
|
76
|
+
},
|
|
77
|
+
'lockfile:policy': {
|
|
78
|
+
script: 'tools/security/lockfile-policy.ts',
|
|
79
|
+
description:
|
|
80
|
+
"Verify the lockfile against pnpm's supply-chain policy (minimumReleaseAge) when it or the policy moved from the merge-base",
|
|
81
|
+
category: 'Maintenance',
|
|
82
|
+
reference: ['', 'automation', ['network']],
|
|
83
|
+
is_kit_only: true,
|
|
84
|
+
usage: {
|
|
85
|
+
examples: [{ arguments: '', note: 'verify when the lockfile or its policy moved' }],
|
|
86
|
+
},
|
|
31
87
|
},
|
|
32
88
|
'audit:provision': {
|
|
33
|
-
script: 'scripts/security/security-audit-provision.ts',
|
|
89
|
+
script: 'scripts/security/security-audit-provision-main.ts',
|
|
34
90
|
description: 'Install the pinned osv-scanner when the audit cannot find one (no-op if present)',
|
|
35
91
|
category: 'Maintenance',
|
|
36
92
|
reference: ['', 'automation', ['files', 'network']],
|
|
93
|
+
usage: {
|
|
94
|
+
examples: [
|
|
95
|
+
{ arguments: '', note: 'no-op if a scanner is already present' },
|
|
96
|
+
{ arguments: '--force', note: 'ignore backoff, allow a longer download' },
|
|
97
|
+
],
|
|
98
|
+
flags: [
|
|
99
|
+
{
|
|
100
|
+
names: ['--force'],
|
|
101
|
+
description:
|
|
102
|
+
'ignore the 6-hour failure backoff and allow a longer download window; the command to run after fixing a network problem.',
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
},
|
|
37
106
|
},
|
|
38
107
|
'reconcile-templates': {
|
|
39
108
|
script: 'scripts/sync/reconcile-templates.ts',
|
|
40
109
|
description: 'Record template source hashes (--check to verify drift)',
|
|
41
110
|
category: 'Maintenance',
|
|
42
111
|
reference: ['', 'maintainer', ['files']],
|
|
112
|
+
usage: {
|
|
113
|
+
examples: [
|
|
114
|
+
{ arguments: '', note: 'regenerate copy templates + record tripwire hashes' },
|
|
115
|
+
{ arguments: CHECK, note: 'verify templates are in sync; non-zero on drift' },
|
|
116
|
+
],
|
|
117
|
+
flags: [
|
|
118
|
+
{
|
|
119
|
+
names: [CHECK],
|
|
120
|
+
description:
|
|
121
|
+
'verify only; exits non-zero on drift. A pre-commit hook runs this when a tracked source or copy template is staged.',
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
},
|
|
43
125
|
},
|
|
44
126
|
latest: {
|
|
45
127
|
shell: [
|
|
@@ -51,9 +133,10 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
51
133
|
category: 'Maintenance',
|
|
52
134
|
reference: ['', 'developer', ['files', 'network', 'processes']],
|
|
53
135
|
argument_targets: ['latest:corepack', 'latest:update', 'audit'],
|
|
136
|
+
usage: { examples: [{ arguments: '', note: 'full update (update + audit + pnpm)' }] },
|
|
54
137
|
},
|
|
55
138
|
'latest:scope': {
|
|
56
|
-
script: 'scripts/version/latest-scope-
|
|
139
|
+
script: 'scripts/version/latest-scope-main.ts',
|
|
57
140
|
description:
|
|
58
141
|
'Say whether this run has to update dependencies, from when josh latest last finished (--record notes a run)',
|
|
59
142
|
category: 'Maintenance',
|
|
@@ -62,18 +145,42 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
62
145
|
// where the project keeps its settings — a variable that only works when exported from the
|
|
63
146
|
// shell is one a user follows the documentation for and gets the default from, silently.
|
|
64
147
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
148
|
+
usage: {
|
|
149
|
+
examples: [
|
|
150
|
+
{ arguments: '', note: 'required or skip, the reason on stderr' },
|
|
151
|
+
{ arguments: '--record', note: 'note a finished josh latest run' },
|
|
152
|
+
{ arguments: JSON_FLAG, note: 'the verdict and the reason as JSON' },
|
|
153
|
+
],
|
|
154
|
+
flags: [
|
|
155
|
+
{
|
|
156
|
+
names: ['--record'],
|
|
157
|
+
description: 'write the completion record `josh latest` ends with.',
|
|
158
|
+
},
|
|
159
|
+
{ names: [JSON_FLAG], description: 'emit the verdict and its reason as JSON.' },
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
'latest:if-required': {
|
|
164
|
+
script: 'scripts/version/latest-if-required-cli.ts',
|
|
165
|
+
description: 'Run josh latest only when latest:scope answers required, stashing around it',
|
|
166
|
+
category: 'Maintenance',
|
|
167
|
+
reference: ['', 'automation', ['files', 'network', 'processes']],
|
|
168
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
169
|
+
usage: { examples: [{ arguments: '', note: 'stash, update, pop on required' }] },
|
|
65
170
|
},
|
|
66
171
|
'latest:guard': {
|
|
67
|
-
script: 'scripts/version/latest-lane-guard.ts',
|
|
172
|
+
script: 'scripts/version/latest-lane-guard-main.ts',
|
|
68
173
|
description: 'Refuse josh latest inside a lane (the update stamp is keyed to the project root)',
|
|
69
174
|
category: 'Maintenance',
|
|
70
175
|
reference: ['', 'automation', ['files']],
|
|
176
|
+
usage: { examples: [{ arguments: '', note: 'refuses inside a lane' }] },
|
|
71
177
|
},
|
|
72
178
|
'latest:corepack': {
|
|
73
179
|
script: 'scripts/version/latest-corepack.ts',
|
|
74
180
|
description: 'Update pnpm on the current major while preserving the integrity pin',
|
|
75
181
|
category: 'Maintenance',
|
|
76
182
|
reference: ['', 'developer', ['files', 'network']],
|
|
183
|
+
usage: { examples: [{ arguments: '', note: 'update pnpm only' }] },
|
|
77
184
|
},
|
|
78
185
|
'latest:update': {
|
|
79
186
|
script: 'scripts/version/latest-update.ts',
|
|
@@ -83,6 +190,7 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
83
190
|
// `JOSH_PLAYWRIGHT_BROWSERS` widens the browsers a Playwright bump installs, and a project
|
|
84
191
|
// keeps that setting in its `.env`.
|
|
85
192
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
193
|
+
usage: { examples: [{ arguments: '', note: 'update dependencies only' }] },
|
|
86
194
|
},
|
|
87
195
|
}
|
|
88
196
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
// `run:pause`, split out of `josh-commands-run.ts` so that file stays under its 300-code-line limit,
|
|
4
|
+
// as `PROGRESS_COMMANDS` is. `RUN_COMMANDS` spreads this in after `run:release`, so the map keeps
|
|
5
|
+
// the order the run reads them in.
|
|
6
|
+
|
|
7
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
8
|
+
const PAUSE_COMMANDS: Record<string, CommandEntry> = {
|
|
9
|
+
'run:pause': {
|
|
10
|
+
script: 'scripts/run/pause/run-pause-cli.ts',
|
|
11
|
+
description: 'Set a run aside while its prerequisite lands first',
|
|
12
|
+
category: 'AI tools',
|
|
13
|
+
// `run:release` underneath can send the stop confirmation.
|
|
14
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
15
|
+
reference: ['<issue> --for <prerequisite>', 'automation', ['git', 'network', 'files']],
|
|
16
|
+
usage: {
|
|
17
|
+
examples: [{ arguments: '1091 --for 1102', note: 'pause 1091 until 1102 lands' }],
|
|
18
|
+
flags: [
|
|
19
|
+
{
|
|
20
|
+
names: ['--for <prerequisite>'],
|
|
21
|
+
description: 'the issue that has to land first; `<issue>` is recorded blocked by it.',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
28
|
+
|
|
29
|
+
export { PAUSE_COMMANDS }
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
// The run's progress and board commands, split out of `josh-commands-run.ts` when each command's
|
|
4
|
+
// usage moved onto its entry (#4185). `RUN_COMMANDS` spreads this in at the same place, so the map
|
|
5
|
+
// keeps its order.
|
|
6
|
+
|
|
7
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
8
|
+
const PROGRESS_COMMANDS: Record<string, CommandEntry> = {
|
|
9
|
+
'run:progress': {
|
|
10
|
+
script: 'scripts/run/progress/run-progress-main.ts',
|
|
11
|
+
description: 'Report an unattended run’s progress once it has gone quiet for an interval',
|
|
12
|
+
category: 'AI tools',
|
|
13
|
+
reference: [
|
|
14
|
+
'[--once | --wait] [--interval <minutes>] [--hours <hours>] [--repo <owner/repo>] [--output <path>] | --mark | --path',
|
|
15
|
+
'automation',
|
|
16
|
+
['files'],
|
|
17
|
+
],
|
|
18
|
+
usage: {
|
|
19
|
+
examples: [
|
|
20
|
+
{ arguments: '--output <path>' },
|
|
21
|
+
{ arguments: '--once', note: 'five labelled lines now, whatever the clock says' },
|
|
22
|
+
{ arguments: '--interval 20 --repo joshuafolkken/app-kit --hours 4' },
|
|
23
|
+
],
|
|
24
|
+
flags: [
|
|
25
|
+
{
|
|
26
|
+
names: ['--mark'],
|
|
27
|
+
description:
|
|
28
|
+
'record that a real report happened without printing a line (keeps the last line for `run:wake --list`).',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
names: ['--path'],
|
|
32
|
+
description:
|
|
33
|
+
'print the ambient heartbeat log\'s path and exit. Every heartbeat line is mirrored there, so `tail -F "$(pnpm josh run:progress --path)"` follows the run across a `backlogrun` session cut. Reads no run state, so it answers in a lane child too.',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
names: ['--interval <min>'],
|
|
37
|
+
description:
|
|
38
|
+
'silence interval (default 20; also `JOSH_PROGRESS_INTERVAL_MINUTES`, then `josh.progress_interval_minutes`).',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
names: ['--wait'],
|
|
42
|
+
description:
|
|
43
|
+
'start once in the background: each report goes to the event stream and ambient log, never stdout; exits only on an arrival, `josh followup` ending the run, or `--hours`.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
names: ['--hours <n>'],
|
|
47
|
+
description: 'how long the watcher lives (default 8 with `--wait`, 1 otherwise).',
|
|
48
|
+
},
|
|
49
|
+
{ names: ['--repo <owner/name>'], description: 'scopes the read.' },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
'run:board': {
|
|
54
|
+
script: 'scripts/run/board/run-board-main.ts',
|
|
55
|
+
// `--every` pushes its frame as a Telegram, so the credentials come from `.env` as for `run:carry`.
|
|
56
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
57
|
+
description: 'Draw a live board of the running backlogrun, redrawn every second',
|
|
58
|
+
category: 'AI tools',
|
|
59
|
+
reference: ['[--once | --chat | --every <minutes>]', 'automation', ['files', 'network']],
|
|
60
|
+
usage: {
|
|
61
|
+
examples: [
|
|
62
|
+
{ arguments: '', note: 'redraw until interrupted' },
|
|
63
|
+
{ arguments: '--once', note: 'one frame, then exit' },
|
|
64
|
+
{ arguments: '--chat', note: 'one frame for a chat, recorded as a progress report' },
|
|
65
|
+
{
|
|
66
|
+
arguments: '--every 5',
|
|
67
|
+
note: 'the --chat frame as a 📊 Progress Telegram every 5 minutes, until the run ends',
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
flags: [
|
|
71
|
+
{
|
|
72
|
+
names: ['--chat'],
|
|
73
|
+
description:
|
|
74
|
+
'answers a `backlogrun` progress question: the frame `--once` draws, with only `🧠` on the machine line and no escapes; it records the report as `run:progress --mark` does.',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
names: ['--every <minutes>'],
|
|
78
|
+
description:
|
|
79
|
+
'sends the `--chat` frame as a `📊 Progress` Telegram now and every `<minutes>` until the run ends — only when a person asks for it.',
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
}
|
|
85
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
86
|
+
|
|
87
|
+
export { PROGRESS_COMMANDS }
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { CommandEntry } from './josh-command-types'
|
|
2
2
|
|
|
3
|
+
const STAGED = '--staged'
|
|
4
|
+
const JSON_FLAG = '--json'
|
|
5
|
+
const BRANCH_DIFF = 'the branch diff'
|
|
6
|
+
const STAGED_DIFF = 'the staged diff instead'
|
|
7
|
+
const PR_NUMBER = '42'
|
|
8
|
+
const DRY_RUN = '--dry-run'
|
|
9
|
+
const SKIP_PUBLISH_WAIT = '--skip-publish-wait'
|
|
10
|
+
|
|
3
11
|
// Command names are the CLI's, not TypeScript's: a scoped one carries a colon (`sync:scope`), which
|
|
4
12
|
// no identifier format allows. The same disable sits at the top of `josh-commands-maintenance.ts`
|
|
5
13
|
// for the same reason.
|
|
@@ -11,6 +19,7 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
11
19
|
description: 'Show the project profile and the reason for it',
|
|
12
20
|
category: 'Project',
|
|
13
21
|
reference: [PROFILE_ARGUMENTS, 'developer', ['files']],
|
|
22
|
+
usage: { examples: [{ arguments: '' }] },
|
|
14
23
|
},
|
|
15
24
|
start: {
|
|
16
25
|
script: 'scripts/init/start.ts',
|
|
@@ -21,13 +30,39 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
21
30
|
'developer',
|
|
22
31
|
['files', 'git', 'network', 'processes'],
|
|
23
32
|
],
|
|
33
|
+
usage: {
|
|
34
|
+
examples: [
|
|
35
|
+
{ arguments: '', note: 'asks for the profile and the repository' },
|
|
36
|
+
{
|
|
37
|
+
arguments: '--yes --github --profile basic',
|
|
38
|
+
note: 'unattended, including the GitHub repository',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
flags: [
|
|
42
|
+
{ names: ['--profile basic|full'], description: 'the profile, without asking.' },
|
|
43
|
+
{ names: ['--yes'], description: 'take the defaults — not consent to write to GitHub.' },
|
|
44
|
+
{ names: ['--github'], description: 'create the GitHub repository and push `main`.' },
|
|
45
|
+
{ names: ['--public'], description: 'create the repository public instead of private.' },
|
|
46
|
+
{
|
|
47
|
+
names: ['--init-command "<command>"'],
|
|
48
|
+
description: 'run this setup command in place of `josh init`.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
names: ['--push-preflight-command "<command>"'],
|
|
52
|
+
description:
|
|
53
|
+
'a check run before the first step when the plan pushes; a failure stops the run before it writes anything.',
|
|
54
|
+
},
|
|
55
|
+
{ names: ['--dry-run'], description: 'print the plan and change nothing.' },
|
|
56
|
+
],
|
|
57
|
+
},
|
|
24
58
|
},
|
|
25
59
|
'dogfood:commit': {
|
|
26
|
-
script: '
|
|
60
|
+
script: 'tools/dogfood/dogfood-commit-cli.ts',
|
|
27
61
|
description: "Make the first commit of a dogfood run's own kit-test-* project",
|
|
28
62
|
category: 'Project',
|
|
29
63
|
reference: ['<dir>', 'automation', ['files', 'git']],
|
|
30
64
|
is_kit_only: true,
|
|
65
|
+
usage: { examples: [{ arguments: '~/Development/kit-test-html-start' }] },
|
|
31
66
|
},
|
|
32
67
|
'fresh:run': {
|
|
33
68
|
script: 'scripts/fresh-machine/fresh-machine-cli.ts',
|
|
@@ -39,6 +74,35 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
39
74
|
'maintainer',
|
|
40
75
|
['files', 'network', 'processes'],
|
|
41
76
|
],
|
|
77
|
+
usage: {
|
|
78
|
+
examples: [
|
|
79
|
+
{ arguments: '--list', note: "kit's six patterns" },
|
|
80
|
+
{ arguments: 'kit-test-html-init', note: 'one pattern, the packed checkout' },
|
|
81
|
+
{
|
|
82
|
+
arguments: 'kit-test-html-start',
|
|
83
|
+
note: 'a GitHub pattern, the latest published version',
|
|
84
|
+
},
|
|
85
|
+
{ arguments: '--spec fresh/html-init.json', note: 'a scenario another toolkit wrote' },
|
|
86
|
+
],
|
|
87
|
+
flags: [
|
|
88
|
+
{ names: ['--list'], description: 'print the pattern names and run nothing.' },
|
|
89
|
+
{
|
|
90
|
+
names: ['--spec <file.json>'],
|
|
91
|
+
description:
|
|
92
|
+
'run the scenario in this file instead of a named pattern; the path is relative to the project root.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
names: ['--package-version <version>'],
|
|
96
|
+
description:
|
|
97
|
+
"the published version a `package_source: published` scenario installs. Default: the registry's latest version of the package the command is run from.",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
names: ['--log-dir <dir>'],
|
|
101
|
+
description: 'where the log is written. Default: `.josh/tmp/fresh-machine`.',
|
|
102
|
+
},
|
|
103
|
+
{ names: ['--rebuild'], description: 'build the machine image without the layer cache.' },
|
|
104
|
+
],
|
|
105
|
+
},
|
|
42
106
|
},
|
|
43
107
|
'auth:setup': {
|
|
44
108
|
script: 'scripts/auth/auth-setup-cli.ts',
|
|
@@ -46,9 +110,15 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
46
110
|
'Save the long-lived Claude Code token `claude setup-token` prints in the macOS keychain, for josh fresh:run',
|
|
47
111
|
category: 'Project',
|
|
48
112
|
reference: ['[--check]', 'maintainer', ['network', 'processes']],
|
|
113
|
+
usage: {
|
|
114
|
+
examples: [
|
|
115
|
+
{ arguments: '', note: 'sign in and save the token' },
|
|
116
|
+
{ arguments: '--check', note: 'ok: … saved on <date>, or missing: … and exit 1' },
|
|
117
|
+
],
|
|
118
|
+
},
|
|
49
119
|
},
|
|
50
120
|
init: {
|
|
51
|
-
script: 'scripts/init/init.ts',
|
|
121
|
+
script: 'scripts/init/init-main.ts',
|
|
52
122
|
description: 'Initialize config in a new project',
|
|
53
123
|
category: 'Project',
|
|
54
124
|
reference: [
|
|
@@ -56,30 +126,50 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
56
126
|
'developer',
|
|
57
127
|
['files', 'network', 'processes'],
|
|
58
128
|
],
|
|
129
|
+
usage: {
|
|
130
|
+
examples: [
|
|
131
|
+
{
|
|
132
|
+
arguments: '',
|
|
133
|
+
note: 'create/merge config files, install and format (--no-install skips both, --dry-run only prints the plan)',
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
59
137
|
},
|
|
60
138
|
sync: {
|
|
61
|
-
script: 'scripts/sync/sync.ts',
|
|
139
|
+
script: 'scripts/sync/sync-main.ts',
|
|
62
140
|
description: 'Sync config files',
|
|
63
141
|
category: 'Project',
|
|
64
142
|
reference: ['', 'developer', ['files']],
|
|
143
|
+
usage: { examples: [{ arguments: '', note: 'overwrite managed files' }] },
|
|
65
144
|
},
|
|
66
145
|
uninstall: {
|
|
67
146
|
script: 'scripts/uninstall/uninstall.ts',
|
|
68
147
|
description: 'Remove what kit added to a project and list what is left to review by hand',
|
|
69
148
|
category: 'Project',
|
|
70
149
|
reference: [`${PROFILE_ARGUMENTS} [--yes]`, 'developer', ['files', 'processes']],
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
150
|
+
usage: {
|
|
151
|
+
examples: [
|
|
152
|
+
{ arguments: '', note: 'show the plan, then ask' },
|
|
153
|
+
{ arguments: '--yes', note: 'remove without asking' },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
77
156
|
},
|
|
78
157
|
'sync:scope': {
|
|
79
158
|
script: 'scripts/sync/managed-config-scope-cli.ts',
|
|
80
159
|
description: 'Say whether this change touches a file josh sync distributes',
|
|
81
160
|
category: 'Project',
|
|
82
161
|
reference: ['[--staged] [--json]', 'automation', ['none']],
|
|
162
|
+
usage: {
|
|
163
|
+
examples: [
|
|
164
|
+
{ arguments: '', note: BRANCH_DIFF },
|
|
165
|
+
{ arguments: STAGED, note: STAGED_DIFF },
|
|
166
|
+
{ arguments: JSON_FLAG, note: '{"scope":"managed","reason":"..."}' },
|
|
167
|
+
],
|
|
168
|
+
flags: [
|
|
169
|
+
{ names: [STAGED], description: 'inspect the staged diff instead of the branch diff.' },
|
|
170
|
+
{ names: [JSON_FLAG], description: 'emit `{"scope","reason"}` as JSON.' },
|
|
171
|
+
],
|
|
172
|
+
},
|
|
83
173
|
},
|
|
84
174
|
'sonar:hotspots': {
|
|
85
175
|
script: 'scripts/sonar/sonar-hotspots-cli.ts',
|
|
@@ -87,18 +177,26 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
87
177
|
"Fetch SonarCloud hotspots on a pull request and print each one's Step B disposition",
|
|
88
178
|
category: 'Project',
|
|
89
179
|
reference: ['<PR>', 'automation', ['network']],
|
|
180
|
+
usage: { examples: [{ arguments: PR_NUMBER }] },
|
|
90
181
|
},
|
|
91
182
|
'sonar:new-code': {
|
|
92
183
|
script: 'scripts/sonar/sonar-new-code-cli.ts',
|
|
93
184
|
description: 'Fail when a pull request adds any new SonarCloud issue or duplicated block',
|
|
94
185
|
category: 'Project',
|
|
95
186
|
reference: ['<PR>', 'automation', ['network']],
|
|
187
|
+
usage: { examples: [{ arguments: PR_NUMBER }] },
|
|
96
188
|
},
|
|
97
189
|
'ui:routes': {
|
|
98
190
|
script: 'scripts/ui/ui-routes-cli.ts',
|
|
99
191
|
description: 'List the screenshot-target routes the current change touches',
|
|
100
192
|
category: 'Project',
|
|
101
193
|
reference: ['[--staged]', 'automation', ['none']],
|
|
194
|
+
usage: {
|
|
195
|
+
examples: [
|
|
196
|
+
{ arguments: '', note: BRANCH_DIFF },
|
|
197
|
+
{ arguments: STAGED, note: STAGED_DIFF },
|
|
198
|
+
],
|
|
199
|
+
},
|
|
102
200
|
},
|
|
103
201
|
propagate: {
|
|
104
202
|
script: 'scripts/propagate/propagate.ts',
|
|
@@ -109,12 +207,43 @@ const PROJECT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
109
207
|
'maintainer',
|
|
110
208
|
['files', 'network'],
|
|
111
209
|
],
|
|
210
|
+
usage: {
|
|
211
|
+
examples: [
|
|
212
|
+
{ arguments: '' },
|
|
213
|
+
{ arguments: DRY_RUN, note: 'report targets and steps, write nothing' },
|
|
214
|
+
{ arguments: SKIP_PUBLISH_WAIT, note: 'release already known to be published' },
|
|
215
|
+
{ arguments: '--target app-kit', note: 'carry the release into one consumer only' },
|
|
216
|
+
],
|
|
217
|
+
flags: [
|
|
218
|
+
{
|
|
219
|
+
names: [DRY_RUN],
|
|
220
|
+
description:
|
|
221
|
+
'report targets and steps without writing; skips the publish wait, opens no issues.',
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
names: [SKIP_PUBLISH_WAIT],
|
|
225
|
+
description: 'skip the registry poll for an already-published release.',
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
names: ['--target <repo>'],
|
|
229
|
+
description:
|
|
230
|
+
'process only that consumer (`app-kit` or `joshuafolkken/app-kit`); the rest are reported `skipped` and left untouched. An unknown, ambiguous or non-dependent name fails before the publish wait, writing nothing.',
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
},
|
|
112
234
|
},
|
|
113
235
|
adopt: {
|
|
114
236
|
script: 'scripts/adopt/adopt.ts',
|
|
115
237
|
description: 'Upgrade the @joshuafolkken toolkits and other dependencies here, open the PR',
|
|
116
238
|
category: 'Project',
|
|
117
239
|
reference: ['[--dry-run]', 'developer', ['files', 'git', 'network', 'processes']],
|
|
240
|
+
usage: {
|
|
241
|
+
examples: [
|
|
242
|
+
{ arguments: '' },
|
|
243
|
+
{ arguments: '--dry-run', note: 'report the steps without touching anything' },
|
|
244
|
+
],
|
|
245
|
+
flags: [{ names: ['--dry-run'], description: 'report the plan without writing.' }],
|
|
246
|
+
},
|
|
118
247
|
},
|
|
119
248
|
}
|
|
120
249
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
const LEVEL_ONLY = '--level-only'
|
|
4
|
+
const CHECK = '--check'
|
|
5
|
+
const MACHINE_READABLE = 'the verdict and the reason, machine-readable'
|
|
6
|
+
const JSON_FLAG = '--json'
|
|
7
|
+
const ROUND_1_CLOSED = '--round-1-closed'
|
|
8
|
+
|
|
9
|
+
// The review and delegation commands, split out of `josh-commands-ai.ts` when each command's usage
|
|
10
|
+
// moved onto its entry (#4185). `AI_COMMANDS` spreads this in at the same place, so the map keeps its
|
|
11
|
+
// order.
|
|
12
|
+
|
|
13
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
14
|
+
const REVIEW_COMMANDS: Record<string, CommandEntry> = {
|
|
15
|
+
'review:brief': {
|
|
16
|
+
script: 'scripts/review/review-brief-main.ts',
|
|
17
|
+
description:
|
|
18
|
+
'Print the whole /code-review invocation: level, what the gate already proved, target (--level-only for the level alone)',
|
|
19
|
+
category: 'AI tools',
|
|
20
|
+
reference: [
|
|
21
|
+
'[--round <1|2>] | --interaction | --level-only [--staged] [--json]',
|
|
22
|
+
'automation',
|
|
23
|
+
['files'],
|
|
24
|
+
],
|
|
25
|
+
usage: {
|
|
26
|
+
examples: [
|
|
27
|
+
{ arguments: '', note: 'round 1' },
|
|
28
|
+
{ arguments: '--round 2', note: 'verification pass, scoped to the fix delta' },
|
|
29
|
+
{ arguments: '--interaction', note: 'the interaction review of a run-tooling change' },
|
|
30
|
+
{ arguments: LEVEL_ONLY, note: 'the level alone (pre-commit review)' },
|
|
31
|
+
{ arguments: '--level-only --json', note: 'level and reason, machine-readable' },
|
|
32
|
+
],
|
|
33
|
+
flags: [
|
|
34
|
+
{
|
|
35
|
+
names: ['--round 2'],
|
|
36
|
+
description:
|
|
37
|
+
"target is round 1's fixes and nothing else (widened back to the whole change when the record's change base no longer matches).",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
names: [LEVEL_ONLY],
|
|
41
|
+
description:
|
|
42
|
+
'print the level alone (level to stdout, reason to stderr); bypasses the scoped-green refusal.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
names: ['--staged', '--json'],
|
|
46
|
+
description: 'the staged diff; machine-readable level and reason.',
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
'review:attest': {
|
|
52
|
+
script: 'scripts/review/review-attest-cli.ts',
|
|
53
|
+
description: 'Record, or verify, which checkout a /code-review actually read',
|
|
54
|
+
category: 'AI tools',
|
|
55
|
+
reference: ['<nonce> | --check', 'automation', ['files']],
|
|
56
|
+
usage: {
|
|
57
|
+
examples: [
|
|
58
|
+
{ arguments: '<nonce>', note: 'run by the review, from the checkout it read' },
|
|
59
|
+
{ arguments: CHECK, note: 'run by the run, before it acts on the review' },
|
|
60
|
+
],
|
|
61
|
+
flags: [
|
|
62
|
+
{ names: ['<nonce>'], description: 'attest the checkout the review read.' },
|
|
63
|
+
{
|
|
64
|
+
names: [CHECK],
|
|
65
|
+
description: 'verify before acting; `josh followup` asks again before merging.',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
'review:round2': {
|
|
71
|
+
script: 'scripts/review/review-round2-cli.ts',
|
|
72
|
+
description: 'Say whether the second /code-review round is due, or may be skipped entirely',
|
|
73
|
+
category: 'AI tools',
|
|
74
|
+
reference: ['[--round-1-closed] [--json]', 'automation', ['none']],
|
|
75
|
+
usage: {
|
|
76
|
+
examples: [
|
|
77
|
+
{ arguments: '', note: '→ required' },
|
|
78
|
+
{ arguments: ROUND_1_CLOSED, note: '→ required | skip' },
|
|
79
|
+
{ arguments: JSON_FLAG, note: MACHINE_READABLE },
|
|
80
|
+
],
|
|
81
|
+
flags: [
|
|
82
|
+
{
|
|
83
|
+
names: [ROUND_1_CLOSED],
|
|
84
|
+
description:
|
|
85
|
+
'the caller states every round-1 High/Medium finding closed and none was filed or deferred; its absence answers `required`.',
|
|
86
|
+
},
|
|
87
|
+
{ names: [JSON_FLAG], description: 'machine-readable verdict and reason.' },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
delegate: {
|
|
92
|
+
script: 'scripts/delegation/delegation-cli.ts',
|
|
93
|
+
description: 'Say whether a run step may go to a cheaper execution tier',
|
|
94
|
+
category: 'AI tools',
|
|
95
|
+
reference: ['<step> | --list', 'automation', ['none']],
|
|
96
|
+
usage: {
|
|
97
|
+
examples: [
|
|
98
|
+
{ arguments: 'gate-fix', note: '→ delegate' },
|
|
99
|
+
{ arguments: 'review', note: '→ keep' },
|
|
100
|
+
{ arguments: '--list', note: 'the enumeration, and what was rejected and why' },
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
fanout: {
|
|
105
|
+
script: 'scripts/delegation/fanout-cli.ts',
|
|
106
|
+
description:
|
|
107
|
+
'Say whether proposed implementation units are file-disjoint, so they may run in parallel',
|
|
108
|
+
category: 'AI tools',
|
|
109
|
+
reference: ['<unit-files> <unit-files> [<unit-files> …]', 'automation', ['none']],
|
|
110
|
+
usage: {
|
|
111
|
+
examples: [
|
|
112
|
+
{ arguments: 'scripts/a.ts,scripts/a.test.ts scripts/b.ts', note: '→ parallel' },
|
|
113
|
+
{
|
|
114
|
+
arguments: 'scripts/a.ts,shared.ts scripts/b.ts,shared.ts',
|
|
115
|
+
note: '→ serial (units share shared.ts)',
|
|
116
|
+
},
|
|
117
|
+
{ arguments: 'scripts/a.ts', note: '→ serial (fewer than two units)' },
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
123
|
+
|
|
124
|
+
export { REVIEW_COMMANDS }
|