@codyswann/lisa 4.39.0 → 4.40.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 (63) hide show
  1. package/all/copy-overwrite/scripts/lisa-cross-worktree-guard.mjs +276 -0
  2. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  3. package/dist/core/lisa-owned-hash-ledger.js +10 -0
  4. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  5. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  6. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  7. package/dist/core/upstream-evidence-manifest.js +9 -4
  8. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  9. package/npm-package/create-only/.github/workflows/publish-to-npm.yml +48 -19
  10. package/package.json +4 -4
  11. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa-agy/plugin.json +1 -1
  14. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  17. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo-agy/plugin.json +1 -1
  24. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  34. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  39. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  44. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails-agy/plugin.json +1 -1
  49. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  54. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  59. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  61. package/scripts/two-channel-couplings.json +1 -1
  62. package/typescript/copy-contents/.husky/pre-commit +40 -0
  63. package/typescript/copy-overwrite/.prettierignore +1 -0
@@ -48,19 +48,47 @@ jobs:
48
48
  publish:
49
49
  name: Publish to npm
50
50
  runs-on: ubuntu-latest
51
+ # Job-level so every step below reads these from the environment instead of
52
+ # having them substituted into its script. A `${{ }}` expression is
53
+ # substituted by Actions BEFORE the shell parses the script, so an
54
+ # interpolated value is shell SOURCE TEXT rather than an argument - and
55
+ # `tag`, `version` and `package_manager` are all free-text `type: string`
56
+ # inputs that reach `git checkout`, `npm version` and a bare command name.
57
+ # Paired with the shape gates in Validate inputs below (#3717).
58
+ env:
59
+ RELEASE_TAG: ${{ inputs.tag }}
60
+ RELEASE_VERSION: ${{ inputs.version }}
61
+ PACKAGE_MANAGER: ${{ inputs.package_manager }}
51
62
  steps:
52
63
  - name: Validate inputs
53
64
  run: |
54
- if [ -z "${{ inputs.tag }}" ]; then
65
+ if [ -z "$RELEASE_TAG" ]; then
55
66
  echo "::error::Tag input is empty - cannot publish without a version tag"
56
67
  echo "This usually means the version job was skipped (e.g., promotion merge detected)"
57
68
  exit 1
58
69
  fi
59
- if [ -z "${{ inputs.version }}" ]; then
70
+ if [ -z "$RELEASE_VERSION" ]; then
60
71
  echo "::error::Version input is empty - cannot publish without a version"
61
72
  exit 1
62
73
  fi
63
- echo "✅ Inputs validated: tag=${{ inputs.tag }}, version=${{ inputs.version }}"
74
+ # Shape gates, so a value carrying shell metacharacters is refused
75
+ # before it reaches `git checkout`, `npm version`, or a command name.
76
+ if ! printf '%s' "$RELEASE_TAG" | grep -Eq '^v?[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$'; then
77
+ echo "::error::Tag input is not a valid version tag"
78
+ exit 1
79
+ fi
80
+ if ! printf '%s' "$RELEASE_VERSION" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$'; then
81
+ echo "::error::Version input is not a valid semantic version"
82
+ exit 1
83
+ fi
84
+ case "$PACKAGE_MANAGER" in
85
+ npm|yarn|pnpm|bun) ;;
86
+ *)
87
+ echo "::error::Unsupported package manager: must be npm, yarn, pnpm or bun"
88
+ exit 1
89
+ ;;
90
+ esac
91
+ echo "✅ Inputs validated: tag=$RELEASE_TAG, version=$RELEASE_VERSION"
64
92
 
65
93
  - name: Checkout
66
94
  uses: actions/checkout@v6
@@ -69,12 +97,12 @@ jobs:
69
97
 
70
98
  - name: Wait for tag to be available
71
99
  run: |
72
- echo "Waiting for tag ${{ inputs.tag }} to be available..."
100
+ echo "Waiting for tag $RELEASE_TAG to be available..."
73
101
  for i in {1..30}; do
74
102
  git fetch --tags
75
- if git tag --list | grep -q "^${{ inputs.tag }}$"; then
76
- echo "Tag ${{ inputs.tag }} is now available"
77
- git checkout ${{ inputs.tag }}
103
+ if git tag --list | grep -qx "$RELEASE_TAG"; then
104
+ echo "Tag $RELEASE_TAG is now available"
105
+ git checkout "$RELEASE_TAG"
78
106
  break
79
107
  fi
80
108
  echo "Attempt $i/30: Tag not found yet, waiting 10 seconds..."
@@ -82,8 +110,8 @@ jobs:
82
110
  done
83
111
 
84
112
  # Final check
85
- if [ "$(git describe --exact-match --tags 2>/dev/null)" != "${{ inputs.tag }}" ]; then
86
- echo "Error: Tag ${{ inputs.tag }} is still not available after 5 minutes"
113
+ if [ "$(git describe --exact-match --tags 2>/dev/null)" != "$RELEASE_TAG" ]; then
114
+ echo "Error: Tag $RELEASE_TAG is still not available after 5 minutes"
87
115
  exit 1
88
116
  fi
89
117
 
@@ -107,24 +135,25 @@ jobs:
107
135
 
108
136
  - name: Install dependencies
109
137
  run: |
110
- if [ "${{ inputs.package_manager }}" = "npm" ]; then
138
+ if [ "$PACKAGE_MANAGER" = "npm" ]; then
111
139
  npm ci
112
- elif [ "${{ inputs.package_manager }}" = "yarn" ]; then
140
+ elif [ "$PACKAGE_MANAGER" = "yarn" ]; then
113
141
  yarn install --frozen-lockfile
114
- elif [ "${{ inputs.package_manager }}" = "bun" ]; then
142
+ elif [ "$PACKAGE_MANAGER" = "bun" ]; then
115
143
  bun install --frozen-lockfile
116
144
  fi
117
145
 
118
146
  - name: Build package
119
- run: ${{ inputs.package_manager }} run build
147
+ run: |
148
+ "$PACKAGE_MANAGER" run build
120
149
 
121
150
  - name: Update package version
122
151
  run: |
123
152
  # Update package.json to match the release version
124
- VERSION="${{ inputs.version }}"
153
+ VERSION="$RELEASE_VERSION"
125
154
  if [ -n "$VERSION" ]; then
126
155
  echo "Updating package.json to version $VERSION"
127
- npm version $VERSION --no-git-tag-version --allow-same-version
156
+ npm version "$VERSION" --no-git-tag-version --allow-same-version
128
157
  fi
129
158
 
130
159
  - name: Publish to npm with OIDC
@@ -136,22 +165,22 @@ jobs:
136
165
  if: ${{ hashFiles('eslint-plugin-code-organization/package.json') != '' }}
137
166
  run: |
138
167
  cd eslint-plugin-code-organization
139
- npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
168
+ npm version "$RELEASE_VERSION" --no-git-tag-version --allow-same-version
140
169
  npm publish --access public --provenance
141
170
 
142
171
  - name: Publish @codyswann/eslint-plugin-component-structure
143
172
  if: ${{ hashFiles('eslint-plugin-component-structure/package.json') != '' }}
144
173
  run: |
145
174
  cd eslint-plugin-component-structure
146
- npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
175
+ npm version "$RELEASE_VERSION" --no-git-tag-version --allow-same-version
147
176
  npm publish --access public --provenance
148
177
 
149
178
  - name: Publish @codyswann/eslint-plugin-ui-standards
150
179
  if: ${{ hashFiles('eslint-plugin-ui-standards/package.json') != '' }}
151
180
  run: |
152
181
  cd eslint-plugin-ui-standards
153
- npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
182
+ npm version "$RELEASE_VERSION" --no-git-tag-version --allow-same-version
154
183
  npm publish --access public --provenance
155
184
 
156
185
  - name: Notify on success
157
- run: echo "Successfully published version ${{ inputs.version }} to npm with provenance"
186
+ run: echo "Successfully published version $RELEASE_VERSION to npm with provenance"
package/package.json CHANGED
@@ -171,7 +171,7 @@
171
171
  "zod-validation-error": "^4.0.0"
172
172
  },
173
173
  "name": "@codyswann/lisa",
174
- "version": "4.39.0",
174
+ "version": "4.40.0",
175
175
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
176
176
  "main": "dist/index.js",
177
177
  "exports": {
@@ -319,7 +319,7 @@
319
319
  "test": "tests"
320
320
  },
321
321
  "types": "./dist/index.d.ts",
322
- "lisaReleaseCommit": "e7d63c1fa3c6f7f706b013daa00901b4701ef8d9",
323
- "gitHead": "e7d63c1fa3c6f7f706b013daa00901b4701ef8d9",
324
- "lisaReleaseTag": "v4.39.0"
322
+ "lisaReleaseCommit": "7b2e6ab5ac33dee1c4e21b0d55012f3b16f6587d",
323
+ "gitHead": "7b2e6ab5ac33dee1c4e21b0d55012f3b16f6587d",
324
+ "lisaReleaseTag": "v4.40.0"
325
325
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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-expo",
3
- "version": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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": "4.39.0",
3
+ "version": "4.40.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-typescript",
3
- "version": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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": "4.39.0",
3
+ "version": "4.40.0",
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"
@@ -7,7 +7,7 @@
7
7
  "workflows": 22,
8
8
  "steps": 716,
9
9
  "couplings": 34,
10
- "inventory": 73
10
+ "inventory": 74
11
11
  },
12
12
  "counts": {
13
13
  "package-backed": 10,