@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
package/eslint/base.js
CHANGED
|
@@ -34,7 +34,7 @@ import { unicorn_rules, unicorn_test_rules } from './rules/unicorn.js'
|
|
|
34
34
|
const FILE_PATTERNS = {
|
|
35
35
|
d_ts: ['**/*.d.ts'],
|
|
36
36
|
typescript: ['**/*.ts', '**/*.tsx'],
|
|
37
|
-
scripts: ['scripts/**/*.ts', 'scripts/**/*.js'],
|
|
37
|
+
scripts: ['scripts/**/*.ts', 'scripts/**/*.js', 'tools/**/*.ts', 'tools/**/*.js'],
|
|
38
38
|
// joshuafolkken/kit#1414: `**/*.spec.ts` is deliberately absent. The same config bans that name
|
|
39
39
|
// outright, so handing it the test relaxation (`max-lines-per-function` 35 and the rest) is the
|
|
40
40
|
// config contradicting itself, and it is what makes `*.spec.ts` read as supported. A banned file
|
package/lefthook/base.yml
CHANGED
|
@@ -5,9 +5,11 @@ pre-commit:
|
|
|
5
5
|
skip: git diff --cached --quiet
|
|
6
6
|
run: pnpm josh prevent-main-commit
|
|
7
7
|
|
|
8
|
+
# cspell, prettier and eslint go through `josh pre-commit-lint`, which owns their flags so each
|
|
9
|
+
# cache location comes from the constant its ignore rules are asserted against (kit#3948).
|
|
8
10
|
cspell:
|
|
9
11
|
glob: '*.{ts,tsx,js,jsx,md,mdx,html,css,scss,yml,yaml,json,properties}'
|
|
10
|
-
run: pnpm
|
|
12
|
+
run: pnpm josh pre-commit-lint cspell {staged_files}
|
|
11
13
|
|
|
12
14
|
# Scans only staged files, so a secret is caught before it ever enters history —
|
|
13
15
|
# GitHub push protection and the CodeRabbit gitleaks pass both fire after the fact,
|
|
@@ -22,11 +24,11 @@ pre-commit:
|
|
|
22
24
|
|
|
23
25
|
prettier:
|
|
24
26
|
glob: '*.{js,jsx,ts,tsx,mjs,cjs,html,css,scss,md,mdx,json,jsonc,yaml,yml}'
|
|
25
|
-
run: pnpm
|
|
27
|
+
run: pnpm josh pre-commit-lint prettier {staged_files}
|
|
26
28
|
|
|
27
29
|
eslint:
|
|
28
30
|
glob: '*.{js,jsx,ts,tsx,mjs,cjs}'
|
|
29
|
-
run: pnpm
|
|
31
|
+
run: pnpm josh pre-commit-lint eslint {staged_files}
|
|
30
32
|
|
|
31
33
|
# Routed through `josh pre-commit-type-check` rather than a bare `pnpm exec tsc --noEmit` so the
|
|
32
34
|
# hook can read the record `pnpm josh gate` leaves behind (kit#1381) — the same reader the
|
|
@@ -116,7 +118,9 @@ pre-push:
|
|
|
116
118
|
# of every changed file it passed on and the commit that map is a diff against; where that record
|
|
117
119
|
# covers the tree this push carries — and the working tree is clean, so the tree and the commit
|
|
118
120
|
# are the same thing — the suite is not run again. Measured: 15.9s of a 40s `josh git -y`, spent
|
|
119
|
-
# 40 seconds after the same tree went green.
|
|
121
|
+
# 40 seconds after the same tree went green. Since kit#4065 the gate's unit check runs only the
|
|
122
|
+
# tests the change can reach, so such a push runs no local whole suite at all; CI's sharded whole
|
|
123
|
+
# suite is what covers the rest before the merge. Anything else runs the whole suite exactly as before,
|
|
120
124
|
# and `JOSH_PRE_PUSH_FORCE=1 git push` runs it regardless. A push whose last gate ran before
|
|
121
125
|
# `josh bump` rewrote package.json is one of those "anything else" cases, not a regression.
|
|
122
126
|
test-unit:
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.1784.0",
|
|
3
3
|
"name": "@joshuafolkken/kit",
|
|
4
4
|
"description": "Development toolkit for AI-assisted projects: formatting, AI assistant rules and a Git/GitHub Issue workflow for any repository, plus lint, type check, tests and hooks for Node projects",
|
|
5
5
|
"keywords": [
|
|
@@ -57,61 +57,23 @@
|
|
|
57
57
|
".coderabbit.yaml",
|
|
58
58
|
".gitattributes",
|
|
59
59
|
".mcp.json",
|
|
60
|
-
".ncurc.json",
|
|
61
60
|
".prettierignore",
|
|
62
61
|
"pnpm-workspace.yaml",
|
|
63
62
|
".pnpmfile.mjs",
|
|
64
63
|
"tsconfig.sonar.json",
|
|
65
64
|
"playwright.config.ts",
|
|
66
65
|
"!**/*.test.ts",
|
|
67
|
-
"!scripts/gh/gh-subcommand-guard.ts",
|
|
68
66
|
"!**/*.spec.ts",
|
|
69
67
|
"!**/*-fixture*.ts",
|
|
70
68
|
"!**/__snapshots__",
|
|
71
69
|
"!**/*.golden.txt",
|
|
72
|
-
"!
|
|
73
|
-
"!
|
|
74
|
-
"!scripts/cost",
|
|
75
|
-
"!scripts/retrospective",
|
|
76
|
-
"!scripts/dogfood",
|
|
77
|
-
"!scripts/metrics",
|
|
78
|
-
"!scripts/test/classify-isolation.ts",
|
|
79
|
-
"!scripts/test/hanging-execa.ts",
|
|
80
|
-
"!scripts/test/http-fault-injection.ts",
|
|
81
|
-
"!scripts/test/josh-harness*.ts",
|
|
82
|
-
"!scripts/test/pure-files.ts",
|
|
83
|
-
"!scripts/test/test-machine-guard.ts",
|
|
84
|
-
"!scripts/test/test-network-guard.ts",
|
|
85
|
-
"!scripts/test/test-repository-guard.ts",
|
|
86
|
-
"!scripts/test/test-state-guard.ts",
|
|
87
|
-
"!scripts/test/test-stdout-guard.ts",
|
|
88
|
-
"!scripts/test/test-telegram-guard.ts",
|
|
89
|
-
"!scripts/test/unit-guard-environment.ts",
|
|
90
|
-
"!scripts/test/unit-projects.ts",
|
|
91
|
-
"!scripts/test/untested-sources.ts",
|
|
92
|
-
"!scripts/test/vitest-include-globs.ts",
|
|
93
|
-
"!scripts/build/shim-shell.ts",
|
|
94
|
-
"!scripts/claude/skill-meta.ts",
|
|
95
|
-
"!scripts/exports/member-usage.ts",
|
|
96
|
-
"!scripts/exports/namespace-escape.ts",
|
|
97
|
-
"!scripts/exports/namespace-members.ts",
|
|
98
|
-
"!scripts/exports/unused-members.ts",
|
|
99
|
-
"!scripts/document/generate-catalog.ts",
|
|
100
|
-
"!scripts/document/issue-citation-budget.ts",
|
|
101
|
-
"!scripts/document/retired-phrases.ts",
|
|
102
|
-
"!scripts/document/review-agent-type.ts",
|
|
103
|
-
"!scripts/document/single-source.ts",
|
|
104
|
-
"!scripts/hooks/hook-bundle-ready.ts",
|
|
105
|
-
"!scripts/hooks/prompt-hooks.ts",
|
|
106
|
-
"!scripts/josh/josh-script-reader.ts",
|
|
107
|
-
"!scripts/package/engine-range.ts",
|
|
108
|
-
"!scripts/package/production-dependency-graph.ts",
|
|
109
|
-
"!scripts/rules/delivered-rules-harness.ts",
|
|
110
|
-
"!scripts/rules/top-level-scripts-guard.ts"
|
|
70
|
+
"!dist/hooks/.inputs-verified.json*",
|
|
71
|
+
"!dist/.hooks-staging-*"
|
|
111
72
|
],
|
|
112
73
|
"imports": {
|
|
113
74
|
"#eslint/*": "./eslint/*",
|
|
114
75
|
"#scripts/*": "./scripts/*.ts",
|
|
76
|
+
"#tools/*": "./tools/*.ts",
|
|
115
77
|
"#playwright-config": "./playwright.config.ts",
|
|
116
78
|
"#ports": "./ports/index.js",
|
|
117
79
|
"#ports/*": "./ports/*.ts"
|
|
@@ -247,14 +209,14 @@
|
|
|
247
209
|
"@eslint/compat": "^2.1.1",
|
|
248
210
|
"@eslint/js": "^10.0.1",
|
|
249
211
|
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
|
|
250
|
-
"@playwright/test": "^1.64.
|
|
212
|
+
"@playwright/test": "^1.64.1",
|
|
251
213
|
"@secretlint/secretlint-rule-preset-recommend": "^13.0.7",
|
|
252
214
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
253
215
|
"@types/node": "^26.6.5",
|
|
254
216
|
"@types/semver": "^7.8.0",
|
|
255
|
-
"cspell": "^10.
|
|
217
|
+
"cspell": "^10.4.0",
|
|
256
218
|
"esbuild": "^0.28.2",
|
|
257
|
-
"eslint": "^10.
|
|
219
|
+
"eslint": "^10.13.0",
|
|
258
220
|
"eslint-config-prettier": "^10.1.8",
|
|
259
221
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
260
222
|
"eslint-plugin-import-x": "^4.17.1",
|
|
@@ -262,35 +224,37 @@
|
|
|
262
224
|
"eslint-plugin-sonarjs": "^4.2.2",
|
|
263
225
|
"eslint-plugin-unicorn": "^78.0.0",
|
|
264
226
|
"eslint_d": "^15.0.3",
|
|
227
|
+
"fast-check": "^4.10.2",
|
|
265
228
|
"globals": "^17.13.0",
|
|
266
|
-
"lefthook": "^2.2.
|
|
229
|
+
"lefthook": "^2.2.2",
|
|
267
230
|
"prettier": "^3.9.10",
|
|
268
231
|
"prettier-plugin-svelte": "^4.1.1",
|
|
269
232
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
270
|
-
"rollup": "^4.64.
|
|
233
|
+
"rollup": "^4.64.7",
|
|
271
234
|
"rollup-plugin-dts": "^6.5.1",
|
|
272
235
|
"secretlint": "^13.0.7",
|
|
273
236
|
"typescript": "^6.0.3",
|
|
274
|
-
"typescript-eslint": "^8.71.
|
|
275
|
-
"vitest": "^5.0.
|
|
237
|
+
"typescript-eslint": "^8.71.2",
|
|
238
|
+
"vitest": "^5.0.5"
|
|
276
239
|
},
|
|
277
240
|
"dependencies": {
|
|
278
241
|
"cli-spinners": "^3.4.0",
|
|
279
242
|
"csv-parse": "^7.0.3",
|
|
280
|
-
"execa": "^10.1.
|
|
281
|
-
"
|
|
243
|
+
"execa": "^10.1.1",
|
|
244
|
+
"flatted": "^3.4.4",
|
|
245
|
+
"js-yaml": "^5.5.0",
|
|
282
246
|
"jsonc-parser": "^3.3.1",
|
|
283
247
|
"ora": "^9.4.1",
|
|
284
248
|
"semver": "^7.8.5",
|
|
285
249
|
"string-width": "^8.3.0",
|
|
286
250
|
"terminal-link": "^5.0.0",
|
|
287
251
|
"tsx": "^4.23.15",
|
|
288
|
-
"zod": "^4.6.
|
|
252
|
+
"zod": "^4.6.7"
|
|
289
253
|
},
|
|
290
254
|
"devEngines": {
|
|
291
255
|
"packageManager": {
|
|
292
256
|
"name": "pnpm",
|
|
293
|
-
"version": "12.
|
|
257
|
+
"version": "12.14.0+sha512.c18ba6d87993d3d164cb5e8948f32b2c06ee854487e06cd8d86781342fb3e5bb4634367034711e86802baa9c37bea906ce1929ad08d70884c97d801df13389a6",
|
|
294
258
|
"onFail": "download"
|
|
295
259
|
}
|
|
296
260
|
},
|
package/pnpm-workspace.yaml
CHANGED
|
@@ -8,8 +8,10 @@ allowBuilds:
|
|
|
8
8
|
'@joshuafolkken/kit': false # project postinstall handles lefthook install
|
|
9
9
|
|
|
10
10
|
# pnpm 12 reads these settings from this file only; the same lines in .npmrc are ignored (kit #3267).
|
|
11
|
-
# A release must be
|
|
12
|
-
|
|
11
|
+
# A release must be three days old before pnpm resolves it, and an unsatisfied `engines` fails the
|
|
12
|
+
# install. `josh init` / `josh sync` mirror the window to `.aikido` and to Dependabot's `cooldown`
|
|
13
|
+
# (kit #4023): an upstream hijack can take days to come to light, so one day is not enough.
|
|
14
|
+
minimumReleaseAge: 4320
|
|
13
15
|
engineStrict: true
|
|
14
16
|
|
|
15
17
|
# Skip the install-time supply-chain re-verification of the already-committed, reviewed lockfile.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# コーディング指針 — lint では表せない書き方
|
|
2
2
|
|
|
3
|
-
関数の構文・品質上限・型安全・早期 return・マジックナンバーは `CLAUDE.md` → "Critical Conventions (non-standard — always apply)"、lint・型検査の実行は `CLAUDE.md` → "Code Change Rules"(`pnpm josh gate`、実装中は `pnpm josh lint:related` / `pnpm josh test:related`)に従う。ここにない命名の細目(クラスのプロパティ・メソッドの `snake_case` など)は `eslint/rules/naming-convention.js`
|
|
3
|
+
関数の構文・品質上限・型安全・早期 return・マジックナンバーは `CLAUDE.md` → "Critical Conventions (non-standard — always apply)"、lint・型検査の実行は `CLAUDE.md` → "Code Change Rules"(`pnpm josh gate`、実装中は `pnpm josh lint:related` / `pnpm josh test:related`)に従う。ここにない命名の細目(クラスのプロパティ・メソッドの `snake_case` など)は `eslint/rules/naming-convention.js` が持つ。`function` 構文と早期 return の 1 行形式は lint が検査する。
|
|
4
4
|
|
|
5
5
|
## Conventions
|
|
6
6
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
## ファイル編集はコマンド本文に本文を載せない
|
|
2
2
|
|
|
3
|
-
`
|
|
4
|
-
|
|
5
|
-
`pnpm josh rule:guard`(file-body の行)が、既存ファイルを書き戻すヒアドキュメント・書き込むインタプリタ heredoc / `node -e`・書き込むスクリプトを作るヒアドキュメント・`perl -0pi -e` を拒否する。ガードに見えない Edit / Write の全文書き直しと `sed -i` は以下に従う。
|
|
3
|
+
`pnpm josh rule:list` の `file-body` 行が、既存ファイルを書き戻すヒアドキュメント・書き込むインタプリタ heredoc / `node -e`・書き込むスクリプトを作るヒアドキュメント・`perl -0pi -e` を拒否する。ガードに見えない Edit / Write の全文書き直しと `sed -i` は以下に従う。
|
|
6
4
|
|
|
7
5
|
### 何を禁じているか
|
|
8
6
|
|
|
@@ -32,8 +30,6 @@ PY
|
|
|
32
30
|
- ファイル全体の作り直し — 変更後の本文が元とほとんど共有しない場合
|
|
33
31
|
- 部分編集のほうが大きくなる場合 — `old_string` / `new_string` の合計が全文を超えるとき(このときも Write で書く)
|
|
34
32
|
|
|
35
|
-
実測は `docs/maintainers/file-edits-rationale.md` → "Measured cost of whole-file rewrites"(joshuafolkken/kit#1260)。
|
|
36
|
-
|
|
37
33
|
### `sed -i` を使う前に満たす 4 条件
|
|
38
34
|
|
|
39
35
|
`sed` は一致した全行を書き換え、一致 0 件でも黙って成功する。使う前に次を満たす。
|
|
@@ -54,7 +50,3 @@ PY
|
|
|
54
50
|
| `cat > new-file <<'EOF'`(新規、長文なら Write) | 可 |
|
|
55
51
|
| `cat > edit.py <<'EOF'`(書き込むスクリプト) | 不可 |
|
|
56
52
|
| 読み取り(`cat` / `sed -n` / `grep`) | 可 |
|
|
57
|
-
|
|
58
|
-
### なぜコストが二重になるか
|
|
59
|
-
|
|
60
|
-
書き戻す形は本文がコマンドとファイルの両方に載り、コマンドは以降の全リクエストで読み直される。内訳は `docs/maintainers/file-edits-rationale.md` → "Measured breakdown of command text"、常駐の根拠は `docs/maintainers/file-edits-rationale.md` → "Why it is resident"、固定内容は `docs/maintainers/file-edits-rationale.md` → "Marker tests"。
|
|
@@ -23,8 +23,7 @@
|
|
|
23
23
|
読み手がそのまま打つ書き方
|
|
24
24
|
- 引用の形(そのままでよい)— 「`gh issue create` は使わない」のような禁止の引用や、CLI の対応状況の記録
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
(`docs/maintainers/gh-rest-rationale.md` → "Why the document guard scans fences only")。
|
|
26
|
+
文書ガードはフェンス付きコードブロックだけを走査するので、散文は書き手がこの区別で守る。
|
|
28
27
|
|
|
29
28
|
書き換えるときは先に `pnpm josh` のコマンドで置き換えられないかを見る(例: `gh issue view` ではなく
|
|
30
29
|
`pnpm josh issue:state <N>`)。
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
## セッション向け出力で Issue はリンク+セッション言語の短い要約で参照する(joshuafolkken/kit#1758)
|
|
4
4
|
|
|
5
|
-
理由は `docs/maintainers/issue-citation-rationale.md` → "Why the rule exists"、発火点の常駐理由は `docs/maintainers/issue-citation-rationale.md` → "Why the trigger is resident in CLAUDE.md"。
|
|
6
|
-
|
|
7
5
|
**規則**: セッション向け出力で Issue を指すときは、次の 2 つを必ず添える(対応前の「これから走らせる」「待機中」「対象外」の言及も含む)。
|
|
8
6
|
|
|
9
7
|
1. 番号にチケットへの markdown リンク
|
|
@@ -11,7 +9,7 @@
|
|
|
11
9
|
|
|
12
10
|
- `[#<N>](https://github.com/<owner>/<repo>/issues/<N>) — <その Issue が何をするものかの短い要約>`
|
|
13
11
|
|
|
14
|
-
**この引用行は `pnpm josh issue:cite <N> [<N> ...]` が出す。** 複数 Issue は 1 呼び出しにまとめ、他リポジトリは `--repo <owner/repo>` か `owner/repo#N`
|
|
12
|
+
**この引用行は `pnpm josh issue:cite <N> [<N> ...]` が出す。** 複数 Issue は 1 呼び出しにまとめ、他リポジトリは `--repo <owner/repo>` か `owner/repo#N` 表記(詳細は [docs/josh-commands.md](https://github.com/joshuafolkken/kit/blob/main/docs/josh-commands.md) の `josh issue:cite`)。タイトルは必要ならセッション言語に言い換える。素の `#N` の行(コミットメッセージ・PR 本文・イベント行・Telegram 本文)を写すときは引用形に直す。
|
|
15
13
|
|
|
16
14
|
### 適用範囲
|
|
17
15
|
|
|
@@ -25,4 +23,4 @@
|
|
|
25
23
|
|
|
26
24
|
### 停止時の担保(joshuafolkken/kit#2247)
|
|
27
25
|
|
|
28
|
-
`
|
|
26
|
+
裸の `#N` は `pnpm josh stop:guard` が引用行にする。差し戻されたら、その実行形で引用し直す([docs/josh-commands.md](https://github.com/joshuafolkken/kit/blob/main/docs/josh-commands.md) の `josh stop:guard`)。
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
## Step 1: Issue 作成テンプレ
|
|
2
2
|
|
|
3
|
-
タイトルは簡潔で明瞭な英語にする(「出力の言語(`JOSH_SESSION_LANG`)」の例外)。日本語や改善できるタイトルは実装開始前に `
|
|
3
|
+
タイトルは簡潔で明瞭な英語にする(「出力の言語(`JOSH_SESSION_LANG`)」の例外)。日本語や改善できるタイトルは実装開始前に `pnpm josh issue:plan <N> --body-file <path> --title "<title>"` で計画と一緒に書き換える。本文は次のテンプレートの節をすべて含める:
|
|
4
4
|
|
|
5
5
|
````md
|
|
6
6
|
## 背景
|
|
7
7
|
|
|
8
8
|
<不具合なら `- 種別: 不具合`、そうでなければ `- 種別: 非不具合` を宣言する>
|
|
9
|
+
<不具合なら `- 原因: #<PR>`、追えなければ `- 原因: 不明(<理由>)` を宣言する>
|
|
9
10
|
<人の判断が要らなければ `- 人の判断: 不要`、要るなら `- 人の判断: 要(<方針の判断 / 外部アカウント / 目視確認>)` を宣言する>
|
|
11
|
+
<任意。`- 優先度: 緊急(条件 <1-3> / 短縮 <値>)`、`- 優先度: 高(<根拠>)`、`- 優先度: 通常` のどれか。無ければ通常>
|
|
10
12
|
|
|
11
13
|
<なぜ必要か>
|
|
12
14
|
|
|
@@ -43,6 +45,16 @@
|
|
|
43
45
|
<実際の出力>
|
|
44
46
|
```
|
|
45
47
|
|
|
48
|
+
## 期待効果
|
|
49
|
+
|
|
50
|
+
<`- 目的: 時間短縮` のみ。出典はコマンドと値>
|
|
51
|
+
|
|
52
|
+
- 効く率: <値>
|
|
53
|
+
- 1 回あたりの得: <値>
|
|
54
|
+
- 外れたときの損: <値>
|
|
55
|
+
- 出典: <`pnpm josh lane:stats` → 値>
|
|
56
|
+
- 1 マージあたりの短縮: <分>(レーン中央値 <分> の <%>)
|
|
57
|
+
|
|
46
58
|
## Origin
|
|
47
59
|
|
|
48
60
|
<別リポジトリのセッションから起票した場合のみ。起票元 Issue を `owner/repo#N` 形式で書く。自リポジトリ発の Issue では節ごと省略する>
|
|
@@ -50,16 +62,32 @@
|
|
|
50
62
|
|
|
51
63
|
### `## 背景` 直下の宣言と分類ラベル
|
|
52
64
|
|
|
53
|
-
起票は `pnpm josh issue:file "<title>" --body-file
|
|
54
|
-
|
|
55
|
-
| 宣言
|
|
56
|
-
|
|
|
57
|
-
| `- 種別: 不具合`
|
|
58
|
-
| `- 目的: 機能追加`
|
|
59
|
-
| `- 目的: 機能改善`
|
|
60
|
-
| `-
|
|
61
|
-
| `-
|
|
62
|
-
| `-
|
|
65
|
+
起票は `pnpm josh issue:file "<title>" --body-file <本文ファイル>` で行い、本文の検査(`pnpm josh issue:lint <path>` と同じ)と下表のラベル付与はコマンドが行う。**宣言は起票者が選ぶ。** `- 人の判断:` の行は必須で、`issue:file` が検査し `auto-ok` の判定に使う(`scripts/issue/issue-auto-ok.ts`、`docs/how-to/run-backlog.md`)。`不要` を宣言する起票には `--label run:lane`(kit 自身の検証が `main` で毎回決まって誤った答えを出す不具合なら `run:solo`。時々出る誤判定は `run:lane` と `priority:critical`)も付ける — 無ければ `issue:file` が拒否する。
|
|
66
|
+
|
|
67
|
+
| 宣言 | 付くラベル | 選ぶ基準 |
|
|
68
|
+
| --------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------- |
|
|
69
|
+
| `- 種別: 不具合` | `bug` | 報告された症状を直す(無ければ `- 種別: 非不具合`) |
|
|
70
|
+
| `- 目的: 機能追加` | `enhancement` | 新しい機能。修正・文書・依存更新・保守には書かない |
|
|
71
|
+
| `- 目的: 機能改善` | `enhancement` | 既存機能の改善。目的が曖昧なら受け入れ条件を具体化してから |
|
|
72
|
+
| `- 目的: 時間短縮` | `enhancement` | 所要時間を短くする。`## 期待効果` の 4 行が必須 |
|
|
73
|
+
| `- 互換性: 破壊的変更` | `breaking-change` | 契約を変える。移行措置があっても書き、廃止対象と影響を書く |
|
|
74
|
+
| `- 種別: 振る舞い変更` | なし | AI の振る舞いを変える。下の 3 見出しが必須 |
|
|
75
|
+
| `- 人の判断: 不要` | `auto-ok`(除外ラベルが無ければ) | 方針の判断・外部アカウント・目視確認のどれも要らない |
|
|
76
|
+
| `- 実施可能条件: #<PR> のマージ後 <K> マージ` | `not-before`(待つ間) | 追跡計測。元の PR のマージ後に lane ledger が K 件のマージを記録するまで着手しない |
|
|
77
|
+
| `- 実施可能日: <UTC>` | `not-before`(待つ間) | 外部の期限など暦そのものに意味がある待ち(`YYYY-MM-DDTHH:MMZ`)。追跡計測には使わない |
|
|
78
|
+
| `- 優先度: 緊急(…)` | `priority:critical` | 下の A か B。条件番号か短縮値を括弧に書く |
|
|
79
|
+
| `- 優先度: 高(…)` | `priority:high` | 下の C・D・E のどれか。根拠を括弧に書く |
|
|
80
|
+
| `- 優先度: 通常` | なし | どれにも当たらない(宣言が無いときも同じ) |
|
|
81
|
+
|
|
82
|
+
優先度の基準(`scripts/issue/issue-priority.ts`)。`kickoff new critical` / `high` と打った優先度があれば本文は判定しない:
|
|
83
|
+
|
|
84
|
+
- A. 割り込み起票の 3 条件のどれか(`wip-cap.md` →「3 条件 — 該当するかは判断ではない」)
|
|
85
|
+
- B. 1 マージあたりの短縮がレーン中央値の 10% 以上
|
|
86
|
+
- C. 同じく 3% 以上 10% 未満
|
|
87
|
+
- D. 人が示した期限や方針がある
|
|
88
|
+
- E. ほかの open Issue 2 件以上の前提(blocked-by)になっている
|
|
89
|
+
- 短縮は `効く率 × 1 回あたりの得 × 1 マージあたりの回数`、中央値は `pnpm josh lane:stats` の `lane median` 列。`- 目的: 時間短縮` の Issue は `- 1 マージあたりの短縮:` 行に % を書く。`issue:file` は行が無いか % が無ければ拒否し、その % から下限(B なら緊急、C なら高)を出して、それより低い宣言も拒否する
|
|
90
|
+
- 根拠の無い `緊急` / `高` も `issue:file` が拒否する
|
|
63
91
|
|
|
64
92
|
- **持ち主の意図と違う動きは、コード・コメント・テストに書かれた設計どおりでも `- 種別: 不具合` とする。** 例: コメントとテストに固定されたまま意図より広く働く自動付与、文書だけでも意図と違う分類を生む基準
|
|
65
93
|
- `- 種別: 不具合` の回帰テストは、利用者が症状を見たのと同じ粒度で書く。修正前のツリーでも緑になるテストは `pnpm josh git -y` が拒否する(joshuafolkken/kit#2448)
|
|
@@ -90,9 +118,8 @@
|
|
|
90
118
|
|
|
91
119
|
`josh` が使えない環境での手作業手順:
|
|
92
120
|
|
|
93
|
-
1. 子 Issue
|
|
94
|
-
2.
|
|
95
|
-
3. epic を作り、`id` ではなく **number** を控える: `gh api repos/{owner}/{repo}/issues -f title="<epic-title>" -f 'labels[]=epic' -F body=@<body-file> --jq .number`。本文は次の形にする(順序がなければ `Dependencies` に `None — the children are independent; any execution order works.` と書く):
|
|
121
|
+
1. 子 Issue をすべて起票し、番号を控える。`epic` ラベルは `josh sync` が用意する。
|
|
122
|
+
2. epic を作り、`id` ではなく **number** を控える: `gh api repos/{owner}/{repo}/issues -f title="<epic-title>" -f 'labels[]=epic' -F body=@<body-file> --jq .number`。本文は次の形にする(順序がなければ `Dependencies` に `None — the children are independent; any execution order works.` と書く):
|
|
96
123
|
|
|
97
124
|
```md
|
|
98
125
|
## Split rationale
|
|
@@ -113,6 +140,4 @@
|
|
|
113
140
|
- [ ] #102 <title>
|
|
114
141
|
```
|
|
115
142
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
各手順の理由は kit の `docs/maintainers/epic-commands-rationale.md` →「Creating an epic by hand」。
|
|
143
|
+
3. 順序があるときだけ、別ステップで依存を足す(Issue 番号ではなく database id を渡す。失敗しても止めない): `gh api repos/{owner}/{repo}/issues/<N2>/dependencies/blocked_by -F issue_id="$(gh api repos/{owner}/{repo}/issues/<N1> --jq .id)"`
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Lane session instructions
|
|
2
|
+
|
|
3
|
+
headless のレーン子とレビューセッションは、`CLAUDE.md` を読み込まずにこの文書を起動引数で受け取る(`scripts/agent/lane-instructions.ts`)。`include` 行は起動時に `CLAUDE.md` の節・項目へ置き換わるので、規則の単一ソースは `CLAUDE.md` のまま。
|
|
4
|
+
|
|
5
|
+
- 起動プロンプトがそのまま明示の起動。応答する人はいないので、確認は求めない。
|
|
6
|
+
- `CLAUDE.md` を開き直さない。ここに無い規則は、対話セッションでしか効かない。
|
|
7
|
+
- 下の `pnpm josh gate` は、レーン子では `josh ship` が回す(`.claude/skills/workflow-commands/chain-rule.md` → "Run the review-to-merge chain" step 0)。
|
|
8
|
+
|
|
9
|
+
## Communication
|
|
10
|
+
|
|
11
|
+
<!-- include: CLAUDE.md → "Fix root causes, not symptoms." -->
|
|
12
|
+
<!-- include: CLAUDE.md → "Cross-package problems" -->
|
|
13
|
+
<!-- include: CLAUDE.md → "Third-party repositories are Tier C." -->
|
|
14
|
+
<!-- include: CLAUDE.md → "No clones" -->
|
|
15
|
+
<!-- include: CLAUDE.md → "Design for elegance and simplicity first." -->
|
|
16
|
+
<!-- include: CLAUDE.md → "Write concise prose" -->
|
|
17
|
+
<!-- include: CLAUDE.md → "Route distributed-doc / config changes upstream to kit." -->
|
|
18
|
+
<!-- include: CLAUDE.md → "Latest-first" -->
|
|
19
|
+
<!-- include: CLAUDE.md → "Output language follows" -->
|
|
20
|
+
<!-- include: CLAUDE.md → "Hook-delivered rules" -->
|
|
21
|
+
|
|
22
|
+
<!-- include: CLAUDE.md → "Decision autonomy" -->
|
|
23
|
+
|
|
24
|
+
<!-- include: CLAUDE.md → "Critical Conventions" -->
|
|
25
|
+
|
|
26
|
+
<!-- include: CLAUDE.md → "Package-First Development" -->
|
|
27
|
+
|
|
28
|
+
<!-- include: CLAUDE.md → "Code Change Rules" -->
|
|
29
|
+
|
|
30
|
+
<!-- include: CLAUDE.md → "Completion gate" -->
|
|
31
|
+
|
|
32
|
+
<!-- include: CLAUDE.md → "Pre-commit Self-Review" -->
|
|
33
|
+
|
|
34
|
+
<!-- include: CLAUDE.md → "Git Rules" -->
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# 所要時間は記録から測る
|
|
2
|
+
|
|
3
|
+
**CI と gate の所要時間は記録から読む。計測のために全ツリーのツールを手元で再実行しない。**
|
|
4
|
+
|
|
5
|
+
再実行はコア予算の外で走り、並走する lane と重なる。`timed-rerun` 行(`rule-delivery.md`)が配送する。
|
|
6
|
+
|
|
7
|
+
## 記録の読み方
|
|
8
|
+
|
|
9
|
+
- CI のジョブとステップ: Actions の記録を読む。
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
gh api --method GET "repos/<owner>/<repo>/actions/runs?branch=<branch>&per_page=5" --jq '.workflow_runs[] | [.id, .name, .conclusion, .run_started_at, .updated_at] | @tsv'
|
|
13
|
+
gh api --method GET "repos/<owner>/<repo>/actions/runs/<run_id>/jobs?per_page=100" --jq '.jobs[] | [.name, .started_at, .completed_at] | @tsv'
|
|
14
|
+
gh api --method GET "repos/<owner>/<repo>/actions/runs/<run_id>/jobs?per_page=100" --jq '.jobs[] | select(.name == "<job>") | .steps[] | [.name, .started_at, .completed_at] | @tsv'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- 手元の gate とチェックごとの所要時間: `pnpm josh lane:stats --period <days>`(gate の記録、`docs/josh-commands-run.md`)。
|
|
18
|
+
|
|
19
|
+
## 効果を測る後続 Issue
|
|
20
|
+
|
|
21
|
+
PR の効果を測る後続 Issue を起票するとき:
|
|
22
|
+
|
|
23
|
+
- 開始条件は日数でなく標本数で書く: `## 背景` に `- 実施可能条件: #<PR> のマージ後 <K> マージ`(`issue-template.md`)。`#<PR>` は元の PR の番号で、Issue の番号は `issue:file` が refuse する。
|
|
24
|
+
- K は測る値の種類で決める:
|
|
25
|
+
- 事象の回数の率(停止・再利用など): 変更前の率で 10 件以上見込める最小のマージ数(K ≥ 10 ÷ 変更前の率)。変更前の標本数を上限の目安にする。
|
|
26
|
+
- 連続値の平均・差(所要時間など): 5〜10。
|
|
27
|
+
- 最大値・裾: 変更前の標本数と同程度。
|
|
28
|
+
- 受け入れ条件の集計は固定日数でなく `pnpm josh lane:stats --period <days>` とし、`<days>` は元 PR のマージからの経過日数(小数可)にする。
|
|
29
|
+
|
|
30
|
+
計測を記録し終えた → `pnpm josh issue:measured <N> --evidence-file <path>`。`.claude/skills/workflow-commands/issue-comments.md` →「A measurement-only Issue」。
|
|
31
|
+
|
|
32
|
+
## 手元で再実行してよいとき
|
|
33
|
+
|
|
34
|
+
記録で答えられない問い(記録の無い変更前後の比較など)に限る。
|
|
35
|
+
|
|
36
|
+
- 1 回だけ実行する。lane 子は `pnpm josh reserved-run <weight> -- <command>` で包み、コア予算に数えさせる。ESLint は `--concurrency off` で走らせ、並列度の計測はレーン外で行う(`lane-direct-tool`)。
|
|
37
|
+
- 結果を Issue のコメントに残し、以後はそれを使い回す。
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
- 通知は CI チェック成功後に投稿する
|
|
4
4
|
- 通知投稿に失敗しても、実装完了の事実をログで確認できるようにする
|
|
5
|
-
- 自動投稿する Issue コメントは `JOSH_SESSION_LANG` の言語(未設定なら `ja`)で書く。Issue タイトルだけは英語
|
|
6
5
|
|
|
7
6
|
### CI チェック失敗時の対応
|
|
8
7
|
|
|
@@ -12,10 +11,6 @@
|
|
|
12
11
|
- 修正できたら修正内容を、できなかったら失敗チェック名・原因・未解決である旨を `--notify-message` に書く。**完了コメントに失敗を隠してはならない**
|
|
13
12
|
- ユーザーへの報告でも失敗を「成功」として扱わない
|
|
14
13
|
|
|
15
|
-
### ほかの単一ソースにある規則
|
|
16
|
-
|
|
17
|
-
auto-merge と `completion` 通知・明示的な起動・`confirmation` 通知・作業ツリーの保持・overrides の保護の置き場は `docs/maintainers/operating-rules-rationale.md` → "Rules that moved to their single source"。
|
|
18
|
-
|
|
19
14
|
### 指示されていない行動は取らない
|
|
20
15
|
|
|
21
16
|
`CLAUDE.md` → "Git Rules" の細則。対象には共有ブランチへの push・外部通知の追加送信・リポジトリ設定の変更も含む。
|
|
@@ -23,12 +18,12 @@ auto-merge と `completion` 通知・明示的な起動・`confirmation` 通知
|
|
|
23
18
|
- auto-merge の本文は [`followup.md`](../../.claude/skills/workflow-commands/followup.md)、`backlogrun` の子への継承は [`backlogrun-child.md`](../../.claude/skills/workflow-commands/backlogrun-child.md)
|
|
24
19
|
- `kickoff` / `pnpm josh followup` 単独実行は文書化されたスコープで終了する。PR が OPEN のまま完了したら状態を報告して停止する
|
|
25
20
|
- 「チェックが全部 green」は次へ進む承認ではない
|
|
26
|
-
- **deny と配送ガードは実装であって規則ではない。** `gh pr merge`・force push・ブランチ削除は `.claude/settings.json` の `permissions.deny` と `pnpm josh rule:
|
|
21
|
+
- **deny と配送ガードは実装であって規則ではない。** `gh pr merge`・force push・ブランチ削除は `.claude/settings.json` の `permissions.deny` と `pnpm josh rule:list` の `git-force` 行が拒否する(一覧は [`rule-delivery.md`](./rule-delivery.md) →「配送されている規則」)が、規則より狭い。ツールが通したことを許可と読まない。`fullrun` の auto-merge は `pnpm josh followup` の内部から gh を起動するため影響を受けない
|
|
27
22
|
- 共有状態に影響する操作(Tier C)は、迷ったら確認する。可逆な実装・設計判断(Tier A)は下記 "decision-autonomy" に従う
|
|
28
23
|
|
|
29
24
|
### no-self-staging — git index を勝手に変更しない(自律 staging の禁止)
|
|
30
25
|
|
|
31
|
-
`CLAUDE.md` → "Git Rules" の細則。index
|
|
26
|
+
`CLAUDE.md` → "Git Rules" の細則。index には履歴がなく、上書きされたステージ状態は復元できない。
|
|
32
27
|
|
|
33
28
|
- **調査目的の staging はしない。** 読み取り専用コマンドを使う: `git status --short`、`git diff` / `git diff --stat` / `git diff HEAD`、`git diff --staged`、未追跡ファイルは `git diff --no-index /dev/null <new-file>` か直接読む
|
|
34
29
|
- staging してよいのは次の 2 ケースだけ。それ以外は実行せずに確認する:
|
|
@@ -42,22 +37,21 @@ auto-merge と `completion` 通知・明示的な起動・`confirmation` 通知
|
|
|
42
37
|
3. 「別パッケージ起因の問題は割り込み Issue で対応する」
|
|
43
38
|
4. `backlogrun` が epic の子を始める前の preflight(`pnpm josh run:hold <N>` が `reclaim` と答えたときの回収 — joshuafolkken/kit#926, joshuafolkken/kit#1965)
|
|
44
39
|
|
|
45
|
-
1〜3 は直後に `pnpm josh stash:pop "<メッセージ>"`
|
|
40
|
+
1〜3 は直後に `pnpm josh stash:pop "<メッセージ>"` で復元する(位置指定の pop は `worktree-mutation` 行が拒否する)。4 は復元しない — 代わりに stash を子の Issue にコメントで記録する(`prerequisite.md` の stash と同じく、記録だけが後で pop させる手がかり)
|
|
46
41
|
|
|
47
|
-
- **会話で作った実装をランへ渡す「引き渡し用の stash」も `pnpm josh stash:pop "<メッセージ>"` で復元する。当てたあと stash
|
|
42
|
+
- **会話で作った実装をランへ渡す「引き渡し用の stash」も `pnpm josh stash:pop "<メッセージ>"` で復元する。当てたあと stash は消える**
|
|
48
43
|
- 計画には復元手順としてこの 1 行だけを書く。`git stash apply` / `git stash pop` も「drop しない」という条件も書かない
|
|
49
44
|
- 計画がガードの拒否する復元形を指していたら、実行側は `stash:pop` に読み替えて続行し、Issue コメントに残す(Tier A)。`needs-decision` では止まらない
|
|
50
45
|
- stash を残すのは持ち主の判断だけ。持ち主が計画に理由を書き、ランはそこで止まって確認する
|
|
51
46
|
- staging・index の書き換え・`git commit` の直接実行は deny されており、deny には「そのターンでユーザーが明示指示した」という例外がない。ケース 1 はユーザー自身の端末で実行してもらう。コミットを指示されたら `pnpm josh git` を通す
|
|
52
|
-
- index を守る deny と `pnpm josh rule:guard`(`worktree-mutation`・`index-mutation`・`destructive-command`・`protected-file` 行)も実装である(→「deny と配送ガードは実装であって規則ではない」)
|
|
53
47
|
|
|
54
48
|
### decision-autonomy — 意思決定の自律ポリシー(確認停止を減らす)
|
|
55
49
|
|
|
56
50
|
`CLAUDE.md` → "Decision autonomy" の境界の細則。
|
|
57
51
|
|
|
58
52
|
- **A と B の判定**: 確認するのは「差が僅差 かつ 後戻りしにくい/アーキテクチャに長く影響する」ときだけ。明確に優位な選択肢は自動で選び、僅差でも安価に巻き戻せる選択は決めて記録して進む
|
|
59
|
-
- 起票した Issue の所属先は、候補が複数の epic に散っていても Tier
|
|
53
|
+
- 起票した Issue の所属先は、候補が複数の epic に散っていても Tier A(`.claude/skills/epic-commands/epic-bundle.md`)
|
|
60
54
|
- 自己修正(自分が公開した成果物の事実誤りの訂正、同じセッションで自分が特定した自分の作業の抜けの穴埋め)は Tier A。承認済みの作業の完了・修復に限り、目標の表明や問いで動いてよい意味ではない(→ `principles.md` → "consult-vs-execute")
|
|
61
55
|
- **Tier C との境界**: マージ・ブランチ削除・force push・スコープ外の変更は、自分が招いた問題でも Tier C。確認を外しても監査証跡は外さない
|
|
62
56
|
- **major のバージョン bump は Tier C**: `pnpm josh bump major` は自分の判断で実行も提案もしない。既定は minor / patch で、major はユーザーがそのターンで明示したときだけ(0.x の major は 1.0.0 になり戻せない)。`josh bump` が版を変えたら、変わった挙動の `docs/` をコミット前に更新する
|
|
63
|
-
-
|
|
57
|
+
- 自動判断を記録する Issue コメントは `pnpm josh issue:comment <N> --body-file <path>` で投稿する
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
}
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
**8,000 文字**(harness の既定は 30,000、最大は 150,000
|
|
11
|
+
**8,000 文字**(harness の既定は 30,000、最大は 150,000)。効くのは Bash ツールだけで、`Read` と `Agent` の結果には効かない。
|
|
12
12
|
|
|
13
13
|
## 切り詰められたときにどうするか
|
|
14
14
|
|
|
@@ -27,15 +27,10 @@
|
|
|
27
27
|
|
|
28
28
|
## 検証コマンドをパイプに繋がない(joshuafolkken/kit#1556)
|
|
29
29
|
|
|
30
|
-
**パイプラインの終了コードは最後のコマンドのものである。** `pnpm josh gate 2>&1 | tail -40` は赤いゲートを成功として返す。**これは `josh gate` の欠陥ではない。**
|
|
30
|
+
**パイプラインの終了コードは最後のコマンドのものである。** `pnpm josh gate 2>&1 | tail -40` は赤いゲートを成功として返す。**これは `josh gate` の欠陥ではない。** **既定はパイプなしで実行する。** 避けられないなら `set -o pipefail` を前置する。どの形でも、印字された判定行を読む。`piped-verification` 行(`rule-delivery.md`)が強制する。
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
- 絞るなら、ファイルへ落として範囲で読む(`pnpm josh gate > /tmp/gate.log 2>&1; tail -40 /tmp/gate.log`)
|
|
34
|
-
- パイプが避けられないなら `set -o pipefail` を前置する
|
|
35
|
-
- どの形でも、印字された判定行を読む。終了コードだけを答えにしない
|
|
36
|
-
|
|
37
|
-
対象は結果が合否を意味するコマンドだけ — `gate` / `check` / `lint*` / `cspell*` / `test*` / `eval`。**`git log | head` や `gh issue list | head` は対象外であり、意図的にそうしている。** `latest:scope` / `review:brief` も、判定ではなく答えを印字するので `$(...)` で受けてよい。`pnpm josh pretool:guard` は、後段が `tail` /全行読みの `grep` だけの検証パイプラインを `(set -o pipefail; …)` で包み、他のパイプは拒否する(`rule-delivery.md`、`docs/maintainers/output-bounds-rationale.md` → "Why the pipe rule is delivered by a trigger")。
|
|
32
|
+
対象は結果が合否を意味するコマンドだけ — `gate` / `check` / `lint*` / `cspell*` / `test*` / `eval`。**`git log | head` や `gh issue list | head` は対象外であり、意図的にそうしている。** `latest:scope` / `review:brief` も、判定ではなく答えを印字するので `$(...)` で受けてよい。
|
|
38
33
|
|
|
39
34
|
## 検査
|
|
40
35
|
|
|
41
|
-
`scripts/lib/bash-output-cap.test.ts`
|
|
36
|
+
`scripts/lib/bash-output-cap.test.ts` が、配布設定の上限がこの文書の値と一致し、既定より小さく最大を超えないことを固定する。
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
2. コード内コメント、テストタイトル(`describe` / `it` / `expect`)、コミットメッセージ
|
|
25
25
|
3. スクリプトが出力する固定文字列: Telegram のヘッダーラベル(`Planning` / `Completion` など)、`Issue:` / `PR:` の URL ラベル、`--notify-message` 省略時の既定メッセージ
|
|
26
26
|
|
|
27
|
-
`JOSH_SESSION_LANG` は開発者個人の設定で、`.env`(gitignore 済み)に置く。設定値は毎ターン `UserPromptSubmit` フック(`scripts/hooks/run-hook.sh session-lang`、Codex は `.codex/hooks.json`)が差し込み、未設定なら出さない。フックが走らないハーネス(Gemini / Cursor)は `.env`
|
|
27
|
+
`JOSH_SESSION_LANG` は開発者個人の設定で、`.env`(gitignore 済み)に置く。設定値は毎ターン `UserPromptSubmit` フック(`scripts/hooks/run-hook.sh session-lang`、Codex は `.codex/hooks.json`)が差し込み、未設定なら出さない。フックが走らないハーネス(Gemini / Cursor)は `.env` を読む。
|
|
28
28
|
|
|
29
29
|
### 配布ドキュメントの層ごとの言語(joshuafolkken/kit#2997)
|
|
30
30
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
## Step 3: 計画コメントを記録して通知する
|
|
2
2
|
|
|
3
3
|
1. 提案を人間が判断する
|
|
4
|
-
2.
|
|
4
|
+
2. 採用した計画をファイルに書き、`pnpm josh issue:plan <N> --body-file <path>` で Issue に記録する。body が空なら本文に、空でなければコメントになる(本文はパスで渡す — `shell-body.md`)
|
|
5
5
|
- 計画が stash の復元を含むときの書き方: `operating-rules.md` → "no-self-staging"
|
|
6
|
+
- 計画には `### 影響を受ける既存の利用者` が必須(`pnpm josh plan:consumers <識別子...>` が下書きを出す。書き方: `kickoff.md` の手順 4)
|
|
6
7
|
3. Telegram で計画開始を通知する:
|
|
7
8
|
|
|
8
9
|
```bash
|
|
@@ -15,44 +16,4 @@
|
|
|
15
16
|
- Issue URL を必ず含め、箇条書きの間に改行を入れる
|
|
16
17
|
- `kickoff` はここで**停止**する(実装に進まない)
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
git stash push -u -m "plan: pre-existing changes"
|
|
21
|
-
```
|
|
22
|
-
5. メインブランチへ切り替えて最新を取得する:
|
|
23
|
-
```bash
|
|
24
|
-
pnpm josh ms
|
|
25
|
-
```
|
|
26
|
-
6. `pnpm josh latest:scope` が `required` と答えたときだけ `pnpm josh latest` を実行し、`dependency-update` スキルに従う(`.claude/skills/workflow-commands/latest-gate.md`)。脆弱性への override は `pnpm-workspace.yaml` の `overrides` に書く(pnpm 11/12 は `package.json` の `pnpm.overrides` を無視する)。
|
|
27
|
-
ステップ 4 で stash したら、ここでメッセージ指定で復元する(位置指定や引数なしの `git stash pop` は使わない — joshuafolkken/kit#2050):
|
|
28
|
-
```bash
|
|
29
|
-
pnpm josh stash:pop "plan: pre-existing changes"
|
|
30
|
-
```
|
|
31
|
-
7. **作業サマリを提示してから**実装を開始する(`report-format.md` → "作業前サマリはいつ・どう出すか")。Issue body が埋まっていても提示し、Issue コメントとしては投稿しない。
|
|
32
|
-
8. 実装完了後、lint/test より前に `prompts/refactoring.md` に従い、高・中優先度項目が残らなくなるまでリファクタリングする
|
|
33
|
-
9. 検証ゲート(`CLAUDE.md` の Completion gate)を実行する
|
|
34
|
-
|
|
35
|
-
`pnpm josh git` を実行する(`-y` で確認プロンプトをスキップ)。**子はバージョンを上げない** — 版を決めるのは `pnpm josh release` だけ(joshuafolkken/kit#1486)。Issue タイトルは実行前に `issue-template.md` の Step 1 冒頭に沿って整える。
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
pnpm josh git -y "<issue-title> #<issue-number>"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### Recovery after failed push (pre-push hook blocked)
|
|
42
|
-
|
|
43
|
-
If `pnpm josh git -y` fails at the push step, fix the blocking issue and recover with:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# 1. Push manually after fixing the issue
|
|
47
|
-
git push --set-upstream origin <branch>
|
|
48
|
-
|
|
49
|
-
# 2. Create the PR only — closes #N keyword is preserved
|
|
50
|
-
pnpm josh pr
|
|
51
|
-
# equivalent: pnpm josh git -y --skip-commit --skip-push
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
Do not run `gh pr create` directly — it bypasses `build_body`, which writes `closes #N`.
|
|
55
|
-
|
|
56
|
-
### レビューからマージまで
|
|
57
|
-
|
|
58
|
-
レビューは実装したセッションがコミットの前に `pnpm josh review:brief` で始め、`/code-review` は `Agent` ツールのサブエージェントが実行する。周回の上限、残った指摘の振り分けと `pnpm josh epic:bundle`、マージを打つターンは `.claude/skills/workflow-commands/chain-rule.md` → "Run the review-to-merge chain"、"The review runs in a subagent, never a main-line skill load"、方針は `prompts/review.md` → "Review round cap"。**`/code-review` の出力で停止しない。**
|
|
19
|
+
実装からマージまでは [`fullrun-steps.md`](../../.claude/skills/workflow-commands/fullrun-steps.md) の手順に従う。
|