@joshuafolkken/kit 1.1229.0 → 1.1370.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 -0
- package/.claude/settings.json +4 -0
- package/.claude/skills/dependency-update/SKILL.md +5 -3
- package/.claude/skills/epic-commands/SKILL.md +82 -113
- package/.claude/skills/epic-commands/epic-bundle.md +38 -63
- package/.claude/skills/epic-commands/execution-waves.md +30 -51
- package/.claude/skills/verify-ui/SKILL.md +13 -20
- package/.claude/skills/workflow-commands/SKILL.md +10 -10
- package/.claude/skills/workflow-commands/background-commands.md +4 -4
- package/.claude/skills/workflow-commands/backlogrun-child.md +30 -105
- package/.claude/skills/workflow-commands/backlogrun-handoff-report.md +29 -0
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +45 -131
- package/.claude/skills/workflow-commands/backlogrun-park.md +36 -53
- package/.claude/skills/workflow-commands/backlogrun-progress.md +81 -331
- package/.claude/skills/workflow-commands/backlogrun-recovery.md +29 -83
- package/.claude/skills/workflow-commands/backlogrun-steps.md +105 -424
- package/.claude/skills/workflow-commands/backlogrun.md +50 -61
- package/.claude/skills/workflow-commands/chain-rule.md +36 -40
- package/.claude/skills/workflow-commands/entry-sequence.md +6 -6
- package/.claude/skills/workflow-commands/followup.md +24 -20
- package/.claude/skills/workflow-commands/fullrun-steps.md +23 -27
- package/.claude/skills/workflow-commands/fullrun.md +10 -10
- package/.claude/skills/workflow-commands/halfrun.md +9 -8
- package/.claude/skills/workflow-commands/into-target.md +12 -18
- package/.claude/skills/workflow-commands/issue-comments.md +11 -26
- package/.claude/skills/workflow-commands/kickoff.md +27 -16
- package/.claude/skills/workflow-commands/latest-gate.md +18 -29
- package/.claude/skills/workflow-commands/needs-human-review.md +13 -24
- package/.claude/skills/workflow-commands/observation-filing.md +37 -28
- package/.claude/skills/workflow-commands/observation-ledger.md +48 -38
- package/.claude/skills/workflow-commands/pre-gate-cut.md +9 -9
- package/.claude/skills/workflow-commands/prerequisite.md +23 -15
- package/.claude/skills/workflow-commands/progress-watcher.md +17 -11
- package/.claude/skills/workflow-commands/prrun.md +3 -3
- package/.claude/skills/workflow-commands/retrospective.md +13 -18
- package/.claude/skills/workflow-commands/split-assessment.md +6 -4
- package/.claude/skills/workflow-commands/target-repository.md +25 -28
- package/.claude/skills/workflow-commands/working-tree-hold.md +11 -17
- package/.gitattributes +2 -1
- package/.github/workflows/ci.yml +14 -0
- package/.github/workflows/publish.yml +2 -0
- package/.vscode/tasks.json +14 -0
- package/CLAUDE.md +10 -61
- package/README.md +38 -57
- package/SECURITY.md +1 -1
- package/dist/CLAUDE.md +10 -61
- package/dist/commands/document-section-cli.js +42 -10
- package/dist/config-merge/index.js +11 -2
- package/dist/hooks/audit-provision.js +2 -2
- package/dist/hooks/batch-guard.js +7 -7
- package/dist/hooks/{chunk-FIVDHQGT.js → chunk-43G45XJF.js} +18 -20
- package/dist/hooks/{chunk-JUDKDCDP.js → chunk-4TW4MQUL.js} +284 -362
- package/dist/hooks/{chunk-5VMKCCC4.js → chunk-76RK6E3H.js} +13 -11
- package/dist/hooks/{chunk-RNWHN5BP.js → chunk-DZWZ3DKY.js} +4 -4
- package/dist/hooks/{chunk-5VNDSNG3.js → chunk-FZ6FUSBM.js} +1 -1
- package/dist/hooks/{chunk-VC3PZPZO.js → chunk-GG72ANKI.js} +1 -1
- package/dist/hooks/{chunk-6HJJXRBX.js → chunk-KPM4YIIX.js} +8 -44
- package/dist/hooks/chunk-MXVQMLDP.js +3705 -0
- package/dist/hooks/{chunk-ELCN5LCH.js → chunk-NEC4AT4Z.js} +34 -12
- package/dist/hooks/{chunk-TQNPDZNH.js → chunk-NZBHG6FW.js} +7 -5
- package/dist/hooks/chunk-NZN2UFI6.js +2409 -0
- package/dist/hooks/{chunk-F56MFS4B.js → chunk-R6CRQEAL.js} +4 -4
- package/dist/hooks/chunk-SYSRHRWU.js +1589 -0
- package/dist/hooks/{chunk-55HHG5PX.js → chunk-TLJYAGZK.js} +799 -903
- package/dist/hooks/chunk-Z5TMJIPW.js +45 -0
- package/dist/hooks/codex-hook-adapter.js +26 -21
- package/dist/hooks/duplicate-read-guard.js +8 -8
- package/dist/hooks/format-edited.js +4 -4
- package/dist/hooks/inputs.json +213 -197
- package/dist/hooks/investigation-guard.js +8 -8
- package/dist/hooks/pretool-guard.js +15 -15
- package/dist/hooks/session-lang.js +406 -8
- package/dist/hooks/stop-guard.js +122 -201
- package/dist/josh.js +540 -137
- package/dist/version/index.js +15 -13
- package/eslint/base.js +43 -5
- package/eslint/rules/english-only-prose.js +3 -3
- package/eslint/rules/import.js +12 -0
- package/eslint/rules/namespace-object-export.js +2 -2
- package/package.json +16 -10
- package/pnpm-workspace.yaml +2 -4
- package/prompts/coding-standards.md +14 -48
- package/prompts/collaboration-workflow/file-edits.md +1 -1
- package/prompts/collaboration-workflow/issue-citation.md +1 -1
- package/prompts/collaboration-workflow/issue-template.md +4 -10
- package/prompts/collaboration-workflow/operating-rules.md +7 -8
- package/prompts/collaboration-workflow/output-bounds.md +1 -1
- package/prompts/collaboration-workflow/overview.md +1 -1
- package/prompts/collaboration-workflow/plan-comment.md +2 -1
- package/prompts/collaboration-workflow/principles.md +21 -3
- package/prompts/collaboration-workflow/report-format.md +16 -29
- package/prompts/collaboration-workflow/residency.md +1 -1
- package/prompts/collaboration-workflow/rule-delivery.md +7 -95
- package/prompts/collaboration-workflow/shell-body.md +3 -23
- package/prompts/collaboration-workflow/turn-batching.md +4 -13
- package/prompts/collaboration-workflow/wip-cap.md +5 -11
- package/prompts/refactoring.md +1 -1
- package/prompts/review-rubric.md +3 -22
- package/prompts/review.md +15 -38
- package/prompts/testing-guide.md +2 -4
- package/scripts/adopt/adopt-logic.ts +5 -5
- package/scripts/adopt/adopt-toolkits.ts +4 -5
- package/scripts/adopt/adopt.ts +2 -3
- package/scripts/agent/agent-argv.ts +7 -7
- package/scripts/agent/agent-diagnostics.ts +2 -2
- package/scripts/agent/agent-exit-record.ts +1 -1
- package/scripts/agent/agent-headless.ts +1 -1
- package/scripts/agent/agent-launch-environment.ts +6 -1
- package/scripts/agent/agent-role-profile.ts +49 -22
- package/scripts/agent/agent-session-role.ts +32 -0
- package/scripts/agent/api-outage.ts +1 -1
- package/scripts/agent/claude-agent-argv.ts +4 -4
- package/scripts/agent/claude-result-event.ts +4 -4
- package/scripts/agent/codex-hooks.ts +2 -2
- package/scripts/agent/interactive-ask.ts +3 -6
- package/scripts/auto-ok/auto-ok-cli.ts +46 -60
- package/scripts/backlog/backlog-arrival-added.ts +34 -0
- package/scripts/backlog/backlog-arrival.ts +54 -17
- package/scripts/backlog/backlog-budget-cli.ts +34 -6
- package/scripts/backlog/backlog-budget.ts +17 -24
- package/scripts/backlog/backlog-defect-priority.ts +1 -1
- package/scripts/backlog/backlog-drive-args.ts +5 -4
- package/scripts/backlog/backlog-drive-cli.ts +14 -10
- package/scripts/backlog/backlog-drive-epic.ts +85 -0
- package/scripts/backlog/backlog-drive-launch.ts +1 -1
- package/scripts/backlog/backlog-drive-named-offer.ts +60 -9
- package/scripts/backlog/backlog-drive-named.ts +39 -9
- package/scripts/backlog/backlog-drive-offer-argv.ts +1 -1
- package/scripts/backlog/backlog-drive-restore.ts +1 -1
- package/scripts/backlog/backlog-drive-retrospective.ts +2 -2
- package/scripts/backlog/backlog-drive.ts +43 -28
- package/scripts/backlog/backlog-idle.ts +88 -0
- package/scripts/backlog/backlog-named.ts +11 -15
- package/scripts/backlog/backlog-next.ts +26 -30
- package/scripts/backlog/backlog-offer-cli.ts +28 -23
- package/scripts/backlog/backlog-offer.ts +7 -7
- package/scripts/backlog/backlog-overlap.ts +178 -0
- package/scripts/backlog/backlog-plan-cli.ts +14 -90
- package/scripts/backlog/backlog-plan-read.ts +111 -0
- package/scripts/backlog/backlog-plan.ts +11 -10
- package/scripts/backlog/backlog-pool.ts +13 -14
- package/scripts/backlog/backlog-rank.ts +11 -11
- package/scripts/backlog/backlog-ready.ts +15 -10
- package/scripts/backlog/backlog-scope.ts +14 -15
- package/scripts/backlog/backlog-stalled-cli.ts +2 -2
- package/scripts/backlog/backlog-stalled-detect.ts +4 -4
- package/scripts/backlog/backlog-stalled.ts +5 -6
- package/scripts/backlog/backlog-waves.ts +4 -4
- package/scripts/backlog/backlogrun-args.ts +74 -0
- package/scripts/backlog/backlogrun-cli.ts +113 -0
- package/scripts/backlog/backlogrun-launch.ts +178 -0
- package/scripts/behavior/behavior-assertion.ts +6 -8
- package/scripts/behavior/behavior-cli.ts +1 -1
- package/scripts/behavior/behavior-rules.ts +3 -3
- package/scripts/build/build-claude-md.ts +4 -4
- package/scripts/build/build-codex-hooks.ts +2 -2
- package/scripts/build/build-commands.ts +1 -1
- package/scripts/build/build-hooks.ts +5 -5
- package/scripts/build/build.ts +1 -1
- package/scripts/build/hook-bundle-stamp.ts +109 -7
- package/scripts/build/local-bin.ts +2 -2
- package/scripts/cases/cases-cli.ts +1 -1
- package/scripts/cases/cases-logic.ts +2 -2
- package/scripts/ci/composite-actions.ts +1 -2
- package/scripts/ci/pr-classification.ts +2 -2
- package/scripts/claude/workflow-destination.ts +1 -1
- package/scripts/clone/clone-aggregate.ts +1 -1
- package/scripts/clone/clone-fingerprint.ts +1 -1
- package/scripts/clone/clone-scan-cli.ts +1 -1
- package/scripts/clone/clone-scan.ts +1 -1
- package/scripts/config-merge/index.ts +1 -1
- package/scripts/config-merge/json-format.ts +1 -3
- package/scripts/config-merge/patch-json-array.ts +90 -0
- package/scripts/config-merge/patch-json-key.ts +6 -3
- package/scripts/config-merge/patch-json-list.ts +1 -1
- package/scripts/cost-runtime/codex-usage.ts +1 -1
- package/scripts/cost-runtime/context-cut-payback.ts +4 -5
- package/scripts/cost-runtime/context-cut-threshold.ts +4 -6
- package/scripts/cost-runtime/cost-attribute.ts +3 -3
- package/scripts/cost-runtime/cost-blocks.ts +3 -4
- package/scripts/cost-runtime/cost-cli.ts +14 -11
- package/scripts/cost-runtime/cost-corpus.ts +11 -11
- package/scripts/cost-runtime/cost-pricing.ts +4 -4
- package/scripts/cost-runtime/cost-tokens.ts +1 -2
- package/scripts/cost-runtime/cost-transcript.ts +29 -29
- package/scripts/cost-runtime/cost-usage.ts +6 -7
- package/scripts/cost-runtime/cost-verdict.ts +10 -11
- package/scripts/cost-runtime/own-session.ts +1 -1
- package/scripts/cost-runtime/transcript-cwd.ts +2 -2
- package/scripts/delegation/delegation-cli.ts +4 -4
- package/scripts/delegation/delegation-policy.ts +13 -15
- package/scripts/delegation/duplicate-read-guard.ts +9 -10
- package/scripts/delegation/fanout-cli.ts +1 -1
- package/scripts/delegation/fanout.ts +1 -1
- package/scripts/delegation/investigation-guard.ts +18 -22
- package/scripts/delegation/investigation-reads.ts +48 -238
- package/scripts/discovery/repo-discovery.ts +1 -1
- package/scripts/discovery/repo-map-logic.ts +1 -2
- package/scripts/discovery/repo-origin.ts +3 -3
- package/scripts/discovery/repo-party-cli.ts +2 -2
- package/scripts/discovery/repo-party.ts +2 -2
- package/scripts/doctor/doctor-consumer.ts +1 -1
- package/scripts/doctor/doctor-io.ts +6 -7
- package/scripts/doctor/doctor-logic.ts +1 -1
- package/scripts/doctor/doctor-ports.ts +1 -1
- package/scripts/doctor/doctor.ts +8 -9
- package/scripts/document/backlogrun-parent-read-set.ts +5 -6
- package/scripts/document/bash-output-cap.ts +5 -7
- package/scripts/document/capped-print-part.ts +1 -1
- package/scripts/document/capped-print.ts +1 -1
- package/scripts/document/document-byte-budget.ts +33 -64
- package/scripts/document/document-byte-check.ts +4 -4
- package/scripts/document/document-reachability.ts +7 -8
- package/scripts/document/document-read-cli.ts +2 -2
- package/scripts/document/document-scan.ts +26 -2
- package/scripts/document/document-section-cli.ts +6 -8
- package/scripts/document/document-section.ts +8 -12
- package/scripts/document/edit-files-cli.ts +3 -4
- package/scripts/document/entry-read-budget.ts +8 -70
- package/scripts/document/entry-read-set.ts +51 -34
- package/scripts/document/lane-child-read-set.ts +9 -9
- package/scripts/document/read-files-cli.ts +1 -2
- package/scripts/document/read-set-cli.ts +16 -19
- package/scripts/document/read-set-cost.ts +4 -4
- package/scripts/document/read-set-point-of-use.ts +28 -38
- package/scripts/document/read-set-pricing.ts +1 -1
- package/scripts/document/read-set-trim.ts +3 -3
- package/scripts/document/resident-budget.ts +8 -10
- package/scripts/epic/epic-add-body.ts +15 -18
- package/scripts/epic/epic-add-plan.ts +26 -28
- package/scripts/epic/epic-add.ts +32 -25
- package/scripts/epic/epic-audit-checks.ts +27 -37
- package/scripts/epic/epic-audit-cli.ts +21 -22
- package/scripts/epic/epic-audit-orphans.ts +16 -17
- package/scripts/epic/epic-audit-rationale.ts +10 -15
- package/scripts/epic/epic-audit-report.ts +2 -5
- package/scripts/epic/epic-audit.ts +18 -14
- package/scripts/epic/epic-body.ts +10 -10
- package/scripts/epic/epic-bundle-cli.ts +36 -34
- package/scripts/epic/epic-bundle-evidence.ts +5 -5
- package/scripts/epic/epic-bundle-gaps.ts +6 -9
- package/scripts/epic/epic-bundle-poll.ts +1 -1
- package/scripts/epic/epic-bundle-referenced.ts +11 -14
- package/scripts/epic/epic-bundle.ts +19 -20
- package/scripts/epic/epic-busy.ts +44 -21
- package/scripts/epic/epic-candidate-confirm.ts +15 -18
- package/scripts/epic/epic-chains.ts +18 -23
- package/scripts/epic/epic-classify.ts +11 -12
- package/scripts/epic/epic-cli-argv.ts +5 -6
- package/scripts/epic/epic-cli-remove.ts +9 -4
- package/scripts/epic/epic-cli.ts +38 -26
- package/scripts/epic/epic-close-comment.ts +14 -15
- package/scripts/epic/epic-close.ts +25 -29
- package/scripts/epic/epic-cross-repo.ts +18 -21
- package/scripts/epic/epic-decision.ts +14 -18
- package/scripts/epic/epic-fetch.ts +25 -31
- package/scripts/epic/epic-graph.ts +15 -17
- package/scripts/epic/epic-index.ts +14 -16
- package/scripts/epic/epic-issue.ts +9 -11
- package/scripts/epic/epic-label-age.ts +74 -0
- package/scripts/epic/epic-lane-offer.ts +35 -24
- package/scripts/epic/epic-nested.ts +1 -1
- package/scripts/epic/epic-next-read.ts +8 -8
- package/scripts/epic/epic-next-views.ts +12 -12
- package/scripts/epic/epic-next.ts +29 -33
- package/scripts/epic/epic-outside-blocker.ts +11 -10
- package/scripts/epic/epic-parse.ts +22 -24
- package/scripts/epic/epic-promote.ts +3 -2
- package/scripts/epic/epic-rank.ts +1 -1
- package/scripts/epic/epic-read.ts +10 -8
- package/scripts/epic/epic-reconcile.ts +8 -6
- package/scripts/epic/epic-reference.ts +5 -4
- package/scripts/epic/epic-relation-recheck.ts +10 -11
- package/scripts/epic/epic-relations.ts +9 -8
- package/scripts/epic/epic-remove-plan.ts +4 -5
- package/scripts/epic/epic-remove.ts +7 -5
- package/scripts/epic/epic-report.ts +18 -20
- package/scripts/epic/epic-run.ts +6 -5
- package/scripts/epic/epic-sections.ts +2 -2
- package/scripts/epic/epic-shape.ts +3 -3
- package/scripts/epic/epic-solo-stale.ts +3 -2
- package/scripts/epic/epic-solo.ts +8 -8
- package/scripts/epic/epic-triage.ts +5 -4
- package/scripts/epic/epic-validate.ts +8 -7
- package/scripts/epic/epic.ts +5 -5
- package/scripts/exports/unused-members-cli.ts +1 -1
- package/scripts/followup/followup-issue-number.ts +1 -2
- package/scripts/followup/git-followup-cleanup.ts +6 -7
- package/scripts/followup/git-followup-finish.ts +11 -13
- package/scripts/followup/git-followup-flush.ts +11 -7
- package/scripts/followup/git-followup-issue-close.ts +16 -13
- package/scripts/followup/git-followup-label.ts +9 -6
- package/scripts/followup/git-followup-merged.ts +1 -1
- package/scripts/followup/git-followup-pending.ts +7 -9
- package/scripts/followup/git-followup-stages.ts +28 -17
- package/scripts/followup/git-followup-workflow.ts +19 -21
- package/scripts/followup/git-pr-followup-checks.ts +13 -20
- package/scripts/followup/git-pr-followup-wrapup.ts +7 -7
- package/scripts/followup/git-pr-followup.ts +18 -17
- package/scripts/gate/core-admission.ts +162 -0
- package/scripts/gate/core-budget.ts +134 -91
- package/scripts/gate/gate-ledger.ts +114 -0
- package/scripts/gate/gate-log.ts +7 -9
- package/scripts/gate/gate-plan.ts +103 -35
- package/scripts/gate/gate-report.ts +39 -21
- package/scripts/gate/gate-skip.ts +11 -13
- package/scripts/gate/gate-steps.ts +5 -1
- package/scripts/gate/gate-tree.ts +3 -4
- package/scripts/gate/hook-gate-reuse.ts +9 -9
- package/scripts/gate/machine-capacity.ts +313 -0
- package/scripts/gate/pre-commit-type-check.ts +4 -4
- package/scripts/gate/project-checks.ts +12 -4
- package/scripts/gate/scoped-green.ts +11 -18
- package/scripts/gate/type-check-command.ts +2 -2
- package/scripts/gate/type-check-step.ts +4 -4
- package/scripts/gate/verification-gate.ts +60 -53
- package/scripts/gh/gh-spawn.ts +2 -2
- package/scripts/gh/git-ai-review-scan.ts +3 -2
- package/scripts/gh/git-gh-api-path.ts +10 -11
- package/scripts/gh/git-gh-exec.ts +43 -48
- package/scripts/gh/git-gh-failure.ts +6 -9
- package/scripts/gh/git-gh-helpers.ts +1 -1
- package/scripts/gh/git-gh-issue-list.ts +15 -19
- package/scripts/gh/git-gh-issue-read.ts +43 -60
- package/scripts/gh/git-gh-issue-rest.ts +14 -15
- package/scripts/gh/git-gh-issue-write.ts +52 -40
- package/scripts/gh/git-gh-issue.ts +23 -24
- package/scripts/gh/git-gh-pr-auto-merge.ts +3 -3
- package/scripts/gh/git-gh-pr-read.ts +46 -50
- package/scripts/gh/git-gh-pr-rest.ts +23 -26
- package/scripts/gh/git-gh-pr-review.ts +2 -2
- package/scripts/gh/git-gh-pr-rollup.ts +4 -4
- package/scripts/gh/git-gh-pr-snapshot.ts +8 -10
- package/scripts/gh/git-gh-pr.ts +16 -16
- package/scripts/gh/git-gh-reachability.ts +11 -12
- package/scripts/gh/git-gh-repo.ts +2 -3
- package/scripts/gh/git-gh-rest-state.ts +1 -1
- package/scripts/gh/git-pr-ai-review.ts +6 -5
- package/scripts/gh/git-pr-checks-eval.ts +28 -30
- package/scripts/gh/git-pr-checks-parse.ts +14 -16
- package/scripts/gh/git-pr-checks-watch.ts +17 -17
- package/scripts/gh/git-pr-checks.ts +20 -23
- package/scripts/gh/git-pr-coderabbit.ts +8 -6
- package/scripts/gh/git-pr-confirmation.ts +5 -5
- package/scripts/gh/git-pr-managed-config.ts +7 -9
- package/scripts/gh/git-pr-messages.ts +1 -1
- package/scripts/gh/git-pr.ts +15 -16
- package/scripts/gh/github-issue-url.ts +8 -9
- package/scripts/git/base-tree.ts +66 -0
- package/scripts/git/change-base.ts +42 -2
- package/scripts/git/changed-file-scope.ts +5 -5
- package/scripts/git/changed-paths.ts +1 -2
- package/scripts/git/constants.ts +2 -2
- package/scripts/git/git-branch.ts +1 -1
- package/scripts/git/git-closes-keyword.ts +3 -3
- package/scripts/git/git-command.ts +53 -41
- package/scripts/git/git-common-directory.ts +3 -3
- package/scripts/git/git-diff-reads.ts +14 -15
- package/scripts/git/git-error.ts +1 -1
- package/scripts/git/git-execa-error.ts +1 -2
- package/scripts/git/git-issue.ts +10 -8
- package/scripts/git/git-location-environment.ts +3 -4
- package/scripts/git/git-ls-remote.ts +6 -8
- package/scripts/git/git-pre-push-hook.ts +11 -10
- package/scripts/git/git-preflight.ts +5 -5
- package/scripts/git/git-push-transport.ts +2 -2
- package/scripts/git/git-remote-branch.ts +1 -2
- package/scripts/git/git-schemas.ts +16 -23
- package/scripts/git/git-spawn-sync.ts +1 -1
- package/scripts/git/git-spawn.ts +37 -14
- package/scripts/git/git-ssh-keepalive.ts +12 -5
- package/scripts/git/git-staging.ts +7 -8
- package/scripts/git/git-workflow.ts +1 -1
- package/scripts/git/git-worktree.ts +35 -27
- package/scripts/git/gone-branch.ts +2 -2
- package/scripts/git/listing-cutoff.ts +1 -2
- package/scripts/git/lockfile-sync.ts +65 -0
- package/scripts/git/main-merge-guard.ts +1 -2
- package/scripts/git/main-merge.ts +7 -7
- package/scripts/git/main-sync.ts +23 -8
- package/scripts/git/parse-json-array.ts +18 -23
- package/scripts/git/repository-lock.ts +34 -2
- package/scripts/git/stash/git-stash.ts +4 -5
- package/scripts/git/stash/stash-orphans.ts +5 -3
- package/scripts/git/stash/stash-pop-args.ts +1 -1
- package/scripts/git/stash/stash-pop-cli.ts +3 -3
- package/scripts/git/stash/stash-sweep-lock.ts +2 -2
- package/scripts/hooks/batch-guard.ts +11 -13
- package/scripts/hooks/check-commit-message.ts +12 -9
- package/scripts/hooks/codex-hook-adapter.ts +16 -10
- package/scripts/hooks/edited-cspell.ts +3 -4
- package/scripts/hooks/format-edited-cli.ts +1 -1
- package/scripts/hooks/format-edited-file.ts +11 -17
- package/scripts/hooks/format-rewrite-notice.ts +19 -17
- package/scripts/hooks/pre-push-unit.ts +10 -14
- package/scripts/hooks/pretool-guard-cli.ts +4 -4
- package/scripts/hooks/pretool-guard.ts +93 -18
- package/scripts/hooks/reserved-run.ts +2 -2
- package/scripts/hooks/step-zero-notice.ts +1 -1
- package/scripts/hooks/stop-guard.ts +21 -10
- package/scripts/init/basic-path-migration.ts +2 -2
- package/scripts/init/claude-kit-only-settings.ts +2 -2
- package/scripts/init/claude-plugin-config.ts +2 -2
- package/scripts/init/distributed-paths.ts +4 -4
- package/scripts/init/hook-command-rewrite.ts +3 -3
- package/scripts/init/hook-launch.ts +5 -5
- package/scripts/init/init-actions.ts +13 -0
- package/scripts/init/init-ai-copy.ts +11 -11
- package/scripts/init/init-bootstrap.ts +3 -3
- package/scripts/init/init-copy-content.ts +4 -4
- package/scripts/init/init-logic-json-merge.ts +7 -9
- package/scripts/init/init-logic-migrate.ts +1 -1
- package/scripts/init/init-logic-templates.ts +1 -1
- package/scripts/init/init-logic-workspace.ts +4 -4
- package/scripts/init/init-logic-yaml-merge.ts +2 -2
- package/scripts/init/init-logic.ts +19 -22
- package/scripts/init/init.ts +12 -8
- package/scripts/init/kit-base-preset.ts +1 -1
- package/scripts/init/kit-setup-state.ts +1 -1
- package/scripts/init/kit-written-paths.ts +1 -2
- package/scripts/init/package-manager-pin.ts +35 -0
- package/scripts/init/project-profile-cli.ts +1 -1
- package/scripts/init/project-profile.ts +3 -3
- package/scripts/init/session-language-environment.ts +1 -1
- package/scripts/init/start-exec.ts +3 -4
- package/scripts/init/start-plan.ts +2 -2
- package/scripts/init/start-setup-pr.ts +3 -2
- package/scripts/init/start-steps.ts +2 -2
- package/scripts/init/tsconfig-preset-migration.ts +1 -1
- package/scripts/init/vscode-tasks.ts +62 -0
- package/scripts/issue/baseline-measure.ts +2 -2
- package/scripts/issue/behavior-change-lint.ts +2 -2
- package/scripts/issue/defect-rate-cli.ts +6 -7
- package/scripts/issue/defect-rate.ts +37 -27
- package/scripts/issue/git-next-issues.ts +9 -8
- package/scripts/issue/issue-auto-ok.ts +49 -11
- package/scripts/issue/issue-backlinks-cli.ts +5 -5
- package/scripts/issue/issue-backlinks.ts +6 -6
- package/scripts/issue/issue-cite-cli.ts +20 -18
- package/scripts/issue/issue-cite.ts +18 -8
- package/scripts/issue/issue-closing-pr.ts +4 -4
- package/scripts/issue/issue-comment-cli.ts +6 -4
- package/scripts/issue/issue-file-cli.ts +75 -15
- package/scripts/issue/issue-file-fold.ts +155 -0
- package/scripts/issue/issue-file.ts +14 -6
- package/scripts/issue/issue-fold-cli.ts +14 -9
- package/scripts/issue/issue-fold.ts +23 -8
- package/scripts/issue/issue-labels.ts +46 -37
- package/scripts/issue/issue-lint-cli.ts +2 -2
- package/scripts/issue/issue-lint.ts +1 -1
- package/scripts/issue/issue-merged.ts +10 -4
- package/scripts/issue/issue-number-shape.ts +27 -0
- package/scripts/issue/issue-rank.ts +1 -1
- package/scripts/issue/issue-read-cli.ts +4 -5
- package/scripts/issue/issue-read.ts +4 -5
- package/scripts/issue/issue-reference.ts +5 -5
- package/scripts/issue/issue-release-cli.ts +165 -0
- package/scripts/issue/issue-release.ts +58 -0
- package/scripts/issue/issue-report-failures.ts +7 -4
- package/scripts/issue/issue-scout-cli.ts +11 -11
- package/scripts/issue/issue-scout-closed.ts +4 -4
- package/scripts/issue/issue-scout.ts +4 -5
- package/scripts/issue/issue-state-cli.ts +17 -10
- package/scripts/issue/issue-state.ts +12 -13
- package/scripts/issue/issue-wip.ts +7 -7
- package/scripts/issue/markdown-section.ts +3 -3
- package/scripts/issue/measure-rerun-cli.ts +10 -9
- package/scripts/issue/reproduction-measure.ts +3 -3
- package/scripts/issue/session-cite.ts +56 -0
- package/scripts/josh/agent-session-environment.ts +10 -8
- package/scripts/josh/cli-body.ts +2 -2
- package/scripts/josh/command-suggest.ts +1 -1
- package/scripts/josh/file-map-stamp.ts +20 -23
- package/scripts/josh/hook-decision.ts +24 -28
- package/scripts/josh/josh-command-map.ts +4 -1
- package/scripts/josh/josh-command-types.ts +32 -34
- package/scripts/josh/josh-commands-ai.ts +6 -6
- package/scripts/josh/josh-commands-backlog.ts +15 -3
- package/scripts/josh/josh-commands-clone.ts +1 -1
- package/scripts/josh/josh-commands-development.ts +33 -4
- package/scripts/josh/josh-commands-document.ts +3 -3
- package/scripts/josh/josh-commands-guard.ts +3 -3
- package/scripts/josh/josh-commands-issue.ts +11 -5
- package/scripts/josh/josh-commands-lane.ts +16 -5
- package/scripts/josh/josh-commands-lint.ts +1 -1
- package/scripts/josh/josh-commands-maintenance.ts +2 -2
- package/scripts/josh/josh-commands-run.ts +20 -6
- package/scripts/josh/josh-commands-split.ts +1 -2
- package/scripts/josh/josh-commands-versioning.ts +5 -5
- package/scripts/josh/josh-commands-workflow.ts +30 -22
- package/scripts/josh/josh-environment-file.ts +1 -1
- package/scripts/josh/josh-in-process.ts +3 -3
- package/scripts/josh/josh-logic.ts +10 -10
- package/scripts/josh/josh-run.ts +3 -3
- package/scripts/josh/josh-verdict.ts +9 -12
- package/scripts/josh/josh.ts +3 -3
- package/scripts/josh/kit-only.ts +2 -2
- package/scripts/josh/path-decision.ts +3 -3
- package/scripts/josh/platform-temporary.ts +7 -5
- package/scripts/josh/process-identity.ts +24 -6
- package/scripts/josh/process-owner.ts +4 -4
- package/scripts/josh/session-language-cli.ts +53 -11
- package/scripts/josh/session-language.ts +1 -1
- package/scripts/josh/stamp-file.ts +48 -29
- package/scripts/josh/stamp-record.ts +57 -0
- package/scripts/lane/lane-await.ts +35 -11
- package/scripts/lane/lane-cache.ts +6 -6
- package/scripts/lane/lane-capacity.ts +32 -17
- package/scripts/lane/lane-child-invocation.ts +17 -15
- package/scripts/lane/lane-child-marker.ts +12 -12
- package/scripts/lane/lane-cli.ts +20 -13
- package/scripts/lane/lane-close.ts +6 -6
- package/scripts/lane/lane-dispatch.ts +61 -72
- package/scripts/lane/lane-environment.ts +5 -5
- package/scripts/lane/lane-guard-policy.ts +7 -21
- package/scripts/lane/lane-handoff.ts +2 -2
- package/scripts/lane/lane-install.ts +9 -10
- package/scripts/lane/lane-launch-cli.ts +13 -8
- package/scripts/lane/lane-ledger.ts +73 -11
- package/scripts/lane/lane-leftover.ts +44 -30
- package/scripts/lane/lane-limit-cli.ts +160 -0
- package/scripts/lane/lane-limit-override.ts +74 -0
- package/scripts/lane/lane-load.ts +19 -68
- package/scripts/lane/lane-measure-cli.ts +15 -25
- package/scripts/lane/lane-occupancy.ts +6 -4
- package/scripts/lane/lane-open.ts +25 -24
- package/scripts/lane/lane-output.ts +4 -3
- package/scripts/lane/lane-paths.ts +22 -8
- package/scripts/lane/lane-phase.ts +33 -0
- package/scripts/lane/lane-reap.ts +2 -2
- package/scripts/lane/lane-registry.ts +27 -15
- package/scripts/lane/lane-relaunch.ts +9 -9
- package/scripts/lane/lane-report.ts +5 -4
- package/scripts/lane/lane-resume.ts +2 -2
- package/scripts/lane/lane-sampler.ts +55 -0
- package/scripts/lane/lane-seed.ts +7 -7
- package/scripts/lane/lane-stage-stats.ts +135 -0
- package/scripts/lane/lane-start-point.ts +8 -11
- package/scripts/lane/lane-stats.ts +60 -15
- package/scripts/lane/lane-stray.ts +140 -0
- package/scripts/lane/lane-vacant.ts +1 -1
- package/scripts/lane/openai-lane-supervisor-decision.ts +3 -7
- package/scripts/lane/openai-lane-supervisor-owner.ts +3 -9
- package/scripts/lane/openai-review-broker.ts +2 -4
- package/scripts/lib/ancestor-directories.ts +1 -1
- package/scripts/lib/bounded-pool.ts +2 -2
- package/scripts/lib/buffered-process.ts +4 -6
- package/scripts/lib/caddy-logs.sh +0 -0
- package/scripts/lib/cli-flags.ts +39 -6
- package/scripts/lib/error-message.ts +1 -1
- package/scripts/lib/json-value.ts +17 -3
- package/scripts/lib/poll.ts +1 -1
- package/scripts/lib/status-icons.ts +3 -3
- package/scripts/lib/timed-fetch.ts +1 -1
- package/scripts/lib/timeouts.ts +1 -1
- package/scripts/lines/bytes-command.ts +3 -4
- package/scripts/lines/effective-limit.ts +25 -12
- package/scripts/lines/line-budget.ts +47 -55
- package/scripts/lines/line-targets.ts +6 -2
- package/scripts/lines/lines-command.ts +3 -3
- package/scripts/lint/cspell-cached.ts +1 -1
- package/scripts/lint/cycle-recheck.ts +122 -0
- package/scripts/lint/format.ts +1 -2
- package/scripts/lint/lint-parallel.ts +34 -19
- package/scripts/lint/lint-related-scope.ts +25 -15
- package/scripts/lint/lint-related.ts +6 -7
- package/scripts/managed-marker/index.ts +1 -1
- package/scripts/managed-marker/managed-marker-logic.ts +1 -2
- package/scripts/notify/git-notify.ts +9 -7
- package/scripts/notify/telegram-notify.ts +53 -37
- package/scripts/notify/telegram-test-logic.ts +3 -3
- package/scripts/notify/telegram-test.ts +45 -30
- package/scripts/observations/observation-ledger-home.ts +14 -8
- package/scripts/observations/observation-ledger-line.ts +3 -2
- package/scripts/observations/observation-ledger-migrate.ts +3 -4
- package/scripts/observations/observation-ledger-prepare.ts +4 -4
- package/scripts/observations/observation-ledger.ts +14 -15
- package/scripts/observations/observation-record-cli.ts +83 -0
- package/scripts/observations/observation-record.ts +91 -0
- package/scripts/observations/observations-flush-cli.ts +1 -1
- package/scripts/observations/observations-flush-landing.ts +7 -6
- package/scripts/observations/observations-flush.ts +26 -27
- package/scripts/overrides/overrides-check.ts +18 -8
- package/scripts/package/package-scout-cli.ts +1 -1
- package/scripts/package/package-scout-format.ts +2 -2
- package/scripts/package/package-scout.ts +1 -1
- package/scripts/propagate/propagate-git-failure.ts +1 -1
- package/scripts/propagate/propagate-git.ts +7 -7
- package/scripts/propagate/propagate-plan.ts +2 -2
- package/scripts/propagate/propagate-publish.ts +2 -3
- package/scripts/propagate/propagate-run.ts +5 -7
- package/scripts/propagate/propagate-select.ts +1 -1
- package/scripts/propagate/propagate-steps.ts +19 -20
- package/scripts/propagate/propagate-targets.ts +6 -10
- package/scripts/propagate/propagate.ts +5 -5
- package/scripts/refactor/import-graph.ts +1 -1
- package/scripts/refactor/refactor-lint.ts +4 -10
- package/scripts/refactor/refactor-scan-cli.ts +1 -1
- package/scripts/refactor/refactor-scan.ts +2 -2
- package/scripts/refactor/refactor-targets.ts +1 -1
- package/scripts/release/github-release-cli.ts +25 -3
- package/scripts/release/github-release-environment.ts +1 -0
- package/scripts/release/github-release-runs.ts +115 -0
- package/scripts/release/github-release.ts +13 -67
- package/scripts/release/release-cli.ts +21 -4
- package/scripts/release/release-history.ts +6 -10
- package/scripts/release/release-plan.ts +3 -3
- package/scripts/release/release-progress.ts +3 -4
- package/scripts/release/release-publish.ts +8 -9
- package/scripts/release/release-scope-cli.ts +8 -10
- package/scripts/release/release-tag.ts +6 -8
- package/scripts/release/release-worktree.ts +5 -5
- package/scripts/repo/auto-merge-setting-logic.ts +7 -9
- package/scripts/repo/auto-merge-setting.ts +1 -1
- package/scripts/repo/repo-setting.ts +4 -4
- package/scripts/repo/repository-labels.ts +1 -1
- package/scripts/repo/required-checks-logic.ts +3 -3
- package/scripts/repo/required-checks-report.ts +1 -1
- package/scripts/repo/ruleset-check-cli.ts +1 -1
- package/scripts/repo/ruleset-check.ts +1 -1
- package/scripts/report/report-format-reference.ts +26 -0
- package/scripts/report/report-lint-cli.ts +2 -2
- package/scripts/report/report-lint.ts +16 -2
- package/scripts/review/disposition-cli.ts +2 -2
- package/scripts/review/disposition-logic.ts +1 -1
- package/scripts/review/live-evidence.ts +9 -6
- package/scripts/review/review-attest-cli.ts +1 -2
- package/scripts/review/review-attest.ts +3 -3
- package/scripts/review/review-brief-cli.ts +19 -20
- package/scripts/review/review-brief.ts +29 -32
- package/scripts/review/review-checkout.ts +2 -2
- package/scripts/review/review-diff-parts.ts +3 -5
- package/scripts/review/review-diff-write.ts +1 -1
- package/scripts/review/review-finding-ledger.ts +7 -4
- package/scripts/review/review-findings-cli.ts +2 -2
- package/scripts/review/review-level.ts +4 -7
- package/scripts/review/review-record-cli.ts +73 -16
- package/scripts/review/review-record.ts +5 -4
- package/scripts/review/review-round2-cli.ts +2 -3
- package/scripts/review/review-round2.ts +13 -21
- package/scripts/review/review-stamps.ts +9 -71
- package/scripts/review/review-tree.ts +4 -5
- package/scripts/rules/bash-triggers.ts +4 -4
- package/scripts/rules/decision-oracle-batch.ts +5 -6
- package/scripts/rules/decision-oracle-stage.ts +1 -1
- package/scripts/rules/decision-oracle-tokens.ts +1 -2
- package/scripts/rules/decision-oracle.ts +2 -2
- package/scripts/rules/delivered-rules.ts +61 -406
- package/scripts/rules/destructive-command.ts +2 -2
- package/scripts/rules/direct-filing.ts +4 -4
- package/scripts/rules/direct-pr-create.ts +2 -2
- package/scripts/rules/early-heartbeat.ts +15 -19
- package/scripts/rules/file-body.ts +5 -6
- package/scripts/rules/filing-cap.ts +6 -7
- package/scripts/rules/filing-offer.ts +1 -1
- package/scripts/rules/firing-point.ts +6 -6
- package/scripts/rules/gh-api.ts +2 -2
- package/scripts/rules/git-argv.ts +3 -3
- package/scripts/rules/git-force.ts +2 -2
- package/scripts/rules/hook-context-line.ts +31 -0
- package/scripts/rules/implementation-cut-verdict.ts +5 -8
- package/scripts/rules/implementation-cut.ts +35 -32
- package/scripts/rules/index-guard.ts +2 -2
- package/scripts/rules/issue-citation.ts +7 -7
- package/scripts/rules/issue-comments.ts +21 -13
- package/scripts/rules/josh-git-bare.ts +2 -2
- package/scripts/rules/lane-background.ts +14 -16
- package/scripts/rules/lane-carry-conflict.ts +41 -5
- package/scripts/rules/lane-interactive-ask.ts +6 -9
- package/scripts/rules/lane-park.ts +12 -16
- package/scripts/rules/lane-split-park.ts +1 -2
- package/scripts/rules/lane-switch-main.ts +10 -13
- package/scripts/rules/last-prompt.ts +1 -1
- package/scripts/rules/oracle-consulted.ts +5 -5
- package/scripts/rules/oracle-firing.ts +6 -9
- package/scripts/rules/oracle-list-cli.ts +2 -2
- package/scripts/rules/permission-guards.ts +2 -2
- package/scripts/rules/piped-verification.ts +79 -9
- package/scripts/rules/poll-loop.ts +9 -11
- package/scripts/rules/pre-gate-cut.ts +33 -30
- package/scripts/rules/prior-comment-read.ts +3 -3
- package/scripts/rules/protected-files.ts +25 -13
- package/scripts/rules/raw-field-body.ts +3 -4
- package/scripts/rules/reply-language.ts +1 -1
- package/scripts/rules/rule-body-guard.ts +10 -12
- package/scripts/rules/rule-guard.ts +1 -1
- package/scripts/rules/rule-list.ts +51 -0
- package/scripts/rules/rule-registry-rows.ts +282 -0
- package/scripts/rules/rule-registry.ts +109 -0
- package/scripts/rules/rule-value-cache.ts +2 -2
- package/scripts/rules/rule-value-cli.ts +6 -4
- package/scripts/rules/rule-value.ts +61 -22
- package/scripts/rules/run-tail-rule.ts +11 -15
- package/scripts/rules/shell-body-trigger.ts +7 -7
- package/scripts/rules/shell-segments.ts +2 -4
- package/scripts/rules/stop-rules.ts +54 -41
- package/scripts/rules/tail-commands.ts +1 -1
- package/scripts/rules/test-declared-commit.ts +2 -2
- package/scripts/rules/third-party-write.ts +3 -3
- package/scripts/rules/worktree-guard.ts +12 -5
- package/scripts/run/add/run-add-cli.ts +165 -0
- package/scripts/run/add/run-add.ts +124 -0
- package/scripts/run/board/run-board-cli.ts +207 -0
- package/scripts/run/board/run-board-closed.ts +95 -0
- package/scripts/run/board/run-board-every.ts +60 -0
- package/scripts/run/board/run-board-fetch.ts +38 -0
- package/scripts/run/board/run-board-fit.ts +219 -0
- package/scripts/run/board/run-board-github.ts +162 -0
- package/scripts/run/board/run-board-header.ts +275 -0
- package/scripts/run/board/run-board-kind.ts +35 -0
- package/scripts/run/board/run-board-labels.ts +299 -0
- package/scripts/run/board/run-board-layout.ts +222 -0
- package/scripts/run/board/run-board-link.ts +31 -0
- package/scripts/run/board/run-board-machine.ts +198 -0
- package/scripts/run/board/run-board-notes.ts +103 -0
- package/scripts/run/board/run-board-phase.ts +136 -0
- package/scripts/run/board/run-board-plan.ts +129 -0
- package/scripts/run/board/run-board-read.ts +62 -0
- package/scripts/run/board/run-board-render-legend.ts +82 -0
- package/scripts/run/board/run-board-render-notes.ts +77 -0
- package/scripts/run/board/run-board-render-slot.ts +50 -0
- package/scripts/run/board/run-board-render.ts +407 -0
- package/scripts/run/board/run-board-scope.ts +17 -0
- package/scripts/run/board/run-board-screen.ts +43 -0
- package/scripts/run/board/run-board-span.ts +66 -0
- package/scripts/run/board/run-board-spin.ts +115 -0
- package/scripts/run/board/run-board-state.ts +113 -0
- package/scripts/run/board/run-board-status.ts +279 -0
- package/scripts/run/board/run-board-tick.ts +210 -0
- package/scripts/run/board/run-board-track.ts +22 -0
- package/scripts/run/board/run-board-usage-read.ts +255 -0
- package/scripts/run/board/run-board-usage-rusage.ts +124 -0
- package/scripts/run/board/run-board-usage-text.ts +80 -0
- package/scripts/run/board/run-board-usage.ts +165 -0
- package/scripts/run/carry/run-carry-added.ts +62 -0
- package/scripts/run/carry/run-carry-args.ts +25 -22
- package/scripts/run/carry/run-carry-change.ts +1 -1
- package/scripts/run/carry/run-carry-cli.ts +71 -48
- package/scripts/run/carry/run-carry-conversation.ts +6 -7
- package/scripts/run/carry/run-carry-ended.ts +85 -0
- package/scripts/run/carry/run-carry-reclaim.ts +1 -1
- package/scripts/run/carry/run-carry-stash.ts +3 -2
- package/scripts/run/carry/run-carry-streak.ts +8 -10
- package/scripts/run/carry/run-carry.ts +85 -89
- package/scripts/run/cut/run-cut-args.ts +7 -7
- package/scripts/run/cut/run-cut-cli.ts +68 -37
- package/scripts/run/cut/run-cut-handoff.ts +15 -15
- package/scripts/run/cut/run-cut-report.ts +37 -16
- package/scripts/run/cut/run-cut.ts +63 -77
- package/scripts/run/detached-launch.ts +35 -50
- package/scripts/run/entry/run-entry-cli.ts +48 -27
- package/scripts/run/entry/run-entry-stop.ts +7 -9
- package/scripts/run/entry/run-entry.ts +5 -6
- package/scripts/run/event/run-event-cli.ts +5 -6
- package/scripts/run/event/run-event-filed.ts +69 -0
- package/scripts/run/event/run-event-follow.ts +3 -3
- package/scripts/run/event/run-event-plan.ts +38 -0
- package/scripts/run/event/run-event-render.ts +10 -4
- package/scripts/run/event/run-event-scope.ts +47 -18
- package/scripts/run/event/run-event-stream-emit.ts +64 -11
- package/scripts/run/event/run-event-stream.ts +172 -43
- package/scripts/run/event/run-event-watch.ts +4 -6
- package/scripts/run/hold/run-hold-cli.ts +65 -62
- package/scripts/run/hold/run-hold.ts +88 -46
- package/scripts/run/merge/run-merge-cli.ts +116 -77
- package/scripts/run/merge/run-merge-collect.ts +107 -0
- package/scripts/run/merge/run-merge-steps.ts +112 -65
- package/scripts/run/merge/run-merge-token.ts +30 -0
- package/scripts/run/merge/run-merge.ts +31 -22
- package/scripts/run/progress/run-progress-args.ts +4 -4
- package/scripts/run/progress/run-progress-cli.ts +39 -50
- package/scripts/run/progress/run-progress-clock.ts +25 -32
- package/scripts/run/progress/run-progress-config.ts +6 -9
- package/scripts/run/progress/run-progress-read.ts +9 -10
- package/scripts/run/progress/run-progress.ts +48 -53
- package/scripts/run/review/run-review-cli.ts +6 -6
- package/scripts/run/review/run-review-steps.ts +6 -6
- package/scripts/run/review/run-review.ts +9 -11
- package/scripts/run/run-cli-fault.ts +29 -0
- package/scripts/run/run-ending-cli.ts +3 -3
- package/scripts/run/run-ending.ts +10 -14
- package/scripts/run/run-halfrun-resume.ts +6 -8
- package/scripts/run/run-headless.ts +25 -12
- package/scripts/run/run-invocation.ts +17 -22
- package/scripts/run/run-label.ts +7 -5
- package/scripts/run/run-liveness-cli.ts +19 -6
- package/scripts/run/run-liveness.ts +27 -38
- package/scripts/run/run-next-cli.ts +5 -9
- package/scripts/run/run-next.ts +4 -5
- package/scripts/run/run-parent-cut-hook.ts +10 -12
- package/scripts/run/run-preflight.ts +25 -29
- package/scripts/run/run-prep-cli.ts +17 -13
- package/scripts/run/run-prep-locate.ts +4 -5
- package/scripts/run/run-prep.ts +7 -10
- package/scripts/run/run-prrun-resume.ts +2 -2
- package/scripts/run/run-report-cli.ts +4 -4
- package/scripts/run/run-report.ts +9 -14
- package/scripts/run/run-retrospective.ts +3 -3
- package/scripts/run/run-section.ts +42 -0
- package/scripts/run/run-stage-read.ts +2 -2
- package/scripts/run/run-stage.ts +6 -4
- package/scripts/run/run-status-cli.ts +7 -5
- package/scripts/run/run-status.ts +6 -7
- package/scripts/run/run-step-cli.ts +13 -15
- package/scripts/run/run-step.ts +62 -48
- package/scripts/run/run-stop-notify.ts +7 -8
- package/scripts/run/run-stranded-cli.ts +1 -1
- package/scripts/run/run-stranded-detect.ts +4 -4
- package/scripts/run/run-stranded.ts +11 -13
- package/scripts/run/run-tail-cli.ts +15 -16
- package/scripts/run/run-tail.ts +14 -33
- package/scripts/run/run-watcher-guard-cli.ts +3 -4
- package/scripts/run/run-watcher-guard.ts +11 -12
- package/scripts/run/run-watcher-hook.ts +6 -12
- package/scripts/run/ship/run-ship-cli.ts +67 -33
- package/scripts/run/ship/run-ship-detach.ts +15 -13
- package/scripts/run/ship/run-ship-lock.ts +1 -1
- package/scripts/run/ship/run-ship-next.ts +7 -8
- package/scripts/run/ship/run-ship-pre-detach.ts +27 -11
- package/scripts/run/ship/run-ship-preflight.ts +10 -11
- package/scripts/run/ship/run-ship-probe.ts +4 -4
- package/scripts/run/ship/run-ship-return.ts +1 -1
- package/scripts/run/ship/run-ship-review-steps.ts +43 -24
- package/scripts/run/ship/run-ship-review.ts +12 -14
- package/scripts/run/ship/run-ship-scoped.ts +15 -6
- package/scripts/run/ship/run-ship-stage.ts +80 -26
- package/scripts/run/ship/run-ship-steps.ts +26 -16
- package/scripts/run/ship/run-ship-stop-text.ts +4 -2
- package/scripts/run/ship/run-ship-sync.ts +9 -8
- package/scripts/run/ship/run-ship.ts +17 -32
- package/scripts/run/tidy/run-tidy-cli.ts +9 -5
- package/scripts/run/tidy/run-tidy-lanes.ts +18 -7
- package/scripts/run/tidy/run-tidy-stashes.ts +8 -8
- package/scripts/run/tidy/run-tidy.ts +4 -3
- package/scripts/run/wake/run-wake-cli.ts +27 -33
- package/scripts/run/wake/run-wake-describe.ts +76 -29
- package/scripts/run/wake/run-wake-driver.ts +14 -14
- package/scripts/run/wake/run-wake-handoff.ts +6 -6
- package/scripts/run/wake/run-wake-loop.ts +13 -21
- package/scripts/run/wake/run-wake-restart.ts +4 -5
- package/scripts/run/wake/run-wake-session.ts +23 -27
- package/scripts/run/wake/run-wake.ts +57 -328
- package/scripts/safe-chain/ci-installer-pin.ts +3 -3
- package/scripts/safe-chain/pack-hook.ts +2 -2
- package/scripts/safe-chain/preinstall-command.ts +2 -2
- package/scripts/security/security-audit-logic.ts +1 -1
- package/scripts/security/security-audit-provision-logic.ts +1 -1
- package/scripts/security/security-audit-provision.ts +2 -2
- package/scripts/security/security-audit.ts +5 -5
- package/scripts/security/security-updates-logic.ts +2 -3
- package/scripts/security/security-updates.ts +2 -4
- package/scripts/self-sync-guard/index.ts +1 -1
- package/scripts/self-sync-guard/self-sync-guard-logic.ts +2 -2
- package/scripts/self-sync-guard/self-sync-refusal.ts +1 -1
- package/scripts/sonar/sonar-hotspots-cli.ts +1 -1
- package/scripts/sonar/sonar-hotspots.ts +1 -1
- package/scripts/sonar/sonar-new-code-cli.ts +1 -1
- package/scripts/sonar/sonar-new-code.ts +1 -1
- package/scripts/sonar/sonar-project.ts +1 -1
- package/scripts/split/split-assess-cli.ts +1 -1
- package/scripts/split/split-assess.ts +3 -3
- package/scripts/sync/directory-copy-guard.ts +2 -3
- package/scripts/sync/managed-config-scope-cli.ts +1 -2
- package/scripts/sync/managed-config-scope.ts +4 -4
- package/scripts/sync/plugin-skill-directories.ts +2 -2
- package/scripts/sync/reconcile-templates.ts +17 -8
- package/scripts/sync/removed-skill-manifest.ts +2 -3
- package/scripts/sync/sync-ai-files.ts +7 -7
- package/scripts/sync/sync-configs.ts +30 -3
- package/scripts/sync/sync-hook-safety.ts +2 -2
- package/scripts/sync/sync.ts +23 -10
- package/scripts/sync/synced-paths.ts +2 -1
- package/scripts/sync/workflow-pin-logic.ts +1 -1
- package/scripts/test/test-declared-changed.ts +4 -4
- package/scripts/test/test-declared-logic.ts +2 -3
- package/scripts/test/test-declared-match.ts +25 -4
- package/scripts/test/test-declared.ts +26 -9
- package/scripts/test/test-red-commit.ts +3 -2
- package/scripts/test/test-red-logic.ts +7 -14
- package/scripts/test/test-red.ts +12 -47
- package/scripts/test/test-related-scope.ts +2 -3
- package/scripts/test/test-related.ts +3 -3
- package/scripts/test/test-type-logic.ts +1 -2
- package/scripts/test/test-unit-guard.ts +13 -17
- package/scripts/test/unit-worker-share.ts +7 -8
- package/scripts/time-runtime/time-agent-bundles.ts +2 -4
- package/scripts/time-runtime/time-background.ts +17 -21
- package/scripts/time-runtime/time-batch-guard.ts +67 -342
- package/scripts/time-runtime/time-bundle-call.ts +26 -28
- package/scripts/time-runtime/time-bundles.ts +11 -12
- package/scripts/time-runtime/time-call-identity.ts +1 -1
- package/scripts/time-runtime/time-command-key.ts +2 -2
- package/scripts/time-runtime/time-density-hook.ts +8 -11
- package/scripts/time-runtime/time-density.ts +5 -5
- package/scripts/time-runtime/time-followup-stage.ts +7 -7
- package/scripts/time-runtime/time-format.ts +5 -5
- package/scripts/time-runtime/time-hook-transcript.ts +3 -3
- package/scripts/time-runtime/time-instant.ts +1 -1
- package/scripts/time-runtime/time-markers.ts +15 -19
- package/scripts/time-runtime/time-phase-names.ts +3 -3
- package/scripts/time-runtime/time-reported-failure.ts +15 -19
- package/scripts/time-runtime/time-round-trips.ts +20 -23
- package/scripts/time-runtime/time-shell.ts +8 -8
- package/scripts/time-runtime/time-single-check.ts +1 -2
- package/scripts/time-runtime/time-spans.ts +35 -40
- package/scripts/time-runtime/time-tool-call.ts +15 -16
- package/scripts/time-runtime/time-transcript-line.ts +53 -34
- package/scripts/time-runtime/time-writes.ts +5 -5
- package/scripts/ui/ui-routes-cli.ts +1 -2
- package/scripts/ui/ui-routes.ts +1 -2
- package/scripts/version/bump-version.ts +1 -1
- package/scripts/version/fresh-metadata-cache.ts +2 -2
- package/scripts/version/latest-corepack.ts +129 -98
- package/scripts/version/latest-lane-guard.ts +1 -1
- package/scripts/version/latest-scope-cli.ts +2 -2
- package/scripts/version/latest-stamp.ts +1 -2
- package/scripts/version/latest-update.ts +2 -2
- package/scripts/version/npm-registry.ts +2 -2
- package/scripts/version/package-manager-version.ts +18 -0
- package/scripts/version/publishable-range-check.ts +2 -1
- package/scripts/version/publishable-range.ts +1 -1
- package/scripts/version/release-age.ts +11 -11
- package/scripts/version/release-hold.ts +2 -2
- package/scripts/version/safe-chain-version-update.ts +3 -3
- package/scripts/version/version-check-logic.ts +2 -3
- package/scripts/version/version-check.ts +1 -2
- package/scripts/version/version-command-config.ts +2 -2
- package/scripts/version/version-commands.ts +3 -3
- package/scripts/version/version-remote.ts +4 -4
- package/scripts/version/version-targets.ts +2 -2
- package/templates/gitignore +7 -0
- package/templates/workflows/github-release.yml +4 -0
- package/dist/hooks/chunk-NV2JRZZO.js +0 -6385
- package/dist/hooks/chunk-RKUAD3I6.js +0 -90
- package/dist/hooks/chunk-WPALEIRX.js +0 -18
- package/scripts/backlog/backlog-restructure.ts +0 -152
- package/scripts/rules/issue-fold-rule.ts +0 -72
- package/scripts/rules/wip-cap.ts +0 -63
- package/scripts/run/run-issue-number.ts +0 -19
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
# `backlogrun` — the manifest (named issues, epics and the opted-in backlog)
|
|
2
2
|
|
|
3
|
-
**This file is the manifest, not the procedure
|
|
4
|
-
|
|
5
|
-
`backlogrun-
|
|
6
|
-
|
|
7
|
-
documents are, so a `backlogrun` entry carries this manifest and nothing else up front
|
|
8
|
-
(joshuafolkken/kit#2010, joshuafolkken/kit#2190).
|
|
3
|
+
**This file is the manifest, not the procedure**: the ordered flow as terse triggers, and the route
|
|
4
|
+
table naming the one section each moment reads. Rationale and provenance:
|
|
5
|
+
`docs/maintainers/backlogrun-rationale.md` → "Why the loop's position is computed";
|
|
6
|
+
`docs/maintainers/backlogrun-rationale.md` → "Where each rule came from".
|
|
9
7
|
|
|
10
8
|
**`backlogrun` names either nothing, or the issues and epics to run first.** With no argument it runs
|
|
11
9
|
whatever `pnpm josh backlog:next` offers — the whole opted-in backlog, every issue carrying `auto-ok`
|
|
@@ -15,12 +13,9 @@ that same backlog. **`--only` stops it after the named list**, draining nothing.
|
|
|
15
13
|
|
|
16
14
|
**The loop's current position is computed, not carried in the conversation.** `pnpm josh run:step <N>`
|
|
17
15
|
reads where the run is from the event stream, the carry record and the issue state, and prints the next
|
|
18
|
-
single action — a runnable command, or the one point a person has to judge
|
|
19
|
-
compaction or a fresh resume reaches the same next step from the same three inputs
|
|
20
|
-
(joshuafolkken/kit#2248).
|
|
16
|
+
single action — a runnable command, or the one point a person has to judge.
|
|
21
17
|
|
|
22
|
-
**A named item may be a single issue or an epic**
|
|
23
|
-
`epicrun` keyword). A single-issue item is one `fullrun`; **a named epic runs its children in
|
|
18
|
+
**A named item may be a single issue or an epic.** A single-issue item is one `fullrun`; **a named epic runs its children in
|
|
24
19
|
dependency order across the free lanes, and the run does not advance to the next named item until
|
|
25
20
|
every one of that epic's children has been processed — merged or parked.** `backlogrun #E --only`
|
|
26
21
|
therefore runs exactly one epic's children and stops.
|
|
@@ -33,56 +28,50 @@ is still that one invocation (`backlogrun-steps.md` → "The session cut is insi
|
|
|
33
28
|
|
|
34
29
|
## The manifest — the ordered flow
|
|
35
30
|
|
|
36
|
-
Each step is a terse trigger and a pointer; the procedure is read on demand from the section named.
|
|
37
|
-
|
|
38
31
|
1. **Claim nothing at the entry — this parent orchestrates and never implements.** The working-tree
|
|
39
32
|
hold, the split assessment and `fullrun.md` are read by a dispatched child inside its own delegated
|
|
40
|
-
`fullrun` unit
|
|
33
|
+
`fullrun` unit, never at the parent's entry.
|
|
41
34
|
2. **Begin the carry record before the plan** — `pnpm josh run:carry --begin "<invocation>" --owner
|
|
42
|
-
"$PPID"` and `pnpm josh run:wake --start`, in the same turn as the first `
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`backlogrun-steps.md` → "The session cut is inside the invocation".
|
|
46
|
-
3. **What this invocation approves** — `backlogrun-steps.md` → "What one invocation approves": the
|
|
47
|
-
opted-in pool, a run's own filings once bundled, and the brake (`--max`, ten filings, the WIP cap)
|
|
48
|
-
that bounds the amount. `auto-ok` reaches a run's own filings only through `issue:file`'s default.
|
|
35
|
+
"$PPID"` and `pnpm josh run:wake --start`, in the same turn as the first `pnpm josh ms`.
|
|
36
|
+
3. **What this invocation approves** — the opted-in pool, a run's own filings once bundled, and the
|
|
37
|
+
brake that bounds the amount; the route table's row points at the single source of the `auto-ok` default.
|
|
49
38
|
4. **Report the plan before the first child** — `pnpm josh backlog:plan`, then resolve every
|
|
50
|
-
`needs-decision` issue decidable from its body in one pass
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
| `
|
|
84
|
-
|
|
|
85
|
-
|
|
|
39
|
+
`needs-decision` issue decidable from its body in one pass, recording `blocked-by`, `run:solo` and
|
|
40
|
+
`run:lane` in the same pass.
|
|
41
|
+
5. **Named issues run first, in order** — each as a delegated `fullrun`, one at a time, then the pool;
|
|
42
|
+
`--only` stops after the list.
|
|
43
|
+
6. **The loop belongs to the supervisor** — `run:wake` runs `backlog:drive`, which returns a branch to
|
|
44
|
+
an AI session only when it needs judgment.
|
|
45
|
+
7. **End the record when the run ends** — `run:report`, then `run:carry --end` (or `--end --stopped
|
|
46
|
+
"<reason>"`) and `run:wake --stop`.
|
|
47
|
+
|
|
48
|
+
## The route table
|
|
49
|
+
|
|
50
|
+
**Read one section, at the moment its row names, with `pnpm josh doc:section <file> "<heading>"`** —
|
|
51
|
+
never a whole document (`SKILL.md` → "A section reference is read as a section"):
|
|
52
|
+
|
|
53
|
+
| The moment | Read |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| The entry: the carry record and its answers | `backlogrun-steps.md` → "The session cut is inside the invocation" |
|
|
56
|
+
| What the invocation may merge, and the `auto-ok` default | `backlogrun-steps.md` → "What one invocation approves" |
|
|
57
|
+
| Before the first child: the plan and the decision pass | `backlogrun-steps.md` → "The plan, before the first child starts" |
|
|
58
|
+
| The driver hands a branch back | `backlogrun-steps.md` → "The loop" |
|
|
59
|
+
| Once per session | `backlogrun-steps.md` → "What runs once per session, not once per issue" |
|
|
60
|
+
| `josh latest:scope` answers `required` | `latest-gate.md` (whole) |
|
|
61
|
+
| Starting the progress watcher | `progress-watcher.md` → "Progress while the run is quiet" |
|
|
62
|
+
| The run ends | `backlogrun-steps.md` → "End the record when the run ends" |
|
|
63
|
+
| Labelling an issue `run:solo` | `backlogrun-lanes.md` → "A solo run" |
|
|
64
|
+
| Before the first lane opens | `backlogrun-lanes.md` → "Once per repository, before the first lane opens" |
|
|
65
|
+
| Opening a lane by hand | `backlogrun-lanes.md` → "Opening one lane and dispatching its child" |
|
|
66
|
+
| The first child is in hand | `backlogrun-child.md` → "`josh latest` runs once per session, not once per child" |
|
|
67
|
+
| Dispatching a child | `backlogrun-child.md` → "Each child runs in a delegated unit" |
|
|
68
|
+
| An `epic #N` hand-back, a `merge` branch, or a `run:merge` token | `backlogrun-progress.md` → "Running a named epic's children" |
|
|
69
|
+
| A merge answered `over` | `backlogrun-progress.md` → "The hand-off" |
|
|
70
|
+
| A resumed session | `backlogrun-progress.md` → "Resuming after a cut" |
|
|
71
|
+
| The run's last merge | `backlogrun-progress.md` → "Who sends the summary, and who propagates" |
|
|
72
|
+
| `josh release:scope`, after the last merge | `followup.md` → "When `pnpm josh release` runs" |
|
|
73
|
+
| A unit went silent | `backlogrun-recovery.md` → "A delegated unit that stopped without reporting" |
|
|
74
|
+
| A child cannot finish | `backlogrun-park.md` → "park and continue" |
|
|
86
75
|
|
|
87
76
|
## Guards
|
|
88
77
|
|
|
@@ -97,7 +86,7 @@ A failure that is not consecutive parks its child and the run continues.
|
|
|
97
86
|
## This file is the single source of the `backlogrun` procedure
|
|
98
87
|
|
|
99
88
|
`CLAUDE.md` carries the keyword's row in the shorthand table and the explicit-invocation rule;
|
|
100
|
-
`SKILL.md` → §1 routes here. This manifest names which children there are and in what order;
|
|
101
|
-
procedure
|
|
102
|
-
|
|
103
|
-
|
|
89
|
+
`SKILL.md` → §1 routes here. This manifest names which children there are and in what order; each
|
|
90
|
+
step's procedure is the section its route-table row names. Where any of them could disagree, the rule
|
|
91
|
+
is that this manifest and `backlogrun-steps.md` add nothing to a child's procedure — they only say
|
|
92
|
+
which children there are.
|
|
@@ -2,22 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
## Run the review-to-merge chain
|
|
4
4
|
|
|
5
|
-
This is the execution contract for `fullrun` and `backlogrun
|
|
5
|
+
This is the execution contract for `fullrun` and `backlogrun`, and for `prrun` up to the pull request: a `prrun` never issues `pnpm josh ship` or a merging `pnpm josh followup` — it opens the pull request with `pnpm josh git -y` and ends by `prrun.md` → "The difference — the end of the run". The record below is reference only.
|
|
6
6
|
Review results and successful pushes are never turn boundaries.
|
|
7
7
|
|
|
8
|
-
0. **A lane child
|
|
8
|
+
0. **A lane child**: `pnpm josh main:merge`, the scoped pair, `pnpm josh ship --detach --review
|
|
9
9
|
"<title> #<N>"` (`--cite <N>`), then **end the turn** on `launched`/`busy`. A stop relaunches a child
|
|
10
|
-
whose prompt names `pnpm josh ship --log <N>` and (Anthropic lane
|
|
10
|
+
whose prompt names `pnpm josh ship --log <N>` and (Anthropic lane) the re-detach to run after
|
|
11
11
|
the fix — `pnpm josh ship --detach`, `--review` only if the stopped ship carried it and stopped before
|
|
12
12
|
round 2, which is final (`scripts/run/ship/run-ship-next.ts`); the supervisor skips a recorded round 1.
|
|
13
13
|
`failed` → step 1. A backgrounded `ship` issued alone is moved to the foreground by the hook
|
|
14
|
-
rather than refused
|
|
14
|
+
rather than refused.
|
|
15
15
|
1. Run `pnpm josh main:merge`. **Then issue `pnpm josh run:cut <N>` alone, before the scoped pair and
|
|
16
|
-
the gate** — the pre-gate cut (a no-op outside a lane
|
|
17
|
-
`pnpm josh gate` in the background and prints the `/code-review`
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
guessed type name fails, joshuafolkken/kit#2297).
|
|
16
|
+
the gate** — the pre-gate cut (a no-op outside a lane). Then run the final scoped lint/test pair and
|
|
17
|
+
`pnpm josh run:review`: it starts `pnpm josh gate` in the background and prints the `/code-review`
|
|
18
|
+
brief in one call, so the two overlap. Launch the `/code-review` subagent as the `general-purpose`
|
|
19
|
+
agent type with that brief (every tool, so `--fix` applies; never a guessed type name).
|
|
21
20
|
Never load the review skill in the main line.
|
|
22
21
|
2. Once the review returns, run `pnpm josh run:review --join` to join and read the gate before
|
|
23
22
|
committing; it exits non-zero on a red gate. Fix any red check, then rerun the affected scoped check
|
|
@@ -34,14 +33,15 @@ Review results and successful pushes are never turn boundaries.
|
|
|
34
33
|
of remaining non-High findings; a confirmed High blocks and receives a `confirmation` Telegram.
|
|
35
34
|
Any round-1 fix runs its affected scoped check and the gate before `git -y`.
|
|
36
35
|
Once a round's verdict is attested, record its findings with `pnpm josh review:record --issue <N>
|
|
37
|
-
[<category>:<severity>:<file> ...]` — a clean round records one zero-finding line.
|
|
36
|
+
[<category>:<severity>:<file> ...]` — a clean round records one zero-finding line. **A round 2 that
|
|
37
|
+
passes takes `--comment`** (`observation-ledger.md` → "The commit path").
|
|
38
38
|
**`pnpm josh followup` refuses the merge until the round is recorded**
|
|
39
|
-
(`pnpm josh review:record --check --issue <N
|
|
39
|
+
(`pnpm josh review:record --check --issue <N>`).
|
|
40
40
|
5. **The clean path ships in one call** — with no second round due, background
|
|
41
|
-
`pnpm josh ship "<title> #<N>" --body-file <evidence.md>`: PR preflight
|
|
42
|
-
`followup` → `run:tail`, stopping at the first failure
|
|
43
|
-
does not fit `ship`**: the PR opens between the rounds — background
|
|
44
|
-
`pnpm josh followup`.
|
|
41
|
+
`pnpm josh ship "<title> #<N>" --body-file <evidence.md>`: PR preflight → gate → `git -y` →
|
|
42
|
+
`followup` → `run:tail`, stopping at the first failure. `--review` runs both rounds. **Else a due
|
|
43
|
+
round 2 does not fit `ship`**: the PR opens between the rounds — background
|
|
44
|
+
`pnpm josh git -y "<title> #<N>"`, round 2 beside CI, then `pnpm josh followup`.
|
|
45
45
|
|
|
46
46
|
A lane child may end once, at step 0 or the pre-gate cut (`pre-gate-cut.md`); never at the push. The chain otherwise stops only when the PR is merged, the completion Telegram was sent, and
|
|
47
47
|
`pnpm josh ms` returned to the default branch, or when user judgment is required by an unverifiable
|
|
@@ -51,51 +51,47 @@ Recommendations are informational; severity decides. A CodeRabbit rate-limit war
|
|
|
51
51
|
|
|
52
52
|
## Orchestration facts single-sourced here
|
|
53
53
|
|
|
54
|
-
These are the gate → review → PR → merge facts other documents cite
|
|
55
|
-
(
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
These are the gate → review → PR → merge facts other documents cite; this file is their single source
|
|
55
|
+
(`prompts/review.md` carries the review _policy_, `prompts/review-rubric.md` the rubric). Where each
|
|
56
|
+
rule came from and why it holds: `docs/maintainers/chain-rule-rationale.md` → "Where each rule came
|
|
57
|
+
from", `docs/maintainers/chain-rule-rationale.md` → "Why the orchestration facts hold".
|
|
58
58
|
|
|
59
59
|
- **The gate runs beside this review, not in front of it** — `pnpm josh gate` is started when the review
|
|
60
|
-
starts and joined before the commit
|
|
61
|
-
|
|
62
|
-
is no path to a commit on a gate nobody read (joshuafolkken/kit#1242).
|
|
60
|
+
starts and joined before the commit. A red gate is fixed and re-run whatever the review concluded, and
|
|
61
|
+
there is no path to a commit on a gate nobody read.
|
|
63
62
|
- **origin/main is merged in before the gate** — `pnpm josh main:merge` merges `origin/<default>` into
|
|
64
|
-
the branch before the gate and the review start
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
early. **This is the one place a conflicted merge's procedure is written** (joshuafolkken/kit#2445):
|
|
63
|
+
the branch before the gate and the review start. It is the last edit, so the scoped pair and the gate
|
|
64
|
+
run once over it. A conflict here fires `backlogrun-recovery.md` → "Conflicts are not predicted"
|
|
65
|
+
early. **This is the one place a conflicted merge's procedure is written**:
|
|
68
66
|
`main:merge` refuses before merging when uncommitted changes touch a path the default branch also
|
|
69
67
|
changed, or when the index still holds unresolved or staged paths — commit the work first with
|
|
70
|
-
`pnpm josh git -y`, then rerun it, and **never stash around the merge
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
the `Stop` hook sends back a reply that does.
|
|
68
|
+
`pnpm josh git -y`, then rerun it, and **never stash around the merge**. A merge that stops on a
|
|
69
|
+
conflict is finished the same way: remove the markers, then `pnpm josh git -y` stages the resolution
|
|
70
|
+
and records the merge commit. That commit is the sanctioned flow, so it is **Tier A** — a lane child
|
|
71
|
+
never stops to ask a person for `git add`, and the `Stop` hook sends back a reply that does.
|
|
75
72
|
- **A single check answers once per tree** — while implementing, re-run a single check by name
|
|
76
73
|
(`pnpm josh lint:related`, `pnpm josh cspell:dot`, `pnpm josh test:related`, or the project's type
|
|
77
74
|
check) after every edit; a repeat of the same command with the same arguments over a tree nothing has
|
|
78
|
-
touched since buys only a copy of the answer already in hand
|
|
75
|
+
touched since buys only a copy of the answer already in hand. In kit a detached `pnpm josh ship` also
|
|
76
|
+
checks the metrics totals before the hand-off, so the implementing session accepts a grown total with
|
|
77
|
+
its reason, as the ship's output names.
|
|
79
78
|
- **The pull request opens between the rounds, so CI runs beside round 2** — `pnpm josh git -y` sits
|
|
80
79
|
between the two review rounds. Round 1 runs on the uncommitted tree and its High/Medium findings are
|
|
81
80
|
fixed before anything is committed; the verification pass over those fixes then runs against the open
|
|
82
|
-
pull request, beside the CI the commit started
|
|
81
|
+
pull request, beside the CI the commit started.
|
|
83
82
|
- **The round-2 fix commit is pushed before its gate** — a fix the second round makes in place is
|
|
84
83
|
pushed (`pnpm josh git -y` again, a follow-up commit) before its `pnpm josh gate`, so the gate runs
|
|
85
|
-
inside the CI wait and is joined before `pnpm josh followup` rather than in front of it
|
|
86
|
-
(joshuafolkken/kit#1326). The commit and pre-push hooks and CI's `Checks` job mean pushing first is
|
|
87
|
-
not pushing unverified code.
|
|
84
|
+
inside the CI wait and is joined before `pnpm josh followup` rather than in front of it.
|
|
88
85
|
- **A clean second round issues the merge in the same turn** — the turn that reads a clean second round
|
|
89
86
|
issues `pnpm josh followup`, after any branch-2 filing and `pnpm josh epic:bundle` and never in a turn
|
|
90
87
|
of its own. Clean has two halves: no confirmed High is standing, and nothing was routed to branch 1 of
|
|
91
|
-
the disposition
|
|
88
|
+
the disposition.
|
|
92
89
|
- **The review runs in a subagent, never a main-line skill load** — `/code-review` is spawned through
|
|
93
|
-
the `Agent` tool in its own context, as the agent type step 1 names
|
|
94
|
-
the whole cached prompt prefix, which is what makes it expensive (joshuafolkken/kit#1855).
|
|
90
|
+
the `Agent` tool in its own context, as the agent type step 1 names.
|
|
95
91
|
- **The brief names the checkout, and a review that read another one is refused** — `pnpm josh
|
|
96
92
|
review:brief` prints the checkout root, branch and HEAD and a nonce; the review runs `pnpm josh
|
|
97
93
|
review:attest <nonce>` from the tree it read, and `pnpm josh review:attest --check` must answer `ok`
|
|
98
|
-
before the run or `pnpm josh followup` acts on the verdict, or it is discarded
|
|
94
|
+
before the run or `pnpm josh followup` acts on the verdict, or it is discarded.
|
|
99
95
|
|
|
100
96
|
This file is the single source of the gate → review → PR → merge chain rule; other documents reference
|
|
101
97
|
it rather than restating it. `prompts/collaboration-workflow/plan-comment.md` keeps Step 3.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# The entry sequence and the stop branches — shared by `fullrun`, `halfrun` and `prrun`
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
`fullrun.md`, `halfrun.md` and `prrun.md` name only how their own run differs from this shared
|
|
4
|
+
procedure; `pnpm josh run:step <N>` prints the run's next single action. History:
|
|
5
|
+
`docs/maintainers/entry-sequence-rationale.md` → "Where each rule came from".
|
|
6
6
|
|
|
7
7
|
## The ordered entry sequence
|
|
8
8
|
|
|
9
|
-
**One call folds the mechanical steps
|
|
9
|
+
**One call folds the mechanical steps**: `pnpm josh run:entry <N> --to
|
|
10
10
|
<command>` claims the tree, reads the budget, bundles the reads and decides the pre-implementation
|
|
11
11
|
step — steps 1, 3, 4 and 5 below in one round trip. Its `stage #<N>` line says where the run starts
|
|
12
12
|
(`start: reached` redoes nothing — stop), and its `entry #<N> — hold: … · cost: … · verdict: …` line
|
|
@@ -33,7 +33,7 @@ short-circuits with a non-zero exit. The numbered steps are the detail behind ea
|
|
|
33
33
|
dependency scope in one report; a `new` entry runs it once filed. The comment stops, the
|
|
34
34
|
`human_review` stop (`needs-human-review.md`) and the dependency decision are read off it.
|
|
35
35
|
5. **Print the next action — `pnpm josh run:step <N>`** — and follow it into the command's step list.
|
|
36
|
-
Before implementing, `
|
|
36
|
+
Before implementing, `pnpm josh ms`, then `pnpm josh latest:scope` — update
|
|
37
37
|
dependencies only on `required` (`latest-gate.md`), never on every run. `run:step` names every later
|
|
38
38
|
action in order, each read at the point-of-use document `SKILL.md` lists, never re-narrated here
|
|
39
39
|
(`residency.md` → "順序の問い").
|
|
@@ -54,7 +54,7 @@ lane child starts none and never reads that document (`pnpm josh read:set lane-c
|
|
|
54
54
|
- **A prerequisite** — file it (`route:tier-a`), stash, record the dependency, and **STOP** with
|
|
55
55
|
"Please run `backlogrun #<E> --only` to execute this epic"; `prerequisite.md` is the single source of
|
|
56
56
|
the filing, the `-u` stash and the epic:bundle branch.
|
|
57
|
-
- **An observation** —
|
|
57
|
+
- **An observation** — `observation-filing.md` (ask first if interactive).
|
|
58
58
|
|
|
59
59
|
**Automatic filing is capped at 10 Issues per run.** On reaching it, stop and report.
|
|
60
60
|
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Everything between a green CI and a merged PR: the command, the merge it authorizes, the notifications,
|
|
4
4
|
the reviewer scan, the config report and the release ask. `fullrun` and `backlogrun` end here;
|
|
5
5
|
`halfrun` never reaches this file, because it stops before the commit. This file is the single source
|
|
6
|
-
of the rule
|
|
6
|
+
of the rule. Where each rule came from: `docs/maintainers/followup-rationale.md` → "Where each rule
|
|
7
|
+
came from".
|
|
7
8
|
|
|
8
9
|
## Run `pnpm josh followup`
|
|
9
10
|
|
|
@@ -19,10 +20,10 @@ bullets. Use the file option whenever it contains a command or path.
|
|
|
19
20
|
It waits for required CI, checks CodeRabbit and top-level AI review comments, sends the completion
|
|
20
21
|
Telegram, merges by default, posts the Issue report, closes completed epics, removes `in-progress`,
|
|
21
22
|
and releases the hold. Only `--no-merge` stops the merge; `--merge` is a deprecated no-op. **A pull
|
|
22
|
-
request already merged by hand** (a `prrun` stop
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
request already merged by hand** (a `prrun` stop) skips the CI wait, the AI review scan and the merge
|
|
24
|
+
and runs only the post-merge tail; a completion report already on the Issue is not posted or notified
|
|
25
|
+
twice, so re-running is safe. Keep the default Issue target. Ignore a finding only after verifying it
|
|
26
|
+
is inapplicable; rate-limit text is not a finding.
|
|
26
27
|
|
|
27
28
|
**A red rate-limited CodeRabbit check is cleared by a retrigger, not a bypass.** Wait out the window
|
|
28
29
|
the rate-limit comment states, post `@coderabbitai review` on the pull request, and rerun `followup`.
|
|
@@ -55,7 +56,7 @@ Invoking `fullrun` is itself the explicit authorization to merge; the user adds
|
|
|
55
56
|
|
|
56
57
|
- **Always run `pnpm josh ms` after a successful merge** — it returns the tree to the default branch
|
|
57
58
|
with the merge commit pulled. **In a lane, `pnpm josh lane:close <N>` is the terminal step instead**:
|
|
58
|
-
|
|
59
|
+
`josh ms` refuses there, and the refresh is the parent's.
|
|
59
60
|
- **Green CI is not authorization to merge while AI review findings are open.** On a blocker
|
|
60
61
|
`followup` sends a `confirmation` Telegram and exits non-zero — fix and re-run. SonarCloud is not
|
|
61
62
|
scanned here; the required `SonarQube` check carries it.
|
|
@@ -90,13 +91,12 @@ no longer bumps, so `package.json` names the previous release. What the run does
|
|
|
90
91
|
## Reading the stage-timing block
|
|
91
92
|
|
|
92
93
|
The command closes with one `followup stage: <name> <seconds>` row per stage and a
|
|
93
|
-
`followup stages total:` line
|
|
94
|
-
guessed.
|
|
94
|
+
`followup stages total:` line, so where it spent its time is read, not guessed.
|
|
95
95
|
|
|
96
96
|
- **A failed run prints it too**, up to the stage that threw, named `interrupted` — a short block is
|
|
97
97
|
the run stopping early, not the printer breaking. The `merge` row appears only on a run that merged.
|
|
98
|
-
- **A row named `<a>-and-<b>` is a batch of requests sent together
|
|
99
|
-
|
|
98
|
+
- **A row named `<a>-and-<b>` is a batch of requests sent together**; `checks-wait` is never
|
|
99
|
+
overlapped, because it is the merge gate.
|
|
100
100
|
- **The total is the sum of the stages**, not the wall clock — the post-merge tail (record clears, the
|
|
101
101
|
hold release, the next-issue listing) sits outside it.
|
|
102
102
|
|
|
@@ -116,25 +116,24 @@ posted after CI goes green is not silently shipped.
|
|
|
116
116
|
N > 0. Rate-limit notices and sign-offs (`All issues resolved ✓`) match nothing.
|
|
117
117
|
- **A standing blocker without `--ai-review-ignore-reason`** sends a `confirmation` Telegram and exits
|
|
118
118
|
non-zero; with it, the reason is posted to the PR and the run proceeds.
|
|
119
|
-
- **A comment listing that could not be read is a standing blocker**
|
|
120
|
-
|
|
121
|
-
- **Temporary
|
|
119
|
+
- **A comment listing that could not be read is a standing blocker** — never an empty listing that
|
|
120
|
+
passes.
|
|
121
|
+
- **Temporary**: CodeRabbit is non-blocking end to end — out of the default required checks
|
|
122
122
|
(restore via `JOSH_REQUIRED_CHECKS`), its actionable count and unreadable line-comment listing are
|
|
123
|
-
audit notes rather than blockers.
|
|
123
|
+
audit notes rather than blockers. When it is reverted:
|
|
124
|
+
`docs/maintainers/followup-rationale.md` → "The temporary CodeRabbit exemption".
|
|
124
125
|
|
|
125
126
|
## Config file reporting
|
|
126
127
|
|
|
127
128
|
`followup` matches every changed path against what `josh sync` distributes (`AI_COPY_FILES`,
|
|
128
129
|
`AI_COPY_FILE_MAPPINGS`, `AI_COPY_DIRECTORIES`, `SYNCED_PATHS`) and **reports** the claimed paths in the
|
|
129
|
-
completion notification and the Issue report
|
|
130
|
-
(
|
|
131
|
-
|
|
132
|
-
answer on demand; there is no flag to pass.
|
|
130
|
+
completion notification and the Issue report. **It stops nothing**
|
|
131
|
+
(`docs/maintainers/followup-rationale.md` → "Why config claims are reported, not stopped").
|
|
132
|
+
`pnpm josh sync:scope` gives the same answer on demand; there is no flag to pass.
|
|
133
133
|
|
|
134
134
|
## When `pnpm josh release` runs
|
|
135
135
|
|
|
136
|
-
**The release point is a position plus a command's answer, never a judgement
|
|
137
|
-
(joshuafolkken/kit#1582).
|
|
136
|
+
**The release point is a position plus a command's answer, never a judgement.**
|
|
138
137
|
|
|
139
138
|
**The position: once per invocation, after the last merge** — a lone `fullrun`'s only one, a
|
|
140
139
|
`backlogrun`'s **last** child, never once per child. In a lane the parent asks it, in the primary
|
|
@@ -155,3 +154,8 @@ the tag → publish → `production` chain — outward-facing and effectively ir
|
|
|
155
154
|
Typing `fullrun` authorizes this Issue's merge and nothing past it; a person types the release in the
|
|
156
155
|
primary checkout, on the default branch, with a clean tree. `release:scope` counts nothing of its own —
|
|
157
156
|
it reads the same fetch-then-count `followup` uses for the Telegram line, so the two cannot disagree.
|
|
157
|
+
|
|
158
|
+
**On `required`, the release request cites the open release Issue** — the one `issue:file --release` / `issue:release <N>` links blockers to — with a number-link
|
|
159
|
+
(`prompts/collaboration-workflow/issue-citation.md`). List it with
|
|
160
|
+
`gh api 'repos/{owner}/{repo}/issues?labels=release&state=open' --jq '.[].number'`; when none is
|
|
161
|
+
open, the request names `pnpm josh release` alone.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
# `fullrun` — the step lists and the branches
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
the run is at, and the sections below carry that step in full.
|
|
3
|
+
**The detailed procedure behind `fullrun.md`'s manifest**, read on demand — `pnpm josh run:next <N>`
|
|
4
|
+
names which step the run is at, and the sections below carry that step in full. History:
|
|
5
|
+
`docs/maintainers/fullrun-steps-rationale.md` → "Where each rule came from".
|
|
7
6
|
|
|
8
7
|
## The `fullrun #N` step list
|
|
9
8
|
|
|
@@ -15,28 +14,26 @@ budget allowed the run, and `run:release <N>` takes it back off → Read Issue #
|
|
|
15
14
|
derive a better English title and `gh api -X PATCH repos/{owner}/{repo}/issues/<N> -f title="<title>"`)
|
|
16
15
|
→ post the agreed plan only if the Issue body is blank (`gh api -X PATCH
|
|
17
16
|
repos/{owner}/{repo}/issues/<N> -f body="<plan>"`); if the body already has content, skip the
|
|
18
|
-
plan-posting step →
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
plan-posting step → implement (the `plan` event `run:board` draws 📝 from is written by code — by
|
|
18
|
+
`run:entry` for a `run:planned` issue, else at the first implementation edit — never by hand; no cut
|
|
19
|
+
follows the plan — a lane child's context is bounded by the
|
|
20
|
+
threshold-gated implementation cut alone) → run the **verification gate** (the full procedure is `chain-rule.md`;
|
|
22
21
|
in outline: refactor → `pnpm josh main:merge` → **a dispatched lane child hands the rest to
|
|
23
|
-
`pnpm josh ship --detach --review "<title> #<N>"` and ends its turn** (`chain-rule.md` step 0,
|
|
24
|
-
joshuafolkken/kit#2428) → otherwise `pnpm josh run:cut <N>` (the pre-gate cut, before the gate; a no-op
|
|
22
|
+
`pnpm josh ship --detach --review "<title> #<N>"` and ends its turn** (`chain-rule.md` step 0) → otherwise `pnpm josh run:cut <N>` (the pre-gate cut, before the gate; a no-op
|
|
25
23
|
outside a lane) → start `pnpm josh gate` and a subagent `/code-review`
|
|
26
24
|
with the brief `pnpm josh review:brief` prints on `git diff main`, join the gate before the commit,
|
|
27
25
|
iterate to no high/medium findings, within the round cap (`prompts/review.md`) → **the clean path folds the ship region into
|
|
28
26
|
one call**, `pnpm josh ship "<title> #<N>"` (gate → commit/push/PR → the CI-wait `followup` → the
|
|
29
|
-
`run:tail` report bookkeeping, stopping at the first failed step
|
|
27
|
+
`run:tail` report bookkeeping, stopping at the first failed step), with any
|
|
30
28
|
branch-2 filing (`pnpm josh issue:file`, which runs `epic:bundle` itself) run before it → **when a second round is due `ship` does not
|
|
31
29
|
fit**: open the PR between the rounds with `pnpm josh git -y "<title> #<N>"`, run round 2 beside CI, then
|
|
32
30
|
`pnpm josh followup` and `pnpm josh run:tail <N>`). Issue plan comments are written in the session language (`JOSH_SESSION_LANG`,
|
|
33
|
-
default `ja`). Before implementing, run `
|
|
31
|
+
default `ja`). Before implementing, run `pnpm josh ms`, then `pnpm josh latest:scope`
|
|
34
32
|
and update dependencies only on `required` — `latest-gate.md` is its single source, and on `required`
|
|
35
|
-
load the `dependency-update` skill afterwards. **A dispatched lane child skips
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`git switch main && git pull` in the primary checkout, never the child — `backlogrun-lanes.md` and
|
|
33
|
+
load the `dependency-update` skill afterwards. **A dispatched lane child skips `pnpm josh ms`** — it
|
|
34
|
+
refuses in a lane, and `pnpm josh main:merge` brings the latest default in during the gate
|
|
35
|
+
(`docs/maintainers/fullrun-steps-rationale.md` → "Why a lane child skips `josh ms`"). The parent runs
|
|
36
|
+
`pnpm josh ms` in the primary checkout, never the child — `backlogrun-lanes.md` and
|
|
40
37
|
`backlogrun-child.md` are the single sources. When running `pnpm josh followup`, pass an
|
|
41
38
|
implementation summary via `--notify-message` in the session language, leading with the three
|
|
42
39
|
plain-language lines: `"Implemented <title>\nCause: ...\nFix: ...\nResult: ...\n\nDetails:\n-
|
|
@@ -48,15 +45,15 @@ primary checkout; a Claude run keeps it.
|
|
|
48
45
|
## The `fullrun new` step list
|
|
49
46
|
|
|
50
47
|
`kickoff new` + `fullrun #N` in one run. Steps: (1) Derive an English title, or use the provided one.
|
|
51
|
-
(2) Create Issue: `pnpm josh issue:file "<title>" --body-file <body-file> --depth <n
|
|
48
|
+
(2) Create Issue: `pnpm josh issue:file "<title>" --body-file <body-file> --depth <n> --requested`,
|
|
49
|
+
with the labels `kickoff.md` → "Words typed after `new`" maps (per
|
|
52
50
|
`prompts/collaboration-workflow/issue-template.md`) — its duplicate scan runs first, and a candidate
|
|
53
51
|
that covers the same work stops the run rather than filing a second Issue (`issue-scout.md`). Capture
|
|
54
52
|
`<N>`. (3) Add `in-progress` (the bare hold named no issue):
|
|
55
53
|
`gh api repos/{owner}/{repo}/issues/<N>/labels -f 'labels[]=in-progress'`. (4) Post the agreed plan
|
|
56
54
|
in the session language: fill the body if blank,
|
|
57
55
|
otherwise add a comment. (5) If the working tree already has staged or modified files,
|
|
58
|
-
`git stash push -m "fullrun new: pre-existing changes" -- ':!.josh/observations'` first
|
|
59
|
-
(joshuafolkken/kit#2919). (6) `git switch main && git pull`. (7)
|
|
56
|
+
`git stash push -m "fullrun new: pre-existing changes" -- ':!.josh/observations'` first. (6) `pnpm josh ms`. (7)
|
|
60
57
|
`pnpm josh latest:scope`; on `required` run `josh latest` and load the `dependency-update` skill; on
|
|
61
58
|
`skip` neither runs (`latest-gate.md` is the single source). If you stashed in (5),
|
|
62
59
|
`pnpm josh stash:pop "fullrun new: pre-existing changes"` — by message, never a positional `git stash
|
|
@@ -70,7 +67,7 @@ before its gate. (12) File whatever the review round cap routed to branch 2 with
|
|
|
70
67
|
(it runs `epic:bundle` on each), and where (9a) answered `skip` record the skip on the Issue. (13) **Where no second
|
|
71
68
|
round was due** (9a `skip`), fold steps (10)–(13) and the release bookkeeping into one call — `pnpm josh
|
|
72
69
|
ship "<title> #<N>" --notify-message "..."` (gate → commit/push/PR → the CI-wait `followup` → `run:tail`,
|
|
73
|
-
stopping at the first failed step
|
|
70
|
+
stopping at the first failed step); **where a second round ran**, the PR opened
|
|
74
71
|
at (11) and the region stays separate — `pnpm josh followup "<title> #<N>" --notify-message "..."` then
|
|
75
72
|
`pnpm josh run:tail <N>`. (14) **After the merge, run `pnpm josh ms`.** (15) **Ask `pnpm josh
|
|
76
73
|
release:scope` and close the completion summary with what it answered** (`followup.md` →
|
|
@@ -78,12 +75,11 @@ release:scope` and close the completion summary with what it answered** (`follow
|
|
|
78
75
|
|
|
79
76
|
## The release ask — the last step of either form
|
|
80
77
|
|
|
81
|
-
**One call folds the post-merge bookkeeping
|
|
82
|
-
run:tail <N>` commits ledger lines written outside any issue's run (`observations:flush
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
runs inside `pnpm josh ship`** as its report step (joshuafolkken/kit#2398), so it is a standalone call
|
|
78
|
+
**One call folds the post-merge bookkeeping**: after the merge, `pnpm josh
|
|
79
|
+
run:tail <N>` commits ledger lines written outside any issue's run (`observations:flush`), reads the
|
|
80
|
+
completion citations (`issue:cite`, given the closed issue and any follow-ups filed this run) and
|
|
81
|
+
decides the release scope (`release:scope`) in one round trip, joining each under its own header. **On
|
|
82
|
+
the clean path `run:tail` runs inside `pnpm josh ship`** as its report step, so it is a standalone call
|
|
87
83
|
only where a second round kept the ship region separate. It folds only bookkeeping — the
|
|
88
84
|
release ask below stays the single source of what `required` means and the Tier-C publish boundary; a
|
|
89
85
|
`backlogrun` child still leaves `observations:flush`, `issue:cite` and the release ask to the batch's
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# `fullrun` — the manifest (plan → implement → PR → merge → notify)
|
|
2
2
|
|
|
3
|
-
**This file is the manifest, not the procedure
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
**This file is the manifest, not the procedure.** The entry sequence and the stop branches are
|
|
4
|
+
`entry-sequence.md`, shared with `halfrun` and `prrun`; this file names only what is `fullrun`'s own.
|
|
5
|
+
`pnpm josh run:step <N>` prints the run's next single action. `chain-rule.md`, `followup.md`,
|
|
6
|
+
`background-commands.md` and `latest-gate.md` are **not entry reads** — each is fetched at its point of
|
|
7
|
+
use. The step lists are `fullrun-steps.md`, read when a step needs its detail. History:
|
|
8
|
+
`docs/maintainers/fullrun-rationale.md` → "Where each rule came from".
|
|
9
9
|
|
|
10
10
|
## The difference — the entry and the end
|
|
11
11
|
|
|
@@ -18,10 +18,10 @@ needs its detail.
|
|
|
18
18
|
## The lane-child seam
|
|
19
19
|
|
|
20
20
|
- **A lane child asks whether it is a resume first — `pnpm josh run:cut --resume <N>`** (`run:entry` asks it
|
|
21
|
-
before the hold
|
|
21
|
+
before the hold); on `resume` it skips the title, plan, hold and implementation and goes to the gate. At the pre-gate
|
|
22
22
|
boundary — immediately after `pnpm josh main:merge`, before the gate — it takes the cut with
|
|
23
23
|
`pnpm josh run:cut <N>` (the ordered step in `chain-rule.md`, which names the cut's single source),
|
|
24
24
|
and it records any park on the Issue before the stop notify. A run that is not a lane child never
|
|
25
|
-
reads the cut's document
|
|
26
|
-
- **`resume: halfrun`** adopted a stopped `halfrun
|
|
27
|
-
`prrun
|
|
25
|
+
reads the cut's document.
|
|
26
|
+
- **`resume: halfrun`** adopted a stopped `halfrun`: gate in full; `resume: prrun-*` a stopped
|
|
27
|
+
`prrun`; `working-tree-hold.md`.
|