@codyswann/lisa 3.5.3 → 3.6.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 (144) hide show
  1. package/all/copy-overwrite/scripts/lisa-enforcement-fallback.sh +3 -2
  2. package/all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh +773 -0
  3. package/dist/codex/hooks-installer.d.ts.map +1 -1
  4. package/dist/codex/hooks-installer.js +8 -0
  5. package/dist/codex/hooks-installer.js.map +1 -1
  6. package/dist/core/lisa-plugin-selection.d.ts.map +1 -1
  7. package/dist/core/lisa-plugin-selection.js +17 -6
  8. package/dist/core/lisa-plugin-selection.js.map +1 -1
  9. package/dist/core/lisa.d.ts +11 -0
  10. package/dist/core/lisa.d.ts.map +1 -1
  11. package/dist/core/lisa.js +16 -3
  12. package/dist/core/lisa.js.map +1 -1
  13. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  14. package/dist/core/upstream-evidence-manifest.js +38 -16
  15. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  16. package/dist/opencode/plugin-catalog.d.ts.map +1 -1
  17. package/dist/opencode/plugin-catalog.js +5 -0
  18. package/dist/opencode/plugin-catalog.js.map +1 -1
  19. package/dist/opencode/plugin-templates/lisa-block-direct-issue-create.ts +210 -0
  20. package/package.json +1 -1
  21. package/plugins/lisa/.claude-plugin/plugin.json +5 -1
  22. package/plugins/lisa/.codex-plugin/hooks.json +4 -0
  23. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa/.codex-plugin/skills/lisa-github-validate-issue/SKILL.md +12 -6
  25. package/plugins/lisa/.codex-plugin/skills/lisa-github-write-issue/SKILL.md +12 -2
  26. package/plugins/lisa/.codex-plugin/skills/lisa-implement/SKILL.md +1 -1
  27. package/plugins/lisa/.codex-plugin/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
  28. package/plugins/lisa/.codex-plugin/skills/lisa-jira-write-ticket/SKILL.md +12 -2
  29. package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/SKILL.md +12 -6
  30. package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-issue/SKILL.md +15 -2
  31. package/plugins/lisa/hooks/block-direct-issue-create.agy.sh +59 -0
  32. package/plugins/lisa/hooks/block-direct-issue-create.sh +773 -0
  33. package/plugins/lisa/rules/eager/derived-branch-plan.md +3 -1
  34. package/plugins/lisa/rules/eager/ready-role-filing.md +4 -0
  35. package/plugins/lisa/rules/reference/derived-branch-plan.md +34 -0
  36. package/plugins/lisa/rules/reference/ready-role-filing.md +27 -0
  37. package/plugins/lisa/skills/lisa-github-validate-issue/SKILL.md +12 -6
  38. package/plugins/lisa/skills/lisa-github-write-issue/SKILL.md +12 -2
  39. package/plugins/lisa/skills/lisa-implement/SKILL.md +1 -1
  40. package/plugins/lisa/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
  41. package/plugins/lisa/skills/lisa-jira-write-ticket/SKILL.md +12 -2
  42. package/plugins/lisa/skills/lisa-linear-validate-issue/SKILL.md +12 -6
  43. package/plugins/lisa/skills/lisa-linear-write-issue/SKILL.md +15 -2
  44. package/plugins/lisa-agy/hooks/block-direct-issue-create.agy.sh +59 -0
  45. package/plugins/lisa-agy/hooks/block-direct-issue-create.sh +773 -0
  46. package/plugins/lisa-agy/hooks.json +13 -0
  47. package/plugins/lisa-agy/plugin.json +1 -1
  48. package/plugins/lisa-agy/skills/lisa-github-validate-issue/SKILL.md +12 -6
  49. package/plugins/lisa-agy/skills/lisa-github-write-issue/SKILL.md +12 -2
  50. package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +1 -1
  51. package/plugins/lisa-agy/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
  52. package/plugins/lisa-agy/skills/lisa-jira-write-ticket/SKILL.md +12 -2
  53. package/plugins/lisa-agy/skills/lisa-linear-validate-issue/SKILL.md +12 -6
  54. package/plugins/lisa-agy/skills/lisa-linear-write-issue/SKILL.md +15 -2
  55. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  58. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-copilot/.claude-plugin/plugin.json +5 -1
  61. package/plugins/lisa-copilot/hooks/block-direct-issue-create.sh +773 -0
  62. package/plugins/lisa-copilot/rules/eager/derived-branch-plan.md +3 -1
  63. package/plugins/lisa-copilot/rules/eager/ready-role-filing.md +4 -0
  64. package/plugins/lisa-copilot/rules/reference/derived-branch-plan.md +34 -0
  65. package/plugins/lisa-copilot/rules/reference/ready-role-filing.md +27 -0
  66. package/plugins/lisa-copilot/skills/lisa-github-validate-issue/SKILL.md +12 -6
  67. package/plugins/lisa-copilot/skills/lisa-github-write-issue/SKILL.md +12 -2
  68. package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +1 -1
  69. package/plugins/lisa-copilot/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
  70. package/plugins/lisa-copilot/skills/lisa-jira-write-ticket/SKILL.md +12 -2
  71. package/plugins/lisa-copilot/skills/lisa-linear-validate-issue/SKILL.md +12 -6
  72. package/plugins/lisa-copilot/skills/lisa-linear-write-issue/SKILL.md +15 -2
  73. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-cursor/hooks/block-direct-issue-create.sh +773 -0
  75. package/plugins/lisa-cursor/hooks/hooks.json +4 -0
  76. package/plugins/lisa-cursor/rules/derived-branch-plan-reference.mdc +34 -0
  77. package/plugins/lisa-cursor/rules/derived-branch-plan.mdc +3 -1
  78. package/plugins/lisa-cursor/rules/ready-role-filing-reference.mdc +27 -0
  79. package/plugins/lisa-cursor/rules/ready-role-filing.mdc +4 -0
  80. package/plugins/lisa-cursor/skills/lisa-github-validate-issue/SKILL.md +12 -6
  81. package/plugins/lisa-cursor/skills/lisa-github-write-issue/SKILL.md +12 -2
  82. package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +1 -1
  83. package/plugins/lisa-cursor/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
  84. package/plugins/lisa-cursor/skills/lisa-jira-write-ticket/SKILL.md +12 -2
  85. package/plugins/lisa-cursor/skills/lisa-linear-validate-issue/SKILL.md +12 -6
  86. package/plugins/lisa-cursor/skills/lisa-linear-write-issue/SKILL.md +15 -2
  87. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  88. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  89. package/plugins/lisa-expo-agy/plugin.json +1 -1
  90. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  91. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  93. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  94. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  95. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  98. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  99. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  100. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  103. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  104. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  105. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  108. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  109. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  110. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  113. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  114. package/plugins/lisa-rails-agy/plugin.json +1 -1
  115. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  117. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  118. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  119. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  120. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  122. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  123. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  124. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  125. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  126. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  127. package/plugins/src/base/.claude-plugin/plugin.json +4 -0
  128. package/plugins/src/base/hooks/block-direct-issue-create.agy.sh +59 -0
  129. package/plugins/src/base/hooks/block-direct-issue-create.sh +773 -0
  130. package/plugins/src/base/rules/eager/derived-branch-plan.md +3 -1
  131. package/plugins/src/base/rules/eager/ready-role-filing.md +4 -0
  132. package/plugins/src/base/rules/reference/derived-branch-plan.md +34 -0
  133. package/plugins/src/base/rules/reference/ready-role-filing.md +27 -0
  134. package/plugins/src/base/skills/lisa-github-validate-issue/SKILL.md +12 -6
  135. package/plugins/src/base/skills/lisa-github-write-issue/SKILL.md +12 -2
  136. package/plugins/src/base/skills/lisa-implement/SKILL.md +1 -1
  137. package/plugins/src/base/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
  138. package/plugins/src/base/skills/lisa-jira-write-ticket/SKILL.md +12 -2
  139. package/plugins/src/base/skills/lisa-linear-validate-issue/SKILL.md +12 -6
  140. package/plugins/src/base/skills/lisa-linear-write-issue/SKILL.md +15 -2
  141. package/scripts/build-plugins.sh +1 -1
  142. package/scripts/generate-agy-plugin-artifacts.mjs +10 -0
  143. package/scripts/lib/per-agent-hook-filter.mjs +10 -0
  144. package/scripts/lisa-enforcement-fallback.sh +3 -2
@@ -103,14 +103,27 @@ Linear descriptions are markdown (NOT Jira wiki markup — no `h2.` headings, us
103
103
  [Explicit list of what this item does NOT cover. Forces scope discipline.]
104
104
 
105
105
  ## Target Backend Environment
106
- [Required when the item changes runtime behavior. Use an exact
106
+ [ALWAYS required on a leaf the SECTION is unconditional, only its
107
+ VALUE is conditional. It is where `runtime_behavior_change` is
108
+ persisted, so omitting it records nothing rather than recording "no".
109
+ When the item changes runtime behavior, use an exact
107
110
  `deploy.branches` key. A human-confirmed value is a bare key or
108
111
  `Confirmed: <env>`. An automated evidence write is
109
112
  `Inferred: <env> — evidence: <title|body|reproduction|hostname>`; an automated
110
113
  generic default is `Assumption: <env> — remote default branch <branch>`.
111
114
  Without a unique reverse-map use `Assumption: remote default branch <branch>`.
112
115
  Human confirmation replaces the automated annotation with a bare key or
113
- `Confirmed: <env>`. Skip only for doc/config/type-only items.]
116
+ `Confirmed: <env>`. ALWAYS render this section — it is where
117
+ `runtime_behavior_change` is persisted, and an absent section reads as
118
+ *underivable*, not exempt. Work that changes no runtime behavior declares the
119
+ exemption in place of an environment: `None — no runtime behavior change:
120
+ doc-only` (or `config-only` / `type-only`). A Project/container declares
121
+ `None — container: state rolls up from children`. Visible prose, not an HTML
122
+ comment, for the same reason the Branch Plan provenance line is: a marker that
123
+ survives in only one representation cannot be a vendor-neutral discriminator,
124
+ and every tracker this contract binds stores its body in some rich-text or
125
+ structured form that need not preserve HTML comments. A declaration a reader
126
+ can see is one every backend can store. See the `derived-branch-plan` rule.]
114
127
 
115
128
  ## Branch Plan
116
129
  [GENERATED, never hand-authored. Render only when the item has a Target
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env bash
2
+ # Antigravity (agy) PreToolUse adapter for Lisa's ready-role filing guard.
3
+ #
4
+ # agy sends `{toolCall:{name:"run_command",args:{CommandLine:"..."}}}` and
5
+ # expects an allow/deny JSON object on stdout. The canonical hook consumes the
6
+ # Claude Bash-hook envelope and communicates denial with exit status 2. This
7
+ # adapter only translates protocols; all classification stays in the canonical
8
+ # block-direct-issue-create.sh beside it (same delegation pattern as
9
+ # block-instruction-file-edits.agy.sh).
10
+ #
11
+ # No scope gap here, unlike the instruction-file adapter: the canonical guard is
12
+ # Bash-only by construction, and `run_command` is exactly the surface it needs.
13
+ # agy therefore receives the whole guard, not an arm of it.
14
+ #
15
+ # Fail-open on missing runtimes: a missed refusal costs one under-declared
16
+ # ticket, and `lisa-repair-intake` already sweeps for exactly that. Failing
17
+ # closed would block every command on a machine without jq.
18
+ set -uo pipefail
19
+
20
+ allow() {
21
+ printf '%s\n' '{"decision":"allow"}'
22
+ exit 0
23
+ }
24
+
25
+ deny() {
26
+ local reason="$1"
27
+ if command -v jq >/dev/null 2>&1; then
28
+ jq -cn --arg reason "$reason" '{decision:"deny",reason:$reason}'
29
+ else
30
+ printf '%s\n' '{"decision":"allow"}'
31
+ fi
32
+ exit 0
33
+ }
34
+
35
+ input="$(cat 2>/dev/null || true)"
36
+ [ -z "$input" ] && allow
37
+ command -v jq >/dev/null 2>&1 || allow
38
+
39
+ tool_name="$(printf '%s' "$input" | jq -r '.toolCall.name // empty' 2>/dev/null || true)"
40
+ [ "$tool_name" != "run_command" ] && allow
41
+ command_str="$(printf '%s' "$input" | jq -r '.toolCall.args.CommandLine // empty' 2>/dev/null || true)"
42
+ [ -z "$command_str" ] && allow
43
+
44
+ hook_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
45
+ canonical_hook="$hook_dir/block-direct-issue-create.sh"
46
+ [ -r "$canonical_hook" ] || allow
47
+
48
+ canonical_input="$(jq -cn --arg command "$command_str" '{tool_name:"Bash",tool_input:{command:$command}}')"
49
+ canonical_output=""
50
+ canonical_status=0
51
+ if canonical_output="$(printf '%s' "$canonical_input" | /bin/bash "$canonical_hook" 2>&1)"; then
52
+ canonical_status=0
53
+ else
54
+ canonical_status=$?
55
+ fi
56
+
57
+ [ "$canonical_status" -eq 0 ] && allow
58
+ [ -n "$canonical_output" ] || canonical_output="Blocked: file work items through lisa-track / lisa-tracker-write with an explicit build_ready: or human_gate:."
59
+ deny "$canonical_output"