@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
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
const REPO = '--repo <owner/repo>'
|
|
4
|
+
const BODY_FILE = '--body-file <path>'
|
|
5
|
+
const EVIDENCE_FILE = '--evidence-file <path>'
|
|
6
|
+
const EVIDENCE_REFERENCE = `<issue> ${EVIDENCE_FILE}`
|
|
7
|
+
|
|
8
|
+
// The commands that write to an issue — comment, plan, already-done, measured and file — split out of
|
|
9
|
+
// `josh-commands-issue.ts` when each command's usage moved onto its entry (#4185). `ISSUE_COMMANDS`
|
|
10
|
+
// spreads this in at the same place, so the map keeps its order.
|
|
11
|
+
|
|
12
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
13
|
+
const ISSUE_WRITE_COMMANDS: Record<string, CommandEntry> = {
|
|
14
|
+
'issue:comment': {
|
|
15
|
+
script: 'scripts/issue/issue-comment-main.ts',
|
|
16
|
+
description: 'Post one comment to an issue from a file, so no shell expands the body',
|
|
17
|
+
category: 'AI tools',
|
|
18
|
+
reference: ['<issue> --body <text> | --body-file <path>', 'automation', ['network']],
|
|
19
|
+
usage: {
|
|
20
|
+
examples: [
|
|
21
|
+
{
|
|
22
|
+
arguments: '2304 --body-file .josh/tmp/park.md',
|
|
23
|
+
note: 'the body from a file — no shell evaluates it',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
arguments: '2304 --body "a short note"',
|
|
27
|
+
note: 'inline, for a body with no backticks or $',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
flags: [
|
|
31
|
+
{
|
|
32
|
+
names: ['--body <text>'],
|
|
33
|
+
description: 'the comment body, inline. Trimmed, with `\\n` expanded to a newline.',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
names: [BODY_FILE],
|
|
37
|
+
description:
|
|
38
|
+
'read the body from a file, or from stdin with `-`. The safe form the rule steers every caller toward.',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
'issue:plan': {
|
|
44
|
+
script: 'scripts/issue/issue-plan-cli.ts',
|
|
45
|
+
description:
|
|
46
|
+
'Record a plan: normalize the title, fill a blank body or comment, apply run:planned',
|
|
47
|
+
category: 'AI tools',
|
|
48
|
+
reference: [
|
|
49
|
+
'<issue> --body-file <path> [--title <title>] [--planned] [--repo <owner/name>]',
|
|
50
|
+
'automation',
|
|
51
|
+
['network'],
|
|
52
|
+
],
|
|
53
|
+
usage: {
|
|
54
|
+
examples: [
|
|
55
|
+
{
|
|
56
|
+
arguments: '4134 --body-file plan.md --title "Add issue:plan" --planned',
|
|
57
|
+
note: "kickoff's three writes",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
flags: [
|
|
61
|
+
{
|
|
62
|
+
names: [BODY_FILE],
|
|
63
|
+
description:
|
|
64
|
+
'the plan, from a file or stdin (`-`): a blank body takes it, else a comment.',
|
|
65
|
+
},
|
|
66
|
+
{ names: ['--title <title>'], description: 'replace the issue title first.' },
|
|
67
|
+
{
|
|
68
|
+
names: ['--planned'],
|
|
69
|
+
description:
|
|
70
|
+
'apply `run:planned` once the plan is posted, so the next entry skips planning.',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
names: ['--repo <owner/name>'],
|
|
74
|
+
description: "write to that repository's issue.",
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
'issue:already-done': {
|
|
80
|
+
script: 'scripts/issue/issue-already-done-cli.ts',
|
|
81
|
+
description:
|
|
82
|
+
'Exit an issue whose work is already merged: post the evidence, apply already-done, release the hold',
|
|
83
|
+
category: 'AI tools',
|
|
84
|
+
// Releasing the hold runs `run:hold`, which reaches the stop confirmation.
|
|
85
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
86
|
+
reference: [EVIDENCE_REFERENCE, 'automation', ['network', 'files']],
|
|
87
|
+
usage: {
|
|
88
|
+
examples: [
|
|
89
|
+
{
|
|
90
|
+
arguments: '4130 --evidence-file .josh/tmp/already-done.md',
|
|
91
|
+
note: 'comment, label, release — in that order',
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
flags: [
|
|
95
|
+
{
|
|
96
|
+
names: [EVIDENCE_FILE],
|
|
97
|
+
description:
|
|
98
|
+
'the evidence comment: the merging PR or commit and, per acceptance criterion, its `file:line`. An empty file is refused before anything is written.',
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
'issue:measured': {
|
|
104
|
+
script: 'scripts/issue/issue-measured-cli.ts',
|
|
105
|
+
description:
|
|
106
|
+
'Complete a measurement-only issue: post the result, label it measured, close it, release the hold',
|
|
107
|
+
category: 'AI tools',
|
|
108
|
+
// Releasing the hold runs `run:hold`, which reaches the stop confirmation.
|
|
109
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
110
|
+
reference: [EVIDENCE_REFERENCE, 'automation', ['network', 'files']],
|
|
111
|
+
usage: {
|
|
112
|
+
examples: [
|
|
113
|
+
{
|
|
114
|
+
arguments: '4452 --evidence-file .josh/tmp/measured.md',
|
|
115
|
+
note: 'comment, label, close, release — in that order',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
flags: [
|
|
119
|
+
{
|
|
120
|
+
names: [EVIDENCE_FILE],
|
|
121
|
+
description:
|
|
122
|
+
'the result comment: per acceptance criterion, the measurement and the run it came from. An empty file is refused before anything is written.',
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
'issue:file': {
|
|
128
|
+
script: 'scripts/issue/issue-file-cli.ts',
|
|
129
|
+
description:
|
|
130
|
+
'File an Issue with every filing step: lint, Origin, fold, WIP cap, duplicate scout, labels, then epic:bundle',
|
|
131
|
+
category: 'AI tools',
|
|
132
|
+
reference: [
|
|
133
|
+
'<title> --body-file <path> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,…>] [--over-cap] [--no-auto-ok] [--release]',
|
|
134
|
+
'automation',
|
|
135
|
+
['network'],
|
|
136
|
+
],
|
|
137
|
+
usage: {
|
|
138
|
+
examples: [
|
|
139
|
+
{ arguments: '"<title>" --body-file body.md' },
|
|
140
|
+
{ arguments: '"<title>" --body-file body.md --route tier-a --repo joshuafolkken/kit' },
|
|
141
|
+
{ arguments: '"<title>" --body-file body.md --distinct 2801,2795' },
|
|
142
|
+
],
|
|
143
|
+
flags: [
|
|
144
|
+
{ names: [BODY_FILE], description: 'the body. Required.' },
|
|
145
|
+
{
|
|
146
|
+
names: ['--route <tier-a|split|interrupt|review-cap>'],
|
|
147
|
+
description:
|
|
148
|
+
'the `route:` label naming the filing route. Omit it for a filing with no route.',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
names: ['--label <name>'],
|
|
152
|
+
description: 'an extra label (for example `epic`). Repeatable.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
names: [REPO],
|
|
156
|
+
description: 'the target repository. Defaults to this repository.',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
names: ['--distinct <N,…>'],
|
|
160
|
+
description: 'duplicate candidates you read and judged distinct.',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
names: ['--over-cap'],
|
|
164
|
+
description: 'the run is blocked by this filing; the cap lets it through.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
names: ['--no-auto-ok'],
|
|
168
|
+
description: "needs a person's judgement (Tier B / C); no `auto-ok`.",
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
names: ['--release'],
|
|
172
|
+
description:
|
|
173
|
+
"a consumer can use the change only once it is published. The filed issue becomes a blocker of the target's release issue (step 10).",
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
}
|
|
179
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
180
|
+
|
|
181
|
+
export { ISSUE_WRITE_COMMANDS }
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import type { CommandEntry } from './josh-command-types'
|
|
2
|
+
import { ISSUE_WRITE_COMMANDS } from './josh-commands-issue-write'
|
|
3
|
+
|
|
4
|
+
const REPO = '--repo <owner/repo>'
|
|
5
|
+
const CONCURRENT = 'several numbers, read concurrently'
|
|
6
|
+
const REPO_FLAG = {
|
|
7
|
+
names: [REPO],
|
|
8
|
+
description: 'read a child in another repository; applies to every number.',
|
|
9
|
+
}
|
|
10
|
+
const BODY_FILE = '--body-file <path>'
|
|
11
|
+
const JSON_FLAG = { names: ['--json'], description: 'print the verdict and reason as JSON.' }
|
|
2
12
|
|
|
3
13
|
// The issue-reading and issue-citation commands, split out of `josh-commands-ai.ts` when the mandated
|
|
4
14
|
// `issue:cite` section pushed that file past its 300-line ceiling — the same
|
|
@@ -17,75 +27,165 @@ const ISSUE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
17
27
|
"Record that the run read a person's update to its issue, printing the update it acknowledges",
|
|
18
28
|
category: 'AI tools',
|
|
19
29
|
reference: ['<issue>', 'automation', ['network']],
|
|
30
|
+
usage: { examples: [{ arguments: '3773' }] },
|
|
20
31
|
},
|
|
21
32
|
'issue:read': {
|
|
22
|
-
script: 'scripts/issue/issue-read-
|
|
33
|
+
script: 'scripts/issue/issue-read-main.ts',
|
|
23
34
|
description: "Print each issue's title, body and every comment on it, in one call",
|
|
24
35
|
category: 'AI tools',
|
|
25
36
|
reference: ['<issue...>', 'automation', ['network']],
|
|
37
|
+
usage: {
|
|
38
|
+
examples: [{ arguments: '1715' }, { arguments: '1715 1567 1605', note: CONCURRENT }],
|
|
39
|
+
},
|
|
26
40
|
},
|
|
27
41
|
'issue:state': {
|
|
28
|
-
script: 'scripts/issue/issue-state-
|
|
42
|
+
script: 'scripts/issue/issue-state-main.ts',
|
|
29
43
|
description:
|
|
30
44
|
"Print each issue's state and labels, in the spelling the documents compare against",
|
|
31
45
|
category: 'AI tools',
|
|
32
46
|
reference: [ISSUES_WITH_REPO, 'automation', ['network']],
|
|
47
|
+
usage: {
|
|
48
|
+
examples: [
|
|
49
|
+
{ arguments: '42', note: 'single-number shape' },
|
|
50
|
+
{ arguments: '42 43 44', note: 'each block headed by `issue:`' },
|
|
51
|
+
{ arguments: '42 43 --repo joshuafolkken/app-kit', note: 'a child in another repo' },
|
|
52
|
+
],
|
|
53
|
+
flags: [REPO_FLAG],
|
|
54
|
+
},
|
|
33
55
|
},
|
|
34
56
|
'issue:scout': {
|
|
35
|
-
script: 'scripts/issue/issue-scout-
|
|
57
|
+
script: 'scripts/issue/issue-scout-main.ts',
|
|
36
58
|
description:
|
|
37
59
|
'Before filing: say whether an issue like this exists and which epic it belongs to',
|
|
38
60
|
category: 'AI tools',
|
|
39
61
|
reference: ['<title> [--body <summary> | --body-file <path>]', 'automation', ['network']],
|
|
62
|
+
usage: {
|
|
63
|
+
examples: [
|
|
64
|
+
{ arguments: '"Stop the gate re-running after every edit"' },
|
|
65
|
+
{ arguments: '"<title>" --body "parent: #1246"' },
|
|
66
|
+
{ arguments: '"<title>" --body-file draft.md' },
|
|
67
|
+
],
|
|
68
|
+
flags: [
|
|
69
|
+
{
|
|
70
|
+
names: ['--body "<text>"'],
|
|
71
|
+
description:
|
|
72
|
+
'supply references (`#N`) in a `parent: #N` line or an acceptance-criteria section so the epic half has a number to work from; without one there (a background mention does not count) it prints `Epic: not asked`.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
names: [BODY_FILE],
|
|
76
|
+
description:
|
|
77
|
+
'pass the whole draft, including its purpose, requirements and acceptance criteria. A file that cannot be read ends the command rather than being treated as "no candidates".',
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
'defect:origin': {
|
|
83
|
+
script: 'scripts/issue/defect-origin-main.ts',
|
|
84
|
+
description:
|
|
85
|
+
'List the merged pull requests that last changed what a defect issue names, as candidates for its origin line',
|
|
86
|
+
category: 'AI tools',
|
|
87
|
+
reference: ['<N>', 'automation', ['network']],
|
|
88
|
+
usage: {
|
|
89
|
+
examples: [{ arguments: '4241', note: 'newest first, merged before the issue was filed' }],
|
|
90
|
+
},
|
|
40
91
|
},
|
|
41
|
-
'defect:
|
|
42
|
-
script: 'scripts/issue/defect-
|
|
43
|
-
description:
|
|
92
|
+
'defect:report': {
|
|
93
|
+
script: 'scripts/issue/defect-report-main.ts',
|
|
94
|
+
description:
|
|
95
|
+
'Count defects by the origin pull request their issue declares, by change kind and by area',
|
|
44
96
|
category: 'AI tools',
|
|
45
|
-
reference: ['
|
|
97
|
+
reference: ['', 'automation', ['network']],
|
|
98
|
+
usage: { examples: [{ arguments: '', note: 'every issue labelled bug, open or closed' }] },
|
|
46
99
|
},
|
|
47
100
|
'issue:fold': {
|
|
48
|
-
script: 'scripts/issue/issue-fold-
|
|
101
|
+
script: 'scripts/issue/issue-fold-main.ts',
|
|
49
102
|
description:
|
|
50
103
|
'Before a second filing: say whether findings from this session fold into one issue',
|
|
51
104
|
category: 'AI tools',
|
|
52
105
|
reference: ['<title>... [--not-separable] [--json]', 'automation', ['none']],
|
|
106
|
+
usage: {
|
|
107
|
+
examples: [
|
|
108
|
+
{
|
|
109
|
+
arguments: '"First finding" "Second finding"',
|
|
110
|
+
note: 'fold | separate | no-fold-needed | undetermined',
|
|
111
|
+
},
|
|
112
|
+
{ arguments: '"a" "b" --not-separable', note: 'the pair is really one deliverable → fold' },
|
|
113
|
+
{ arguments: '"a" "b" --json', note: 'the verdict and reason, machine-readable' },
|
|
114
|
+
],
|
|
115
|
+
flags: [
|
|
116
|
+
{
|
|
117
|
+
names: ['--not-separable'],
|
|
118
|
+
description:
|
|
119
|
+
'declare the judgement half: the findings are one deliverable, so they fold whatever their size.',
|
|
120
|
+
},
|
|
121
|
+
JSON_FLAG,
|
|
122
|
+
],
|
|
123
|
+
},
|
|
53
124
|
},
|
|
54
125
|
'issue:fold-existing': {
|
|
55
126
|
script: 'scripts/issue/issue-fold-existing-cli.ts',
|
|
56
127
|
description: 'Assess whether a complete draft can join an unstarted issue',
|
|
57
128
|
category: 'AI tools',
|
|
58
129
|
reference: ['<assessment.json> [--json]', 'automation', ['none']],
|
|
130
|
+
usage: { examples: [{ arguments: 'assessment.json --json' }] },
|
|
59
131
|
},
|
|
60
132
|
'issue:cite': {
|
|
61
|
-
script: 'scripts/issue/issue-cite-
|
|
133
|
+
script: 'scripts/issue/issue-cite-main.ts',
|
|
62
134
|
description: 'Print the paste-ready number-link citation line for each issue, in one call',
|
|
63
135
|
category: 'AI tools',
|
|
64
136
|
reference: [ISSUES_WITH_REPO, 'automation', ['network']],
|
|
137
|
+
usage: {
|
|
138
|
+
examples: [
|
|
139
|
+
{ arguments: '2220' },
|
|
140
|
+
{ arguments: '2220 1758 1252', note: CONCURRENT },
|
|
141
|
+
{
|
|
142
|
+
arguments: '45 --repo joshuafolkken/app-kit',
|
|
143
|
+
note: 'bare numbers in another repository',
|
|
144
|
+
},
|
|
145
|
+
{ arguments: 'joshuafolkken/app-kit#45 2220', note: 'per-token owner/repo#N notation' },
|
|
146
|
+
],
|
|
147
|
+
flags: [
|
|
148
|
+
{
|
|
149
|
+
names: [REPO],
|
|
150
|
+
description:
|
|
151
|
+
'the repository for every bare number; a token written `owner/repo#N` overrides it for itself.',
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
65
155
|
},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
category: 'AI tools',
|
|
70
|
-
reference: ['<issue> --body <text> | --body-file <path>', 'automation', ['network']],
|
|
71
|
-
},
|
|
72
|
-
'issue:file': {
|
|
73
|
-
script: 'scripts/issue/issue-file-cli.ts',
|
|
156
|
+
...ISSUE_WRITE_COMMANDS,
|
|
157
|
+
'plan:consumers': {
|
|
158
|
+
script: 'scripts/issue/plan-consumers-main.ts',
|
|
74
159
|
description:
|
|
75
|
-
|
|
160
|
+
"List every existing reference to each identifier a plan adds or changes, by kind, and draft the plan's existing-consumers section",
|
|
76
161
|
category: 'AI tools',
|
|
77
|
-
reference: [
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
162
|
+
reference: ['<identifier...>', 'automation', ['none']],
|
|
163
|
+
usage: {
|
|
164
|
+
examples: [
|
|
165
|
+
{ arguments: 'lane:pause' },
|
|
166
|
+
{ arguments: 'lane:pause run:paused', note: 'one block per identifier, one draft' },
|
|
167
|
+
],
|
|
168
|
+
},
|
|
82
169
|
},
|
|
83
170
|
'issue:release': {
|
|
84
|
-
script: 'scripts/issue/issue-release-
|
|
171
|
+
script: 'scripts/issue/issue-release-main.ts',
|
|
85
172
|
description:
|
|
86
173
|
"Link an Issue to the repository's open release Issue as its blocker (or, with --wait, as waiting on it), filing one when none is open",
|
|
87
174
|
category: 'AI tools',
|
|
88
175
|
reference: ['<issue> [--wait]', 'automation', ['network']],
|
|
176
|
+
usage: {
|
|
177
|
+
examples: [
|
|
178
|
+
{ arguments: '3360' },
|
|
179
|
+
{ arguments: '3716 --wait', note: 'blocked by the release issue instead' },
|
|
180
|
+
],
|
|
181
|
+
flags: [
|
|
182
|
+
{
|
|
183
|
+
names: ['--wait'],
|
|
184
|
+
description:
|
|
185
|
+
'the issue is blocked by the release issue instead, so `backlog:next` offers it again once the release ships (`.claude/skills/workflow-commands/prerequisite.md`).',
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
},
|
|
89
189
|
},
|
|
90
190
|
}
|
|
91
191
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { OPTIONAL_ENV_FILE_FLAGS, type CommandEntry } from './josh-command-types'
|
|
2
2
|
|
|
3
|
+
const BARE = { arguments: '' }
|
|
4
|
+
// `lane:pause` and `lane:resume` take the same target.
|
|
5
|
+
const LANE_SIGNAL_EXAMPLES = [
|
|
6
|
+
{ arguments: '4198' },
|
|
7
|
+
{ arguments: '--all', note: 'every open lane' },
|
|
8
|
+
]
|
|
9
|
+
|
|
3
10
|
// The `lane:*` command registry, split out of `josh-commands-ai.ts` so that file stays under its line
|
|
4
11
|
// limit. One script answers `lane:open` / `lane:close` / `lane:list` /
|
|
5
12
|
// `lane:prune` / `lane:output` / `lane:dispatch` / `lane:await`, told apart by the verb below;
|
|
@@ -14,6 +21,13 @@ const MEASURE_ARGUMENTS = {
|
|
|
14
21
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
15
22
|
} as const
|
|
16
23
|
|
|
24
|
+
const PAUSE_ARGUMENTS = {
|
|
25
|
+
script: 'scripts/lane/lane-pause-cli.ts',
|
|
26
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
27
|
+
category: 'AI tools',
|
|
28
|
+
reference: ['<issue> | --all', 'developer', ['processes']],
|
|
29
|
+
} satisfies Partial<CommandEntry>
|
|
30
|
+
|
|
17
31
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
18
32
|
const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
19
33
|
'lane:open': {
|
|
@@ -22,6 +36,7 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
22
36
|
category: 'AI tools',
|
|
23
37
|
reference: [ISSUE_WITH_OPTIONS, 'automation', ['files', 'git']],
|
|
24
38
|
default_script_arguments: ['open'],
|
|
39
|
+
usage: { examples: [{ arguments: '1490', note: 'prints the lane directory on stdout' }] },
|
|
25
40
|
},
|
|
26
41
|
'lane:close': {
|
|
27
42
|
...LANE_ARGUMENTS,
|
|
@@ -29,6 +44,10 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
29
44
|
category: 'AI tools',
|
|
30
45
|
reference: ['<issue>', 'automation', ['files', 'git']],
|
|
31
46
|
default_script_arguments: ['close'],
|
|
47
|
+
usage: {
|
|
48
|
+
examples: [{ arguments: '1490' }, { arguments: '--all' }],
|
|
49
|
+
flags: [{ names: ['--all'], description: 'closes every lane.' }],
|
|
50
|
+
},
|
|
32
51
|
},
|
|
33
52
|
'lane:list': {
|
|
34
53
|
...LANE_ARGUMENTS,
|
|
@@ -36,6 +55,7 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
36
55
|
category: 'AI tools',
|
|
37
56
|
reference: ['', 'automation', ['none']],
|
|
38
57
|
default_script_arguments: ['list'],
|
|
58
|
+
usage: { examples: [BARE] },
|
|
39
59
|
},
|
|
40
60
|
'lane:prune': {
|
|
41
61
|
...LANE_ARGUMENTS,
|
|
@@ -44,6 +64,7 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
44
64
|
category: 'AI tools',
|
|
45
65
|
reference: ['', 'automation', ['files', 'git']],
|
|
46
66
|
default_script_arguments: ['prune'],
|
|
67
|
+
usage: { examples: [BARE] },
|
|
47
68
|
},
|
|
48
69
|
'lane:output': {
|
|
49
70
|
...LANE_ARGUMENTS,
|
|
@@ -51,6 +72,12 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
51
72
|
category: 'AI tools',
|
|
52
73
|
reference: ['<issue> [path]', 'automation', ['files']],
|
|
53
74
|
default_script_arguments: ['output'],
|
|
75
|
+
usage: {
|
|
76
|
+
examples: [
|
|
77
|
+
{ arguments: '1713 /abs/path/to/agent-7.jsonl', note: 'record it; prints the path back' },
|
|
78
|
+
{ arguments: '1713', note: 'read it; prints the path, or `none`' },
|
|
79
|
+
],
|
|
80
|
+
},
|
|
54
81
|
},
|
|
55
82
|
'lane:dispatch': {
|
|
56
83
|
...LANE_ARGUMENTS,
|
|
@@ -58,6 +85,31 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
58
85
|
category: 'AI tools',
|
|
59
86
|
reference: ['<issue> <prompt>', 'automation', ['processes']],
|
|
60
87
|
default_script_arguments: ['dispatch'],
|
|
88
|
+
usage: {
|
|
89
|
+
examples: [
|
|
90
|
+
{
|
|
91
|
+
arguments: '1749',
|
|
92
|
+
note: "prints the child's pid; a refusal is an empty capture and exit 1",
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
flags: [
|
|
96
|
+
{
|
|
97
|
+
names: ['JOSH_{SCHEDULER,WORKER,REVIEWER}_MODEL'],
|
|
98
|
+
description:
|
|
99
|
+
'Claude Code role overrides; Anthropic defaults are respectively `claude-opus-5-5`, `claude-opus-5-5`, and `claude-opus-5-5`. Codex keeps its provider-specific model.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
names: ['JOSH_{SCHEDULER,WORKER,REVIEWER}_EFFORT'],
|
|
103
|
+
description:
|
|
104
|
+
'role effort overrides for either provider; defaults are `medium`, `medium`, and `high`.',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
names: ['JOSH_REVIEWER_VERIFICATION_{MODEL,EFFORT}'],
|
|
108
|
+
description:
|
|
109
|
+
'review round 2 and later (the verification pass); Anthropic defaults are `claude-sonnet-5-5` / `high`, falling back to `JOSH_REVIEWER_*`.',
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
61
113
|
},
|
|
62
114
|
'lane:await': {
|
|
63
115
|
...LANE_ARGUMENTS,
|
|
@@ -66,13 +118,31 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
66
118
|
category: 'AI tools',
|
|
67
119
|
reference: ['<issue> [<issue>...] [--owner <pid>]', 'automation', ['files', 'processes']],
|
|
68
120
|
default_script_arguments: ['await'],
|
|
121
|
+
usage: {
|
|
122
|
+
examples: [
|
|
123
|
+
{ arguments: '1749 1750', note: 'block until either lane completes' },
|
|
124
|
+
{
|
|
125
|
+
arguments: '1749 1750 --owner "$PPID"',
|
|
126
|
+
note: 'reclaim the carry record for a resumed conversation first',
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
},
|
|
69
130
|
},
|
|
70
131
|
'lane:launch': {
|
|
71
|
-
script: 'scripts/lane/lane-launch-
|
|
132
|
+
script: 'scripts/lane/lane-launch-main.ts',
|
|
72
133
|
description:
|
|
73
134
|
'Collapse a backlogrun lane-start event into one call: open the lane, pop and re-install on the first, dispatch the child',
|
|
74
135
|
category: 'AI tools',
|
|
75
136
|
reference: ['<issue> [--stash <message>]', 'automation', ['files', 'git', 'processes']],
|
|
137
|
+
usage: {
|
|
138
|
+
examples: [
|
|
139
|
+
{ arguments: '1749', note: 'every lane after the first' },
|
|
140
|
+
{
|
|
141
|
+
arguments: '1749 --stash "backlogrun: josh latest before lanes"',
|
|
142
|
+
note: 'the first lane only',
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
},
|
|
76
146
|
},
|
|
77
147
|
// `.env` is read for `JOSH_LANE_ROOT`, as every lane command reads it, so the lane is found.
|
|
78
148
|
'lane:restart': {
|
|
@@ -82,6 +152,35 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
82
152
|
'Stop a running lane child, stash its uncommitted work and re-dispatch its issue in a fresh session — not counted as an outage or a failure',
|
|
83
153
|
category: 'AI tools',
|
|
84
154
|
reference: ['<issue>', 'developer', ['files', 'git', 'processes', 'network']],
|
|
155
|
+
usage: {
|
|
156
|
+
examples: [{ arguments: '3769', note: "prints the fresh child's pid" }],
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
// `.env` is read for `JOSH_LANE_ROOT`, as every lane command reads it, so the lane is found.
|
|
160
|
+
'lane:withdraw': {
|
|
161
|
+
script: 'scripts/lane/lane-withdraw-cli.ts',
|
|
162
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
163
|
+
description:
|
|
164
|
+
'Stop a running lane child, stash its uncommitted work and close the lane, leaving its issue open for the next run — booked withdrawn, not as an outage or a failure',
|
|
165
|
+
category: 'AI tools',
|
|
166
|
+
reference: ['<issue> --reason <text>', 'developer', ['files', 'git', 'processes', 'network']],
|
|
167
|
+
usage: {
|
|
168
|
+
examples: [{ arguments: '3769 --reason "folded into a broader issue"' }],
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
// `.env` is read for `JOSH_LANE_ROOT`, as every lane command reads it, so `--all` finds the lanes.
|
|
172
|
+
'lane:pause': {
|
|
173
|
+
...PAUSE_ARGUMENTS,
|
|
174
|
+
description:
|
|
175
|
+
'Suspend a running lane child’s process tree (SIGSTOP) in place, leaving its work tree, branch and issue untouched, and record the pause in the lane’s state and the run’s event stream',
|
|
176
|
+
default_script_arguments: ['pause'],
|
|
177
|
+
usage: { examples: LANE_SIGNAL_EXAMPLES },
|
|
178
|
+
},
|
|
179
|
+
'lane:resume': {
|
|
180
|
+
...PAUSE_ARGUMENTS,
|
|
181
|
+
description: 'Let a paused lane child carry on from where it stopped (SIGCONT)',
|
|
182
|
+
default_script_arguments: ['resume'],
|
|
183
|
+
usage: { examples: LANE_SIGNAL_EXAMPLES },
|
|
85
184
|
},
|
|
86
185
|
// A live run's lane limit: `.env` is read so the bare form reports the
|
|
87
186
|
// `JOSH_LANE_LIMIT` a person set there when no override stands.
|
|
@@ -92,6 +191,13 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
92
191
|
'Change a live backlogrun’s lane limit without stopping it, or print the limit, lanes in use and free lanes',
|
|
93
192
|
category: 'AI tools',
|
|
94
193
|
reference: ['[<limit>] [--reset]', 'developer', ['files']],
|
|
194
|
+
usage: {
|
|
195
|
+
examples: [
|
|
196
|
+
{ arguments: '8', note: "raise or lower the live run's limit to 8" },
|
|
197
|
+
{ arguments: '', note: 'print the limit, the lanes in use and the free lanes' },
|
|
198
|
+
{ arguments: '--reset', note: 'clear the override; JOSH_LANE_LIMIT applies again' },
|
|
199
|
+
],
|
|
200
|
+
},
|
|
95
201
|
},
|
|
96
202
|
// The lane-limit measurement: `.env` is read so `lane:stats` labels the row
|
|
97
203
|
// with the `JOSH_LANE_LIMIT` a person set there.
|
|
@@ -102,14 +208,18 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
102
208
|
category: 'AI tools',
|
|
103
209
|
reference: ['[--every <seconds>]', 'maintainer', ['files']],
|
|
104
210
|
default_script_arguments: ['sample'],
|
|
211
|
+
usage: { examples: [{ arguments: '', note: 'one machine-load reading' }] },
|
|
105
212
|
},
|
|
106
213
|
'lane:stats': {
|
|
107
214
|
...MEASURE_ARGUMENTS,
|
|
108
215
|
description:
|
|
109
|
-
'Print one table row of lane throughput, gate duration and machine load over a period, the per-stage durations of a lane under it,
|
|
216
|
+
'Print one table row of lane throughput, gate duration and machine load over a period, the per-stage durations of a lane under it, the wait after each ship stop reason under those, and the duration and reuse count of each gate check last',
|
|
110
217
|
category: 'AI tools',
|
|
111
218
|
reference: ['--period <days> [--limit <lane-limit>]', 'maintainer', ['none']],
|
|
112
219
|
default_script_arguments: ['stats'],
|
|
220
|
+
usage: {
|
|
221
|
+
examples: [{ arguments: '--period 7', note: "a 7-day period's stage medians and maxima" }],
|
|
222
|
+
},
|
|
113
223
|
},
|
|
114
224
|
}
|
|
115
225
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -7,29 +7,40 @@ import type { CommandEntry } from './josh-command-types'
|
|
|
7
7
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
8
8
|
const LINT_COMMANDS: Record<string, CommandEntry> = {
|
|
9
9
|
'issue:lint': {
|
|
10
|
-
script: 'scripts/issue/issue-lint-
|
|
10
|
+
script: 'scripts/issue/issue-lint-main.ts',
|
|
11
11
|
description: "Check an issue body file for the template's required headings",
|
|
12
12
|
category: 'AI tools',
|
|
13
13
|
reference: ['<path>', 'automation', ['files']],
|
|
14
|
-
|
|
15
|
-
'issue:backlinks': {
|
|
16
|
-
script: 'scripts/issue/issue-backlinks-cli.ts',
|
|
17
|
-
description: 'Classify an origin issue’s upstream backlinks: ok, missing, or wrong heading',
|
|
18
|
-
category: 'AI tools',
|
|
19
|
-
reference: ['<issue>', 'automation', ['network']],
|
|
14
|
+
usage: { examples: [{ arguments: '.josh/tmp/issue-body.md' }] },
|
|
20
15
|
},
|
|
21
16
|
'report:lint': {
|
|
22
17
|
script: 'scripts/report/report-lint-cli.ts',
|
|
23
18
|
description: 'Check a two-layer work summary on stdin against its mechanical format rules',
|
|
24
19
|
category: 'AI tools',
|
|
25
20
|
reference: ['(reads stdin)', 'automation', ['none']],
|
|
21
|
+
usage: { examples: [{ arguments: '< summary.md' }] },
|
|
22
|
+
},
|
|
23
|
+
'report:template': {
|
|
24
|
+
script: 'scripts/report/report-template-cli.ts',
|
|
25
|
+
description:
|
|
26
|
+
'Print the work summary or completion report skeleton in the session language: summary | done',
|
|
27
|
+
category: 'AI tools',
|
|
28
|
+
reference: ['summary|done [<path>...]', 'automation', ['files']],
|
|
29
|
+
usage: {
|
|
30
|
+
examples: [{ arguments: 'summary scripts/report/report-lint.ts' }, { arguments: 'done' }],
|
|
31
|
+
},
|
|
26
32
|
},
|
|
27
33
|
cases: {
|
|
28
34
|
script: 'scripts/cases/cases-cli.ts',
|
|
29
35
|
description:
|
|
30
|
-
'Read changed paths and print the
|
|
36
|
+
'Read changed paths and print the boundaries crossed and their mandatory abnormal cases: network | process | fs | time | state | env | none',
|
|
31
37
|
category: 'AI tools',
|
|
32
38
|
reference: ['<path...>', 'automation', ['files']],
|
|
39
|
+
usage: {
|
|
40
|
+
examples: [
|
|
41
|
+
{ arguments: 'scripts/a.ts scripts/b.ts', note: 'the boundaries these paths cross' },
|
|
42
|
+
],
|
|
43
|
+
},
|
|
33
44
|
},
|
|
34
45
|
}
|
|
35
46
|
/* eslint-enable @typescript-eslint/naming-convention */
|