@codyswann/lisa 2.311.11 → 2.311.13

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 (65) hide show
  1. package/dist/cli/doctor-readiness-guardrails.d.ts.map +1 -1
  2. package/dist/cli/doctor-readiness-guardrails.js +9 -2
  3. package/dist/cli/doctor-readiness-guardrails.js.map +1 -1
  4. package/dist/cli/doctor-readiness-local-scripts.d.ts +14 -0
  5. package/dist/cli/doctor-readiness-local-scripts.d.ts.map +1 -1
  6. package/dist/cli/doctor-readiness-local-scripts.js +48 -32
  7. package/dist/cli/doctor-readiness-local-scripts.js.map +1 -1
  8. package/dist/cli/doctor-readiness-promoted-artifact.d.ts +23 -1
  9. package/dist/cli/doctor-readiness-promoted-artifact.d.ts.map +1 -1
  10. package/dist/cli/doctor-readiness-promoted-artifact.js +109 -6
  11. package/dist/cli/doctor-readiness-promoted-artifact.js.map +1 -1
  12. package/dist/cli/doctor-readiness-release-path.d.ts.map +1 -1
  13. package/dist/cli/doctor-readiness-release-path.js +11 -38
  14. package/dist/cli/doctor-readiness-release-path.js.map +1 -1
  15. package/package.json +1 -1
  16. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa-agy/plugin.json +1 -1
  19. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  22. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  28. package/plugins/lisa-expo-agy/plugin.json +1 -1
  29. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  34. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  39. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  44. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  49. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-rails-agy/plugin.json +1 -1
  54. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  59. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  64. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-guardrails.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,iCAAiC,CAAC;AAEzC,gFAAgF;AAChF,eAAO,MAAM,gCAAgC,wBAAwB,CAAC;AAmYtE;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CAgCnC"}
1
+ {"version":3,"file":"doctor-readiness-guardrails.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,iCAAiC,CAAC;AAEzC,gFAAgF;AAChF,eAAO,MAAM,gCAAgC,wBAAwB,CAAC;AAmYtE;;;;;;;;GAQG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,GAC1C,OAAO,CAAC,wBAAwB,CAAC,CAsCnC"}
@@ -23,6 +23,7 @@
23
23
  * @module cli/doctor-readiness-guardrails
24
24
  */
25
25
  import { commandTargetsOwnedService, describeCommands, hasCheckedInRunbook, looksEphemeral, scanCommands, } from "./doctor-readiness-operations.js";
26
+ import { expandLocalScriptCommandsWithDiagnostics } from "./doctor-readiness-local-scripts.js";
26
27
  import { informationalFindings } from "./doctor-readiness-shared.js";
27
28
  import { parseRepositoryWorkflows, } from "./doctor-readiness-workflows.js";
28
29
  /** The feedback/guardrails readiness dimension id (readiness-rubric, RRR-1). */
@@ -347,13 +348,19 @@ function skipRecord(scan, inspected, runbook) {
347
348
  * @returns The feedback/guardrails dimension record
348
349
  */
349
350
  export async function assessFeedbackGuardrailsDimension(root, parsedWorkflows) {
350
- const workflows = parsedWorkflows ?? (await parseRepositoryWorkflows(root));
351
- const scan = scanCommands(workflows, isConsequential, {
351
+ const parsed = parsedWorkflows ?? (await parseRepositoryWorkflows(root));
352
+ const expanded = await expandLocalScriptCommandsWithDiagnostics(root, parsed);
353
+ const workflows = expanded.value;
354
+ const scanned = scanCommands(workflows, isConsequential, {
352
355
  unresolvedWorkflow: lifecycleDeferral,
353
356
  unresolvedStep: servicesDeferral,
354
357
  unresolvedJobCall: reusableCallDeferral,
355
358
  unresolvedActionStep: actionStepDeferral,
356
359
  });
360
+ const scan = {
361
+ ...scanned,
362
+ unresolved: [...scanned.unresolved, ...expanded.unresolved],
363
+ };
357
364
  const runbook = await hasCheckedInRunbook(root);
358
365
  if (scan.ungated.length === 0 || runbook) {
359
366
  return skipRecord(runbook ? { ...scan, gated: [...scan.gated, ...scan.ungated] } : scan, workflows.length, runbook);
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-guardrails.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-readiness-guardrails.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-guardrails.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { ParsedWorkflow } from "./doctor-readiness-workflows.js";
2
+ /** Expansion result plus the remaining aggregate script budget. */
3
+ interface ExpansionResult<T> {
4
+ readonly value: T;
5
+ readonly remainingScripts: number;
6
+ readonly unresolved: readonly string[];
7
+ }
2
8
  /**
3
9
  * Inline directly invoked local shell scripts into the parsed workflow commands.
4
10
  * @param root - Repository root
@@ -6,4 +12,12 @@ import type { ParsedWorkflow } from "./doctor-readiness-workflows.js";
6
12
  * @returns Workflows with bounded script content appended to matching steps
7
13
  */
8
14
  export declare function expandLocalScriptCommands(root: string, workflows: readonly ParsedWorkflow[]): Promise<readonly ParsedWorkflow[]>;
15
+ /**
16
+ * Inline local scripts and report wrapper calls that bounded expansion skipped.
17
+ * @param root - Repository root
18
+ * @param workflows - Parsed workflow files
19
+ * @returns Expanded workflows plus unresolved skipped-wrapper observations
20
+ */
21
+ export declare function expandLocalScriptCommandsWithDiagnostics(root: string, workflows: readonly ParsedWorkflow[]): Promise<ExpansionResult<readonly ParsedWorkflow[]>>;
22
+ export {};
9
23
  //# sourceMappingURL=doctor-readiness-local-scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-local-scripts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,iCAAiC,CAAC;AA8QzC;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAKpC"}
1
+ {"version":3,"file":"doctor-readiness-local-scripts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAoBzC,mEAAmE;AACnE,UAAU,eAAe,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAuRD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAMpC;AAED;;;;;GAKG;AACH,wBAAsB,wCAAwC,CAC5D,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,cAAc,EAAE,GACnC,OAAO,CAAC,eAAe,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAMrD"}
@@ -134,14 +134,20 @@ async function readLocalScript(root, relativePath) {
134
134
  /**
135
135
  * Append any bounded local script bodies referenced by a workflow step.
136
136
  * @param root - Repository root
137
+ * @param job - Parsed workflow job
137
138
  * @param step - Parsed workflow step
138
- * @param context - Shared expansion budget
139
+ * @param remainingScripts - Remaining aggregate expansion budget
139
140
  * @returns Step with script bodies appended to `run`, when present
140
141
  */
141
- async function expandLocalScriptStep(root, step, context) {
142
- const expanded = await expandLocalScriptBodies(root, localScriptPaths(step.run), context.remainingScripts);
142
+ async function expandLocalScriptStep(root, job, step, remainingScripts) {
143
+ const expanded = await expandLocalScriptBodies(root, localScriptPaths(step.run), remainingScripts);
144
+ const unresolved = expanded.skippedScripts.map(script => `\`${job.workflow}\` job \`${job.id}\` step \`${step.name}\` invokes ` +
145
+ "local " +
146
+ `script \`${script}\`, but the bounded wrapper expansion budget was ` +
147
+ "exhausted before that script could be inspected");
143
148
  return {
144
149
  remainingScripts: expanded.remainingScripts,
150
+ unresolved,
145
151
  value: expanded.value.length === 0
146
152
  ? step
147
153
  : { ...step, run: [step.run, ...expanded.value].join("\n") },
@@ -156,13 +162,17 @@ async function expandLocalScriptStep(root, step, context) {
156
162
  */
157
163
  async function expandLocalScriptBodies(root, scripts, remainingScripts) {
158
164
  const [script, ...rest] = scripts;
159
- if (script === undefined || remainingScripts <= 0) {
160
- return { value: [], remainingScripts };
165
+ if (script === undefined) {
166
+ return { value: [], remainingScripts, skippedScripts: [] };
167
+ }
168
+ if (remainingScripts <= 0) {
169
+ return { value: [], remainingScripts, skippedScripts: scripts };
161
170
  }
162
171
  const content = await readLocalScript(root, script);
163
172
  const expanded = await expandLocalScriptBodies(root, rest, remainingScripts - 1);
164
173
  return {
165
174
  remainingScripts: expanded.remainingScripts,
175
+ skippedScripts: expanded.skippedScripts,
166
176
  value: content === null ? expanded.value : [content, ...expanded.value],
167
177
  };
168
178
  }
@@ -170,13 +180,14 @@ async function expandLocalScriptBodies(root, scripts, remainingScripts) {
170
180
  * Expand directly invoked local shell scripts in one parsed job.
171
181
  * @param root - Repository root
172
182
  * @param job - Parsed workflow job
173
- * @param context - Shared expansion budget
183
+ * @param remainingScripts - Remaining aggregate expansion budget
174
184
  * @returns Job with script-expanded steps
175
185
  */
176
- async function expandLocalScriptJob(root, job, context) {
177
- const expanded = await expandLocalScriptSteps(root, job.steps, context);
186
+ async function expandLocalScriptJob(root, job, remainingScripts) {
187
+ const expanded = await expandLocalScriptSteps(root, job, job.steps, remainingScripts);
178
188
  return {
179
189
  remainingScripts: expanded.remainingScripts,
190
+ unresolved: expanded.unresolved,
180
191
  value: {
181
192
  ...job,
182
193
  steps: expanded.value,
@@ -186,21 +197,21 @@ async function expandLocalScriptJob(root, job, context) {
186
197
  /**
187
198
  * Expand local scripts across a job's steps under the shared budget.
188
199
  * @param root - Repository root
200
+ * @param job - Parsed workflow job
189
201
  * @param steps - Parsed workflow steps
190
- * @param context - Shared expansion budget
202
+ * @param remainingScripts - Remaining aggregate expansion budget
191
203
  * @returns Expanded steps and updated budget
192
204
  */
193
- async function expandLocalScriptSteps(root, steps, context) {
205
+ async function expandLocalScriptSteps(root, job, steps, remainingScripts) {
194
206
  const [step, ...rest] = steps;
195
207
  if (step === undefined) {
196
- return { value: [], remainingScripts: context.remainingScripts };
208
+ return { value: [], remainingScripts, unresolved: [] };
197
209
  }
198
- const expandedStep = await expandLocalScriptStep(root, step, context);
199
- const expandedRest = await expandLocalScriptSteps(root, rest, {
200
- remainingScripts: expandedStep.remainingScripts,
201
- });
210
+ const expandedStep = await expandLocalScriptStep(root, job, step, remainingScripts);
211
+ const expandedRest = await expandLocalScriptSteps(root, job, rest, expandedStep.remainingScripts);
202
212
  return {
203
213
  remainingScripts: expandedRest.remainingScripts,
214
+ unresolved: [...expandedStep.unresolved, ...expandedRest.unresolved],
204
215
  value: [expandedStep.value, ...expandedRest.value],
205
216
  };
206
217
  }
@@ -211,29 +222,35 @@ async function expandLocalScriptSteps(root, steps, context) {
211
222
  * @returns Workflows with bounded script content appended to matching steps
212
223
  */
213
224
  export async function expandLocalScriptCommands(root, workflows) {
214
- const expanded = await expandLocalScriptWorkflows(root, workflows, {
215
- remainingScripts: MAX_LOCAL_SCRIPT_EXPANSIONS,
216
- });
225
+ const expanded = await expandLocalScriptCommandsWithDiagnostics(root, workflows);
217
226
  return expanded.value;
218
227
  }
228
+ /**
229
+ * Inline local scripts and report wrapper calls that bounded expansion skipped.
230
+ * @param root - Repository root
231
+ * @param workflows - Parsed workflow files
232
+ * @returns Expanded workflows plus unresolved skipped-wrapper observations
233
+ */
234
+ export async function expandLocalScriptCommandsWithDiagnostics(root, workflows) {
235
+ return await expandLocalScriptWorkflows(root, workflows, MAX_LOCAL_SCRIPT_EXPANSIONS);
236
+ }
219
237
  /**
220
238
  * Expand local scripts across workflows under the shared budget.
221
239
  * @param root - Repository root
222
240
  * @param workflows - Parsed workflow files
223
- * @param context - Shared expansion budget
241
+ * @param remainingScripts - Remaining aggregate expansion budget
224
242
  * @returns Expanded workflows and updated budget
225
243
  */
226
- async function expandLocalScriptWorkflows(root, workflows, context) {
244
+ async function expandLocalScriptWorkflows(root, workflows, remainingScripts) {
227
245
  const [workflow, ...rest] = workflows;
228
246
  if (workflow === undefined) {
229
- return { value: [], remainingScripts: context.remainingScripts };
247
+ return { value: [], remainingScripts, unresolved: [] };
230
248
  }
231
- const expandedJobs = await expandLocalScriptJobs(root, workflow.jobs, context);
232
- const expandedRest = await expandLocalScriptWorkflows(root, rest, {
233
- remainingScripts: expandedJobs.remainingScripts,
234
- });
249
+ const expandedJobs = await expandLocalScriptJobs(root, workflow.jobs, remainingScripts);
250
+ const expandedRest = await expandLocalScriptWorkflows(root, rest, expandedJobs.remainingScripts);
235
251
  return {
236
252
  remainingScripts: expandedRest.remainingScripts,
253
+ unresolved: [...expandedJobs.unresolved, ...expandedRest.unresolved],
237
254
  value: [
238
255
  {
239
256
  ...workflow,
@@ -247,20 +264,19 @@ async function expandLocalScriptWorkflows(root, workflows, context) {
247
264
  * Expand local scripts across workflow jobs under the shared budget.
248
265
  * @param root - Repository root
249
266
  * @param jobs - Parsed workflow jobs
250
- * @param context - Shared expansion budget
267
+ * @param remainingScripts - Remaining aggregate expansion budget
251
268
  * @returns Expanded jobs and updated budget
252
269
  */
253
- async function expandLocalScriptJobs(root, jobs, context) {
270
+ async function expandLocalScriptJobs(root, jobs, remainingScripts) {
254
271
  const [job, ...rest] = jobs;
255
272
  if (job === undefined) {
256
- return { value: [], remainingScripts: context.remainingScripts };
273
+ return { value: [], remainingScripts, unresolved: [] };
257
274
  }
258
- const expandedJob = await expandLocalScriptJob(root, job, context);
259
- const expandedRest = await expandLocalScriptJobs(root, rest, {
260
- remainingScripts: expandedJob.remainingScripts,
261
- });
275
+ const expandedJob = await expandLocalScriptJob(root, job, remainingScripts);
276
+ const expandedRest = await expandLocalScriptJobs(root, rest, expandedJob.remainingScripts);
262
277
  return {
263
278
  remainingScripts: expandedRest.remainingScripts,
279
+ unresolved: [...expandedJob.unresolved, ...expandedRest.unresolved],
264
280
  value: [expandedJob.value, ...expandedRest.value],
265
281
  };
266
282
  }
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-local-scripts.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-readiness-local-scripts.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-local-scripts.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ import type { ParsedWorkflowJob, ParsedWorkflowStep } from "./doctor-readiness-w
6
6
  import type { ReleasePathOutcome } from "./doctor-readiness-release-path.js";
7
7
  /** The GitHub Actions promotion step Lisa recognizes for CI-built artifacts. */
8
8
  export declare const PROMOTION_ACTION = "actions/download-artifact";
9
+ /**
10
+ * Whether an action step publishes something externally.
11
+ * @param step - The step to classify
12
+ * @returns True when the action is a known publishing action
13
+ */
14
+ export declare function isPublishAction(step: ParsedWorkflowStep): boolean;
9
15
  /**
10
16
  * Whether an action reference is the trusted artifact-promotion action.
11
17
  * @param uses - Raw action reference
@@ -16,9 +22,25 @@ export declare function isPromotionAction(uses: string): boolean;
16
22
  * Whether the job promotes an artifact produced by another job.
17
23
  * @param job - The publishing job
18
24
  * @param publishStep - The step that ships
25
+ * @param ancestorJobs - Jobs in the publishing job's `needs:` closure
19
26
  * @returns True when a download-artifact step is present before publication
20
27
  */
21
- export declare function promotesValidatedArtifact(job: ParsedWorkflowJob, publishStep: ParsedWorkflowStep): boolean;
28
+ export declare function promotesValidatedArtifact(job: ParsedWorkflowJob, publishStep: ParsedWorkflowStep, ancestorJobs?: readonly ParsedWorkflowJob[]): boolean;
29
+ /**
30
+ * Whether a named artifact download disagrees with named ancestor uploads.
31
+ * @param job - The publishing job
32
+ * @param publishStep - The step that ships
33
+ * @param ancestorJobs - Jobs in the publishing job's `needs:` closure
34
+ * @returns True when the downloaded artifact name is not uploaded by any ancestor
35
+ */
36
+ export declare function hasArtifactNameMismatch(job: ParsedWorkflowJob, publishStep: ParsedWorkflowStep, ancestorJobs: readonly ParsedWorkflowJob[]): boolean;
37
+ /**
38
+ * The release job downloaded a named artifact different from anything a
39
+ * validating ancestor uploaded, so the shipped bytes are not the tested bytes.
40
+ * @param where - Evidence location label
41
+ * @returns The violation outcome
42
+ */
43
+ export declare function artifactNameMismatch(where: string): ReleasePathOutcome;
22
44
  /**
23
45
  * A downloaded artifact without linked validation is unestablished, not clean.
24
46
  * @param where - Evidence location label
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-promoted-artifact.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAIT;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAQ5E"}
1
+ {"version":3,"file":"doctor-readiness-promoted-artifact.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AA4B5D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AA6CD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,kBAAkB,EAC/B,YAAY,GAAE,SAAS,iBAAiB,EAAO,GAC9C,OAAO,CAWT;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,iBAAiB,EACtB,WAAW,EAAE,kBAAkB,EAC/B,YAAY,EAAE,SAAS,iBAAiB,EAAE,GACzC,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAOtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAQ5E"}
@@ -1,24 +1,127 @@
1
1
  /** The GitHub Actions promotion step Lisa recognizes for CI-built artifacts. */
2
2
  export const PROMOTION_ACTION = "actions/download-artifact";
3
+ const DOCKER_BUILD_PUSH_ACTION = "docker/build-push-action";
4
+ const GITHUB_RELEASE_ACTION = "softprops/action-gh-release";
5
+ const PYPI_PUBLISH_ACTION = "pypa/gh-action-pypi-publish";
6
+ const UPLOAD_ARTIFACT_ACTION = "actions/upload-artifact";
7
+ /**
8
+ * Normalize an action reference to its owner/repo component.
9
+ * @param uses - Raw `uses:` value
10
+ * @returns Lowercase action id without an `@ref`
11
+ */
12
+ function actionId(uses) {
13
+ return (uses.split("@")[0] ?? "").trim().toLowerCase();
14
+ }
15
+ /**
16
+ * Whether a serialized `with:` block sets a boolean option to true.
17
+ * @param inputs - Flattened step inputs
18
+ * @param name - Input name to read
19
+ * @returns True when the option is explicitly true
20
+ */
21
+ function hasTrueInput(inputs, name) {
22
+ const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
23
+ return new RegExp(`(^|\\n)${escaped}:\\s*['"]?true['"]?(\\s|$)`, "i").test(inputs);
24
+ }
25
+ /**
26
+ * Whether an action step publishes something externally.
27
+ * @param step - The step to classify
28
+ * @returns True when the action is a known publishing action
29
+ */
30
+ export function isPublishAction(step) {
31
+ const id = actionId(step.uses);
32
+ if (id === DOCKER_BUILD_PUSH_ACTION) {
33
+ return hasTrueInput(step.inputs, "push");
34
+ }
35
+ return id === PYPI_PUBLISH_ACTION || id === GITHUB_RELEASE_ACTION;
36
+ }
3
37
  /**
4
38
  * Whether an action reference is the trusted artifact-promotion action.
5
39
  * @param uses - Raw action reference
6
40
  * @returns True when the action id is exactly actions/download-artifact
7
41
  */
8
42
  export function isPromotionAction(uses) {
9
- const actionId = uses.split("@")[0]?.trim();
10
- return actionId === PROMOTION_ACTION;
43
+ return actionId(uses) === PROMOTION_ACTION;
44
+ }
45
+ /**
46
+ * Whether an action reference uploads an artifact produced by CI.
47
+ * @param uses - Raw action reference
48
+ * @returns True when the action id is exactly actions/upload-artifact
49
+ */
50
+ function isUploadAction(uses) {
51
+ return actionId(uses) === UPLOAD_ARTIFACT_ACTION;
52
+ }
53
+ /**
54
+ * Read a scalar step input from the parser's flattened `with:` text.
55
+ * @param inputs - Flattened step inputs
56
+ * @param name - Input name to read
57
+ * @returns The input value, or null when absent
58
+ */
59
+ function stepInput(inputs, name) {
60
+ const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
61
+ const match = new RegExp(`(^|\\n)${escaped}:\\s*(.+)(\\n|$)`).exec(inputs);
62
+ const value = match?.[2]?.trim();
63
+ if (value === undefined || value === "") {
64
+ return null;
65
+ }
66
+ return value.replace(/^['"]|['"]$/g, "");
67
+ }
68
+ /**
69
+ * List artifact names uploaded by jobs whose outputs have already been validated.
70
+ * @param validatingAncestorJobs - Validating jobs in the publishing job's `needs:` closure
71
+ * @returns Uploaded artifact names
72
+ */
73
+ function uploadedArtifactNames(validatingAncestorJobs) {
74
+ return new Set(validatingAncestorJobs.flatMap(job => job.steps
75
+ .filter(step => isUploadAction(step.uses))
76
+ .map(step => stepInput(step.inputs, "name"))
77
+ .filter((name) => name !== null)));
11
78
  }
12
79
  /**
13
80
  * Whether the job promotes an artifact produced by another job.
14
81
  * @param job - The publishing job
15
82
  * @param publishStep - The step that ships
83
+ * @param ancestorJobs - Jobs in the publishing job's `needs:` closure
16
84
  * @returns True when a download-artifact step is present before publication
17
85
  */
18
- export function promotesValidatedArtifact(job, publishStep) {
19
- return job.steps
20
- .slice(0, job.steps.indexOf(publishStep))
21
- .some(step => isPromotionAction(step.uses));
86
+ export function promotesValidatedArtifact(job, publishStep, ancestorJobs = []) {
87
+ const uploads = uploadedArtifactNames(ancestorJobs);
88
+ return job.steps.slice(0, job.steps.indexOf(publishStep)).some(step => {
89
+ if (!isPromotionAction(step.uses)) {
90
+ return false;
91
+ }
92
+ const downloadName = stepInput(step.inputs, "name");
93
+ return (downloadName === null || uploads.size === 0 || uploads.has(downloadName));
94
+ });
95
+ }
96
+ /**
97
+ * Whether a named artifact download disagrees with named ancestor uploads.
98
+ * @param job - The publishing job
99
+ * @param publishStep - The step that ships
100
+ * @param ancestorJobs - Jobs in the publishing job's `needs:` closure
101
+ * @returns True when the downloaded artifact name is not uploaded by any ancestor
102
+ */
103
+ export function hasArtifactNameMismatch(job, publishStep, ancestorJobs) {
104
+ const uploads = uploadedArtifactNames(ancestorJobs);
105
+ return job.steps.slice(0, job.steps.indexOf(publishStep)).some(step => {
106
+ if (!isPromotionAction(step.uses)) {
107
+ return false;
108
+ }
109
+ const downloadName = stepInput(step.inputs, "name");
110
+ return downloadName !== null && !uploads.has(downloadName);
111
+ });
112
+ }
113
+ /**
114
+ * The release job downloaded a named artifact different from anything a
115
+ * validating ancestor uploaded, so the shipped bytes are not the tested bytes.
116
+ * @param where - Evidence location label
117
+ * @returns The violation outcome
118
+ */
119
+ export function artifactNameMismatch(where) {
120
+ return {
121
+ kind: "violation",
122
+ evidence: `${where} downloads a named artifact that no validating ancestor uploads, ` +
123
+ "so the release path cannot prove the shipped artifact is the one CI tested",
124
+ };
22
125
  }
23
126
  /**
24
127
  * A downloaded artifact without linked validation is unestablished, not clean.
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-promoted-artifact.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"AAUA,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,OAAO,QAAQ,KAAK,gBAAgB,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAsB,EACtB,WAA+B;IAE/B,OAAO,GAAG,CAAC,KAAK;SACb,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM,EACJ,GAAG,KAAK,+BAA+B,gBAAgB,aAAa;YACpE,2EAA2E;YAC3E,uEAAuE;KAC1E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"doctor-readiness-promoted-artifact.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-promoted-artifact.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-release-path.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAYzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAwF3E,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAW7D;AAuDD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,iBAAiB,GACrB,SAAS,kBAAkB,EAAE,CAE/B;AAmJD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,iBAAiB,EACtB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,EACnC,YAAY,CAAC,EAAE,SAAS,cAAc,EAAE,GACvC,SAAS,kBAAkB,EAAE,CA8B/B"}
1
+ {"version":3,"file":"doctor-readiness-release-path.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAgF3E,sDAAsD;AACtD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAW7D;AA4BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,iBAAiB,GACrB,SAAS,kBAAkB,EAAE,CAE/B;AAmJD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,iBAAiB,EACtB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,EACnC,YAAY,CAAC,EAAE,SAAS,cAAc,EAAE,GACvC,SAAS,kBAAkB,EAAE,CAuC/B"}
@@ -1,17 +1,8 @@
1
- import { ancestorJobs, reusableCallerValidation, } from "./doctor-readiness-reusable-callers.js";
2
- import { isPromotionAction, promotesValidatedArtifact, PROMOTION_ACTION, unresolvedPromotedArtifact, } from "./doctor-readiness-promoted-artifact.js";
1
+ import { ancestorJobs as ancestors, reusableCallerValidation, } from "./doctor-readiness-reusable-callers.js";
2
+ import { artifactNameMismatch, hasArtifactNameMismatch, isPublishAction, isPromotionAction, promotesValidatedArtifact, PROMOTION_ACTION, unresolvedPromotedArtifact, } from "./doctor-readiness-promoted-artifact.js";
3
3
  export { PROMOTION_ACTION } from "./doctor-readiness-promoted-artifact.js";
4
- const PUBLISH_VERBS = [
5
- "npm publish",
6
- "docker push",
7
- "gh release upload",
8
- "aws s3 sync",
9
- "cdk deploy",
10
- "eas submit",
11
- ];
4
+ const PUBLISH_VERB = /(npm publish|docker push|gh release upload|aws s3 sync|cdk deploy|eas submit)/;
12
5
  const DOCKER_BUILD_PUSH_ACTION = "docker/build-push-action";
13
- const PYPI_PUBLISH_ACTION = "pypa/gh-action-pypi-publish";
14
- const GITHUB_RELEASE_ACTION = "softprops/action-gh-release";
15
6
  /** Commands that actually run a test suite. */
16
7
  const VALIDATING_COMMANDS = [
17
8
  /\b(npm|yarn|pnpm|bun|npx|bunx)\s+(run\s+)?test\b/,
@@ -101,28 +92,6 @@ const DRY_RUN_FLAG = /--dry[-_]?run\b/;
101
92
  function actionId(uses) {
102
93
  return (uses.split("@")[0] ?? "").trim().toLowerCase();
103
94
  }
104
- /**
105
- * Whether a serialized `with:` block sets a boolean option to true.
106
- * @param inputs - Flattened step inputs
107
- * @param name - Input name to read
108
- * @returns True when the option is explicitly true
109
- */
110
- function hasTrueInput(inputs, name) {
111
- const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
112
- return new RegExp(`(^|\\n)${escaped}:\\s*['"]?true['"]?(\\s|$)`, "i").test(inputs);
113
- }
114
- /**
115
- * Whether an action step publishes something externally.
116
- * @param step - The step to classify
117
- * @returns True when the action is a known publishing action
118
- */
119
- function isPublishAction(step) {
120
- const id = actionId(step.uses);
121
- if (id === DOCKER_BUILD_PUSH_ACTION) {
122
- return hasTrueInput(step.inputs, "push");
123
- }
124
- return id === PYPI_PUBLISH_ACTION || id === GITHUB_RELEASE_ACTION;
125
- }
126
95
  /**
127
96
  * Whether a step actually puts an artifact in front of users. A `--dry-run`
128
97
  * invocation names a publish verb but ships nothing, so faulting its release
@@ -131,8 +100,7 @@ function isPublishAction(step) {
131
100
  * @returns True when the step really publishes
132
101
  */
133
102
  function isPublishStep(step) {
134
- return ((PUBLISH_VERBS.some(verb => step.run.includes(verb)) &&
135
- !DRY_RUN_FLAG.test(step.run)) ||
103
+ return ((PUBLISH_VERB.test(step.run) && !DRY_RUN_FLAG.test(step.run)) ||
136
104
  isPublishAction(step));
137
105
  }
138
106
  /**
@@ -169,7 +137,7 @@ function validationPrecedesPublish(workflow, job, publishStep, allWorkflows) {
169
137
  "validated") {
170
138
  return true;
171
139
  }
172
- if (ancestorJobs(workflow, job).some(isValidatingJob)) {
140
+ if (ancestors(workflow, job).some(isValidatingJob)) {
173
141
  return true;
174
142
  }
175
143
  return job.steps
@@ -260,16 +228,21 @@ function offlineUnresolvableTrigger(workflow, defaultBranches, allWorkflows) {
260
228
  export function assessReleasePaths(workflow, job, defaultBranches, allWorkflows) {
261
229
  return findPublishSteps(job).map(publishStep => {
262
230
  const where = `${workflow.file} job \`${job.id}\` step \`${describeStep(publishStep)}\``;
231
+ const validatingAncestors = ancestors(workflow, job).filter(isValidatingJob);
263
232
  const validated = validationPrecedesPublish(workflow, job, publishStep, allWorkflows);
264
233
  if (shipsSelfBuiltArtifact(job, publishStep)) {
265
234
  return validated
266
235
  ? rebuildPastValidation(where)
267
236
  : unvalidatedSelfBuild(where, workflow, defaultBranches, allWorkflows);
268
237
  }
238
+ if (validated &&
239
+ hasArtifactNameMismatch(job, publishStep, validatingAncestors)) {
240
+ return artifactNameMismatch(where);
241
+ }
269
242
  if (validated) {
270
243
  return { kind: "clean" };
271
244
  }
272
- if (promotesValidatedArtifact(job, publishStep))
245
+ if (promotesValidatedArtifact(job, publishStep, validatingAncestors))
273
246
  return unresolvedPromotedArtifact(where);
274
247
  // Neither built here nor promoted from CI, and nothing validating precedes it:
275
248
  // the link between what ships and what was validated is simply not observable
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-readiness-release-path.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-readiness-release-path.js","sourceRoot":"","sources":["../../src/cli/doctor-readiness-release-path.ts"],"names":[],"mappings":"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"}
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.311.11",
118
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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.311.11",
3
+ "version": "2.311.13",
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-phaser",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.311.11",
3
+ "version": "2.311.13",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"