@joshuafolkken/kit 1.1784.0 → 1.2114.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/reviewer-verification.md +19 -0
- package/.claude/agents/reviewer.md +19 -0
- package/.claude/settings.json +5 -6
- package/.claude/skills/dependency-update/SKILL.md +9 -10
- package/.claude/skills/workflow-commands/SKILL.md +6 -6
- package/.claude/skills/workflow-commands/background-commands.md +8 -5
- package/.claude/skills/workflow-commands/backlogrun-child.md +3 -1
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +1 -1
- package/.claude/skills/workflow-commands/backlogrun-park.md +5 -2
- package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -3
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +1 -1
- package/.claude/skills/workflow-commands/backlogrun-steps.md +3 -2
- package/.claude/skills/workflow-commands/backlogrun.md +1 -1
- package/.claude/skills/workflow-commands/chain-rule.md +41 -32
- package/.claude/skills/workflow-commands/delegation.md +6 -6
- package/.claude/skills/workflow-commands/entry-sequence.md +2 -2
- package/.claude/skills/workflow-commands/followup.md +7 -5
- package/.claude/skills/workflow-commands/fullrun-steps.md +6 -6
- package/.claude/skills/workflow-commands/fullrun.md +1 -1
- package/.claude/skills/workflow-commands/issue-comments.md +9 -4
- package/.claude/skills/workflow-commands/issue-fold-existing.md +2 -1
- package/.claude/skills/workflow-commands/kickoff.md +2 -2
- package/.claude/skills/workflow-commands/observation-filing.md +1 -1
- package/.claude/skills/workflow-commands/observation-ledger.md +6 -4
- package/.claude/skills/workflow-commands/pre-gate-cut.md +9 -7
- package/.claude/skills/workflow-commands/prerequisite.md +3 -2
- package/.claude/skills/workflow-commands/retrospective.md +2 -2
- package/.claude/skills/workflow-commands/split-assessment.md +7 -5
- package/.codex/hooks.json +5 -5
- package/.github/actions/setup-pnpm/action.yml +9 -16
- package/.github/dependabot.yml +16 -0
- package/.github/workflows/auto-tag.yml +45 -0
- package/.github/workflows/ci.yml +155 -15
- package/.github/workflows/dependabot-auto-merge.yml +63 -4
- package/.github/workflows/production.yml +8 -0
- package/.github/workflows/publish.yml +59 -45
- package/.vscode/settings.json +19 -0
- package/CLAUDE.md +5 -12
- package/SECURITY.md +2 -2
- package/dist/CLAUDE.md +5 -12
- package/dist/commands/document-read-cli.js +2 -1
- package/dist/commands/document-section-main.js +2 -1
- package/dist/commands/read-set-cli.js +194 -134
- package/dist/commands/run-prep-main.js +9694 -10173
- package/dist/commands/run-step-cli.js +22138 -18285
- package/dist/hooks/audit-provision.js +23 -5
- package/dist/hooks/chunk-3GKE653K.js +6204 -0
- package/dist/hooks/chunk-45CJJOO7.js +1243 -0
- package/dist/hooks/{chunk-CWMBGKYW.js → chunk-5PM2JRGV.js} +2153 -856
- package/dist/hooks/{chunk-WR2KQAYZ.js → chunk-7SIUNQXK.js} +1207 -1470
- package/dist/hooks/{chunk-O2YBIDSI.js → chunk-CQD4LJE6.js} +1682 -1130
- package/dist/hooks/{chunk-VWWCFGWK.js → chunk-OPSRGWFU.js} +1 -1
- package/dist/hooks/{chunk-XGBNSWEI.js → chunk-UJ3FPMMM.js} +132 -49
- package/dist/hooks/chunk-VVNYJWEI.js +30 -0
- package/dist/hooks/chunk-Z6DQJKH3.js +2806 -0
- package/dist/hooks/codex-hook-adapter.js +8 -8
- package/dist/hooks/format-edited.js +4 -5
- package/dist/hooks/inputs.json +415 -389
- package/dist/hooks/pretool-guard.js +7 -6
- package/dist/hooks/session-lang.js +101 -258
- package/dist/hooks/stop-guard.js +1744 -2576
- package/dist/josh.js +7133 -6368
- package/dist/version/index.js +161 -1
- package/eslint/rules/comment-why-only.js +108 -0
- package/package.json +15 -8
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +14 -11
- package/prompts/collaboration-workflow/issue-citation.md +0 -4
- package/prompts/collaboration-workflow/issue-template.md +40 -21
- package/prompts/collaboration-workflow/lane-instructions.md +3 -1
- package/prompts/collaboration-workflow/measurement.md +8 -1
- package/prompts/collaboration-workflow/operating-rules.md +11 -2
- package/prompts/collaboration-workflow/output-bounds.md +6 -2
- package/prompts/collaboration-workflow/plan-comment.md +1 -1
- package/prompts/collaboration-workflow/principles.md +9 -0
- package/prompts/collaboration-workflow/residency.md +3 -2
- package/prompts/collaboration-workflow/rule-delivery.md +13 -1
- package/prompts/collaboration-workflow/upstream-interrupt.md +2 -2
- package/prompts/collaboration-workflow/wip-cap.md +3 -1
- package/prompts/review-rubric.md +8 -0
- package/prompts/review.md +31 -22
- package/prompts/testing-guide.md +1 -0
- package/scripts/agent/agent-argv.ts +14 -16
- package/scripts/agent/agent-provider.ts +138 -0
- package/scripts/agent/agent-role-profile.ts +108 -156
- package/scripts/agent/agent-safe-text.ts +20 -5
- package/scripts/agent/api-usage-limit.ts +65 -0
- package/scripts/agent/claude-agent-argv.ts +19 -9
- package/scripts/agent/codex-agent-argv.ts +118 -22
- package/scripts/agent/usage-limit-reset.ts +179 -0
- package/scripts/auth/claude-token-output.ts +2 -2
- package/scripts/auto-ok/auto-ok-author.ts +53 -0
- package/scripts/auto-ok/auto-ok-cli.ts +20 -9
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-drive-cli.ts +6 -1
- package/scripts/backlog/backlog-drive-hold.ts +3 -3
- package/scripts/backlog/backlog-drive-idle.ts +10 -0
- package/scripts/backlog/backlog-drive-launch-pass.ts +90 -0
- package/scripts/backlog/backlog-drive-launch.ts +8 -2
- package/scripts/backlog/backlog-drive-named-offer.ts +73 -30
- package/scripts/backlog/backlog-drive-named.ts +28 -7
- package/scripts/backlog/backlog-drive-paused.ts +5 -4
- package/scripts/backlog/backlog-drive-restore.ts +11 -3
- package/scripts/backlog/backlog-drive.ts +21 -60
- package/scripts/backlog/backlog-gate-scope.ts +61 -0
- package/scripts/backlog/backlog-measure-close.ts +112 -0
- package/scripts/backlog/backlog-next.ts +39 -49
- package/scripts/backlog/backlog-occupied.ts +2 -2
- package/scripts/backlog/backlog-overlap.ts +42 -8
- package/scripts/backlog/backlog-plan-cli.ts +4 -1
- package/scripts/backlog/backlog-plan-comment.ts +81 -0
- package/scripts/backlog/backlog-plan-read.ts +19 -6
- package/scripts/backlog/backlog-pool.ts +50 -12
- package/scripts/backlog/backlog-rank.ts +60 -13
- package/scripts/backlog/backlog-stalled-detect.ts +2 -1
- package/scripts/backlog/backlog-waves.ts +17 -2
- package/scripts/backlog/backlogrun-launch.ts +7 -4
- package/scripts/cost-runtime/context-cut-payback.ts +27 -25
- package/scripts/cost-runtime/cost-cli.ts +37 -16
- package/scripts/cost-runtime/cost-pricing.ts +9 -0
- package/scripts/cost-runtime/cost-verdict.ts +4 -1
- package/scripts/delegation/delegation-policy.ts +2 -2
- package/scripts/delegation/duplicate-read-guard.ts +1 -0
- package/scripts/delegation/investigation-guard.ts +14 -2
- package/scripts/delegation/investigation-reads.ts +45 -23
- package/scripts/dependabot/dependabot-cooldown.ts +3 -2
- package/scripts/discovery/repo-party.ts +80 -20
- package/scripts/discovery/session-owner-pin.ts +51 -0
- package/scripts/document/capped-print.ts +1 -1
- package/scripts/document/command-reference-line-budget.ts +42 -0
- package/scripts/document/document-byte-budget.ts +17 -7
- package/scripts/document/document-checks.ts +20 -0
- package/scripts/document/document-ratchet-check.ts +101 -0
- package/scripts/document/document-section.ts +1 -0
- package/scripts/document/entry-read-budget.ts +7 -3
- package/scripts/document/issue-citation-budget.ts +94 -0
- package/scripts/epic/epic-cli-argv.ts +2 -2
- package/scripts/epic/epic-fetch.ts +4 -2
- package/scripts/epic/epic-graph.ts +7 -2
- package/scripts/epic/epic-issue.ts +3 -1
- package/scripts/epic/epic-rank.ts +5 -0
- package/scripts/exports/unused-members-check.ts +62 -0
- package/scripts/exports/unused-members-cli.ts +6 -51
- package/scripts/followup/followup-ci-path.ts +67 -0
- package/scripts/followup/followup-coderabbit-retrigger.ts +261 -0
- package/scripts/followup/followup-coderabbit-wait.ts +13 -10
- package/scripts/followup/followup-failed-tests.ts +160 -0
- package/scripts/followup/followup-job-needs.ts +100 -0
- package/scripts/followup/followup-job-rerun.ts +303 -0
- package/scripts/followup/followup-main-move.ts +113 -0
- package/scripts/followup/git-followup-finish.ts +43 -11
- package/scripts/followup/git-followup-pending.ts +3 -3
- package/scripts/followup/git-followup-stages.ts +41 -11
- package/scripts/followup/git-pr-followup-checks.ts +55 -16
- package/scripts/followup/git-pr-followup-wrapup.ts +24 -5
- package/scripts/followup/git-pr-followup.ts +62 -27
- package/scripts/fresh-machine/fresh-machine-script.ts +5 -9
- package/scripts/fresh-machine/specs/kit-test-backlogrun-python.json +2 -2
- package/scripts/fresh-machine/specs/kit-test-backlogrun.json +2 -2
- package/scripts/gate/busy-average.ts +34 -2
- package/scripts/gate/check-related-pinned.ts +43 -0
- package/scripts/gate/check-related-reuse.ts +64 -0
- package/scripts/gate/check-related-section.ts +57 -0
- package/scripts/gate/check-related-unplanned.ts +34 -0
- package/scripts/gate/check-related.ts +265 -0
- package/scripts/gate/command-memory.ts +1 -1
- package/scripts/gate/core-admission.ts +24 -6
- package/scripts/gate/core-budget-timing.ts +20 -6
- package/scripts/gate/core-budget.ts +40 -11
- package/scripts/gate/core-wait-record.ts +3 -2
- package/scripts/gate/core-wait.ts +25 -2
- package/scripts/gate/core-weights.ts +15 -7
- package/scripts/gate/gate-labels.ts +46 -0
- package/scripts/gate/gate-ledger.ts +14 -6
- package/scripts/gate/gate-plan.ts +103 -58
- package/scripts/gate/gate-report.ts +9 -7
- package/scripts/gate/gate-run-steps.ts +26 -3
- package/scripts/gate/gate-skip.ts +45 -6
- package/scripts/gate/gate-static-group.ts +60 -0
- package/scripts/gate/gate-steps.ts +2 -1
- package/scripts/gate/gate-tree.ts +4 -2
- package/scripts/gate/hook-gate-reuse.ts +19 -2
- package/scripts/gate/metrics-totals.ts +59 -0
- package/scripts/gate/scoped-green.ts +68 -15
- package/scripts/gate/since-green.ts +14 -6
- package/scripts/gate/structural-checks.ts +96 -0
- package/scripts/gate/verification-gate.ts +51 -16
- package/scripts/gate/verification-inputs.ts +21 -6
- package/scripts/gate/verification-tail.ts +52 -0
- package/scripts/gh/gh-author-association.ts +23 -2
- package/scripts/gh/git-ai-review-scan.ts +1 -1
- package/scripts/gh/git-gh-api-path.ts +12 -3
- package/scripts/gh/git-gh-comments-unreadable.ts +36 -0
- package/scripts/gh/git-gh-exec.ts +32 -2
- package/scripts/gh/git-gh-issue-read.ts +4 -2
- package/scripts/gh/git-gh-issue-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +8 -2
- package/scripts/gh/git-gh-issue.ts +12 -5
- package/scripts/gh/git-gh-pr-auto-merge.ts +13 -6
- package/scripts/gh/git-gh-pr-graphql-state.ts +56 -0
- package/scripts/gh/git-gh-pr-read.ts +74 -13
- package/scripts/gh/git-gh-pr-rest.ts +3 -1
- package/scripts/gh/git-gh-pr-snapshot.ts +22 -7
- package/scripts/gh/git-gh-pr-too-large.ts +20 -0
- package/scripts/gh/git-gh-pr.ts +21 -7
- package/scripts/gh/git-gh-retry.ts +141 -0
- package/scripts/gh/git-pr-ai-review.ts +15 -6
- package/scripts/gh/git-pr-checks-eval.ts +3 -0
- package/scripts/gh/git-pr-checks.ts +5 -5
- package/scripts/git/base-tree.ts +30 -0
- package/scripts/git/change-base.ts +4 -10
- package/scripts/git/changed-paths-sync.ts +63 -0
- package/scripts/git/changed-paths.ts +16 -1
- package/scripts/git/git-common-directory.ts +11 -1
- package/scripts/git/git-diff-reads.ts +66 -20
- package/scripts/git/git-error.ts +9 -2
- package/scripts/git/git-schemas.ts +13 -0
- package/scripts/git/git-worktree.ts +13 -0
- package/scripts/git/gone-branch.ts +4 -1
- package/scripts/git/main-merge-budget-conflict.ts +89 -0
- package/scripts/git/main-merge-guard.ts +55 -18
- package/scripts/git/main-merge-regenerate.ts +59 -25
- package/scripts/git/main-merge.ts +53 -5
- package/scripts/git/no-base-checkout.ts +127 -0
- package/scripts/git/stash/git-stash.ts +11 -2
- package/scripts/git/stash/stash-push-cli.ts +10 -0
- package/scripts/hooks/batch-guard.ts +40 -21
- package/scripts/hooks/edited-cspell.ts +37 -11
- package/scripts/hooks/format-edited-file.ts +22 -2
- package/scripts/hooks/lane-plan-guard.ts +50 -0
- package/scripts/hooks/pre-commit-lint-switch.ts +9 -0
- package/scripts/hooks/pre-commit-lint.ts +14 -1
- package/scripts/hooks/pre-push-related-switch.ts +10 -0
- package/scripts/hooks/pre-push-unit.ts +76 -10
- package/scripts/hooks/pretool-guard.ts +2 -0
- package/scripts/hooks/reserved-run.ts +14 -1
- package/scripts/hooks/run-hook.sh +23 -8
- package/scripts/hooks/step-zero-notice.ts +6 -1
- package/scripts/hooks/stop-actions.ts +3 -15
- package/scripts/hooks/stop-guard.ts +7 -6
- package/scripts/init/distributed-paths.ts +1 -0
- package/scripts/init/hook-command-rewrite.ts +5 -1
- package/scripts/init/hook-launch.ts +4 -2
- package/scripts/issue/aggregation-split.ts +52 -0
- package/scripts/issue/defect-origin-line.ts +19 -1
- package/scripts/issue/defect-rate-cli.ts +5 -102
- package/scripts/issue/defect-report.ts +4 -4
- package/scripts/issue/effect-audit-cli.ts +178 -0
- package/scripts/issue/effect-audit.ts +185 -0
- package/scripts/issue/expected-effect-lint.ts +64 -9
- package/scripts/issue/git-next-issues.ts +5 -0
- package/scripts/issue/issue-body-or-comment.ts +38 -4
- package/scripts/issue/issue-cite-cli.ts +1 -3
- package/scripts/issue/issue-classification.ts +1 -0
- package/scripts/issue/issue-closing-pr.ts +8 -1
- package/scripts/issue/issue-evidence-exit.ts +4 -2
- package/scripts/issue/issue-file-cap.ts +58 -0
- package/scripts/issue/issue-file-cli.ts +111 -38
- package/scripts/issue/issue-file-deferral.ts +52 -0
- package/scripts/issue/issue-file-fold.ts +29 -10
- package/scripts/issue/issue-file-interrupt.ts +85 -0
- package/scripts/issue/issue-file-lane-hint.ts +30 -0
- package/scripts/issue/issue-file.ts +43 -6
- package/scripts/issue/issue-labels.ts +19 -2
- package/scripts/issue/issue-lint-cli.ts +27 -2
- package/scripts/issue/issue-measured-cli.ts +13 -35
- package/scripts/issue/issue-measured-close.ts +58 -0
- package/scripts/issue/issue-not-before-label.ts +2 -2
- package/scripts/issue/issue-not-before.ts +4 -1
- package/scripts/issue/issue-priority-cli.ts +60 -0
- package/scripts/issue/issue-priority-raise.ts +55 -0
- package/scripts/issue/issue-priority.ts +174 -43
- package/scripts/issue/issue-rank.ts +21 -4
- package/scripts/issue/issue-read-cli.ts +32 -6
- package/scripts/issue/issue-read.ts +37 -12
- package/scripts/issue/issue-sample-gate.ts +95 -74
- package/scripts/issue/issue-sample-prime.ts +127 -0
- package/scripts/issue/issue-sample-required.ts +57 -0
- package/scripts/issue/issue-sample-source.ts +12 -11
- package/scripts/issue/issue-search.ts +124 -0
- package/scripts/issue/issue-state.ts +13 -1
- package/scripts/issue/issue-template-section.ts +43 -0
- package/scripts/issue/issue-watch-diff.ts +31 -1
- package/scripts/issue/issue-watch-hook.ts +11 -2
- package/scripts/issue/issue-watch.ts +55 -12
- package/scripts/issue/markdown-section.ts +1 -0
- package/scripts/issue/measure-declaration.ts +121 -0
- package/scripts/issue/measure-rerun-cli.ts +7 -70
- package/scripts/issue/plan-consumers-section.ts +22 -1
- package/scripts/issue/reproduction-measure.ts +3 -1
- package/scripts/issue/size-estimate.ts +90 -0
- package/scripts/issue/trusted-measure.ts +84 -0
- package/scripts/josh/command-usage.ts +3 -2
- package/scripts/josh/durable-state-migrate.ts +105 -0
- package/scripts/josh/durable-state.ts +112 -0
- package/scripts/josh/josh-aliases.ts +95 -0
- package/scripts/josh/josh-command-map.ts +1 -82
- package/scripts/josh/josh-commands-agent-hooks.ts +6 -6
- package/scripts/josh/josh-commands-ai.ts +5 -5
- package/scripts/josh/josh-commands-development.ts +59 -58
- package/scripts/josh/josh-commands-issue-write.ts +23 -4
- package/scripts/josh/josh-commands-issue.ts +32 -0
- package/scripts/josh/josh-commands-lane.ts +87 -4
- package/scripts/josh/josh-commands-lint.ts +16 -3
- package/scripts/josh/josh-commands-maintenance.ts +15 -0
- package/scripts/josh/josh-commands-review.ts +41 -6
- package/scripts/josh/josh-commands-ship.ts +56 -8
- package/scripts/josh/josh-commands-test-check.ts +80 -0
- package/scripts/josh/josh-commands-workflow.ts +1 -1
- package/scripts/josh/josh-environment-file.ts +43 -3
- package/scripts/josh/josh-in-process.ts +2 -2
- package/scripts/josh/josh-logic.ts +5 -3
- package/scripts/josh/josh-run.ts +19 -1
- package/scripts/josh/run-record-path.ts +15 -0
- package/scripts/josh/stamp-file.ts +11 -2
- package/scripts/lane/lane-adopt-cli.ts +98 -0
- package/scripts/lane/lane-adopt.ts +208 -0
- package/scripts/lane/lane-await.ts +5 -8
- package/scripts/lane/lane-baseline.ts +123 -0
- package/scripts/lane/lane-breakdown-cli.ts +64 -0
- package/scripts/lane/lane-breakdown-implement.ts +170 -0
- package/scripts/lane/lane-breakdown-laps.ts +107 -0
- package/scripts/lane/lane-breakdown-pinned.ts +76 -0
- package/scripts/lane/lane-breakdown-text.ts +145 -0
- package/scripts/lane/lane-breakdown.ts +239 -0
- package/scripts/lane/lane-check-stats.ts +29 -8
- package/scripts/lane/lane-child-invocation.ts +9 -2
- package/scripts/lane/lane-child-mark-keys.ts +12 -0
- package/scripts/lane/lane-child-marker.ts +20 -1
- package/scripts/lane/lane-ci-path-stats.ts +73 -0
- package/scripts/lane/lane-claim-stats.ts +84 -0
- package/scripts/lane/lane-close.ts +8 -3
- package/scripts/lane/lane-dispatch-log.ts +3 -3
- package/scripts/lane/lane-dispatch.ts +2 -2
- package/scripts/lane/lane-gap-stats.ts +7 -6
- package/scripts/lane/lane-guard-policy.ts +7 -1
- package/scripts/lane/lane-implement-stats.ts +207 -0
- package/scripts/lane/lane-implement-subagents.ts +90 -0
- package/scripts/lane/lane-investigation-switch.ts +16 -0
- package/scripts/lane/lane-ledger-kind.ts +31 -0
- package/scripts/lane/lane-ledger-schema-ship.ts +49 -0
- package/scripts/lane/lane-ledger-schema.ts +119 -36
- package/scripts/lane/lane-ledger-write.ts +257 -0
- package/scripts/lane/lane-ledger.ts +31 -177
- package/scripts/lane/lane-load.ts +1 -1
- package/scripts/lane/lane-measure-cli.ts +176 -59
- package/scripts/lane/lane-net-read.ts +44 -0
- package/scripts/lane/lane-net-time.ts +212 -0
- package/scripts/lane/lane-open.ts +16 -7
- package/scripts/lane/lane-output.ts +2 -4
- package/scripts/lane/lane-overrun-prompt.ts +147 -0
- package/scripts/lane/lane-overrun.ts +274 -0
- package/scripts/lane/lane-paths.ts +24 -1
- package/scripts/lane/lane-pause-cli.ts +4 -1
- package/scripts/lane/lane-paused-spans.ts +97 -0
- package/scripts/lane/lane-plan-check.ts +207 -0
- package/scripts/lane/lane-plan-cli.ts +41 -0
- package/scripts/lane/lane-plan.ts +144 -0
- package/scripts/lane/lane-registry.ts +14 -1
- package/scripts/lane/lane-relaunch.ts +1 -1
- package/scripts/lane/lane-round-one-stats.ts +51 -0
- package/scripts/lane/lane-sampler.ts +23 -4
- package/scripts/lane/lane-session-action.ts +93 -18
- package/scripts/lane/lane-session-broker.ts +49 -21
- package/scripts/lane/lane-session-reread-main.ts +14 -0
- package/scripts/lane/lane-session-reread.ts +51 -0
- package/scripts/lane/lane-ship-lap-stats.ts +74 -0
- package/scripts/lane/lane-sleep.ts +58 -0
- package/scripts/lane/lane-spent.ts +1 -1
- package/scripts/lane/lane-split-stats.ts +28 -0
- package/scripts/lane/lane-stage-stats.ts +13 -1
- package/scripts/lane/lane-state.ts +41 -9
- package/scripts/lane/lane-stats-tables.ts +58 -0
- package/scripts/lane/lane-stats.ts +21 -5
- package/scripts/lane/lane-stop-stats.ts +51 -19
- package/scripts/lane/lane-tail-stats.ts +32 -0
- package/scripts/lane/lane-transcript-calls.ts +67 -10
- package/scripts/lane/lane-transcript-stats.ts +44 -12
- package/scripts/lane/lane-value-cell.ts +72 -0
- package/scripts/lane/lane-value.ts +118 -0
- package/scripts/lane/lane-withdraw-closed.ts +124 -0
- package/scripts/lane/lane-withdraw.ts +108 -31
- package/scripts/lane/lane-yield.ts +85 -0
- package/scripts/lane/openai-lane-ship.ts +12 -11
- package/scripts/lane/openai-lane-supervisor-decision.ts +6 -8
- package/scripts/lane/openai-lane-supervisor-owner.ts +5 -8
- package/scripts/lane/openai-lane-supervisor.ts +5 -4
- package/scripts/lib/poll.ts +38 -9
- package/scripts/lib/settled-together.ts +10 -0
- package/scripts/lib/shell-quote.ts +21 -0
- package/scripts/lib/token-shape.ts +111 -0
- package/scripts/lint/eslint-daemon-sources.ts +79 -0
- package/scripts/lint/eslint-daemon.ts +45 -6
- package/scripts/lint/eslint-warm-cli.ts +7 -0
- package/scripts/lint/eslint-warm.ts +66 -0
- package/scripts/lint/import-graph.ts +141 -11
- package/scripts/lint/lint-gate-scope.ts +2 -2
- package/scripts/lint/lint-parallel.ts +54 -6
- package/scripts/lint/lint-related.ts +154 -33
- package/scripts/lint/rename-cli.ts +179 -0
- package/scripts/lint/rename-identifier.ts +192 -0
- package/scripts/lint/type-only-imports.ts +58 -0
- package/scripts/notify/telegram-notify.ts +12 -3
- package/scripts/observations/observation-record.ts +42 -16
- package/scripts/observations/observations-flush.ts +32 -9
- package/scripts/overrides/overrides-check.ts +9 -1
- package/scripts/release/release-approval-prune.ts +7 -1
- package/scripts/repo/required-checks-logic.ts +4 -1
- package/scripts/repo/ruleset-check.ts +4 -3
- package/scripts/report/markdown-shape.ts +28 -0
- package/scripts/report/report-format-reference.ts +15 -1
- package/scripts/report/report-labels.ts +12 -1
- package/scripts/report/report-lint-child-summary.ts +94 -0
- package/scripts/report/report-lint-cli.ts +26 -7
- package/scripts/report/report-lint.ts +2 -20
- package/scripts/review/prose-stale-cli.ts +88 -0
- package/scripts/review/prose-stale-scan.ts +152 -0
- package/scripts/review/review-attest.ts +73 -23
- package/scripts/review/review-brief-cli.ts +68 -19
- package/scripts/review/review-brief-paths.ts +22 -0
- package/scripts/review/review-brief.ts +14 -7
- package/scripts/review/review-comment-carry.ts +47 -0
- package/scripts/review/review-comment-round.ts +85 -22
- package/scripts/review/review-finding-ledger.ts +109 -7
- package/scripts/review/review-finding-text.ts +43 -0
- package/scripts/review/review-interaction.ts +11 -0
- package/scripts/review/review-lane-handover.ts +68 -0
- package/scripts/review/review-lint-cli.ts +57 -0
- package/scripts/review/review-lint-findings.ts +92 -0
- package/scripts/review/review-lint-sections.ts +80 -0
- package/scripts/review/review-lint.ts +221 -0
- package/scripts/review/review-prior-findings.ts +102 -0
- package/scripts/review/review-readers-scan.ts +4 -2
- package/scripts/review/review-record-cli.ts +177 -54
- package/scripts/review/review-record-code-round.ts +55 -0
- package/scripts/review/review-record-comment.ts +60 -0
- package/scripts/review/review-record-interaction.ts +35 -0
- package/scripts/review/review-record-pinned.ts +108 -0
- package/scripts/review/review-record.ts +25 -1
- package/scripts/review/review-reviewed-tree.ts +307 -0
- package/scripts/review/review-round-one-closure.ts +62 -0
- package/scripts/review/review-round-reuse.ts +106 -0
- package/scripts/review/review-round2-cli.ts +91 -29
- package/scripts/review/review-round2-skip-comment.ts +55 -0
- package/scripts/review/review-round2.ts +24 -8
- package/scripts/review/review-stamps.ts +7 -3
- package/scripts/review/review-stop-log.ts +20 -6
- package/scripts/review/review-stops-cli.ts +2 -1
- package/scripts/review/review-submit-cli.ts +101 -0
- package/scripts/rules/agent-model.ts +1 -1
- package/scripts/rules/bash-triggers.ts +3 -3
- package/scripts/rules/concise-reply.ts +88 -0
- package/scripts/rules/credential-body.ts +77 -0
- package/scripts/rules/decision-oracle.ts +1 -1
- package/scripts/rules/delivered-rules.ts +36 -17
- package/scripts/rules/destructive-command.ts +3 -11
- package/scripts/rules/direct-issue-comment.ts +34 -12
- package/scripts/rules/direct-issue-read.ts +191 -0
- package/scripts/rules/direct-pr-create.ts +4 -24
- package/scripts/rules/early-heartbeat.ts +2 -0
- package/scripts/rules/edit-tool.ts +27 -0
- package/scripts/rules/file-edit-rows.ts +17 -0
- package/scripts/rules/file-rewrite.ts +146 -0
- package/scripts/rules/firing-point.ts +3 -2
- package/scripts/rules/gh-api.ts +128 -7
- package/scripts/rules/gh-repo-selector.ts +84 -0
- package/scripts/rules/git-force.ts +2 -2
- package/scripts/rules/guard-remedy.ts +14 -5
- package/scripts/rules/implementation-cut.ts +61 -28
- package/scripts/rules/investigator-foreground.ts +231 -0
- package/scripts/rules/issue-citation.ts +15 -60
- package/scripts/rules/issue-comments.ts +9 -4
- package/scripts/rules/josh-git-bare.ts +1 -1
- package/scripts/rules/lane-background.ts +41 -13
- package/scripts/rules/lane-direct-tool.ts +107 -9
- package/scripts/rules/lane-interactive-ask.ts +4 -1
- package/scripts/rules/lane-park.ts +4 -2
- package/scripts/rules/lane-spilled-read.ts +90 -0
- package/scripts/rules/lane-split-park.ts +1 -1
- package/scripts/rules/lane-switch-main.ts +4 -4
- package/scripts/rules/last-prompt.ts +20 -47
- package/scripts/rules/oracle-consulted.ts +1 -1
- package/scripts/rules/permission-guards.ts +5 -1
- package/scripts/rules/piped-verification-shapes.ts +110 -0
- package/scripts/rules/piped-verification.ts +67 -17
- package/scripts/rules/poll-loop.ts +72 -9
- package/scripts/rules/pr-merge.ts +5 -5
- package/scripts/rules/pre-gate-cut.ts +3 -3
- package/scripts/rules/protected-files.ts +88 -24
- package/scripts/rules/reply-language.ts +3 -17
- package/scripts/rules/reply-prose.ts +34 -0
- package/scripts/rules/repo-admin.ts +132 -0
- package/scripts/rules/reviewer-foreground.ts +88 -0
- package/scripts/rules/round-one-check-related.ts +120 -0
- package/scripts/rules/rule-body-guard.ts +5 -15
- package/scripts/rules/rule-value-cache.ts +53 -5
- package/scripts/rules/rule-value-candidates.ts +84 -0
- package/scripts/rules/rule-value-cli.ts +59 -11
- package/scripts/rules/rule-value.ts +17 -4
- package/scripts/rules/run-tail-rule.ts +1 -1
- package/scripts/rules/sed-in-place.ts +196 -0
- package/scripts/rules/shell-segments.ts +10 -2
- package/scripts/rules/stop-rule-rows.ts +1 -13
- package/scripts/rules/stop-rules.ts +33 -58
- package/scripts/rules/test-declared-commit.ts +1 -1
- package/scripts/rules/third-party-write.ts +110 -23
- package/scripts/rules/timed-rerun.ts +1 -1
- package/scripts/rules/turn-filings.ts +90 -0
- package/scripts/rules/worktree-guard.ts +22 -7
- package/scripts/run/board/run-board-ending-reason.ts +6 -2
- package/scripts/run/board/run-board-fit.ts +24 -1
- package/scripts/run/board/run-board-found.ts +134 -0
- package/scripts/run/board/run-board-header.ts +8 -0
- package/scripts/run/board/run-board-labels.ts +11 -1
- package/scripts/run/board/run-board-lane-time.ts +1 -0
- package/scripts/run/board/run-board-link.ts +15 -2
- package/scripts/run/board/run-board-notes.ts +7 -1
- package/scripts/run/board/run-board-operation.ts +4 -2
- package/scripts/run/board/run-board-phase.ts +2 -5
- package/scripts/run/board/run-board-plan.ts +1 -1
- package/scripts/run/board/run-board-read.ts +46 -1
- package/scripts/run/board/run-board-reason.ts +20 -8
- package/scripts/run/board/run-board-render-checks.ts +3 -2
- package/scripts/run/board/run-board-render-drawn.ts +11 -0
- package/scripts/run/board/run-board-render-found.ts +157 -0
- package/scripts/run/board/run-board-render-lead.ts +9 -0
- package/scripts/run/board/run-board-render-legend.ts +19 -0
- package/scripts/run/board/run-board-render-tail.ts +1 -1
- package/scripts/run/board/run-board-render.ts +82 -18
- package/scripts/run/board/run-board-spin.ts +1 -3
- package/scripts/run/board/run-board-status.ts +2 -0
- package/scripts/run/board/run-board-tick.ts +39 -10
- package/scripts/run/carry/run-carry-ended.ts +3 -2
- package/scripts/run/carry/run-carry.ts +3 -2
- package/scripts/run/cut/run-cut-cli.ts +33 -133
- package/scripts/run/cut/run-cut-digest.ts +152 -0
- package/scripts/run/cut/run-cut-handoff.ts +52 -8
- package/scripts/run/cut/run-cut-report.ts +24 -3
- package/scripts/run/cut/run-cut-resume.ts +129 -0
- package/scripts/run/cut/run-cut-review.ts +105 -0
- package/scripts/run/cut/run-cut.ts +18 -7
- package/scripts/run/detached-launch.ts +1 -1
- package/scripts/run/entry/run-entry-cli.ts +88 -19
- package/scripts/run/entry/run-entry-spill.ts +83 -0
- package/scripts/run/entry/run-entry-stop.ts +5 -1
- package/scripts/run/entry/run-entry-trust.ts +91 -0
- package/scripts/run/event/run-event-baseline.ts +56 -0
- package/scripts/run/event/run-event-filed.ts +9 -3
- package/scripts/run/event/run-event-overrun.ts +197 -0
- package/scripts/run/event/run-event-render.ts +4 -0
- package/scripts/run/event/run-event-stream.ts +25 -3
- package/scripts/run/hold/run-stop-notify.ts +3 -8
- package/scripts/run/merge/run-merge-cap.ts +57 -0
- package/scripts/run/merge/run-merge-cli.ts +66 -23
- package/scripts/run/merge/run-merge-outcome.ts +2 -0
- package/scripts/run/merge/run-merge-ship.ts +13 -3
- package/scripts/run/merge/run-merge-signals.ts +40 -23
- package/scripts/run/merge/run-merge-steps.ts +56 -36
- package/scripts/run/merge/run-merge-usage-limit.ts +53 -0
- package/scripts/run/merge/run-merge-withdrawn.ts +53 -0
- package/scripts/run/merge/run-merge.ts +41 -14
- package/scripts/run/review/run-review-cli.ts +306 -20
- package/scripts/run/review/run-review-early-push.ts +121 -0
- package/scripts/run/review/run-review-join-read.ts +94 -0
- package/scripts/run/review/run-review-pinned-accepted.ts +126 -0
- package/scripts/run/review/run-review-pinned-join.ts +216 -0
- package/scripts/run/review/run-review-pinned-steps.ts +383 -0
- package/scripts/run/review/run-review-pinned-tree.ts +37 -0
- package/scripts/run/review/run-review-pinned.ts +53 -0
- package/scripts/run/review/run-review-steps.ts +70 -34
- package/scripts/run/review/run-review.ts +26 -6
- package/scripts/run/run-parent-cut-hook.ts +3 -4
- package/scripts/run/run-prep.ts +1 -0
- package/scripts/run/run-stage-read.ts +2 -6
- package/scripts/run/run-step-cli.ts +17 -5
- package/scripts/run/run-step-lane-plan.ts +27 -0
- package/scripts/run/run-step-section.ts +26 -7
- package/scripts/run/run-step.ts +5 -2
- package/scripts/run/ship/run-ship-args.ts +19 -0
- package/scripts/run/ship/run-ship-brokered-review.ts +106 -0
- package/scripts/run/ship/run-ship-cli.ts +131 -39
- package/scripts/run/ship/run-ship-conflict-probe.ts +59 -0
- package/scripts/run/ship/run-ship-detach.ts +10 -4
- package/scripts/run/ship/run-ship-handover.ts +106 -0
- package/scripts/run/ship/run-ship-infra-retry.ts +16 -1
- package/scripts/run/ship/run-ship-lap.ts +63 -0
- package/scripts/run/ship/run-ship-next.ts +27 -26
- package/scripts/run/ship/run-ship-overlap.ts +8 -3
- package/scripts/run/ship/run-ship-place.ts +9 -2
- package/scripts/run/ship/run-ship-planned.ts +92 -0
- package/scripts/run/ship/run-ship-pre-detach-pinned.ts +197 -0
- package/scripts/run/ship/run-ship-pre-detach-timed.ts +7 -8
- package/scripts/run/ship/run-ship-pre-detach.ts +77 -23
- package/scripts/run/ship/run-ship-preflight.ts +16 -4
- package/scripts/run/ship/run-ship-probe.ts +23 -9
- package/scripts/run/ship/run-ship-relaunch-cap.ts +43 -7
- package/scripts/run/ship/run-ship-relaunch.ts +51 -0
- package/scripts/run/ship/run-ship-return.ts +103 -29
- package/scripts/run/ship/run-ship-review-reason.ts +24 -0
- package/scripts/run/ship/run-ship-review-steps.ts +230 -59
- package/scripts/run/ship/run-ship-review.ts +171 -51
- package/scripts/run/ship/run-ship-reviewer.ts +138 -42
- package/scripts/run/ship/run-ship-scoped.ts +39 -10
- package/scripts/run/ship/run-ship-stage.ts +49 -13
- package/scripts/run/ship/run-ship-steps.ts +24 -4
- package/scripts/run/ship/run-ship-stop-cause.ts +43 -2
- package/scripts/run/ship/run-ship-stop-context.ts +50 -13
- package/scripts/run/ship/run-ship-sync.ts +171 -30
- package/scripts/run/ship/run-ship-synced-scope.ts +178 -0
- package/scripts/run/ship/run-ship-wait-cli.ts +145 -0
- package/scripts/run/ship/run-ship-waiter.ts +114 -0
- package/scripts/run/ship/run-ship.ts +16 -2
- package/scripts/run/wake/run-wake-caffeinate.ts +48 -0
- package/scripts/run/wake/run-wake-cli.ts +6 -113
- package/scripts/run/wake/run-wake-code.ts +53 -11
- package/scripts/run/wake/run-wake-driver.ts +5 -3
- package/scripts/run/wake/run-wake-finish.ts +137 -0
- package/scripts/run/wake/run-wake-loop.ts +5 -3
- package/scripts/run/wake/run-wake-ports.ts +11 -3
- package/scripts/run/wake/run-wake-session.ts +2 -0
- package/scripts/run/wake/run-wake.ts +3 -2
- package/scripts/safe-chain/ci-installer-pin.ts +49 -8
- package/scripts/safe-chain/project-config.ts +3 -2
- package/scripts/security/secretlint-scan.ts +42 -9
- package/scripts/security/security-audit-provision-main.ts +9 -1
- package/scripts/security/security-audit-provision.ts +1 -1
- package/scripts/security/security-audit.ts +21 -1
- package/scripts/security/sonar-file.ts +10 -5
- package/scripts/split/split-assess.ts +12 -3
- package/scripts/split/split-early-notice.ts +116 -0
- package/scripts/split/split-measure.ts +20 -2
- package/scripts/split/split-resolution.ts +107 -0
- package/scripts/test/direct-importers.ts +185 -0
- package/scripts/test/pure-files-entries.ts +83 -0
- package/scripts/test/related-heavy-tests.ts +81 -0
- package/scripts/test/test-no-base.ts +88 -0
- package/scripts/test/test-pinned-cache-logic.ts +363 -0
- package/scripts/test/test-pinned-cache.ts +337 -0
- package/scripts/test/test-pinned-emit.ts +49 -0
- package/scripts/test/test-pinned-functions.ts +116 -0
- package/scripts/test/test-pinned-ledger.ts +80 -0
- package/scripts/test/test-pinned-logic.ts +208 -20
- package/scripts/test/test-pinned-main.ts +84 -18
- package/scripts/test/test-pinned-pool.ts +73 -0
- package/scripts/test/test-pinned-probe.ts +254 -0
- package/scripts/test/test-pinned-prune-logic.ts +118 -0
- package/scripts/test/test-pinned-reach.ts +194 -0
- package/scripts/test/test-pinned-record.ts +196 -0
- package/scripts/test/test-pinned-rewire.ts +148 -0
- package/scripts/test/test-pinned-spawn.ts +81 -0
- package/scripts/test/test-pinned-stage.ts +70 -0
- package/scripts/test/test-pinned.ts +258 -47
- package/scripts/test/test-reach-cli.ts +61 -0
- package/scripts/test/test-read-map.ts +35 -11
- package/scripts/test/test-read-recording.ts +17 -5
- package/scripts/test/test-read-trace.ts +26 -8
- package/scripts/test/test-red-logic.ts +46 -7
- package/scripts/test/test-red.ts +34 -14
- package/scripts/test/test-related-claim.ts +37 -0
- package/scripts/test/test-related-main.ts +4 -1
- package/scripts/test/test-related-moved.ts +91 -0
- package/scripts/test/test-related-record.ts +43 -23
- package/scripts/test/test-related-scope.ts +99 -34
- package/scripts/test/test-related-synced.ts +135 -0
- package/scripts/test/test-related-touched.ts +84 -0
- package/scripts/test/test-related.ts +167 -83
- package/scripts/test/test-unit-guard.ts +28 -5
- package/scripts/test/unit-durations.ts +41 -0
- package/scripts/test/unit-worker-share.ts +5 -4
- package/scripts/test/vitest-cache-directory.ts +19 -0
- package/scripts/test/vitest-cli-excludes.ts +14 -0
- package/scripts/test/vitest-failure-summary.ts +111 -0
- package/scripts/test/whole-suite-files.ts +12 -1
- package/scripts/time-runtime/time-batch-guard.ts +42 -4
- package/scripts/time-runtime/time-bundle-call.ts +1 -1
- package/scripts/time-runtime/time-bundles.ts +36 -5
- package/scripts/time-runtime/time-markers.ts +2 -2
- package/scripts/time-runtime/time-search-call.ts +38 -0
- package/scripts/time-runtime/time-shell.ts +1 -1
- package/scripts/time-runtime/time-transcript-line.ts +17 -5
- package/scripts/version/development-engines-verdict.ts +124 -0
- package/scripts/version/latest-corepack.ts +2 -0
- package/templates/gitignore +2 -0
- package/templates/workflows/ci.yml +41 -0
- package/dist/hooks/chunk-AZX4FGQ3.js +0 -207
- package/dist/hooks/chunk-PT5R6UJD.js +0 -7131
- package/dist/hooks/chunk-TUIFS5E7.js +0 -72
- package/dist/hooks/chunk-YCDOIR3I.js +0 -3456
- package/scripts/cost-runtime/context-cut-threshold.ts +0 -11
- package/scripts/rules/filing-cap.ts +0 -139
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ports } from '#ports'
|
|
2
|
-
import {
|
|
2
|
+
import { core_weights } from '#scripts/gate/core-weights'
|
|
3
3
|
import { gate_plan } from '#scripts/gate/gate-plan'
|
|
4
4
|
import { GATE_COMMAND, type CommandEntry } from './josh-command-types'
|
|
5
5
|
import { AGENT_HOOK_COMMANDS } from './josh-commands-agent-hooks'
|
|
6
|
+
import { TEST_CHECK_COMMANDS } from './josh-commands-test-check'
|
|
6
7
|
|
|
7
8
|
const NARROWED = { arguments: 'scripts/thing.ts', note: 'narrow by the given files instead' }
|
|
8
9
|
// The unseeded ports are read from `ports/index.js`, their one definition (#818).
|
|
@@ -11,7 +12,6 @@ const UNSEEDED: Readonly<Record<string, string | undefined>> = {}
|
|
|
11
12
|
const FILE_ARGUMENTS = '[files...]'
|
|
12
13
|
const REQUIRED_FILE_ARGUMENTS = '<files...>'
|
|
13
14
|
const FILTER_ARGUMENTS = '[filters...]'
|
|
14
|
-
const MATCH_ARGUMENTS = '[--match]'
|
|
15
15
|
const PATH_ARGUMENTS = '<path...>'
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -29,7 +29,11 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
29
29
|
script: 'scripts/gate/verification-gate.ts',
|
|
30
30
|
description: 'Run lint, type check, spell check and unit tests concurrently',
|
|
31
31
|
category: 'Development',
|
|
32
|
-
reference: [
|
|
32
|
+
reference: [
|
|
33
|
+
'[--verbose|--force|--no-unit|--static-group=<group>]',
|
|
34
|
+
'developer',
|
|
35
|
+
['files', 'processes'],
|
|
36
|
+
],
|
|
33
37
|
usage: {
|
|
34
38
|
examples: [
|
|
35
39
|
{ arguments: '' },
|
|
@@ -44,8 +48,8 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
44
48
|
description: 'Check code with prettier and eslint (skips a tool a basic project lacks)',
|
|
45
49
|
category: 'Development',
|
|
46
50
|
reference: ['[--changed]', 'developer', ['processes']],
|
|
47
|
-
core_weight:
|
|
48
|
-
memory_mb:
|
|
51
|
+
core_weight: core_weights.CORE_WEIGHTS.lint,
|
|
52
|
+
memory_mb: core_weights.MEMORY_MB.lint,
|
|
49
53
|
usage: {
|
|
50
54
|
examples: [
|
|
51
55
|
{ arguments: '' },
|
|
@@ -55,11 +59,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
55
59
|
},
|
|
56
60
|
'lint:related': {
|
|
57
61
|
script: 'scripts/lint/lint-related.ts',
|
|
58
|
-
description:
|
|
62
|
+
description:
|
|
63
|
+
'Check only the changed files with prettier and eslint, and in kit the source guard tests (whole tree on fallback)',
|
|
59
64
|
category: 'Development',
|
|
60
65
|
reference: [FILE_ARGUMENTS, 'developer', ['processes']],
|
|
61
|
-
core_weight:
|
|
62
|
-
memory_mb:
|
|
66
|
+
core_weight: core_weights.CORE_WEIGHTS.lint,
|
|
67
|
+
memory_mb: core_weights.MEMORY_MB.lint,
|
|
63
68
|
usage: { examples: [{ arguments: '' }, NARROWED] },
|
|
64
69
|
},
|
|
65
70
|
lines: {
|
|
@@ -67,8 +72,8 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
67
72
|
description: "Print a file's code lines against the max-lines limit and the headroom left",
|
|
68
73
|
category: 'Development',
|
|
69
74
|
reference: [REQUIRED_FILE_ARGUMENTS, 'developer', ['none']],
|
|
70
|
-
core_weight:
|
|
71
|
-
memory_mb:
|
|
75
|
+
core_weight: core_weights.CORE_WEIGHTS.eslint_scan,
|
|
76
|
+
memory_mb: core_weights.MEMORY_MB.eslint_scan,
|
|
72
77
|
usage: {
|
|
73
78
|
examples: [{ arguments: 'scripts/hooks/format-edited-file.ts scripts/josh/josh-logic.ts' }],
|
|
74
79
|
},
|
|
@@ -79,12 +84,12 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
79
84
|
'Print repository-wide quality totals and durations, and fail when a total grew past the merge-base or a duration past its baseline',
|
|
80
85
|
category: 'Development',
|
|
81
86
|
reference: [
|
|
82
|
-
'[--no-startup | --totals-only | --accept --reason "<why>"]',
|
|
87
|
+
'[--no-startup | --totals-only [--rerecord] | --accept --reason "<why>"]',
|
|
83
88
|
'developer',
|
|
84
89
|
['files'],
|
|
85
90
|
],
|
|
86
|
-
core_weight:
|
|
87
|
-
memory_mb:
|
|
91
|
+
core_weight: core_weights.CORE_WEIGHTS.eslint_scan,
|
|
92
|
+
memory_mb: core_weights.MEMORY_MB.metrics,
|
|
88
93
|
is_kit_only: true,
|
|
89
94
|
usage: {
|
|
90
95
|
examples: [
|
|
@@ -99,8 +104,8 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
99
104
|
'List refactoring candidates in the changed scope by category and answer clear/candidates',
|
|
100
105
|
category: 'Development',
|
|
101
106
|
reference: ['', 'automation', ['processes']],
|
|
102
|
-
core_weight:
|
|
103
|
-
memory_mb:
|
|
107
|
+
core_weight: core_weights.CORE_WEIGHTS.eslint_scan,
|
|
108
|
+
memory_mb: core_weights.MEMORY_MB.eslint_scan,
|
|
104
109
|
usage: { examples: [{ arguments: '' }] },
|
|
105
110
|
},
|
|
106
111
|
bytes: {
|
|
@@ -121,10 +126,11 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
121
126
|
description:
|
|
122
127
|
"Print each delivered rule's unaided compliance — runs reached, kept rate, refusals",
|
|
123
128
|
category: 'AI tools',
|
|
124
|
-
reference: ['[--refresh]', 'developer', ['files']],
|
|
129
|
+
reference: ['[--fresh | --refresh]', 'developer', ['files']],
|
|
125
130
|
usage: {
|
|
126
131
|
examples: [
|
|
127
|
-
{ arguments: '' },
|
|
132
|
+
{ arguments: '', note: 'a reading cached under 15 minutes ago, else measure' },
|
|
133
|
+
{ arguments: '--fresh', note: 'measure now, whatever the cache holds' },
|
|
128
134
|
{
|
|
129
135
|
arguments: '--refresh',
|
|
130
136
|
note: 'write the reading to the loop-head cache instead of stdout',
|
|
@@ -147,16 +153,46 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
147
153
|
reference: ['', 'developer', ['files', 'processes']],
|
|
148
154
|
usage: { examples: [{ arguments: '' }] },
|
|
149
155
|
},
|
|
156
|
+
rename: {
|
|
157
|
+
script: 'scripts/lint/rename-cli.ts',
|
|
158
|
+
description:
|
|
159
|
+
'Rename an identifier, and the import specifier it moved with, across files through the TypeScript parse tree',
|
|
160
|
+
category: 'Development',
|
|
161
|
+
reference: [
|
|
162
|
+
'<old-identifier> <new-identifier> [--import <old-specifier> <new-specifier>] <file...>',
|
|
163
|
+
'automation',
|
|
164
|
+
['files', 'processes'],
|
|
165
|
+
],
|
|
166
|
+
usage: {
|
|
167
|
+
examples: [
|
|
168
|
+
{ arguments: 'old_name new_name scripts/a.ts scripts/b.ts' },
|
|
169
|
+
{
|
|
170
|
+
arguments:
|
|
171
|
+
"lane_ledger lane_ledger_write --import '#scripts/lane/lane-ledger' '#scripts/lane/lane-ledger-write' scripts/gate/core-wait-record.ts",
|
|
172
|
+
note: 'the identifier and its module together',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
},
|
|
150
177
|
...AGENT_HOOK_COMMANDS,
|
|
151
178
|
'cspell:dot': {
|
|
152
179
|
script: 'scripts/lint/cspell-cached.ts',
|
|
153
180
|
description: 'Run spell check including dotfiles',
|
|
154
181
|
category: 'Development',
|
|
155
182
|
reference: ['', 'developer', ['processes']],
|
|
156
|
-
core_weight:
|
|
157
|
-
memory_mb:
|
|
183
|
+
core_weight: core_weights.CORE_WEIGHTS.spell_check,
|
|
184
|
+
memory_mb: core_weights.MEMORY_MB.spell_check,
|
|
158
185
|
usage: { examples: [{ arguments: '', note: 'includes dotfiles' }] },
|
|
159
186
|
},
|
|
187
|
+
'check:related': {
|
|
188
|
+
script: 'scripts/gate/check-related.ts',
|
|
189
|
+
description: 'Run related lint, unit, type and dotfile spelling checks in parallel',
|
|
190
|
+
category: 'Development',
|
|
191
|
+
reference: ['', 'developer', ['processes']],
|
|
192
|
+
usage: {
|
|
193
|
+
examples: [{ arguments: '' }, { arguments: '--full', note: 'whole outputs' }],
|
|
194
|
+
},
|
|
195
|
+
},
|
|
160
196
|
behavior: {
|
|
161
197
|
script: 'scripts/behavior/behavior-cli.ts',
|
|
162
198
|
description:
|
|
@@ -187,51 +223,16 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
187
223
|
description: 'Run only the unit tests related to the changed files (full suite on fallback)',
|
|
188
224
|
category: 'Development',
|
|
189
225
|
reference: [FILE_ARGUMENTS, 'developer', ['processes']],
|
|
190
|
-
...gate_plan.DIRECT_UNIT_CLAIM,
|
|
191
226
|
usage: {
|
|
192
227
|
examples: [
|
|
193
228
|
{ arguments: '' },
|
|
194
229
|
NARROWED,
|
|
230
|
+
{ arguments: '--touched', note: "only the diff's tests and its modules' same-named ones" },
|
|
195
231
|
{ arguments: '--silent', note: 'flags are forwarded to vitest' },
|
|
196
232
|
],
|
|
197
233
|
},
|
|
198
234
|
},
|
|
199
|
-
|
|
200
|
-
script: 'scripts/test/test-declared.ts',
|
|
201
|
-
description:
|
|
202
|
-
'Report whether the working-tree change needs a test (required/exempt/satisfied); --match checks Step 0 declarations on stdin',
|
|
203
|
-
category: 'Development',
|
|
204
|
-
reference: [MATCH_ARGUMENTS, 'developer', ['processes']],
|
|
205
|
-
usage: {
|
|
206
|
-
examples: [
|
|
207
|
-
{ arguments: '' },
|
|
208
|
-
{ arguments: '--match', note: 'check Step 0 declarations on stdin' },
|
|
209
|
-
{ arguments: '--help', note: 'print usage, including the --match stdin form' },
|
|
210
|
-
],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
'test:red': {
|
|
214
|
-
script: 'scripts/test/test-red-main.ts',
|
|
215
|
-
description:
|
|
216
|
-
'Run the changed unit tests against the pre-fix tree (merge-base worktree) and report red/green/no-test/test-only',
|
|
217
|
-
category: 'Development',
|
|
218
|
-
reference: ['', 'developer', ['git', 'processes']],
|
|
219
|
-
usage: { examples: [{ arguments: '', note: 'red, green, no-test or test-only' }] },
|
|
220
|
-
},
|
|
221
|
-
'test:pinned': {
|
|
222
|
-
script: 'scripts/test/test-pinned-main.ts',
|
|
223
|
-
description:
|
|
224
|
-
'Revert each changed non-test hunk in a HEAD worktree, run its related tests, and list the hunks no test went red on',
|
|
225
|
-
category: 'Development',
|
|
226
|
-
reference: ['[--max <n>]', 'developer', ['git', 'processes']],
|
|
227
|
-
...gate_plan.DIRECT_UNIT_CLAIM,
|
|
228
|
-
usage: {
|
|
229
|
-
examples: [
|
|
230
|
-
{ arguments: '', note: 'unpinned / unchecked <file>:<line> lines' },
|
|
231
|
-
{ arguments: '--max 5', note: 'check at most 5 hunks; the rest print as unchecked' },
|
|
232
|
-
],
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
+
...TEST_CHECK_COMMANDS,
|
|
235
236
|
disposition: {
|
|
236
237
|
script: 'scripts/review/disposition-cli.ts',
|
|
237
238
|
description:
|
|
@@ -267,8 +268,8 @@ const DEV_COMMANDS: Record<string, CommandEntry> = {
|
|
|
267
268
|
description: 'Type-check with tsc (skips a basic project with no TypeScript to check)',
|
|
268
269
|
category: 'Development',
|
|
269
270
|
reference: ['[arguments...]', 'developer', ['processes']],
|
|
270
|
-
core_weight:
|
|
271
|
-
memory_mb:
|
|
271
|
+
core_weight: core_weights.CORE_WEIGHTS.type_check,
|
|
272
|
+
memory_mb: core_weights.MEMORY_MB.type_check,
|
|
272
273
|
usage: { examples: [{ arguments: '' }] },
|
|
273
274
|
},
|
|
274
275
|
port: {
|
|
@@ -107,13 +107,17 @@ const ISSUE_WRITE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
107
107
|
category: 'AI tools',
|
|
108
108
|
// Releasing the hold runs `run:hold`, which reaches the stop confirmation.
|
|
109
109
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
110
|
-
reference: [EVIDENCE_REFERENCE
|
|
110
|
+
reference: [`${EVIDENCE_REFERENCE} [--unmet]`, 'automation', ['network', 'files']],
|
|
111
111
|
usage: {
|
|
112
112
|
examples: [
|
|
113
113
|
{
|
|
114
114
|
arguments: '4452 --evidence-file .josh/tmp/measured.md',
|
|
115
115
|
note: 'comment, label, close, release — in that order',
|
|
116
116
|
},
|
|
117
|
+
{
|
|
118
|
+
arguments: '4452 --unmet --evidence-file .josh/tmp/measured.md',
|
|
119
|
+
note: 'the measurement fell short of the expected effect: measured:unmet as well',
|
|
120
|
+
},
|
|
117
121
|
],
|
|
118
122
|
flags: [
|
|
119
123
|
{
|
|
@@ -121,16 +125,21 @@ const ISSUE_WRITE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
121
125
|
description:
|
|
122
126
|
'the result comment: per acceptance criterion, the measurement and the run it came from. An empty file is refused before anything is written.',
|
|
123
127
|
},
|
|
128
|
+
{
|
|
129
|
+
names: ['--unmet'],
|
|
130
|
+
description:
|
|
131
|
+
'the measurement fell short of the expected effect it checked; adds the measured:unmet label `josh effect:audit` reads',
|
|
132
|
+
},
|
|
124
133
|
],
|
|
125
134
|
},
|
|
126
135
|
},
|
|
127
136
|
'issue:file': {
|
|
128
137
|
script: 'scripts/issue/issue-file-cli.ts',
|
|
129
138
|
description:
|
|
130
|
-
'File an Issue with every filing step: lint, Origin,
|
|
139
|
+
'File an Issue with every filing step: filing cap, fold, local checks (lint, Origin, auto-ok label), start condition and WIP cap, then the duplicate scout once none refuses, labels, then epic:bundle',
|
|
131
140
|
category: 'AI tools',
|
|
132
141
|
reference: [
|
|
133
|
-
'<title> --body-file <path> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,…>] [--over-cap] [--no-auto-ok] [--release]',
|
|
142
|
+
'<title> --body-file <path> [--route <route>] [--label <name>] [--repo <owner/repo>] [--distinct <N,…>] [--found-during <N>] [--over-cap] [--no-auto-ok] [--release] [--blocks-finder]',
|
|
134
143
|
'automation',
|
|
135
144
|
['network'],
|
|
136
145
|
],
|
|
@@ -159,9 +168,14 @@ const ISSUE_WRITE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
159
168
|
names: ['--distinct <N,…>'],
|
|
160
169
|
description: 'duplicate candidates you read and judged distinct.',
|
|
161
170
|
},
|
|
171
|
+
{
|
|
172
|
+
names: ['--found-during <N>'],
|
|
173
|
+
description:
|
|
174
|
+
'the Issue whose work the filing came from, when it is not the lane or branch Issue. The filing cap counts per origin (step 2); step 7 never holds it as a candidate here. #N gets a deferral comment.',
|
|
175
|
+
},
|
|
162
176
|
{
|
|
163
177
|
names: ['--over-cap'],
|
|
164
|
-
description: 'the run is blocked by this filing; the cap lets it through.',
|
|
178
|
+
description: 'the run is blocked by this filing; the WIP cap lets it through.',
|
|
165
179
|
},
|
|
166
180
|
{
|
|
167
181
|
names: ['--no-auto-ok'],
|
|
@@ -172,6 +186,11 @@ const ISSUE_WRITE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
172
186
|
description:
|
|
173
187
|
"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
188
|
},
|
|
189
|
+
{
|
|
190
|
+
names: ['--blocks-finder'],
|
|
191
|
+
description:
|
|
192
|
+
'with `--route interrupt`, the finder cannot go on until this issue is done. The finder is recorded as blocked by the filed issue (step 9); under an epic, `epic --reconcile <E>` after `epic --add` declares it.',
|
|
193
|
+
},
|
|
175
194
|
],
|
|
176
195
|
},
|
|
177
196
|
},
|
|
@@ -29,6 +29,13 @@ const ISSUE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
29
29
|
reference: ['<issue>', 'automation', ['network']],
|
|
30
30
|
usage: { examples: [{ arguments: '3773' }] },
|
|
31
31
|
},
|
|
32
|
+
'issue:priority': {
|
|
33
|
+
script: 'scripts/issue/issue-priority-cli.ts',
|
|
34
|
+
description: 'Apply priority:high to an issue whose body reached the high floor after filing',
|
|
35
|
+
category: 'AI tools',
|
|
36
|
+
reference: ['<issue>', 'automation', ['network']],
|
|
37
|
+
usage: { examples: [{ arguments: '4960' }] },
|
|
38
|
+
},
|
|
32
39
|
'issue:read': {
|
|
33
40
|
script: 'scripts/issue/issue-read-main.ts',
|
|
34
41
|
description: "Print each issue's title, body and every comment on it, in one call",
|
|
@@ -97,6 +104,31 @@ const ISSUE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
97
104
|
reference: ['', 'automation', ['network']],
|
|
98
105
|
usage: { examples: [{ arguments: '', note: 'every issue labelled bug, open or closed' }] },
|
|
99
106
|
},
|
|
107
|
+
'effect:audit': {
|
|
108
|
+
script: 'scripts/issue/effect-audit-cli.ts',
|
|
109
|
+
description:
|
|
110
|
+
'List closed run-time-shortening issues with their expected effect, follow-up measurement and result',
|
|
111
|
+
category: 'AI tools',
|
|
112
|
+
reference: ['[--days <N>] [--draft <issue>]', 'automation', ['network', 'files']],
|
|
113
|
+
usage: {
|
|
114
|
+
examples: [
|
|
115
|
+
{ arguments: '', note: 'issues closed in the last 30 days, one line each' },
|
|
116
|
+
{ arguments: '--days 7', note: 'a shorter window' },
|
|
117
|
+
{
|
|
118
|
+
arguments: '--draft 4896',
|
|
119
|
+
note: 'write the retirement candidate of a shortfall and print its issue:file line',
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
flags: [
|
|
123
|
+
{ names: ['--days <N>'], description: 'the window, in days back from now (default 30)' },
|
|
124
|
+
{
|
|
125
|
+
names: ['--draft <issue>'],
|
|
126
|
+
description:
|
|
127
|
+
'an issue whose measurement carries measured:unmet: write its retirement-candidate body to a temporary file',
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
},
|
|
100
132
|
'issue:fold': {
|
|
101
133
|
script: 'scripts/issue/issue-fold-main.ts',
|
|
102
134
|
description:
|
|
@@ -16,6 +16,7 @@ const LANE_SCRIPT = 'scripts/lane/lane-cli.ts'
|
|
|
16
16
|
// has to read `.env` to see them — without this the two are documented and unreachable.
|
|
17
17
|
const LANE_ARGUMENTS = { script: LANE_SCRIPT, tsx_arguments: OPTIONAL_ENV_FILE_FLAGS } as const
|
|
18
18
|
const ISSUE_WITH_OPTIONS = '<issue> [options]'
|
|
19
|
+
const ISSUE_OR_ALL = '<issue> | --all'
|
|
19
20
|
const MEASURE_ARGUMENTS = {
|
|
20
21
|
script: 'scripts/lane/lane-measure-cli.ts',
|
|
21
22
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
@@ -25,7 +26,7 @@ const PAUSE_ARGUMENTS = {
|
|
|
25
26
|
script: 'scripts/lane/lane-pause-cli.ts',
|
|
26
27
|
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
27
28
|
category: 'AI tools',
|
|
28
|
-
reference: [
|
|
29
|
+
reference: [ISSUE_OR_ALL, 'developer', ['processes']],
|
|
29
30
|
} satisfies Partial<CommandEntry>
|
|
30
31
|
|
|
31
32
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -101,12 +102,12 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
101
102
|
{
|
|
102
103
|
names: ['JOSH_{SCHEDULER,WORKER,REVIEWER}_EFFORT'],
|
|
103
104
|
description:
|
|
104
|
-
'role effort overrides for either provider; defaults are `medium`, `medium`, and `
|
|
105
|
+
'role effort overrides for either provider; defaults are `medium`, `medium`, and `medium`.',
|
|
105
106
|
},
|
|
106
107
|
{
|
|
107
108
|
names: ['JOSH_REVIEWER_VERIFICATION_{MODEL,EFFORT}'],
|
|
108
109
|
description:
|
|
109
|
-
'review round 2 and later (the verification pass);
|
|
110
|
+
'review round 2 and later (the verification pass); defaults are `claude-sonnet-5-5` / `high` on Anthropic and `high` on OpenAI, falling back to `JOSH_REVIEWER_*`.',
|
|
110
111
|
},
|
|
111
112
|
],
|
|
112
113
|
},
|
|
@@ -168,6 +169,18 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
168
169
|
examples: [{ arguments: '3769 --reason "folded into a broader issue"' }],
|
|
169
170
|
},
|
|
170
171
|
},
|
|
172
|
+
// `.env` is read for the Telegram settings the yield's hold release reaches (`run-hold-cli.ts`).
|
|
173
|
+
'lane:plan': {
|
|
174
|
+
script: 'scripts/lane/lane-plan-cli.ts',
|
|
175
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
176
|
+
description:
|
|
177
|
+
'Record the files a lane child plans to edit, and give the lane back when a running lane that planned earlier declares or plans one of them — naming the file and that issue',
|
|
178
|
+
category: 'AI tools',
|
|
179
|
+
reference: ['<issue> <path>... [--probe]', 'automation', ['files', 'network']],
|
|
180
|
+
usage: {
|
|
181
|
+
examples: [{ arguments: '4864 scripts/lane/lane-plan.ts scripts/backlog/backlog-next.ts' }],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
171
184
|
// `.env` is read for `JOSH_LANE_ROOT`, as every lane command reads it, so `--all` finds the lanes.
|
|
172
185
|
'lane:pause': {
|
|
173
186
|
...PAUSE_ARGUMENTS,
|
|
@@ -182,6 +195,21 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
182
195
|
default_script_arguments: ['resume'],
|
|
183
196
|
usage: { examples: LANE_SIGNAL_EXAMPLES },
|
|
184
197
|
},
|
|
198
|
+
// `.env` is read for `JOSH_LANE_ROOT`, as every lane command reads it, so `--all` finds the lanes.
|
|
199
|
+
'lane:adopt': {
|
|
200
|
+
script: 'scripts/lane/lane-adopt-cli.ts',
|
|
201
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
202
|
+
description:
|
|
203
|
+
'Give an open lane that lost its state record a record again, read from its process, work tree, unpushed commits, pull request and issue — its work untouched',
|
|
204
|
+
category: 'AI tools',
|
|
205
|
+
reference: [ISSUE_OR_ALL, 'developer', ['files', 'git', 'processes', 'network']],
|
|
206
|
+
usage: {
|
|
207
|
+
examples: [
|
|
208
|
+
{ arguments: '4744' },
|
|
209
|
+
{ arguments: '--all', note: 'every open lane with no record' },
|
|
210
|
+
],
|
|
211
|
+
},
|
|
212
|
+
},
|
|
185
213
|
// A live run's lane limit: `.env` is read so the bare form reports the
|
|
186
214
|
// `JOSH_LANE_LIMIT` a person set there when no override stands.
|
|
187
215
|
'lane:limit': {
|
|
@@ -213,7 +241,7 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
213
241
|
'lane:stats': {
|
|
214
242
|
...MEASURE_ARGUMENTS,
|
|
215
243
|
description:
|
|
216
|
-
|
|
244
|
+
"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, the duration and reuse count of each gate check, and each check's core claim against the cores it used",
|
|
217
245
|
category: 'AI tools',
|
|
218
246
|
reference: ['--period <days> [--limit <lane-limit>]', 'maintainer', ['none']],
|
|
219
247
|
default_script_arguments: ['stats'],
|
|
@@ -221,6 +249,61 @@ const LANE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
221
249
|
examples: [{ arguments: '--period 7', note: "a 7-day period's stage medians and maxima" }],
|
|
222
250
|
},
|
|
223
251
|
},
|
|
252
|
+
// One lane measurement as one number on the last line, for an Issue's measurement declaration
|
|
253
|
+
// (joshuafolkken/kit#4630).
|
|
254
|
+
'lane:value': {
|
|
255
|
+
...MEASURE_ARGUMENTS,
|
|
256
|
+
description:
|
|
257
|
+
'Print one lane measurement since an instant as a single number: cell (a lane:stats table cell, --table --row --column), lint-unmoved (median s of a lint:related that found nothing moved), metrics-stops (pre-detach metrics stops per lane), lint-core-wait (lint:related core-budget wait, min per lane), edit (median s of one Edit)',
|
|
258
|
+
category: 'AI tools',
|
|
259
|
+
reference: ['<metric> --since <instant>', 'maintainer', ['none']],
|
|
260
|
+
default_script_arguments: ['value'],
|
|
261
|
+
usage: {
|
|
262
|
+
examples: [
|
|
263
|
+
{
|
|
264
|
+
arguments: 'edit --since 2026-10-23T03:29Z',
|
|
265
|
+
note: 'the median Edit time since an instant',
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
arguments:
|
|
269
|
+
'cell --table "test:related scope" --row related --column "median (s)" --since 2026-10-23T03:29Z',
|
|
270
|
+
note: 'one lane:stats table cell since an instant',
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
'lane:net': {
|
|
276
|
+
...MEASURE_ARGUMENTS,
|
|
277
|
+
description:
|
|
278
|
+
"Print a lane's net minutes: its issue's first dispatch to its merge, less the waits its parks, outages, usage-limit stops and yields stood and the host's sleeps",
|
|
279
|
+
category: 'AI tools',
|
|
280
|
+
reference: ['<issue>', 'maintainer', ['none']],
|
|
281
|
+
default_script_arguments: ['net'],
|
|
282
|
+
usage: {
|
|
283
|
+
examples: [
|
|
284
|
+
{
|
|
285
|
+
arguments: '4695',
|
|
286
|
+
note: 'the net minutes a causing-lane line declares',
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
'lane:breakdown': {
|
|
292
|
+
script: 'scripts/lane/lane-breakdown-cli.ts',
|
|
293
|
+
tsx_arguments: OPTIONAL_ENV_FILE_FLAGS,
|
|
294
|
+
description:
|
|
295
|
+
"Print a merged lane's net time by stage, longest first, the implementation split by its tool calls",
|
|
296
|
+
category: 'AI tools',
|
|
297
|
+
reference: ['<issue>', 'maintainer', ['none']],
|
|
298
|
+
usage: {
|
|
299
|
+
examples: [
|
|
300
|
+
{
|
|
301
|
+
arguments: '4970',
|
|
302
|
+
note: 'the breakdown the overrun investigation comments on the lane',
|
|
303
|
+
},
|
|
304
|
+
],
|
|
305
|
+
},
|
|
306
|
+
},
|
|
224
307
|
}
|
|
225
308
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
226
309
|
|
|
@@ -15,10 +15,23 @@ const LINT_COMMANDS: Record<string, CommandEntry> = {
|
|
|
15
15
|
},
|
|
16
16
|
'report:lint': {
|
|
17
17
|
script: 'scripts/report/report-lint-cli.ts',
|
|
18
|
-
description:
|
|
18
|
+
description:
|
|
19
|
+
"Check a two-layer work summary, or with --child-summary a lane child's summary, on stdin against its mechanical format rules",
|
|
20
|
+
category: 'AI tools',
|
|
21
|
+
reference: ['[--child-summary] (reads stdin)', 'automation', ['none']],
|
|
22
|
+
usage: {
|
|
23
|
+
examples: [{ arguments: '< summary.md' }, { arguments: '--child-summary < summary.md' }],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
'review:lint': {
|
|
27
|
+
script: 'scripts/review/review-lint-cli.ts',
|
|
28
|
+
description:
|
|
29
|
+
"Check a review's markdown on stdin against the review rubric's output format, round 1 or with --round 2 the verification pass",
|
|
19
30
|
category: 'AI tools',
|
|
20
|
-
reference: ['(reads stdin)', 'automation', ['none']],
|
|
21
|
-
usage: {
|
|
31
|
+
reference: ['[--round <1|2>] (reads stdin)', 'automation', ['none']],
|
|
32
|
+
usage: {
|
|
33
|
+
examples: [{ arguments: '< review.md' }, { arguments: '--round 2 < review.md' }],
|
|
34
|
+
},
|
|
22
35
|
},
|
|
23
36
|
'report:template': {
|
|
24
37
|
script: 'scripts/report/report-template-cli.ts',
|
|
@@ -85,6 +85,21 @@ const MAINTENANCE_COMMANDS: Record<string, CommandEntry> = {
|
|
|
85
85
|
examples: [{ arguments: '', note: 'verify when the lockfile or its policy moved' }],
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
|
+
'command:derive': {
|
|
89
|
+
script: 'tools/document/command-derive.ts',
|
|
90
|
+
description:
|
|
91
|
+
'Write every artifact the command map derives — usage spans, catalog, snapshot, docs/why.md counts — and print page bytes against their ceilings',
|
|
92
|
+
category: 'Maintenance',
|
|
93
|
+
reference: ['', 'maintainer', ['files']],
|
|
94
|
+
// Kit-only: the pages it writes are kit's own documentation, and the script lives under the
|
|
95
|
+
// undistributed `tools/`.
|
|
96
|
+
is_kit_only: true,
|
|
97
|
+
// The command-map snapshot runs through one single-file vitest run.
|
|
98
|
+
core_weight: 1,
|
|
99
|
+
usage: {
|
|
100
|
+
examples: [{ arguments: '', note: 'after adding, renaming or describing a command' }],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
88
103
|
'audit:provision': {
|
|
89
104
|
script: 'scripts/security/security-audit-provision-main.ts',
|
|
90
105
|
description: 'Install the pinned osv-scanner when the audit cannot find one (no-op if present)',
|
|
@@ -4,7 +4,7 @@ const LEVEL_ONLY = '--level-only'
|
|
|
4
4
|
const CHECK = '--check'
|
|
5
5
|
const MACHINE_READABLE = 'the verdict and the reason, machine-readable'
|
|
6
6
|
const JSON_FLAG = '--json'
|
|
7
|
-
const
|
|
7
|
+
const RECORD = '--record'
|
|
8
8
|
|
|
9
9
|
// The review and delegation commands, split out of `josh-commands-ai.ts` when each command's usage
|
|
10
10
|
// moved onto its entry (#4185). `AI_COMMANDS` spreads this in at the same place, so the map keeps its
|
|
@@ -67,22 +67,57 @@ const REVIEW_COMMANDS: Record<string, CommandEntry> = {
|
|
|
67
67
|
],
|
|
68
68
|
},
|
|
69
69
|
},
|
|
70
|
+
'review:submit': {
|
|
71
|
+
script: 'scripts/review/review-submit-cli.ts',
|
|
72
|
+
description: "Write a ship reviewer's findings, read from stdin, where the ship reads them",
|
|
73
|
+
category: 'AI tools',
|
|
74
|
+
reference: ['[--interaction] < findings | [--interaction] --none', 'automation', ['files']],
|
|
75
|
+
usage: {
|
|
76
|
+
examples: [
|
|
77
|
+
{ arguments: '< findings.txt', note: 'the /code-review slot' },
|
|
78
|
+
{ arguments: '--interaction < findings.txt', note: 'the interaction review slot' },
|
|
79
|
+
{ arguments: '--none', note: 'a review with no findings' },
|
|
80
|
+
],
|
|
81
|
+
flags: [
|
|
82
|
+
{
|
|
83
|
+
names: ['--none'],
|
|
84
|
+
description: 'a review with no findings; empty stdin without it is refused.',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
// The self-check's "Prose matches the code" as a search: each word the diff removed that prose still names.
|
|
90
|
+
'prose:stale': {
|
|
91
|
+
script: 'scripts/review/prose-stale-cli.ts',
|
|
92
|
+
description:
|
|
93
|
+
'List each removed declared or exported name, josh command, UPPER_CASE constant or .md heading that docs, prompts or comments still name',
|
|
94
|
+
category: 'AI tools',
|
|
95
|
+
reference: ['', 'automation', ['none']],
|
|
96
|
+
usage: {
|
|
97
|
+
examples: [
|
|
98
|
+
{
|
|
99
|
+
arguments: '',
|
|
100
|
+
note: '→ `file:line kind word` per reference, or `ok` (exit 1 / 0; 2 on a failure)',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
70
105
|
'review:round2': {
|
|
71
106
|
script: 'scripts/review/review-round2-cli.ts',
|
|
72
107
|
description: 'Say whether the second /code-review round is due, or may be skipped entirely',
|
|
73
108
|
category: 'AI tools',
|
|
74
|
-
reference: ['[--
|
|
109
|
+
reference: ['[--record <N>] [--json]', 'automation', ['network']],
|
|
75
110
|
usage: {
|
|
76
111
|
examples: [
|
|
77
|
-
{ arguments: '', note: '→ required' },
|
|
78
|
-
{ arguments:
|
|
112
|
+
{ arguments: '', note: '→ required | skip, for the branch’s issue' },
|
|
113
|
+
{ arguments: `${RECORD} 123`, note: '→ required | skip, a skip commented on that issue' },
|
|
79
114
|
{ arguments: JSON_FLAG, note: MACHINE_READABLE },
|
|
80
115
|
],
|
|
81
116
|
flags: [
|
|
82
117
|
{
|
|
83
|
-
names: [
|
|
118
|
+
names: [RECORD],
|
|
84
119
|
description:
|
|
85
|
-
'the
|
|
120
|
+
'the issue whose ledger dispositions decide round 1’s closure — skip only when every High/Medium is `fixed` or `false-positive` — and where a skip is commented under `## Round 2 skipped`, once.',
|
|
86
121
|
},
|
|
87
122
|
{ names: [JSON_FLAG], description: 'machine-readable verdict and reason.' },
|
|
88
123
|
],
|