@joshuafolkken/kit 1.1471.0 → 1.1784.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/investigator.md +1 -1
- package/.claude/settings.json +6 -6
- package/.claude/skills/epic-commands/SKILL.md +26 -77
- package/.claude/skills/epic-commands/epic-bundle.md +12 -6
- package/.claude/skills/epic-commands/execution-waves.md +1 -2
- package/.claude/skills/verify-ui/SKILL.md +1 -2
- package/.claude/skills/workflow-commands/SKILL.md +12 -14
- package/.claude/skills/workflow-commands/background-commands.md +8 -12
- package/.claude/skills/workflow-commands/backlogrun-child.md +13 -18
- package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +23 -28
- package/.claude/skills/workflow-commands/backlogrun-park.md +16 -31
- package/.claude/skills/workflow-commands/backlogrun-progress.md +12 -21
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +12 -12
- package/.claude/skills/workflow-commands/backlogrun-steps.md +12 -20
- package/.claude/skills/workflow-commands/backlogrun.md +32 -51
- package/.claude/skills/workflow-commands/chain-rule.md +18 -11
- package/.claude/skills/workflow-commands/delegation.md +13 -8
- package/.claude/skills/workflow-commands/entry-sequence.md +10 -12
- package/.claude/skills/workflow-commands/followup.md +10 -35
- package/.claude/skills/workflow-commands/fullrun-steps.md +38 -49
- package/.claude/skills/workflow-commands/fullrun.md +6 -8
- package/.claude/skills/workflow-commands/halfrun.md +20 -32
- package/.claude/skills/workflow-commands/into-target.md +1 -2
- package/.claude/skills/workflow-commands/issue-comments.md +19 -15
- package/.claude/skills/workflow-commands/issue-scout.md +5 -4
- package/.claude/skills/workflow-commands/kickoff.md +24 -23
- package/.claude/skills/workflow-commands/latest-gate.md +9 -18
- package/.claude/skills/workflow-commands/needs-human-review.md +11 -19
- package/.claude/skills/workflow-commands/observation-filing.md +4 -50
- package/.claude/skills/workflow-commands/observation-ledger.md +5 -10
- package/.claude/skills/workflow-commands/pre-gate-cut.md +22 -44
- package/.claude/skills/workflow-commands/prerequisite.md +11 -18
- package/.claude/skills/workflow-commands/progress-watcher.md +3 -8
- package/.claude/skills/workflow-commands/prrun.md +6 -12
- package/.claude/skills/workflow-commands/retrospective.md +5 -5
- package/.claude/skills/workflow-commands/split-assessment.md +14 -4
- package/.claude/skills/workflow-commands/target-repository.md +1 -2
- package/.claude/skills/workflow-commands/working-tree-hold.md +11 -13
- package/.codex/hooks.json +6 -6
- package/.github/actions/setup-node/action.yml +10 -1
- package/.github/actions/setup-pnpm/action.yml +1 -1
- package/.github/dependabot.yml +16 -0
- package/.github/release.yml +0 -2
- package/.github/workflows/ci.yml +121 -11
- package/.github/workflows/publish.yml +10 -3
- package/.github/workflows/sonar-qube.yml +1 -0
- package/.prettierignore +2 -0
- package/.vscode/tasks.json +1 -2
- package/CLAUDE.md +4 -8
- package/README.md +4 -2
- package/SECURITY.md +1 -1
- package/cspell/index.yaml +7 -0
- package/dist/CLAUDE.md +4 -8
- package/dist/commands/document-read-cli.js +882 -0
- package/dist/commands/{document-section-cli.js → document-section-main.js} +137 -62
- package/dist/commands/read-set-cli.js +1867 -0
- package/dist/commands/run-prep-main.js +21653 -0
- package/dist/commands/run-step-cli.js +23880 -0
- package/dist/config-merge/index.js +5 -1
- package/dist/hooks/audit-provision.js +20 -35
- package/dist/hooks/{chunk-DGT54IH5.js → chunk-AZX4FGQ3.js} +63 -17
- package/dist/hooks/chunk-CWMBGKYW.js +6483 -0
- package/dist/hooks/chunk-O2YBIDSI.js +4306 -0
- package/dist/hooks/{chunk-AS74OU3D.js → chunk-PT5R6UJD.js} +4582 -2118
- package/dist/hooks/chunk-TUIFS5E7.js +72 -0
- package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
- package/dist/hooks/{chunk-E7OIKX5Z.js → chunk-WR2KQAYZ.js} +1863 -382
- package/dist/hooks/{chunk-KC5AK2GF.js → chunk-XGBNSWEI.js} +248 -46
- package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
- package/dist/hooks/codex-hook-adapter.js +10 -19
- package/dist/hooks/format-edited.js +5 -5
- package/dist/hooks/inputs.json +436 -257
- package/dist/hooks/pretool-guard.js +7 -22
- package/dist/hooks/session-lang.js +380 -42
- package/dist/hooks/stop-guard.js +8711 -782
- package/dist/josh.js +5263 -997
- package/dist/self-sync-guard/index.js +74 -10
- package/dist/version/index.js +115 -406
- package/eslint/base.js +1 -1
- package/lefthook/base.yml +8 -4
- package/package.json +17 -53
- package/pnpm-workspace.yaml +4 -2
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +1 -9
- package/prompts/collaboration-workflow/gh-rest.md +1 -2
- package/prompts/collaboration-workflow/issue-citation.md +2 -4
- package/prompts/collaboration-workflow/issue-template.md +42 -17
- package/prompts/collaboration-workflow/lane-instructions.md +34 -0
- package/prompts/collaboration-workflow/measurement.md +37 -0
- package/prompts/collaboration-workflow/operating-rules.md +6 -12
- package/prompts/collaboration-workflow/output-bounds.md +4 -9
- package/prompts/collaboration-workflow/overview.md +1 -1
- package/prompts/collaboration-workflow/plan-comment.md +3 -42
- package/prompts/collaboration-workflow/principles.md +19 -8
- package/prompts/collaboration-workflow/report-format.md +37 -57
- package/prompts/collaboration-workflow/residency.md +12 -8
- package/prompts/collaboration-workflow/rule-delivery.md +3 -11
- package/prompts/collaboration-workflow/shell-body.md +8 -18
- package/prompts/collaboration-workflow/turn-batching.md +4 -6
- package/prompts/collaboration-workflow/upstream-interrupt.md +16 -6
- package/prompts/collaboration-workflow/wip-cap.md +7 -7
- package/prompts/collaboration-workflow.md +4 -7
- package/prompts/refactoring.md +1 -1
- package/prompts/review-rubric.md +1 -2
- package/prompts/review.md +45 -26
- package/prompts/testing-guide.md +10 -45
- package/scripts/agent/agent-argv.ts +20 -4
- package/scripts/agent/agent-event.ts +15 -15
- package/scripts/agent/agent-exit-record.ts +13 -1
- package/scripts/agent/agent-role-profile.ts +101 -45
- package/scripts/agent/agent-safe-text.ts +60 -0
- package/scripts/agent/api-auth.ts +41 -0
- package/scripts/agent/api-outage.ts +1 -1
- package/scripts/agent/claude-agent-argv.ts +14 -0
- package/scripts/agent/codex-agent-argv.ts +2 -0
- package/scripts/agent/lane-instructions.ts +144 -0
- package/scripts/auto-ok/auto-ok-cli.ts +14 -16
- package/scripts/auto-ok/auto-ok-judge-read.ts +12 -3
- package/scripts/auto-ok/auto-ok-judge-write.ts +46 -19
- package/scripts/auto-ok/auto-ok-judge.ts +13 -2
- package/scripts/auto-ok/auto-ok-main.ts +17 -0
- package/scripts/backlog/backlog-arrival.ts +14 -3
- package/scripts/backlog/backlog-budget-cli.ts +7 -33
- package/scripts/backlog/backlog-budget-main.ts +16 -0
- package/scripts/backlog/backlog-budget.ts +6 -7
- package/scripts/backlog/backlog-defect-priority.ts +4 -3
- package/scripts/backlog/backlog-drive-adopt.ts +67 -0
- package/scripts/backlog/backlog-drive-args.ts +4 -5
- package/scripts/backlog/backlog-drive-cli.ts +113 -28
- package/scripts/backlog/backlog-drive-hold.ts +162 -0
- package/scripts/backlog/backlog-drive-idle.ts +151 -0
- package/scripts/backlog/backlog-drive-judge.ts +25 -0
- package/scripts/backlog/backlog-drive-memory.ts +126 -0
- package/scripts/backlog/backlog-drive-named-offer.ts +5 -10
- package/scripts/backlog/backlog-drive-named.ts +54 -7
- package/scripts/backlog/backlog-drive-offer-argv.ts +3 -8
- package/scripts/backlog/backlog-drive-paused.ts +169 -0
- package/scripts/backlog/backlog-drive-restore.ts +39 -8
- package/scripts/backlog/backlog-drive-seats.ts +18 -8
- package/scripts/backlog/backlog-drive-token-handling.ts +38 -0
- package/scripts/backlog/backlog-drive.ts +79 -75
- package/scripts/backlog/backlog-next-main.ts +16 -0
- package/scripts/backlog/backlog-next-shared.ts +73 -0
- package/scripts/backlog/backlog-next.ts +48 -16
- package/scripts/backlog/backlog-occupied.ts +69 -0
- package/scripts/backlog/backlog-offer-cli.ts +6 -21
- package/scripts/backlog/backlog-offer-exclude.ts +15 -0
- package/scripts/backlog/backlog-offer-main.ts +12 -0
- package/scripts/backlog/backlog-offer.ts +36 -3
- package/scripts/backlog/backlog-overlap.ts +22 -4
- package/scripts/backlog/backlog-plan-read.ts +6 -2
- package/scripts/backlog/backlog-plan.ts +18 -4
- package/scripts/backlog/backlog-pool.ts +10 -10
- package/scripts/backlog/backlog-rank.ts +10 -2
- package/scripts/backlog/backlog-ready.ts +137 -18
- package/scripts/backlog/backlog-stalled-detect.ts +109 -36
- package/scripts/backlog/backlog-stalled.ts +52 -16
- package/scripts/backlog/backlog-wait-cause.ts +86 -0
- package/scripts/backlog/backlog-waves.ts +39 -13
- package/scripts/backlog/backlogrun-args.ts +19 -7
- package/scripts/backlog/backlogrun-cli.ts +19 -5
- package/scripts/backlog/backlogrun-launch.ts +6 -0
- package/scripts/backlog/backlogrun-restart.ts +97 -0
- package/scripts/backlog/backlogrun-stop.ts +79 -7
- package/scripts/behavior/behavior-cli.ts +2 -2
- package/scripts/behavior/behavior-rules.ts +47 -24
- package/scripts/build/build-bin.ts +2 -16
- package/scripts/build/build-claude-md.ts +0 -7
- package/scripts/build/build-commands.ts +0 -13
- package/scripts/build/build-hooks.ts +49 -48
- package/scripts/build/hook-bundle-stamp.ts +29 -11
- package/scripts/build/local-bin.ts +1 -1
- package/scripts/cases/cases-cli.ts +25 -13
- package/scripts/cases/cases-interaction-scan.ts +134 -0
- package/scripts/cases/cases-interaction.ts +183 -0
- package/scripts/cases/cases-logic.ts +39 -6
- package/scripts/ci/pr-classification-main.ts +18 -0
- package/scripts/ci/pr-classification.ts +10 -17
- package/scripts/clone/clone-scan.ts +1 -1
- package/scripts/cost-runtime/cost-blocks.ts +22 -37
- package/scripts/cost-runtime/cost-cli.ts +31 -14
- package/scripts/cost-runtime/cost-main.ts +12 -0
- package/scripts/cost-runtime/cost-transcript.ts +1 -0
- package/scripts/delegation/delegation-policy.ts +17 -4
- package/scripts/delegation/duplicate-read-guard.ts +2 -10
- package/scripts/delegation/investigation-guard.ts +15 -73
- package/scripts/delegation/investigation-reads.ts +3 -5
- package/scripts/dependabot/dependabot-cooldown.ts +194 -0
- package/scripts/discovery/repo-discovery.ts +24 -6
- package/scripts/doctor/doctor-consumer.ts +2 -5
- package/scripts/document/document-byte-budget.ts +9 -6
- package/scripts/document/document-scan.ts +1 -1
- package/scripts/document/document-section-cli.ts +17 -13
- package/scripts/document/document-section-main.ts +12 -0
- package/scripts/document/entry-read-budget.ts +2 -2
- package/scripts/document/read-set-cli.ts +4 -1
- package/scripts/epic/epic-audit-cli.ts +12 -6
- package/scripts/epic/epic-audit-orphans.ts +5 -8
- package/scripts/epic/epic-audit.ts +52 -1
- package/scripts/epic/epic-bundle-apply.ts +137 -0
- package/scripts/epic/epic-bundle-cli.ts +32 -121
- package/scripts/epic/epic-bundle-evidence.ts +49 -26
- package/scripts/epic/epic-bundle-format.ts +116 -0
- package/scripts/epic/epic-bundle-main.ts +17 -0
- package/scripts/epic/epic-bundle-referenced.ts +14 -3
- package/scripts/epic/epic-bundle.ts +17 -9
- package/scripts/epic/epic-busy.ts +5 -12
- package/scripts/epic/epic-classify.ts +24 -15
- package/scripts/epic/epic-cli-argv.ts +31 -0
- package/scripts/epic/epic-cli-decide.ts +42 -0
- package/scripts/epic/epic-cli.ts +6 -38
- package/scripts/epic/epic-close.ts +112 -55
- package/scripts/epic/epic-cross-repo.ts +4 -7
- package/scripts/epic/epic-decide.ts +119 -0
- package/scripts/epic/epic-decision.ts +9 -0
- package/scripts/epic/epic-fetch.ts +4 -0
- package/scripts/epic/epic-graph.ts +2 -0
- package/scripts/epic/epic-issue.ts +5 -1
- package/scripts/epic/epic-label-age.ts +1 -1
- package/scripts/epic/epic-lane-offer.ts +39 -4
- package/scripts/epic/epic-next-main.ts +24 -0
- package/scripts/epic/epic-next.ts +6 -24
- package/scripts/epic/epic-outside-blocker.ts +6 -2
- package/scripts/epic/epic-parse.ts +9 -3
- package/scripts/epic/epic-read.ts +1 -0
- package/scripts/epic/epic-reconcile.ts +39 -0
- package/scripts/epic/epic-run.ts +10 -1
- package/scripts/epic/epic-solo.ts +50 -14
- package/scripts/epic/epic.ts +41 -7
- package/scripts/exports/unused-members-cli.ts +2 -2
- package/scripts/followup/followup-checks-event.ts +8 -3
- package/scripts/followup/followup-coderabbit-wait.ts +82 -0
- package/scripts/followup/followup-review-gates.ts +81 -0
- package/scripts/followup/git-followup-stages.ts +13 -3
- package/scripts/followup/git-followup-workflow.ts +31 -60
- package/scripts/followup/git-pr-followup-wrapup.ts +9 -14
- package/scripts/followup/git-pr-followup.ts +36 -8
- package/scripts/fresh-machine/fresh-machine-cli.ts +1 -1
- package/scripts/fresh-machine/fresh-machine-run.ts +8 -8
- package/scripts/fresh-machine/specs/kit-test-backlogrun.json +1 -1
- package/scripts/gate/busy-average.ts +58 -0
- package/scripts/gate/check-cpu.ts +60 -0
- package/scripts/gate/check-inputs.ts +73 -0
- package/scripts/gate/check-reuse.ts +141 -0
- package/scripts/gate/command-memory.ts +192 -0
- package/scripts/gate/core-admission.ts +218 -28
- package/scripts/gate/core-budget-timing.ts +37 -0
- package/scripts/gate/core-budget.ts +150 -119
- package/scripts/gate/core-wait-record.ts +48 -0
- package/scripts/gate/core-wait.ts +162 -0
- package/scripts/gate/core-weights.ts +86 -0
- package/scripts/gate/free-cores.ts +72 -0
- package/scripts/gate/gate-ledger.ts +49 -7
- package/scripts/gate/gate-plan.ts +44 -15
- package/scripts/gate/gate-report.ts +29 -4
- package/scripts/gate/gate-run-steps.ts +195 -0
- package/scripts/gate/gate-skip.ts +12 -2
- package/scripts/gate/gate-steps.ts +12 -1
- package/scripts/gate/held-mark.ts +55 -0
- package/scripts/gate/input-fingerprint.ts +42 -0
- package/scripts/gate/machine-capacity.ts +124 -31
- package/scripts/gate/moved-paths.ts +67 -0
- package/scripts/gate/pre-commit-type-check.ts +14 -1
- package/scripts/gate/project-checks.ts +5 -12
- package/scripts/gate/scoped-green.ts +12 -8
- package/scripts/gate/since-green.ts +62 -0
- package/scripts/gate/toolchain-inputs.ts +115 -0
- package/scripts/gate/verification-gate.ts +65 -129
- package/scripts/gate/verification-inputs.ts +250 -0
- package/scripts/gh/gh-author-association.ts +96 -9
- package/scripts/gh/git-ai-review-scan.ts +4 -2
- package/scripts/gh/git-gh-api-path.ts +15 -0
- package/scripts/gh/git-gh-branch-rules.ts +73 -0
- package/scripts/gh/git-gh-conditional.ts +5 -2
- package/scripts/gh/git-gh-issue-read.ts +5 -1
- package/scripts/gh/git-gh-issue-rest.ts +1 -0
- package/scripts/gh/git-gh-issue-write.ts +77 -17
- package/scripts/gh/git-gh-issue.ts +7 -3
- package/scripts/gh/git-gh-poll-read.ts +89 -0
- package/scripts/gh/git-gh-pr-auto-merge.ts +8 -3
- package/scripts/gh/git-gh-pr-rest.ts +1 -1
- package/scripts/gh/git-gh-pr-snapshot.ts +33 -20
- package/scripts/gh/git-gh-pr.ts +27 -15
- package/scripts/gh/git-pr-checks-eval.ts +39 -7
- package/scripts/gh/git-pr-checks-parse.ts +39 -9
- package/scripts/gh/git-pr-merge-checked.ts +80 -0
- package/scripts/gh/git-pr.ts +13 -1
- package/scripts/git/base-tree.ts +19 -2
- package/scripts/git/changed-file-scope.ts +6 -4
- package/scripts/git/changed-paths.ts +18 -1
- package/scripts/git/git-diff-reads.ts +27 -2
- package/scripts/git/git-grep-hits.ts +85 -0
- package/scripts/git/git-location-environment.ts +1 -1
- package/scripts/git/git-merge-conflicts.ts +83 -0
- package/scripts/git/git-preflight.ts +37 -12
- package/scripts/git/git-push-transport.ts +1 -2
- package/scripts/git/git-schemas.ts +17 -7
- package/scripts/git/git-spawn.ts +1 -2
- package/scripts/git/git-status.ts +4 -4
- package/scripts/git/main-merge-main.ts +12 -0
- package/scripts/git/main-merge-regenerate.ts +78 -0
- package/scripts/git/main-merge.ts +39 -14
- package/scripts/git/main-sync-main.ts +12 -0
- package/scripts/git/main-sync.ts +0 -9
- package/scripts/git/stash/git-stash.ts +27 -4
- package/scripts/git/stash/{stash-pop-args.ts → stash-args.ts} +13 -10
- package/scripts/git/stash/stash-pop-cli.ts +6 -12
- package/scripts/git/stash/stash-pop-main.ts +12 -0
- package/scripts/git/stash/stash-push-cli.ts +76 -0
- package/scripts/git/stash/stash-push-main.ts +12 -0
- package/scripts/hooks/batch-guard.ts +5 -16
- package/scripts/hooks/check-commit-message-main.ts +8 -0
- package/scripts/hooks/check-commit-message.ts +4 -7
- package/scripts/hooks/format-edited-file.ts +8 -24
- package/scripts/hooks/pre-commit-lint.ts +118 -0
- package/scripts/hooks/pre-push-unit.ts +4 -2
- package/scripts/hooks/pretool-guard-cli.ts +1 -8
- package/scripts/hooks/pretool-guard.ts +57 -69
- package/scripts/hooks/reserved-run.ts +67 -8
- package/scripts/hooks/run-hook.sh +18 -11
- package/scripts/hooks/shell-rules-notice.ts +37 -0
- package/scripts/hooks/stop-actions.ts +185 -0
- package/scripts/hooks/stop-guard.ts +72 -27
- package/scripts/init/hook-command-rewrite.ts +19 -5
- package/scripts/init/hook-launch.ts +15 -12
- package/scripts/init/init-actions.ts +0 -6
- package/scripts/init/init-ai-copy.ts +10 -36
- package/scripts/init/init-bootstrap.ts +9 -8
- package/scripts/init/init-dry-run-report.ts +1 -1
- package/scripts/init/init-dry-run.ts +1 -1
- package/scripts/init/init-file-action.ts +7 -9
- package/scripts/init/init-logic-json-merge.ts +2 -2
- package/scripts/init/init-logic-migrate.ts +9 -82
- package/scripts/init/init-logic.ts +3 -2
- package/scripts/init/init-main.ts +12 -0
- package/scripts/init/init.ts +5 -12
- package/scripts/init/kit-development-versions.ts +3 -7
- package/scripts/init/kit-written-paths.ts +2 -2
- package/scripts/init/project-profile.ts +5 -4
- package/scripts/init/tsconfig-preset-migration.ts +2 -1
- package/scripts/init/vscode-tasks.ts +1 -1
- package/scripts/issue/defect-origin-cli.ts +106 -0
- package/scripts/issue/defect-origin-line.ts +60 -0
- package/scripts/issue/defect-origin-main.ts +11 -0
- package/scripts/issue/defect-origin.ts +114 -0
- package/scripts/issue/defect-rate-cli.ts +34 -78
- package/scripts/issue/defect-rate.ts +0 -16
- package/scripts/issue/defect-report-cli.ts +128 -0
- package/scripts/issue/defect-report-format.ts +56 -0
- package/scripts/issue/defect-report-main.ts +11 -0
- package/scripts/issue/defect-report.ts +160 -0
- package/scripts/issue/expected-effect-lint.ts +60 -0
- package/scripts/issue/issue-already-done-cli.ts +62 -0
- package/scripts/issue/issue-body-or-comment.ts +40 -0
- package/scripts/issue/issue-cite-cli.ts +33 -22
- package/scripts/issue/issue-cite-main.ts +12 -0
- package/scripts/issue/issue-classification.ts +13 -8
- package/scripts/issue/issue-comment-cli.ts +10 -24
- package/scripts/issue/issue-comment-main.ts +12 -0
- package/scripts/issue/issue-evidence-exit.ts +100 -0
- package/scripts/issue/issue-file-cli.ts +29 -7
- package/scripts/issue/issue-file.ts +19 -19
- package/scripts/issue/issue-fold-cli.ts +2 -11
- package/scripts/issue/issue-fold-main.ts +12 -0
- package/scripts/issue/issue-labels.ts +81 -90
- package/scripts/issue/issue-lint-cli.ts +7 -13
- package/scripts/issue/issue-lint-main.ts +12 -0
- package/scripts/issue/issue-measured-cli.ts +56 -0
- package/scripts/issue/issue-merged.ts +19 -2
- package/scripts/issue/issue-not-before-label.ts +135 -0
- package/scripts/issue/issue-not-before.ts +111 -0
- package/scripts/issue/issue-number-shape.ts +15 -1
- package/scripts/issue/issue-park.ts +28 -0
- package/scripts/issue/issue-plan-cli.ts +151 -0
- package/scripts/issue/issue-priority.ts +151 -0
- package/scripts/issue/issue-rank.ts +7 -1
- package/scripts/issue/issue-read-cli.ts +3 -10
- package/scripts/issue/issue-read-main.ts +12 -0
- package/scripts/issue/issue-read.ts +29 -5
- package/scripts/issue/issue-release-cli.ts +0 -10
- package/scripts/issue/issue-release-main.ts +13 -0
- package/scripts/issue/issue-release.ts +7 -12
- package/scripts/issue/issue-sample-gate.ts +192 -0
- package/scripts/issue/issue-sample-source.ts +76 -0
- package/scripts/issue/issue-scout-cli.ts +19 -25
- package/scripts/issue/issue-scout-main.ts +14 -0
- package/scripts/issue/issue-state-cli.ts +0 -10
- package/scripts/issue/issue-state-main.ts +12 -0
- package/scripts/issue/issue-watch-diff.ts +56 -15
- package/scripts/issue/issue-watch.ts +2 -1
- package/scripts/issue/issue-wip.ts +2 -7
- package/scripts/issue/markdown-section.ts +19 -5
- package/scripts/issue/measure-rerun-cli.ts +13 -8
- package/scripts/issue/plan-consumers-cli.ts +39 -0
- package/scripts/issue/plan-consumers-main.ts +11 -0
- package/scripts/issue/plan-consumers-section.ts +55 -0
- package/scripts/issue/plan-consumers.ts +127 -0
- package/scripts/josh/agent-session-environment.ts +1 -1
- package/scripts/josh/command-usage.ts +82 -0
- package/scripts/josh/file-map-stamp.ts +49 -16
- package/scripts/josh/hook-decision.ts +32 -20
- package/scripts/josh/josh-command-map.ts +6 -1
- package/scripts/josh/josh-command-types.ts +65 -13
- package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
- package/scripts/josh/josh-commands-ai.ts +169 -157
- package/scripts/josh/josh-commands-backlog.ts +82 -16
- package/scripts/josh/josh-commands-clone.ts +1 -0
- package/scripts/josh/josh-commands-development.ts +111 -71
- package/scripts/josh/josh-commands-document.ts +43 -1
- package/scripts/josh/josh-commands-epic.ts +171 -0
- package/scripts/josh/josh-commands-hooks.ts +31 -2
- package/scripts/josh/josh-commands-issue-write.ts +181 -0
- package/scripts/josh/josh-commands-issue.ts +124 -24
- package/scripts/josh/josh-commands-lane.ts +112 -2
- package/scripts/josh/josh-commands-lint.ts +19 -8
- package/scripts/josh/josh-commands-maintenance.ts +112 -4
- package/scripts/josh/josh-commands-pause.ts +29 -0
- package/scripts/josh/josh-commands-progress.ts +87 -0
- package/scripts/josh/josh-commands-project.ts +138 -9
- package/scripts/josh/josh-commands-review.ts +124 -0
- package/scripts/josh/josh-commands-run.ts +211 -23
- package/scripts/josh/josh-commands-ship.ts +169 -0
- package/scripts/josh/josh-commands-split.ts +9 -0
- package/scripts/josh/josh-commands-versioning.ts +49 -2
- package/scripts/josh/josh-commands-workflow.ts +149 -6
- package/scripts/josh/josh-logic.ts +11 -27
- package/scripts/josh/josh.ts +14 -5
- package/scripts/josh/package-directory.ts +18 -0
- package/scripts/josh/process-identity.ts +13 -4
- package/scripts/josh/session-language-cli.ts +4 -8
- package/scripts/josh/session-language-main.ts +13 -0
- package/scripts/josh/session-language.ts +6 -1
- package/scripts/josh/shared-cache.ts +90 -0
- package/scripts/josh/stamp-file.ts +9 -15
- package/scripts/lane/lane-await.ts +51 -12
- package/scripts/lane/lane-cache.ts +5 -30
- package/scripts/lane/lane-capacity.ts +19 -22
- package/scripts/lane/lane-check-stats.ts +97 -0
- package/scripts/lane/lane-child-invocation.ts +43 -4
- package/scripts/lane/lane-cli.ts +15 -5
- package/scripts/lane/lane-close.ts +86 -18
- package/scripts/lane/lane-core-wait-stats.ts +66 -0
- package/scripts/lane/lane-dispatch.ts +27 -6
- package/scripts/lane/lane-gap-stats.ts +156 -0
- package/scripts/lane/lane-guard-policy.ts +2 -2
- package/scripts/lane/lane-handoff.ts +76 -1
- package/scripts/lane/lane-held-stats.ts +129 -0
- package/scripts/lane/lane-install.ts +16 -15
- package/scripts/lane/lane-launch-cli.ts +0 -9
- package/scripts/lane/lane-launch-main.ts +12 -0
- package/scripts/lane/lane-ledger-schema.ts +266 -0
- package/scripts/lane/lane-ledger.ts +108 -97
- package/scripts/lane/lane-limit-cli.ts +19 -9
- package/scripts/lane/lane-measure-cli.ts +58 -10
- package/scripts/lane/lane-open.ts +9 -1
- package/scripts/lane/lane-parked.ts +3 -3
- package/scripts/lane/lane-pause-cli.ts +130 -0
- package/scripts/lane/lane-pause.ts +158 -0
- package/scripts/lane/lane-preserve.ts +29 -1
- package/scripts/lane/lane-process-table.ts +166 -0
- package/scripts/lane/lane-reap-settle.ts +124 -0
- package/scripts/lane/lane-reap.ts +50 -15
- package/scripts/lane/lane-registry.ts +33 -10
- package/scripts/lane/lane-residents.ts +162 -0
- package/scripts/lane/lane-restart.ts +26 -27
- package/scripts/lane/lane-round-two-stats.ts +49 -0
- package/scripts/lane/lane-sampler.ts +4 -0
- package/scripts/lane/lane-session-action.ts +160 -0
- package/scripts/lane/lane-session-broker.ts +134 -134
- package/scripts/lane/lane-snapshot-trace.ts +84 -0
- package/scripts/lane/lane-spans.ts +51 -0
- package/scripts/lane/lane-spent.ts +6 -3
- package/scripts/lane/lane-stage-stats.ts +7 -2
- package/scripts/lane/lane-state.ts +302 -0
- package/scripts/lane/lane-stats.ts +58 -4
- package/scripts/lane/lane-stop-stats.ts +113 -37
- package/scripts/lane/lane-test-related-stats.ts +127 -0
- package/scripts/lane/lane-transcript-calls.ts +145 -0
- package/scripts/lane/lane-transcript-stats.ts +168 -0
- package/scripts/lane/lane-vacant.ts +13 -3
- package/scripts/lane/lane-withdraw-cli.ts +72 -0
- package/scripts/lane/lane-withdraw.ts +183 -0
- package/scripts/lane/process-directories.ts +70 -0
- package/scripts/lane/process-lane-marks.ts +94 -0
- package/scripts/lib/atomic-write.ts +62 -0
- package/scripts/lib/buffered-process.ts +12 -5
- package/scripts/lib/cli-flags.ts +53 -0
- package/scripts/lib/figure-format.ts +63 -0
- package/scripts/lib/json-value.ts +9 -1
- package/scripts/lib/package-manifest.ts +35 -0
- package/scripts/lib/read-file.ts +3 -1
- package/scripts/lib/stamped-memo.ts +63 -0
- package/scripts/lib/stdout-on-stderr.ts +24 -0
- package/scripts/lib/timeouts.ts +9 -0
- package/scripts/lib/transcript-record.ts +91 -0
- package/scripts/lines/effective-limit.ts +1 -1
- package/scripts/lint/eslint-cache-dependencies.ts +145 -0
- package/scripts/lint/eslint-daemon.ts +265 -0
- package/scripts/lint/format.ts +14 -5
- package/scripts/lint/import-graph.ts +279 -0
- package/scripts/lint/lint-gate-scope.ts +102 -0
- package/scripts/lint/lint-parallel-main.ts +19 -0
- package/scripts/lint/lint-parallel.ts +72 -33
- package/scripts/lint/lint-related-scope.ts +33 -24
- package/scripts/lint/lint-related.ts +38 -6
- package/scripts/notify/confirmation-options.ts +1 -2
- package/scripts/notify/telegram-notify.ts +20 -20
- package/scripts/notify/telegram-test-logic.ts +0 -1
- package/scripts/notify/telegram-test-main.ts +8 -0
- package/scripts/notify/telegram-test.ts +12 -11
- package/scripts/observations/observation-ledger.ts +13 -0
- package/scripts/observations/observations-flush-landing.ts +5 -3
- package/scripts/observations/observations-flush.ts +6 -1
- package/scripts/overrides/overrides-check.ts +2 -5
- package/scripts/overrides/overrides-files.ts +2 -1
- package/scripts/overrides/overrides-logic.ts +3 -6
- package/scripts/package/verify-optional-eslint-install.ts +8 -6
- package/scripts/propagate/propagate-publish.ts +2 -7
- package/scripts/propagate/propagate-targets.ts +4 -12
- package/scripts/refactor/import-graph.ts +9 -7
- package/scripts/release/github-release-runs.ts +17 -6
- package/scripts/release/release-approval-prune.ts +18 -0
- package/scripts/release/release-history.ts +1 -3
- package/scripts/release/release-progress.ts +42 -22
- package/scripts/release/release-publish-run.ts +39 -0
- package/scripts/release/release-publish.ts +6 -6
- package/scripts/release/release-scope-cli.ts +0 -10
- package/scripts/release/release-scope-main.ts +12 -0
- package/scripts/repo/repo-setting.ts +3 -6
- package/scripts/repo/required-checks-logic.ts +6 -15
- package/scripts/report/report-format-reference.ts +4 -0
- package/scripts/report/report-labels.ts +155 -0
- package/scripts/report/report-lint-cli.ts +3 -0
- package/scripts/report/report-lint.ts +85 -110
- package/scripts/report/report-template-cli.ts +59 -0
- package/scripts/report/report-template.ts +112 -0
- package/scripts/review/acceptance-map-check.ts +61 -0
- package/scripts/review/acceptance-map.ts +206 -0
- package/scripts/review/removed-tests-check.ts +86 -0
- package/scripts/review/removed-tests.ts +149 -0
- package/scripts/review/review-brief-cli.ts +82 -16
- package/scripts/review/review-brief-main.ts +12 -0
- package/scripts/review/review-brief.ts +31 -3
- package/scripts/review/review-code-tree.ts +10 -6
- package/scripts/review/review-comment-round.ts +26 -8
- package/scripts/review/review-finding-ledger.ts +30 -15
- package/scripts/review/review-interaction.ts +94 -0
- package/scripts/review/review-readers-scan.ts +163 -0
- package/scripts/review/review-record-cli.ts +69 -30
- package/scripts/review/review-record-main.ts +12 -0
- package/scripts/review/review-round-one-blobs.ts +221 -0
- package/scripts/review/review-round2-cli.ts +49 -12
- package/scripts/review/review-round2.ts +80 -12
- package/scripts/review/review-stamps.ts +19 -1
- package/scripts/review/review-stop-log.ts +96 -0
- package/scripts/review/review-stops-cli.ts +85 -0
- package/scripts/review/review-tree.ts +6 -17
- package/scripts/review/review-untouched-readers.ts +146 -0
- package/scripts/review/test-titles.ts +118 -0
- package/scripts/rules/agent-model.ts +67 -0
- package/scripts/rules/bash-triggers.ts +46 -3
- package/scripts/rules/decision-oracle-batch.ts +9 -1
- package/scripts/rules/decision-oracle.ts +2 -2
- package/scripts/rules/delivered-rules.ts +90 -3
- package/scripts/rules/destructive-command.ts +8 -1
- package/scripts/rules/direct-filing.ts +10 -2
- package/scripts/rules/direct-issue-comment.ts +117 -0
- package/scripts/rules/direct-pr-create.ts +69 -3
- package/scripts/rules/early-heartbeat.ts +2 -1
- package/scripts/rules/file-body.ts +7 -0
- package/scripts/rules/filing-cap.ts +8 -0
- package/scripts/rules/firing-point.ts +6 -5
- package/scripts/rules/git-argv.ts +72 -14
- package/scripts/rules/git-force.ts +12 -2
- package/scripts/rules/guard-remedy.ts +121 -0
- package/scripts/rules/implementation-cut-verdict.ts +1 -1
- package/scripts/rules/implementation-cut.ts +11 -3
- package/scripts/rules/index-guard.ts +8 -1
- package/scripts/rules/issue-comments.ts +76 -7
- package/scripts/rules/josh-git-bare.ts +7 -0
- package/scripts/rules/lane-background.ts +67 -25
- package/scripts/rules/lane-carry-conflict.ts +6 -0
- package/scripts/rules/lane-direct-tool.ts +74 -0
- package/scripts/rules/lane-interactive-ask.ts +9 -2
- package/scripts/rules/lane-park.ts +45 -23
- package/scripts/rules/lane-split-park.ts +10 -2
- package/scripts/rules/lane-switch-main.ts +7 -0
- package/scripts/rules/last-prompt.ts +50 -5
- package/scripts/rules/oracle-consulted.ts +10 -0
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/oracle-list-cli.ts +7 -0
- package/scripts/rules/permission-guards.ts +3 -0
- package/scripts/rules/piped-verification.ts +4 -2
- package/scripts/rules/poll-loop.ts +7 -0
- package/scripts/rules/pr-merge.ts +123 -0
- package/scripts/rules/protected-files.ts +32 -5
- package/scripts/rules/raw-field-body.ts +6 -0
- package/scripts/rules/rule-body-guard.ts +8 -0
- package/scripts/rules/rule-list.ts +12 -28
- package/scripts/rules/rule-rewrite.ts +114 -0
- package/scripts/rules/rule-value-cache.ts +4 -9
- package/scripts/rules/rule-value-cli.ts +51 -32
- package/scripts/rules/rule-value.ts +8 -2
- package/scripts/rules/shell-segments.ts +50 -0
- package/scripts/rules/stop-decision.ts +77 -0
- package/scripts/rules/stop-rule-rows.ts +64 -0
- package/scripts/rules/stop-rules.ts +150 -51
- package/scripts/rules/tail-commands.ts +15 -1
- package/scripts/rules/test-declared-commit.ts +11 -1
- package/scripts/rules/third-party-write.ts +7 -0
- package/scripts/rules/timed-rerun.ts +69 -0
- package/scripts/rules/worktree-guard.ts +13 -3
- package/scripts/run/board/run-board-app-name.ts +23 -0
- package/scripts/run/board/run-board-cli.ts +65 -30
- package/scripts/run/board/run-board-closed.ts +8 -2
- package/scripts/run/board/run-board-earlier.ts +94 -0
- package/scripts/run/board/run-board-ending-reason.ts +67 -0
- package/scripts/run/board/run-board-estimate-schedule.ts +103 -0
- package/scripts/run/board/run-board-estimate.ts +98 -0
- package/scripts/run/board/run-board-fit.ts +153 -36
- package/scripts/run/board/run-board-fold.ts +123 -0
- package/scripts/run/board/run-board-fresh.ts +2 -2
- package/scripts/run/board/run-board-gather-live.ts +29 -0
- package/scripts/run/board/run-board-gather-thread.ts +189 -0
- package/scripts/run/board/run-board-gather-worker.ts +29 -0
- package/scripts/run/board/run-board-gather.ts +187 -0
- package/scripts/run/board/run-board-github.ts +119 -31
- package/scripts/run/board/run-board-header.ts +86 -21
- package/scripts/run/board/run-board-keys.ts +58 -0
- package/scripts/run/board/run-board-kind.ts +20 -6
- package/scripts/run/board/run-board-labels.ts +118 -71
- package/scripts/run/board/run-board-lane-state.ts +109 -0
- package/scripts/run/board/run-board-lane-time.ts +122 -0
- package/scripts/run/board/run-board-layout.ts +240 -61
- package/scripts/run/board/run-board-length.ts +52 -0
- package/scripts/run/board/run-board-machine.ts +8 -4
- package/scripts/run/board/run-board-main.ts +12 -0
- package/scripts/run/board/run-board-notes.ts +52 -31
- package/scripts/run/board/run-board-now.ts +1 -1
- package/scripts/run/board/run-board-operation.ts +15 -33
- package/scripts/run/board/run-board-phase.ts +1 -1
- package/scripts/run/board/run-board-plan-shared.ts +115 -0
- package/scripts/run/board/run-board-plan.ts +55 -3
- package/scripts/run/board/run-board-planning.ts +45 -0
- package/scripts/run/board/run-board-priority.ts +44 -0
- package/scripts/run/board/run-board-process-groups.ts +195 -0
- package/scripts/run/board/run-board-read.ts +153 -13
- package/scripts/run/board/run-board-reason.ts +238 -45
- package/scripts/run/board/run-board-released.ts +35 -0
- package/scripts/run/board/run-board-render-checks.ts +39 -5
- package/scripts/run/board/run-board-render-condition.ts +96 -0
- package/scripts/run/board/run-board-render-drawn.ts +67 -0
- package/scripts/run/board/run-board-render-foot.ts +59 -0
- package/scripts/run/board/run-board-render-icon.ts +35 -0
- package/scripts/run/board/run-board-render-lanes.ts +145 -0
- package/scripts/run/board/run-board-render-lead.ts +80 -0
- package/scripts/run/board/run-board-render-legend.ts +117 -47
- package/scripts/run/board/run-board-render-notes.ts +156 -29
- package/scripts/run/board/run-board-render-processes.ts +196 -0
- package/scripts/run/board/run-board-render-section.ts +119 -0
- package/scripts/run/board/run-board-render-slot.ts +3 -36
- package/scripts/run/board/run-board-render-tail.ts +115 -48
- package/scripts/run/board/run-board-render-time.ts +56 -0
- package/scripts/run/board/run-board-render-title.ts +117 -24
- package/scripts/run/board/run-board-render-waits.ts +125 -0
- package/scripts/run/board/run-board-render.ts +206 -259
- package/scripts/run/board/run-board-roots.ts +54 -0
- package/scripts/run/board/run-board-row-yield.ts +10 -4
- package/scripts/run/board/run-board-setup.ts +1 -12
- package/scripts/run/board/run-board-snapshot.ts +111 -0
- package/scripts/run/board/run-board-spin.ts +2 -2
- package/scripts/run/board/run-board-state.ts +23 -29
- package/scripts/run/board/run-board-status.ts +206 -79
- package/scripts/run/board/run-board-thanks-read.ts +2 -2
- package/scripts/run/board/run-board-tick.ts +123 -104
- package/scripts/run/board/run-board-usage-board.ts +78 -0
- package/scripts/run/board/run-board-usage-lanes.ts +113 -0
- package/scripts/run/board/run-board-usage-listing.ts +93 -0
- package/scripts/run/board/run-board-usage-read.ts +120 -150
- package/scripts/run/board/run-board-usage-rusage.ts +19 -7
- package/scripts/run/board/run-board-usage-text.ts +139 -51
- package/scripts/run/board/run-board-usage-top.ts +102 -0
- package/scripts/run/board/run-board-usage.ts +89 -72
- package/scripts/run/board/run-board-usual.ts +20 -9
- package/scripts/run/carry/run-carry-args.ts +4 -7
- package/scripts/run/carry/run-carry-conversation.ts +1 -1
- package/scripts/run/carry/run-carry.ts +9 -4
- package/scripts/run/cut/run-cut-cli.ts +3 -2
- package/scripts/run/cut/run-cut-handoff.ts +2 -2
- package/scripts/run/cut/run-cut-report.ts +16 -0
- package/scripts/run/detached-launch.ts +23 -4
- package/scripts/run/entry/run-entry-cli.ts +8 -1
- package/scripts/run/event/run-event-cli.ts +1 -5
- package/scripts/run/event/run-event-filed.ts +12 -6
- package/scripts/run/event/run-event-follow.ts +2 -3
- package/scripts/run/event/run-event-render.ts +7 -10
- package/scripts/run/event/run-event-scope.ts +20 -2
- package/scripts/run/event/run-event-stream-emit.ts +78 -11
- package/scripts/run/event/run-event-stream.ts +37 -7
- package/scripts/run/hold/run-hold-adopt.ts +65 -0
- package/scripts/run/hold/run-hold-cli.ts +93 -22
- package/scripts/run/hold/run-hold-main.ts +12 -0
- package/scripts/run/hold/run-hold-member.ts +37 -0
- package/scripts/run/hold/run-hold-session.ts +46 -0
- package/scripts/run/hold/run-hold.ts +7 -1
- package/scripts/run/hold/run-stop-notify.ts +183 -0
- package/scripts/run/launch-priority.ts +32 -0
- package/scripts/run/merge/run-merge-auth.ts +31 -0
- package/scripts/run/merge/run-merge-cli.ts +72 -107
- package/scripts/run/merge/run-merge-close.ts +74 -0
- package/scripts/run/merge/run-merge-collect.ts +6 -13
- package/scripts/run/merge/run-merge-driver.ts +71 -0
- package/scripts/run/merge/run-merge-main.ts +12 -0
- package/scripts/run/merge/run-merge-outcome.ts +23 -0
- package/scripts/run/merge/run-merge-restart.ts +39 -0
- package/scripts/run/merge/run-merge-ship.ts +20 -4
- package/scripts/run/merge/run-merge-signals.ts +123 -0
- package/scripts/run/merge/run-merge-steps.ts +128 -83
- package/scripts/run/merge/run-merge.ts +53 -40
- package/scripts/run/park/run-park-cli.ts +91 -0
- package/scripts/run/park/run-park.ts +88 -0
- package/scripts/run/park/run-stalled.ts +68 -0
- package/scripts/run/pause/run-pause-cli.ts +73 -0
- package/scripts/run/pause/run-pause.ts +251 -0
- package/scripts/run/progress/run-progress-cli.ts +4 -12
- package/scripts/run/progress/run-progress-clock.ts +1 -1
- package/scripts/run/progress/run-progress-config.ts +6 -14
- package/scripts/run/progress/run-progress-main.ts +12 -0
- package/scripts/run/progress/run-progress.ts +1 -4
- package/scripts/run/review/run-review.ts +2 -1
- package/scripts/run/run-ending.ts +1 -0
- package/scripts/run/run-invocation.ts +5 -6
- package/scripts/run/run-liveness-cli.ts +6 -8
- package/scripts/run/run-liveness.ts +61 -30
- package/scripts/run/run-next.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +2 -2
- package/scripts/run/run-poll-hook.ts +157 -0
- package/scripts/run/run-preflight.ts +18 -3
- package/scripts/run/run-prep-cli.ts +1 -10
- package/scripts/run/run-prep-locate.ts +7 -50
- package/scripts/run/run-prep-main.ts +12 -0
- package/scripts/run/run-prep.ts +6 -0
- package/scripts/run/run-report-cli.ts +101 -13
- package/scripts/run/run-report-handoff.ts +114 -0
- package/scripts/run/run-step-cli.ts +22 -15
- package/scripts/run/run-step-section.ts +85 -0
- package/scripts/run/run-step.ts +1 -1
- package/scripts/run/run-stranded-detect.ts +13 -0
- package/scripts/run/run-watcher-guard-cli.ts +1 -1
- package/scripts/run/run-watcher-guard.ts +1 -1
- package/scripts/run/ship/run-ship-args.ts +121 -0
- package/scripts/run/ship/run-ship-body-draft.ts +110 -0
- package/scripts/run/ship/run-ship-cli.ts +67 -151
- package/scripts/run/ship/run-ship-detach.ts +27 -7
- package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
- package/scripts/run/ship/run-ship-next.ts +27 -3
- package/scripts/run/ship/run-ship-overlap.ts +232 -0
- package/scripts/run/ship/run-ship-place.ts +96 -0
- package/scripts/run/ship/run-ship-pre-detach-timed.ts +43 -0
- package/scripts/run/ship/run-ship-pre-detach.ts +102 -27
- package/scripts/run/ship/run-ship-preflight.ts +161 -30
- package/scripts/run/ship/run-ship-probe.ts +11 -3
- package/scripts/run/ship/run-ship-relaunch-cap.ts +70 -0
- package/scripts/run/ship/run-ship-removed-rows.ts +61 -0
- package/scripts/run/ship/run-ship-return.ts +123 -15
- package/scripts/run/ship/run-ship-review-steps.ts +105 -149
- package/scripts/run/ship/run-ship-review.ts +73 -6
- package/scripts/run/ship/run-ship-reviewer.ts +207 -0
- package/scripts/run/ship/run-ship-stage.ts +55 -6
- package/scripts/run/ship/run-ship-steps.ts +46 -15
- package/scripts/run/ship/run-ship-stop-cause.ts +135 -0
- package/scripts/run/ship/run-ship-stop-context.ts +206 -0
- package/scripts/run/ship/run-ship-stop-text.ts +11 -6
- package/scripts/run/ship/run-ship-sync.ts +57 -12
- package/scripts/run/ship/run-ship.ts +30 -2
- package/scripts/run/tidy/run-tidy-cli.ts +0 -4
- package/scripts/run/tidy/run-tidy-lanes.ts +3 -0
- package/scripts/run/tidy/run-tidy-main.ts +8 -0
- package/scripts/run/wake/run-wake-cli.ts +119 -100
- package/scripts/run/wake/run-wake-code.ts +83 -0
- package/scripts/run/wake/run-wake-driver.ts +19 -8
- package/scripts/run/wake/run-wake-loop.ts +34 -3
- package/scripts/run/wake/run-wake-main.ts +13 -0
- package/scripts/run/wake/run-wake-ports.ts +90 -0
- package/scripts/run/wake/run-wake-takeover.ts +66 -0
- package/scripts/run/wake/run-wake.ts +2 -1
- package/scripts/safe-chain/pack-hook.ts +2 -2
- package/scripts/safe-chain/preinstall-command.ts +2 -1
- package/scripts/safe-chain/project-config.ts +3 -9
- package/scripts/security/security-audit-main.ts +8 -0
- package/scripts/security/security-audit-provision-logic.ts +0 -11
- package/scripts/security/security-audit-provision-main.ts +12 -0
- package/scripts/security/security-audit-provision.ts +11 -26
- package/scripts/security/security-audit.ts +6 -7
- package/scripts/self-sync-guard/self-sync-guard-logic.ts +6 -13
- package/scripts/split/split-assess-cli.ts +2 -2
- package/scripts/split/split-assess.ts +15 -0
- package/scripts/split/split-measure.ts +65 -0
- package/scripts/sync/claude-settings-merge.ts +8 -15
- package/scripts/sync/directory-copy-guard.ts +4 -9
- package/scripts/sync/file-content.ts +78 -8
- package/scripts/sync/sync-ai-files.ts +3 -5
- package/scripts/sync/sync-configs.ts +11 -23
- package/scripts/sync/sync-hook-safety.ts +4 -10
- package/scripts/sync/sync-main.ts +11 -0
- package/scripts/sync/sync.ts +25 -37
- package/scripts/test/test-declared-changed.ts +2 -2
- package/scripts/test/test-declared.ts +1 -1
- package/scripts/test/test-e2e-guard.ts +55 -6
- package/scripts/test/test-e2e-stamp.ts +38 -0
- package/scripts/test/test-pinned-logic.ts +145 -0
- package/scripts/test/test-pinned-main.ts +78 -0
- package/scripts/test/test-pinned.ts +100 -0
- package/scripts/test/test-read-map.ts +264 -0
- package/scripts/test/test-read-recording.ts +91 -0
- package/scripts/test/test-read-trace.ts +148 -0
- package/scripts/test/test-red-main.ts +12 -0
- package/scripts/test/test-red.ts +12 -30
- package/scripts/test/test-related-main.ts +18 -0
- package/scripts/test/test-related-record.ts +119 -0
- package/scripts/test/test-related-scope.ts +229 -43
- package/scripts/test/test-related.ts +300 -22
- package/scripts/test/test-unit-guard-main.ts +15 -0
- package/scripts/test/test-unit-guard.ts +54 -21
- package/scripts/test/unit-count-file.ts +37 -0
- package/scripts/test/unit-run-marker.ts +162 -0
- package/scripts/test/unit-setup-files.ts +51 -0
- package/scripts/test/unit-worker-share.ts +71 -137
- package/scripts/test/whole-suite-files.ts +63 -0
- package/scripts/time-runtime/time-background.ts +20 -2
- package/scripts/time-runtime/time-bundles.ts +4 -3
- package/scripts/time-runtime/time-density-hook.ts +8 -6
- package/scripts/time-runtime/time-followup-stage.ts +1 -3
- package/scripts/time-runtime/time-format.ts +5 -28
- package/scripts/time-runtime/time-markers.ts +10 -1
- package/scripts/time-runtime/time-shell.ts +126 -14
- package/scripts/time-runtime/time-spans.ts +1 -0
- package/scripts/time-runtime/time-tool-call.ts +7 -0
- package/scripts/time-runtime/time-transcript-line.ts +49 -62
- package/scripts/uninstall/uninstall.ts +1 -1
- package/scripts/version/bump-version-main.ts +12 -0
- package/scripts/version/bump-version.ts +25 -25
- package/scripts/version/effective-upstream.ts +6 -12
- package/scripts/version/latest-corepack.ts +17 -32
- package/scripts/version/latest-if-required-cli.ts +93 -0
- package/scripts/version/latest-lane-guard-main.ts +8 -0
- package/scripts/version/latest-lane-guard.ts +0 -4
- package/scripts/version/latest-scope-cli.ts +0 -9
- package/scripts/version/latest-scope-main.ts +12 -0
- package/scripts/version/latest-update.ts +5 -5
- package/scripts/version/npm-registry.ts +44 -6
- package/scripts/version/publishable-range-check.ts +5 -16
- package/scripts/version/release-age.ts +1 -1
- package/scripts/version/release-hold.ts +1 -1
- package/scripts/version/release-window.ts +38 -0
- package/scripts/version/running-binary.ts +1 -1
- package/scripts/version/safe-chain-version-update.ts +3 -8
- package/scripts/version/version-targets.ts +6 -28
- package/templates/dependabot.yml +29 -0
- package/templates/gitignore +10 -3
- package/templates/pnpm-workspace.basic.yaml +1 -1
- package/templates/sonar-project.properties +3 -2
- package/templates/workflows/ci.yml +12 -4
- package/templates/workflows/github-release.yml +4 -0
- package/tsconfig.sonar.json +1 -1
- package/.ncurc.json +0 -3
- package/dist/hooks/batch-guard.js +0 -29
- package/dist/hooks/chunk-43ZHT22P.js +0 -3495
- package/dist/hooks/chunk-CDY4NFQG.js +0 -15
- package/dist/hooks/chunk-EUMACUK2.js +0 -2038
- package/dist/hooks/chunk-H5HVWYXK.js +0 -359
- package/dist/hooks/chunk-IIGFYXKC.js +0 -7104
- package/dist/hooks/chunk-IX6TTTI6.js +0 -95
- package/dist/hooks/chunk-J47HU5H5.js +0 -237
- package/dist/hooks/chunk-K4EOONYM.js +0 -45
- package/dist/hooks/chunk-K4LMBQC2.js +0 -68
- package/dist/hooks/chunk-SHGPANFB.js +0 -56
- package/dist/hooks/chunk-YHBZAJSV.js +0 -79
- package/dist/hooks/chunk-YYPI7SJZ.js +0 -131
- package/dist/hooks/duplicate-read-guard.js +0 -30
- package/dist/hooks/investigation-guard.js +0 -32
- package/scripts/backlog/backlog-stalled-cli.ts +0 -30
- package/scripts/cost-runtime/cost-format.ts +0 -29
- package/scripts/init/basic-path-migration.ts +0 -24
- package/scripts/issue/issue-backlinks-cli.ts +0 -93
- package/scripts/josh/josh-commands-guard.ts +0 -38
- package/scripts/lint/cross-file-recheck.ts +0 -155
- package/scripts/registry-migration/migrate-logic.ts +0 -237
- package/scripts/registry-migration/migrate.ts +0 -292
- package/scripts/registry-migration/user-npmrc.ts +0 -15
- package/scripts/rules/rule-guard.ts +0 -23
- package/scripts/rules/rule-registry-rows.ts +0 -282
- package/scripts/rules/rule-registry.ts +0 -109
- package/scripts/run/run-stranded-cli.ts +0 -27
|
@@ -6,11 +6,17 @@ This is the execution contract for `fullrun` and `backlogrun`, and for `prrun` u
|
|
|
6
6
|
Review results and successful pushes are never turn boundaries.
|
|
7
7
|
|
|
8
8
|
0. **A lane child**: `pnpm josh main:merge`, the self-check (`prompts/review.md` → "Before round 1 —
|
|
9
|
-
the implementer's self-check"), the scoped pair,
|
|
10
|
-
"
|
|
11
|
-
|
|
9
|
+
the implementer's self-check"), the scoped pair, the ship body draft filled in
|
|
10
|
+
(`report-format.md` → "PR 本文の受け入れ条件の対応表"), `pnpm josh ship --detach --review
|
|
11
|
+
"<title> #<N>"` (`--cite <N>`), then **end the turn** on `launched`/`busy`. No `pnpm josh gate`,
|
|
12
|
+
`check` or `metrics` before it, by hand: ship reuses the scoped pair green on this tree and base
|
|
13
|
+
and runs the gate after its sync (`scripts/run/ship/run-ship-steps.ts`); a standalone `check` or
|
|
14
|
+
`metrics` leaves no record it reuses. A stop relaunches a child
|
|
15
|
+
whose prompt carries the failed output's tail and the changed files (`pnpm josh ship --log <N>` when
|
|
16
|
+
the stage printed nothing) and (Anthropic lane) the re-detach to run after
|
|
12
17
|
the fix — `pnpm josh ship --detach`, `--review` only if the stopped ship carried it and stopped before
|
|
13
|
-
round 2, which is final (`scripts/run/ship/run-ship-next.ts`); the
|
|
18
|
+
round 2, which is final, or the review went stale (`scripts/run/ship/run-ship-next.ts`); the
|
|
19
|
+
supervisor skips a recorded round 1 unless it went stale.
|
|
14
20
|
`failed` → step 1. A backgrounded `ship` issued alone is moved to the foreground by the hook
|
|
15
21
|
rather than refused.
|
|
16
22
|
1. Run `pnpm josh main:merge`. **Then issue `pnpm josh run:cut <N>` alone, before the scoped pair and
|
|
@@ -18,7 +24,8 @@ Review results and successful pushes are never turn boundaries.
|
|
|
18
24
|
(`prompts/review.md` → "Before round 1 — the implementer's self-check"), run the final scoped lint/test pair and
|
|
19
25
|
`pnpm josh run:review`: it starts `pnpm josh gate` in the background and prints the `/code-review`
|
|
20
26
|
brief in one call, so the two overlap. Launch the `/code-review` subagent as the `general-purpose`
|
|
21
|
-
agent type with that brief (every tool, so `--fix` applies;
|
|
27
|
+
agent type with that brief and its `model` (`delegation.md`) (every tool, so `--fix` applies;
|
|
28
|
+
never a guessed type name).
|
|
22
29
|
Never load the review skill in the main line.
|
|
23
30
|
2. Once the review returns, run `pnpm josh run:review --join` to join and read the gate before
|
|
24
31
|
committing; it exits non-zero on a red gate. Fix any red check, then rerun the affected scoped check
|
|
@@ -39,24 +46,24 @@ Review results and successful pushes are never turn boundaries.
|
|
|
39
46
|
passes takes `--comment`** (`observation-ledger.md` → "The commit path").
|
|
40
47
|
**`pnpm josh followup` refuses the merge until the round is recorded**
|
|
41
48
|
(`pnpm josh review:record --check --issue <N>`).
|
|
49
|
+
A change to the run tooling also takes the interaction review: `prompts/review.md` → "Interaction review".
|
|
42
50
|
5. **The clean path ships in one call** — with no second round due, background
|
|
43
|
-
`pnpm josh ship "<title> #<N>" --body-file <evidence.md
|
|
51
|
+
`pnpm josh ship "<title> #<N>" --body-file <evidence.md>` — the file carries `## 実機証跡` and
|
|
52
|
+
`## 受け入れ条件の対応` (`report-format.md`), both asked at the preflight: PR preflight → gate → `git -y` →
|
|
44
53
|
`followup` → `run:tail`, stopping at the first failure. `--review` runs both rounds. **Else a due
|
|
45
54
|
round 2 does not fit `ship`**: the PR opens between the rounds — background
|
|
46
55
|
`pnpm josh git -y "<title> #<N>"`, round 2 beside CI, then `pnpm josh followup`.
|
|
47
56
|
|
|
48
57
|
A lane child may end once, at step 0 or the pre-gate cut (`pre-gate-cut.md`); never at the push. The chain otherwise stops only when the PR is merged, the completion Telegram was sent, and
|
|
49
|
-
`
|
|
50
|
-
CodeRabbit/Claude Review finding or a CI failure. In a lane
|
|
58
|
+
`run:tail` returned to the default branch, or when user judgment is required by an unverifiable
|
|
59
|
+
CodeRabbit/Claude Review finding or a CI failure. In a lane the parent closes it. Managed config claims are reported by `followup` and do not stop the merge.
|
|
51
60
|
|
|
52
61
|
Recommendations are informational; severity decides. A CodeRabbit rate-limit warning is not a finding.
|
|
53
62
|
|
|
54
63
|
## Orchestration facts single-sourced here
|
|
55
64
|
|
|
56
65
|
These are the gate → review → PR → merge facts other documents cite; this file is their single source
|
|
57
|
-
(`prompts/review.md` carries the review _policy_, `prompts/review-rubric.md` the rubric).
|
|
58
|
-
rule came from and why it holds: `docs/maintainers/chain-rule-rationale.md` → "Where each rule came
|
|
59
|
-
from", `docs/maintainers/chain-rule-rationale.md` → "Why the orchestration facts hold".
|
|
66
|
+
(`prompts/review.md` carries the review _policy_, `prompts/review-rubric.md` the rubric).
|
|
60
67
|
|
|
61
68
|
- **The gate runs beside this review, not in front of it** — started with the review, joined before the
|
|
62
69
|
commit. A red gate is fixed and re-run whatever the review concluded.
|
|
@@ -37,15 +37,14 @@ classification lives in `backlogrun-child.md` → "Each child runs in a delegate
|
|
|
37
37
|
main line.** The unit returns conclusions with `file:line` citations, never the file text. It may run
|
|
38
38
|
a temporary probe script and return its output.
|
|
39
39
|
|
|
40
|
-
**
|
|
41
|
-
|
|
42
|
-
**
|
|
43
|
-
|
|
44
|
-
the threshold.
|
|
40
|
+
**Subject reading beyond the edit targets → dispatch the unit before the first read**
|
|
41
|
+
(`pnpm josh run:prep` → `=== investigation ===`). **The threshold is 3 files, and it is a count, not a
|
|
42
|
+
forecast** — where the guard refuses, not a budget. Brief the unit on what was already read.
|
|
43
|
+
**A delegation resets the counter rather than spending it**; the `investigation` row of
|
|
44
|
+
`pnpm josh rule:list` refuses the threshold call, in a lane child too (`pnpm josh delegate --list`).
|
|
45
45
|
|
|
46
|
-
**Dispatch the unit as the `investigator` agent** (`kit:investigator` in a consumer) —
|
|
47
|
-
model
|
|
48
|
-
`docs/josh-commands-automation.md` → "`josh investigation:guard`" carries the command's counting details.
|
|
46
|
+
**Dispatch the unit as the `investigator` agent** (`kit:investigator` in a consumer) — read-only, on
|
|
47
|
+
the `model` its definition names.
|
|
49
48
|
|
|
50
49
|
**The main line does not idle while the unit reads:** read files this run will edit, then verify the
|
|
51
50
|
unit's cited lines. Independent investigations launch together; a brief that needs another unit's
|
|
@@ -54,3 +53,9 @@ answer waits for that answer.
|
|
|
54
53
|
**When the Issue already names the file, function or rule, read that edit target in the main line.**
|
|
55
54
|
It is not `survey`, and it is not `diagnosis`: the unit describes how the subject works;
|
|
56
55
|
the main line decides what that means and what to change.
|
|
56
|
+
|
|
57
|
+
## A `general-purpose` subagent names its model
|
|
58
|
+
|
|
59
|
+
**A `general-purpose` dispatch → set `model`**: `sonnet` for routine work, `opus` for judgment; a review
|
|
60
|
+
takes the alias of the `model=` id its brief prints (`claude-opus-5-5` → `opus`). Delivered by the
|
|
61
|
+
`agent-model` row of `pnpm josh rule:list`.
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# The entry sequence and the stop branches — shared by `fullrun`, `halfrun` and `prrun`
|
|
2
2
|
|
|
3
|
-
`
|
|
4
|
-
procedure; `pnpm josh run:step <N>` prints the run's next single action. History:
|
|
5
|
-
`docs/maintainers/entry-sequence-rationale.md` → "Where each rule came from".
|
|
3
|
+
`pnpm josh run:step <N>` prints the run's next single action.
|
|
6
4
|
|
|
7
5
|
## The ordered entry sequence
|
|
8
6
|
|
|
@@ -20,9 +18,9 @@ short-circuits with a non-zero exit. The numbered steps are the detail behind ea
|
|
|
20
18
|
source; a cross-repository target resolves its checkout from `pnpm josh doctor` first
|
|
21
19
|
(`target-repository.md`).
|
|
22
20
|
2. **`in-progress` rides on the hold** — for a `#N`, `run:entry` applies it once the tree is held and
|
|
23
|
-
the budget allows the run; a `new` entry
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
the budget allows the run; a `new` entry runs `pnpm josh run:hold --adopt <N>` right after filing,
|
|
22
|
+
which re-keys the hold and applies it (`fullrun-steps.md`). Every stop that leaves the tree clean
|
|
23
|
+
ends with `pnpm josh run:release <N>`, which removes the label with the record.
|
|
26
24
|
3. **Ask the session boundary in the same turn as the hold** — `pnpm josh cost --cut`. `under`
|
|
27
25
|
continues; `over` (or unanswerable) stops before the title — `run:entry` sends the `confirmation`
|
|
28
26
|
Telegram and runs `run:release` (`stop notified: …`); by hand only for `new`. **Skip it when
|
|
@@ -33,8 +31,8 @@ short-circuits with a non-zero exit. The numbered steps are the detail behind ea
|
|
|
33
31
|
dependency scope in one report; a `new` entry runs it once filed. The comment stops, the
|
|
34
32
|
`human_review` stop (`needs-human-review.md`) and the dependency decision are read off it.
|
|
35
33
|
5. **Print the next action — `pnpm josh run:step <N>`** — and follow it into the command's step list.
|
|
36
|
-
Before implementing, `pnpm josh ms`, then `
|
|
37
|
-
|
|
34
|
+
Before implementing, `pnpm josh ms`, then on `run:prep`'s `latest: required`
|
|
35
|
+
`pnpm josh latest:if-required` (`latest-gate.md`) — never on every run. `run:step` names every later
|
|
38
36
|
action in order, each read at the point-of-use document `SKILL.md` lists, never re-narrated here
|
|
39
37
|
(`residency.md` → "順序の問い").
|
|
40
38
|
|
|
@@ -51,12 +49,12 @@ lane child starts none and never reads that document (`pnpm josh read:set lane-c
|
|
|
51
49
|
separately-mergeable deliverables over one gate: file the children (each `route:split`) and the epic,
|
|
52
50
|
then **STOP** with "Please run `backlogrun #<E> --only` to execute this epic." Typing the command
|
|
53
51
|
approved **one** Issue, never a batch.
|
|
54
|
-
- **A prerequisite** — file it (`route:tier-a`),
|
|
55
|
-
"Please run `backlogrun #<E> --only` to execute this epic"; `prerequisite.md` is the single
|
|
56
|
-
the filing, the
|
|
52
|
+
- **A prerequisite** — file it (`route:tier-a`), `pnpm josh run:pause <M> --for <N>`, and **STOP**
|
|
53
|
+
with "Please run `backlogrun #<E> --only` to execute this epic"; `prerequisite.md` is the single
|
|
54
|
+
source of the filing, the pause and the epic:bundle branch.
|
|
57
55
|
- **An observation** — `observation-filing.md` (ask first if interactive).
|
|
58
56
|
|
|
59
|
-
**
|
|
57
|
+
**The per-run filing cap is `prerequisite.md`'s** (the `filing-cap` row); on its refusal, stop and report.
|
|
60
58
|
|
|
61
59
|
**The `into <target>` suffix** (a `new` entry) inserts the artifact into a named epic —
|
|
62
60
|
`into-target.md`, read when the suffix is typed.
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Everything between a green CI and a merged PR: the command, the merge it authorizes, the notifications,
|
|
4
4
|
the reviewer scan, the config report and the release ask. `fullrun` and `backlogrun` end here; `halfrun`
|
|
5
|
-
stops before the commit.
|
|
6
|
-
`docs/maintainers/followup-rationale.md` → "Where each rule came from".
|
|
5
|
+
stops before the commit.
|
|
7
6
|
|
|
8
7
|
## Run `pnpm josh followup`
|
|
9
8
|
|
|
@@ -32,8 +31,8 @@ A pre-merge failure stops the run; an unverifiable AI finding or CI failure need
|
|
|
32
31
|
`confirmation` Telegram. A post-merge cleanup failure is named and does not undo the merge; run the
|
|
33
32
|
named recovery without rerunning `followup`. The printed result is authoritative.
|
|
34
33
|
|
|
35
|
-
After
|
|
36
|
-
Never delete the branch unless requested. The sections below are read when the output needs reading.
|
|
34
|
+
After the merge `run:tail` returns to the default branch — `ship` runs it; after a bare `followup`, run
|
|
35
|
+
`pnpm josh run:tail <N>`. In a lane the parent uses `pnpm josh lane:close <N>`. Never delete the branch unless requested. The sections below are read when the output needs reading.
|
|
37
36
|
|
|
38
37
|
## The options
|
|
39
38
|
|
|
@@ -50,8 +49,6 @@ Never delete the branch unless requested. The sections below are read when the o
|
|
|
50
49
|
|
|
51
50
|
Invoking `fullrun` is itself the explicit authorization to merge.
|
|
52
51
|
|
|
53
|
-
- **Always run `pnpm josh ms` after a successful merge**. **In a lane, `pnpm josh lane:close <N>` is the
|
|
54
|
-
terminal step instead** — `josh ms` refuses there.
|
|
55
52
|
- **Green CI is not authorization to merge while AI review findings are open.** A blocker sends a
|
|
56
53
|
`confirmation` Telegram and exits non-zero — fix and re-run. SonarCloud is carried by the required
|
|
57
54
|
`SonarQube` check.
|
|
@@ -75,46 +72,24 @@ to 32 minutes; give the call the largest timeout it accepts (`timeout: 600000` i
|
|
|
75
72
|
harness detaches the call, wait for its report; where it kills it, set `JOSH_CI_TIMEOUT_SECONDS` and
|
|
76
73
|
re-run once CI has settled. Re-run after every follow-up commit.
|
|
77
74
|
|
|
75
|
+
In a lane, the detached ship supervisor runs it, not the child — its merge wait holds no lane
|
|
76
|
+
place: `scripts/backlog/backlog-occupied.ts`.
|
|
77
|
+
|
|
78
78
|
**The count of unreleased merges is surfaced at completion — not a version.** It prints `🚚 unreleased
|
|
79
79
|
merges on main: <n>`. **Do not report a shipped version** — a child no longer bumps. See "When `pnpm
|
|
80
80
|
josh release` runs" below.
|
|
81
81
|
|
|
82
|
-
## Reading the stage-timing block
|
|
83
|
-
|
|
84
|
-
One `followup stage: <name> <seconds>` row per stage, then `followup stages total:`.
|
|
85
|
-
|
|
86
|
-
- **A failed run prints it too**, up to the stage that threw, named `interrupted`. The `merge` row
|
|
87
|
-
appears only on a run that merged.
|
|
88
|
-
- **A row named `<a>-and-<b>` is a batch of requests sent together**; `checks-wait` is never
|
|
89
|
-
overlapped.
|
|
90
|
-
- **The total is the sum of the stages**, not the wall clock — the post-merge tail sits outside it.
|
|
91
|
-
|
|
92
82
|
A `failure` Telegram is sent **by hand, exactly once**, and only when recovery is given up:
|
|
93
83
|
|
|
94
84
|
```bash
|
|
95
85
|
pnpm josh notify --task-type failure --issue-url "<issue-url>" --body-file <reason-file>
|
|
96
86
|
```
|
|
97
87
|
|
|
98
|
-
##
|
|
99
|
-
|
|
100
|
-
`followup` scans top-level PR comments from AI reviewers **independently of CI status**.
|
|
101
|
-
|
|
102
|
-
- **Blockers are structural, not NLP**: a Claude Review body with `### Issues`, `### Problem`,
|
|
103
|
-
`#### Logic bug` or a numbered `### 1. …` heading; a CodeRabbit `Actionable comments posted: N` with
|
|
104
|
-
N > 0. Rate-limit notices and sign-offs (`All issues resolved ✓`) match nothing.
|
|
105
|
-
- **A standing blocker without `--ai-review-ignore-reason`** sends a `confirmation` Telegram and exits
|
|
106
|
-
non-zero; with it, the reason is posted and the run proceeds.
|
|
107
|
-
- **A comment listing that could not be read is a standing blocker**.
|
|
108
|
-
- **Temporary**: CodeRabbit is non-blocking end to end — out of the default required checks
|
|
109
|
-
(restore via `JOSH_REQUIRED_CHECKS`); its findings are audit notes. Reverting it:
|
|
110
|
-
`docs/maintainers/followup-rationale.md` → "The temporary CodeRabbit exemption".
|
|
111
|
-
|
|
112
|
-
## Config file reporting
|
|
88
|
+
## What the output means
|
|
113
89
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"Why config claims are reported, not stopped"). `pnpm josh sync:scope` gives the same answer.
|
|
90
|
+
**A standing AI-review blocker** is fixed, or passed with `--ai-review-ignore-reason` once verified
|
|
91
|
+
inapplicable. The stage-timing block, the blocker shapes and the config-claim report:
|
|
92
|
+
`docs/josh-commands-automation.md` → "`josh followup`" and its detail document.
|
|
118
93
|
|
|
119
94
|
## When `pnpm josh release` runs
|
|
120
95
|
|
|
@@ -1,63 +1,53 @@
|
|
|
1
1
|
# `fullrun` — the step lists and the branches
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
`docs/maintainers/fullrun-steps-rationale.md` → "Where each rule came from".
|
|
3
|
+
`pnpm josh run:next <N>` names which step the run is at, and the sections below carry that step in
|
|
4
|
+
full.
|
|
6
5
|
|
|
7
6
|
## The `fullrun #N` step list
|
|
8
7
|
|
|
9
8
|
File Issues with `pnpm josh issue:file` (it applies the classification labels); see `prompts/collaboration-workflow/issue-template.md`.
|
|
10
9
|
|
|
11
|
-
**`in-progress` is already on the Issue** — `run:entry` applied it once the tree was held and the
|
|
12
|
-
budget allowed the run, and `run:release <N>` takes it back off
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
in
|
|
22
|
-
`pnpm josh
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
`
|
|
37
|
-
`backlogrun-child.md` are the single sources. When running `pnpm josh followup`, pass an
|
|
38
|
-
implementation summary via `--notify-message` in the session language, leading with the three
|
|
39
|
-
plain-language lines: `"Implemented <title>\nCause: ...\nFix: ...\nResult: ...\n\nDetails:\n-
|
|
40
|
-
<change1>\n- <change2>"`. **`pnpm josh followup` waits for CI, verifies AI review findings, sends the
|
|
41
|
-
completion notification, then merges; if blockers are found it exits non-zero — fix and re-run.**
|
|
42
|
-
**Run `pnpm josh ms` after the merge.** A Codex lane skips it — the parent's `run:merge` syncs the
|
|
43
|
-
primary checkout; a Claude run keeps it.
|
|
10
|
+
1. **`in-progress` is already on the Issue** — `run:entry` applied it once the tree was held and the
|
|
11
|
+
budget allowed the run, and `run:release <N>` takes it back off.
|
|
12
|
+
2. Read the Issue and its comments off `run:entry`'s `run:prep` report (`issue-comments.md`).
|
|
13
|
+
3. **Record the agreed plan** with `pnpm josh issue:plan <N> --body-file <path>`, adding
|
|
14
|
+
`--title "<title>"` when the title is not in English or can be phrased more clearly (a blank body
|
|
15
|
+
takes the plan, otherwise it becomes a comment; its `### 影響を受ける既存の利用者` section is drafted
|
|
16
|
+
with `pnpm josh plan:consumers` — `kickoff.md` step 4).
|
|
17
|
+
4. Run `pnpm josh ms`, then update dependencies only where the `run:prep` report answers
|
|
18
|
+
`latest: required` — `latest-gate.md` is its single source, and on `required` load the
|
|
19
|
+
`dependency-update` skill afterwards. **A dispatched lane child skips `pnpm josh ms`** — it refuses
|
|
20
|
+
in a lane, and `pnpm josh main:merge` brings the latest default in during the gate. The parent runs
|
|
21
|
+
`pnpm josh ms` in the primary checkout, never the child — `backlogrun-lanes.md` and
|
|
22
|
+
`backlogrun-child.md` are the single sources.
|
|
23
|
+
5. Implement. The `plan` event `run:board` draws 📝 from is written by code — by `run:entry` for a
|
|
24
|
+
`run:planned` issue, else at the first implementation edit — never by hand; no cut follows the
|
|
25
|
+
plan — a lane child's context is bounded by the threshold-gated implementation cut alone.
|
|
26
|
+
6. Run the **verification gate** through the merge: `chain-rule.md` → "Run the review-to-merge
|
|
27
|
+
chain". Branch-2 filing (`pnpm josh issue:file`, which runs `epic:bundle` itself) runs before
|
|
28
|
+
`pnpm josh ship`.
|
|
29
|
+
7. When running `pnpm josh followup`, pass an implementation summary via `--notify-message` in the
|
|
30
|
+
session language, leading with the three plain-language lines: `"Implemented <title>\nCause:
|
|
31
|
+
...\nFix: ...\nResult: ...\n\nDetails:\n- <change1>\n- <change2>"`. **`pnpm josh followup` waits
|
|
32
|
+
for CI, verifies AI review findings, sends the completion notification, then merges; if blockers
|
|
33
|
+
are found it exits non-zero — fix and re-run.**
|
|
34
|
+
8. `run:tail` returns the checkout to the default branch (`main:sync`) after the merge; a lane child's
|
|
35
|
+
`run:tail` skips that step and the parent syncs the primary checkout.
|
|
44
36
|
|
|
45
37
|
## The `fullrun new` step list
|
|
46
38
|
|
|
47
39
|
`kickoff new` + `fullrun #N` in one run. Steps: (1) Derive an English title, or use the provided one.
|
|
48
|
-
(2) Create Issue: `pnpm josh issue:file "<title>" --body-file <body-file
|
|
40
|
+
(2) Create Issue: `pnpm josh issue:file "<title>" --body-file <body-file>`,
|
|
49
41
|
with the labels `kickoff.md` → "Words typed after `new`" maps (per
|
|
50
42
|
`prompts/collaboration-workflow/issue-template.md`) — its duplicate scan runs first, and a candidate
|
|
51
43
|
that covers the same work stops the run rather than filing a second Issue (`issue-scout.md`). Capture
|
|
52
|
-
`<N>`. (3)
|
|
53
|
-
|
|
54
|
-
in the session language:
|
|
55
|
-
|
|
56
|
-
`
|
|
57
|
-
|
|
58
|
-
`
|
|
59
|
-
`pnpm josh stash:pop "fullrun new: pre-existing changes"` — by message, never a positional `git stash
|
|
60
|
-
pop`. (8) Implement. (9) Run the verification gate (as in `chain-rule.md`; only the first review round
|
|
44
|
+
`<N>`. (3) `pnpm josh run:hold --adopt <N>` — re-keys the bare hold to `<N>` and applies `in-progress`;
|
|
45
|
+
every later stop releases with `run:release <N>`. (4) Record the agreed plan
|
|
46
|
+
in the session language: `pnpm josh issue:plan <N> --body-file <path>` (its consumers section as in
|
|
47
|
+
`kickoff.md` step 4). (5) `pnpm josh stash:push "fullrun new: pre-existing changes"`. (6) `pnpm josh ms`. (7)
|
|
48
|
+
`pnpm josh run:prep <N>`; on `latest: required` run `pnpm josh latest:if-required` and load the `dependency-update`
|
|
49
|
+
skill; on `skip` neither runs (`latest-gate.md` is the single source). If (5) answered `stashed`,
|
|
50
|
+
`pnpm josh stash:pop "fullrun new: pre-existing changes"`. (8) Implement. (9) Run the verification gate (as in `chain-rule.md`; only the first review round
|
|
61
51
|
runs here). (9a) **Ask `pnpm josh review:round2 --round-1-closed` whether a second round is due**, once
|
|
62
52
|
round 1's fixes are in and before the commit. (10) Where the tree was edited after the first gate
|
|
63
53
|
started, re-run `pnpm josh gate` and join it. (11) `pnpm josh git -y "<title> #<N>"` — the pull request
|
|
@@ -69,9 +59,8 @@ round was due** (9a `skip`), fold steps (10)–(13) and the release bookkeeping
|
|
|
69
59
|
ship "<title> #<N>" --notify-message "..."` (gate → commit/push/PR → the CI-wait `followup` → `run:tail`,
|
|
70
60
|
stopping at the first failed step); **where a second round ran**, the PR opened
|
|
71
61
|
at (11) and the region stays separate — `pnpm josh followup "<title> #<N>" --notify-message "..."` then
|
|
72
|
-
`pnpm josh run:tail <N>`. (14) **
|
|
73
|
-
|
|
74
|
-
"When `pnpm josh release` runs").
|
|
62
|
+
`pnpm josh run:tail <N>`. (14) **Close the completion summary with `run:tail`'s `release:scope`
|
|
63
|
+
answer** (`followup.md` → "When `pnpm josh release` runs").
|
|
75
64
|
|
|
76
65
|
## The release ask — the last step of either form
|
|
77
66
|
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
# `fullrun` — the manifest (plan → implement → PR → merge → notify)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
`
|
|
5
|
-
`
|
|
6
|
-
`
|
|
7
|
-
use. The step lists are `fullrun-steps.md`, read when a step needs its detail. History:
|
|
8
|
-
`docs/maintainers/fullrun-rationale.md` → "Where each rule came from".
|
|
3
|
+
The entry sequence and the stop branches are `entry-sequence.md`. `pnpm josh run:step <N>` prints the
|
|
4
|
+
run's next single action. `chain-rule.md`, `followup.md`, `background-commands.md` and
|
|
5
|
+
`latest-gate.md` are **not entry reads** — each is fetched at its point of use. The step lists are
|
|
6
|
+
`fullrun-steps.md`, read when a step needs its detail.
|
|
9
7
|
|
|
10
8
|
## The difference — the entry and the end
|
|
11
9
|
|
|
12
10
|
- **The entry passes no `--to`**: `pnpm josh run:entry <N>` is `fullrun`'s stage. Follow `run:step`
|
|
13
11
|
into `fullrun-steps.md` — the `fullrun #N` list or the `fullrun new` list.
|
|
14
|
-
- **The end merges**: `run:step` names the verification gate, `pnpm josh followup
|
|
15
|
-
|
|
12
|
+
- **The end merges**: `run:step` names the verification gate, `pnpm josh followup` and the release ask
|
|
13
|
+
in order. Invoking `fullrun` authorizes the merge, through `pnpm josh followup` only.
|
|
16
14
|
- **A split or a prerequisite stops the run**: typing `fullrun` approved **one** Issue.
|
|
17
15
|
|
|
18
16
|
## The lane-child seam
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
# `halfrun` — the manifest (implement + verify, stop before commit)
|
|
2
2
|
|
|
3
|
-
When this run files a new Issue, file it with `pnpm josh issue:file`, which lints the body and applies the classification labels it declares beside the `--
|
|
3
|
+
When this run files a new Issue, file it with `pnpm josh issue:file`, which lints the body and applies the classification labels it declares beside the `--route` label; `prompts/collaboration-workflow/issue-template.md` is the single source for this classification.
|
|
4
4
|
|
|
5
|
-
`halfrun`
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
**This file is the manifest.** The entry sequence and the stop branches are `entry-sequence.md`,
|
|
10
|
-
shared with `fullrun` and `prrun`; this file names only what is `halfrun`'s own. History:
|
|
11
|
-
`docs/maintainers/halfrun-rationale.md` → "Where each rule came from".
|
|
5
|
+
`halfrun` implements the change and runs the full verification gate, then **stops before commit** —
|
|
6
|
+
nothing is committed, pushed, or opened as a PR — so a person verifies the working tree by hand. The
|
|
7
|
+
entry sequence and the stop branches are `entry-sequence.md`.
|
|
12
8
|
|
|
13
9
|
## The difference — the entry
|
|
14
10
|
|
|
@@ -19,36 +15,28 @@ shared with `fullrun` and `prrun`; this file names only what is `halfrun`'s own.
|
|
|
19
15
|
|
|
20
16
|
## The step list
|
|
21
17
|
|
|
22
|
-
`halfrun #<N>`: read Issue #N and its comments → **
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
`dependency-update` skill) → implement → run the **full verification gate** (refactor →
|
|
18
|
+
`halfrun #<N>`: read Issue #N and its comments → **record the agreed plan**, normalizing
|
|
19
|
+
the title (`pnpm josh issue:plan`, same as `fullrun`) → `pnpm josh ms`, then on `run:prep`'s
|
|
20
|
+
`latest: required` `pnpm josh latest:if-required` (`latest-gate.md`; the `dependency-update` skill) → implement → run the **full verification gate** (refactor →
|
|
26
21
|
start `pnpm josh gate` beside a subagent `/code-review` with the brief `pnpm josh review:brief` prints,
|
|
27
22
|
join the gate before the stop, iterate to no high/medium findings, within the round cap (`prompts/review.md`) → `pnpm josh
|
|
28
23
|
test:e2e`, run by **you**, because `halfrun` opens no pull request and there is no CI E2E job; a printed
|
|
29
24
|
skip is the answer where the project has no suite) → **mark the stop: `pnpm josh run:hold <N>
|
|
30
|
-
--halfrun-stop`** (the record `fullrun #<N>` adopts; `
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
the gate. The direct commands follow for shipping without an agent:
|
|
35
|
-
`pnpm josh notify --task-type confirmation --issue-url "<issue-url>" --body=$'halfrun ready for manual
|
|
36
|
-
verification\nNext: prrun #<N> | fullrun #<N>\nWithout an agent: pnpm josh git -y "<title> #<N>" && pnpm josh
|
|
37
|
-
followup "<title> #<N>" --notify-message "Implemented <title>\\nCause: ...\\nFix: ...\\nResult:
|
|
38
|
-
...\\n\\nDetails:\\n- <change1>"' --recommended "Verify by hand, then prrun #<N>" --alternative "fullrun
|
|
39
|
-
#<N>"`. The stop report names the same two, in the same order.
|
|
25
|
+
--halfrun-stop`** (the record `fullrun #<N>` adopts; refused with `e2e-owed` until `test:e2e` answered
|
|
26
|
+
green on this tree; it also sends the `confirmation` Telegram, its body led by
|
|
27
|
+
`Next: prrun #<N> | fullrun #<N>` — never compose one) → **stop**. Plan comments are in
|
|
28
|
+
the session language. The stop report names `prrun #<N>` (recommended) and `fullrun #<N>`, in that order.
|
|
40
29
|
**Invoking `halfrun` is _not_ authorization to commit, push, or merge** — do not run `pnpm josh git -y` or `pnpm josh followup` yourself. If the user comes
|
|
41
|
-
back with fixes, treat each as a new round: implement, re-run `pnpm josh gate`,
|
|
42
|
-
`confirmation`
|
|
30
|
+
back with fixes, treat each as a new round: implement, re-run `pnpm josh gate`, mark the stop again
|
|
31
|
+
(it sends the `confirmation`), stop again.
|
|
43
32
|
|
|
44
33
|
`halfrun new` or `halfrun new "<title>"`: `kickoff new` + `halfrun #<N>` (no Issue exists yet). Steps
|
|
45
34
|
mirror `fullrun new` (1)–(8): derive an English title (or use the provided one) → create the Issue
|
|
46
|
-
(`pnpm josh issue:file "<title>" --body-file <body-file
|
|
35
|
+
(`pnpm josh issue:file "<title>" --body-file <body-file>`, with the labels
|
|
47
36
|
`kickoff.md` → "Words typed after `new`" maps, body per
|
|
48
|
-
`prompts/collaboration-workflow/issue-template.md`; its duplicate scan is read per `issue-scout.md`) →
|
|
49
|
-
any pre-existing changes with `
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
Telegram and **stop**.
|
|
37
|
+
`prompts/collaboration-workflow/issue-template.md`; its duplicate scan is read per `issue-scout.md`) → `pnpm josh run:hold --adopt <N>` (as `fullrun new` (3)) → post the agreed plan → stash
|
|
38
|
+
any pre-existing changes with `pnpm josh stash:push "halfrun new: pre-existing changes"`, popped
|
|
39
|
+
after `stashed` with `pnpm josh stash:pop "halfrun new: pre-existing changes"` →
|
|
40
|
+
`pnpm josh ms` → `pnpm josh run:prep <N>`, and on `latest: required` `pnpm josh latest:if-required` → implement → run the gate (as above, `pnpm
|
|
41
|
+
josh test:e2e` run by **you**) → `pnpm josh run:hold <N> --halfrun-stop` (it sends the `confirmation`)
|
|
42
|
+
→ **stop**.
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**This file is the suffix's single source, read at its point of use — the moment a `new` entry is
|
|
4
4
|
typed with an `into <target>` suffix, not at any entry.** A run given a `#N` or a bare `new` never
|
|
5
|
-
reaches it.
|
|
6
|
-
`docs/maintainers/into-target-rationale.md` → "Why the suffix reads as it does".
|
|
5
|
+
reaches it.
|
|
7
6
|
|
|
8
7
|
`kickoff new` / `fullrun new` / `halfrun new` accept a suffix naming the epic the run's artifact
|
|
9
8
|
belongs to. Without it the artifact belongs to no epic, and `epic:next` only ever offers an epic's
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# An Issue's comments are part of the Issue
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
history: `docs/maintainers/issue-comments-rationale.md` → "Why comments are read".
|
|
3
|
+
Read before implementing a `#N` Issue.
|
|
5
4
|
|
|
6
5
|
**Every `#N` entry point reads the Issue's comments before it implements** — `fullrun`, `halfrun` and
|
|
7
6
|
`kickoff`; a `backlogrun` named issue and epic child inherit it through `fullrun`. One call, in the same
|
|
@@ -48,32 +47,37 @@ means "waiting for an answer", and here the answer exists.
|
|
|
48
47
|
the Issue (`scripts/issue/issue-labels.ts` → `NOT_DIRECTLY_RUNNABLE_LABELS`, `epic-classify.ts` →
|
|
49
48
|
`human`), and `epic:busy` stops counting it. **Only a person removes it, by closing the Issue.**
|
|
50
49
|
|
|
50
|
+
**Commit nothing, push nothing, open no pull request** — run one command; it posts the evidence,
|
|
51
|
+
applies `already-done` and releases the hold, in that order, stopping at the first failure:
|
|
52
|
+
|
|
51
53
|
```bash
|
|
52
|
-
|
|
53
|
-
gh api repos/{owner}/{repo}/issues/<N>/labels -f 'labels[]=already-done'
|
|
54
|
+
pnpm josh issue:already-done <N> --evidence-file <path>
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
4. **Then behave as the entry point does for a parked child.** A typed `fullrun` / `halfrun` sends a
|
|
63
|
-
`confirmation` Telegram naming the Issue and the covering merge, and stops; a `backlogrun` child is
|
|
64
|
-
park-and-continue (`backlogrun-park.md` → "park and continue").
|
|
65
|
-
5. **Never close the Issue** — Tier C at every entry point.
|
|
57
|
+
**The evidence file names the merging pull request or commit and, per acceptance criterion, the
|
|
58
|
+
`file:line` that satisfies it.** **A claim with no citations is not the finding this exit is for.**
|
|
59
|
+
|
|
60
|
+
Then behave as the entry point does for a parked child: a typed `fullrun` / `halfrun` sends a
|
|
61
|
+
`confirmation` Telegram naming the Issue and the covering merge, and stops; a `backlogrun` child is
|
|
62
|
+
park-and-continue (`backlogrun-park.md` → "park and continue"). **Never close the Issue** — Tier C.
|
|
66
63
|
|
|
67
64
|
**Looking familiar is no license to skip the work**: a criterion you cannot point at merged code for is
|
|
68
65
|
one this run still owes.
|
|
69
66
|
|
|
67
|
+
## A measurement-only Issue
|
|
68
|
+
|
|
69
|
+
**Every criterion is a measurement, so no pull request closes it** → `pnpm josh issue:measured <N>
|
|
70
|
+
--evidence-file <path>` (per criterion, the result and its run), never a bare comment: an OPEN child is
|
|
71
|
+
parked `run:stalled`. Invoking `fullrun` / `backlogrun` authorizes this close. `docs/josh-commands-backlog.md` → "`josh issue:measured`".
|
|
72
|
+
|
|
70
73
|
## A long thread
|
|
71
74
|
|
|
72
75
|
**The fetch is one call; what costs is carrying it** — hence the projection to author, timestamp and
|
|
73
76
|
body. A thread longer than the Issue is the pre-implementation reading `delegation.md` describes: brief
|
|
74
77
|
a unit to return **the agreements in force plus the comment URLs that carry them**, never the text.
|
|
75
78
|
|
|
76
|
-
|
|
79
|
+
**Under Claude Code the hook prepends the comments to a line that opens with a body-only `gh api` read
|
|
80
|
+
and refuses every other body-only read; the Codex adapter refuses them all** (`prompts/collaboration-workflow/rule-delivery.md`).
|
|
77
81
|
**This file is the rule, not the hook** — a session without hooks still owes the read.
|
|
78
82
|
|
|
79
83
|
## A person's update mid-run
|
|
@@ -6,8 +6,8 @@ Every filing asks whether the work already exists and which epic owns it; the co
|
|
|
6
6
|
named in `--distinct`:
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
-
pnpm josh issue:file "<title>" --body-file <complete-draft.md>
|
|
10
|
-
pnpm josh issue:file "<title>" --body-file <complete-draft.md> --
|
|
9
|
+
pnpm josh issue:file "<title>" --body-file <complete-draft.md> [--route <route>]
|
|
10
|
+
pnpm josh issue:file "<title>" --body-file <complete-draft.md> --distinct 2801,2795
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
- **`Duplicates:` is read, not skimmed.** Open each candidate and apply `issue-fold-existing.md`
|
|
@@ -28,8 +28,9 @@ pnpm josh issue:file "<title>" --body-file <complete-draft.md> --depth <n> --dis
|
|
|
28
28
|
`add_to_epic` / `create_epic` Tier A and `ask` a stop, in exactly the reading `into-target.md`'s
|
|
29
29
|
`into <target>` suffix would have given by hand. Where the user typed `into <target>`, that naming wins.
|
|
30
30
|
- **`Epic: not asked` is not `Epic: none`.** The epic half decides from the issue numbers the body
|
|
31
|
-
names
|
|
32
|
-
|
|
31
|
+
names in its acceptance criteria or its `parent: #N` line; a background mention does not count.
|
|
32
|
+
**Cite `#N` there whenever the work follows an existing Issue** — one line is enough, and naming
|
|
33
|
+
the epic itself (`parent: #<E>`) is answered with that epic.
|
|
33
34
|
- **`epic:bundle` then runs on the new Issue, in the same call.** Act on its printed answer; a `⚠`
|
|
34
35
|
means rerun `pnpm josh epic:bundle <N>` — the Issue exists, so never refile; a placing answer
|
|
35
36
|
reads the `epic-commands` skill.
|