@codyswann/lisa 2.203.0 → 2.204.1

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 (235) hide show
  1. package/nestjs/create-only/.github/workflows/deploy.yml +69 -0
  2. package/package.json +1 -1
  3. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  4. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  6. package/plugins/lisa/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  7. package/plugins/lisa-agy/plugin.json +1 -1
  8. package/plugins/lisa-agy/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  9. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  12. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-copilot/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  16. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-cursor/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  18. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  20. package/plugins/lisa-expo-agy/plugin.json +1 -1
  21. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  30. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  31. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  35. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  36. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  40. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  41. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-rails-agy/plugin.json +1 -1
  46. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  50. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  51. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  55. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  56. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  58. package/plugins/src/base/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  59. package/scripts/generate-agy-plugin-artifacts.mjs +7 -0
  60. package/scripts/generate-copilot-plugin-artifacts.mjs +6 -0
  61. package/scripts/generate-cursor-plugin-artifacts.mjs +6 -0
  62. package/scripts/lib/nest-plugin-commands.mjs +32 -0
  63. package/scripts/migrate-skill-command-namespace.mjs +0 -141
  64. package/scripts/update-test-command-paths.mjs +0 -87
  65. /package/plugins/lisa/commands/{lisa/agent-ready.md → agent-ready.md} +0 -0
  66. /package/plugins/lisa/commands/{lisa/analyze-claude-remote.md → analyze-claude-remote.md} +0 -0
  67. /package/plugins/lisa/commands/{lisa/automation-status.md → automation-status.md} +0 -0
  68. /package/plugins/lisa/commands/{lisa/codify-verification.md → codify-verification.md} +0 -0
  69. /package/plugins/lisa/commands/{lisa/cross-pollinate.md → cross-pollinate.md} +0 -0
  70. /package/plugins/lisa/commands/{lisa/debrief → debrief}/apply.md +0 -0
  71. /package/plugins/lisa/commands/{lisa/debrief.md → debrief.md} +0 -0
  72. /package/plugins/lisa/commands/{lisa/doctor.md → doctor.md} +0 -0
  73. /package/plugins/lisa/commands/{lisa/exploratory-qa.md → exploratory-qa.md} +0 -0
  74. /package/plugins/lisa/commands/{lisa/fix → fix}/linter-error.md +0 -0
  75. /package/plugins/lisa/commands/{lisa/generate-claude-remote-build-script.md → generate-claude-remote-build-script.md} +0 -0
  76. /package/plugins/lisa/commands/{lisa/git → git}/commit.md +0 -0
  77. /package/plugins/lisa/commands/{lisa/git → git}/prune.md +0 -0
  78. /package/plugins/lisa/commands/{lisa/git → git}/submit-pr.md +0 -0
  79. /package/plugins/lisa/commands/{lisa/implement.md → implement.md} +0 -0
  80. /package/plugins/lisa/commands/{lisa/improve → improve}/code-complexity.md +0 -0
  81. /package/plugins/lisa/commands/{lisa/improve → improve}/max-lines-per-function.md +0 -0
  82. /package/plugins/lisa/commands/{lisa/improve → improve}/max-lines.md +0 -0
  83. /package/plugins/lisa/commands/{lisa/improve → improve}/test-coverage.md +0 -0
  84. /package/plugins/lisa/commands/{lisa/improve → improve}/tests.md +0 -0
  85. /package/plugins/lisa/commands/{lisa/intake-explain.md → intake-explain.md} +0 -0
  86. /package/plugins/lisa/commands/{lisa/intake.md → intake.md} +0 -0
  87. /package/plugins/lisa/commands/{lisa/monitor.md → monitor.md} +0 -0
  88. /package/plugins/lisa/commands/{lisa/parity-code-review.md → parity-code-review.md} +0 -0
  89. /package/plugins/lisa/commands/{lisa/parity-code-simplifier.md → parity-code-simplifier.md} +0 -0
  90. /package/plugins/lisa/commands/{lisa/parity-coderabbit.md → parity-coderabbit.md} +0 -0
  91. /package/plugins/lisa/commands/{lisa/parity-safety-net-rules.md → parity-safety-net-rules.md} +0 -0
  92. /package/plugins/lisa/commands/{lisa/parity-sentry-sdk-setup.md → parity-sentry-sdk-setup.md} +0 -0
  93. /package/plugins/lisa/commands/{lisa/parity-sentry-seer.md → parity-sentry-seer.md} +0 -0
  94. /package/plugins/lisa/commands/{lisa/parity-skill-creator.md → parity-skill-creator.md} +0 -0
  95. /package/plugins/lisa/commands/{lisa/plan.md → plan.md} +0 -0
  96. /package/plugins/lisa/commands/{lisa/plugin-sync-explain.md → plugin-sync-explain.md} +0 -0
  97. /package/plugins/lisa/commands/{lisa/product-walkthrough.md → product-walkthrough.md} +0 -0
  98. /package/plugins/lisa/commands/{lisa/project-ideation.md → project-ideation.md} +0 -0
  99. /package/plugins/lisa/commands/{lisa/pull-request → pull-request}/review.md +0 -0
  100. /package/plugins/lisa/commands/{lisa/queue-status.md → queue-status.md} +0 -0
  101. /package/plugins/lisa/commands/{lisa/repair-intake.md → repair-intake.md} +0 -0
  102. /package/plugins/lisa/commands/{lisa/research.md → research.md} +0 -0
  103. /package/plugins/lisa/commands/{lisa/review → review}/local.md +0 -0
  104. /package/plugins/lisa/commands/{lisa/security → security}/zap-scan.md +0 -0
  105. /package/plugins/lisa/commands/{lisa/setup → setup}/atlassian.md +0 -0
  106. /package/plugins/lisa/commands/{lisa/setup → setup}/confluence.md +0 -0
  107. /package/plugins/lisa/commands/{lisa/setup → setup}/github-repo.md +0 -0
  108. /package/plugins/lisa/commands/{lisa/setup → setup}/github.md +0 -0
  109. /package/plugins/lisa/commands/{lisa/setup → setup}/jira.md +0 -0
  110. /package/plugins/lisa/commands/{lisa/setup → setup}/linear.md +0 -0
  111. /package/plugins/lisa/commands/{lisa/setup → setup}/notion.md +0 -0
  112. /package/plugins/lisa/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  113. /package/plugins/lisa/commands/{lisa/sync-down.md → sync-down.md} +0 -0
  114. /package/plugins/lisa/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
  115. /package/plugins/lisa/commands/{lisa/validate-tracker-mapping.md → validate-tracker-mapping.md} +0 -0
  116. /package/plugins/lisa/commands/{lisa/verify-prd.md → verify-prd.md} +0 -0
  117. /package/plugins/lisa/commands/{lisa/verify.md → verify.md} +0 -0
  118. /package/plugins/lisa/commands/{lisa/wiki → wiki}/install.md +0 -0
  119. /package/plugins/lisa-expo-agy/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  120. /package/plugins/lisa-expo-copilot/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  121. /package/plugins/lisa-expo-cursor/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  122. /package/plugins/lisa-harper-fabric-agy/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  123. /package/plugins/lisa-harper-fabric-copilot/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  124. /package/plugins/lisa-harper-fabric-cursor/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  125. /package/plugins/lisa-openclaw-agy/commands/{connect-repo-topic.md → lisa/connect-repo-topic.md} +0 -0
  126. /package/plugins/lisa-openclaw-agy/commands/{connect-staff-slack.md → lisa/connect-staff-slack.md} +0 -0
  127. /package/plugins/lisa-openclaw-agy/commands/{connect-staff-telegram.md → lisa/connect-staff-telegram.md} +0 -0
  128. /package/plugins/lisa-openclaw-agy/commands/{setup-openclaw.md → lisa/setup-openclaw.md} +0 -0
  129. /package/plugins/lisa-openclaw-copilot/commands/{connect-repo-topic.md → lisa/connect-repo-topic.md} +0 -0
  130. /package/plugins/lisa-openclaw-copilot/commands/{connect-staff-slack.md → lisa/connect-staff-slack.md} +0 -0
  131. /package/plugins/lisa-openclaw-copilot/commands/{connect-staff-telegram.md → lisa/connect-staff-telegram.md} +0 -0
  132. /package/plugins/lisa-openclaw-copilot/commands/{setup-openclaw.md → lisa/setup-openclaw.md} +0 -0
  133. /package/plugins/lisa-openclaw-cursor/commands/{connect-repo-topic.md → lisa/connect-repo-topic.md} +0 -0
  134. /package/plugins/lisa-openclaw-cursor/commands/{connect-staff-slack.md → lisa/connect-staff-slack.md} +0 -0
  135. /package/plugins/lisa-openclaw-cursor/commands/{connect-staff-telegram.md → lisa/connect-staff-telegram.md} +0 -0
  136. /package/plugins/lisa-openclaw-cursor/commands/{setup-openclaw.md → lisa/setup-openclaw.md} +0 -0
  137. /package/plugins/lisa-rails-agy/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  138. /package/plugins/lisa-rails-agy/commands/{fix → lisa/fix}/linter-error.md +0 -0
  139. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/code-complexity.md +0 -0
  140. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/max-lines-per-function.md +0 -0
  141. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/max-lines.md +0 -0
  142. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/test-coverage.md +0 -0
  143. /package/plugins/lisa-rails-copilot/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  144. /package/plugins/lisa-rails-copilot/commands/{fix → lisa/fix}/linter-error.md +0 -0
  145. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/code-complexity.md +0 -0
  146. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/max-lines-per-function.md +0 -0
  147. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/max-lines.md +0 -0
  148. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/test-coverage.md +0 -0
  149. /package/plugins/lisa-rails-cursor/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  150. /package/plugins/lisa-rails-cursor/commands/{fix → lisa/fix}/linter-error.md +0 -0
  151. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/code-complexity.md +0 -0
  152. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/max-lines-per-function.md +0 -0
  153. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/max-lines.md +0 -0
  154. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/test-coverage.md +0 -0
  155. /package/plugins/lisa-wiki/commands/{lisa/add-ingest.md → add-ingest.md} +0 -0
  156. /package/plugins/lisa-wiki/commands/{lisa/add-role.md → add-role.md} +0 -0
  157. /package/plugins/lisa-wiki/commands/{lisa/doctor.md → doctor.md} +0 -0
  158. /package/plugins/lisa-wiki/commands/{lisa/ingest.md → ingest.md} +0 -0
  159. /package/plugins/lisa-wiki/commands/{lisa/lint.md → lint.md} +0 -0
  160. /package/plugins/lisa-wiki/commands/{lisa/migrate.md → migrate.md} +0 -0
  161. /package/plugins/lisa-wiki/commands/{lisa/onboard-me.md → onboard-me.md} +0 -0
  162. /package/plugins/lisa-wiki/commands/{lisa/query.md → query.md} +0 -0
  163. /package/plugins/lisa-wiki/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  164. /package/plugins/lisa-wiki/commands/{lisa/setup.md → setup.md} +0 -0
  165. /package/plugins/lisa-wiki/commands/{lisa/status.md → status.md} +0 -0
  166. /package/plugins/lisa-wiki/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
  167. /package/plugins/lisa-wiki-agy/commands/{setup → lisa/setup}/wiki.md +0 -0
  168. /package/plugins/lisa-wiki-copilot/commands/{setup → lisa/setup}/wiki.md +0 -0
  169. /package/plugins/lisa-wiki-cursor/commands/{setup → lisa/setup}/wiki.md +0 -0
  170. /package/plugins/src/base/commands/{lisa/agent-ready.md → agent-ready.md} +0 -0
  171. /package/plugins/src/base/commands/{lisa/analyze-claude-remote.md → analyze-claude-remote.md} +0 -0
  172. /package/plugins/src/base/commands/{lisa/automation-status.md → automation-status.md} +0 -0
  173. /package/plugins/src/base/commands/{lisa/codify-verification.md → codify-verification.md} +0 -0
  174. /package/plugins/src/base/commands/{lisa/cross-pollinate.md → cross-pollinate.md} +0 -0
  175. /package/plugins/src/base/commands/{lisa/debrief → debrief}/apply.md +0 -0
  176. /package/plugins/src/base/commands/{lisa/debrief.md → debrief.md} +0 -0
  177. /package/plugins/src/base/commands/{lisa/doctor.md → doctor.md} +0 -0
  178. /package/plugins/src/base/commands/{lisa/exploratory-qa.md → exploratory-qa.md} +0 -0
  179. /package/plugins/src/base/commands/{lisa/fix → fix}/linter-error.md +0 -0
  180. /package/plugins/src/base/commands/{lisa/generate-claude-remote-build-script.md → generate-claude-remote-build-script.md} +0 -0
  181. /package/plugins/src/base/commands/{lisa/git → git}/commit.md +0 -0
  182. /package/plugins/src/base/commands/{lisa/git → git}/prune.md +0 -0
  183. /package/plugins/src/base/commands/{lisa/git → git}/submit-pr.md +0 -0
  184. /package/plugins/src/base/commands/{lisa/implement.md → implement.md} +0 -0
  185. /package/plugins/src/base/commands/{lisa/improve → improve}/code-complexity.md +0 -0
  186. /package/plugins/src/base/commands/{lisa/improve → improve}/max-lines-per-function.md +0 -0
  187. /package/plugins/src/base/commands/{lisa/improve → improve}/max-lines.md +0 -0
  188. /package/plugins/src/base/commands/{lisa/improve → improve}/test-coverage.md +0 -0
  189. /package/plugins/src/base/commands/{lisa/improve → improve}/tests.md +0 -0
  190. /package/plugins/src/base/commands/{lisa/intake-explain.md → intake-explain.md} +0 -0
  191. /package/plugins/src/base/commands/{lisa/intake.md → intake.md} +0 -0
  192. /package/plugins/src/base/commands/{lisa/monitor.md → monitor.md} +0 -0
  193. /package/plugins/src/base/commands/{lisa/parity-code-review.md → parity-code-review.md} +0 -0
  194. /package/plugins/src/base/commands/{lisa/parity-code-simplifier.md → parity-code-simplifier.md} +0 -0
  195. /package/plugins/src/base/commands/{lisa/parity-coderabbit.md → parity-coderabbit.md} +0 -0
  196. /package/plugins/src/base/commands/{lisa/parity-safety-net-rules.md → parity-safety-net-rules.md} +0 -0
  197. /package/plugins/src/base/commands/{lisa/parity-sentry-sdk-setup.md → parity-sentry-sdk-setup.md} +0 -0
  198. /package/plugins/src/base/commands/{lisa/parity-sentry-seer.md → parity-sentry-seer.md} +0 -0
  199. /package/plugins/src/base/commands/{lisa/parity-skill-creator.md → parity-skill-creator.md} +0 -0
  200. /package/plugins/src/base/commands/{lisa/plan.md → plan.md} +0 -0
  201. /package/plugins/src/base/commands/{lisa/plugin-sync-explain.md → plugin-sync-explain.md} +0 -0
  202. /package/plugins/src/base/commands/{lisa/product-walkthrough.md → product-walkthrough.md} +0 -0
  203. /package/plugins/src/base/commands/{lisa/project-ideation.md → project-ideation.md} +0 -0
  204. /package/plugins/src/base/commands/{lisa/pull-request → pull-request}/review.md +0 -0
  205. /package/plugins/src/base/commands/{lisa/queue-status.md → queue-status.md} +0 -0
  206. /package/plugins/src/base/commands/{lisa/repair-intake.md → repair-intake.md} +0 -0
  207. /package/plugins/src/base/commands/{lisa/research.md → research.md} +0 -0
  208. /package/plugins/src/base/commands/{lisa/review → review}/local.md +0 -0
  209. /package/plugins/src/base/commands/{lisa/security → security}/zap-scan.md +0 -0
  210. /package/plugins/src/base/commands/{lisa/setup → setup}/atlassian.md +0 -0
  211. /package/plugins/src/base/commands/{lisa/setup → setup}/confluence.md +0 -0
  212. /package/plugins/src/base/commands/{lisa/setup → setup}/github-repo.md +0 -0
  213. /package/plugins/src/base/commands/{lisa/setup → setup}/github.md +0 -0
  214. /package/plugins/src/base/commands/{lisa/setup → setup}/jira.md +0 -0
  215. /package/plugins/src/base/commands/{lisa/setup → setup}/linear.md +0 -0
  216. /package/plugins/src/base/commands/{lisa/setup → setup}/notion.md +0 -0
  217. /package/plugins/src/base/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  218. /package/plugins/src/base/commands/{lisa/sync-down.md → sync-down.md} +0 -0
  219. /package/plugins/src/base/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
  220. /package/plugins/src/base/commands/{lisa/validate-tracker-mapping.md → validate-tracker-mapping.md} +0 -0
  221. /package/plugins/src/base/commands/{lisa/verify-prd.md → verify-prd.md} +0 -0
  222. /package/plugins/src/base/commands/{lisa/verify.md → verify.md} +0 -0
  223. /package/plugins/src/base/commands/{lisa/wiki → wiki}/install.md +0 -0
  224. /package/plugins/src/wiki/commands/{lisa/add-ingest.md → add-ingest.md} +0 -0
  225. /package/plugins/src/wiki/commands/{lisa/add-role.md → add-role.md} +0 -0
  226. /package/plugins/src/wiki/commands/{lisa/doctor.md → doctor.md} +0 -0
  227. /package/plugins/src/wiki/commands/{lisa/ingest.md → ingest.md} +0 -0
  228. /package/plugins/src/wiki/commands/{lisa/lint.md → lint.md} +0 -0
  229. /package/plugins/src/wiki/commands/{lisa/migrate.md → migrate.md} +0 -0
  230. /package/plugins/src/wiki/commands/{lisa/onboard-me.md → onboard-me.md} +0 -0
  231. /package/plugins/src/wiki/commands/{lisa/query.md → query.md} +0 -0
  232. /package/plugins/src/wiki/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  233. /package/plugins/src/wiki/commands/{lisa/setup.md → setup.md} +0 -0
  234. /package/plugins/src/wiki/commands/{lisa/status.md → status.md} +0 -0
  235. /package/plugins/src/wiki/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
@@ -249,12 +249,81 @@ jobs:
249
249
  bun-version: '1.3.8'
250
250
  - name: Install dependencies
251
251
  run: bun install
252
+ - name: Materialize dotenv env file
253
+ if: ${{ vars.DOTENV_ENV_MATERIALIZATION_KEYS != '' }}
254
+ shell: bash
255
+ env:
256
+ DOTENV_ENV_MATERIALIZATION_KEYS: ${{ vars.DOTENV_ENV_MATERIALIZATION_KEYS }}
257
+ DOTENV_ENV_FILE: ${{ vars.DOTENV_ENV_FILE || '.env.local' }}
258
+ # Optional project mapping for serverless-dotenv-plugin projects:
259
+ # DOTENV_ENV_MATERIALIZATION_KEYS="API_URL JWT_SECRET"
260
+ # API_URL: ${{ vars.API_URL }}
261
+ # JWT_SECRET: ${{ secrets.JWT_SECRET }}
262
+ run: |
263
+ set -euo pipefail
264
+ : > "$DOTENV_ENV_FILE"
265
+ wrote_any=false
266
+
267
+ for key in $DOTENV_ENV_MATERIALIZATION_KEYS; do
268
+ value="${!key:-}"
269
+ if [ -z "$value" ]; then
270
+ echo "::notice::Skipping empty dotenv key: $key"
271
+ continue
272
+ fi
273
+ printf '%s=%s\n' "$key" "$value" >> "$DOTENV_ENV_FILE"
274
+ wrote_any=true
275
+ done
276
+
277
+ if [ "$wrote_any" != "true" ]; then
278
+ rm -f "$DOTENV_ENV_FILE"
279
+ echo "::notice::No dotenv values were materialized"
280
+ fi
252
281
  - name: serverless deploy
253
282
  run: |
254
283
  bun run serverless deploy --stage ${{ github.ref_name != 'main' && github.ref_name || 'production' }}
255
284
  env:
256
285
  SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
257
286
  AWS_PROFILE: '' # Override serverless.yml profile with empty string for CI
287
+ - name: Post-deploy health smoke
288
+ if: ${{ vars.POST_DEPLOY_HEALTH_CHECK_ENABLED == 'true' }}
289
+ shell: bash
290
+ env:
291
+ SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
292
+ AWS_PROFILE: ''
293
+ HEALTH_OUTPUT_KEY: ${{ vars.POST_DEPLOY_HEALTH_OUTPUT_KEY || 'HttpApiUrl' }}
294
+ HEALTH_PATH: ${{ vars.POST_DEPLOY_HEALTH_PATH || '/health' }}
295
+ HEALTH_EXPECTED_BODY: ${{ vars.POST_DEPLOY_HEALTH_EXPECTED_BODY }}
296
+ SERVERLESS_STACK_NAME: ${{ vars.SERVERLESS_STACK_NAME }}
297
+ STAGE: ${{ github.ref_name != 'main' && github.ref_name || 'production' }}
298
+ run: |
299
+ set -euo pipefail
300
+
301
+ stack_name="$SERVERLESS_STACK_NAME"
302
+ if [ -z "$stack_name" ]; then
303
+ service_name=$(bun run serverless print --stage "$STAGE" --format json | jq -r '.service // empty')
304
+ if [ -z "$service_name" ]; then
305
+ echo "::error::Set SERVERLESS_STACK_NAME or make serverless print expose .service"
306
+ exit 1
307
+ fi
308
+ stack_name="${service_name}-${STAGE}"
309
+ fi
310
+
311
+ base_url=$(aws cloudformation describe-stacks \
312
+ --stack-name "$stack_name" \
313
+ --query "Stacks[0].Outputs[?OutputKey=='${HEALTH_OUTPUT_KEY}'].OutputValue | [0]" \
314
+ --output text)
315
+ if [ -z "$base_url" ] || [ "$base_url" = "None" ]; then
316
+ echo "::error::CloudFormation output ${HEALTH_OUTPUT_KEY} was not found on ${stack_name}"
317
+ exit 1
318
+ fi
319
+
320
+ health_url="${base_url%/}/${HEALTH_PATH#/}"
321
+ body=$(curl --fail --silent --show-error --max-time 20 "$health_url")
322
+ if [ -n "$HEALTH_EXPECTED_BODY" ] && ! grep -Fq "$HEALTH_EXPECTED_BODY" <<< "$body"; then
323
+ echo "::error::Health check response did not contain expected body"
324
+ exit 1
325
+ fi
326
+ echo "Health check passed: $health_url"
258
327
 
259
328
  - name: 📢 Notify on success
260
329
  run: echo "Successfully deployed version ${{ needs.release.outputs.version }} to ${{ needs.determine_environment.outputs.environment }}"
package/package.json CHANGED
@@ -95,7 +95,7 @@
95
95
  "ws": ">=8.20.1"
96
96
  },
97
97
  "name": "@codyswann/lisa",
98
- "version": "2.203.0",
98
+ "version": "2.204.1",
99
99
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
100
100
  "main": "dist/index.js",
101
101
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -58,9 +58,11 @@ first:
58
58
  `name`: `lisa-implement`, `lisa-git-commit`, `lisa-tracker-write`. No spaces,
59
59
  no camelCase, no underscores.
60
60
  - The directory name and the frontmatter `name` must match exactly.
61
- - Commands live under `commands/lisa/` and map to colon-separated slash names:
62
- `commands/lisa/git/commit.md` → `/lisa:git:commit`;
63
- `commands/lisa/implement.md` → `/lisa:implement`.
61
+ - Commands live flat under `commands/` Claude Code prefixes plugin commands
62
+ with the plugin name, so `commands/git/commit.md` → `/lisa:git:commit` and
63
+ `commands/implement.md` → `/lisa:implement`. (Per-agent variant generators
64
+ nest them under `commands/lisa/` for harnesses without plugin-name
65
+ namespacing; never author that nesting in source.)
64
66
  - **Commands** surface as `/lisa:*` (colon). **Skills** surface as `/lisa-*`
65
67
  (hyphen). Never share a bare name like `implement` across both surfaces.
66
68
 
@@ -112,15 +114,15 @@ carries the actual logic. Keep the two descriptions consistent.
112
114
  1. **Decide placement** — downstream (`plugins/src/base`) vs. Lisa-only
113
115
  (`.claude`). For base, both a skill and a command directory entry are needed.
114
116
  2. **Pick the name** — `lisa-<slug>`, hyphenated, unique. Check it does not collide:
115
- `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/lisa/`.
117
+ `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/`.
116
118
  3. **Create the skill** at
117
119
  `plugins/src/base/skills/lisa-<name>/SKILL.md` with the frontmatter above and a
118
120
  body that follows house style — see `plugins/src/base/skills/lisa-quality-review/SKILL.md`
119
121
  for the canonical shape (title, "When to use", numbered checklist/steps,
120
122
  explicit "Rules"/"Output" sections). Write real, actionable guidance, not
121
123
  TODOs.
122
- 4. **Create the command** at `plugins/src/base/commands/lisa/<name>.md` (or a nested
123
- `commands/lisa/<namespace>/<name>.md` for a colon-namespaced command) using the
124
+ 4. **Create the command** at `plugins/src/base/commands/<name>.md` (or a nested
125
+ `commands/<namespace>/<name>.md` for a colon-namespaced command) using the
124
126
  pass-through template.
125
127
  5. **Rebuild the artifacts** so the generated plugins match source:
126
128
  ```bash
@@ -58,9 +58,11 @@ first:
58
58
  `name`: `lisa-implement`, `lisa-git-commit`, `lisa-tracker-write`. No spaces,
59
59
  no camelCase, no underscores.
60
60
  - The directory name and the frontmatter `name` must match exactly.
61
- - Commands live under `commands/lisa/` and map to colon-separated slash names:
62
- `commands/lisa/git/commit.md` → `/lisa:git:commit`;
63
- `commands/lisa/implement.md` → `/lisa:implement`.
61
+ - Commands live flat under `commands/` Claude Code prefixes plugin commands
62
+ with the plugin name, so `commands/git/commit.md` → `/lisa:git:commit` and
63
+ `commands/implement.md` → `/lisa:implement`. (Per-agent variant generators
64
+ nest them under `commands/lisa/` for harnesses without plugin-name
65
+ namespacing; never author that nesting in source.)
64
66
  - **Commands** surface as `/lisa:*` (colon). **Skills** surface as `/lisa-*`
65
67
  (hyphen). Never share a bare name like `implement` across both surfaces.
66
68
 
@@ -112,15 +114,15 @@ carries the actual logic. Keep the two descriptions consistent.
112
114
  1. **Decide placement** — downstream (`plugins/src/base`) vs. Lisa-only
113
115
  (`.claude`). For base, both a skill and a command directory entry are needed.
114
116
  2. **Pick the name** — `lisa-<slug>`, hyphenated, unique. Check it does not collide:
115
- `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/lisa/`.
117
+ `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/`.
116
118
  3. **Create the skill** at
117
119
  `plugins/src/base/skills/lisa-<name>/SKILL.md` with the frontmatter above and a
118
120
  body that follows house style — see `plugins/src/base/skills/lisa-quality-review/SKILL.md`
119
121
  for the canonical shape (title, "When to use", numbered checklist/steps,
120
122
  explicit "Rules"/"Output" sections). Write real, actionable guidance, not
121
123
  TODOs.
122
- 4. **Create the command** at `plugins/src/base/commands/lisa/<name>.md` (or a nested
123
- `commands/lisa/<namespace>/<name>.md` for a colon-namespaced command) using the
124
+ 4. **Create the command** at `plugins/src/base/commands/<name>.md` (or a nested
125
+ `commands/<namespace>/<name>.md` for a colon-namespaced command) using the
124
126
  pass-through template.
125
127
  5. **Rebuild the artifacts** so the generated plugins match source:
126
128
  ```bash
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.203.0",
3
+ "version": "2.204.1",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -58,9 +58,11 @@ first:
58
58
  `name`: `lisa-implement`, `lisa-git-commit`, `lisa-tracker-write`. No spaces,
59
59
  no camelCase, no underscores.
60
60
  - The directory name and the frontmatter `name` must match exactly.
61
- - Commands live under `commands/lisa/` and map to colon-separated slash names:
62
- `commands/lisa/git/commit.md` → `/lisa:git:commit`;
63
- `commands/lisa/implement.md` → `/lisa:implement`.
61
+ - Commands live flat under `commands/` Claude Code prefixes plugin commands
62
+ with the plugin name, so `commands/git/commit.md` → `/lisa:git:commit` and
63
+ `commands/implement.md` → `/lisa:implement`. (Per-agent variant generators
64
+ nest them under `commands/lisa/` for harnesses without plugin-name
65
+ namespacing; never author that nesting in source.)
64
66
  - **Commands** surface as `/lisa:*` (colon). **Skills** surface as `/lisa-*`
65
67
  (hyphen). Never share a bare name like `implement` across both surfaces.
66
68
 
@@ -112,15 +114,15 @@ carries the actual logic. Keep the two descriptions consistent.
112
114
  1. **Decide placement** — downstream (`plugins/src/base`) vs. Lisa-only
113
115
  (`.claude`). For base, both a skill and a command directory entry are needed.
114
116
  2. **Pick the name** — `lisa-<slug>`, hyphenated, unique. Check it does not collide:
115
- `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/lisa/`.
117
+ `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/`.
116
118
  3. **Create the skill** at
117
119
  `plugins/src/base/skills/lisa-<name>/SKILL.md` with the frontmatter above and a
118
120
  body that follows house style — see `plugins/src/base/skills/lisa-quality-review/SKILL.md`
119
121
  for the canonical shape (title, "When to use", numbered checklist/steps,
120
122
  explicit "Rules"/"Output" sections). Write real, actionable guidance, not
121
123
  TODOs.
122
- 4. **Create the command** at `plugins/src/base/commands/lisa/<name>.md` (or a nested
123
- `commands/lisa/<namespace>/<name>.md` for a colon-namespaced command) using the
124
+ 4. **Create the command** at `plugins/src/base/commands/<name>.md` (or a nested
125
+ `commands/<namespace>/<name>.md` for a colon-namespaced command) using the
124
126
  pass-through template.
125
127
  5. **Rebuild the artifacts** so the generated plugins match source:
126
128
  ```bash
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -58,9 +58,11 @@ first:
58
58
  `name`: `lisa-implement`, `lisa-git-commit`, `lisa-tracker-write`. No spaces,
59
59
  no camelCase, no underscores.
60
60
  - The directory name and the frontmatter `name` must match exactly.
61
- - Commands live under `commands/lisa/` and map to colon-separated slash names:
62
- `commands/lisa/git/commit.md` → `/lisa:git:commit`;
63
- `commands/lisa/implement.md` → `/lisa:implement`.
61
+ - Commands live flat under `commands/` Claude Code prefixes plugin commands
62
+ with the plugin name, so `commands/git/commit.md` → `/lisa:git:commit` and
63
+ `commands/implement.md` → `/lisa:implement`. (Per-agent variant generators
64
+ nest them under `commands/lisa/` for harnesses without plugin-name
65
+ namespacing; never author that nesting in source.)
64
66
  - **Commands** surface as `/lisa:*` (colon). **Skills** surface as `/lisa-*`
65
67
  (hyphen). Never share a bare name like `implement` across both surfaces.
66
68
 
@@ -112,15 +114,15 @@ carries the actual logic. Keep the two descriptions consistent.
112
114
  1. **Decide placement** — downstream (`plugins/src/base`) vs. Lisa-only
113
115
  (`.claude`). For base, both a skill and a command directory entry are needed.
114
116
  2. **Pick the name** — `lisa-<slug>`, hyphenated, unique. Check it does not collide:
115
- `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/lisa/`.
117
+ `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/`.
116
118
  3. **Create the skill** at
117
119
  `plugins/src/base/skills/lisa-<name>/SKILL.md` with the frontmatter above and a
118
120
  body that follows house style — see `plugins/src/base/skills/lisa-quality-review/SKILL.md`
119
121
  for the canonical shape (title, "When to use", numbered checklist/steps,
120
122
  explicit "Rules"/"Output" sections). Write real, actionable guidance, not
121
123
  TODOs.
122
- 4. **Create the command** at `plugins/src/base/commands/lisa/<name>.md` (or a nested
123
- `commands/lisa/<namespace>/<name>.md` for a colon-namespaced command) using the
124
+ 4. **Create the command** at `plugins/src/base/commands/<name>.md` (or a nested
125
+ `commands/<namespace>/<name>.md` for a colon-namespaced command) using the
124
126
  pass-through template.
125
127
  5. **Rebuild the artifacts** so the generated plugins match source:
126
128
  ```bash
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.203.0",
3
+ "version": "2.204.1",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -58,9 +58,11 @@ first:
58
58
  `name`: `lisa-implement`, `lisa-git-commit`, `lisa-tracker-write`. No spaces,
59
59
  no camelCase, no underscores.
60
60
  - The directory name and the frontmatter `name` must match exactly.
61
- - Commands live under `commands/lisa/` and map to colon-separated slash names:
62
- `commands/lisa/git/commit.md` → `/lisa:git:commit`;
63
- `commands/lisa/implement.md` → `/lisa:implement`.
61
+ - Commands live flat under `commands/` Claude Code prefixes plugin commands
62
+ with the plugin name, so `commands/git/commit.md` → `/lisa:git:commit` and
63
+ `commands/implement.md` → `/lisa:implement`. (Per-agent variant generators
64
+ nest them under `commands/lisa/` for harnesses without plugin-name
65
+ namespacing; never author that nesting in source.)
64
66
  - **Commands** surface as `/lisa:*` (colon). **Skills** surface as `/lisa-*`
65
67
  (hyphen). Never share a bare name like `implement` across both surfaces.
66
68
 
@@ -112,15 +114,15 @@ carries the actual logic. Keep the two descriptions consistent.
112
114
  1. **Decide placement** — downstream (`plugins/src/base`) vs. Lisa-only
113
115
  (`.claude`). For base, both a skill and a command directory entry are needed.
114
116
  2. **Pick the name** — `lisa-<slug>`, hyphenated, unique. Check it does not collide:
115
- `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/lisa/`.
117
+ `ls plugins/src/base/skills/` and `ls plugins/src/base/commands/`.
116
118
  3. **Create the skill** at
117
119
  `plugins/src/base/skills/lisa-<name>/SKILL.md` with the frontmatter above and a
118
120
  body that follows house style — see `plugins/src/base/skills/lisa-quality-review/SKILL.md`
119
121
  for the canonical shape (title, "When to use", numbered checklist/steps,
120
122
  explicit "Rules"/"Output" sections). Write real, actionable guidance, not
121
123
  TODOs.
122
- 4. **Create the command** at `plugins/src/base/commands/lisa/<name>.md` (or a nested
123
- `commands/lisa/<namespace>/<name>.md` for a colon-namespaced command) using the
124
+ 4. **Create the command** at `plugins/src/base/commands/<name>.md` (or a nested
125
+ `commands/<namespace>/<name>.md` for a colon-namespaced command) using the
124
126
  pass-through template.
125
127
  5. **Rebuild the artifacts** so the generated plugins match source:
126
128
  ```bash
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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.203.0",
3
+ "version": "2.204.1",
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"