@joshuafolkken/kit 1.1514.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 +5 -5
- package/.claude/skills/epic-commands/SKILL.md +26 -65
- package/.claude/skills/epic-commands/epic-bundle.md +3 -1
- package/.claude/skills/workflow-commands/SKILL.md +5 -5
- package/.claude/skills/workflow-commands/background-commands.md +5 -5
- package/.claude/skills/workflow-commands/backlogrun-child.md +10 -8
- package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +7 -25
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +17 -13
- package/.claude/skills/workflow-commands/backlogrun-park.md +14 -23
- package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -2
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +5 -5
- package/.claude/skills/workflow-commands/backlogrun-steps.md +10 -10
- package/.claude/skills/workflow-commands/backlogrun.md +1 -1
- package/.claude/skills/workflow-commands/chain-rule.md +13 -7
- package/.claude/skills/workflow-commands/delegation.md +6 -5
- package/.claude/skills/workflow-commands/entry-sequence.md +9 -9
- package/.claude/skills/workflow-commands/followup.md +9 -31
- package/.claude/skills/workflow-commands/fullrun-steps.md +36 -45
- package/.claude/skills/workflow-commands/fullrun.md +2 -2
- package/.claude/skills/workflow-commands/halfrun.md +17 -25
- package/.claude/skills/workflow-commands/issue-comments.md +16 -12
- package/.claude/skills/workflow-commands/issue-scout.md +2 -2
- package/.claude/skills/workflow-commands/kickoff.md +24 -23
- package/.claude/skills/workflow-commands/latest-gate.md +7 -12
- package/.claude/skills/workflow-commands/needs-human-review.md +9 -14
- package/.claude/skills/workflow-commands/observation-filing.md +4 -36
- package/.claude/skills/workflow-commands/observation-ledger.md +1 -1
- package/.claude/skills/workflow-commands/pre-gate-cut.md +13 -30
- package/.claude/skills/workflow-commands/prerequisite.md +10 -16
- package/.claude/skills/workflow-commands/progress-watcher.md +1 -1
- package/.claude/skills/workflow-commands/prrun.md +3 -7
- package/.claude/skills/workflow-commands/retrospective.md +1 -1
- package/.claude/skills/workflow-commands/split-assessment.md +13 -1
- package/.claude/skills/workflow-commands/working-tree-hold.md +9 -9
- package/.codex/hooks.json +5 -5
- package/.github/actions/setup-node/action.yml +9 -0
- 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 +120 -10
- package/.github/workflows/publish.yml +8 -1
- package/.github/workflows/sonar-qube.yml +1 -0
- package/.prettierignore +2 -0
- package/.vscode/tasks.json +1 -2
- package/CLAUDE.md +3 -7
- package/README.md +4 -2
- package/SECURITY.md +1 -1
- package/dist/CLAUDE.md +3 -7
- package/dist/commands/document-read-cli.js +882 -0
- package/dist/commands/{document-section-cli.js → document-section-main.js} +79 -37
- 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-TNUMY6NL.js → chunk-PT5R6UJD.js} +4193 -1900
- package/dist/hooks/chunk-TUIFS5E7.js +72 -0
- package/dist/hooks/{chunk-723HKZO5.js → chunk-VWWCFGWK.js} +1 -1
- package/dist/hooks/{chunk-APUO6U4J.js → chunk-WR2KQAYZ.js} +1843 -440
- package/dist/hooks/{chunk-O6GDRNJB.js → chunk-XGBNSWEI.js} +248 -46
- package/dist/hooks/chunk-YCDOIR3I.js +3456 -0
- package/dist/hooks/codex-hook-adapter.js +10 -22
- package/dist/hooks/format-edited.js +5 -6
- package/dist/hooks/inputs.json +443 -317
- package/dist/hooks/pretool-guard.js +7 -25
- package/dist/hooks/session-lang.js +44 -51
- package/dist/hooks/stop-guard.js +7716 -2187
- package/dist/josh.js +6002 -3583
- 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 +3 -1
- package/package.json +10 -48
- package/pnpm-workspace.yaml +4 -2
- package/prompts/coding-standards.md +1 -1
- package/prompts/collaboration-workflow/file-edits.md +1 -7
- package/prompts/collaboration-workflow/issue-citation.md +1 -1
- package/prompts/collaboration-workflow/issue-template.md +33 -16
- package/prompts/collaboration-workflow/lane-instructions.md +1 -2
- package/prompts/collaboration-workflow/measurement.md +37 -0
- package/prompts/collaboration-workflow/operating-rules.md +4 -6
- package/prompts/collaboration-workflow/output-bounds.md +2 -7
- package/prompts/collaboration-workflow/plan-comment.md +3 -42
- package/prompts/collaboration-workflow/principles.md +5 -0
- package/prompts/collaboration-workflow/report-format.md +31 -60
- package/prompts/collaboration-workflow/residency.md +2 -2
- package/prompts/collaboration-workflow/shell-body.md +6 -16
- package/prompts/collaboration-workflow/turn-batching.md +0 -2
- package/prompts/collaboration-workflow/upstream-interrupt.md +14 -4
- package/prompts/collaboration-workflow/wip-cap.md +1 -1
- package/prompts/collaboration-workflow.md +3 -7
- package/prompts/refactoring.md +1 -1
- package/prompts/review-rubric.md +1 -2
- package/prompts/review.md +41 -21
- package/prompts/testing-guide.md +8 -43
- package/scripts/agent/agent-event.ts +15 -15
- package/scripts/agent/agent-exit-record.ts +13 -1
- package/scripts/agent/api-auth.ts +41 -0
- package/scripts/agent/api-outage.ts +1 -1
- 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 +2 -3
- 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 +53 -6
- 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 +30 -7
- 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 +52 -39
- 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 +112 -30
- 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 +0 -8
- package/scripts/delegation/investigation-guard.ts +0 -8
- package/scripts/delegation/investigation-reads.ts +3 -4
- 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 +8 -6
- package/scripts/document/document-scan.ts +1 -1
- package/scripts/document/document-section-cli.ts +0 -8
- package/scripts/document/document-section-main.ts +12 -0
- package/scripts/epic/epic-audit-cli.ts +12 -6
- package/scripts/epic/epic-bundle-apply.ts +137 -0
- package/scripts/epic/epic-bundle-cli.ts +32 -121
- package/scripts/epic/epic-bundle-format.ts +116 -0
- package/scripts/epic/epic-bundle-main.ts +17 -0
- 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 +19 -66
- 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 +39 -95
- package/scripts/gate/check-reuse.ts +33 -54
- 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 +80 -98
- package/scripts/gate/core-wait-record.ts +48 -0
- package/scripts/gate/core-wait.ts +37 -5
- package/scripts/gate/core-weights.ts +86 -0
- package/scripts/gate/free-cores.ts +27 -4
- package/scripts/gate/gate-ledger.ts +32 -4
- package/scripts/gate/gate-plan.ts +41 -34
- package/scripts/gate/gate-report.ts +14 -2
- package/scripts/gate/gate-run-steps.ts +53 -8
- package/scripts/gate/gate-skip.ts +12 -2
- package/scripts/gate/gate-steps.ts +12 -1
- package/scripts/gate/input-fingerprint.ts +42 -0
- package/scripts/gate/machine-capacity.ts +65 -31
- package/scripts/gate/moved-paths.ts +67 -0
- 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 +27 -24
- 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-write.ts +67 -29
- 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/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 +2 -2
- package/scripts/git/main-merge.ts +25 -9
- 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 +0 -8
- 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 +30 -3
- package/scripts/hooks/pre-push-unit.ts +4 -2
- package/scripts/hooks/pretool-guard-cli.ts +1 -8
- package/scripts/hooks/pretool-guard.ts +32 -19
- package/scripts/hooks/reserved-run.ts +67 -9
- package/scripts/hooks/run-hook.sh +13 -4
- package/scripts/hooks/shell-rules-notice.ts +37 -0
- package/scripts/hooks/stop-actions.ts +2 -21
- package/scripts/hooks/stop-guard.ts +13 -9
- package/scripts/init/hook-command-rewrite.ts +19 -5
- package/scripts/init/hook-launch.ts +15 -17
- 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 +1 -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 +0 -9
- package/scripts/issue/issue-cite-main.ts +12 -0
- package/scripts/issue/issue-classification.ts +12 -7
- 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 +2 -10
- 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 +0 -11
- 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/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 +15 -43
- package/scripts/josh/file-map-stamp.ts +49 -16
- package/scripts/josh/hook-decision.ts +32 -20
- package/scripts/josh/josh-command-map.ts +4 -1
- package/scripts/josh/josh-command-types.ts +12 -6
- package/scripts/josh/josh-commands-agent-hooks.ts +83 -0
- package/scripts/josh/josh-commands-ai.ts +157 -158
- 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 +25 -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 +103 -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 +144 -6
- package/scripts/josh/josh-logic.ts +6 -13
- package/scripts/josh/package-directory.ts +2 -4
- 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 +14 -23
- package/scripts/lane/lane-check-stats.ts +62 -21
- package/scripts/lane/lane-child-invocation.ts +8 -0
- 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 +24 -3
- package/scripts/lane/lane-gap-stats.ts +156 -0
- package/scripts/lane/lane-handoff.ts +69 -1
- package/scripts/lane/lane-held-stats.ts +129 -0
- package/scripts/lane/lane-install.ts +4 -11
- 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 +92 -123
- package/scripts/lane/lane-limit-cli.ts +12 -1
- package/scripts/lane/lane-measure-cli.ts +57 -11
- 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-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 +24 -3
- package/scripts/lane/lane-residents.ts +162 -0
- package/scripts/lane/lane-restart.ts +22 -2
- 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 +19 -5
- package/scripts/lane/lane-session-broker.ts +102 -21
- 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 +5 -4
- package/scripts/lane/lane-withdraw.ts +50 -49
- 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 +11 -2
- 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 +62 -30
- package/scripts/lint/lint-related-scope.ts +30 -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 +2 -6
- 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 +2 -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.ts +1 -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 +81 -15
- 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 +8 -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 +80 -2
- 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 +7 -0
- package/scripts/rules/git-argv.ts +72 -14
- package/scripts/rules/git-force.ts +12 -2
- package/scripts/rules/guard-remedy.ts +4 -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 +9 -1
- 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/oracle-consulted.ts +10 -0
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/permission-guards.ts +3 -0
- package/scripts/rules/piped-verification.ts +1 -1
- 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 +9 -28
- package/scripts/rules/rule-value-cache.ts +4 -9
- package/scripts/rules/rule-value-cli.ts +51 -32
- package/scripts/rules/rule-value.ts +1 -1
- package/scripts/rules/shell-segments.ts +35 -0
- package/scripts/rules/stop-rule-rows.ts +64 -0
- package/scripts/rules/stop-rules.ts +3 -4
- 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 -32
- 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 +118 -38
- package/scripts/run/board/run-board-header.ts +82 -20
- 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 +116 -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 +239 -60
- 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 +151 -27
- package/scripts/run/board/run-board-reason.ts +235 -51
- 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 -48
- 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 +104 -20
- package/scripts/run/board/run-board-render.ts +207 -265
- package/scripts/run/board/run-board-roots.ts +54 -0
- package/scripts/run/board/run-board-row-yield.ts +9 -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 +22 -33
- package/scripts/run/board/run-board-status.ts +147 -71
- package/scripts/run/board/run-board-thanks-read.ts +2 -2
- package/scripts/run/board/run-board-tick.ts +122 -107
- 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-handoff.ts +2 -2
- 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 +6 -10
- package/scripts/run/event/run-event-scope.ts +2 -2
- package/scripts/run/event/run-event-stream-emit.ts +82 -22
- package/scripts/run/event/run-event-stream.ts +34 -8
- 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-stop-notify.ts +183 -0
- package/scripts/run/merge/run-merge-auth.ts +31 -0
- package/scripts/run/merge/run-merge-cli.ts +62 -48
- 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 +33 -9
- package/scripts/run/merge/run-merge-steps.ts +120 -85
- package/scripts/run/merge/run-merge.ts +38 -37
- 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 +60 -29
- package/scripts/run/run-next.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +2 -2
- 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.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 +63 -140
- package/scripts/run/ship/run-ship-detach.ts +19 -8
- package/scripts/run/ship/run-ship-infra-retry.ts +59 -0
- package/scripts/run/ship/run-ship-next.ts +18 -2
- package/scripts/run/ship/run-ship-overlap.ts +42 -5
- 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 +81 -24
- package/scripts/run/ship/run-ship-preflight.ts +137 -32
- 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 +107 -23
- package/scripts/run/ship/run-ship-review-steps.ts +105 -151
- 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-text.ts +11 -6
- package/scripts/run/ship/run-ship-sync.ts +43 -6
- 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 +25 -1
- 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 +42 -24
- 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 +61 -149
- 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 +97 -10
- 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 +4 -1
- 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-4KKD2UTK.js +0 -66
- package/dist/hooks/chunk-6TS2JD6D.js +0 -237
- package/dist/hooks/chunk-7DSBJVFH.js +0 -50
- package/dist/hooks/chunk-A65Y4YOR.js +0 -79
- package/dist/hooks/chunk-CDY4NFQG.js +0 -15
- package/dist/hooks/chunk-EFXE6C37.js +0 -81
- package/dist/hooks/chunk-GP4IEC4O.js +0 -20
- package/dist/hooks/chunk-JP45SOCJ.js +0 -56
- package/dist/hooks/chunk-LAOV7NLM.js +0 -45
- package/dist/hooks/chunk-M4HGZV7U.js +0 -83
- package/dist/hooks/chunk-PF2NZL2A.js +0 -131
- package/dist/hooks/chunk-PTICX4OL.js +0 -358
- package/dist/hooks/chunk-RT27QRJW.js +0 -6247
- package/dist/hooks/chunk-SYOTDYCI.js +0 -3533
- package/dist/hooks/chunk-UPUZF3AN.js +0 -279
- package/dist/hooks/chunk-WK6SMBIC.js +0 -3180
- package/dist/hooks/duplicate-read-guard.js +0 -30
- package/dist/hooks/investigation-guard.js +0 -29
- 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/josh/josh-usage-automation.ts +0 -121
- package/scripts/josh/josh-usage-backlog.ts +0 -180
- package/scripts/josh/josh-usage-developer.ts +0 -230
- package/scripts/josh/josh-usage-hooks.ts +0 -38
- package/scripts/josh/josh-usage-issue.ts +0 -205
- package/scripts/josh/josh-usage-review.ts +0 -101
- package/scripts/josh/josh-usage-run.ts +0 -252
- package/scripts/josh/josh-usage-session.ts +0 -238
- package/scripts/josh/josh-usage-workflow.ts +0 -212
- 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 -292
- package/scripts/rules/rule-registry.ts +0 -112
- package/scripts/run/run-stranded-cli.ts +0 -27
|
@@ -4,18 +4,22 @@
|
|
|
4
4
|
nothing and prints the stage line alone; on `start: reached` report the stage line and **stop**. Then:
|
|
5
5
|
1. Read Issue #N **and every comment on it** — `pnpm josh issue:read <N>`; the later text is the
|
|
6
6
|
agreement in force (`issue-comments.md`, which also carries the answers that stop the run).
|
|
7
|
-
2.
|
|
7
|
+
2. Derive a clear English title.
|
|
8
8
|
3. Analyze requirements → **scope assessment per `split-assessment.md`**.
|
|
9
|
-
4.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
4. **Record the plan** — written to a file in the session language (`JOSH_SESSION_LANG`, default
|
|
10
|
+
`ja`), then `pnpm josh issue:plan <N> --body-file <path> --title "<title>" --planned`: it renames
|
|
11
|
+
the issue, fills a blank body or comments otherwise, and applies `run:planned`, so the next
|
|
12
|
+
command's `run:entry` starts at the implementation. A target named in front of the reference
|
|
13
|
+
adds `--repo <owner/name>`. Before writing the plan, run `pnpm josh plan:consumers
|
|
14
|
+
<identifier...>` on what it adds or changes and finish the `### 影響を受ける既存の利用者` draft it
|
|
15
|
+
prints; `issue:plan` refuses a plan without it (`docs/josh-commands-backlog.md` → "`josh issue:plan`").
|
|
16
|
+
5. Send the Telegram notification, its last line `Next: halfrun #<N> | prrun #<N> | fullrun #<N>` →
|
|
15
17
|
**stop** (do not implement).
|
|
16
18
|
|
|
17
|
-
**Two or more separately-mergeable deliverables** take the split path instead of a plan:
|
|
18
|
-
|
|
19
|
+
**Two or more separately-mergeable deliverables** take the split path instead of a plan: rename `#N`
|
|
20
|
+
to the step-2 title (`gh api -X PATCH repos/{owner}/{repo}/issues/<N> -f title="<title>"` — neither
|
|
21
|
+
`issue:plan` nor `epic --promote` runs here to apply it), create the children as in `kickoff new`,
|
|
22
|
+
then either **promote `#N`** with `pnpm josh epic --promote <N> <N1> <N2>
|
|
19
23
|
... [--ordered] [--rationale-file <path|->]` (when `#N` is a request, a discussion or a container), or
|
|
20
24
|
keep `#N` as a child and create a new epic with `pnpm josh epic`. That branch is Tier A: choose and
|
|
21
25
|
record the reasoning on the Issue. Present `backlogrun #<E> --only` and stop.
|
|
@@ -41,13 +45,13 @@ gate must hold **together**. The rest of `split-assessment.md` is read when a sp
|
|
|
41
45
|
- `kickoff new` or `kickoff new "<title>"`: (0) **Scope assessment** per `split-assessment.md` — one
|
|
42
46
|
deliverable takes the **single-issue path**, several the **multi-issue split path**.
|
|
43
47
|
- **Single-issue path**: (1) Derive an English title, or use the one given. (2) `pnpm josh issue:file
|
|
44
|
-
"<title>" --body-file <body-file
|
|
48
|
+
"<title>" --body-file <body-file>` plus the labels the words typed after `new` name
|
|
45
49
|
("Words typed after `new`", below; body per `prompts/collaboration-workflow/issue-template.md`) —
|
|
46
50
|
its duplicate scan runs first, and a candidate covering the same work stops the run (`SKILL.md` →
|
|
47
51
|
`issue-scout.md`). Capture `<N>`. (3) Post the plan as `kickoff #<N>` does. (4) Telegram. (5)
|
|
48
52
|
**Stop**.
|
|
49
53
|
- **Multi-issue split path**: (1) Per deliverable, `pnpm josh issue:file "<sub-title>" --body-file
|
|
50
|
-
<body-file> --
|
|
54
|
+
<body-file> --route split` plus the labels the words after `new` name (duplicate scan
|
|
51
55
|
per `issue-scout.md`). A split filed into another repository gives every child body the `## Origin`
|
|
52
56
|
backlink, the epic the same link as prose (never a checkbox row, which disables its auto-close), and
|
|
53
57
|
the originating Issue lists children and epic under `## Upstream issues`. (2) **Epic — always, for
|
|
@@ -57,19 +61,13 @@ gate must hold **together**. The rest of `split-assessment.md` is read when a sp
|
|
|
57
61
|
a hand-edited epic with `pnpm josh epic:check <E>`. (3) Telegram listing every created Issue. (4)
|
|
58
62
|
Present `backlogrun #<E> --only`. (5) **Stop**.
|
|
59
63
|
|
|
60
|
-
**The epic itself is never implemented** — `backlogrun` runs its *children*, and
|
|
61
|
-
|
|
64
|
+
**The epic itself is never implemented** — `backlogrun` runs its *children*, and it closes itself
|
|
65
|
+
once every child is closed, whichever josh path closes the last one. Children with no required order take `None — the children are
|
|
62
66
|
independent; any execution order works.` under `Dependencies`. **Only when the execution order
|
|
63
67
|
matters** (`execution-waves.md` → "When a wave may be declared") pass `--ordered`, which treats the
|
|
64
68
|
argument order as the dependency order.
|
|
65
69
|
|
|
66
|
-
|
|
67
|
-
name=epic -f color=5319e7 -f description="Tracks a batch of child issues from one split" --silent
|
|
68
|
-
2>/dev/null || true`, then `gh api repos/{owner}/{repo}/issues -f title="<epic-title>" -f
|
|
69
|
-
'labels[]=epic' -F body=@<body-file>` with the epic format of `issue-template.md`; an order is
|
|
70
|
-
recorded per pair with `gh api repos/{owner}/{repo}/issues/<N2>/dependencies/blocked_by -F
|
|
71
|
-
issue_id="$(gh api repos/{owner}/{repo}/issues/<N1> --jq .id)"` (the blocker's **database id**; a
|
|
72
|
-
failure is non-fatal), never folded into the creation call.
|
|
70
|
+
Without `josh`: `issue-template.md` → "複数 Issue に分割するときの epic Issue".
|
|
73
71
|
|
|
74
72
|
`pnpm josh issue:file` lints the body and applies the classification labels it declares (`issue-template.md`; `docs/josh-commands-backlog.md` → `josh issue:file`).
|
|
75
73
|
An Issue a consumer can use only once it is published is filed with `--release` (`kickoff new`), or linked with `pnpm josh issue:release <N>` (`kickoff #N`) — either makes it a blocker of the repository's `release` Issue, which never gets `auto-ok` on its own.
|
|
@@ -83,7 +81,10 @@ An Issue a consumer can use only once it is published is filed with `--release`
|
|
|
83
81
|
**Words after `new`** (`kickoff new high`) are read like `into <target>`, never inferred. Each adds its
|
|
84
82
|
labels to the filing; a word not in the table is asked about:
|
|
85
83
|
|
|
86
|
-
| Typed
|
|
87
|
-
|
|
|
84
|
+
| Typed | Added to `pnpm josh issue:file` |
|
|
85
|
+
| ---------- | ------------------------------- |
|
|
88
86
|
| `auto ok` | nothing — `issue:file` judges it |
|
|
89
|
-
| `
|
|
87
|
+
| `critical` | `--label priority:critical` |
|
|
88
|
+
| `high` | `--label priority:high` |
|
|
89
|
+
|
|
90
|
+
A typed priority wins: `issue:file` then skips the body's `- 優先度:` judgement (`scripts/issue/issue-priority.ts`).
|
|
@@ -26,26 +26,21 @@ judgement that the dependencies are probably still fresh.
|
|
|
26
26
|
## What runs when the answer is `required`
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
30
|
-
pnpm josh ms
|
|
31
|
-
pnpm josh latest # on `required` only
|
|
32
|
-
pnpm josh stash:pop "josh latest" # only if you stashed above — by message, never a positional pop
|
|
29
|
+
pnpm josh latest:if-required # stash → josh latest → pop by message; nothing on `skip`
|
|
33
30
|
```
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
It asks `latest:scope` itself, so a run reads `run:prep`'s `latest:` line and never asks again. A
|
|
33
|
+
failed update or a conflicted pop stops with the stash kept and names the pop to run.
|
|
37
34
|
|
|
38
35
|
Then **load the `dependency-update` skill and follow its procedure** — the overrides in **both**
|
|
39
36
|
`pnpm-workspace.yaml` and `package.json`, and the one expected `devEngines` pnpm bump — in every run in
|
|
40
37
|
which `josh latest` actually ran; never report the pins intact without having run it.
|
|
41
38
|
|
|
42
|
-
**On `skip`,
|
|
43
|
-
|
|
39
|
+
**On `skip`, the command does nothing** and the `dependency-update` skill is not read, because
|
|
40
|
+
nothing rewrote a pin for it to check.
|
|
44
41
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
The stash before it is the branch switch's, not the update's, so it is conditional on the **tree**,
|
|
48
|
-
never on the answer.
|
|
42
|
+
**`pnpm josh ms` is not this gate's** — it runs per issue and per child either way, bringing the
|
|
43
|
+
previous merge into the tree, before the update.
|
|
49
44
|
|
|
50
45
|
## The vulnerability net is not what moved
|
|
51
46
|
|
|
@@ -8,18 +8,18 @@ point reached it — `fullrun` or `backlogrun` — and the label may be applied
|
|
|
8
8
|
- **Implementation and the verification gate run normally** — refactor, `pnpm josh gate`,
|
|
9
9
|
`/code-review`, exactly as for any other child.
|
|
10
10
|
- **Run `pnpm josh test:e2e` yourself before stopping.** With no pull request there is no CI E2E job,
|
|
11
|
-
and `pnpm josh followup` is never reached.
|
|
12
|
-
|
|
13
|
-
printed is not.
|
|
11
|
+
and `pnpm josh followup` is never reached. A printed skip is the answer for a project with no E2E
|
|
12
|
+
suite.
|
|
14
13
|
- **Nothing is committed, pushed, opened as a pull request or merged.** `pnpm josh bump`,
|
|
15
14
|
`pnpm josh git` and `pnpm josh followup` are never reached.
|
|
16
15
|
- **The working tree is left uncommitted, and nothing is stashed.**
|
|
17
|
-
- **
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
- **Mark the stop: `pnpm josh run:hold <N> --human-review-stop`, then stop the whole run.** It keeps
|
|
17
|
+
the hold, marks it as `halfrun`'s stop, and sends the `confirmation` Telegram with the resume command
|
|
18
|
+
and the lane directory — never compose one. It answers `e2e-owed` until `test:e2e` answered green on
|
|
19
|
+
this tree. The remaining children are not started — inside a `backlogrun` this is the one thing that
|
|
20
|
+
is *not* park-and-continue.
|
|
20
21
|
- **Resuming is `halfrun`'s stop exactly**: a person looks at the working tree and, if it is right,
|
|
21
|
-
carries on from the commit themselves. The stop report carries
|
|
22
|
-
Telegram.
|
|
22
|
+
carries on from the commit themselves. The stop report carries the resume command too.
|
|
23
23
|
|
|
24
24
|
**Stopping is the specification, not a failure.**
|
|
25
25
|
|
|
@@ -34,12 +34,7 @@ pnpm josh issue:state <N> --repo <owner/repo> # a child in another repository
|
|
|
34
34
|
|
|
35
35
|
**Never apply or remove it**: a mark a run can clear for itself is
|
|
36
36
|
not a mark. Everything but typing the command on an explicit instruction in the current turn is a
|
|
37
|
-
proposal, written as an Issue comment and left for the person.
|
|
38
|
-
repository, by a person:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
gh api repos/{owner}/{repo}/labels -f name=needs-human-review -f color=d93f0b -f description="Implement and verify, but stop before committing so a person can look"
|
|
42
|
-
```
|
|
37
|
+
proposal, written as an Issue comment and left for the person. `josh sync` creates the label.
|
|
43
38
|
|
|
44
39
|
**It is not `needs-decision`**: `needs-decision` withholds a run's *start*; this withholds its *end*.
|
|
45
40
|
So a `needs-human-review` issue is still offered, and a child stopped by it **goes on holding its
|
|
@@ -23,12 +23,13 @@ report. Drop an observation nobody would act on.
|
|
|
23
23
|
`pnpm josh run:event --append note "#<N> <text>"`, shown by `pnpm josh run:board`
|
|
24
24
|
(`docs/josh-commands-run.md` → "`josh run:board`").
|
|
25
25
|
|
|
26
|
-
**The filing ceilings still apply.**
|
|
26
|
+
**The filing ceilings still apply.** It counts toward the per-run cap (`prerequisite.md`); above the target
|
|
27
27
|
repository's WIP cap, close one first or do not file (`prompts/collaboration-workflow/wip-cap.md`).
|
|
28
28
|
File with `pnpm josh issue:file` (`issue-scout.md`): it lints the body, applies the classification
|
|
29
29
|
labels, scans for duplicates and runs `epic:bundle` (an `auto-ok` epic adds it to the backlog pool —
|
|
30
30
|
`backlogrun-steps.md` → "What one invocation approves"). On the second filing of the run it asks the fold
|
|
31
31
|
question and holds a `fold` (`split-assessment.md` → "The same two questions decide the filing-time fold").
|
|
32
|
+
A bug filing's origin line: `prompts/collaboration-workflow/issue-template.md` (`- 原因:`).
|
|
32
33
|
|
|
33
34
|
### The depth test — a discretionary filing cites the product work it blocked
|
|
34
35
|
|
|
@@ -40,24 +41,7 @@ question and holds a `fold` (`split-assessment.md` → "The same two questions d
|
|
|
40
41
|
| **1** | The run orchestration that executes an Issue | `fullrun` / `backlogrun`, lanes, the `epic:*` commands, the filing routes themselves |
|
|
41
42
|
| **2** | What measures a run | `josh cost` and the run-timing report |
|
|
42
43
|
|
|
43
|
-
**The depth is
|
|
44
|
-
`depth:0` / `depth:1` / `depth:2` are defined in `scripts/issue/issue-labels.ts` with no definition of
|
|
45
|
-
their own — **the table above is the single source**. **Every filing route applies one**: each route
|
|
46
|
-
of `prerequisite.md`'s table, a split child and a review branch-2 filing pass `--depth <n>` to
|
|
47
|
-
`pnpm josh issue:file`, beside any `--route`.
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
pnpm josh issue:file "<title>" --body-file <body-file> --depth 1
|
|
51
|
-
gh api repos/{owner}/{repo}/issues/<N>/labels -f 'labels[]=depth:1' # an Issue already filed
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
`issue:file` creates any missing workflow label from `DEPTH_LABELS` before the create call.
|
|
55
|
-
|
|
56
|
-
- **It is read off the subject, exactly as the table is** — not a judgement, unlike `auto-ok` and
|
|
57
|
-
`needs-human-review`; it withholds nothing.
|
|
58
|
-
- **Applied at filing, not at completion.**
|
|
59
|
-
- **An Issue carrying more than one counts as the lowest depth present.**
|
|
60
|
-
- **An `epic` takes no depth label** and is excluded from the share's denominator.
|
|
44
|
+
**The depth is read, not recorded** — no label carries it.
|
|
61
45
|
|
|
62
46
|
- **A discretionary observation at depth 1 or deeper is filed only where it can cite the depth-0 work
|
|
63
47
|
it stopped or delayed** — an Issue number or a run, never "this would slow runs down". **Cannot cite
|
|
@@ -80,22 +64,6 @@ to branch 2 of `prompts/review.md` → "Review round cap" is filed under that se
|
|
|
80
64
|
to decide something, or the path of the rule that reads it. **A measurement with no reader is not
|
|
81
65
|
added.** `route:tier-a` and `route:interrupt` carry over unchanged.
|
|
82
66
|
|
|
83
|
-
### The depth-0 share — what is counted
|
|
84
|
-
|
|
85
|
-
**The depth-0 share is the share of open Issues at depth 0.**
|
|
86
|
-
|
|
87
|
-
**The denominator is a rule, not a choice, and this is it:**
|
|
88
|
-
|
|
89
|
-
- **Counted: every open Issue that does not carry `epic`.**
|
|
90
|
-
- **`route:tier-a` and `route:interrupt` are counted like anything else.**
|
|
91
|
-
- **An Issue with no depth label is in the denominator**, counted separately as `unlabelled`.
|
|
92
|
-
- **The numerator is what is left**: open, non-epic Issues carrying `depth:0`.
|
|
93
|
-
|
|
94
|
-
**Two readings of the same backlog give the same number.**
|
|
95
|
-
|
|
96
|
-
**What the number is for is not decided here** — no `backlog:next` change and no target value until it
|
|
97
|
-
has been measured the same way more than once.
|
|
98
|
-
|
|
99
67
|
### A delegated child does not take this route
|
|
100
68
|
|
|
101
69
|
**A delegated child files `route:tier-a` and `route:interrupt` only.** Its discretionary observations
|
|
@@ -104,6 +72,6 @@ summary carries, and how long it may be"); the parent files what survives the de
|
|
|
104
72
|
run's ceiling.
|
|
105
73
|
|
|
106
74
|
**A delegated child does not append to the ledger either — the parent collapses the duplicates and
|
|
107
|
-
appends what is left.** **
|
|
75
|
+
appends what is left.** **Lines
|
|
108
76
|
its own `review:record` and `measure:rerun` write are not this route** — they go to its issue's file in
|
|
109
77
|
its lane (`observation-ledger.md` → "The ledger — where an observation that cannot cite a blockage goes").
|
|
@@ -88,7 +88,7 @@ blocked depth-0 work is filed as before.
|
|
|
88
88
|
- **On `observation:record` answering `file`, the observation is filed**, at depth 1 or deeper, with
|
|
89
89
|
no depth-0 citation (only when exactly one earlier sighting exists).
|
|
90
90
|
- **The Issue quotes the ledger's own dates — the first sighting's and this one's.**
|
|
91
|
-
- **Both ceilings still apply** (`observation-filing.md`): the
|
|
91
|
+
- **Both ceilings still apply** (`observation-filing.md`): the per-run filing cap and the WIP cap.
|
|
92
92
|
|
|
93
93
|
**A third and later sighting appends a line and files nothing more** — `pnpm josh issue:scout` finds
|
|
94
94
|
the open Issue.
|
|
@@ -17,20 +17,12 @@ the fallback.
|
|
|
17
17
|
## It applies to a dispatched lane child, and to nothing else
|
|
18
18
|
|
|
19
19
|
A person's interactive `fullrun` never relaunches itself. A dispatched child is told apart
|
|
20
|
-
**mechanically, by
|
|
20
|
+
**mechanically, by the `JOSH_LANE_CHILD` mark the dispatch sets** — never by reading its own prompt
|
|
21
|
+
(`docs/josh-commands-run.md` → "`josh run:cut`").
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`lane
|
|
25
|
-
(`scripts/lane/lane-child-marker.ts`).
|
|
26
|
-
|
|
27
|
-
- **Meaning**: "this session was launched for issue `<N>`, not typed by a person."
|
|
28
|
-
- **Lifetime**: the child process — set at launch, never written by the run itself.
|
|
29
|
-
- **Trust**: only where its value equals the lane's own issue; a leaked mark naming another issue, or
|
|
30
|
-
none, is read as a person. An interactive `fullrun` carries no mark.
|
|
31
|
-
|
|
32
|
-
The name, meaning and lifetime are documented here and nowhere else. `run:cut` itself looks for an
|
|
33
|
-
**open lane** for the issue instead (`not-a-lane` otherwise), so it is safe to issue unconditionally.
|
|
23
|
+
An interactive `fullrun` carries no mark, and every
|
|
24
|
+
guard in this file holds that boundary: **It fires for a marked child and nowhere else**. `run:cut`
|
|
25
|
+
answers `not-a-lane` outside a lane, so it is safe to issue unconditionally.
|
|
34
26
|
|
|
35
27
|
## Taking the cut
|
|
36
28
|
|
|
@@ -54,18 +46,9 @@ pnpm josh run:cut <N>
|
|
|
54
46
|
|
|
55
47
|
### The gate refuses until the cut has been taken
|
|
56
48
|
|
|
57
|
-
`pnpm josh rule:
|
|
58
|
-
the command above.
|
|
59
|
-
|
|
60
|
-
- **It fires for a marked child and nowhere else**: the working directory is `<lane root>/<issue
|
|
61
|
-
number>` **and** `JOSH_LANE_CHILD` names that issue. `run:cut` uses an open-lane lookup instead, so
|
|
62
|
-
the guard and the command need not agree byte for byte.
|
|
63
|
-
- **It fires only when the current context warrants a cut** (`cost_cli.session_verdict`, as `run:cut`).
|
|
64
|
-
- **It is silent once the cut is carried**.
|
|
65
|
-
- **It fires once per run.**
|
|
66
|
-
- **`--resume`, `--end` and `--json` do not count as taking the cut.**
|
|
67
|
-
|
|
68
|
-
Its row: `prompts/collaboration-workflow/rule-delivery.md`.
|
|
49
|
+
The `pre-gate-cut` row of `pnpm josh rule:list` **refuses `pnpm josh gate`** in a lane with no cut record carried, handing back
|
|
50
|
+
the command above — run it. When the guard fires: `docs/josh-commands-run.md` → "`josh run:cut`"; its
|
|
51
|
+
row: `prompts/collaboration-workflow/rule-delivery.md`.
|
|
69
52
|
|
|
70
53
|
## Resuming — the fresh process's entry check
|
|
71
54
|
|
|
@@ -121,7 +104,7 @@ Same `cost_verdict.per_request_cost` through `cost_cli.session_verdict` as `back
|
|
|
121
104
|
|
|
122
105
|
### It is a guard, fired at the edit that crosses the threshold
|
|
123
106
|
|
|
124
|
-
**The trigger**: `pnpm josh rule:
|
|
107
|
+
**The trigger**: the `implementation-cut` row of `pnpm josh rule:list` refuses an `Edit` / `Write` in a dispatched lane child over
|
|
125
108
|
threshold, handing back `pnpm josh run:cut --impl <N> --handoff <path>`. `cut` ends the turn; the
|
|
126
109
|
fresh process's `run:cut --resume <N>` answers `resume-impl` — **the implementation resume clears the
|
|
127
110
|
record**, so the cut may fire again. **A cut that relaunches its successor owes no Telegram** — the
|
|
@@ -146,16 +129,16 @@ turn boundary (`chain-rule.md`).
|
|
|
146
129
|
**The trigger**: a dispatched lane child about to stop for a decision (Tier B, Tier C, an upstream
|
|
147
130
|
defect) parks its own Issue first — `backlogrun-park.md` → "park and continue" — so `pnpm josh
|
|
148
131
|
run:liveness` reads it `settled`. A `needs-human-review` or `already-done` stop already carries its
|
|
149
|
-
label. `pnpm josh rule:
|
|
150
|
-
until
|
|
132
|
+
label. The `lane-park` row of `pnpm josh rule:list` refuses `pnpm josh notify --task-type confirmation` from a marked child
|
|
133
|
+
until `pnpm josh run:park` has recorded the park — **It fires once per run.** (`scripts/rules/lane-park.ts`).
|
|
151
134
|
|
|
152
135
|
**A split is not a park**: a child that promoted its Issue to an `epic` stops without
|
|
153
|
-
`needs-decision` — `backlogrun-park.md` → "Splitting a child mid-run". `pnpm josh rule:
|
|
136
|
+
`needs-decision` — `backlogrun-park.md` → "Splitting a child mid-run". The `lane-split-park` row of `pnpm josh rule:list` refuses a
|
|
154
137
|
`needs-decision` write onto that epic, on every occurrence (`scripts/rules/lane-split-park.ts`).
|
|
155
138
|
|
|
156
139
|
### The interactive ask is refused one call earlier
|
|
157
140
|
|
|
158
141
|
**The trigger**: a headless session ends the turn on an interactive ask, so the notify guard never
|
|
159
|
-
fires; `pnpm josh rule:
|
|
142
|
+
fires; the `lane-interactive-ask` row of `pnpm josh rule:list` refuses `AskUserQuestion` for a marked lane child on every occurrence — park the question instead.
|
|
160
143
|
`pnpm josh run:ending` lifts a slipped ask into the park basis (`scripts/rules/lane-interactive-ask.ts`,
|
|
161
144
|
`scripts/agent/interactive-ask.ts`).
|
|
@@ -29,7 +29,7 @@ offer hands it back once its blockers merge.
|
|
|
29
29
|
|
|
30
30
|
**A wait for the next published release is a dependency too** — never `needs-decision`. Record it
|
|
31
31
|
with `pnpm josh issue:release <M> --wait` (`<M>` blocked by the release Issue, filed when none is
|
|
32
|
-
open), then
|
|
32
|
+
open), then `pnpm josh run:pause <M> --for <the release Issue>` as for a prerequisite below; `fullrun` /
|
|
33
33
|
`halfrun` stop, `backlogrun` continues. Closing the release Issue once a person has published it hands
|
|
34
34
|
`<M>` back to `backlog:next` (`docs/josh-commands-backlog.md` → `josh issue:release`).
|
|
35
35
|
|
|
@@ -37,7 +37,7 @@ open), then stash, comment and `pnpm josh run:release <M>` as for a prerequisite
|
|
|
37
37
|
so the observation row carries no `route:` label (`observation-filing.md`):
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
pnpm josh issue:file "<title>" --body-file <body-file> --
|
|
40
|
+
pnpm josh issue:file "<title>" --body-file <body-file> --route tier-a
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
The command lints the body against `prompts/collaboration-workflow/issue-template.md`, applies the
|
|
@@ -50,24 +50,18 @@ later steps name its number. **Its duplicate scan is read exactly as it is for a
|
|
|
50
50
|
|
|
51
51
|
**Each entry point's own branch stays in that entry's file:**
|
|
52
52
|
|
|
53
|
-
- **A named epic under `backlogrun`** files without confirmation,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
prerequisite discovered mid-run"). A child outside any epic records the same relation on itself
|
|
57
|
-
directly; that branch is the same section's.
|
|
53
|
+
- **A named epic under `backlogrun`** files without confirmation, sets `<M>` — the child in hand —
|
|
54
|
+
aside with `run:pause` below, and the run **continues rather than parking it** (`backlogrun-park.md` →
|
|
55
|
+
"A prerequisite discovered mid-run").
|
|
58
56
|
- **`fullrun` / `halfrun`** file the same way without asking, insert the prerequisite into the epic
|
|
59
57
|
that already tracks the Issue or create one over both, and then **stop**, leaving the person one
|
|
60
58
|
command to type (`fullrun.md` / `halfrun.md`). Typing `fullrun` approved implementing **one** Issue;
|
|
61
59
|
a batch is a different authorization, so the stop stays.
|
|
62
60
|
|
|
63
|
-
**
|
|
61
|
+
**Once the prerequisite is filed, every entry sets `<M>` aside with `pnpm josh run:pause <M> --for <N>`**
|
|
62
|
+
— the stash, the comment naming its `stash:pop`, the blocked-by and the release; a failure is rerun as
|
|
63
|
+
is (`docs/josh-commands-run.md` → `josh run:pause`). Name the comment's pop in the Telegram too.
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
- **The Issue comment is what gets the stash popped, not the Telegram.** The run that picks the Issue up
|
|
68
|
-
reads it and pops before implementing — **by message, `pnpm josh stash:pop "<the -m message>"`, never
|
|
69
|
-
a positional `git stash pop`** (the stack is shared by every lane). Say it in the Telegram too.
|
|
70
|
-
|
|
71
|
-
**Automatic filing is capped at 10 Issues per run** at every entry point; `pnpm josh rule:guard`
|
|
72
|
-
refuses the eleventh filing (`prompts/collaboration-workflow/rule-delivery.md`). On reaching it, stop
|
|
65
|
+
**Automatic filing is capped at 10 Issues per run** at every entry point; the `filing-cap` row of
|
|
66
|
+
`pnpm josh rule:list` refuses the eleventh filing (`prompts/collaboration-workflow/rule-delivery.md`). On reaching it, stop
|
|
73
67
|
and report. `kickoff` is exempt — it never implements, so it never discovers one.
|
|
@@ -53,7 +53,7 @@ missing, say so. **A field's empty value is an observation, never a state** (`re
|
|
|
53
53
|
|
|
54
54
|
**The heartbeat is ambient, never a Telegram.** `pnpm josh run:board` is its reader, in a pane of the
|
|
55
55
|
person's own; **no session relays the stream** — name the board command once, at the first cut or when
|
|
56
|
-
asked;
|
|
56
|
+
asked; the person starts it, or the `josh: run board` task in `.vscode/tasks.json`, by hand.
|
|
57
57
|
`pnpm josh run:event --watch` stays for following the raw events one by one. `pnpm josh run:wake --list` is the one-line read for a person who types for it.
|
|
58
58
|
**A request for periodic progress is never a CronCreate job** — on screen, name `pnpm josh run:board`;
|
|
59
59
|
off-screen, start `pnpm josh run:board --every <minutes>` in the background (`docs/josh-commands-run.md`).
|
|
@@ -20,13 +20,9 @@ Where `fullrun` runs `pnpm josh followup` and merges, `prrun` does three things
|
|
|
20
20
|
review findings resolved. A failure stops the run exactly as it stops a `fullrun`.
|
|
21
21
|
2. **Mark the stop — `pnpm josh run:hold <N> --prrun-stop`.** It records the commit the pull request is
|
|
22
22
|
on in this run's own hold, the record `fullrun #<N>` adopts (its prrun resume, `working-tree-hold.md`). **The hold and `in-progress` stay**: the run is not finished until the merge's tail runs.
|
|
23
|
-
3. **
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
`pnpm josh notify --task-type confirmation --issue-url "<issue-url>" --body=$'prrun ready to
|
|
27
|
-
merge: <pr-url>\nNext: fullrun #<N>\nAfter a manual merge, without an agent: pnpm josh followup
|
|
28
|
-
"<title> #<N>"' --recommended "fullrun #<N>" --alternative "Merge by hand, then pnpm josh
|
|
29
|
-
followup"`. The stop report names the same two, in the same order.
|
|
23
|
+
3. **Stop.** The mark has already sent the `confirmation` Telegram, its resume line `Next: fullrun
|
|
24
|
+
#<N>` — never compose one. The stop report names `fullrun #<N>` (recommended) and a manual merge followed by
|
|
25
|
+
`pnpm josh followup "<title> #<N>"`, in that order.
|
|
30
26
|
|
|
31
27
|
**Invoking `prrun` is _not_ authorization to merge** — never run `pnpm josh followup` without
|
|
32
28
|
`--no-merge` in a `prrun`. After a person merges by hand, the same `pnpm josh followup "<title> #<N>"`
|
|
@@ -44,7 +44,7 @@ with `pnpm josh issue:file`, which scouts first — an **open** candidate coveri
|
|
|
44
44
|
`- 人の判断: 不要`, so `issue:file` applies the label (with the run label
|
|
45
45
|
`prompts/collaboration-workflow/issue-template.md` requires). **`backlogrun-steps.md` → "What one
|
|
46
46
|
invocation approves" is that judgement's single source.** Every brake still counts these filings: the
|
|
47
|
-
ten-per-
|
|
47
|
+
ten-per-run ceiling, the WIP cap, `--max` and the 135,000-token session budget.
|
|
48
48
|
|
|
49
49
|
**Close with `pnpm josh run:carry --retrospective --summary "<result>" --owner "$PPID"`.** It marks the
|
|
50
50
|
carry record so `run:step` prints `stop` from then on; the mark survives a session cut and is removed at
|
|
@@ -37,6 +37,18 @@ threshold that splits more is required to say why the round-1 measurement does n
|
|
|
37
37
|
files and lines, test files excluded, and answers `split` / `single` on size alone. Separability stays
|
|
38
38
|
a judgement, so its `split` is the size condition met, not a decision to divide.
|
|
39
39
|
|
|
40
|
+
## Over the guide before the gate
|
|
41
|
+
|
|
42
|
+
**Trigger: `pnpm josh main:merge` prints a `split notice`** — the branch's diff, untracked files
|
|
43
|
+
included, answers `split` on `split:assess`. Take one action before `pnpm josh run:cut <N>`
|
|
44
|
+
(`chain-rule.md` step 1) — the cut ends the turn, and the resumed run does not see the notice:
|
|
45
|
+
|
|
46
|
+
- Keep it one Issue — it must land together: record why in one Issue comment, citing the counts.
|
|
47
|
+
- Carve the rest out — the unimplemented part merges separately: `pnpm josh issue:file` it, narrow
|
|
48
|
+
this Issue's acceptance criteria to this branch, then gate.
|
|
49
|
+
|
|
50
|
+
The notice never stops the run and never creates an epic.
|
|
51
|
+
|
|
40
52
|
## What each entry point does with the answer
|
|
41
53
|
|
|
42
54
|
| Entry | Single | Two or more |
|
|
@@ -59,7 +71,7 @@ condition to evaluate.** **An entry point that applies a different condition is
|
|
|
59
71
|
is the non-closing home for the split rationale.
|
|
60
72
|
|
|
61
73
|
**Each split child is filed with the `route:split` label** —
|
|
62
|
-
`pnpm josh issue:file "<sub-title>" --body-file <body-file> --
|
|
74
|
+
`pnpm josh issue:file "<sub-title>" --body-file <body-file> --route split` — and judged for
|
|
63
75
|
`auto-ok` like any filing (`kickoff.md` → "Words typed after `new`").
|
|
64
76
|
|
|
65
77
|
## Promote, or create a new epic
|
|
@@ -32,17 +32,17 @@ that checkout from `pnpm josh doctor` **first** (a read) and claims there.
|
|
|
32
32
|
josh run:release --force` is the one spelling that removes a record this run did not write**, and the
|
|
33
33
|
`busy` message names it.
|
|
34
34
|
|
|
35
|
-
**Release what the claim recorded.** A `#N` entry releases `<N
|
|
36
|
-
Issue existed**, so it
|
|
37
|
-
|
|
38
|
-
`
|
|
35
|
+
**Release what the claim recorded.** A `#N` entry releases `<N>`. A **`new` entry claimed before its
|
|
36
|
+
Issue existed**, so once it files `<N>` it runs `pnpm josh run:hold --adopt <N>`, which re-keys the
|
|
37
|
+
record to `<N>` and applies `in-progress`; from then on every stop releases with `run:release <N>`.
|
|
38
|
+
A `new` stop before filing releases with the **bare** form.
|
|
39
39
|
|
|
40
40
|
**Releasing is the run's, not a person's memory.** `pnpm josh followup` releases on a merged run; an
|
|
41
41
|
abandoned record expires after 8 hours. **A stop that leaves the tree clean releases it explicitly** —
|
|
42
42
|
a split, a prerequisite or a third-party target ends with `pnpm josh run:release <N>` (bare for a `new`
|
|
43
|
-
entry
|
|
44
|
-
`needs-human-review` stop:
|
|
45
|
-
|
|
43
|
+
entry not yet adopted). **`halfrun`'s stop before commit keeps the hold** (`run:hold <N>
|
|
44
|
+
--halfrun-stop`), as does a `needs-human-review` stop (`run:hold <N> --human-review-stop`); each is
|
|
45
|
+
refused until `pnpm josh test:e2e` answered green on this tree, and sends its own `confirmation`. **`fullrun #<N>` of the same issue adopts a `halfrun`'s kept hold** — "The halfrun resume"
|
|
46
46
|
below. **An expired record over a tree that still has uncommitted changes does not free it** — it
|
|
47
47
|
answers `busy`; only an expired record over a clean tree is replaced.
|
|
48
48
|
|
|
@@ -54,10 +54,10 @@ run:hold` / `josh run:release`".
|
|
|
54
54
|
|
|
55
55
|
**`fullrun #<N>` or `prrun #<N>` after a `halfrun` stop resumes it instead of claiming.** The stop is
|
|
56
56
|
**recorded, never inferred**: the `halfrun` ends with `pnpm josh run:hold <N> --halfrun-stop`, marking
|
|
57
|
-
its record (
|
|
57
|
+
its record (a `halfrun new` adopted its unnumbered one at filing) — a `halfrun` still implementing or a
|
|
58
58
|
`backlogrun` child leaves the same dirty tree and is not adopted. On a marked hold for `#<N>`,
|
|
59
59
|
`run:entry` asks the session budget, adopts the hold and prints `entry #<N> — resume: halfrun`. **Skip
|
|
60
|
-
the title, the plan, the split assessment, `pnpm josh ms`, `latest:
|
|
60
|
+
the title, the plan, the split assessment, `pnpm josh ms`, `latest:if-required` and the implementation**;
|
|
61
61
|
re-read the issue (`pnpm josh issue:read <N>`), run the gate **in full** from the refactor
|
|
62
62
|
(`chain-rule.md` → "Run the review-to-merge chain"), and ship as any `fullrun` does.
|
|
63
63
|
|
package/.codex/hooks.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"hooks": [
|
|
7
7
|
{
|
|
8
8
|
"type": "command",
|
|
9
|
-
"command": "
|
|
9
|
+
"command": "project_root=\"${CLAUDE_PROJECT_DIR:-$( (unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; git rev-parse --show-toplevel 2>/dev/null) || git rev-parse --show-toplevel)}\" && cd \"$project_root\" && sh scripts/hooks/run-hook.sh audit-provision",
|
|
10
10
|
"timeout": 180
|
|
11
11
|
}
|
|
12
12
|
]
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"hooks": [
|
|
18
18
|
{
|
|
19
19
|
"type": "command",
|
|
20
|
-
"command": "
|
|
20
|
+
"command": "project_root=\"${CLAUDE_PROJECT_DIR:-$( (unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; git rev-parse --show-toplevel 2>/dev/null) || git rev-parse --show-toplevel)}\" && cd \"$project_root\" && sh scripts/hooks/run-hook.sh session-lang",
|
|
21
21
|
"timeout": 10
|
|
22
22
|
}
|
|
23
23
|
]
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"hooks": [
|
|
30
30
|
{
|
|
31
31
|
"type": "command",
|
|
32
|
-
"command": "
|
|
32
|
+
"command": "project_root=\"${CLAUDE_PROJECT_DIR:-$( (unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; git rev-parse --show-toplevel 2>/dev/null) || git rev-parse --show-toplevel)}\" && cd \"$project_root\" && sh scripts/hooks/run-hook.sh codex-hook-adapter pretool",
|
|
33
33
|
"timeout": 20
|
|
34
34
|
}
|
|
35
35
|
]
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"hooks": [
|
|
42
42
|
{
|
|
43
43
|
"type": "command",
|
|
44
|
-
"command": "
|
|
44
|
+
"command": "project_root=\"${CLAUDE_PROJECT_DIR:-$( (unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; git rev-parse --show-toplevel 2>/dev/null) || git rev-parse --show-toplevel)}\" && cd \"$project_root\" && sh scripts/hooks/run-hook.sh codex-hook-adapter posttool",
|
|
45
45
|
"timeout": 90
|
|
46
46
|
}
|
|
47
47
|
]
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"hooks": [
|
|
54
54
|
{
|
|
55
55
|
"type": "command",
|
|
56
|
-
"command": "
|
|
56
|
+
"command": "project_root=\"${CLAUDE_PROJECT_DIR:-$( (unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; git rev-parse --show-toplevel 2>/dev/null) || git rev-parse --show-toplevel)}\" && cd \"$project_root\" && sh scripts/hooks/run-hook.sh stop-guard",
|
|
57
57
|
"timeout": 20
|
|
58
58
|
}
|
|
59
59
|
]
|
|
@@ -22,10 +22,19 @@ inputs:
|
|
|
22
22
|
required: false
|
|
23
23
|
default: ''
|
|
24
24
|
|
|
25
|
+
# The exact version `'24'` resolved to on this runner (joshuafolkken/kit#4346). Runner images do not
|
|
26
|
+
# all carry the same patch release, and ESLint folds `process.version` into every cache entry, so a
|
|
27
|
+
# cache restored across two patch releases is cold; the ESLint cache key names this value.
|
|
28
|
+
outputs:
|
|
29
|
+
node-version:
|
|
30
|
+
description: The Node.js version installed, as actions/setup-node reports it (e.g. `v24.22.0`).
|
|
31
|
+
value: ${{ steps.setup-node.outputs.node-version }}
|
|
32
|
+
|
|
25
33
|
runs:
|
|
26
34
|
using: composite
|
|
27
35
|
steps:
|
|
28
36
|
- name: Setup Node.js
|
|
37
|
+
id: setup-node
|
|
29
38
|
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
|
|
30
39
|
with:
|
|
31
40
|
node-version: '24'
|
|
@@ -49,7 +49,7 @@ runs:
|
|
|
49
49
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
50
50
|
|
|
51
51
|
- name: Setup pnpm
|
|
52
|
-
uses: pnpm/setup@
|
|
52
|
+
uses: pnpm/setup@a0881977cd8ea73b1ed212236c99ca10dcc80cf4 # v3.1.1
|
|
53
53
|
with:
|
|
54
54
|
version: ${{ steps.pnpm-version.outputs.version }}
|
|
55
55
|
runtime: ${{ inputs.runtime }}
|
package/.github/dependabot.yml
CHANGED
|
@@ -8,6 +8,18 @@ updates:
|
|
|
8
8
|
- '/.github/actions/*'
|
|
9
9
|
schedule:
|
|
10
10
|
interval: 'weekly'
|
|
11
|
+
# One pull request for every minor and patch bump. Separate pull requests that touch the same
|
|
12
|
+
# workflow file leave the later merge writing workflow content its head does not hold, which
|
|
13
|
+
# `GITHUB_TOKEN` may not, so GitHub withdraws its auto-merge (joshuafolkken/kit#4148). kit's own
|
|
14
|
+
# file only: the distributed `templates/dependabot.yml` stays ungrouped, because a consumer's
|
|
15
|
+
# auto-merge holds a whole pull request that touches an upstream-managed workflow.
|
|
16
|
+
groups:
|
|
17
|
+
github-actions:
|
|
18
|
+
update-types:
|
|
19
|
+
- 'minor'
|
|
20
|
+
- 'patch'
|
|
21
|
+
cooldown:
|
|
22
|
+
default-days: 3
|
|
11
23
|
# Version updates are disabled: `josh latest` runs at the start of every fullrun / halfrun /
|
|
12
24
|
# queue and already bumps npm dependencies to latest, so Dependabot's weekly PRs only duplicate
|
|
13
25
|
# it and were being closed unmerged after consuming a full CI run. `open-pull-requests-limit: 0`
|
|
@@ -21,3 +33,7 @@ updates:
|
|
|
21
33
|
schedule:
|
|
22
34
|
interval: 'weekly'
|
|
23
35
|
open-pull-requests-limit: 0
|
|
36
|
+
cooldown:
|
|
37
|
+
default-days: 3
|
|
38
|
+
exclude:
|
|
39
|
+
- 'vite'
|
package/.github/release.yml
CHANGED