@joshuafolkken/kit 1.978.0 → 1.983.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 (69) hide show
  1. package/.claude/skills/epic-commands/SKILL.md +6 -5
  2. package/.claude/skills/workflow-commands/SKILL.md +9 -9
  3. package/.claude/skills/workflow-commands/background-commands.md +1 -1
  4. package/.claude/skills/workflow-commands/fullrun-steps.md +8 -8
  5. package/.claude/skills/workflow-commands/halfrun.md +4 -5
  6. package/.claude/skills/workflow-commands/issue-comments.md +1 -1
  7. package/.claude/skills/workflow-commands/issue-scout.md +21 -22
  8. package/.claude/skills/workflow-commands/kickoff.md +8 -9
  9. package/.claude/skills/workflow-commands/observation-filing.md +9 -10
  10. package/.claude/skills/workflow-commands/prerequisite.md +7 -6
  11. package/.claude/skills/workflow-commands/retrospective.md +5 -5
  12. package/.claude/skills/workflow-commands/rule-residency.md +2 -2
  13. package/.claude/skills/workflow-commands/split-assessment.md +4 -3
  14. package/.claude/skills/workflow-commands/target-repository.md +7 -6
  15. package/dist/hooks/batch-guard.js +4 -4
  16. package/dist/hooks/{chunk-ZPLXLJ7O.js → chunk-47SPMGOD.js} +16 -1
  17. package/dist/hooks/{chunk-BVMSPG3M.js → chunk-5JX6HXDX.js} +3 -3
  18. package/dist/hooks/{chunk-KQG4776P.js → chunk-APVOACVT.js} +1 -1
  19. package/dist/hooks/{chunk-2K52BRWV.js → chunk-ASUZGZFT.js} +2 -2
  20. package/dist/hooks/{chunk-CRGJTD6E.js → chunk-ERXMJJOV.js} +1 -1
  21. package/dist/hooks/{chunk-Q7LE77CO.js → chunk-IM3KM25Y.js} +31 -29
  22. package/dist/hooks/{chunk-BNGGEY3Z.js → chunk-LBXQHXMC.js} +129 -342
  23. package/dist/hooks/{chunk-NXL3SBXY.js → chunk-P3UX7SFN.js} +2 -2
  24. package/dist/hooks/{chunk-F6OM6SIG.js → chunk-RFPHKU7C.js} +12 -12
  25. package/dist/hooks/{chunk-ZYYSBNR6.js → chunk-ZT65LR3U.js} +4 -4
  26. package/dist/hooks/codex-hook-adapter.js +10 -10
  27. package/dist/hooks/duplicate-read-guard.js +5 -5
  28. package/dist/hooks/format-edited.js +2 -2
  29. package/dist/hooks/investigation-guard.js +5 -5
  30. package/dist/hooks/pretool-guard.js +9 -9
  31. package/dist/hooks/stop-guard.js +4 -4
  32. package/dist/josh.js +16 -1
  33. package/package.json +1 -1
  34. package/prompts/collaboration-workflow/epic-bundle.md +8 -8
  35. package/prompts/collaboration-workflow/issue-template.md +5 -5
  36. package/prompts/collaboration-workflow/rule-delivery.md +43 -30
  37. package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
  38. package/prompts/collaboration-workflow/wip-cap.md +3 -3
  39. package/prompts/review.md +11 -9
  40. package/scripts/delegation/delegation-policy.ts +9 -9
  41. package/scripts/document/document-byte-budget.ts +1 -1
  42. package/scripts/issue/issue-file-cli.ts +188 -0
  43. package/scripts/issue/issue-file.ts +192 -0
  44. package/scripts/issue/issue-lint-cli.ts +1 -1
  45. package/scripts/issue/issue-scout-cli.ts +41 -97
  46. package/scripts/issue/issue-scout-closed.ts +102 -0
  47. package/scripts/josh/__snapshots__/josh-command-map.test.ts.snap +9 -1
  48. package/scripts/josh/josh-command-map.ts +1 -0
  49. package/scripts/josh/josh-commands-issue.ts +11 -0
  50. package/scripts/josh/josh-commands-project.ts +5 -1
  51. package/scripts/propagate/propagate-run.ts +1 -0
  52. package/scripts/propagate/propagate-select.ts +72 -0
  53. package/scripts/propagate/propagate-targets.ts +5 -3
  54. package/scripts/propagate/propagate.ts +86 -24
  55. package/scripts/rules/bash-triggers.ts +19 -6
  56. package/scripts/rules/delivered-rules.ts +28 -32
  57. package/scripts/rules/direct-filing.ts +38 -0
  58. package/scripts/rules/filing-cap.ts +11 -8
  59. package/scripts/rules/issue-fold.ts +4 -4
  60. package/scripts/rules/oracle-consulted.ts +4 -4
  61. package/scripts/rules/oracle-firing.ts +13 -16
  62. package/scripts/rules/rule-body-guard.ts +6 -9
  63. package/scripts/rules/stop-rules.ts +3 -2
  64. package/scripts/test/pilot-files.ts +0 -1
  65. package/scripts/version/fresh-metadata-cache.ts +36 -0
  66. package/scripts/version/latest-update.ts +2 -1
  67. package/scripts/rules/issue-bug-label.ts +0 -85
  68. package/scripts/rules/issue-filing-args.ts +0 -50
  69. package/scripts/rules/issue-scout.ts +0 -64
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  lane_child_marker,
3
3
  run_issue_number
4
- } from "./chunk-KQG4776P.js";
4
+ } from "./chunk-APVOACVT.js";
5
5
  import {
6
6
  PLATFORM_TEMP_ROOT,
7
7
  cost_blocks,
@@ -12,7 +12,7 @@ import {
12
12
  time_density_hook,
13
13
  time_shell,
14
14
  time_transcript_line
15
- } from "./chunk-ZPLXLJ7O.js";
15
+ } from "./chunk-47SPMGOD.js";
16
16
  import {
17
17
  ENV_FILE_NAME,
18
18
  LANE_SEAT_KEY,
@@ -20,6 +20,22 @@ import {
20
20
  ports
21
21
  } from "./chunk-RKUAD3I6.js";
22
22
 
23
+ // scripts/rules/shell-segments.ts
24
+ var SEGMENT_SEPARATOR = /&&|\|\||;|\n/u;
25
+ function segments_of(command) {
26
+ return command.split(SEGMENT_SEPARATOR).map((segment) => segment.trim());
27
+ }
28
+ function is_josh_command(segment, names) {
29
+ const named = time_shell.josh_command_of(segment);
30
+ if (!named.startsWith(time_shell.JOSH_PREFIX)) return false;
31
+ return names.has(named.slice(time_shell.JOSH_PREFIX.length));
32
+ }
33
+ var shell_segments = {
34
+ SEGMENT_SEPARATOR,
35
+ is_josh_command,
36
+ segments_of
37
+ };
38
+
23
39
  // scripts/rules/bash-triggers.ts
24
40
  function on_bash_command(is_match) {
25
41
  return function is_trigger(call) {
@@ -30,11 +46,15 @@ function on_bash_command(is_match) {
30
46
  var ISSUE_CREATE_COMMAND = /\bgh\s+(?:\S+\s+)*?issue\s+create\b/u;
31
47
  var ISSUES_ENDPOINT = /repos\/[^\s'"]*\/issues(?=$|["'\s])/u;
32
48
  var TITLE_FIELD = /(?:-f|-F|--field|--raw-field)\s*'?title=/u;
33
- function is_issue_filing(command) {
49
+ function is_direct_filing(command) {
34
50
  if (ISSUE_CREATE_COMMAND.test(command)) return true;
35
51
  return ISSUES_ENDPOINT.test(command) && TITLE_FIELD.test(command);
36
52
  }
37
- var bash_triggers = { is_issue_filing, on_bash_command };
53
+ var FILING_NAMES = /* @__PURE__ */ new Set(["issue:file"]);
54
+ function is_issue_filing(command) {
55
+ return shell_segments.segments_of(command).some((segment) => shell_segments.is_josh_command(segment, FILING_NAMES));
56
+ }
57
+ var bash_triggers = { is_direct_filing, is_issue_filing, on_bash_command };
38
58
 
39
59
  // scripts/rules/tail-commands.ts
40
60
  function is_bash_use(block) {
@@ -58,7 +78,7 @@ function is_filing_use(block) {
58
78
  return bash_triggers.is_issue_filing(time_shell.bash_command(block.input));
59
79
  }
60
80
  function collect_block(block, found) {
61
- if (block.result_id !== "") found.refusals.set(block.result_id, block.refusal_guard);
81
+ if (block.result_id !== "" && block.is_error === true) found.failures.add(block.result_id);
62
82
  if (is_filing_use(block)) found.filing_ids.push(block.id);
63
83
  }
64
84
  function collect_line(line, found) {
@@ -67,13 +87,13 @@ function collect_line(line, found) {
67
87
  for (const block of parsed.blocks) collect_block(block, found);
68
88
  }
69
89
  function scan_tail(tail) {
70
- const found = { filing_ids: [], refusals: /* @__PURE__ */ new Map() };
90
+ const found = { filing_ids: [], failures: /* @__PURE__ */ new Set() };
71
91
  for (const line of tail.split("\n")) collect_line(line, found);
72
92
  return found;
73
93
  }
74
94
  function prior_filing_count(tail) {
75
- const { filing_ids, refusals } = scan_tail(tail);
76
- return filing_ids.filter((id) => (refusals.get(id) ?? "") === "").length;
95
+ const { filing_ids, failures } = scan_tail(tail);
96
+ return filing_ids.filter((id) => !failures.has(id)).length;
77
97
  }
78
98
  function is_prompt_line(line) {
79
99
  const parsed = time_transcript_line.parse_line(line);
@@ -1542,22 +1562,6 @@ var run_cut = {
1542
1562
  worktree_git_directory_sync
1543
1563
  };
1544
1564
 
1545
- // scripts/rules/shell-segments.ts
1546
- var SEGMENT_SEPARATOR = /&&|\|\||;|\n/u;
1547
- function segments_of(command) {
1548
- return command.split(SEGMENT_SEPARATOR).map((segment) => segment.trim());
1549
- }
1550
- function is_josh_command(segment, names) {
1551
- const named = time_shell.josh_command_of(segment);
1552
- if (!named.startsWith(time_shell.JOSH_PREFIX)) return false;
1553
- return names.has(named.slice(time_shell.JOSH_PREFIX.length));
1554
- }
1555
- var shell_segments = {
1556
- SEGMENT_SEPARATOR,
1557
- is_josh_command,
1558
- segments_of
1559
- };
1560
-
1561
1565
  // scripts/rules/run-tail.ts
1562
1566
  var SEGMENT_PREFIX = String.raw`(?:\(\s*)?(?:[A-Za-z_][A-Za-z0-9_]*=\S*\s+)*(?:npx\s+|pnpm\s+(?:exec\s+|run\s+)?)?`;
1563
1567
  var WORD_END = String.raw`(?=\s|$|\))`;
@@ -1658,7 +1662,6 @@ var lane_background = {
1658
1662
 
1659
1663
  // scripts/git/issue-labels.ts
1660
1664
  var EPIC_LABEL = "epic";
1661
- var BUG_LABEL = "bug";
1662
1665
  var ENHANCEMENT_LABEL = "enhancement";
1663
1666
  var BREAKING_CHANGE_LABEL = "breaking-change";
1664
1667
  var IN_PROGRESS_LABEL = "in-progress";
@@ -3628,9 +3631,9 @@ var git_gh_exec = {
3628
3631
  };
3629
3632
 
3630
3633
  export {
3634
+ shell_segments,
3631
3635
  bash_triggers,
3632
3636
  run_progress_clock,
3633
- shell_segments,
3634
3637
  tail_commands,
3635
3638
  filing_cap,
3636
3639
  CONTEXT_CUT_THRESHOLD,
@@ -3642,7 +3645,8 @@ export {
3642
3645
  lane_child_invocation,
3643
3646
  run_hold,
3644
3647
  run_cut,
3645
- BUG_LABEL,
3648
+ run_tail,
3649
+ lane_background,
3646
3650
  ENHANCEMENT_LABEL,
3647
3651
  BREAKING_CHANGE_LABEL,
3648
3652
  IN_PROGRESS_LABEL,
@@ -3655,8 +3659,6 @@ export {
3655
3659
  RELEASE_CLASSIFICATION_NAMES,
3656
3660
  has_any_label,
3657
3661
  has_label_name,
3658
- run_tail,
3659
- lane_background,
3660
3662
  lane_park,
3661
3663
  repo_party,
3662
3664
  FULL_PAGE_QUERY,