@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.
- package/all/copy-overwrite/scripts/lisa-enforcement-fallback.sh +3 -2
- package/all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh +773 -0
- package/dist/codex/hooks-installer.d.ts.map +1 -1
- package/dist/codex/hooks-installer.js +8 -0
- package/dist/codex/hooks-installer.js.map +1 -1
- package/dist/core/lisa-plugin-selection.d.ts.map +1 -1
- package/dist/core/lisa-plugin-selection.js +17 -6
- package/dist/core/lisa-plugin-selection.js.map +1 -1
- package/dist/core/lisa.d.ts +11 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +16 -3
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +38 -16
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-catalog.d.ts.map +1 -1
- package/dist/opencode/plugin-catalog.js +5 -0
- package/dist/opencode/plugin-catalog.js.map +1 -1
- package/dist/opencode/plugin-templates/lisa-block-direct-issue-create.ts +210 -0
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +5 -1
- package/plugins/lisa/.codex-plugin/hooks.json +4 -0
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-github-validate-issue/SKILL.md +12 -6
- package/plugins/lisa/.codex-plugin/skills/lisa-github-write-issue/SKILL.md +12 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-write-ticket/SKILL.md +12 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/SKILL.md +12 -6
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-issue/SKILL.md +15 -2
- package/plugins/lisa/hooks/block-direct-issue-create.agy.sh +59 -0
- package/plugins/lisa/hooks/block-direct-issue-create.sh +773 -0
- package/plugins/lisa/rules/eager/derived-branch-plan.md +3 -1
- package/plugins/lisa/rules/eager/ready-role-filing.md +4 -0
- package/plugins/lisa/rules/reference/derived-branch-plan.md +34 -0
- package/plugins/lisa/rules/reference/ready-role-filing.md +27 -0
- package/plugins/lisa/skills/lisa-github-validate-issue/SKILL.md +12 -6
- package/plugins/lisa/skills/lisa-github-write-issue/SKILL.md +12 -2
- package/plugins/lisa/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
- package/plugins/lisa/skills/lisa-jira-write-ticket/SKILL.md +12 -2
- package/plugins/lisa/skills/lisa-linear-validate-issue/SKILL.md +12 -6
- package/plugins/lisa/skills/lisa-linear-write-issue/SKILL.md +15 -2
- package/plugins/lisa-agy/hooks/block-direct-issue-create.agy.sh +59 -0
- package/plugins/lisa-agy/hooks/block-direct-issue-create.sh +773 -0
- package/plugins/lisa-agy/hooks.json +13 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-github-validate-issue/SKILL.md +12 -6
- package/plugins/lisa-agy/skills/lisa-github-write-issue/SKILL.md +12 -2
- package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa-agy/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
- package/plugins/lisa-agy/skills/lisa-jira-write-ticket/SKILL.md +12 -2
- package/plugins/lisa-agy/skills/lisa-linear-validate-issue/SKILL.md +12 -6
- package/plugins/lisa-agy/skills/lisa-linear-write-issue/SKILL.md +15 -2
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +5 -1
- package/plugins/lisa-copilot/hooks/block-direct-issue-create.sh +773 -0
- package/plugins/lisa-copilot/rules/eager/derived-branch-plan.md +3 -1
- package/plugins/lisa-copilot/rules/eager/ready-role-filing.md +4 -0
- package/plugins/lisa-copilot/rules/reference/derived-branch-plan.md +34 -0
- package/plugins/lisa-copilot/rules/reference/ready-role-filing.md +27 -0
- package/plugins/lisa-copilot/skills/lisa-github-validate-issue/SKILL.md +12 -6
- package/plugins/lisa-copilot/skills/lisa-github-write-issue/SKILL.md +12 -2
- package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
- package/plugins/lisa-copilot/skills/lisa-jira-write-ticket/SKILL.md +12 -2
- package/plugins/lisa-copilot/skills/lisa-linear-validate-issue/SKILL.md +12 -6
- package/plugins/lisa-copilot/skills/lisa-linear-write-issue/SKILL.md +15 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-direct-issue-create.sh +773 -0
- package/plugins/lisa-cursor/hooks/hooks.json +4 -0
- package/plugins/lisa-cursor/rules/derived-branch-plan-reference.mdc +34 -0
- package/plugins/lisa-cursor/rules/derived-branch-plan.mdc +3 -1
- package/plugins/lisa-cursor/rules/ready-role-filing-reference.mdc +27 -0
- package/plugins/lisa-cursor/rules/ready-role-filing.mdc +4 -0
- package/plugins/lisa-cursor/skills/lisa-github-validate-issue/SKILL.md +12 -6
- package/plugins/lisa-cursor/skills/lisa-github-write-issue/SKILL.md +12 -2
- package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa-cursor/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
- package/plugins/lisa-cursor/skills/lisa-jira-write-ticket/SKILL.md +12 -2
- package/plugins/lisa-cursor/skills/lisa-linear-validate-issue/SKILL.md +12 -6
- package/plugins/lisa-cursor/skills/lisa-linear-write-issue/SKILL.md +15 -2
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/.claude-plugin/plugin.json +4 -0
- package/plugins/src/base/hooks/block-direct-issue-create.agy.sh +59 -0
- package/plugins/src/base/hooks/block-direct-issue-create.sh +773 -0
- package/plugins/src/base/rules/eager/derived-branch-plan.md +3 -1
- package/plugins/src/base/rules/eager/ready-role-filing.md +4 -0
- package/plugins/src/base/rules/reference/derived-branch-plan.md +34 -0
- package/plugins/src/base/rules/reference/ready-role-filing.md +27 -0
- package/plugins/src/base/skills/lisa-github-validate-issue/SKILL.md +12 -6
- package/plugins/src/base/skills/lisa-github-write-issue/SKILL.md +12 -2
- package/plugins/src/base/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/src/base/skills/lisa-jira-validate-ticket/SKILL.md +12 -6
- package/plugins/src/base/skills/lisa-jira-write-ticket/SKILL.md +12 -2
- package/plugins/src/base/skills/lisa-linear-validate-issue/SKILL.md +12 -6
- package/plugins/src/base/skills/lisa-linear-write-issue/SKILL.md +15 -2
- package/scripts/build-plugins.sh +1 -1
- package/scripts/generate-agy-plugin-artifacts.mjs +10 -0
- package/scripts/lib/per-agent-hook-filter.mjs +10 -0
- 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
|
-
[
|
|
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>`.
|
|
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"
|