@joshuafolkken/kit 1.1373.0 → 1.1383.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.
Files changed (92) hide show
  1. package/.claude/skills/dependency-update/SKILL.md +6 -3
  2. package/.claude/skills/workflow-commands/backlogrun-progress.md +2 -3
  3. package/.claude/skills/workflow-commands/backlogrun-steps.md +2 -4
  4. package/.claude/skills/workflow-commands/retrospective.md +1 -2
  5. package/dist/hooks/batch-guard.js +6 -6
  6. package/dist/hooks/{chunk-UTHMB4O2.js → chunk-2X2ART5G.js} +4 -33
  7. package/dist/hooks/{chunk-NZN2UFI6.js → chunk-4MGHBTOM.js} +162 -233
  8. package/dist/hooks/{chunk-YLBBSSTF.js → chunk-6AC4C2IO.js} +91 -67
  9. package/dist/hooks/{chunk-AKGCP4LX.js → chunk-6MAW7BCM.js} +12 -12
  10. package/dist/hooks/{chunk-JCRDBQXB.js → chunk-7VSZ2N4B.js} +3 -3
  11. package/dist/hooks/{chunk-GG72ANKI.js → chunk-KC6LUZZ2.js} +1 -1
  12. package/dist/hooks/{chunk-BZMPVFDY.js → chunk-KCF2YE7O.js} +5 -5
  13. package/dist/hooks/{chunk-7WKYHEGU.js → chunk-LC56R53A.js} +3 -3
  14. package/dist/hooks/{chunk-V4TKZHER.js → chunk-LOJTBU5V.js} +3 -3
  15. package/dist/hooks/{chunk-JGW24KKM.js → chunk-RYP3TSUJ.js} +3 -3
  16. package/dist/hooks/{chunk-SLSFIWTX.js → chunk-TT742SIO.js} +8 -5
  17. package/dist/hooks/{chunk-Z5TMJIPW.js → chunk-Y5R47QHU.js} +1 -1
  18. package/dist/hooks/{chunk-7UBFU3CL.js → chunk-YKUITFT7.js} +2 -2
  19. package/dist/hooks/codex-hook-adapter.js +13 -13
  20. package/dist/hooks/duplicate-read-guard.js +7 -7
  21. package/dist/hooks/format-edited.js +3 -3
  22. package/dist/hooks/inputs.json +190 -191
  23. package/dist/hooks/investigation-guard.js +7 -7
  24. package/dist/hooks/pretool-guard.js +12 -12
  25. package/dist/hooks/session-lang.js +3 -3
  26. package/dist/hooks/stop-guard.js +19 -15
  27. package/dist/josh.js +40 -5
  28. package/package.json +4 -4
  29. package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
  30. package/scripts/adopt/adopt-logic.ts +4 -1
  31. package/scripts/adopt/adopt.ts +7 -4
  32. package/scripts/backlog/backlog-budget-cli.ts +2 -20
  33. package/scripts/backlog/backlog-budget.ts +72 -109
  34. package/scripts/backlog/backlog-drive-cli.ts +10 -3
  35. package/scripts/backlog/backlog-drive.ts +5 -2
  36. package/scripts/backlog/backlog-offer-cli.ts +1 -15
  37. package/scripts/cost-runtime/context-cut-payback.ts +9 -4
  38. package/scripts/cost-runtime/cost-pricing.ts +94 -33
  39. package/scripts/document/document-byte-budget.ts +1 -1
  40. package/scripts/document/read-set-pricing.ts +7 -5
  41. package/scripts/epic/epic-candidate-confirm.ts +1 -1
  42. package/scripts/epic/epic-cross-repo.ts +4 -4
  43. package/scripts/epic/epic-next.ts +1 -1
  44. package/scripts/git/git-spawn-sync.ts +9 -1
  45. package/scripts/hooks/stop-guard.ts +20 -9
  46. package/scripts/init/init-ai-copy.ts +10 -3
  47. package/scripts/init/init-copy-content.ts +8 -1
  48. package/scripts/init/security-policy.ts +79 -0
  49. package/scripts/josh/josh-commands-ai.ts +1 -1
  50. package/scripts/josh/josh-commands-maintenance.ts +3 -0
  51. package/scripts/josh/josh-commands-project.ts +1 -1
  52. package/scripts/josh/josh-commands-versioning.ts +2 -1
  53. package/scripts/lane/lane-cli.ts +1 -3
  54. package/scripts/propagate/propagate-run.ts +17 -1
  55. package/scripts/propagate/propagate-steps.ts +9 -1
  56. package/scripts/run/board/run-board-header.ts +107 -84
  57. package/scripts/run/board/run-board-labels.ts +18 -17
  58. package/scripts/run/board/run-board-machine.ts +21 -8
  59. package/scripts/run/board/run-board-render.ts +1 -5
  60. package/scripts/run/board/run-board-span.ts +0 -1
  61. package/scripts/run/board/run-board-status.ts +0 -17
  62. package/scripts/run/board/run-board-tick.ts +1 -0
  63. package/scripts/run/carry/run-carry-cli.ts +8 -62
  64. package/scripts/run/carry/run-carry-ended.ts +1 -1
  65. package/scripts/run/carry/run-carry.ts +22 -68
  66. package/scripts/run/cut/run-cut.ts +4 -4
  67. package/scripts/run/event/run-event-render.ts +0 -1
  68. package/scripts/run/event/run-event-scope.ts +4 -8
  69. package/scripts/run/event/run-event-stream-emit.ts +0 -25
  70. package/scripts/run/event/run-event-stream.ts +23 -31
  71. package/scripts/run/merge/run-merge-collect.ts +1 -1
  72. package/scripts/run/merge/run-merge-steps.ts +1 -1
  73. package/scripts/run/progress/run-progress-read.ts +1 -1
  74. package/scripts/run/run-headless.ts +2 -2
  75. package/scripts/run/run-status-cli.ts +1 -5
  76. package/scripts/run/run-step.ts +2 -9
  77. package/scripts/run/run-stop-notify.ts +1 -1
  78. package/scripts/run/run-stranded-detect.ts +3 -3
  79. package/scripts/run/run-stranded.ts +25 -17
  80. package/scripts/run/wake/run-wake-cli.ts +7 -9
  81. package/scripts/run/wake/run-wake-describe.ts +3 -5
  82. package/scripts/run/wake/run-wake-driver.ts +3 -3
  83. package/scripts/run/wake/run-wake-loop.ts +4 -21
  84. package/scripts/run/wake/run-wake-restart.ts +1 -1
  85. package/scripts/run/wake/run-wake.ts +6 -7
  86. package/scripts/sync/sync-ai-files.ts +2 -0
  87. package/scripts/version/latest-update.ts +20 -6
  88. package/scripts/version/peer-floor.ts +99 -0
  89. package/scripts/version/playwright-browsers.ts +109 -0
  90. package/scripts/version/publishable-range-check.ts +41 -4
  91. package/templates/SECURITY.md +23 -0
  92. package/scripts/backlog/backlog-idle.ts +0 -88
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: dependency-update
3
- description: Checks after `pnpm update`, `josh latest`, `pnpm josh overrides` or any dependency update — the `overrides` survived, the one expected `devEngines` change. Read it before reporting the pins intact or pinning a bump back.
3
+ description: Checks after `pnpm update`, `josh latest`, `josh adopt`, `pnpm josh overrides` or any dependency update — the `overrides` survived, the one expected `devEngines` change. Read it before reporting the pins intact or pinning a bump back.
4
4
  ---
5
5
 
6
6
  # After a dependency-update command
@@ -8,8 +8,9 @@ description: Checks after `pnpm update`, `josh latest`, `pnpm josh overrides` or
8
8
  `CLAUDE.md` → "Decision autonomy" keeps both prohibitions resident as Tier C — never touch `overrides`
9
9
  in either file, never touch `devEngines`, without explicit user approval. This skill is the other
10
10
  half: what you actually run to find out whether a command already touched them, and how to read the
11
- one change that is expected. It applies after `pnpm update`, `josh latest`, `pnpm josh overrides`,
12
- a Dependabot merge, or any other command that can rewrite dependency versions.
11
+ one change that is expected. It applies after `pnpm update`, `josh latest`, `josh adopt` (which runs
12
+ `josh latest` as one of its steps), `pnpm josh overrides`, a Dependabot merge, or any other command
13
+ that can rewrite dependency versions.
13
14
 
14
15
  This skill is the single source of the overrides protection's procedure;
15
16
  `prompts/collaboration-workflow/operating-rules.md` only points here. Overrides were added on
@@ -34,6 +35,8 @@ or any dependency-update command, verify the overrides in both `pnpm-workspace.y
34
35
  git diff -- pnpm-workspace.yaml package.json
35
36
  ```
36
37
 
38
+ (after `josh adopt`, which has already committed and returned to the default branch, compare the
39
+ pull-request branch instead: `git diff <default>...<branch> -- pnpm-workspace.yaml package.json`)
37
40
  and confirm the effective `overrides:` block in `pnpm-workspace.yaml` and any historical
38
41
  `pnpm.overrides` declarations in `package.json` are untouched, **and** that `devDependencies`
39
42
  versions still respect the effective overrides. If any entry was removed, modified, or bumped past
@@ -106,12 +106,11 @@ the epic body; what merged the epic's task list.
106
106
 
107
107
  | Setting | Value | Meaning |
108
108
  | --- | --- | --- |
109
- | Polling interval | 60 s | **In flight, a floor between two asks, never a clock** — the wake is `lane:await`'s completion or the watcher's arrival exit, never a report. **With nothing in flight no wake comes: it is the parent's own clock.** |
110
- | `backlogrun` idle-watch poll | 5 min | Not the interval above, and a floor in the same sense. |
109
+ | Polling interval | 60 s | **In flight, a floor between two asks, never a clock** — the wake is `lane:await`'s completion or the watcher's arrival exit, never a report. **With nothing in flight no wake comes: it is the parent's own clock.** A `backlogrun` idle watch is polled at this same interval. |
111
110
  | Silent delegated unit | 30 min | Not the child's duration — the time its output has gone **unchanged**. Past it, ask `run:liveness` and book a stopped unit as a failure. |
112
111
  | Stale `in-progress` | 90 min | Past it, the other session is gone. |
113
112
  | Publish wait | 10 min | `josh propagate`'s own budget. A failed publish never appears. |
114
- | Whole run | 8 h | Past it, the run needs a person. |
113
+ | `backlogrun` idle watch | 8 h | Counted from when the run's hands became free, never from its start; `pnpm josh backlog:budget` decides it. |
115
114
 
116
115
  Each timeout **ends the wait and reports** — none is retried indefinitely. Rationale for the figures:
117
116
  `docs/maintainers/backlogrun-progress-rationale.md` → "Why the parent waits on classification, not a
@@ -29,7 +29,7 @@ provenance of each rule: `docs/maintainers/backlogrun-steps-rationale.md` → "W
29
29
  | The bound | What it limits | Counted by |
30
30
  | --- | --- | --- |
31
31
  | `--max` | merges per invocation — a run's own filing competes for it | `run:carry --merged` |
32
- | `--idle`, and the 8-hour whole-run bound | how long the run looks for more | the record's `started_at` |
32
+ | `--idle` (8 hours unless typed) | how long the run waits once nothing can proceed | `--active`, the moment its hands became free |
33
33
  | **Ten filings per invocation** | additions to the pool on **every** filing route (`prerequisite.md`) — `route:tier-a`, `route:interrupt` and a review branch-2 filing are exempt from the depth test (`observation-filing.md`), never from this ceiling | `run:carry --filed` |
34
34
  | The WIP cap on open issues | the pool across invocations | `prompts/collaboration-workflow/wip-cap.md` |
35
35
 
@@ -75,8 +75,6 @@ and `--filed 1`, and **`--cut` is the session's last write**.
75
75
  | `busy` / `mismatch` / `unreadable` / `unknown` | **Stop; do not open a lane** — report what it printed; never resume into another invocation's record |
76
76
  | `over` | **End the conversation**; retype the invocation in a fresh session |
77
77
  | `standing` | **Stop; do not open a lane**: report `pnpm josh run:carry --resume "<invocation>" --owner "$PPID"` and `pnpm josh run:carry --end` for the person to choose — a crash from a run-tooling defect this run has since fixed you resume yourself (`upstream-interrupt.md` → "実行中のリポジトリ自身のラン機構の不具合") |
78
- | `expired` | On standard output: report, stop and `--end` it. On standard error ahead of `began`: a new run replaced it |
79
-
80
78
  **End the record when the run ends** — `pnpm josh run:report`, then `pnpm josh run:carry --end`, **never
81
79
  batched with it**, and `pnpm josh run:wake --stop` in the same turn. **A run that ends by _stopping_**
82
80
  (a `stop` verdict or the consecutive-failure guard) **ends with `pnpm josh run:carry --end --stopped
@@ -140,7 +138,7 @@ section the row names:
140
138
 
141
139
  **A candidate only in another repository is never a token** — report it with its checkout. The budgets,
142
140
  verdicts and stops are the driver's own: `docs/maintainers/backlogrun-driver.md` (rationale:
143
- `docs/maintainers/backlogrun-steps-rationale.md` → "Why the idle watch defaults to 30 minutes";
141
+ `docs/maintainers/backlogrun-steps-rationale.md` → "Why the idle watch lasts 8 hours from when the hands became free";
144
142
  `docs/maintainers/backlogrun-steps-rationale.md` → "Why the cost check skips a watch").
145
143
 
146
144
  Rationale: `docs/maintainers/backlogrun-steps-rationale.md` → "Why the loop's contract is shaped this way"
@@ -60,8 +60,7 @@ Issue, as after any filing.
60
60
  `issue:file`'s default applies the label and the next run picks the improvements up without waiting
61
61
  for a person. **`backlogrun-steps.md` → "What one invocation approves" is that default's single
62
62
  source**; it is written there, beside the brakes that bound it, rather than restated here. Every brake still counts a retrospective's filings: the
63
- ten-per-invocation ceiling, the WIP cap, `--max`, the 150,000-token session budget and the 8-hour
64
- whole-run bound.
63
+ ten-per-invocation ceiling, the WIP cap, `--max` and the 150,000-token session budget.
65
64
 
66
65
  **Close with `pnpm josh run:carry --retrospective --summary "<result>" --owner "$PPID"`.** It marks the
67
66
  retrospective run on the carry record, so `run:step` prints `stop` from then on rather than the step a
@@ -9,12 +9,12 @@ import {
9
9
  load_environment_file,
10
10
  notice_refusal_path,
11
11
  refusal_path
12
- } from "./chunk-JGW24KKM.js";
13
- import "./chunk-GG72ANKI.js";
14
- import "./chunk-7WKYHEGU.js";
15
- import "./chunk-SLSFIWTX.js";
16
- import "./chunk-Z5TMJIPW.js";
17
- import "./chunk-NZN2UFI6.js";
12
+ } from "./chunk-RYP3TSUJ.js";
13
+ import "./chunk-KC6LUZZ2.js";
14
+ import "./chunk-LC56R53A.js";
15
+ import "./chunk-TT742SIO.js";
16
+ import "./chunk-Y5R47QHU.js";
17
+ import "./chunk-4MGHBTOM.js";
18
18
  import "./chunk-NEC4AT4Z.js";
19
19
  export {
20
20
  DISABLED_VALUES,
@@ -1,14 +1,16 @@
1
1
  import {
2
2
  lane_child_marker
3
- } from "./chunk-Z5TMJIPW.js";
3
+ } from "./chunk-Y5R47QHU.js";
4
4
  import {
5
5
  ENV_FILE_NAME,
6
+ GIT_LOCATION_VARIABLES,
6
7
  LANE_SEAT_KEY,
7
8
  PORCELAIN_FLAG,
8
9
  PORT_SEED_KEY,
9
10
  agent_session_environment,
10
11
  file_reader,
11
12
  git_command,
13
+ git_location_environment,
12
14
  git_spawn,
13
15
  git_utilities,
14
16
  issue_number_shape,
@@ -18,7 +20,7 @@ import {
18
20
  process_identity,
19
21
  process_owner_schema,
20
22
  run_carry
21
- } from "./chunk-NZN2UFI6.js";
23
+ } from "./chunk-4MGHBTOM.js";
22
24
  import {
23
25
  INSTALL_TIMEOUT_MS,
24
26
  PLATFORM_TEMP_ROOT,
@@ -645,37 +647,6 @@ import { setTimeout as sleep } from "node:timers/promises";
645
647
 
646
648
  // scripts/git/git-common-directory.ts
647
649
  import { execFileSync as execFileSync2 } from "node:child_process";
648
-
649
- // scripts/git/git-location-environment.ts
650
- var GIT_LOCATION_VARIABLES = [
651
- "GIT_ALTERNATE_OBJECT_DIRECTORIES",
652
- "GIT_COMMON_DIR",
653
- "GIT_DIR",
654
- "GIT_INDEX_FILE",
655
- "GIT_NAMESPACE",
656
- "GIT_OBJECT_DIRECTORY",
657
- "GIT_WORK_TREE"
658
- ];
659
- function location_free_environment() {
660
- return Object.fromEntries(GIT_LOCATION_VARIABLES.map((name) => [name, void 0]));
661
- }
662
- function forget(name) {
663
- Reflect.deleteProperty(process.env, name);
664
- }
665
- function restore_one(name, value) {
666
- if (value === void 0) forget(name);
667
- else process.env[name] = value;
668
- }
669
- function clear_git_location_variables() {
670
- const previous = GIT_LOCATION_VARIABLES.map((name) => [name, process.env[name]]);
671
- for (const [name] of previous) forget(name);
672
- return () => {
673
- for (const [name, value] of previous) restore_one(name, value);
674
- };
675
- }
676
- var git_location_environment = { clear_git_location_variables, location_free_environment };
677
-
678
- // scripts/git/git-common-directory.ts
679
650
  var OWN_GIT_DIRECTORY = 0;
680
651
  var COMMON_GIT_DIRECTORY = 1;
681
652
  var PROBE_TIMEOUT_MS2 = 5e3;