@joshuafolkken/kit 1.1455.0 → 1.1514.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/settings.json +6 -6
- package/.claude/skills/dependency-update/SKILL.md +26 -55
- package/.claude/skills/epic-commands/SKILL.md +83 -156
- package/.claude/skills/epic-commands/epic-bundle.md +51 -79
- package/.claude/skills/epic-commands/execution-waves.md +43 -81
- package/.claude/skills/verify-ui/SKILL.md +24 -50
- package/.claude/skills/workflow-commands/SKILL.md +7 -9
- package/.claude/skills/workflow-commands/background-commands.md +31 -46
- package/.claude/skills/workflow-commands/backlogrun-child.md +65 -85
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +86 -125
- package/.claude/skills/workflow-commands/backlogrun-park.md +68 -118
- package/.claude/skills/workflow-commands/backlogrun-progress.md +17 -28
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +17 -26
- package/.claude/skills/workflow-commands/backlogrun-steps.md +35 -52
- package/.claude/skills/workflow-commands/backlogrun.md +31 -50
- package/.claude/skills/workflow-commands/chain-rule.md +31 -40
- package/.claude/skills/workflow-commands/delegation.md +12 -8
- package/.claude/skills/workflow-commands/entry-sequence.md +1 -3
- package/.claude/skills/workflow-commands/followup.md +55 -77
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -5
- package/.claude/skills/workflow-commands/fullrun.md +4 -6
- package/.claude/skills/workflow-commands/halfrun.md +3 -7
- package/.claude/skills/workflow-commands/into-target.md +1 -2
- package/.claude/skills/workflow-commands/issue-comments.md +43 -60
- package/.claude/skills/workflow-commands/issue-scout.md +3 -2
- package/.claude/skills/workflow-commands/kickoff.md +65 -74
- package/.claude/skills/workflow-commands/latest-gate.md +2 -6
- package/.claude/skills/workflow-commands/needs-human-review.md +2 -5
- package/.claude/skills/workflow-commands/observation-filing.md +59 -118
- package/.claude/skills/workflow-commands/observation-ledger.md +52 -112
- package/.claude/skills/workflow-commands/pre-gate-cut.md +88 -142
- package/.claude/skills/workflow-commands/prerequisite.md +11 -17
- package/.claude/skills/workflow-commands/progress-watcher.md +23 -33
- package/.claude/skills/workflow-commands/prrun.md +3 -5
- package/.claude/skills/workflow-commands/retrospective.md +35 -54
- package/.claude/skills/workflow-commands/split-assessment.md +32 -58
- package/.claude/skills/workflow-commands/target-repository.md +1 -2
- package/.claude/skills/workflow-commands/working-tree-hold.md +54 -73
- package/.codex/hooks.json +6 -6
- package/.github/actions/setup-node/action.yml +1 -1
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/publish.yml +2 -2
- package/CLAUDE.md +7 -6
- package/cspell/index.yaml +7 -0
- package/dist/CLAUDE.md +7 -6
- package/dist/commands/document-section-cli.js +67 -34
- package/dist/hooks/batch-guard.js +6 -6
- package/dist/hooks/chunk-4KKD2UTK.js +66 -0
- package/dist/hooks/{chunk-GPLGZ6IC.js → chunk-6TS2JD6D.js} +14 -3
- package/dist/hooks/chunk-7DSBJVFH.js +50 -0
- package/dist/hooks/{chunk-5H4SSDSD.js → chunk-A65Y4YOR.js} +3 -3
- package/dist/hooks/{chunk-3C4XRYG6.js → chunk-APUO6U4J.js} +102 -19
- package/dist/hooks/{chunk-IX6TTTI6.js → chunk-EFXE6C37.js} +8 -22
- package/dist/hooks/chunk-GP4IEC4O.js +20 -0
- package/dist/hooks/chunk-JP45SOCJ.js +56 -0
- package/dist/hooks/{chunk-OLMO72ON.js → chunk-LAOV7NLM.js} +1 -1
- package/dist/hooks/chunk-M4HGZV7U.js +83 -0
- package/dist/hooks/{chunk-TBJFTSUY.js → chunk-O6GDRNJB.js} +9 -7
- package/dist/hooks/{chunk-HFGWYGUV.js → chunk-PF2NZL2A.js} +5 -5
- package/dist/hooks/{chunk-WNLVGT7E.js → chunk-PTICX4OL.js} +4 -5
- package/dist/hooks/{chunk-HHI6FO3R.js → chunk-RT27QRJW.js} +763 -1515
- package/dist/hooks/{chunk-7WQBPLUN.js → chunk-SYOTDYCI.js} +1149 -1095
- package/dist/hooks/{chunk-LIAFCXL7.js → chunk-TNUMY6NL.js} +1519 -1332
- package/dist/hooks/chunk-UPUZF3AN.js +279 -0
- package/dist/hooks/{chunk-Z4XI7CZS.js → chunk-WK6SMBIC.js} +1932 -784
- package/dist/hooks/codex-hook-adapter.js +17 -14
- package/dist/hooks/duplicate-read-guard.js +7 -7
- package/dist/hooks/format-edited.js +5 -4
- package/dist/hooks/inputs.json +302 -247
- package/dist/hooks/investigation-guard.js +8 -11
- package/dist/hooks/pretool-guard.js +16 -13
- package/dist/hooks/session-lang.js +372 -26
- package/dist/hooks/stop-guard.js +2593 -189
- package/dist/josh.js +2128 -282
- package/dist/managed-marker/index.js +1 -2
- package/dist/version/index.js +15 -12
- package/eslint/base.js +2 -1
- package/eslint/rules/unicorn.js +16 -0
- package/lefthook/base.yml +5 -3
- package/package.json +14 -12
- package/prompts/coding-standards.md +12 -22
- package/prompts/collaboration-workflow/file-edits.md +25 -45
- package/prompts/collaboration-workflow/gh-rest.md +19 -36
- package/prompts/collaboration-workflow/glossary.md +5 -7
- package/prompts/collaboration-workflow/issue-citation.md +6 -14
- package/prompts/collaboration-workflow/issue-template.md +40 -32
- package/prompts/collaboration-workflow/lane-instructions.md +35 -0
- package/prompts/collaboration-workflow/operating-rules.md +33 -46
- package/prompts/collaboration-workflow/output-bounds.md +15 -15
- package/prompts/collaboration-workflow/overview.md +14 -19
- package/prompts/collaboration-workflow/plan-comment.md +13 -13
- package/prompts/collaboration-workflow/principles.md +57 -54
- package/prompts/collaboration-workflow/proposal-request.md +1 -9
- package/prompts/collaboration-workflow/report-format.md +41 -49
- package/prompts/collaboration-workflow/residency.md +15 -11
- package/prompts/collaboration-workflow/rule-delivery.md +7 -15
- package/prompts/collaboration-workflow/shell-body.md +10 -20
- package/prompts/collaboration-workflow/turn-batching.md +8 -14
- package/prompts/collaboration-workflow/upstream-interrupt.md +26 -34
- package/prompts/collaboration-workflow/wip-cap.md +26 -32
- package/prompts/collaboration-workflow.md +25 -25
- package/prompts/refactoring.md +33 -43
- package/prompts/review-rubric.md +84 -129
- package/prompts/review.md +110 -141
- package/prompts/sonar-hotspot-handling.md +22 -50
- package/prompts/testing-guide.md +48 -99
- package/scripts/adopt/adopt-toolkits.ts +2 -4
- package/scripts/agent/agent-argv.ts +20 -4
- package/scripts/agent/agent-exit-record.ts +23 -1
- package/scripts/agent/agent-role-profile.ts +101 -45
- package/scripts/agent/agent-safe-text.ts +60 -0
- package/scripts/agent/claude-agent-argv.ts +14 -0
- package/scripts/agent/codex-agent-argv.ts +9 -2
- package/scripts/agent/lane-instructions.ts +144 -0
- package/scripts/backlog/backlog-budget-cli.ts +1 -2
- package/scripts/backlog/backlog-budget.ts +4 -4
- package/scripts/backlog/backlog-drive-carried.ts +26 -0
- package/scripts/backlog/backlog-drive-cli.ts +10 -5
- package/scripts/backlog/backlog-drive-named.ts +3 -5
- package/scripts/backlog/backlog-drive-restore.ts +28 -2
- package/scripts/backlog/backlog-drive-seats.ts +27 -0
- package/scripts/backlog/backlog-drive.ts +11 -6
- package/scripts/backlog/backlog-occupied.ts +56 -0
- package/scripts/backlog/backlog-ready.ts +59 -15
- package/scripts/behavior/behavior-rules.ts +3 -2
- package/scripts/cost-runtime/codex-usage.ts +4 -2
- package/scripts/cost-runtime/cost-cli.ts +1 -2
- package/scripts/delegation/duplicate-read-guard.ts +2 -2
- package/scripts/delegation/investigation-guard.ts +15 -65
- package/scripts/delegation/investigation-reads.ts +1 -2
- package/scripts/discovery/repo-discovery.ts +4 -2
- package/scripts/discovery/repo-origin.ts +2 -4
- package/scripts/doctor/doctor-logic.ts +6 -3
- package/scripts/document/document-byte-budget.ts +28 -27
- package/scripts/document/document-byte-check.ts +1 -2
- package/scripts/document/document-section-cli.ts +17 -5
- package/scripts/document/entry-read-budget.ts +3 -3
- package/scripts/document/read-set-cli.ts +4 -1
- package/scripts/epic/epic-audit-orphans.ts +5 -8
- package/scripts/epic/epic-audit-rationale.ts +8 -2
- package/scripts/epic/epic-audit.ts +52 -1
- package/scripts/epic/epic-bundle-cli.ts +1 -2
- package/scripts/epic/epic-bundle-evidence.ts +49 -26
- package/scripts/epic/epic-bundle-referenced.ts +14 -3
- package/scripts/epic/epic-bundle.ts +17 -9
- package/scripts/epic/epic-chains.ts +6 -2
- package/scripts/epic/epic-close-comment.ts +1 -2
- package/scripts/followup/git-followup-workflow.ts +19 -1
- package/scripts/gate/check-inputs.ts +129 -0
- package/scripts/gate/check-reuse.ts +162 -0
- package/scripts/gate/core-budget.ts +93 -44
- package/scripts/gate/core-wait.ts +130 -0
- package/scripts/gate/free-cores.ts +49 -0
- package/scripts/gate/gate-ledger.ts +17 -3
- package/scripts/gate/gate-plan.ts +23 -1
- package/scripts/gate/gate-report.ts +15 -2
- package/scripts/gate/gate-run-steps.ts +150 -0
- package/scripts/gate/held-mark.ts +55 -0
- package/scripts/gate/machine-capacity.ts +70 -11
- package/scripts/gate/pre-commit-type-check.ts +14 -1
- package/scripts/gate/verification-gate.ts +65 -127
- package/scripts/gh/git-gh-issue-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +24 -2
- package/scripts/gh/git-pr.ts +19 -3
- package/scripts/git/git-common-directory.ts +3 -3
- package/scripts/git/git-diff-reads.ts +16 -9
- package/scripts/git/git-execa-error.ts +1 -2
- package/scripts/git/main-merge-regenerate.ts +78 -0
- package/scripts/git/main-merge.ts +14 -5
- package/scripts/hooks/batch-guard.ts +5 -8
- package/scripts/hooks/format-edited-file.ts +10 -4
- package/scripts/hooks/pre-commit-lint.ts +91 -0
- package/scripts/hooks/pre-push-unit.ts +15 -4
- package/scripts/hooks/pretool-guard.ts +48 -79
- package/scripts/hooks/reserved-run.ts +1 -0
- package/scripts/hooks/run-hook.sh +10 -12
- package/scripts/hooks/step-zero-notice.ts +3 -2
- package/scripts/hooks/stop-actions.ts +204 -0
- package/scripts/hooks/stop-guard.ts +62 -21
- package/scripts/init/hook-command-rewrite.ts +6 -2
- package/scripts/init/hook-launch.ts +12 -7
- package/scripts/init/init-logic-deploy-vps.ts +4 -2
- package/scripts/issue/behavior-change-lint.ts +12 -6
- package/scripts/issue/expected-effect-lint.ts +59 -0
- package/scripts/issue/issue-cite-cli.ts +35 -15
- package/scripts/issue/issue-classification.ts +1 -1
- package/scripts/issue/issue-lint-cli.ts +5 -3
- package/scripts/issue/issue-scout-cli.ts +22 -16
- package/scripts/issue/markdown-section.ts +19 -5
- package/scripts/josh/command-usage.ts +110 -0
- package/scripts/josh/file-map-stamp.ts +1 -3
- package/scripts/josh/hook-decision.ts +17 -2
- package/scripts/josh/josh-command-map.ts +2 -0
- package/scripts/josh/josh-command-types.ts +55 -9
- package/scripts/josh/josh-commands-ai.ts +13 -0
- package/scripts/josh/josh-commands-development.ts +1 -1
- package/scripts/josh/josh-commands-hooks.ts +6 -0
- package/scripts/josh/josh-commands-lane.ts +10 -1
- package/scripts/josh/josh-commands-workflow.ts +5 -0
- package/scripts/josh/josh-logic.ts +6 -15
- package/scripts/josh/josh-usage-automation.ts +121 -0
- package/scripts/josh/josh-usage-backlog.ts +180 -0
- package/scripts/josh/josh-usage-developer.ts +230 -0
- package/scripts/josh/josh-usage-hooks.ts +38 -0
- package/scripts/josh/josh-usage-issue.ts +205 -0
- package/scripts/josh/josh-usage-review.ts +101 -0
- package/scripts/josh/josh-usage-run.ts +252 -0
- package/scripts/josh/josh-usage-session.ts +238 -0
- package/scripts/josh/josh-usage-workflow.ts +212 -0
- package/scripts/josh/josh.ts +14 -5
- package/scripts/josh/package-directory.ts +20 -0
- package/scripts/lane/lane-await.ts +3 -2
- package/scripts/lane/lane-capacity.ts +8 -2
- package/scripts/lane/lane-check-stats.ts +56 -0
- package/scripts/lane/lane-child-invocation.ts +49 -5
- package/scripts/lane/lane-dispatch.ts +3 -3
- package/scripts/lane/lane-guard-policy.ts +5 -5
- package/scripts/lane/lane-handoff.ts +8 -1
- package/scripts/lane/lane-install.ts +12 -4
- package/scripts/lane/lane-ledger.ts +52 -1
- package/scripts/lane/lane-limit-cli.ts +8 -9
- package/scripts/lane/lane-load.ts +9 -2
- package/scripts/lane/lane-measure-cli.ts +4 -0
- package/scripts/lane/lane-parked.ts +18 -0
- package/scripts/lane/lane-preserve.ts +29 -1
- package/scripts/lane/lane-process-load.ts +125 -0
- package/scripts/lane/lane-process-stats.ts +93 -0
- package/scripts/lane/lane-registry.ts +17 -10
- package/scripts/lane/lane-restart.ts +5 -26
- package/scripts/lane/lane-session-action.ts +146 -0
- package/scripts/lane/lane-session-broker.ts +68 -125
- package/scripts/lane/lane-spent.ts +14 -3
- package/scripts/lane/lane-stats.ts +1 -0
- package/scripts/lane/lane-withdraw-cli.ts +71 -0
- package/scripts/lane/lane-withdraw.ts +182 -0
- package/scripts/lint/format.ts +4 -4
- package/scripts/lint/lint-parallel.ts +10 -3
- package/scripts/lint/lint-related-scope.ts +4 -1
- package/scripts/managed-marker/managed-marker-logic.ts +1 -2
- package/scripts/notify/telegram-test.ts +10 -5
- package/scripts/overrides/lockfile-overrides.ts +1 -3
- package/scripts/propagate/propagate.ts +1 -2
- package/scripts/release/release-progress.ts +3 -2
- package/scripts/report/report-format-reference.ts +2 -0
- package/scripts/report/report-lint.ts +7 -4
- package/scripts/review/acceptance-map-check.ts +61 -0
- package/scripts/review/acceptance-map.ts +205 -0
- package/scripts/review/review-brief-cli.ts +1 -1
- package/scripts/review/review-record-cli.ts +6 -2
- package/scripts/rules/agent-model.ts +59 -0
- package/scripts/rules/delivered-rules.ts +11 -2
- package/scripts/rules/destructive-command.ts +6 -9
- package/scripts/rules/direct-filing.ts +3 -7
- package/scripts/rules/early-heartbeat.ts +7 -18
- package/scripts/rules/file-body.ts +6 -13
- package/scripts/rules/filing-cap.ts +4 -6
- package/scripts/rules/firing-point.ts +6 -5
- package/scripts/rules/git-force.ts +5 -9
- package/scripts/rules/guard-remedy.ts +117 -0
- package/scripts/rules/implementation-cut.ts +37 -35
- package/scripts/rules/index-guard.ts +4 -7
- package/scripts/rules/issue-comments.ts +67 -16
- package/scripts/rules/josh-git-bare.ts +3 -6
- package/scripts/rules/lane-background.ts +10 -21
- package/scripts/rules/lane-carry-conflict.ts +7 -17
- package/scripts/rules/lane-interactive-ask.ts +6 -11
- package/scripts/rules/lane-park.ts +5 -13
- package/scripts/rules/lane-split-park.ts +2 -7
- package/scripts/rules/lane-switch-main.ts +9 -12
- package/scripts/rules/last-prompt.ts +50 -5
- package/scripts/rules/oracle-consulted.ts +4 -5
- package/scripts/rules/oracle-list-cli.ts +7 -0
- package/scripts/rules/piped-verification.ts +84 -32
- package/scripts/rules/poll-loop.ts +7 -17
- package/scripts/rules/pre-gate-cut.ts +7 -21
- package/scripts/rules/prior-comment-read.ts +7 -5
- package/scripts/rules/protected-files.ts +5 -9
- package/scripts/rules/raw-field-body.ts +3 -7
- package/scripts/rules/rule-body-guard.ts +4 -11
- package/scripts/rules/rule-list.ts +4 -1
- package/scripts/rules/rule-registry-rows.ts +10 -0
- package/scripts/rules/rule-registry.ts +7 -4
- package/scripts/rules/rule-rewrite.ts +114 -0
- package/scripts/rules/rule-value.ts +7 -1
- package/scripts/rules/run-tail-rule.ts +6 -22
- package/scripts/rules/shell-body-trigger.ts +4 -6
- package/scripts/rules/shell-segments.ts +22 -0
- package/scripts/rules/stop-decision.ts +77 -0
- package/scripts/rules/stop-rules.ts +164 -77
- package/scripts/rules/tail-commands.ts +15 -1
- package/scripts/rules/test-declared-commit.ts +4 -10
- package/scripts/rules/third-party-write.ts +5 -10
- package/scripts/rules/worktree-guard.ts +5 -12
- package/scripts/run/board/run-board-cli.ts +2 -0
- package/scripts/run/board/run-board-closed.ts +8 -2
- package/scripts/run/board/run-board-github.ts +19 -3
- package/scripts/run/board/run-board-header.ts +4 -1
- package/scripts/run/board/run-board-idle.ts +31 -0
- package/scripts/run/board/run-board-labels.ts +2 -0
- package/scripts/run/board/run-board-layout.ts +1 -1
- package/scripts/run/board/run-board-read.ts +25 -12
- package/scripts/run/board/run-board-reason.ts +17 -4
- package/scripts/run/board/run-board-render-legend.ts +1 -0
- package/scripts/run/board/run-board-render-slot.ts +1 -1
- package/scripts/run/board/run-board-render-waits.ts +41 -0
- package/scripts/run/board/run-board-render.ts +6 -1
- package/scripts/run/board/run-board-row-yield.ts +1 -0
- package/scripts/run/board/run-board-state.ts +9 -0
- package/scripts/run/board/run-board-status.ts +89 -23
- package/scripts/run/board/run-board-thanks.ts +7 -2
- package/scripts/run/board/run-board-tick.ts +37 -8
- package/scripts/run/carry/run-carry-args.ts +1 -3
- package/scripts/run/carry/run-carry-conversation.ts +7 -2
- package/scripts/run/cut/run-cut-cli.ts +18 -22
- package/scripts/run/cut/run-cut-decline.ts +72 -0
- package/scripts/run/cut/run-cut-ready.ts +74 -0
- package/scripts/run/cut/run-cut-report.ts +29 -0
- package/scripts/run/cut/run-cut.ts +10 -1
- package/scripts/run/detached-launch.ts +23 -4
- package/scripts/run/entry/run-entry-cli.ts +8 -1
- package/scripts/run/event/run-event-render.ts +1 -0
- package/scripts/run/event/run-event-scope.ts +19 -1
- package/scripts/run/event/run-event-stream-emit.ts +13 -6
- package/scripts/run/event/run-event-stream.ts +4 -0
- package/scripts/run/hold/run-hold-cli.ts +14 -3
- package/scripts/run/hold/run-hold-session.ts +46 -0
- package/scripts/run/hold/run-hold.ts +13 -4
- package/scripts/run/launch-priority.ts +32 -0
- package/scripts/run/merge/run-merge-cli.ts +16 -42
- package/scripts/run/merge/run-merge-ship.ts +59 -1
- package/scripts/run/merge/run-merge-signals.ts +99 -0
- package/scripts/run/merge/run-merge-steps.ts +11 -1
- package/scripts/run/merge/run-merge.ts +22 -9
- package/scripts/run/run-ending.ts +31 -3
- package/scripts/run/run-liveness.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +5 -10
- package/scripts/run/run-poll-hook.ts +157 -0
- package/scripts/run/run-preflight.ts +1 -2
- package/scripts/run/run-step-cli.ts +22 -15
- package/scripts/run/run-step-section.ts +85 -0
- package/scripts/run/run-stop-notify.ts +1 -2
- package/scripts/run/run-watcher-guard.ts +6 -3
- package/scripts/run/ship/run-ship-cli.ts +5 -12
- package/scripts/run/ship/run-ship-detach.ts +9 -0
- package/scripts/run/ship/run-ship-next.ts +10 -2
- package/scripts/run/ship/run-ship-overlap.ts +195 -0
- package/scripts/run/ship/run-ship-pre-detach.ts +33 -15
- package/scripts/run/ship/run-ship-preflight.ts +28 -2
- package/scripts/run/ship/run-ship-return.ts +31 -7
- package/scripts/run/ship/run-ship-review-steps.ts +25 -14
- package/scripts/run/ship/run-ship-review.ts +15 -2
- package/scripts/run/ship/run-ship-steps.ts +1 -1
- package/scripts/run/ship/run-ship-stop-context.ts +206 -0
- package/scripts/run/ship/run-ship-sync.ts +14 -6
- package/scripts/run/tidy/run-tidy-cli.ts +3 -3
- package/scripts/run/tidy/run-tidy-lanes.ts +3 -2
- package/scripts/safe-chain/project-config.ts +7 -2
- package/scripts/sync/sync-hook-safety.ts +8 -2
- package/scripts/test/test-e2e-guard.ts +30 -5
- package/scripts/test/test-unit-guard.ts +16 -1
- package/scripts/test/unit-worker-share.ts +26 -3
- package/scripts/time-runtime/time-batch-guard.ts +3 -3
- package/scripts/time-runtime/time-hook-transcript.ts +3 -2
- package/scripts/time-runtime/time-shell.ts +39 -4
- package/scripts/time-runtime/time-spans.ts +1 -0
- package/scripts/time-runtime/time-tool-call.ts +7 -0
- package/scripts/version/effective-upstream.ts +3 -4
- package/scripts/version/kit-version-config.ts +8 -2
- package/scripts/version/latest-corepack.ts +1 -2
- package/scripts/version/release-hold.ts +11 -4
- package/scripts/version/version-commands.ts +12 -4
- package/templates/gitignore +6 -2
- package/dist/hooks/chunk-D5QBTOCZ.js +0 -68
- package/dist/hooks/chunk-UT7YC3N2.js +0 -56
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { CommandUsage } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
// The usage of the review, delegation and oracle commands `docs/josh-commands-backlog.md` documents
|
|
4
|
+
// under "Review, delegation and oracles", keyed by command name. The page's usage blocks are generated
|
|
5
|
+
// from this table and `josh help <command>` prints it, so an example or a flag is written once, here
|
|
6
|
+
// (#3938).
|
|
7
|
+
const MACHINE_READABLE = 'the verdict and the reason, machine-readable'
|
|
8
|
+
const LEVEL_ONLY = '--level-only'
|
|
9
|
+
const JSON_FLAG = '--json'
|
|
10
|
+
const CHECK = '--check'
|
|
11
|
+
const ROUND_1_CLOSED = '--round-1-closed'
|
|
12
|
+
|
|
13
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
14
|
+
const REVIEW_USAGE: Readonly<Record<string, CommandUsage>> = {
|
|
15
|
+
'review:brief': {
|
|
16
|
+
examples: [
|
|
17
|
+
{ arguments: '', note: 'round 1' },
|
|
18
|
+
{ arguments: '--round 2', note: 'verification pass, scoped to the fix delta' },
|
|
19
|
+
{ arguments: LEVEL_ONLY, note: 'the level alone (pre-commit review)' },
|
|
20
|
+
{ arguments: '--level-only --json', note: 'level and reason, machine-readable' },
|
|
21
|
+
],
|
|
22
|
+
flags: [
|
|
23
|
+
{
|
|
24
|
+
names: ['--round 2'],
|
|
25
|
+
description:
|
|
26
|
+
"target is round 1's fixes and nothing else (widened back to the whole change when the record's change base no longer matches).",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
names: [LEVEL_ONLY],
|
|
30
|
+
description:
|
|
31
|
+
'print the level alone (level to stdout, reason to stderr); bypasses the scoped-green refusal.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
names: ['--staged', '--json'],
|
|
35
|
+
description: 'the staged diff; machine-readable level and reason.',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
'review:round2': {
|
|
40
|
+
examples: [
|
|
41
|
+
{ arguments: '', note: '→ required' },
|
|
42
|
+
{ arguments: ROUND_1_CLOSED, note: '→ required | skip' },
|
|
43
|
+
{ arguments: JSON_FLAG, note: MACHINE_READABLE },
|
|
44
|
+
],
|
|
45
|
+
flags: [
|
|
46
|
+
{
|
|
47
|
+
names: [ROUND_1_CLOSED],
|
|
48
|
+
description:
|
|
49
|
+
'the caller states every round-1 High/Medium finding closed and none was filed or deferred; its absence answers `required`.',
|
|
50
|
+
},
|
|
51
|
+
{ names: [JSON_FLAG], description: 'machine-readable verdict and reason.' },
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
disposition: { examples: [{ arguments: '<path...>', note: '→ runtime | non-runtime' }] },
|
|
55
|
+
'review:attest': {
|
|
56
|
+
examples: [
|
|
57
|
+
{ arguments: '<nonce>', note: 'run by the review, from the checkout it read' },
|
|
58
|
+
{ arguments: CHECK, note: 'run by the run, before it acts on the review' },
|
|
59
|
+
],
|
|
60
|
+
flags: [
|
|
61
|
+
{ names: ['<nonce>'], description: 'attest the checkout the review read.' },
|
|
62
|
+
{
|
|
63
|
+
names: [CHECK],
|
|
64
|
+
description: 'verify before acting; `josh followup` asks again before merging.',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
delegate: {
|
|
69
|
+
examples: [
|
|
70
|
+
{ arguments: 'gate-fix', note: '→ delegate' },
|
|
71
|
+
{ arguments: 'review', note: '→ keep' },
|
|
72
|
+
{ arguments: '--list', note: 'the enumeration, and what was rejected and why' },
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
fanout: {
|
|
76
|
+
examples: [
|
|
77
|
+
{ arguments: 'scripts/a.ts,scripts/a.test.ts scripts/b.ts', note: '→ parallel' },
|
|
78
|
+
{
|
|
79
|
+
arguments: 'scripts/a.ts,shared.ts scripts/b.ts,shared.ts',
|
|
80
|
+
note: '→ serial (units share shared.ts)',
|
|
81
|
+
},
|
|
82
|
+
{ arguments: 'scripts/a.ts', note: '→ serial (fewer than two units)' },
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
'split:assess': {
|
|
86
|
+
examples: [
|
|
87
|
+
{ arguments: '', note: '→ single' },
|
|
88
|
+
{ arguments: JSON_FLAG, note: MACHINE_READABLE },
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
'oracle:list': { examples: [{ arguments: '' }] },
|
|
92
|
+
'clone:scan': { examples: [{ arguments: '' }] },
|
|
93
|
+
cases: {
|
|
94
|
+
examples: [
|
|
95
|
+
{ arguments: 'scripts/a.ts scripts/b.ts', note: 'the boundaries these paths cross' },
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
100
|
+
|
|
101
|
+
export { REVIEW_USAGE }
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import type { CommandUsage } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
// The usage of the run-lifecycle commands `docs/josh-commands-run.md` documents, keyed by command
|
|
4
|
+
// name. The page's usage blocks are generated from this table and `josh help <command>` prints it, so
|
|
5
|
+
// an example or a flag is written once, here (#3937). The page from `run:progress` on is
|
|
6
|
+
// `josh-usage-session.ts`.
|
|
7
|
+
const ISSUE = { arguments: '<N>' }
|
|
8
|
+
const OUTPUT = '--output <path>'
|
|
9
|
+
const OWNER = '--owner <pid>'
|
|
10
|
+
const REPO_FLAG = { names: ['--repo <owner/name>'], description: 'a child in another repository.' }
|
|
11
|
+
|
|
12
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
13
|
+
const RUN_USAGE: Readonly<Record<string, CommandUsage>> = {
|
|
14
|
+
'run:hold': {
|
|
15
|
+
examples: [
|
|
16
|
+
{ arguments: '1091', note: 'claim for issue 1091' },
|
|
17
|
+
{ arguments: '1091 --fullrun', note: 'claim as `fullrun #1091` (what `run:entry` runs)' },
|
|
18
|
+
],
|
|
19
|
+
flags: [
|
|
20
|
+
{ names: ['--fullrun'], description: "marks the record as `fullrun #N`'s." },
|
|
21
|
+
{
|
|
22
|
+
names: ['--halfrun-stop'],
|
|
23
|
+
description: 'marks a `halfrun` stop for `run:entry` to adopt.',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
names: ['--prrun-stop'],
|
|
27
|
+
description: 'marks a `prrun` stop with the commit its pull request is on.',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
'run:release': {
|
|
32
|
+
examples: [
|
|
33
|
+
{ arguments: '1091', note: "release this run's own record" },
|
|
34
|
+
{ arguments: '--force', note: 'clear a record left by a run that has ended' },
|
|
35
|
+
],
|
|
36
|
+
flags: [
|
|
37
|
+
{
|
|
38
|
+
names: ['--force'],
|
|
39
|
+
description: "removes a record this run did not write, clearing another run's stale claim.",
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
'run:tidy': { examples: [{ arguments: '' }] },
|
|
44
|
+
'run:carry': {
|
|
45
|
+
examples: [
|
|
46
|
+
{ arguments: '--begin "backlogrun --max 5" --owner "$PPID"' },
|
|
47
|
+
{ arguments: '--json', note: 'read the record back in a resumed session' },
|
|
48
|
+
{ arguments: '--cut --owner "$PPID"', note: 'hand the record off before a cut' },
|
|
49
|
+
{
|
|
50
|
+
arguments:
|
|
51
|
+
'--retrospective --summary "0 filed; dropped #2240 already merged" --owner "$PPID"',
|
|
52
|
+
note: 'close the end-of-run retrospective',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
arguments: '--resume "backlogrun --max 5" --owner "$PPID"',
|
|
56
|
+
note: 'adopt a record no cut handed off',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
arguments: '--end --stopped "epic #2126: everything is blocked behind parked #2118"',
|
|
60
|
+
note: 'end + push',
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
flags: [
|
|
64
|
+
{
|
|
65
|
+
names: [OWNER],
|
|
66
|
+
description:
|
|
67
|
+
'the long-lived process spending the budget (`$PPID` under a loop); required by counts and `--begin` / `--resume`. A live PID stays `busy` if probes fail.',
|
|
68
|
+
},
|
|
69
|
+
{ names: ['--done <issue>'], description: "shrinks a named-issue run's `remaining` list." },
|
|
70
|
+
{
|
|
71
|
+
names: ['--merged <issue>'],
|
|
72
|
+
description:
|
|
73
|
+
'names the merged issue and counts it once against `merged_issues`, so a merge `run:merge` already recorded is not counted twice.',
|
|
74
|
+
},
|
|
75
|
+
{ names: ['--filed', '--cut'], description: 'increments, never totals.' },
|
|
76
|
+
{
|
|
77
|
+
names: ['--retrospective'],
|
|
78
|
+
description:
|
|
79
|
+
"marks the end-of-run retrospective run, once per invocation, and requires `--summary <text>` — the same close writes that result as one `retrospective` event on the run's event stream (best-effort), so a run that filed zero improvements reads apart from one whose retrospective never ran. Either flag without the other is refused.",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
names: ['--stopped <reason>'],
|
|
83
|
+
description:
|
|
84
|
+
'rides on `--end`: the run stopped rather than finished, so one ⏸️ confirmation is pushed with the reason.',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
names: ['--end'],
|
|
88
|
+
description:
|
|
89
|
+
'over a live record flushes pending ledger lines once (a failed flush goes to stderr and the record is still cleared); first collects each lane the run launched whose issue merged, exactly as `run:merge` would; keeps the run it removes as the last ended run — its invocation, start and end, one record overwritten by the next `--end` — so `run:board` can still draw a finished run.',
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
'run:add': {
|
|
94
|
+
examples: [
|
|
95
|
+
{ arguments: '101 102', note: 'ahead of the rest of the queue (`#N` works too)' },
|
|
96
|
+
{ arguments: '101 --no-priority', note: 'at the end of the queue' },
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
'run:wake': {
|
|
100
|
+
examples: [
|
|
101
|
+
{ arguments: '--start', note: 'launch the detached supervisor' },
|
|
102
|
+
{ arguments: '--list', note: 'supervisor state, cut/wake counts, latest progress line' },
|
|
103
|
+
{ arguments: '--stop', note: 'stop the supervisor alone' },
|
|
104
|
+
{ arguments: '--loop --interval 30', note: 'run the loop body in the foreground' },
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
'run:cut': {
|
|
108
|
+
examples: [
|
|
109
|
+
{ arguments: '1839', note: 'take the cut and hand it to a fresh process' },
|
|
110
|
+
{
|
|
111
|
+
arguments: '--impl 1839 --handoff .claude/tmp/handoff-1839.json',
|
|
112
|
+
note: 'cut mid-implementation, carrying the instruction',
|
|
113
|
+
},
|
|
114
|
+
{ arguments: '--resume 1839', note: "a fresh process's entry check" },
|
|
115
|
+
{ arguments: '--end', note: 'clear the record' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
'run:liveness': {
|
|
119
|
+
examples: [
|
|
120
|
+
{ arguments: '1169 --output <path>' },
|
|
121
|
+
{ arguments: '1169 --output <path> --window 45 --gap 2 --repo joshuafolkken/app-kit' },
|
|
122
|
+
],
|
|
123
|
+
flags: [
|
|
124
|
+
{
|
|
125
|
+
names: [OUTPUT],
|
|
126
|
+
description:
|
|
127
|
+
'absolute, under the home or temp directory; a symlink is followed and size compared as well as mtime.',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
names: ['--process alive | none'],
|
|
131
|
+
description:
|
|
132
|
+
"overrides the process trace, which the command otherwise reads itself: the child's own command line (`fullrun #<N>`) or its detached ship supervisor.",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
names: ['--window <min>'],
|
|
136
|
+
description: 'silent window the file must be frozen for (default 30).',
|
|
137
|
+
},
|
|
138
|
+
{ names: ['--gap <sec>'], description: 'spacing between samples (default 5).' },
|
|
139
|
+
REPO_FLAG,
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
'run:ending': {
|
|
143
|
+
examples: [
|
|
144
|
+
{ arguments: '2118 --output <path>' },
|
|
145
|
+
{ arguments: '2118 --output <path> --repo joshuafolkken/app-kit' },
|
|
146
|
+
],
|
|
147
|
+
flags: [
|
|
148
|
+
{
|
|
149
|
+
names: [OUTPUT],
|
|
150
|
+
description:
|
|
151
|
+
"the child's transcript, absolute and under the home or temp directory (validated the same way `run:liveness --output` is).",
|
|
152
|
+
},
|
|
153
|
+
REPO_FLAG,
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
'run:prep': { examples: [ISSUE] },
|
|
157
|
+
'run:entry': {
|
|
158
|
+
examples: [
|
|
159
|
+
{ arguments: '<N>', note: 'a `fullrun`' },
|
|
160
|
+
{ arguments: '<N> --to halfrun', note: 'a run that goes as far as `halfrun`' },
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
'run:status': {
|
|
164
|
+
examples: [ISSUE, { arguments: '<N> --repo <owner/repo>', note: 'a cross-repo child' }],
|
|
165
|
+
},
|
|
166
|
+
'run:next': { examples: [ISSUE] },
|
|
167
|
+
'run:step': {
|
|
168
|
+
examples: [
|
|
169
|
+
{ arguments: '<N>', note: "the run's next action for issue <N>" },
|
|
170
|
+
{ arguments: '', note: "the `backlogrun` parent's next action" },
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
'run:merge': {
|
|
174
|
+
examples: [
|
|
175
|
+
{
|
|
176
|
+
arguments: '<N> --epic <E> --repo <owner/repo> --owner "$PPID" --output <path>',
|
|
177
|
+
note: 'prints the next child number, or a verdict',
|
|
178
|
+
},
|
|
179
|
+
{ arguments: '<N> --owner "$PPID"', note: 'backlog offer (no epic)' },
|
|
180
|
+
],
|
|
181
|
+
flags: [
|
|
182
|
+
{
|
|
183
|
+
names: ['--epic <E>', '--repo <owner/repo>'],
|
|
184
|
+
description: "offer the epic's next children; omit both for the opted-in backlog.",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
names: [OWNER],
|
|
188
|
+
description: "the parent's process, so the carry count respects the ownership guard.",
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
names: [OUTPUT],
|
|
192
|
+
description: 'the transcript the outage split reads; absent, it is off.',
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
'run:review': {
|
|
197
|
+
examples: [
|
|
198
|
+
{
|
|
199
|
+
arguments: '',
|
|
200
|
+
note: 'detach the gate, print the brief; then launch the /code-review subagent',
|
|
201
|
+
},
|
|
202
|
+
{ arguments: '--join', note: 'after the review returns: join the gate, check its verdict' },
|
|
203
|
+
],
|
|
204
|
+
},
|
|
205
|
+
'run:tail': {
|
|
206
|
+
examples: [
|
|
207
|
+
{ arguments: '<N>', note: 'the closed issue' },
|
|
208
|
+
{ arguments: '<N> <follow-up-N>', note: 'and a follow-up filed this run' },
|
|
209
|
+
],
|
|
210
|
+
},
|
|
211
|
+
ship: {
|
|
212
|
+
examples: [
|
|
213
|
+
{ arguments: '"<title> #<N>" --body-file <evidence.md>' },
|
|
214
|
+
{ arguments: '"<title> #<N>" --review', note: 'both review rounds inside the ship' },
|
|
215
|
+
{ arguments: '--detach "<title> #<N>"', note: 'hand the ship to a supervisor' },
|
|
216
|
+
{ arguments: '--log <N>', note: "a detached ship's log" },
|
|
217
|
+
],
|
|
218
|
+
flags: [
|
|
219
|
+
{
|
|
220
|
+
names: ['--body-file <path>'],
|
|
221
|
+
description:
|
|
222
|
+
'the PR body carrying the live-execution evidence `followup` gates on; forwarded to `git -y` alone.',
|
|
223
|
+
},
|
|
224
|
+
{ names: ['--notify-message <text>'], description: 'forwarded to `followup` alone.' },
|
|
225
|
+
{
|
|
226
|
+
names: ['--review'],
|
|
227
|
+
description:
|
|
228
|
+
'runs review round 1 beside the gate, and round 2 after the commit when `review:round2` requires it; a High or an unfixed Medium stops the ship.',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
names: ['--detach'],
|
|
232
|
+
description:
|
|
233
|
+
'hands the ship to a supervisor (implied in a lane child); a stop emits `ship-stop` (`--log <N>`). The preflight, type check, unused exports, cspell and guard tests run before the hand-off; a stop returns to the same session.',
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
'run:report': {
|
|
238
|
+
examples: [{ arguments: '', note: 'print the report; the same text josh notify sends' }],
|
|
239
|
+
},
|
|
240
|
+
'run:event': {
|
|
241
|
+
examples: [
|
|
242
|
+
{ arguments: '--append <kind> <text>', note: 'append one event; prints its position' },
|
|
243
|
+
{ arguments: '--from <position>', note: 'every event after <position>, in order (JSON)' },
|
|
244
|
+
{ arguments: '--follow <position>', note: 'new events, waiting for one; position on stderr' },
|
|
245
|
+
{ arguments: '--watch [<position>]', note: 'every new event, rendered, until interrupted' },
|
|
246
|
+
{ arguments: '--last', note: 'the newest event alone' },
|
|
247
|
+
],
|
|
248
|
+
},
|
|
249
|
+
}
|
|
250
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
251
|
+
|
|
252
|
+
export { RUN_USAGE }
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import type { CommandUsage } from './josh-command-types'
|
|
2
|
+
|
|
3
|
+
// The usage of the commands `docs/josh-commands-run.md` documents from `run:progress` on — the run's
|
|
4
|
+
// watchers, the lanes, and the session-budget and document-reading commands — keyed by command name.
|
|
5
|
+
// The page's usage blocks are generated from this table and `josh help <command>` prints it, so an
|
|
6
|
+
// example or a flag is written once, here (#3937). The run lifecycle before it is `josh-usage-run.ts`.
|
|
7
|
+
const BARE = { arguments: '' }
|
|
8
|
+
const PATH_DIR = '--path <dir>'
|
|
9
|
+
|
|
10
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
11
|
+
const SESSION_USAGE: Readonly<Record<string, CommandUsage>> = {
|
|
12
|
+
'run:progress': {
|
|
13
|
+
examples: [
|
|
14
|
+
{ arguments: '--output <path>' },
|
|
15
|
+
{ arguments: '--once', note: 'five labelled lines now, whatever the clock says' },
|
|
16
|
+
{ arguments: '--interval 20 --repo joshuafolkken/app-kit --hours 4' },
|
|
17
|
+
],
|
|
18
|
+
flags: [
|
|
19
|
+
{
|
|
20
|
+
names: ['--mark'],
|
|
21
|
+
description:
|
|
22
|
+
'record that a real report happened without printing a line (keeps the last line for `run:wake --list`).',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
names: ['--path'],
|
|
26
|
+
description:
|
|
27
|
+
'print the ambient heartbeat log\'s path and exit. Every heartbeat line is mirrored there, so `tail -F "$(pnpm josh run:progress --path)"` follows the run across a `backlogrun` session cut. Reads no run state, so it answers in a lane child too.',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
names: ['--interval <min>'],
|
|
31
|
+
description:
|
|
32
|
+
'silence interval (default 20; also `JOSH_PROGRESS_INTERVAL_MINUTES`, then `josh.progress_interval_minutes`).',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
names: ['--wait'],
|
|
36
|
+
description:
|
|
37
|
+
'start once in the background: each report goes to the event stream and ambient log, never stdout; exits only on an arrival, `josh followup` ending the run, or `--hours`.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
names: ['--hours <n>'],
|
|
41
|
+
description: 'how long the watcher lives (default 8 with `--wait`, 1 otherwise).',
|
|
42
|
+
},
|
|
43
|
+
{ names: ['--repo <owner/name>'], description: 'scopes the read.' },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
'run:board': {
|
|
47
|
+
examples: [
|
|
48
|
+
{ arguments: '', note: 'redraw until interrupted' },
|
|
49
|
+
{ arguments: '--once', note: 'one frame, then exit' },
|
|
50
|
+
{ arguments: '--chat', note: 'one frame for a chat, recorded as a progress report' },
|
|
51
|
+
{
|
|
52
|
+
arguments: '--every 5',
|
|
53
|
+
note: 'the --chat frame as a 📊 Progress Telegram every 5 minutes, until the run ends',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
flags: [
|
|
57
|
+
{
|
|
58
|
+
names: ['--chat'],
|
|
59
|
+
description:
|
|
60
|
+
'answers a `backlogrun` progress question: the frame `--once` draws, with only `🧠` on the machine line and no escapes; it records the report as `run:progress --mark` does.',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
names: ['--every <minutes>'],
|
|
64
|
+
description:
|
|
65
|
+
'sends the `--chat` frame as a `📊 Progress` Telegram now and every `<minutes>` until the run ends — only when a person asks for it.',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
'run:watcher:guard': { examples: [BARE] },
|
|
70
|
+
'run:stranded': { examples: [BARE] },
|
|
71
|
+
'lane:open': { examples: [{ arguments: '1490', note: 'prints the lane directory on stdout' }] },
|
|
72
|
+
'lane:close': {
|
|
73
|
+
examples: [{ arguments: '1490' }, { arguments: '--all' }],
|
|
74
|
+
flags: [{ names: ['--all'], description: 'closes every lane.' }],
|
|
75
|
+
},
|
|
76
|
+
'lane:list': { examples: [BARE] },
|
|
77
|
+
'lane:prune': { examples: [BARE] },
|
|
78
|
+
'lane:output': {
|
|
79
|
+
examples: [
|
|
80
|
+
{ arguments: '1713 /abs/path/to/agent-7.jsonl', note: 'record it; prints the path back' },
|
|
81
|
+
{ arguments: '1713', note: 'read it; prints the path, or `none`' },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
'lane:dispatch': {
|
|
85
|
+
examples: [
|
|
86
|
+
{
|
|
87
|
+
arguments: '1749',
|
|
88
|
+
note: "prints the child's pid; a refusal is an empty capture and exit 1",
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
flags: [
|
|
92
|
+
{
|
|
93
|
+
names: ['JOSH_{SCHEDULER,WORKER,REVIEWER}_MODEL'],
|
|
94
|
+
description:
|
|
95
|
+
'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.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
names: ['JOSH_{SCHEDULER,WORKER,REVIEWER}_EFFORT'],
|
|
99
|
+
description:
|
|
100
|
+
'role effort overrides for either provider; defaults are `medium`, `medium`, and `high`.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
names: ['JOSH_REVIEWER_VERIFICATION_{MODEL,EFFORT}'],
|
|
104
|
+
description:
|
|
105
|
+
'review round 2 and later (the verification pass); Anthropic defaults are `claude-sonnet-5-5` / `high`, falling back to `JOSH_REVIEWER_*`.',
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
'lane:await': {
|
|
110
|
+
examples: [
|
|
111
|
+
{ arguments: '1749 1750', note: 'block until either lane completes' },
|
|
112
|
+
{
|
|
113
|
+
arguments: '1749 1750 --owner "$PPID"',
|
|
114
|
+
note: 'reclaim the carry record for a resumed conversation first',
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
'lane:launch': {
|
|
119
|
+
examples: [
|
|
120
|
+
{ arguments: '1749', note: 'every lane after the first' },
|
|
121
|
+
{
|
|
122
|
+
arguments: '1749 --stash "backlogrun: josh latest before lanes"',
|
|
123
|
+
note: 'the first lane only',
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
'lane:sample': { examples: [{ arguments: '', note: 'one machine-load reading' }] },
|
|
128
|
+
'lane:stats': {
|
|
129
|
+
examples: [{ arguments: '--period 7', note: "a 7-day period's stage medians and maxima" }],
|
|
130
|
+
},
|
|
131
|
+
cost: {
|
|
132
|
+
examples: [
|
|
133
|
+
{
|
|
134
|
+
arguments: '--cut',
|
|
135
|
+
note: 'compare billed input per request with the shared 135,000 context-cut threshold',
|
|
136
|
+
},
|
|
137
|
+
{ arguments: '--over <tokens>', note: 'compare with an explicit limit' },
|
|
138
|
+
{ arguments: `--cut ${PATH_DIR}`, note: 'Anthropic project or current OpenAI worktree' },
|
|
139
|
+
],
|
|
140
|
+
flags: [
|
|
141
|
+
{
|
|
142
|
+
names: [PATH_DIR],
|
|
143
|
+
description:
|
|
144
|
+
'selects another Anthropic project; OpenAI accepts only linked checkouts of the current project.',
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
'doc:section': {
|
|
149
|
+
examples: [
|
|
150
|
+
{ arguments: '<file.md> "<heading>"' },
|
|
151
|
+
{ arguments: 'backlogrun.md "The hand-off"' },
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
'read:set': {
|
|
155
|
+
examples: [
|
|
156
|
+
{ arguments: '', note: 'every entry point' },
|
|
157
|
+
{ arguments: 'backlogrun', note: 'one of them' },
|
|
158
|
+
{ arguments: 'backlogrun --json' },
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
'doc:read': {
|
|
162
|
+
examples: [
|
|
163
|
+
{ arguments: 'CLAUDE.md', note: 'under the cap: prints the document' },
|
|
164
|
+
{ arguments: 'backlogrun.md', note: 'over the cap: prints a directive, no content' },
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
'read:files': {
|
|
168
|
+
examples: [
|
|
169
|
+
{ arguments: 'a.ts b.ts c.ts', note: 'under the cap: prints each file under its own header' },
|
|
170
|
+
{
|
|
171
|
+
arguments: 'a.ts big.ts',
|
|
172
|
+
note: 'over the cap: prints a directive to Read them in one turn, no content',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
'edit:files': {
|
|
177
|
+
examples: [
|
|
178
|
+
{
|
|
179
|
+
arguments: 'plan.txt',
|
|
180
|
+
note: 'applies every block in the plan, one line per edit reporting the outcome',
|
|
181
|
+
},
|
|
182
|
+
{ arguments: "- <<'EDITS'", note: 'plan from stdin, then EDITS' },
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
time: {
|
|
186
|
+
examples: [
|
|
187
|
+
{ arguments: '', note: 'the last run tree, wall clock and cost by role' },
|
|
188
|
+
{ arguments: '--run', note: 'the same run-tree scope, named explicitly' },
|
|
189
|
+
{ arguments: '--json', note: 'the same figures, machine-readable' },
|
|
190
|
+
{ arguments: PATH_DIR, note: "read another project's transcripts from this checkout" },
|
|
191
|
+
],
|
|
192
|
+
flags: [
|
|
193
|
+
{
|
|
194
|
+
names: ['--run'],
|
|
195
|
+
description:
|
|
196
|
+
'(default) the whole run tree, wall clock led beside dollars. It is the only scope; any other flag is a usage error (exit 1). History: `docs/maintainers/josh-commands-run-rationale.md` → "`josh cost` and `josh time` lost their report scopes".',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
names: [PATH_DIR],
|
|
200
|
+
description:
|
|
201
|
+
'aim the read at another project (absolute path); keeps the `cwd` behavior when absent.',
|
|
202
|
+
},
|
|
203
|
+
{ names: ['--json'], description: 'the run tree, machine-readable.' },
|
|
204
|
+
],
|
|
205
|
+
},
|
|
206
|
+
'cost:audit': {
|
|
207
|
+
examples: [
|
|
208
|
+
{ arguments: '', note: 'the last 7 days against the 7 before' },
|
|
209
|
+
{ arguments: '--period 30', note: 'the last 30 days against the 30 before' },
|
|
210
|
+
],
|
|
211
|
+
flags: [
|
|
212
|
+
{
|
|
213
|
+
names: ['--period <days>'],
|
|
214
|
+
description: 'the length of each period, a positive whole number of days (default 7).',
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
},
|
|
218
|
+
retrospective: {
|
|
219
|
+
examples: [{ arguments: '', note: 'the digest for the run this checkout carries' }],
|
|
220
|
+
},
|
|
221
|
+
eval: {
|
|
222
|
+
examples: [
|
|
223
|
+
{ arguments: '', note: 'every scenario' },
|
|
224
|
+
{ arguments: 'consult-not-execute', note: 'one scenario by name' },
|
|
225
|
+
],
|
|
226
|
+
flags: [
|
|
227
|
+
{ names: ['JOSH_EVAL_MODEL'], description: 'the model to run against (default `sonnet`).' },
|
|
228
|
+
{
|
|
229
|
+
names: ['JOSH_EVAL_CONCURRENCY'],
|
|
230
|
+
description:
|
|
231
|
+
'how many sessions run at once (default `5`); a non-positive-integer value is refused.',
|
|
232
|
+
},
|
|
233
|
+
],
|
|
234
|
+
},
|
|
235
|
+
}
|
|
236
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
237
|
+
|
|
238
|
+
export { SESSION_USAGE }
|