@codyswann/lisa 4.29.8 → 4.29.10

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 (77) hide show
  1. package/dist/core/lisa.d.ts.map +1 -1
  2. package/dist/core/lisa.js +2 -0
  3. package/dist/core/lisa.js.map +1 -1
  4. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  5. package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -1
  6. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  7. package/dist/core/upstream-evidence-manifest.js +4 -2
  8. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  9. package/dist/migrations/ensure-seeded-gates.d.ts +43 -2
  10. package/dist/migrations/ensure-seeded-gates.d.ts.map +1 -1
  11. package/dist/migrations/ensure-seeded-gates.js +82 -4
  12. package/dist/migrations/ensure-seeded-gates.js.map +1 -1
  13. package/dist/migrations/migration.interface.d.ts +18 -0
  14. package/dist/migrations/migration.interface.d.ts.map +1 -1
  15. package/package.json +4 -4
  16. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  19. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  20. package/plugins/lisa/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  21. package/plugins/lisa/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  22. package/plugins/lisa-agy/plugin.json +1 -1
  23. package/plugins/lisa-agy/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  24. package/plugins/lisa-agy/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  25. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  27. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  28. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-copilot/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  32. package/plugins/lisa-copilot/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  33. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-cursor/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  35. package/plugins/lisa-cursor/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
  36. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-expo-agy/plugin.json +1 -1
  39. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  44. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  49. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  54. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  59. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-rails-agy/plugin.json +1 -1
  64. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  69. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  73. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  74. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  76. package/plugins/src/base/skills/lisa-parity-sentry-sdk-setup/SKILL.md +27 -2
  77. package/plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md +16 -5
@@ -19,8 +19,17 @@ import type { Migration, MigrationContext, MigrationResult } from "./migration.i
19
19
  * ungoverned — and stays reported by `lisa-gates.mjs unconfigured`, which the
20
20
  * pre-push hook and every gated CI job now print. Visible beats declared-away.
21
21
  *
22
+ * WHY AN INSTALL DOES NOT DO IT. This is a migration on `lisa apply`, and the
23
+ * package-manager install lifecycle runs an apply too — so without a guard the
24
+ * seeding would happen on `bun install`, which is nobody's request to change
25
+ * what their repository requires of a push. In `postinstall-safe` mode it
26
+ * therefore declines and reports what it withheld; see {@link
27
+ * EnsureSeededGatesMigration.refuse}.
28
+ *
22
29
  * Idempotent: an existing declaration always wins, so a second run seeds
23
- * nothing. Never removes or rewrites a declaration the project made.
30
+ * nothing. Never removes or rewrites a declaration the project made, and never
31
+ * moves one — including `gates.runner`, which is not a gate and is passed
32
+ * through untouched.
24
33
  */
25
34
  export declare class EnsureSeededGatesMigration implements Migration {
26
35
  readonly name = "ensure-seeded-gates";
@@ -38,10 +47,42 @@ export declare class EnsureSeededGatesMigration implements Migration {
38
47
  */
39
48
  applies(ctx: MigrationContext): Promise<boolean>;
40
49
  /**
41
- * Write the seeded declarations into `.lisa.config.json`.
50
+ * Write the seeded declarations into `.lisa.config.json`, unless this apply
51
+ * is a package manager's install — in which case report and write nothing.
42
52
  * @param ctx - Migration context
43
53
  * @returns Result describing the action taken
44
54
  */
45
55
  apply(ctx: MigrationContext): Promise<MigrationResult>;
56
+ /**
57
+ * Decline to seed during a package manager's install, and say what was
58
+ * declined and how to get it deliberately.
59
+ *
60
+ * WHY AN INSTALL MAY NOT DO THIS. What this migration writes is not a
61
+ * generated file — it is the project's declaration of what its own pushes
62
+ * and pull requests must prove, checked in and reviewed like any other
63
+ * contract. Seeding is a legitimate change to make; making it during
64
+ * `bun install` is not, because nobody typed that command meaning to change
65
+ * what the repository requires. Measured in a caller repo in the portfolio:
66
+ * an install added `dependency-vulnerability` at `push` as `required`, the
67
+ * change appeared only as one modified file in `git status`, four different
68
+ * agents on four different branches each stashed it as not-theirs, and any
69
+ * one routine `git add -A` would have committed a CI-contract change nobody
70
+ * authored (CodySwannGT/lisa#3574).
71
+ *
72
+ * The direction observed there was tightening, which is the lucky case. The
73
+ * same silence would carry a LOOSENED gate identically — one modified JSON
74
+ * file, nothing in the signal distinguishing the two — so the rule is about
75
+ * who asked, not about which way the change points.
76
+ *
77
+ * WHY IT REPORTS RATHER THAN GOING QUIET. A migration that simply skipped
78
+ * here would be this codebase's signature defect: work that stops happening
79
+ * with nothing anywhere saying so. The seeding is still wanted — it is how a
80
+ * hardcoded fallback gets retired — so the install names every declaration
81
+ * it withheld and the one command that applies them into a reviewable diff.
82
+ * @param ctx - Migration context
83
+ * @param plan - What seeding would have written
84
+ * @returns A skipped result carrying the operator-readable explanation
85
+ */
86
+ private refuse;
46
87
  }
47
88
  //# sourceMappingURL=ensure-seeded-gates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-seeded-gates.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AA+DlC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,0BAA2B,YAAW,SAAS;IAC1D,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,8GACyF;IAE7G;;;;OAIG;YACW,IAAI;IAoClB;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD;;;;OAIG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAyB7D"}
1
+ {"version":3,"file":"ensure-seeded-gates.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAmElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,0BAA2B,YAAW,SAAS;IAC1D,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,WAAW,8GACyF;IAE7G;;;;OAIG;YACW,IAAI;IAgDlB;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD;;;;;OAKG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2B5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,MAAM;CA6Bf"}
@@ -50,8 +50,17 @@ async function detectRunner(projectDir) {
50
50
  * ungoverned — and stays reported by `lisa-gates.mjs unconfigured`, which the
51
51
  * pre-push hook and every gated CI job now print. Visible beats declared-away.
52
52
  *
53
+ * WHY AN INSTALL DOES NOT DO IT. This is a migration on `lisa apply`, and the
54
+ * package-manager install lifecycle runs an apply too — so without a guard the
55
+ * seeding would happen on `bun install`, which is nobody's request to change
56
+ * what their repository requires of a push. In `postinstall-safe` mode it
57
+ * therefore declines and reports what it withheld; see {@link
58
+ * EnsureSeededGatesMigration.refuse}.
59
+ *
53
60
  * Idempotent: an existing declaration always wins, so a second run seeds
54
- * nothing. Never removes or rewrites a declaration the project made.
61
+ * nothing. Never removes or rewrites a declaration the project made, and never
62
+ * moves one — including `gates.runner`, which is not a gate and is passed
63
+ * through untouched.
55
64
  */
56
65
  export class EnsureSeededGatesMigration {
57
66
  name = "ensure-seeded-gates";
@@ -76,9 +85,20 @@ export class EnsureSeededGatesMigration {
76
85
  const registry = await importGateRegistry();
77
86
  if (registry === null)
78
87
  return null;
79
- const { runner: declaredRunner, ...gates } = config.gates ?? {};
88
+ // READ `runner`, do not SPLIT IT OUT. The previous form destructured it
89
+ // (`const { runner, ...gates }`) purely to obtain the declared value, and
90
+ // the rest-spread that came free with that syntax dropped the key from the
91
+ // block — so `seedGates` re-appended it at the END, moving a key the
92
+ // project had placed somewhere else. That is a change to a checked-in file
93
+ // that says nothing and means nothing, and it landed in consumers as an
94
+ // unexplained line in `git status`. `seedGates` only ever writes keys that
95
+ // are gate ids, and `runner` is not one, so passing the block whole is
96
+ // equally safe and leaves every declared key exactly where its author put
97
+ // it.
98
+ const gates = config.gates ?? {};
99
+ const declaredRunner = gates.runner;
80
100
  const result = registry.seedGates({
81
- gates: gates,
101
+ gates,
82
102
  scripts: manifest.scripts ?? {},
83
103
  runner: typeof declaredRunner === "string"
84
104
  ? declaredRunner
@@ -93,6 +113,7 @@ export class EnsureSeededGatesMigration {
93
113
  seeded: result.seeded.map(entry => ({
94
114
  gate: entry.gate,
95
115
  moment: entry.moment,
116
+ run: entry.run,
96
117
  })),
97
118
  };
98
119
  }
@@ -105,7 +126,8 @@ export class EnsureSeededGatesMigration {
105
126
  return (await this.plan(ctx)) !== null;
106
127
  }
107
128
  /**
108
- * Write the seeded declarations into `.lisa.config.json`.
129
+ * Write the seeded declarations into `.lisa.config.json`, unless this apply
130
+ * is a package manager's install — in which case report and write nothing.
109
131
  * @param ctx - Migration context
110
132
  * @returns Result describing the action taken
111
133
  */
@@ -113,6 +135,8 @@ export class EnsureSeededGatesMigration {
113
135
  const plan = await this.plan(ctx);
114
136
  if (plan === null)
115
137
  return { name: this.name, action: "noop" };
138
+ if (ctx.postinstallSafe === true)
139
+ return this.refuse(ctx, plan);
116
140
  const declared = plan.seeded
117
141
  .map(entry => `${entry.gate}@${entry.moment}`)
118
142
  .join(", ");
@@ -135,5 +159,59 @@ export class EnsureSeededGatesMigration {
135
159
  message,
136
160
  };
137
161
  }
162
+ /**
163
+ * Decline to seed during a package manager's install, and say what was
164
+ * declined and how to get it deliberately.
165
+ *
166
+ * WHY AN INSTALL MAY NOT DO THIS. What this migration writes is not a
167
+ * generated file — it is the project's declaration of what its own pushes
168
+ * and pull requests must prove, checked in and reviewed like any other
169
+ * contract. Seeding is a legitimate change to make; making it during
170
+ * `bun install` is not, because nobody typed that command meaning to change
171
+ * what the repository requires. Measured in a caller repo in the portfolio:
172
+ * an install added `dependency-vulnerability` at `push` as `required`, the
173
+ * change appeared only as one modified file in `git status`, four different
174
+ * agents on four different branches each stashed it as not-theirs, and any
175
+ * one routine `git add -A` would have committed a CI-contract change nobody
176
+ * authored (CodySwannGT/lisa#3574).
177
+ *
178
+ * The direction observed there was tightening, which is the lucky case. The
179
+ * same silence would carry a LOOSENED gate identically — one modified JSON
180
+ * file, nothing in the signal distinguishing the two — so the rule is about
181
+ * who asked, not about which way the change points.
182
+ *
183
+ * WHY IT REPORTS RATHER THAN GOING QUIET. A migration that simply skipped
184
+ * here would be this codebase's signature defect: work that stops happening
185
+ * with nothing anywhere saying so. The seeding is still wanted — it is how a
186
+ * hardcoded fallback gets retired — so the install names every declaration
187
+ * it withheld and the one command that applies them into a reviewable diff.
188
+ * @param ctx - Migration context
189
+ * @param plan - What seeding would have written
190
+ * @returns A skipped result carrying the operator-readable explanation
191
+ */
192
+ refuse(ctx, plan) {
193
+ const lines = plan.seeded.map(entry => ` • ${entry.gate} at ${entry.moment} → required${entry.run === null ? "" : ` (runs \`${entry.run}\`)`}`);
194
+ const message = [
195
+ `Left ${LISA_CONFIG} unchanged: an install must not change what this repository requires of a push.`,
196
+ "",
197
+ ` Lisa would declare ${plan.seeded.length} gate(s) that a Lisa-shipped hook or workflow is already running here:`,
198
+ "",
199
+ ...lines,
200
+ "",
201
+ " Nothing is enforced any differently until you apply them — those checks",
202
+ " already run. Declaring them is what lets the project control them.",
203
+ "",
204
+ " To apply them deliberately, so the change lands in a commit somebody reviews:",
205
+ "",
206
+ " npx @codyswann/lisa@latest .",
207
+ ].join("\n");
208
+ ctx.logger.warn(message);
209
+ return {
210
+ name: this.name,
211
+ action: "skipped",
212
+ changedFiles: [],
213
+ message,
214
+ };
215
+ }
138
216
  }
139
217
  //# sourceMappingURL=ensure-seeded-gates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-seeded-gates.js","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-seeded-gates.js","sourceRoot":"","sources":["../../src/migrations/ensure-seeded-gates.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,24 @@ export interface MigrationContext {
16
16
  readonly detectedTypes: readonly ProjectType[];
17
17
  /** If true, describe what would change without modifying files */
18
18
  readonly dryRun: boolean;
19
+ /**
20
+ * True when this apply is the reduced subset a package manager's install
21
+ * lifecycle runs — the mode `--postinstall-safe` / `LISA_POSTINSTALL=1`
22
+ * selects (see `core/apply-mode.ts`).
23
+ *
24
+ * A migration reads this to answer one question: "did an operator ask for
25
+ * this, or did a dependency install?" Nobody types `bun install` meaning to
26
+ * change what their repository requires of a push, so a migration that
27
+ * rewrites a REVIEWED, checked-in declaration must decline here and report
28
+ * instead. Migrations that only reconcile generated or ignored files have no
29
+ * reason to read it.
30
+ *
31
+ * Optional, and absent means the full apply an operator invoked. That is the
32
+ * safe default for the reading above — a context that never learned the
33
+ * answer behaves as though a human is standing there, which is exactly the
34
+ * case where writing is legitimate.
35
+ */
36
+ readonly postinstallSafe?: boolean;
19
37
  /** Logger for user-facing output */
20
38
  readonly logger: ILogger;
21
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migration.interface.d.ts","sourceRoot":"","sources":["../../src/migrations/migration.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAE/C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxD"}
1
+ {"version":3,"file":"migration.interface.d.ts","sourceRoot":"","sources":["../../src/migrations/migration.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,SAAS,WAAW,EAAE,CAAC;IAE/C,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxD"}
package/package.json CHANGED
@@ -164,7 +164,7 @@
164
164
  "zod-validation-error": "^4.0.0"
165
165
  },
166
166
  "name": "@codyswann/lisa",
167
- "version": "4.29.8",
167
+ "version": "4.29.10",
168
168
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
169
169
  "main": "dist/index.js",
170
170
  "exports": {
@@ -312,7 +312,7 @@
312
312
  "test": "tests"
313
313
  },
314
314
  "types": "./dist/index.d.ts",
315
- "lisaReleaseCommit": "57557f93211733f55333da42ab5c0590b3f1fa54",
316
- "gitHead": "57557f93211733f55333da42ab5c0590b3f1fa54",
317
- "lisaReleaseTag": "v4.29.8"
315
+ "lisaReleaseCommit": "8bd61916212e8db84f55b9a39fd71262c9981dca",
316
+ "gitHead": "8bd61916212e8db84f55b9a39fd71262c9981dca",
317
+ "lisaReleaseTag": "v4.29.10"
318
318
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "4.29.8",
3
+ "version": "4.29.10",
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": "4.29.8",
3
+ "version": "4.29.10",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-sdk-setup
3
3
  description: "Install and configure the…"
4
4
  allowed-tools: ["Read", "Edit", "Write", "Bash"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Sentry SDK Setup
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
19
19
  upstream **1.2.0** Sentry itself consolidated the suite into one
20
20
  `sentry-instrument` playbook, so the shapes now match — but this skill remains a
21
21
  from-scratch reimplementation against Lisa conventions, **not** a translation of
22
- the upstream skill. Pinned to `sentry@claude-plugins-official@1.3.2` via
22
+ the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
23
23
  `synced-from` so the parity drift detector tracks it as one unit.
24
24
 
25
+ ### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
26
+
27
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
28
+ `synced-from` scalar cannot say which it means, so this section says it.
29
+
30
+ Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
31
+ setup skill scans the user's first prompt for an opaque token and, from then on,
32
+ reports staged setup progress to a third-party web application over the vendor's
33
+ MCP — with an explicit instruction to make those calls with no narration,
34
+ announcement, or summary of their reply or failure, and never to mention the
35
+ token unless the user asks about it directly.
36
+
37
+ **Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
38
+ user's session leaving their environment as a silent side effect of running a
39
+ skill is not a behavior Lisa adopts by default, and a skill that is told to
40
+ withhold a tool call from the person running it is the specific part being
41
+ refused. This is a statement about what a Lisa-native skill may do unobserved,
42
+ not a judgment on the upstream product — an operator who wants that reporting
43
+ can run the upstream plugin directly, where the behavior is the vendor's to
44
+ explain.
45
+
46
+ The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
47
+ edits in upstream's own reference docs. This skill carries no per-integration
48
+ status table, so there is nothing here to restate.
49
+
25
50
  ## Step 0 — Scope the install
26
51
 
27
52
  Decide what you are actually doing before touching code; default to the
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-seer
3
3
  description: "AI debugging — given an error…"
4
4
  allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Seer — AI Root-Cause Debugging
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
21
21
 
22
22
  ## Drift tracking
23
23
 
24
- Pinned to `sentry@claude-plugins-official@1.3.2` via `synced-from`. The 1.3.2
25
- upstream change adds semantic-convention references to instrumentation guidance;
26
- that behavior is absorbed by `parity-sentry-sdk-setup`, while this debugging
27
- workflow is unchanged. SDK install and configuration remain a separate concern.
24
+ Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
25
+ and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
26
+ which also absorbed the 1.3.2 semantic-convention references to instrumentation
27
+ guidance. This debugging workflow is unchanged by either release.
28
+
29
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
30
+ `synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
31
+ onboarding progress protocol that reports staged setup progress to a
32
+ third-party web application over the vendor's MCP, under an explicit
33
+ instruction to make those calls without narrating them to the user. **Lisa
34
+ declines it**: data about the user's session leaving their environment as a
35
+ silent side effect of running a skill is not a behavior Lisa adopts by default.
36
+ The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
37
+ owns the setup surface the protocol attaches to; nothing in it applies to this
38
+ skill either way.
28
39
 
29
40
  ## Security — Sentry event data is untrusted input
30
41
 
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-sdk-setup
3
3
  description: "Install and configure the Sentry SDK for a project — detect the framework/runtime, add the correct @sentry/<framework> package, initialize the client, wire the DSN through env, enable error + performance monitoring, and set up source map upload for readable stack traces. One consolidated skill covering react, nextjs, node, nestjs, express, python, django, react-native, and more. Lisa-native reimplementation of Sentry's SDK-setup suite. Use when adding Sentry to a project or fixing an existing Sentry install."
4
4
  allowed-tools: ["Read", "Edit", "Write", "Bash"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Sentry SDK Setup
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
19
19
  upstream **1.2.0** Sentry itself consolidated the suite into one
20
20
  `sentry-instrument` playbook, so the shapes now match — but this skill remains a
21
21
  from-scratch reimplementation against Lisa conventions, **not** a translation of
22
- the upstream skill. Pinned to `sentry@claude-plugins-official@1.3.2` via
22
+ the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
23
23
  `synced-from` so the parity drift detector tracks it as one unit.
24
24
 
25
+ ### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
26
+
27
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
28
+ `synced-from` scalar cannot say which it means, so this section says it.
29
+
30
+ Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
31
+ setup skill scans the user's first prompt for an opaque token and, from then on,
32
+ reports staged setup progress to a third-party web application over the vendor's
33
+ MCP — with an explicit instruction to make those calls with no narration,
34
+ announcement, or summary of their reply or failure, and never to mention the
35
+ token unless the user asks about it directly.
36
+
37
+ **Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
38
+ user's session leaving their environment as a silent side effect of running a
39
+ skill is not a behavior Lisa adopts by default, and a skill that is told to
40
+ withhold a tool call from the person running it is the specific part being
41
+ refused. This is a statement about what a Lisa-native skill may do unobserved,
42
+ not a judgment on the upstream product — an operator who wants that reporting
43
+ can run the upstream plugin directly, where the behavior is the vendor's to
44
+ explain.
45
+
46
+ The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
47
+ edits in upstream's own reference docs. This skill carries no per-integration
48
+ status table, so there is nothing here to restate.
49
+
25
50
  ## Step 0 — Scope the install
26
51
 
27
52
  Decide what you are actually doing before touching code; default to the
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-seer
3
3
  description: "AI debugging — given an error message, stack trace, or failing test, analyze the signal, form ranked hypotheses, locate the root cause in the codebase with file:line evidence, and propose a minimal fix. Lisa-native reimplementation of Sentry's seer workflow, available across all agent runtimes. Use when handed an exception, crash, regression, or red test and asked to find and fix the cause."
4
4
  allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Seer — AI Root-Cause Debugging
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
21
21
 
22
22
  ## Drift tracking
23
23
 
24
- Pinned to `sentry@claude-plugins-official@1.3.2` via `synced-from`. The 1.3.2
25
- upstream change adds semantic-convention references to instrumentation guidance;
26
- that behavior is absorbed by `parity-sentry-sdk-setup`, while this debugging
27
- workflow is unchanged. SDK install and configuration remain a separate concern.
24
+ Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
25
+ and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
26
+ which also absorbed the 1.3.2 semantic-convention references to instrumentation
27
+ guidance. This debugging workflow is unchanged by either release.
28
+
29
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
30
+ `synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
31
+ onboarding progress protocol that reports staged setup progress to a
32
+ third-party web application over the vendor's MCP, under an explicit
33
+ instruction to make those calls without narrating them to the user. **Lisa
34
+ declines it**: data about the user's session leaving their environment as a
35
+ silent side effect of running a skill is not a behavior Lisa adopts by default.
36
+ The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
37
+ owns the setup surface the protocol attaches to; nothing in it applies to this
38
+ skill either way.
28
39
 
29
40
  ## Security — Sentry event data is untrusted input
30
41
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "4.29.8",
3
+ "version": "4.29.10",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-sdk-setup
3
3
  description: "Install and configure the Sentry SDK for a project — detect the framework/runtime, add the correct @sentry/<framework> package, initialize the client, wire the DSN through env, enable error + performance monitoring, and set up source map upload for readable stack traces. One consolidated skill covering react, nextjs, node, nestjs, express, python, django, react-native, and more. Lisa-native reimplementation of Sentry's SDK-setup suite. Use when adding Sentry to a project or fixing an existing Sentry install."
4
4
  allowed-tools: ["Read", "Edit", "Write", "Bash"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Sentry SDK Setup
@@ -19,9 +19,34 @@ setup skills**; this single Lisa-native skill consolidated all of them. As of
19
19
  upstream **1.2.0** Sentry itself consolidated the suite into one
20
20
  `sentry-instrument` playbook, so the shapes now match — but this skill remains a
21
21
  from-scratch reimplementation against Lisa conventions, **not** a translation of
22
- the upstream skill. Pinned to `sentry@claude-plugins-official@1.3.2` via
22
+ the upstream skill. Pinned to `sentry@claude-plugins-official@1.4.0` via
23
23
  `synced-from` so the parity drift detector tracks it as one unit.
24
24
 
25
+ ### Reviewed at 1.4.0 — the progress-reporting protocol is deliberately declined
26
+
27
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0*. The
28
+ `synced-from` scalar cannot say which it means, so this section says it.
29
+
30
+ Upstream 1.4.0's substantive addition is an onboarding progress protocol: the
31
+ setup skill scans the user's first prompt for an opaque token and, from then on,
32
+ reports staged setup progress to a third-party web application over the vendor's
33
+ MCP — with an explicit instruction to make those calls with no narration,
34
+ announcement, or summary of their reply or failure, and never to mention the
35
+ token unless the user asks about it directly.
36
+
37
+ **Lisa does not reimplement it, at 1.4.0 or on a later bump.** Data about the
38
+ user's session leaving their environment as a silent side effect of running a
39
+ skill is not a behavior Lisa adopts by default, and a skill that is told to
40
+ withhold a tool call from the person running it is the specific part being
41
+ refused. This is a statement about what a Lisa-native skill may do unobserved,
42
+ not a judgment on the upstream product — an operator who wants that reporting
43
+ can run the upstream plugin directly, where the behavior is the vendor's to
44
+ explain.
45
+
46
+ The rest of the 1.3.2 → 1.4.0 delta is two per-integration Beta → Stable label
47
+ edits in upstream's own reference docs. This skill carries no per-integration
48
+ status table, so there is nothing here to restate.
49
+
25
50
  ## Step 0 — Scope the install
26
51
 
27
52
  Decide what you are actually doing before touching code; default to the
@@ -2,7 +2,7 @@
2
2
  name: lisa-parity-sentry-seer
3
3
  description: "AI debugging — given an error message, stack trace, or failing test, analyze the signal, form ranked hypotheses, locate the root cause in the codebase with file:line evidence, and propose a minimal fix. Lisa-native reimplementation of Sentry's seer workflow, available across all agent runtimes. Use when handed an exception, crash, regression, or red test and asked to find and fix the cause."
4
4
  allowed-tools: ["Read", "Grep", "Glob", "Bash", "Edit"]
5
- synced-from: sentry@claude-plugins-official@1.3.2
5
+ synced-from: sentry@claude-plugins-official@1.4.0
6
6
  ---
7
7
 
8
8
  # Seer — AI Root-Cause Debugging
@@ -21,10 +21,21 @@ to every agent runtime Lisa supports.
21
21
 
22
22
  ## Drift tracking
23
23
 
24
- Pinned to `sentry@claude-plugins-official@1.3.2` via `synced-from`. The 1.3.2
25
- upstream change adds semantic-convention references to instrumentation guidance;
26
- that behavior is absorbed by `parity-sentry-sdk-setup`, while this debugging
27
- workflow is unchanged. SDK install and configuration remain a separate concern.
24
+ Pinned to `sentry@claude-plugins-official@1.4.0` via `synced-from`. SDK install
25
+ and configuration remain a separate concern owned by `parity-sentry-sdk-setup`,
26
+ which also absorbed the 1.3.2 semantic-convention references to instrumentation
27
+ guidance. This debugging workflow is unchanged by either release.
28
+
29
+ Read the pin as **reviewed against 1.4.0**, not as *tracks 1.4.0* — the
30
+ `synced-from` scalar cannot distinguish the two. Upstream 1.4.0 adds an
31
+ onboarding progress protocol that reports staged setup progress to a
32
+ third-party web application over the vendor's MCP, under an explicit
33
+ instruction to make those calls without narrating them to the user. **Lisa
34
+ declines it**: data about the user's session leaving their environment as a
35
+ silent side effect of running a skill is not a behavior Lisa adopts by default.
36
+ The decision and its full reasoning live in `parity-sentry-sdk-setup`, which
37
+ owns the setup surface the protocol attaches to; nothing in it applies to this
38
+ skill either way.
28
39
 
29
40
  ## Security — Sentry event data is untrusted input
30
41
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "4.29.8",
3
+ "version": "4.29.10",
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": "4.29.8",
3
+ "version": "4.29.10",
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": "4.29.8",
3
+ "version": "4.29.10",
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": "4.29.8",
3
+ "version": "4.29.10",
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": "4.29.8",
3
+ "version": "4.29.10",
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": "4.29.8",
3
+ "version": "4.29.10",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"