@codyswann/lisa 2.217.0 → 2.217.2
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/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/rules/reference/config-resolution.md +4 -4
- package/plugins/lisa/rules/reference/observability-audit.md +2 -2
- package/plugins/lisa-agy/plugin.json +1 -1
- 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/rules/reference/config-resolution.md +4 -4
- package/plugins/lisa-copilot/rules/reference/observability-audit.md +2 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +4 -4
- package/plugins/lisa-cursor/rules/observability-audit-reference.mdc +2 -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/rules/reference/config-resolution.md +4 -4
- package/plugins/src/base/rules/reference/observability-audit.md +2 -2
- package/typescript/copy-overwrite/.github/GITHUB_ACTIONS.md +1 -1
- package/typescript/create-only/.github/workflows/claude-ci-auto-fix.yml +14 -6
- package/typescript/create-only/.github/workflows/claude-deploy-auto-fix.yml +11 -4
package/package.json
CHANGED
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"ws": ">=8.20.1"
|
|
96
96
|
},
|
|
97
97
|
"name": "@codyswann/lisa",
|
|
98
|
-
"version": "2.217.
|
|
98
|
+
"version": "2.217.2",
|
|
99
99
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
100
100
|
"main": "dist/index.js",
|
|
101
101
|
"exports": {
|
|
@@ -163,10 +163,10 @@ fi
|
|
|
163
163
|
"gapTiers": "core",
|
|
164
164
|
"backoffHours": 24,
|
|
165
165
|
"thresholds": {
|
|
166
|
-
"
|
|
166
|
+
"minEvents24h": 1,
|
|
167
167
|
"errorRateSpikeMultiplier": 2,
|
|
168
168
|
"p95LatencyMs": 1000,
|
|
169
|
-
"
|
|
169
|
+
"faultRatePct": 5
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -418,10 +418,10 @@ contract: the `observability-audit` rule.
|
|
|
418
418
|
| `monitor.maxCandidates` | no | `20` | Cap on tickets filed per standalone run (`core`/high-severity first). Overridable per-run via `max_candidates=<n>` in `$ARGUMENTS`, which always wins. |
|
|
419
419
|
| `monitor.gapTiers` | no | `core` | Which gap tier files tickets by default: `core` (operationally load-bearing dimensions only) or `all` (also `recommended`). The `--all-gaps` run flag forces `all` for that invocation. |
|
|
420
420
|
| `monitor.backoffHours` | no | `24` | How long after a finding's ticket is closed/resolved to keep suppressing a re-file (the recently-resolved dedup window), so a just-fixed regression isn't re-filed before its signal drains. Distinct from `intake.repair.staleAfterHours` (2h). |
|
|
421
|
-
| `monitor.thresholds.
|
|
421
|
+
| `monitor.thresholds.minEvents24h` | no | `1` | Minimum 24h event count for an unresolved monitored error to be fileable. |
|
|
422
422
|
| `monitor.thresholds.errorRateSpikeMultiplier` | no | `2` | Error rate must be ≥ this × the prior-window baseline (and above an absolute floor) to file. |
|
|
423
423
|
| `monitor.thresholds.p95LatencyMs` | no | `1000` | p95 latency at/above this (or up ≥ 50% vs prior window) is a fileable regression. |
|
|
424
|
-
| `monitor.thresholds.
|
|
424
|
+
| `monitor.thresholds.faultRatePct` | no | `5` | Fault observations above this percentage of observations in the window constitute a fileable anomaly. |
|
|
425
425
|
|
|
426
426
|
Resolution order matches every other key: `$ARGUMENTS` override → `.lisa.config.local.json` →
|
|
427
427
|
`.lisa.config.json` → built-in default. `monitor` files only within the current repo (type-scoped
|
|
@@ -55,11 +55,11 @@ Collect live signals via the stack `ops-specialist` when present (Expo/Rails), e
|
|
|
55
55
|
|
|
56
56
|
| Signal | Fileable when |
|
|
57
57
|
|---|---|
|
|
58
|
-
|
|
|
58
|
+
| Error event | Unresolved error/fatal signal **and** events in last 24h ≥ `monitor.thresholds.minEvents24h` (default 1). Skip resolved, ignored, muted, and below-floor noise. |
|
|
59
59
|
| Error-rate spike | error rate ≥ `errorRateSpikeMultiplier`× (default 2×) the prior-window baseline **and** above an absolute floor (not 1-of-2 requests). |
|
|
60
60
|
| Latency regression | p95 ≥ `p95LatencyMs` (default 1000ms) sustained, **or** p95 up ≥ 50% vs the prior window. |
|
|
61
61
|
| CloudWatch alarm | any alarm in `ALARM` state. |
|
|
62
|
-
|
|
|
62
|
+
| Fault rate | fault observations > `monitor.thresholds.faultRatePct` (default 5%) of observations in the window. |
|
|
63
63
|
| Client-side (Playwright) | repeated console `error` or a 5xx network response on a smoke flow. |
|
|
64
64
|
|
|
65
65
|
Everything below the bar is reported (so the human sees it) but **not** ticketed. `--all-gaps` does not lower anomaly thresholds — it only widens *gap* tiers.
|
|
@@ -163,10 +163,10 @@ fi
|
|
|
163
163
|
"gapTiers": "core",
|
|
164
164
|
"backoffHours": 24,
|
|
165
165
|
"thresholds": {
|
|
166
|
-
"
|
|
166
|
+
"minEvents24h": 1,
|
|
167
167
|
"errorRateSpikeMultiplier": 2,
|
|
168
168
|
"p95LatencyMs": 1000,
|
|
169
|
-
"
|
|
169
|
+
"faultRatePct": 5
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -418,10 +418,10 @@ contract: the `observability-audit` rule.
|
|
|
418
418
|
| `monitor.maxCandidates` | no | `20` | Cap on tickets filed per standalone run (`core`/high-severity first). Overridable per-run via `max_candidates=<n>` in `$ARGUMENTS`, which always wins. |
|
|
419
419
|
| `monitor.gapTiers` | no | `core` | Which gap tier files tickets by default: `core` (operationally load-bearing dimensions only) or `all` (also `recommended`). The `--all-gaps` run flag forces `all` for that invocation. |
|
|
420
420
|
| `monitor.backoffHours` | no | `24` | How long after a finding's ticket is closed/resolved to keep suppressing a re-file (the recently-resolved dedup window), so a just-fixed regression isn't re-filed before its signal drains. Distinct from `intake.repair.staleAfterHours` (2h). |
|
|
421
|
-
| `monitor.thresholds.
|
|
421
|
+
| `monitor.thresholds.minEvents24h` | no | `1` | Minimum 24h event count for an unresolved monitored error to be fileable. |
|
|
422
422
|
| `monitor.thresholds.errorRateSpikeMultiplier` | no | `2` | Error rate must be ≥ this × the prior-window baseline (and above an absolute floor) to file. |
|
|
423
423
|
| `monitor.thresholds.p95LatencyMs` | no | `1000` | p95 latency at/above this (or up ≥ 50% vs prior window) is a fileable regression. |
|
|
424
|
-
| `monitor.thresholds.
|
|
424
|
+
| `monitor.thresholds.faultRatePct` | no | `5` | Fault observations above this percentage of observations in the window constitute a fileable anomaly. |
|
|
425
425
|
|
|
426
426
|
Resolution order matches every other key: `$ARGUMENTS` override → `.lisa.config.local.json` →
|
|
427
427
|
`.lisa.config.json` → built-in default. `monitor` files only within the current repo (type-scoped
|
|
@@ -55,11 +55,11 @@ Collect live signals via the stack `ops-specialist` when present (Expo/Rails), e
|
|
|
55
55
|
|
|
56
56
|
| Signal | Fileable when |
|
|
57
57
|
|---|---|
|
|
58
|
-
|
|
|
58
|
+
| Error event | Unresolved error/fatal signal **and** events in last 24h ≥ `monitor.thresholds.minEvents24h` (default 1). Skip resolved, ignored, muted, and below-floor noise. |
|
|
59
59
|
| Error-rate spike | error rate ≥ `errorRateSpikeMultiplier`× (default 2×) the prior-window baseline **and** above an absolute floor (not 1-of-2 requests). |
|
|
60
60
|
| Latency regression | p95 ≥ `p95LatencyMs` (default 1000ms) sustained, **or** p95 up ≥ 50% vs the prior window. |
|
|
61
61
|
| CloudWatch alarm | any alarm in `ALARM` state. |
|
|
62
|
-
|
|
|
62
|
+
| Fault rate | fault observations > `monitor.thresholds.faultRatePct` (default 5%) of observations in the window. |
|
|
63
63
|
| Client-side (Playwright) | repeated console `error` or a 5xx network response on a smoke flow. |
|
|
64
64
|
|
|
65
65
|
Everything below the bar is reported (so the human sees it) but **not** ticketed. `--all-gaps` does not lower anomaly thresholds — it only widens *gap* tiers.
|
|
@@ -168,10 +168,10 @@ fi
|
|
|
168
168
|
"gapTiers": "core",
|
|
169
169
|
"backoffHours": 24,
|
|
170
170
|
"thresholds": {
|
|
171
|
-
"
|
|
171
|
+
"minEvents24h": 1,
|
|
172
172
|
"errorRateSpikeMultiplier": 2,
|
|
173
173
|
"p95LatencyMs": 1000,
|
|
174
|
-
"
|
|
174
|
+
"faultRatePct": 5
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
}
|
|
@@ -423,10 +423,10 @@ contract: the `observability-audit` rule.
|
|
|
423
423
|
| `monitor.maxCandidates` | no | `20` | Cap on tickets filed per standalone run (`core`/high-severity first). Overridable per-run via `max_candidates=<n>` in `$ARGUMENTS`, which always wins. |
|
|
424
424
|
| `monitor.gapTiers` | no | `core` | Which gap tier files tickets by default: `core` (operationally load-bearing dimensions only) or `all` (also `recommended`). The `--all-gaps` run flag forces `all` for that invocation. |
|
|
425
425
|
| `monitor.backoffHours` | no | `24` | How long after a finding's ticket is closed/resolved to keep suppressing a re-file (the recently-resolved dedup window), so a just-fixed regression isn't re-filed before its signal drains. Distinct from `intake.repair.staleAfterHours` (2h). |
|
|
426
|
-
| `monitor.thresholds.
|
|
426
|
+
| `monitor.thresholds.minEvents24h` | no | `1` | Minimum 24h event count for an unresolved monitored error to be fileable. |
|
|
427
427
|
| `monitor.thresholds.errorRateSpikeMultiplier` | no | `2` | Error rate must be ≥ this × the prior-window baseline (and above an absolute floor) to file. |
|
|
428
428
|
| `monitor.thresholds.p95LatencyMs` | no | `1000` | p95 latency at/above this (or up ≥ 50% vs prior window) is a fileable regression. |
|
|
429
|
-
| `monitor.thresholds.
|
|
429
|
+
| `monitor.thresholds.faultRatePct` | no | `5` | Fault observations above this percentage of observations in the window constitute a fileable anomaly. |
|
|
430
430
|
|
|
431
431
|
Resolution order matches every other key: `$ARGUMENTS` override → `.lisa.config.local.json` →
|
|
432
432
|
`.lisa.config.json` → built-in default. `monitor` files only within the current repo (type-scoped
|
|
@@ -60,11 +60,11 @@ Collect live signals via the stack `ops-specialist` when present (Expo/Rails), e
|
|
|
60
60
|
|
|
61
61
|
| Signal | Fileable when |
|
|
62
62
|
|---|---|
|
|
63
|
-
|
|
|
63
|
+
| Error event | Unresolved error/fatal signal **and** events in last 24h ≥ `monitor.thresholds.minEvents24h` (default 1). Skip resolved, ignored, muted, and below-floor noise. |
|
|
64
64
|
| Error-rate spike | error rate ≥ `errorRateSpikeMultiplier`× (default 2×) the prior-window baseline **and** above an absolute floor (not 1-of-2 requests). |
|
|
65
65
|
| Latency regression | p95 ≥ `p95LatencyMs` (default 1000ms) sustained, **or** p95 up ≥ 50% vs the prior window. |
|
|
66
66
|
| CloudWatch alarm | any alarm in `ALARM` state. |
|
|
67
|
-
|
|
|
67
|
+
| Fault rate | fault observations > `monitor.thresholds.faultRatePct` (default 5%) of observations in the window. |
|
|
68
68
|
| Client-side (Playwright) | repeated console `error` or a 5xx network response on a smoke flow. |
|
|
69
69
|
|
|
70
70
|
Everything below the bar is reported (so the human sees it) but **not** ticketed. `--all-gaps` does not lower anomaly thresholds — it only widens *gap* tiers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.217.
|
|
3
|
+
"version": "2.217.2",
|
|
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": "2.217.
|
|
3
|
+
"version": "2.217.2",
|
|
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": "2.217.
|
|
3
|
+
"version": "2.217.2",
|
|
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": "2.217.
|
|
3
|
+
"version": "2.217.2",
|
|
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": "2.217.
|
|
3
|
+
"version": "2.217.2",
|
|
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"
|
|
@@ -163,10 +163,10 @@ fi
|
|
|
163
163
|
"gapTiers": "core",
|
|
164
164
|
"backoffHours": 24,
|
|
165
165
|
"thresholds": {
|
|
166
|
-
"
|
|
166
|
+
"minEvents24h": 1,
|
|
167
167
|
"errorRateSpikeMultiplier": 2,
|
|
168
168
|
"p95LatencyMs": 1000,
|
|
169
|
-
"
|
|
169
|
+
"faultRatePct": 5
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -418,10 +418,10 @@ contract: the `observability-audit` rule.
|
|
|
418
418
|
| `monitor.maxCandidates` | no | `20` | Cap on tickets filed per standalone run (`core`/high-severity first). Overridable per-run via `max_candidates=<n>` in `$ARGUMENTS`, which always wins. |
|
|
419
419
|
| `monitor.gapTiers` | no | `core` | Which gap tier files tickets by default: `core` (operationally load-bearing dimensions only) or `all` (also `recommended`). The `--all-gaps` run flag forces `all` for that invocation. |
|
|
420
420
|
| `monitor.backoffHours` | no | `24` | How long after a finding's ticket is closed/resolved to keep suppressing a re-file (the recently-resolved dedup window), so a just-fixed regression isn't re-filed before its signal drains. Distinct from `intake.repair.staleAfterHours` (2h). |
|
|
421
|
-
| `monitor.thresholds.
|
|
421
|
+
| `monitor.thresholds.minEvents24h` | no | `1` | Minimum 24h event count for an unresolved monitored error to be fileable. |
|
|
422
422
|
| `monitor.thresholds.errorRateSpikeMultiplier` | no | `2` | Error rate must be ≥ this × the prior-window baseline (and above an absolute floor) to file. |
|
|
423
423
|
| `monitor.thresholds.p95LatencyMs` | no | `1000` | p95 latency at/above this (or up ≥ 50% vs prior window) is a fileable regression. |
|
|
424
|
-
| `monitor.thresholds.
|
|
424
|
+
| `monitor.thresholds.faultRatePct` | no | `5` | Fault observations above this percentage of observations in the window constitute a fileable anomaly. |
|
|
425
425
|
|
|
426
426
|
Resolution order matches every other key: `$ARGUMENTS` override → `.lisa.config.local.json` →
|
|
427
427
|
`.lisa.config.json` → built-in default. `monitor` files only within the current repo (type-scoped
|
|
@@ -55,11 +55,11 @@ Collect live signals via the stack `ops-specialist` when present (Expo/Rails), e
|
|
|
55
55
|
|
|
56
56
|
| Signal | Fileable when |
|
|
57
57
|
|---|---|
|
|
58
|
-
|
|
|
58
|
+
| Error event | Unresolved error/fatal signal **and** events in last 24h ≥ `monitor.thresholds.minEvents24h` (default 1). Skip resolved, ignored, muted, and below-floor noise. |
|
|
59
59
|
| Error-rate spike | error rate ≥ `errorRateSpikeMultiplier`× (default 2×) the prior-window baseline **and** above an absolute floor (not 1-of-2 requests). |
|
|
60
60
|
| Latency regression | p95 ≥ `p95LatencyMs` (default 1000ms) sustained, **or** p95 up ≥ 50% vs the prior window. |
|
|
61
61
|
| CloudWatch alarm | any alarm in `ALARM` state. |
|
|
62
|
-
|
|
|
62
|
+
| Fault rate | fault observations > `monitor.thresholds.faultRatePct` (default 5%) of observations in the window. |
|
|
63
63
|
| Client-side (Playwright) | repeated console `error` or a 5xx network response on a smoke flow. |
|
|
64
64
|
|
|
65
65
|
Everything below the bar is reported (so the human sees it) but **not** ticketed. `--all-gaps` does not lower anomaly thresholds — it only widens *gap* tiers.
|
|
@@ -183,7 +183,7 @@ Fixer of last resort for red CI on unattended branches: Claude analyzes error lo
|
|
|
183
183
|
- Falls back to a non-frozen dependency install when the lockfile itself is broken, so Claude can repair and commit the lockfile
|
|
184
184
|
- When no fix can be produced, files a deduplicated ticket in the tracker declared in `.lisa.config.json` (`tracker`: jira | github | linear) with a title that says whether Claude ran at all
|
|
185
185
|
- Skips environment branches (`main`, `staging`, `dev`) and auto-fix branches (prevents infinite loops); failing checks on an auto-fix PR escalate to a ticket instead of re-entering
|
|
186
|
-
- Requires
|
|
186
|
+
- Requires the caller to map `JIRA_API_TOKEN` / `LINEAR_API_KEY` (and `PAT`) explicitly in its `secrets:` block so tracker credentials reach the issue dispatcher — least-privilege by design; `secrets: inherit` also works mechanically but hands the chain every repo secret and trips SonarCloud security gates
|
|
187
187
|
|
|
188
188
|
### Claude Code Review Response (`claude-code-review-response.yml`)
|
|
189
189
|
|
|
@@ -25,9 +25,17 @@ jobs:
|
|
|
25
25
|
head_branch: ${{ github.event.workflow_run.head_branch }}
|
|
26
26
|
run_id: ${{ github.event.workflow_run.id }}
|
|
27
27
|
package_manager: 'bun'
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
secrets
|
|
28
|
+
# Least-privilege mapping — exactly the secrets the auto-fix chain uses.
|
|
29
|
+
# The tracker tokens are load-bearing: the reusable workflow forwards them
|
|
30
|
+
# to the failure-issue dispatcher, which needs JIRA_API_TOKEN /
|
|
31
|
+
# LINEAR_API_KEY to file tickets in the tracker declared in
|
|
32
|
+
# .lisa.config.json. A CLAUDE_CODE_OAUTH_TOKEN-only mapping silently
|
|
33
|
+
# strands those tickets in GitHub Issues. Unset secrets pass as empty —
|
|
34
|
+
# safe on repos that don't use that tracker. (`secrets: inherit` would
|
|
35
|
+
# also work but hands the chain every repo secret and trips
|
|
36
|
+
# SonarCloud/security-scanner gates.)
|
|
37
|
+
secrets:
|
|
38
|
+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
39
|
+
PAT: ${{ secrets.PAT }}
|
|
40
|
+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
|
|
41
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|
|
@@ -25,7 +25,14 @@ jobs:
|
|
|
25
25
|
head_branch: ${{ github.event.workflow_run.head_branch }}
|
|
26
26
|
run_id: ${{ github.event.workflow_run.id }}
|
|
27
27
|
package_manager: 'bun'
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
# LINEAR_API_KEY
|
|
31
|
-
secrets: inherit
|
|
28
|
+
# Least-privilege mapping — exactly the secrets the deploy-fix chain
|
|
29
|
+
# uses. The tracker tokens are load-bearing: the reusable workflow needs
|
|
30
|
+
# JIRA_API_TOKEN / LINEAR_API_KEY to reach the tracker declared in
|
|
31
|
+
# .lisa.config.json. Unset secrets pass as empty. (`secrets: inherit`
|
|
32
|
+
# would also work but hands the chain every repo secret and trips
|
|
33
|
+
# SonarCloud/security-scanner gates.)
|
|
34
|
+
secrets:
|
|
35
|
+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
36
|
+
PAT: ${{ secrets.PAT }}
|
|
37
|
+
JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}
|
|
38
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|