@codyswann/lisa 3.69.0 → 3.69.2

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-hooks/sonar-secrets.sh +20 -2
  2. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  3. package/dist/core/lisa-owned-hash-ledger.js +1 -0
  4. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  5. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  6. package/dist/core/upstream-evidence-manifest.js +4 -3
  7. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  8. package/package.json +1 -1
  9. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa/hooks/debug-hook.sh +13 -3
  12. package/plugins/lisa/hooks/sonar-secrets.sh +20 -2
  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-copilot/hooks/sonar-secrets.sh +20 -2
  21. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-cursor/hooks/sonar-secrets.sh +20 -2
  23. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo-agy/plugin.json +1 -1
  26. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  36. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  41. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  46. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails-agy/plugin.json +1 -1
  51. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  56. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  61. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  63. package/plugins/src/base/hooks/debug-hook.sh +13 -3
  64. package/plugins/src/base/hooks/sonar-secrets.sh +20 -2
package/package.json CHANGED
@@ -143,7 +143,7 @@
143
143
  "zod-validation-error": "^4.0.0"
144
144
  },
145
145
  "name": "@codyswann/lisa",
146
- "version": "3.69.0",
146
+ "version": "3.69.2",
147
147
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
148
148
  "main": "dist/index.js",
149
149
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "3.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -4,14 +4,24 @@
4
4
  # This script is a no-op when CLAUDE_DEBUG is not set or set to 0
5
5
  ##
6
6
 
7
+ # Read JSON input from stdin BEFORE the no-op check can exit.
8
+ #
9
+ # A hook that exits before consuming stdin closes the read end while its
10
+ # caller's write is still in flight, and the CALLER's write raises EPIPE. The
11
+ # hook exits 0 and looks healthy; the harness takes the failure. Measured on
12
+ # this path at 30 EPIPE in 30 invocations once the payload exceeds the pipe
13
+ # buffer, and ~0.5% at the real payload size (CodySwannGT/lisa#2949).
14
+ #
15
+ # This hook is the worst placement of that defect in the tree, because the
16
+ # early exit is the path it takes on every event of every session that has not
17
+ # set CLAUDE_DEBUG — which is all of them.
18
+ INPUT=$(cat)
19
+
7
20
  # Exit immediately if debug mode is not enabled
8
21
  if [[ "${CLAUDE_DEBUG:-0}" != "1" ]]; then
9
22
  exit 0
10
23
  fi
11
24
 
12
- # Read JSON input from stdin
13
- INPUT=$(cat)
14
-
15
25
  # Parse hook event info using jq
16
26
  HOOK_EVENT=$(echo "$INPUT" | jq -r '.hook_event_name // "unknown"')
17
27
  TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // "N/A"')
@@ -38,6 +38,26 @@
38
38
  # Usage: sonar-secrets.sh <vendor-event-name> # hook payload on stdin
39
39
  set -uo pipefail
40
40
 
41
+ # Read the payload FIRST, before anything here can stand aside.
42
+ #
43
+ # The caller pipes the hook envelope into our stdin. A path that exits before
44
+ # consuming it closes the read end while the caller's write is still in flight,
45
+ # and the caller's write raises EPIPE — a failure in the harness, produced by a
46
+ # hook that had nothing to say and exited 0 saying it. The evidence lands
47
+ # entirely on the writing side, which is why it read as a mystery for so long.
48
+ #
49
+ # It is a race, so it only fires when this process wins. Measured against the
50
+ # real payload at a 1-minute load average of 82: 3 EPIPE in 600 invocations of
51
+ # the no-event path (0.50%), and 30 in 30 once the payload exceeds the pipe
52
+ # buffer. Rare enough to look like a real failure, frequent enough to keep
53
+ # costing re-runs (CodySwannGT/lisa#2949).
54
+ #
55
+ # Reading first is the fix that also covers real callers, rather than only the
56
+ # tests: every exit below now happens after stdin has reached EOF. The same
57
+ # obligation is discharged as an explicit `cat >/dev/null` drain in
58
+ # install-pkgs.sh and setup-jira-cli.sh, which never use the payload at all.
59
+ payload="$(cat)"
60
+
41
61
  event="${1:-}"
42
62
  [[ -n "$event" ]] || exit 0
43
63
 
@@ -50,8 +70,6 @@ command -v sonar >/dev/null 2>&1 || exit 0
50
70
  # is reviewable, not in whatever shell happened to launch the agent.
51
71
  [[ "${LISA_SONAR_HOOK:-on}" == "off" ]] && exit 0
52
72
 
53
- payload="$(cat)"
54
-
55
73
  # The vendor signals its verdict as JSON on stdout and always exits 0, so the
56
74
  # exit code carries no information and the reason text is the only channel.
57
75
  inactive_marker='secret scanning is inactive'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "3.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -38,6 +38,26 @@
38
38
  # Usage: sonar-secrets.sh <vendor-event-name> # hook payload on stdin
39
39
  set -uo pipefail
40
40
 
41
+ # Read the payload FIRST, before anything here can stand aside.
42
+ #
43
+ # The caller pipes the hook envelope into our stdin. A path that exits before
44
+ # consuming it closes the read end while the caller's write is still in flight,
45
+ # and the caller's write raises EPIPE — a failure in the harness, produced by a
46
+ # hook that had nothing to say and exited 0 saying it. The evidence lands
47
+ # entirely on the writing side, which is why it read as a mystery for so long.
48
+ #
49
+ # It is a race, so it only fires when this process wins. Measured against the
50
+ # real payload at a 1-minute load average of 82: 3 EPIPE in 600 invocations of
51
+ # the no-event path (0.50%), and 30 in 30 once the payload exceeds the pipe
52
+ # buffer. Rare enough to look like a real failure, frequent enough to keep
53
+ # costing re-runs (CodySwannGT/lisa#2949).
54
+ #
55
+ # Reading first is the fix that also covers real callers, rather than only the
56
+ # tests: every exit below now happens after stdin has reached EOF. The same
57
+ # obligation is discharged as an explicit `cat >/dev/null` drain in
58
+ # install-pkgs.sh and setup-jira-cli.sh, which never use the payload at all.
59
+ payload="$(cat)"
60
+
41
61
  event="${1:-}"
42
62
  [[ -n "$event" ]] || exit 0
43
63
 
@@ -50,8 +70,6 @@ command -v sonar >/dev/null 2>&1 || exit 0
50
70
  # is reviewable, not in whatever shell happened to launch the agent.
51
71
  [[ "${LISA_SONAR_HOOK:-on}" == "off" ]] && exit 0
52
72
 
53
- payload="$(cat)"
54
-
55
73
  # The vendor signals its verdict as JSON on stdout and always exits 0, so the
56
74
  # exit code carries no information and the reason text is the only channel.
57
75
  inactive_marker='secret scanning is inactive'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "3.69.0",
3
+ "version": "3.69.2",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -38,6 +38,26 @@
38
38
  # Usage: sonar-secrets.sh <vendor-event-name> # hook payload on stdin
39
39
  set -uo pipefail
40
40
 
41
+ # Read the payload FIRST, before anything here can stand aside.
42
+ #
43
+ # The caller pipes the hook envelope into our stdin. A path that exits before
44
+ # consuming it closes the read end while the caller's write is still in flight,
45
+ # and the caller's write raises EPIPE — a failure in the harness, produced by a
46
+ # hook that had nothing to say and exited 0 saying it. The evidence lands
47
+ # entirely on the writing side, which is why it read as a mystery for so long.
48
+ #
49
+ # It is a race, so it only fires when this process wins. Measured against the
50
+ # real payload at a 1-minute load average of 82: 3 EPIPE in 600 invocations of
51
+ # the no-event path (0.50%), and 30 in 30 once the payload exceeds the pipe
52
+ # buffer. Rare enough to look like a real failure, frequent enough to keep
53
+ # costing re-runs (CodySwannGT/lisa#2949).
54
+ #
55
+ # Reading first is the fix that also covers real callers, rather than only the
56
+ # tests: every exit below now happens after stdin has reached EOF. The same
57
+ # obligation is discharged as an explicit `cat >/dev/null` drain in
58
+ # install-pkgs.sh and setup-jira-cli.sh, which never use the payload at all.
59
+ payload="$(cat)"
60
+
41
61
  event="${1:-}"
42
62
  [[ -n "$event" ]] || exit 0
43
63
 
@@ -50,8 +70,6 @@ command -v sonar >/dev/null 2>&1 || exit 0
50
70
  # is reviewable, not in whatever shell happened to launch the agent.
51
71
  [[ "${LISA_SONAR_HOOK:-on}" == "off" ]] && exit 0
52
72
 
53
- payload="$(cat)"
54
-
55
73
  # The vendor signals its verdict as JSON on stdout and always exits 0, so the
56
74
  # exit code carries no information and the reason text is the only channel.
57
75
  inactive_marker='secret scanning is inactive'
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "3.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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": "3.69.0",
3
+ "version": "3.69.2",
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"