@codyswann/lisa 3.45.1 → 3.45.4
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-gates.mjs +18 -9
- package/dist/codex/scripts/setup-jira-cli.sh +7 -0
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +1 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +5 -3
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/lisa-session-bootstrap.ts +7 -1
- package/dist/utils/ignore-patterns.d.ts.map +1 -1
- package/dist/utils/ignore-patterns.js +49 -12
- package/dist/utils/ignore-patterns.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-analyze-claude-remote/SKILL.md +5 -3
- package/plugins/lisa/hooks/setup-jira-cli.sh +12 -0
- package/plugins/lisa/skills/lisa-analyze-claude-remote/SKILL.md +5 -3
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-analyze-claude-remote/SKILL.md +5 -3
- 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 +1 -1
- package/plugins/lisa-copilot/hooks/setup-jira-cli.sh +12 -0
- package/plugins/lisa-copilot/skills/lisa-analyze-claude-remote/SKILL.md +5 -3
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/setup-jira-cli.sh +12 -0
- package/plugins/lisa-cursor/skills/lisa-analyze-claude-remote/SKILL.md +5 -3
- 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/hooks/setup-jira-cli.sh +12 -0
- package/plugins/src/base/skills/lisa-analyze-claude-remote/SKILL.md +5 -3
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* OpenCode runs a plugin's factory function once when it loads the plugin at
|
|
5
5
|
* session start, which is the natural home for Lisa's Codex SessionStart hooks:
|
|
6
6
|
* - install-pkgs.sh → install dependencies when node_modules is missing
|
|
7
|
-
* - setup-jira-cli.sh → write jira-cli config from environment variables
|
|
7
|
+
* - setup-jira-cli.sh → write jira-cli config from environment variables, only
|
|
8
|
+
* when the project's configured tracker is jira
|
|
8
9
|
*
|
|
9
10
|
* Both are fully fail-open (wrapped in try/catch) so a package-manager or
|
|
10
11
|
* filesystem hiccup never bricks OpenCode startup, mirroring the Codex scripts.
|
|
@@ -61,6 +62,10 @@ export const LisaSessionBootstrap = async ({
|
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
// setup-jira-cli: write jira-cli config from environment variables and non-secret Lisa config.
|
|
65
|
+
// Gated on `tracker: "jira"` — a project on Linear or GitHub Issues has no use
|
|
66
|
+
// for a jira-cli config, and writing one made a false implicit claim about the
|
|
67
|
+
// project's tracker. Fails closed: an absent tracker writes nothing, because
|
|
68
|
+
// Lisa treats a missing `tracker` as unconfigured, not as a jira default.
|
|
64
69
|
try {
|
|
65
70
|
const readLisaConfig = (path: string[]) => {
|
|
66
71
|
for (const file of [".lisa.config.local.json", ".lisa.config.json"]) {
|
|
@@ -82,6 +87,7 @@ export const LisaSessionBootstrap = async ({
|
|
|
82
87
|
}
|
|
83
88
|
return undefined;
|
|
84
89
|
};
|
|
90
|
+
if (readLisaConfig(["tracker"]) !== "jira") return {};
|
|
85
91
|
const atlassianSite = readLisaConfig(["atlassian", "site"]);
|
|
86
92
|
const server =
|
|
87
93
|
process.env.JIRA_SERVER ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/ignore-patterns.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ignore-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/ignore-patterns.ts"],"names":[],"mappings":"AA2EA;;GAEG;AACH,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iDAAiD;IACjD,QAAQ,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKtE;AAkDD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAgBT;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAkBzB"}
|
|
@@ -1,23 +1,60 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
2
3
|
import * as path from "node:path";
|
|
3
|
-
// minimatch v9+ exposes the matcher as a named ESM export. Keep the legacy
|
|
4
|
-
// default fallback so Lisa still runs in projects whose package manager hoists
|
|
5
|
-
// an older CJS minimatch for another tool.
|
|
6
|
-
import * as minimatchModule from "minimatch";
|
|
7
4
|
import { pathExists } from "./file-operations.js";
|
|
5
|
+
const requireFromHere = createRequire(import.meta.url);
|
|
8
6
|
/**
|
|
9
|
-
* Resolve the minimatch predicate
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* Resolve the minimatch predicate, via CJS, on first use.
|
|
8
|
+
*
|
|
9
|
+
* Three deliberate choices, each fixing something the previous shape got wrong.
|
|
10
|
+
*
|
|
11
|
+
* **CJS, not ESM.** `minimatch@10`'s ESM entry opens with
|
|
12
|
+
* `import { expand } from 'brace-expansion'`, which throws at MODULE LOAD in any
|
|
13
|
+
* project whose tree resolves `brace-expansion` to the 2.x line — a very common
|
|
14
|
+
* CVE remediation (`">=2.1.4 <3"`), since 2.x is CJS and exports no named
|
|
15
|
+
* `expand`. Its CJS entry has no such problem. Measured on a real consumer:
|
|
16
|
+
* `import('minimatch')` threw while `require('minimatch')` returned a working
|
|
17
|
+
* function, same package, same version, same tree.
|
|
18
|
+
*
|
|
19
|
+
* **Lazily, not at module load.** The previous version resolved this eagerly
|
|
20
|
+
* behind a static `import`, and that is what made the failure fatal: Lisa's own
|
|
21
|
+
* CLI could not boot, so `lisa apply` could not run — and `lisa apply` is what
|
|
22
|
+
* writes the `brace-expansion` override that fixes the tree. The remedy shipped
|
|
23
|
+
* inside the thing that could not start. Resolving on first use breaks that
|
|
24
|
+
* deadlock: the CLI boots, `doctor` reports, and apply repairs the override.
|
|
25
|
+
*
|
|
26
|
+
* **The old compatibility shim was unreachable.** Its comment said it existed
|
|
27
|
+
* so "Lisa still runs in projects whose package manager hoists an older CJS
|
|
28
|
+
* minimatch" — but a static ESM import fails before any fallback can be
|
|
29
|
+
* consulted. A guard that cannot fire is not a guard.
|
|
30
|
+
* @returns The matcher.
|
|
12
31
|
*/
|
|
13
|
-
const
|
|
14
|
-
const mod =
|
|
15
|
-
const candidate = typeof mod.
|
|
32
|
+
const loadMinimatch = () => {
|
|
33
|
+
const mod = requireFromHere("minimatch");
|
|
34
|
+
const candidate = typeof mod.minimatch === "function"
|
|
35
|
+
? mod.minimatch
|
|
36
|
+
: typeof mod.default === "function"
|
|
37
|
+
? mod.default
|
|
38
|
+
: mod;
|
|
16
39
|
if (typeof candidate !== "function") {
|
|
17
|
-
throw new TypeError("minimatch
|
|
40
|
+
throw new TypeError("minimatch did not expose a callable export; expected a named `minimatch`, a default, or a callable module");
|
|
18
41
|
}
|
|
19
42
|
return candidate;
|
|
20
|
-
}
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The matcher, resolved on each call.
|
|
46
|
+
*
|
|
47
|
+
* No memoisation, and that is not an oversight. Node's `require` cache already
|
|
48
|
+
* makes every call after the first a map lookup, so a hand-rolled cache would
|
|
49
|
+
* duplicate the module system's own work — and every shape it could take here
|
|
50
|
+
* (a reassignable binding, a mutated holder) is forbidden by this codebase's
|
|
51
|
+
* immutability rules for reasons that are worth more than the nanoseconds.
|
|
52
|
+
* @param p Path to test.
|
|
53
|
+
* @param pattern Glob pattern.
|
|
54
|
+
* @param options Match options.
|
|
55
|
+
* @returns Whether the path matches.
|
|
56
|
+
*/
|
|
57
|
+
const minimatchFn = (p, pattern, options) => loadMinimatch()(p, pattern, options);
|
|
21
58
|
/**
|
|
22
59
|
* Name of the ignore file that projects can use to skip Lisa files
|
|
23
60
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore-patterns.js","sourceRoot":"","sources":["../../src/utils/ignore-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"ignore-patterns.js","sourceRoot":"","sources":["../../src/utils/ignore-patterns.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"ws": ">=8.21.0"
|
|
133
133
|
},
|
|
134
134
|
"name": "@codyswann/lisa",
|
|
135
|
-
"version": "3.45.
|
|
135
|
+
"version": "3.45.4",
|
|
136
136
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
137
137
|
"main": "dist/index.js",
|
|
138
138
|
"exports": {
|
|
@@ -28,7 +28,7 @@ This skill ships in the base Lisa plugin and is distributed to every host projec
|
|
|
28
28
|
discover requirements **dynamically from the repo** rather than assuming Lisa-repo specifics. It
|
|
29
29
|
audits two layers together:
|
|
30
30
|
|
|
31
|
-
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh
|
|
31
|
+
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh` — tracker-gated, rule injection),
|
|
32
32
|
the configured `tracker`/`source`, and the CLIs/MCP/env those imply.
|
|
33
33
|
- **The host project's needs** — its own package manager, build/test tooling, app runtime
|
|
34
34
|
dependencies, CI-assumed binaries, and project-scoped MCP servers.
|
|
@@ -71,7 +71,9 @@ Group the findings as:
|
|
|
71
71
|
runs, whether it is headless-safe, whether it needs network or write access to system paths,
|
|
72
72
|
and whether it fits the cloud setup-script time budget (~5 minutes for environment caching;
|
|
73
73
|
`SessionStart` hooks re-run every session and must be fast). Lisa's `install-pkgs.sh` and
|
|
74
|
-
`setup-jira-cli.sh` are the usual headline items.
|
|
74
|
+
`setup-jira-cli.sh` are the usual headline items. Note that `setup-jira-cli.sh` is gated on
|
|
75
|
+
`tracker: "jira"` — on a project using another tracker it exits immediately and needs no
|
|
76
|
+
environment at all, so do not report its JIRA env vars as required there.
|
|
75
77
|
|
|
76
78
|
3. **External CLIs / binaries** — scan hooks, `scripts/`, committed skills/commands, and
|
|
77
79
|
`.github/workflows/` for invoked binaries that a base cloud image likely lacks. Assume node,
|
|
@@ -256,7 +258,7 @@ unsuffixed `…_TOKEN`/`…_KEY` is the simplest to set in a single-account rout
|
|
|
256
258
|
|
|
257
259
|
### JIRA — `tracker: jira`
|
|
258
260
|
- Headless substrate: `jira-cli` + curl (Basic auth). The acli and Atlassian-MCP tiers need prior interactive/OAuth auth → not viable headless.
|
|
259
|
-
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart.)
|
|
261
|
+
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart — but only when `.lisa.config*.json` sets `tracker: "jira"`; on any other tracker the hook is a no-op.)
|
|
260
262
|
- Acquire: `https://id.atlassian.com/manage-profile/security/api-tokens`.
|
|
261
263
|
- Access: the API token inherits the Atlassian user's permissions — the user must have Browse/Create/Edit/Transition on the target project. An unscoped token suffices for jira-cli; a scoped token must cover the JIRA project read/write operations.
|
|
262
264
|
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
# Writes the JIRA CLI config file from environment variables.
|
|
4
4
|
# Runs on SessionStart so the config is available for every session.
|
|
5
5
|
#
|
|
6
|
+
# Gated on the project's configured tracker: this only writes anything when
|
|
7
|
+
# `.lisa.config*.json` declares `tracker: "jira"`. A project on Linear or GitHub
|
|
8
|
+
# Issues has no use for a jira-cli config, and writing one made a false implicit
|
|
9
|
+
# claim about which tracker the project runs on. The gate fails closed — an
|
|
10
|
+
# unreadable or absent tracker writes nothing — because Lisa treats a missing
|
|
11
|
+
# `tracker` as unconfigured rather than as a jira default (see lisa-tracker-read).
|
|
12
|
+
#
|
|
6
13
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
14
|
# JIRA_INSTALLATION - cloud or local
|
|
8
15
|
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
@@ -42,6 +49,11 @@ read_lisa_config() {
|
|
|
42
49
|
printf '%s' "${value}"
|
|
43
50
|
}
|
|
44
51
|
|
|
52
|
+
# Tracker gate: do nothing unless this project actually runs on JIRA.
|
|
53
|
+
if [[ "$(read_lisa_config '.tracker')" != "jira" ]]; then
|
|
54
|
+
exit 0
|
|
55
|
+
fi
|
|
56
|
+
|
|
45
57
|
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
46
58
|
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
47
59
|
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
@@ -28,7 +28,7 @@ This skill ships in the base Lisa plugin and is distributed to every host projec
|
|
|
28
28
|
discover requirements **dynamically from the repo** rather than assuming Lisa-repo specifics. It
|
|
29
29
|
audits two layers together:
|
|
30
30
|
|
|
31
|
-
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh
|
|
31
|
+
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh` — tracker-gated, rule injection),
|
|
32
32
|
the configured `tracker`/`source`, and the CLIs/MCP/env those imply.
|
|
33
33
|
- **The host project's needs** — its own package manager, build/test tooling, app runtime
|
|
34
34
|
dependencies, CI-assumed binaries, and project-scoped MCP servers.
|
|
@@ -71,7 +71,9 @@ Group the findings as:
|
|
|
71
71
|
runs, whether it is headless-safe, whether it needs network or write access to system paths,
|
|
72
72
|
and whether it fits the cloud setup-script time budget (~5 minutes for environment caching;
|
|
73
73
|
`SessionStart` hooks re-run every session and must be fast). Lisa's `install-pkgs.sh` and
|
|
74
|
-
`setup-jira-cli.sh` are the usual headline items.
|
|
74
|
+
`setup-jira-cli.sh` are the usual headline items. Note that `setup-jira-cli.sh` is gated on
|
|
75
|
+
`tracker: "jira"` — on a project using another tracker it exits immediately and needs no
|
|
76
|
+
environment at all, so do not report its JIRA env vars as required there.
|
|
75
77
|
|
|
76
78
|
3. **External CLIs / binaries** — scan hooks, `scripts/`, committed skills/commands, and
|
|
77
79
|
`.github/workflows/` for invoked binaries that a base cloud image likely lacks. Assume node,
|
|
@@ -256,7 +258,7 @@ unsuffixed `…_TOKEN`/`…_KEY` is the simplest to set in a single-account rout
|
|
|
256
258
|
|
|
257
259
|
### JIRA — `tracker: jira`
|
|
258
260
|
- Headless substrate: `jira-cli` + curl (Basic auth). The acli and Atlassian-MCP tiers need prior interactive/OAuth auth → not viable headless.
|
|
259
|
-
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart.)
|
|
261
|
+
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart — but only when `.lisa.config*.json` sets `tracker: "jira"`; on any other tracker the hook is a no-op.)
|
|
260
262
|
- Acquire: `https://id.atlassian.com/manage-profile/security/api-tokens`.
|
|
261
263
|
- Access: the API token inherits the Atlassian user's permissions — the user must have Browse/Create/Edit/Transition on the target project. An unscoped token suffices for jira-cli; a scoped token must cover the JIRA project read/write operations.
|
|
262
264
|
|
|
@@ -28,7 +28,7 @@ This skill ships in the base Lisa plugin and is distributed to every host projec
|
|
|
28
28
|
discover requirements **dynamically from the repo** rather than assuming Lisa-repo specifics. It
|
|
29
29
|
audits two layers together:
|
|
30
30
|
|
|
31
|
-
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh
|
|
31
|
+
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh` — tracker-gated, rule injection),
|
|
32
32
|
the configured `tracker`/`source`, and the CLIs/MCP/env those imply.
|
|
33
33
|
- **The host project's needs** — its own package manager, build/test tooling, app runtime
|
|
34
34
|
dependencies, CI-assumed binaries, and project-scoped MCP servers.
|
|
@@ -71,7 +71,9 @@ Group the findings as:
|
|
|
71
71
|
runs, whether it is headless-safe, whether it needs network or write access to system paths,
|
|
72
72
|
and whether it fits the cloud setup-script time budget (~5 minutes for environment caching;
|
|
73
73
|
`SessionStart` hooks re-run every session and must be fast). Lisa's `install-pkgs.sh` and
|
|
74
|
-
`setup-jira-cli.sh` are the usual headline items.
|
|
74
|
+
`setup-jira-cli.sh` are the usual headline items. Note that `setup-jira-cli.sh` is gated on
|
|
75
|
+
`tracker: "jira"` — on a project using another tracker it exits immediately and needs no
|
|
76
|
+
environment at all, so do not report its JIRA env vars as required there.
|
|
75
77
|
|
|
76
78
|
3. **External CLIs / binaries** — scan hooks, `scripts/`, committed skills/commands, and
|
|
77
79
|
`.github/workflows/` for invoked binaries that a base cloud image likely lacks. Assume node,
|
|
@@ -256,7 +258,7 @@ unsuffixed `…_TOKEN`/`…_KEY` is the simplest to set in a single-account rout
|
|
|
256
258
|
|
|
257
259
|
### JIRA — `tracker: jira`
|
|
258
260
|
- Headless substrate: `jira-cli` + curl (Basic auth). The acli and Atlassian-MCP tiers need prior interactive/OAuth auth → not viable headless.
|
|
259
|
-
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart.)
|
|
261
|
+
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart — but only when `.lisa.config*.json` sets `tracker: "jira"`; on any other tracker the hook is a no-op.)
|
|
260
262
|
- Acquire: `https://id.atlassian.com/manage-profile/security/api-tokens`.
|
|
261
263
|
- Access: the API token inherits the Atlassian user's permissions — the user must have Browse/Create/Edit/Transition on the target project. An unscoped token suffices for jira-cli; a scoped token must cover the JIRA project read/write operations.
|
|
262
264
|
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
# Writes the JIRA CLI config file from environment variables.
|
|
4
4
|
# Runs on SessionStart so the config is available for every session.
|
|
5
5
|
#
|
|
6
|
+
# Gated on the project's configured tracker: this only writes anything when
|
|
7
|
+
# `.lisa.config*.json` declares `tracker: "jira"`. A project on Linear or GitHub
|
|
8
|
+
# Issues has no use for a jira-cli config, and writing one made a false implicit
|
|
9
|
+
# claim about which tracker the project runs on. The gate fails closed — an
|
|
10
|
+
# unreadable or absent tracker writes nothing — because Lisa treats a missing
|
|
11
|
+
# `tracker` as unconfigured rather than as a jira default (see lisa-tracker-read).
|
|
12
|
+
#
|
|
6
13
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
14
|
# JIRA_INSTALLATION - cloud or local
|
|
8
15
|
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
@@ -42,6 +49,11 @@ read_lisa_config() {
|
|
|
42
49
|
printf '%s' "${value}"
|
|
43
50
|
}
|
|
44
51
|
|
|
52
|
+
# Tracker gate: do nothing unless this project actually runs on JIRA.
|
|
53
|
+
if [[ "$(read_lisa_config '.tracker')" != "jira" ]]; then
|
|
54
|
+
exit 0
|
|
55
|
+
fi
|
|
56
|
+
|
|
45
57
|
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
46
58
|
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
47
59
|
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
@@ -28,7 +28,7 @@ This skill ships in the base Lisa plugin and is distributed to every host projec
|
|
|
28
28
|
discover requirements **dynamically from the repo** rather than assuming Lisa-repo specifics. It
|
|
29
29
|
audits two layers together:
|
|
30
30
|
|
|
31
|
-
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh
|
|
31
|
+
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh` — tracker-gated, rule injection),
|
|
32
32
|
the configured `tracker`/`source`, and the CLIs/MCP/env those imply.
|
|
33
33
|
- **The host project's needs** — its own package manager, build/test tooling, app runtime
|
|
34
34
|
dependencies, CI-assumed binaries, and project-scoped MCP servers.
|
|
@@ -71,7 +71,9 @@ Group the findings as:
|
|
|
71
71
|
runs, whether it is headless-safe, whether it needs network or write access to system paths,
|
|
72
72
|
and whether it fits the cloud setup-script time budget (~5 minutes for environment caching;
|
|
73
73
|
`SessionStart` hooks re-run every session and must be fast). Lisa's `install-pkgs.sh` and
|
|
74
|
-
`setup-jira-cli.sh` are the usual headline items.
|
|
74
|
+
`setup-jira-cli.sh` are the usual headline items. Note that `setup-jira-cli.sh` is gated on
|
|
75
|
+
`tracker: "jira"` — on a project using another tracker it exits immediately and needs no
|
|
76
|
+
environment at all, so do not report its JIRA env vars as required there.
|
|
75
77
|
|
|
76
78
|
3. **External CLIs / binaries** — scan hooks, `scripts/`, committed skills/commands, and
|
|
77
79
|
`.github/workflows/` for invoked binaries that a base cloud image likely lacks. Assume node,
|
|
@@ -256,7 +258,7 @@ unsuffixed `…_TOKEN`/`…_KEY` is the simplest to set in a single-account rout
|
|
|
256
258
|
|
|
257
259
|
### JIRA — `tracker: jira`
|
|
258
260
|
- Headless substrate: `jira-cli` + curl (Basic auth). The acli and Atlassian-MCP tiers need prior interactive/OAuth auth → not viable headless.
|
|
259
|
-
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart.)
|
|
261
|
+
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart — but only when `.lisa.config*.json` sets `tracker: "jira"`; on any other tracker the hook is a no-op.)
|
|
260
262
|
- Acquire: `https://id.atlassian.com/manage-profile/security/api-tokens`.
|
|
261
263
|
- Access: the API token inherits the Atlassian user's permissions — the user must have Browse/Create/Edit/Transition on the target project. An unscoped token suffices for jira-cli; a scoped token must cover the JIRA project read/write operations.
|
|
262
264
|
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
# Writes the JIRA CLI config file from environment variables.
|
|
4
4
|
# Runs on SessionStart so the config is available for every session.
|
|
5
5
|
#
|
|
6
|
+
# Gated on the project's configured tracker: this only writes anything when
|
|
7
|
+
# `.lisa.config*.json` declares `tracker: "jira"`. A project on Linear or GitHub
|
|
8
|
+
# Issues has no use for a jira-cli config, and writing one made a false implicit
|
|
9
|
+
# claim about which tracker the project runs on. The gate fails closed — an
|
|
10
|
+
# unreadable or absent tracker writes nothing — because Lisa treats a missing
|
|
11
|
+
# `tracker` as unconfigured rather than as a jira default (see lisa-tracker-read).
|
|
12
|
+
#
|
|
6
13
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
14
|
# JIRA_INSTALLATION - cloud or local
|
|
8
15
|
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
@@ -42,6 +49,11 @@ read_lisa_config() {
|
|
|
42
49
|
printf '%s' "${value}"
|
|
43
50
|
}
|
|
44
51
|
|
|
52
|
+
# Tracker gate: do nothing unless this project actually runs on JIRA.
|
|
53
|
+
if [[ "$(read_lisa_config '.tracker')" != "jira" ]]; then
|
|
54
|
+
exit 0
|
|
55
|
+
fi
|
|
56
|
+
|
|
45
57
|
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
46
58
|
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
47
59
|
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
@@ -28,7 +28,7 @@ This skill ships in the base Lisa plugin and is distributed to every host projec
|
|
|
28
28
|
discover requirements **dynamically from the repo** rather than assuming Lisa-repo specifics. It
|
|
29
29
|
audits two layers together:
|
|
30
30
|
|
|
31
|
-
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh
|
|
31
|
+
- **Lisa's needs** — startup hooks (`install-pkgs.sh`, `setup-jira-cli.sh` — tracker-gated, rule injection),
|
|
32
32
|
the configured `tracker`/`source`, and the CLIs/MCP/env those imply.
|
|
33
33
|
- **The host project's needs** — its own package manager, build/test tooling, app runtime
|
|
34
34
|
dependencies, CI-assumed binaries, and project-scoped MCP servers.
|
|
@@ -71,7 +71,9 @@ Group the findings as:
|
|
|
71
71
|
runs, whether it is headless-safe, whether it needs network or write access to system paths,
|
|
72
72
|
and whether it fits the cloud setup-script time budget (~5 minutes for environment caching;
|
|
73
73
|
`SessionStart` hooks re-run every session and must be fast). Lisa's `install-pkgs.sh` and
|
|
74
|
-
`setup-jira-cli.sh` are the usual headline items.
|
|
74
|
+
`setup-jira-cli.sh` are the usual headline items. Note that `setup-jira-cli.sh` is gated on
|
|
75
|
+
`tracker: "jira"` — on a project using another tracker it exits immediately and needs no
|
|
76
|
+
environment at all, so do not report its JIRA env vars as required there.
|
|
75
77
|
|
|
76
78
|
3. **External CLIs / binaries** — scan hooks, `scripts/`, committed skills/commands, and
|
|
77
79
|
`.github/workflows/` for invoked binaries that a base cloud image likely lacks. Assume node,
|
|
@@ -256,7 +258,7 @@ unsuffixed `…_TOKEN`/`…_KEY` is the simplest to set in a single-account rout
|
|
|
256
258
|
|
|
257
259
|
### JIRA — `tracker: jira`
|
|
258
260
|
- Headless substrate: `jira-cli` + curl (Basic auth). The acli and Atlassian-MCP tiers need prior interactive/OAuth auth → not viable headless.
|
|
259
|
-
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart.)
|
|
261
|
+
- Env: `JIRA_API_TOKEN`, `JIRA_SERVER` (e.g. `https://acme.atlassian.net`), `JIRA_LOGIN` (account email), `JIRA_PROJECT` (default project key); optional `JIRA_INSTALLATION` (default `cloud`), `JIRA_BOARD`. (`setup-jira-cli.sh` writes the jira-cli config from these on SessionStart — but only when `.lisa.config*.json` sets `tracker: "jira"`; on any other tracker the hook is a no-op.)
|
|
260
262
|
- Acquire: `https://id.atlassian.com/manage-profile/security/api-tokens`.
|
|
261
263
|
- Access: the API token inherits the Atlassian user's permissions — the user must have Browse/Create/Edit/Transition on the target project. An unscoped token suffices for jira-cli; a scoped token must cover the JIRA project read/write operations.
|
|
262
264
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.45.
|
|
3
|
+
"version": "3.45.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.45.
|
|
3
|
+
"version": "3.45.4",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|