@codyswann/lisa 3.11.8 → 3.12.0

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/all/copy-overwrite/scripts/lisa-command-envelope.mjs +10 -0
  2. package/all/copy-overwrite/scripts/lisa-destructive-guard.mjs +267 -0
  3. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  4. package/dist/core/upstream-evidence-manifest.js +8 -2
  5. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  6. package/dist/migrations/ensure-quality-caller-scopes.d.ts +17 -4
  7. package/dist/migrations/ensure-quality-caller-scopes.d.ts.map +1 -1
  8. package/dist/migrations/ensure-quality-caller-scopes.js +83 -16
  9. package/dist/migrations/ensure-quality-caller-scopes.js.map +1 -1
  10. package/package.json +1 -1
  11. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa/rules/eager/reset-seed-coverage.md +2 -0
  14. package/plugins/lisa-agy/plugin.json +1 -1
  15. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  18. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-copilot/rules/eager/reset-seed-coverage.md +2 -0
  22. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cursor/rules/reset-seed-coverage.mdc +2 -0
  24. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-expo-agy/plugin.json +1 -1
  27. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  37. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  42. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  47. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-rails-agy/plugin.json +1 -1
  52. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  57. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  61. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  62. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  64. package/plugins/src/base/rules/eager/reset-seed-coverage.md +2 -0
@@ -9,11 +9,24 @@ import type { Migration, MigrationContext, MigrationResult } from "./migration.i
9
9
  * backstop runs but reports not-enforceable forever. This migration closes that
10
10
  * gap in place.
11
11
  *
12
- * Deliberately conservative, because it edits a file the host owns:
12
+ * A caller with NO `permissions:` block is the BROKEN shape, not the safe one.
13
+ * It was previously skipped on the premise that the repo default is "typically
14
+ * permissive"; measurement disproved that (#2476). On two private consumers a
15
+ * block-less caller job received `contents: read` + `metadata: read`, so
16
+ * `gh pr view` and `gh issue view` both failed and the gate could never pass —
17
+ * while a sibling repo whose caller granted the two read scopes ran the real
18
+ * validation. Those repos can never self-heal through the copy strategies
19
+ * either, because `.github/workflows/ci.yml` is create-only. So this migration
20
+ * now writes the block when it is absent.
13
21
  *
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.
22
+ * Still deliberately conservative, because it edits a file the host owns:
23
+ *
24
+ * - Grants read-only scopes for `quality.yml`, whose 32 jobs were audited to
25
+ * need no write scope (#1769), so an invented block cannot cost a job access
26
+ * it uses today. `quality-rails.yml` declares `checks: write` and
27
+ * `pull-requests: write` at the workflow level, and a caller granting less
28
+ * than the called workflow declares is a startup_failure for the whole run
29
+ * (#2049) — so a rails caller is granted those levels, never `read`.
17
30
  * - Never downgrades: a scope already granted at `write` is left alone.
18
31
  * - Never rewrites `secrets: inherit` into an explicit map — that is the host's
19
32
  * choice and converting it changes what the called workflow receives.
@@ -1 +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"}
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;AAiLlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,kCAAmC,YAAW,SAAS;IAClE,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,QAAQ,CAAC,WAAW,kHAC6F;IAEjH;;;;OAIG;YACW,IAAI;IAgElB;;;;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;CAmF7D"}
@@ -10,8 +10,36 @@ const CONFIG_FILE = ".lisa.config.json";
10
10
  const CALLER_USES = /^ {4}uses:\s*CodySwannGT\/lisa\/\.github\/workflows\/quality(?:-rails)?\.yml@/u;
11
11
  /** A job key inside `jobs:` — two-space indent, no value on the line. */
12
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"];
13
+ /** Distinguishes the rails reusable workflow from the standard one. */
14
+ const RAILS_CALLER = /quality-rails\.yml@/u;
15
+ /**
16
+ * Scopes the caller must grant, per reusable workflow.
17
+ *
18
+ * `contents: read` is the floor both workflows declare. `issues: read` and
19
+ * `pull-requests: read` are what work_item_traceability's `gh issue view` and
20
+ * `gh pr view` need, and a reusable workflow may only DOWNGRADE the caller's
21
+ * grant — so if the caller does not hold them, that job can never enforce
22
+ * anything.
23
+ *
24
+ * quality-rails.yml additionally declares `checks: write` and
25
+ * `pull-requests: write` at the workflow level. A called workflow that requests
26
+ * more than the caller granted is a startup_failure for the ENTIRE run (#2049),
27
+ * so a rails caller must be granted at least those levels — writing
28
+ * `pull-requests: read` there would take the whole workflow down.
29
+ */
30
+ const SCOPES_BY_WORKFLOW = {
31
+ standard: [
32
+ ["contents", "read"],
33
+ ["issues", "read"],
34
+ ["pull-requests", "read"],
35
+ ],
36
+ rails: [
37
+ ["contents", "read"],
38
+ ["checks", "write"],
39
+ ["issues", "read"],
40
+ ["pull-requests", "write"],
41
+ ],
42
+ };
15
43
  /** Tracker credentials, by the `tracker` value that actually needs them. */
16
44
  const TRACKER_SECRETS = {
17
45
  jira: ["JIRA_API_TOKEN", "JIRA_LOGIN"],
@@ -39,6 +67,7 @@ function findCallerJob(lines) {
39
67
  return {
40
68
  start: start < 0 ? 0 : start,
41
69
  end: after < 0 ? lines.length : after,
70
+ usesAt,
42
71
  };
43
72
  }
44
73
  /**
@@ -88,6 +117,14 @@ async function readTracker(projectDir) {
88
117
  return null;
89
118
  }
90
119
  }
120
+ /**
121
+ * Render the scope lines of a caller `permissions:` block.
122
+ * @param scopes - Scope/level pairs to render
123
+ * @returns Indented YAML lines
124
+ */
125
+ function scopeLines(scopes) {
126
+ return scopes.map(([name, level]) => ` ${name}: ${level}`);
127
+ }
91
128
  /**
92
129
  * Migration: grant the reusable quality workflow's caller the token scopes the
93
130
  * work-item traceability backstop needs, and map the tracker credentials it
@@ -98,11 +135,24 @@ async function readTracker(projectDir) {
98
135
  * backstop runs but reports not-enforceable forever. This migration closes that
99
136
  * gap in place.
100
137
  *
101
- * Deliberately conservative, because it edits a file the host owns:
138
+ * A caller with NO `permissions:` block is the BROKEN shape, not the safe one.
139
+ * It was previously skipped on the premise that the repo default is "typically
140
+ * permissive"; measurement disproved that (#2476). On two private consumers a
141
+ * block-less caller job received `contents: read` + `metadata: read`, so
142
+ * `gh pr view` and `gh issue view` both failed and the gate could never pass —
143
+ * while a sibling repo whose caller granted the two read scopes ran the real
144
+ * validation. Those repos can never self-heal through the copy strategies
145
+ * either, because `.github/workflows/ci.yml` is create-only. So this migration
146
+ * now writes the block when it is absent.
147
+ *
148
+ * Still deliberately conservative, because it edits a file the host owns:
102
149
  *
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.
150
+ * - Grants read-only scopes for `quality.yml`, whose 32 jobs were audited to
151
+ * need no write scope (#1769), so an invented block cannot cost a job access
152
+ * it uses today. `quality-rails.yml` declares `checks: write` and
153
+ * `pull-requests: write` at the workflow level, and a caller granting less
154
+ * than the called workflow declares is a startup_failure for the whole run
155
+ * (#2049) — so a rails caller is granted those levels, never `read`.
106
156
  * - Never downgrades: a scope already granted at `write` is left alone.
107
157
  * - Never rewrites `secrets: inherit` into an explicit map — that is the host's
108
158
  * choice and converting it changes what the called workflow receives.
@@ -135,6 +185,7 @@ export class EnsureQualityCallerScopesMigration {
135
185
  const job = findCallerJob(lines);
136
186
  if (!job)
137
187
  return { ...empty, text, lines };
188
+ const required = SCOPES_BY_WORKFLOW[RAILS_CALLER.test(lines[job.usesAt]) ? "rails" : "standard"];
138
189
  const permissions = findBlock(lines, "permissions", job);
139
190
  const granted = new Set(permissions
140
191
  ? lines
@@ -142,9 +193,9 @@ export class EnsureQualityCallerScopesMigration {
142
193
  .map(line => line.trim().split(":")[0]?.trim())
143
194
  .filter((key) => Boolean(key))
144
195
  : []);
145
- const missingScopes = permissions
146
- ? REQUIRED_SCOPES.filter(scope => !granted.has(scope))
147
- : [];
196
+ // With no block at all NOTHING is granted, so the whole set is missing —
197
+ // that is the case this migration exists to repair.
198
+ const missingScopes = required.filter(([name]) => !granted.has(name));
148
199
  const tracker = await readTracker(ctx.projectDir);
149
200
  const wanted = (tracker ? TRACKER_SECRETS[tracker] : undefined) ?? [];
150
201
  const secrets = findBlock(lines, "secrets", job);
@@ -192,12 +243,26 @@ export class EnsureQualityCallerScopesMigration {
192
243
  // Apply insertions bottom-up so each earlier index stays valid against the
193
244
  // array the previous step produced.
194
245
  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,
246
+ plan.missingScopes.length === 0
247
+ ? null
248
+ : plan.permissions
249
+ ? {
250
+ at: plan.permissions.end,
251
+ text: scopeLines(plan.missingScopes),
252
+ }
253
+ : {
254
+ // No block: write a whole one immediately above `uses:`, which is
255
+ // the one key a caller job always has.
256
+ at: plan.job.usesAt,
257
+ text: [
258
+ " # A reusable workflow may only DOWNGRADE the caller's grant, so the",
259
+ " # work-item traceability job can enforce nothing the caller does not",
260
+ " # hold. With no block here the job received contents+metadata read",
261
+ " # only, and its `gh pr view` / `gh issue view` calls failed (#2476).",
262
+ " permissions:",
263
+ ...scopeLines(plan.missingScopes),
264
+ ],
265
+ },
201
266
  plan.secrets && plan.missingSecrets.length > 0
202
267
  ? {
203
268
  at: plan.secrets.end,
@@ -214,7 +279,9 @@ export class EnsureQualityCallerScopesMigration {
214
279
  ], plan.lines);
215
280
  const parts = [
216
281
  plan.missingScopes.length > 0
217
- ? `permissions (${plan.missingScopes.join(", ")})`
282
+ ? `permissions (${plan.missingScopes
283
+ .map(([name, level]) => `${name}: ${level}`)
284
+ .join(", ")})`
218
285
  : null,
219
286
  plan.missingSecrets.length > 0
220
287
  ? `tracker secrets (${plan.missingSecrets.join(", ")})`
@@ -1 +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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"}
1
+ {"version":3,"file":"ensure-quality-caller-scopes.js","sourceRoot":"","sources":["../../src/migrations/ensure-quality-caller-scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAOhC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,GACf,gFAAgF,CAAC;AAEnF,yEAAyE;AACzE,MAAM,OAAO,GAAG,oBAAoB,CAAC;AAErC,uEAAuE;AACvE,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAK5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,kBAAkB,GAEpB;IACF,QAAQ,EAAE;QACR,CAAC,UAAU,EAAE,MAAM,CAAC;QACpB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClB,CAAC,eAAe,EAAE,MAAM,CAAC;KAC1B;IACD,KAAK,EAAE;QACL,CAAC,UAAU,EAAE,MAAM,CAAC;QACpB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClB,CAAC,eAAe,EAAE,OAAO,CAAC;KAC3B;CACF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,eAAe,GAAgD;IACnE,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;IACtC,MAAM,EAAE,CAAC,gBAAgB,CAAC;CAC3B,CAAC;AAYF;;;;;;;;;GASG;AACH,SAAS,aAAa,CACpB,KAAwB;IAExB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,mDAAmD;IACnD,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;SACpB,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,OAAO;QACL,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QAC5B,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;QACrC,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAChB,KAAwB,EACxB,GAAW,EACX,KAAqC;IAErC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACV,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,CACtE,CAAC;IACF,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,WAAW,GAAI,KAAK,CAAC,MAAM,CAAY;SAC1C,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;SAC3B,IAAI,EAAE,CAAC;IACV,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAC9B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACV,CAAC,GAAG,MAAM;QACV,CAAC,GAAG,KAAK,CAAC,GAAG;QACb,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAClB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC7B,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,uEAAuE;IACvE,4BAA4B;IAC5B,MAAM,GAAG,GAAG,KAAK;SACd,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC;SACxB,MAAM,CACL,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAC7D,MAAM,GAAG,CAAC,CACX,CAAC;IACJ,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,UAAkB;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,OAAO,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAA2B,CAAC,OAAO,CAAC;QAC5E,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;YAC3C,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE;YACvB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAaD;;;;GAIG;AACH,SAAS,UAAU,CAAC,MAAwB;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,OAAO,kCAAkC;IACpC,IAAI,GAAG,8BAA8B,CAAC;IACtC,WAAW,GAClB,8GAA8G,CAAC;IAEjH;;;;OAIG;IACK,KAAK,CAAC,IAAI,CAAC,GAAqB;QACtC,MAAM,KAAK,GAAS;YAClB,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,EAAE;SACnB,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAE3C,MAAM,QAAQ,GACZ,kBAAkB,CAChB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CACtE,CAAC;QACJ,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,WAAW;YACT,CAAC,CAAC,KAAK;iBACF,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC;iBAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;iBAC9C,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC,CAAC,EAAE,CACP,CAAC;QACF,yEAAyE;QACzE,oDAAoD;QACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACjD,0EAA0E;QAC1E,4CAA4C;QAC5C,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,YAAY;YACzB,CAAC,CAAC,IAAI,GAAG,CACL,KAAK;iBACF,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;iBACtC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;iBAC9C,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAChD;YACH,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QACtB,MAAM,cAAc,GAAG,YAAY;YACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,IAAI;YACJ,KAAK;YACL,GAAG;YACH,WAAW;YACX,aAAa;YACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACtC,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,GAAqB;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,GAAqB;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QAED,2EAA2E;QAC3E,oCAAoC;QACpC,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC,WAAW;oBAChB,CAAC,CAAC;wBACE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;wBACxB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;qBACrC;oBACH,CAAC,CAAC;wBACE,kEAAkE;wBAClE,uCAAuC;wBACvC,EAAE,EAAG,IAAI,CAAC,GAA0B,CAAC,MAAM;wBAC3C,IAAI,EAAE;4BACJ,yEAAyE;4BACzE,0EAA0E;4BAC1E,wEAAwE;4BACxE,0EAA0E;4BAC1E,kBAAkB;4BAClB,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;yBAClC;qBACF;YACP,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBAC5C,CAAC,CAAC;oBACE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;oBACpB,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAC3B,MAAM,CAAC,EAAE,CAAC,SAAS,MAAM,kBAAkB,MAAM,KAAK,CACvD;iBACF;gBACH,CAAC,CAAC,IAAI;SACT;aACE,MAAM,CACL,CAAC,KAAK,EAA2C,EAAE,CAAC,KAAK,KAAK,IAAI,CACnE;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YACd,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,KAAK,CAAC,IAAI;YACb,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;SACvB,EACD,IAAI,CAAC,KAAK,CACX,CAAC;QAEF,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAC,gBAAgB,IAAI,CAAC,aAAa;qBAC/B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC;qBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClB,CAAC,CAAC,IAAI;YACR,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACvD,CAAC,CAAC,IAAI;SACT,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,iCAAiC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAEvE,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,CAAC,OAAO,CAAC;gBACvB,OAAO;aACR,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,CAAC,OAAO,CAAC;YACvB,OAAO;SACR,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -122,7 +122,7 @@
122
122
  }
123
123
  },
124
124
  "name": "@codyswann/lisa",
125
- "version": "3.11.8",
125
+ "version": "3.12.0",
126
126
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
127
127
  "main": "dist/index.js",
128
128
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -45,4 +45,6 @@ A project with no state contract yet is not exempt: the first work item touching
45
45
 
46
46
  Every reset, seed, verify, inventory, and classification adapter answers the **same interface** — one validated JSON result on stdout, exit 0 only when the operation both completed **and** verified, `--dry-run` mandatory before anything destructive, and a requested stage always re-checked against server-resolved identity rather than trusted. The envelope is specified in the reference body and is what makes "every repo answers the same question the same way" checkable instead of aspirational.
47
47
 
48
+ **The production arm of this is executable, not advisory.** `scripts/lisa-destructive-guard.mjs` ships to every adopter and is wired into the envelope itself: a destructive run against a production-resolved — or unresolvable — environment has **no representable success envelope**, so it can never exit 0, and there is no parameter, field, or environment variable anywhere in the guard that changes the answer. A dry run is not an exemption, and `--dry-run` is the default rather than an opt-in. Read this as what it is: a check at the one interface every adapter passes through, which an adapter that misreports its own environment still defeats. The end state is a destructive capability that is **not deployed to production at all** — non-existence beats refusal — and that design, with the failure modes it must still close, is recorded in `docs/design/reset-production-absence.md`.
49
+
48
50
  Full contract (state-contract schema, check semantics, detectors, envelope schema, enforcement patterns, bootstrap procedure): [reference/reset-seed-coverage.md](../reference/reset-seed-coverage.md).
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -45,4 +45,6 @@ A project with no state contract yet is not exempt: the first work item touching
45
45
 
46
46
  Every reset, seed, verify, inventory, and classification adapter answers the **same interface** — one validated JSON result on stdout, exit 0 only when the operation both completed **and** verified, `--dry-run` mandatory before anything destructive, and a requested stage always re-checked against server-resolved identity rather than trusted. The envelope is specified in the reference body and is what makes "every repo answers the same question the same way" checkable instead of aspirational.
47
47
 
48
+ **The production arm of this is executable, not advisory.** `scripts/lisa-destructive-guard.mjs` ships to every adopter and is wired into the envelope itself: a destructive run against a production-resolved — or unresolvable — environment has **no representable success envelope**, so it can never exit 0, and there is no parameter, field, or environment variable anywhere in the guard that changes the answer. A dry run is not an exemption, and `--dry-run` is the default rather than an opt-in. Read this as what it is: a check at the one interface every adapter passes through, which an adapter that misreports its own environment still defeats. The end state is a destructive capability that is **not deployed to production at all** — non-existence beats refusal — and that design, with the failure modes it must still close, is recorded in `docs/design/reset-production-absence.md`.
49
+
48
50
  Full contract (state-contract schema, check semantics, detectors, envelope schema, enforcement patterns, bootstrap procedure): [reference/reset-seed-coverage.md](../reference/reset-seed-coverage.md).
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -50,4 +50,6 @@ A project with no state contract yet is not exempt: the first work item touching
50
50
 
51
51
  Every reset, seed, verify, inventory, and classification adapter answers the **same interface** — one validated JSON result on stdout, exit 0 only when the operation both completed **and** verified, `--dry-run` mandatory before anything destructive, and a requested stage always re-checked against server-resolved identity rather than trusted. The envelope is specified in the reference body and is what makes "every repo answers the same question the same way" checkable instead of aspirational.
52
52
 
53
+ **The production arm of this is executable, not advisory.** `scripts/lisa-destructive-guard.mjs` ships to every adopter and is wired into the envelope itself: a destructive run against a production-resolved — or unresolvable — environment has **no representable success envelope**, so it can never exit 0, and there is no parameter, field, or environment variable anywhere in the guard that changes the answer. A dry run is not an exemption, and `--dry-run` is the default rather than an opt-in. Read this as what it is: a check at the one interface every adapter passes through, which an adapter that misreports its own environment still defeats. The end state is a destructive capability that is **not deployed to production at all** — non-existence beats refusal — and that design, with the failure modes it must still close, is recorded in `docs/design/reset-production-absence.md`.
54
+
53
55
  Full contract (state-contract schema, check semantics, detectors, envelope schema, enforcement patterns, bootstrap procedure): [reference/reset-seed-coverage.md](reset-seed-coverage-reference.mdc).
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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": "3.11.8",
3
+ "version": "3.12.0",
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"