@codyswann/lisa 3.45.3 → 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/dist/codex/scripts/setup-jira-cli.sh +7 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +3 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/lisa-session-bootstrap.ts +7 -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 ??
|
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"
|
|
@@ -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, 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, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|