@codyswann/lisa 2.221.2 → 2.221.4

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 (56) hide show
  1. package/dist/configs/jest/expo.d.ts.map +1 -1
  2. package/dist/configs/jest/expo.js +2 -0
  3. package/dist/configs/jest/expo.js.map +1 -1
  4. package/expo/create-only/lighthouserc-config.json +2 -2
  5. package/expo/create-only/lighthouserc.js +50 -48
  6. package/package.json +1 -1
  7. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  8. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  9. package/plugins/lisa-agy/plugin.json +1 -1
  10. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  12. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  13. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  19. package/plugins/lisa-expo-agy/plugin.json +1 -1
  20. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  29. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  30. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  34. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  35. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  39. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  40. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails-agy/plugin.json +1 -1
  45. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  49. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  50. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  54. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  55. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,EAC/B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,CAAC;AAiCF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAY,CAAC,SAAS,EAAE,MAAM,KAAK,OAA+B,KACjE,MAAyE,CAAC;AAE7E;;GAEG;AACH,UAAU,eAAe;IACvB,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,8BAG/B,eAAoB,KAAG,MAyDxB,CAAC"}
1
+ {"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,EAC/B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,8BAA8B,GAC/B,CAAC;AAiCF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAY,CAAC,SAAS,EAAE,MAAM,KAAK,OAA+B,KACjE,MAAyE,CAAC;AAE7E;;GAEG;AACH,UAAU,eAAe;IACvB,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,8BAG/B,eAAoB,KAAG,MA2DxB,CAAC"}
@@ -88,8 +88,10 @@ export const getExpoJestConfig = ({ thresholds = defaultThresholds, sourceRoot =
88
88
  testEnvironment: "jsdom",
89
89
  haste: {
90
90
  defaultPlatform: "ios",
91
+ forceNodeFilesystemAPI: true,
91
92
  platforms: ["android", "ios", "native"],
92
93
  },
94
+ modulePathIgnorePatterns: ["<rootDir>/\\.claude/"],
93
95
  // This resolver teaches Jest to resolve platform-extension files
94
96
  // (`.ios`/`.native`/`.web`); without it those variants do not resolve.
95
97
  // Its location moved between SDK 54 and SDK 56, so the path is chosen at
@@ -1 +1 @@
1
- {"version":3,"file":"expo.js","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expo.js","sourceRoot":"","sources":["../../../src/configs/jest/expo.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,8 @@
21
21
  "unusedJavascript": { "maxLength": 2 },
22
22
  "unusedCssRules": { "maxLength": 0 },
23
23
  "usesRelPreconnect": { "maxLength": 0 },
24
- "bootupTime": { "minScore": 0.9 },
25
- "mainthreadWorkBreakdown": { "minScore": 0.9 },
24
+ "bootupTime": { "maxNumericValue": 2000 },
25
+ "mainthreadWorkBreakdown": { "maxNumericValue": 3000 },
26
26
  "maxPotentialFid": { "minScore": 1 },
27
27
  "legacyJavascript": { "maxLength": 2 },
28
28
  "legacyJavascriptInsight": { "minScore": 0.4 },
@@ -68,8 +68,8 @@ const defaults = {
68
68
  unusedJavascript: { maxLength: 2 },
69
69
  unusedCssRules: { maxLength: 0 },
70
70
  usesRelPreconnect: { maxLength: 0 },
71
- bootupTime: { minScore: 0.9 },
72
- mainthreadWorkBreakdown: { minScore: 0.9 },
71
+ bootupTime: { maxNumericValue: 2000 },
72
+ mainthreadWorkBreakdown: { maxNumericValue: 3000 },
73
73
  maxPotentialFid: { minScore: 1 },
74
74
  legacyJavascript: { maxLength: 2 },
75
75
  legacyJavascriptInsight: { minScore: 0.4 },
@@ -178,6 +178,29 @@ function buildExtraAssertions(assertions, handled) {
178
178
  return extra;
179
179
  }
180
180
 
181
+ /**
182
+ * Returns a Lighthouse assertion options object from the configured threshold.
183
+ * Explicit mappings must not lock projects to score-based thresholds: some
184
+ * binary-scored audits are only stable when gated by their numeric value.
185
+ *
186
+ * @param {object} value - Threshold config for one assertion
187
+ * @returns {object} Lighthouse assertion options
188
+ */
189
+ function assertionOptions(value) {
190
+ const options = {};
191
+ for (const key of [
192
+ "minScore",
193
+ "maxNumericValue",
194
+ "maxLength",
195
+ "aggregationMethod",
196
+ ]) {
197
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
198
+ options[key] = value[key];
199
+ }
200
+ }
201
+ return options;
202
+ }
203
+
181
204
  module.exports = {
182
205
  ci: {
183
206
  collect: {
@@ -194,93 +217,72 @@ module.exports = {
194
217
  "geolocation-on-start": "off",
195
218
 
196
219
  // Accessibility
197
- "button-name": ["error", { minScore: a.buttonName.minScore }],
198
- "valid-source-maps": [
199
- "error",
200
- { minScore: a.validSourceMaps.minScore },
201
- ],
202
- "errors-in-console": ["warn", { minScore: a.errorsInConsole.minScore }],
220
+ "button-name": ["error", assertionOptions(a.buttonName)],
221
+ "valid-source-maps": ["error", assertionOptions(a.validSourceMaps)],
222
+ "errors-in-console": ["warn", assertionOptions(a.errorsInConsole)],
203
223
 
204
224
  // Performance Score
205
225
  "categories:performance": [
206
226
  "error",
207
- { minScore: a.performance.minScore, aggregationMethod: "median" },
227
+ { ...assertionOptions(a.performance), aggregationMethod: "median" },
208
228
  ],
209
229
 
210
230
  // Core Web Vitals - Timing Metrics
211
231
  "first-contentful-paint": [
212
232
  "error",
213
- { maxNumericValue: a.firstContentfulPaint.maxNumericValue },
233
+ assertionOptions(a.firstContentfulPaint),
214
234
  ],
215
235
  "largest-contentful-paint": [
216
236
  "warn",
217
- { maxNumericValue: a.largestContentfulPaint.maxNumericValue },
218
- ],
219
- interactive: [
220
- "error",
221
- { maxNumericValue: a.interactive.maxNumericValue },
237
+ assertionOptions(a.largestContentfulPaint),
222
238
  ],
239
+ interactive: ["error", assertionOptions(a.interactive)],
223
240
  "cumulative-layout-shift": [
224
241
  "error",
225
- { maxNumericValue: a.cumulativeLayoutShift.maxNumericValue },
242
+ assertionOptions(a.cumulativeLayoutShift),
226
243
  ],
227
244
 
228
245
  // Resource Budgets
229
- "total-byte-weight": [
230
- "error",
231
- { maxNumericValue: a.totalByteWeight.maxNumericValue },
232
- ],
246
+ "total-byte-weight": ["error", assertionOptions(a.totalByteWeight)],
233
247
  "resource-summary:script:size": [
234
248
  "error",
235
- { maxNumericValue: a.scriptSize.maxNumericValue },
249
+ assertionOptions(a.scriptSize),
236
250
  ],
237
251
 
238
252
  // Best Practices
239
- "font-display": ["error", { minScore: a.fontDisplay.minScore }],
240
- "image-aspect-ratio": [
241
- "warn",
242
- { minScore: a.imageAspectRatio.minScore },
243
- ],
253
+ "font-display": ["error", assertionOptions(a.fontDisplay)],
254
+ "image-aspect-ratio": ["warn", assertionOptions(a.imageAspectRatio)],
244
255
 
245
256
  // SEO
246
- "meta-description": ["warn", { minScore: a.metaDescription.minScore }],
257
+ "meta-description": ["warn", assertionOptions(a.metaDescription)],
247
258
 
248
259
  // Performance Insights
249
- "unused-javascript": [
250
- "error",
251
- { maxLength: a.unusedJavascript.maxLength },
252
- ],
253
- "bootup-time": ["error", { minScore: a.bootupTime.minScore }],
260
+ "unused-javascript": ["error", assertionOptions(a.unusedJavascript)],
261
+ "bootup-time": ["error", assertionOptions(a.bootupTime)],
254
262
  "mainthread-work-breakdown": [
255
263
  "error",
256
- { minScore: a.mainthreadWorkBreakdown.minScore },
257
- ],
258
- "max-potential-fid": ["warn", { minScore: a.maxPotentialFid.minScore }],
259
- "legacy-javascript": [
260
- "error",
261
- { maxLength: a.legacyJavascript.maxLength },
264
+ assertionOptions(a.mainthreadWorkBreakdown),
262
265
  ],
266
+ "max-potential-fid": ["warn", assertionOptions(a.maxPotentialFid)],
267
+ "legacy-javascript": ["error", assertionOptions(a.legacyJavascript)],
263
268
  "legacy-javascript-insight": [
264
269
  "warn",
265
- { minScore: a.legacyJavascriptInsight.minScore },
266
- ],
267
- "speed-index": ["error", { minScore: a.speedIndex.minScore }],
268
- "unused-css-rules": ["warn", { maxLength: a.unusedCssRules.maxLength }],
269
- "uses-rel-preconnect": [
270
- "warn",
271
- { maxLength: a.usesRelPreconnect.maxLength },
270
+ assertionOptions(a.legacyJavascriptInsight),
272
271
  ],
272
+ "speed-index": ["error", assertionOptions(a.speedIndex)],
273
+ "unused-css-rules": ["warn", assertionOptions(a.unusedCssRules)],
274
+ "uses-rel-preconnect": ["warn", assertionOptions(a.usesRelPreconnect)],
273
275
  "font-display-insight": [
274
276
  "warn",
275
- { minScore: a.fontDisplayInsight.minScore },
277
+ assertionOptions(a.fontDisplayInsight),
276
278
  ],
277
279
  "network-dependency-tree-insight": [
278
280
  "warn",
279
- { minScore: a.networkDependencyTreeInsight.minScore },
281
+ assertionOptions(a.networkDependencyTreeInsight),
280
282
  ],
281
283
  "duplicated-javascript-insight": [
282
284
  "warn",
283
- { minScore: a.duplicatedJavascriptInsight.minScore },
285
+ assertionOptions(a.duplicatedJavascriptInsight),
284
286
  ],
285
287
 
286
288
  // Dynamic overrides for any extra config keys not handled above.
package/package.json CHANGED
@@ -102,7 +102,7 @@
102
102
  "form-data": ">=4.0.6"
103
103
  },
104
104
  "name": "@codyswann/lisa",
105
- "version": "2.221.2",
105
+ "version": "2.221.4",
106
106
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
107
107
  "main": "dist/index.js",
108
108
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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.221.2",
3
+ "version": "2.221.4",
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"