@codyswann/lisa 2.301.1 → 2.301.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  2. package/dist/core/upstream-evidence-manifest.js +4 -2
  3. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  4. package/dist/migrations/ensure-quality-caller-scopes.d.ts +45 -0
  5. package/dist/migrations/ensure-quality-caller-scopes.d.ts.map +1 -0
  6. package/dist/migrations/ensure-quality-caller-scopes.js +243 -0
  7. package/dist/migrations/ensure-quality-caller-scopes.js.map +1 -0
  8. package/dist/migrations/index.d.ts +1 -0
  9. package/dist/migrations/index.d.ts.map +1 -1
  10. package/dist/migrations/index.js +3 -0
  11. package/dist/migrations/index.js.map +1 -1
  12. package/expo/create-only/.github/workflows/deploy.yml +0 -1
  13. package/nestjs/create-only/.github/workflows/deploy.yml +0 -1
  14. package/package.json +1 -1
  15. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-agy/plugin.json +1 -1
  18. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  21. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  27. package/plugins/lisa-expo-agy/plugin.json +1 -1
  28. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  38. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  42. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  43. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  48. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  52. package/plugins/lisa-rails-agy/plugin.json +1 -1
  53. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  58. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  62. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  63. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -0,0 +1,45 @@
1
+ import type { Migration, MigrationContext, MigrationResult } from "./migration.interface.js";
2
+ /**
3
+ * Migration: grant the reusable quality workflow's caller the token scopes the
4
+ * work-item traceability backstop needs, and map the tracker credentials it
5
+ * needs to verify a PR backlink.
6
+ *
7
+ * Downstream `.github/workflows/ci.yml` is create-only, so a repo installed
8
+ * before #2046 can never receive these through the copy strategies — its
9
+ * backstop runs but reports not-enforceable forever. This migration closes that
10
+ * gap in place.
11
+ *
12
+ * Deliberately conservative, because it edits a file the host owns:
13
+ *
14
+ * - Patches an EXISTING `permissions:` block only. A caller with no block
15
+ * inherits the repo default (typically permissive, so already sufficient);
16
+ * inventing a block there would RESTRICT scopes the called jobs may rely on.
17
+ * - Never downgrades: a scope already granted at `write` is left alone.
18
+ * - Never rewrites `secrets: inherit` into an explicit map — that is the host's
19
+ * choice and converting it changes what the called workflow receives.
20
+ * - Adds only the credentials the configured tracker actually uses; a
21
+ * github-tracker repo needs none, so it gets no secret noise.
22
+ */
23
+ export declare class EnsureQualityCallerScopesMigration implements Migration {
24
+ readonly name = "ensure-quality-caller-scopes";
25
+ readonly description = "Grant the CI quality caller issues/pull-requests read and map tracker credentials for the work-item backstop";
26
+ /**
27
+ * Compute what this migration would change, without writing.
28
+ * @param ctx - Migration context
29
+ * @returns The planned edit
30
+ */
31
+ private plan;
32
+ /**
33
+ * Applies when the caller is missing a needed scope or tracker credential.
34
+ * @param ctx - Migration context
35
+ * @returns True when there is work to do
36
+ */
37
+ applies(ctx: MigrationContext): Promise<boolean>;
38
+ /**
39
+ * Insert the missing permission scopes and tracker secret mappings.
40
+ * @param ctx - Migration context
41
+ * @returns Result describing the action taken
42
+ */
43
+ apply(ctx: MigrationContext): Promise<MigrationResult>;
44
+ }
45
+ //# sourceMappingURL=ensure-quality-caller-scopes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-quality-caller-scopes.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-quality-caller-scopes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAqIlC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kCAAmC,YAAW,SAAS;IAClE,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,QAAQ,CAAC,WAAW,kHAC6F;IAEjH;;;;OAIG;YACW,IAAI;IA4DlB;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD;;;;OAIG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAmE7D"}
@@ -0,0 +1,243 @@
1
+ import { readFile, writeFile } from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import * as fse from "fs-extra";
4
+ const CI_FILE = path.join(".github", "workflows", "ci.yml");
5
+ const CONFIG_FILE = ".lisa.config.json";
6
+ /**
7
+ * Matches the caller line that invokes either reusable quality workflow.
8
+ * Anchored at four spaces because a caller `uses:` is always a job-level key.
9
+ */
10
+ const CALLER_USES = /^ {4}uses:\s*CodySwannGT\/lisa\/\.github\/workflows\/quality(?:-rails)?\.yml@/u;
11
+ /** A job key inside `jobs:` — two-space indent, no value on the line. */
12
+ const JOB_KEY = /^ {2}\S[^:]*:\s*$/u;
13
+ /** Scopes the work_item_traceability job needs from the caller's token. */
14
+ const REQUIRED_SCOPES = ["issues", "pull-requests"];
15
+ /** Tracker credentials, by the `tracker` value that actually needs them. */
16
+ const TRACKER_SECRETS = {
17
+ jira: ["JIRA_API_TOKEN", "JIRA_LOGIN"],
18
+ linear: ["LINEAR_API_KEY"],
19
+ };
20
+ /**
21
+ * Locate the job block containing the reusable-quality caller.
22
+ *
23
+ * Line scanning rather than a YAML round-trip: these files are human-maintained
24
+ * and full of explanatory comments that parse-and-reserialize would delete.
25
+ * Mirrors the technique in scripts/migrate-deploy-order.sh and
26
+ * scripts/detect-stale-workflow-inputs.mjs.
27
+ * @param lines - The workflow file split into lines
28
+ * @returns Start (inclusive) and end (exclusive) line indices, or null
29
+ */
30
+ function findCallerJob(lines) {
31
+ const usesAt = lines.findIndex(line => CALLER_USES.test(line));
32
+ if (usesAt < 0)
33
+ return null;
34
+ // The nearest job key at or above the caller line.
35
+ const start = lines
36
+ .slice(0, usesAt + 1)
37
+ .reduce((acc, line, i) => (JOB_KEY.test(line) ? i : acc), -1);
38
+ const after = lines.findIndex((line, i) => i > usesAt && JOB_KEY.test(line));
39
+ return {
40
+ start: start < 0 ? 0 : start,
41
+ end: after < 0 ? lines.length : after,
42
+ };
43
+ }
44
+ /**
45
+ * Find a four-space `key:` block within the given job range.
46
+ * @param lines - The workflow file split into lines
47
+ * @param key - The block key to find (e.g. "permissions")
48
+ * @param range - Job boundaries to search within
49
+ * @param range.start - First line of the job (inclusive)
50
+ * @param range.end - Line after the job (exclusive)
51
+ * @returns The block's boundaries, or null when the key is absent
52
+ */
53
+ function findBlock(lines, key, range) {
54
+ const header = lines.findIndex((line, i) => i >= range.start && i < range.end && line.startsWith(` ${key}:`));
55
+ if (header < 0)
56
+ return null;
57
+ const inlineValue = lines[header]
58
+ .slice(` ${key}:`.length)
59
+ .trim();
60
+ // Entries are indented deeper than the header; comments and blanks between
61
+ // them belong to the block, so only a shallower non-blank line ends it.
62
+ const breaksAt = lines.findIndex((line, i) => i > header &&
63
+ i < range.end &&
64
+ line.trim() !== "" &&
65
+ !line.startsWith(" "));
66
+ const limit = breaksAt < 0 ? range.end : breaksAt;
67
+ // End just past the last non-blank entry, so trailing blank lines stay
68
+ // below any text we insert.
69
+ const end = lines
70
+ .slice(header + 1, limit)
71
+ .reduce((acc, line, i) => (line.trim() === "" ? acc : header + 2 + i), header + 1);
72
+ return { header, end, inlineValue };
73
+ }
74
+ /**
75
+ * Read the configured tracker, lowercased.
76
+ * @param projectDir - The destination project directory
77
+ * @returns The tracker name, or null when unset or unreadable
78
+ */
79
+ async function readTracker(projectDir) {
80
+ try {
81
+ const raw = await readFile(path.join(projectDir, CONFIG_FILE), "utf8");
82
+ const tracker = JSON.parse(raw).tracker;
83
+ return typeof tracker === "string" && tracker
84
+ ? tracker.toLowerCase()
85
+ : null;
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ }
91
+ /**
92
+ * Migration: grant the reusable quality workflow's caller the token scopes the
93
+ * work-item traceability backstop needs, and map the tracker credentials it
94
+ * needs to verify a PR backlink.
95
+ *
96
+ * Downstream `.github/workflows/ci.yml` is create-only, so a repo installed
97
+ * before #2046 can never receive these through the copy strategies — its
98
+ * backstop runs but reports not-enforceable forever. This migration closes that
99
+ * gap in place.
100
+ *
101
+ * Deliberately conservative, because it edits a file the host owns:
102
+ *
103
+ * - Patches an EXISTING `permissions:` block only. A caller with no block
104
+ * inherits the repo default (typically permissive, so already sufficient);
105
+ * inventing a block there would RESTRICT scopes the called jobs may rely on.
106
+ * - Never downgrades: a scope already granted at `write` is left alone.
107
+ * - Never rewrites `secrets: inherit` into an explicit map — that is the host's
108
+ * choice and converting it changes what the called workflow receives.
109
+ * - Adds only the credentials the configured tracker actually uses; a
110
+ * github-tracker repo needs none, so it gets no secret noise.
111
+ */
112
+ export class EnsureQualityCallerScopesMigration {
113
+ name = "ensure-quality-caller-scopes";
114
+ description = "Grant the CI quality caller issues/pull-requests read and map tracker credentials for the work-item backstop";
115
+ /**
116
+ * Compute what this migration would change, without writing.
117
+ * @param ctx - Migration context
118
+ * @returns The planned edit
119
+ */
120
+ async plan(ctx) {
121
+ const empty = {
122
+ text: null,
123
+ lines: [],
124
+ job: null,
125
+ permissions: null,
126
+ missingScopes: [],
127
+ secrets: null,
128
+ missingSecrets: [],
129
+ };
130
+ const file = path.join(ctx.projectDir, CI_FILE);
131
+ if (!(await fse.pathExists(file)))
132
+ return empty;
133
+ const text = await readFile(file, "utf8");
134
+ const lines = text.split("\n");
135
+ const job = findCallerJob(lines);
136
+ if (!job)
137
+ return { ...empty, text, lines };
138
+ const permissions = findBlock(lines, "permissions", job);
139
+ const granted = new Set(permissions
140
+ ? lines
141
+ .slice(permissions.header + 1, permissions.end)
142
+ .map(line => line.trim().split(":")[0]?.trim())
143
+ .filter((key) => Boolean(key))
144
+ : []);
145
+ const missingScopes = permissions
146
+ ? REQUIRED_SCOPES.filter(scope => !granted.has(scope))
147
+ : [];
148
+ const tracker = await readTracker(ctx.projectDir);
149
+ const wanted = (tracker ? TRACKER_SECRETS[tracker] : undefined) ?? [];
150
+ const secrets = findBlock(lines, "secrets", job);
151
+ // `secrets: inherit` already forwards everything; rewriting it would be a
152
+ // behavior change the host did not ask for.
153
+ const secretsIsMap = secrets !== null && secrets.inlineValue === "";
154
+ const mapped = secretsIsMap
155
+ ? new Set(lines
156
+ .slice(secrets.header + 1, secrets.end)
157
+ .map(line => line.trim().split(":")[0]?.trim())
158
+ .filter((key) => Boolean(key)))
159
+ : new Set();
160
+ const missingSecrets = secretsIsMap
161
+ ? wanted.filter(secret => !mapped.has(secret))
162
+ : [];
163
+ return {
164
+ text,
165
+ lines,
166
+ job,
167
+ permissions,
168
+ missingScopes,
169
+ secrets: secretsIsMap ? secrets : null,
170
+ missingSecrets,
171
+ };
172
+ }
173
+ /**
174
+ * Applies when the caller is missing a needed scope or tracker credential.
175
+ * @param ctx - Migration context
176
+ * @returns True when there is work to do
177
+ */
178
+ async applies(ctx) {
179
+ const plan = await this.plan(ctx);
180
+ return plan.missingScopes.length > 0 || plan.missingSecrets.length > 0;
181
+ }
182
+ /**
183
+ * Insert the missing permission scopes and tracker secret mappings.
184
+ * @param ctx - Migration context
185
+ * @returns Result describing the action taken
186
+ */
187
+ async apply(ctx) {
188
+ const plan = await this.plan(ctx);
189
+ if (plan.missingScopes.length === 0 && plan.missingSecrets.length === 0) {
190
+ return { name: this.name, action: "noop" };
191
+ }
192
+ // Apply insertions bottom-up so each earlier index stays valid against the
193
+ // array the previous step produced.
194
+ const insertions = [
195
+ plan.permissions && plan.missingScopes.length > 0
196
+ ? {
197
+ at: plan.permissions.end,
198
+ text: plan.missingScopes.map(scope => ` ${scope}: read`),
199
+ }
200
+ : null,
201
+ plan.secrets && plan.missingSecrets.length > 0
202
+ ? {
203
+ at: plan.secrets.end,
204
+ text: plan.missingSecrets.map(secret => ` ${secret}: \${{ secrets.${secret} }}`),
205
+ }
206
+ : null,
207
+ ]
208
+ .filter((entry) => entry !== null)
209
+ .sort((a, b) => b.at - a.at);
210
+ const lines = insertions.reduce((acc, entry) => [
211
+ ...acc.slice(0, entry.at),
212
+ ...entry.text,
213
+ ...acc.slice(entry.at),
214
+ ], plan.lines);
215
+ const parts = [
216
+ plan.missingScopes.length > 0
217
+ ? `permissions (${plan.missingScopes.join(", ")})`
218
+ : null,
219
+ plan.missingSecrets.length > 0
220
+ ? `tracker secrets (${plan.missingSecrets.join(", ")})`
221
+ : null,
222
+ ].filter((part) => part !== null);
223
+ const message = `Granted the CI quality caller ${parts.join(" and ")}`;
224
+ if (ctx.dryRun) {
225
+ ctx.logger.dry(`Would update ${CI_FILE}: ${parts.join("; ")}`);
226
+ return {
227
+ name: this.name,
228
+ action: "applied",
229
+ changedFiles: [CI_FILE],
230
+ message,
231
+ };
232
+ }
233
+ await writeFile(path.join(ctx.projectDir, CI_FILE), lines.join("\n"));
234
+ ctx.logger.success(message);
235
+ return {
236
+ name: this.name,
237
+ action: "applied",
238
+ changedFiles: [CI_FILE],
239
+ message,
240
+ };
241
+ }
242
+ }
243
+ //# sourceMappingURL=ensure-quality-caller-scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-quality-caller-scopes.js","sourceRoot":"","sources":["../../src/migrations/ensure-quality-caller-scopes.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export { EnsureJestRnMockAccessibilityManagerMigration } from "./ensure-jest-rn-
5
5
  export { EnsureLearningsGitattributesMigration } from "./ensure-learnings-gitattributes.js";
6
6
  export { EnsureLearningsMergeDriverMigration } from "./ensure-learnings-merge-driver.js";
7
7
  export { EnsureLisaPostinstallMigration } from "./ensure-lisa-postinstall.js";
8
+ export { EnsureQualityCallerScopesMigration } from "./ensure-quality-caller-scopes.js";
8
9
  export { EnsureSonarExcludesLisaHarnessMigration } from "./ensure-sonar-excludes-lisa-harness.js";
9
10
  export { EnsureTsconfigLocalFilesFallbackMigration } from "./ensure-tsconfig-local-files-fallback.js";
10
11
  export { EnsureWikiSourceDeclaredMigration } from "./ensure-wiki-source-declared.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,6CAA6C,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD;;;OAGG;gBACS,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE;IAgB7C;;;OAGG;IACH,MAAM,IAAI,SAAS,SAAS,EAAE;IAI9B;;;;OAIG;IACG,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D;;;;OAIG;IACG,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;CAazE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,6CAA6C,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,qCAAqC,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,uCAAuC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,yCAAyC,EAAE,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAElF;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD;;;OAGG;gBACS,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE;IAiB7C;;;OAGG;IACH,MAAM,IAAI,SAAS,SAAS,EAAE;IAI9B;;;;OAIG;IACG,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D;;;;OAIG;IACG,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;CAazE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -3,6 +3,7 @@ import { EnsureJestRnMockAccessibilityManagerMigration } from "./ensure-jest-rn-
3
3
  import { EnsureLearningsGitattributesMigration } from "./ensure-learnings-gitattributes.js";
4
4
  import { EnsureLearningsMergeDriverMigration } from "./ensure-learnings-merge-driver.js";
5
5
  import { EnsureLisaPostinstallMigration } from "./ensure-lisa-postinstall.js";
6
+ import { EnsureQualityCallerScopesMigration } from "./ensure-quality-caller-scopes.js";
6
7
  import { EnsureSonarExcludesLisaHarnessMigration } from "./ensure-sonar-excludes-lisa-harness.js";
7
8
  import { EnsureTsconfigLocalFilesFallbackMigration } from "./ensure-tsconfig-local-files-fallback.js";
8
9
  import { EnsureWikiSourceDeclaredMigration } from "./ensure-wiki-source-declared.js";
@@ -14,6 +15,7 @@ export { EnsureJestRnMockAccessibilityManagerMigration } from "./ensure-jest-rn-
14
15
  export { EnsureLearningsGitattributesMigration } from "./ensure-learnings-gitattributes.js";
15
16
  export { EnsureLearningsMergeDriverMigration } from "./ensure-learnings-merge-driver.js";
16
17
  export { EnsureLisaPostinstallMigration } from "./ensure-lisa-postinstall.js";
18
+ export { EnsureQualityCallerScopesMigration } from "./ensure-quality-caller-scopes.js";
17
19
  export { EnsureSonarExcludesLisaHarnessMigration } from "./ensure-sonar-excludes-lisa-harness.js";
18
20
  export { EnsureTsconfigLocalFilesFallbackMigration } from "./ensure-tsconfig-local-files-fallback.js";
19
21
  export { EnsureWikiSourceDeclaredMigration } from "./ensure-wiki-source-declared.js";
@@ -38,6 +40,7 @@ export class MigrationRegistry {
38
40
  new EnsureLearningsGitattributesMigration(),
39
41
  new EnsureLearningsMergeDriverMigration(),
40
42
  new EnsureLisaPostinstallMigration(),
43
+ new EnsureQualityCallerScopesMigration(),
41
44
  new EnsureSonarExcludesLisaHarnessMigration(),
42
45
  new EnsureWikiSourceDeclaredMigration(),
43
46
  new ReconcileClaudeStackPluginsMigration(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,6 @@ jobs:
92
92
  needs: [determine_environment]
93
93
  permissions:
94
94
  contents: write
95
- issues: read
96
95
  pull-requests: read
97
96
  with:
98
97
  environment: ${{ needs.determine_environment.outputs.environment }}
@@ -85,7 +85,6 @@ jobs:
85
85
  needs: [determine_environment]
86
86
  permissions:
87
87
  contents: write
88
- issues: read
89
88
  pull-requests: read
90
89
  with:
91
90
  environment: ${{ needs.determine_environment.outputs.environment }}
package/package.json CHANGED
@@ -115,7 +115,7 @@
115
115
  "brace-expansion": ">=5.0.8"
116
116
  },
117
117
  "name": "@codyswann/lisa",
118
- "version": "2.301.1",
118
+ "version": "2.301.3",
119
119
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
120
120
  "main": "dist/index.js",
121
121
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.301.1",
3
+ "version": "2.301.3",
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"