@codyswann/lisa 2.204.0 → 2.204.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 (236) hide show
  1. package/expo/create-only/.github/workflows/deploy.yml +13 -0
  2. package/nestjs/create-only/.github/workflows/deploy.yml +64 -4
  3. package/package.json +1 -1
  4. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  6. package/plugins/lisa/.codex-plugin/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  7. package/plugins/lisa/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  8. package/plugins/lisa-agy/plugin.json +1 -1
  9. package/plugins/lisa-agy/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  10. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  12. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  13. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-copilot/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  17. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cursor/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  19. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo-agy/plugin.json +1 -1
  22. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  32. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  37. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  42. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails-agy/plugin.json +1 -1
  47. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  52. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  57. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  59. package/plugins/src/base/skills/lisa-parity-skill-creator/SKILL.md +8 -6
  60. package/scripts/generate-agy-plugin-artifacts.mjs +7 -0
  61. package/scripts/generate-copilot-plugin-artifacts.mjs +6 -0
  62. package/scripts/generate-cursor-plugin-artifacts.mjs +6 -0
  63. package/scripts/lib/nest-plugin-commands.mjs +32 -0
  64. package/scripts/migrate-skill-command-namespace.mjs +0 -141
  65. package/scripts/update-test-command-paths.mjs +0 -87
  66. /package/plugins/lisa/commands/{lisa/agent-ready.md → agent-ready.md} +0 -0
  67. /package/plugins/lisa/commands/{lisa/analyze-claude-remote.md → analyze-claude-remote.md} +0 -0
  68. /package/plugins/lisa/commands/{lisa/automation-status.md → automation-status.md} +0 -0
  69. /package/plugins/lisa/commands/{lisa/codify-verification.md → codify-verification.md} +0 -0
  70. /package/plugins/lisa/commands/{lisa/cross-pollinate.md → cross-pollinate.md} +0 -0
  71. /package/plugins/lisa/commands/{lisa/debrief → debrief}/apply.md +0 -0
  72. /package/plugins/lisa/commands/{lisa/debrief.md → debrief.md} +0 -0
  73. /package/plugins/lisa/commands/{lisa/doctor.md → doctor.md} +0 -0
  74. /package/plugins/lisa/commands/{lisa/exploratory-qa.md → exploratory-qa.md} +0 -0
  75. /package/plugins/lisa/commands/{lisa/fix → fix}/linter-error.md +0 -0
  76. /package/plugins/lisa/commands/{lisa/generate-claude-remote-build-script.md → generate-claude-remote-build-script.md} +0 -0
  77. /package/plugins/lisa/commands/{lisa/git → git}/commit.md +0 -0
  78. /package/plugins/lisa/commands/{lisa/git → git}/prune.md +0 -0
  79. /package/plugins/lisa/commands/{lisa/git → git}/submit-pr.md +0 -0
  80. /package/plugins/lisa/commands/{lisa/implement.md → implement.md} +0 -0
  81. /package/plugins/lisa/commands/{lisa/improve → improve}/code-complexity.md +0 -0
  82. /package/plugins/lisa/commands/{lisa/improve → improve}/max-lines-per-function.md +0 -0
  83. /package/plugins/lisa/commands/{lisa/improve → improve}/max-lines.md +0 -0
  84. /package/plugins/lisa/commands/{lisa/improve → improve}/test-coverage.md +0 -0
  85. /package/plugins/lisa/commands/{lisa/improve → improve}/tests.md +0 -0
  86. /package/plugins/lisa/commands/{lisa/intake-explain.md → intake-explain.md} +0 -0
  87. /package/plugins/lisa/commands/{lisa/intake.md → intake.md} +0 -0
  88. /package/plugins/lisa/commands/{lisa/monitor.md → monitor.md} +0 -0
  89. /package/plugins/lisa/commands/{lisa/parity-code-review.md → parity-code-review.md} +0 -0
  90. /package/plugins/lisa/commands/{lisa/parity-code-simplifier.md → parity-code-simplifier.md} +0 -0
  91. /package/plugins/lisa/commands/{lisa/parity-coderabbit.md → parity-coderabbit.md} +0 -0
  92. /package/plugins/lisa/commands/{lisa/parity-safety-net-rules.md → parity-safety-net-rules.md} +0 -0
  93. /package/plugins/lisa/commands/{lisa/parity-sentry-sdk-setup.md → parity-sentry-sdk-setup.md} +0 -0
  94. /package/plugins/lisa/commands/{lisa/parity-sentry-seer.md → parity-sentry-seer.md} +0 -0
  95. /package/plugins/lisa/commands/{lisa/parity-skill-creator.md → parity-skill-creator.md} +0 -0
  96. /package/plugins/lisa/commands/{lisa/plan.md → plan.md} +0 -0
  97. /package/plugins/lisa/commands/{lisa/plugin-sync-explain.md → plugin-sync-explain.md} +0 -0
  98. /package/plugins/lisa/commands/{lisa/product-walkthrough.md → product-walkthrough.md} +0 -0
  99. /package/plugins/lisa/commands/{lisa/project-ideation.md → project-ideation.md} +0 -0
  100. /package/plugins/lisa/commands/{lisa/pull-request → pull-request}/review.md +0 -0
  101. /package/plugins/lisa/commands/{lisa/queue-status.md → queue-status.md} +0 -0
  102. /package/plugins/lisa/commands/{lisa/repair-intake.md → repair-intake.md} +0 -0
  103. /package/plugins/lisa/commands/{lisa/research.md → research.md} +0 -0
  104. /package/plugins/lisa/commands/{lisa/review → review}/local.md +0 -0
  105. /package/plugins/lisa/commands/{lisa/security → security}/zap-scan.md +0 -0
  106. /package/plugins/lisa/commands/{lisa/setup → setup}/atlassian.md +0 -0
  107. /package/plugins/lisa/commands/{lisa/setup → setup}/confluence.md +0 -0
  108. /package/plugins/lisa/commands/{lisa/setup → setup}/github-repo.md +0 -0
  109. /package/plugins/lisa/commands/{lisa/setup → setup}/github.md +0 -0
  110. /package/plugins/lisa/commands/{lisa/setup → setup}/jira.md +0 -0
  111. /package/plugins/lisa/commands/{lisa/setup → setup}/linear.md +0 -0
  112. /package/plugins/lisa/commands/{lisa/setup → setup}/notion.md +0 -0
  113. /package/plugins/lisa/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  114. /package/plugins/lisa/commands/{lisa/sync-down.md → sync-down.md} +0 -0
  115. /package/plugins/lisa/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
  116. /package/plugins/lisa/commands/{lisa/validate-tracker-mapping.md → validate-tracker-mapping.md} +0 -0
  117. /package/plugins/lisa/commands/{lisa/verify-prd.md → verify-prd.md} +0 -0
  118. /package/plugins/lisa/commands/{lisa/verify.md → verify.md} +0 -0
  119. /package/plugins/lisa/commands/{lisa/wiki → wiki}/install.md +0 -0
  120. /package/plugins/lisa-expo-agy/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  121. /package/plugins/lisa-expo-copilot/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  122. /package/plugins/lisa-expo-cursor/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  123. /package/plugins/lisa-harper-fabric-agy/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  124. /package/plugins/lisa-harper-fabric-copilot/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  125. /package/plugins/lisa-harper-fabric-cursor/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  126. /package/plugins/lisa-openclaw-agy/commands/{connect-repo-topic.md → lisa/connect-repo-topic.md} +0 -0
  127. /package/plugins/lisa-openclaw-agy/commands/{connect-staff-slack.md → lisa/connect-staff-slack.md} +0 -0
  128. /package/plugins/lisa-openclaw-agy/commands/{connect-staff-telegram.md → lisa/connect-staff-telegram.md} +0 -0
  129. /package/plugins/lisa-openclaw-agy/commands/{setup-openclaw.md → lisa/setup-openclaw.md} +0 -0
  130. /package/plugins/lisa-openclaw-copilot/commands/{connect-repo-topic.md → lisa/connect-repo-topic.md} +0 -0
  131. /package/plugins/lisa-openclaw-copilot/commands/{connect-staff-slack.md → lisa/connect-staff-slack.md} +0 -0
  132. /package/plugins/lisa-openclaw-copilot/commands/{connect-staff-telegram.md → lisa/connect-staff-telegram.md} +0 -0
  133. /package/plugins/lisa-openclaw-copilot/commands/{setup-openclaw.md → lisa/setup-openclaw.md} +0 -0
  134. /package/plugins/lisa-openclaw-cursor/commands/{connect-repo-topic.md → lisa/connect-repo-topic.md} +0 -0
  135. /package/plugins/lisa-openclaw-cursor/commands/{connect-staff-slack.md → lisa/connect-staff-slack.md} +0 -0
  136. /package/plugins/lisa-openclaw-cursor/commands/{connect-staff-telegram.md → lisa/connect-staff-telegram.md} +0 -0
  137. /package/plugins/lisa-openclaw-cursor/commands/{setup-openclaw.md → lisa/setup-openclaw.md} +0 -0
  138. /package/plugins/lisa-rails-agy/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  139. /package/plugins/lisa-rails-agy/commands/{fix → lisa/fix}/linter-error.md +0 -0
  140. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/code-complexity.md +0 -0
  141. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/max-lines-per-function.md +0 -0
  142. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/max-lines.md +0 -0
  143. /package/plugins/lisa-rails-agy/commands/{improve → lisa/improve}/test-coverage.md +0 -0
  144. /package/plugins/lisa-rails-copilot/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  145. /package/plugins/lisa-rails-copilot/commands/{fix → lisa/fix}/linter-error.md +0 -0
  146. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/code-complexity.md +0 -0
  147. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/max-lines-per-function.md +0 -0
  148. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/max-lines.md +0 -0
  149. /package/plugins/lisa-rails-copilot/commands/{improve → lisa/improve}/test-coverage.md +0 -0
  150. /package/plugins/lisa-rails-cursor/commands/{e2e-coverage-gaps.md → lisa/e2e-coverage-gaps.md} +0 -0
  151. /package/plugins/lisa-rails-cursor/commands/{fix → lisa/fix}/linter-error.md +0 -0
  152. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/code-complexity.md +0 -0
  153. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/max-lines-per-function.md +0 -0
  154. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/max-lines.md +0 -0
  155. /package/plugins/lisa-rails-cursor/commands/{improve → lisa/improve}/test-coverage.md +0 -0
  156. /package/plugins/lisa-wiki/commands/{lisa/add-ingest.md → add-ingest.md} +0 -0
  157. /package/plugins/lisa-wiki/commands/{lisa/add-role.md → add-role.md} +0 -0
  158. /package/plugins/lisa-wiki/commands/{lisa/doctor.md → doctor.md} +0 -0
  159. /package/plugins/lisa-wiki/commands/{lisa/ingest.md → ingest.md} +0 -0
  160. /package/plugins/lisa-wiki/commands/{lisa/lint.md → lint.md} +0 -0
  161. /package/plugins/lisa-wiki/commands/{lisa/migrate.md → migrate.md} +0 -0
  162. /package/plugins/lisa-wiki/commands/{lisa/onboard-me.md → onboard-me.md} +0 -0
  163. /package/plugins/lisa-wiki/commands/{lisa/query.md → query.md} +0 -0
  164. /package/plugins/lisa-wiki/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  165. /package/plugins/lisa-wiki/commands/{lisa/setup.md → setup.md} +0 -0
  166. /package/plugins/lisa-wiki/commands/{lisa/status.md → status.md} +0 -0
  167. /package/plugins/lisa-wiki/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
  168. /package/plugins/lisa-wiki-agy/commands/{setup → lisa/setup}/wiki.md +0 -0
  169. /package/plugins/lisa-wiki-copilot/commands/{setup → lisa/setup}/wiki.md +0 -0
  170. /package/plugins/lisa-wiki-cursor/commands/{setup → lisa/setup}/wiki.md +0 -0
  171. /package/plugins/src/base/commands/{lisa/agent-ready.md → agent-ready.md} +0 -0
  172. /package/plugins/src/base/commands/{lisa/analyze-claude-remote.md → analyze-claude-remote.md} +0 -0
  173. /package/plugins/src/base/commands/{lisa/automation-status.md → automation-status.md} +0 -0
  174. /package/plugins/src/base/commands/{lisa/codify-verification.md → codify-verification.md} +0 -0
  175. /package/plugins/src/base/commands/{lisa/cross-pollinate.md → cross-pollinate.md} +0 -0
  176. /package/plugins/src/base/commands/{lisa/debrief → debrief}/apply.md +0 -0
  177. /package/plugins/src/base/commands/{lisa/debrief.md → debrief.md} +0 -0
  178. /package/plugins/src/base/commands/{lisa/doctor.md → doctor.md} +0 -0
  179. /package/plugins/src/base/commands/{lisa/exploratory-qa.md → exploratory-qa.md} +0 -0
  180. /package/plugins/src/base/commands/{lisa/fix → fix}/linter-error.md +0 -0
  181. /package/plugins/src/base/commands/{lisa/generate-claude-remote-build-script.md → generate-claude-remote-build-script.md} +0 -0
  182. /package/plugins/src/base/commands/{lisa/git → git}/commit.md +0 -0
  183. /package/plugins/src/base/commands/{lisa/git → git}/prune.md +0 -0
  184. /package/plugins/src/base/commands/{lisa/git → git}/submit-pr.md +0 -0
  185. /package/plugins/src/base/commands/{lisa/implement.md → implement.md} +0 -0
  186. /package/plugins/src/base/commands/{lisa/improve → improve}/code-complexity.md +0 -0
  187. /package/plugins/src/base/commands/{lisa/improve → improve}/max-lines-per-function.md +0 -0
  188. /package/plugins/src/base/commands/{lisa/improve → improve}/max-lines.md +0 -0
  189. /package/plugins/src/base/commands/{lisa/improve → improve}/test-coverage.md +0 -0
  190. /package/plugins/src/base/commands/{lisa/improve → improve}/tests.md +0 -0
  191. /package/plugins/src/base/commands/{lisa/intake-explain.md → intake-explain.md} +0 -0
  192. /package/plugins/src/base/commands/{lisa/intake.md → intake.md} +0 -0
  193. /package/plugins/src/base/commands/{lisa/monitor.md → monitor.md} +0 -0
  194. /package/plugins/src/base/commands/{lisa/parity-code-review.md → parity-code-review.md} +0 -0
  195. /package/plugins/src/base/commands/{lisa/parity-code-simplifier.md → parity-code-simplifier.md} +0 -0
  196. /package/plugins/src/base/commands/{lisa/parity-coderabbit.md → parity-coderabbit.md} +0 -0
  197. /package/plugins/src/base/commands/{lisa/parity-safety-net-rules.md → parity-safety-net-rules.md} +0 -0
  198. /package/plugins/src/base/commands/{lisa/parity-sentry-sdk-setup.md → parity-sentry-sdk-setup.md} +0 -0
  199. /package/plugins/src/base/commands/{lisa/parity-sentry-seer.md → parity-sentry-seer.md} +0 -0
  200. /package/plugins/src/base/commands/{lisa/parity-skill-creator.md → parity-skill-creator.md} +0 -0
  201. /package/plugins/src/base/commands/{lisa/plan.md → plan.md} +0 -0
  202. /package/plugins/src/base/commands/{lisa/plugin-sync-explain.md → plugin-sync-explain.md} +0 -0
  203. /package/plugins/src/base/commands/{lisa/product-walkthrough.md → product-walkthrough.md} +0 -0
  204. /package/plugins/src/base/commands/{lisa/project-ideation.md → project-ideation.md} +0 -0
  205. /package/plugins/src/base/commands/{lisa/pull-request → pull-request}/review.md +0 -0
  206. /package/plugins/src/base/commands/{lisa/queue-status.md → queue-status.md} +0 -0
  207. /package/plugins/src/base/commands/{lisa/repair-intake.md → repair-intake.md} +0 -0
  208. /package/plugins/src/base/commands/{lisa/research.md → research.md} +0 -0
  209. /package/plugins/src/base/commands/{lisa/review → review}/local.md +0 -0
  210. /package/plugins/src/base/commands/{lisa/security → security}/zap-scan.md +0 -0
  211. /package/plugins/src/base/commands/{lisa/setup → setup}/atlassian.md +0 -0
  212. /package/plugins/src/base/commands/{lisa/setup → setup}/confluence.md +0 -0
  213. /package/plugins/src/base/commands/{lisa/setup → setup}/github-repo.md +0 -0
  214. /package/plugins/src/base/commands/{lisa/setup → setup}/github.md +0 -0
  215. /package/plugins/src/base/commands/{lisa/setup → setup}/jira.md +0 -0
  216. /package/plugins/src/base/commands/{lisa/setup → setup}/linear.md +0 -0
  217. /package/plugins/src/base/commands/{lisa/setup → setup}/notion.md +0 -0
  218. /package/plugins/src/base/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  219. /package/plugins/src/base/commands/{lisa/sync-down.md → sync-down.md} +0 -0
  220. /package/plugins/src/base/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
  221. /package/plugins/src/base/commands/{lisa/validate-tracker-mapping.md → validate-tracker-mapping.md} +0 -0
  222. /package/plugins/src/base/commands/{lisa/verify-prd.md → verify-prd.md} +0 -0
  223. /package/plugins/src/base/commands/{lisa/verify.md → verify.md} +0 -0
  224. /package/plugins/src/base/commands/{lisa/wiki → wiki}/install.md +0 -0
  225. /package/plugins/src/wiki/commands/{lisa/add-ingest.md → add-ingest.md} +0 -0
  226. /package/plugins/src/wiki/commands/{lisa/add-role.md → add-role.md} +0 -0
  227. /package/plugins/src/wiki/commands/{lisa/doctor.md → doctor.md} +0 -0
  228. /package/plugins/src/wiki/commands/{lisa/ingest.md → ingest.md} +0 -0
  229. /package/plugins/src/wiki/commands/{lisa/lint.md → lint.md} +0 -0
  230. /package/plugins/src/wiki/commands/{lisa/migrate.md → migrate.md} +0 -0
  231. /package/plugins/src/wiki/commands/{lisa/onboard-me.md → onboard-me.md} +0 -0
  232. /package/plugins/src/wiki/commands/{lisa/query.md → query.md} +0 -0
  233. /package/plugins/src/wiki/commands/{lisa/setup-automations.md → setup-automations.md} +0 -0
  234. /package/plugins/src/wiki/commands/{lisa/setup.md → setup.md} +0 -0
  235. /package/plugins/src/wiki/commands/{lisa/status.md → status.md} +0 -0
  236. /package/plugins/src/wiki/commands/{lisa/tear-down-automations.md → tear-down-automations.md} +0 -0
@@ -47,6 +47,8 @@ jobs:
47
47
  name: 🌍 Determine Environment
48
48
  runs-on: ubuntu-latest
49
49
  timeout-minutes: 5
50
+ permissions:
51
+ contents: read
50
52
  outputs:
51
53
  environment: ${{ steps.env.outputs.environment }}
52
54
  approval_environment: ${{ steps.approval.outputs.approval_environment }}
@@ -88,6 +90,9 @@ jobs:
88
90
  # Reference to the quality checks workflow
89
91
  uses: CodySwannGT/lisa/.github/workflows/release.yml@main
90
92
  needs: [determine_environment]
93
+ permissions:
94
+ contents: write
95
+ pull-requests: read
91
96
  with:
92
97
  environment: ${{ needs.determine_environment.outputs.environment }}
93
98
  release_strategy: 'standard-version'
@@ -114,6 +119,8 @@ jobs:
114
119
  name: Check EAS Setup
115
120
  runs-on: ubuntu-latest
116
121
  needs: [determine_environment]
122
+ permissions:
123
+ contents: read
117
124
  outputs:
118
125
  has_eas_setup: ${{ steps.check.outputs.has_eas_setup }}
119
126
  steps:
@@ -132,6 +139,8 @@ jobs:
132
139
  name: Check App Config Changes
133
140
  runs-on: ubuntu-latest
134
141
  needs: [determine_environment]
142
+ permissions:
143
+ contents: read
135
144
  outputs:
136
145
  app_config_changed: ${{ steps.check_changes.outputs.app_config_changed }}
137
146
  steps:
@@ -157,6 +166,8 @@ jobs:
157
166
  needs: [determine_environment, check_eas_setup, check_app_config_changes]
158
167
  if: needs.check_eas_setup.outputs.has_eas_setup == 'true' && (needs.check_app_config_changes.outputs.app_config_changed == 'true' || inputs.force_build == true)
159
168
  uses: CodySwannGT/lisa/.github/workflows/build.yml@main
169
+ permissions:
170
+ contents: read
160
171
  with:
161
172
  environment: ${{ needs.determine_environment.outputs.environment }}
162
173
  secrets:
@@ -178,6 +189,8 @@ jobs:
178
189
  always() &&
179
190
  needs.check_eas_setup.outputs.has_eas_setup == 'true' &&
180
191
  needs.release.result == 'success'
192
+ permissions:
193
+ contents: read
181
194
  steps:
182
195
  - name: Checkout repository
183
196
  uses: actions/checkout@v6
@@ -40,6 +40,8 @@ jobs:
40
40
  name: 🌍 Determine Environment
41
41
  runs-on: ubuntu-latest
42
42
  timeout-minutes: 5
43
+ permissions:
44
+ contents: read
43
45
  outputs:
44
46
  environment: ${{ steps.env.outputs.environment }}
45
47
  approval_environment: ${{ steps.approval.outputs.approval_environment }}
@@ -81,6 +83,9 @@ jobs:
81
83
  name: 📦 Release
82
84
  uses: CodySwannGT/lisa/.github/workflows/release.yml@main
83
85
  needs: [determine_environment]
86
+ permissions:
87
+ contents: write
88
+ pull-requests: read
84
89
  with:
85
90
  environment: ${{ needs.determine_environment.outputs.environment }}
86
91
  release_strategy: 'standard-version'
@@ -105,6 +110,8 @@ jobs:
105
110
  name: Verify AWS Credentials
106
111
  runs-on: ubuntu-latest
107
112
  needs: [release]
113
+ permissions:
114
+ contents: read
108
115
  outputs:
109
116
  has_aws_credentials: ${{ steps.check.outputs.has_aws_credentials }}
110
117
  steps:
@@ -129,6 +136,8 @@ jobs:
129
136
  runs-on: ubuntu-latest
130
137
  needs: [release, verify_aws_credentials]
131
138
  if: needs.verify_aws_credentials.outputs.has_aws_credentials == 'true'
139
+ permissions:
140
+ contents: read
132
141
  outputs:
133
142
  requires_migration: ${{ steps.check.outputs.requires_migration }}
134
143
  steps:
@@ -144,13 +153,14 @@ jobs:
144
153
  shell: bash
145
154
  env:
146
155
  SKIP_MIGRATIONS: ${{ vars.SKIP_MIGRATIONS }}
147
- GITHUB_OUTPUT: ${{ github.output }}
148
156
 
149
157
  verify_vpn:
150
158
  name: Verify VPN
151
159
  runs-on: ubuntu-latest
152
160
  needs: [check_migration_required]
153
161
  if: always() && needs.check_migration_required.outputs.requires_migration == 'true'
162
+ permissions:
163
+ contents: read
154
164
  outputs:
155
165
  has_vpn_setup: ${{ steps.check.outputs.has_vpn_setup }}
156
166
  steps:
@@ -168,7 +178,6 @@ jobs:
168
178
  fi
169
179
  env:
170
180
  OVPN_CONFIG: ${{ secrets[env.OVPN_CONFIG_NAME] }}
171
- GITHUB_OUTPUT: ${{ github.output }}
172
181
  migrate:
173
182
  name: Schema Migrations
174
183
  runs-on: ubuntu-latest
@@ -217,13 +226,27 @@ jobs:
217
226
  SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
218
227
  AWS_PROFILE: '' # Override serverless.yml profile with empty string for CI
219
228
  deploy:
220
- needs: [migrate, verify_aws_credentials]
229
+ needs:
230
+ [
231
+ determine_environment,
232
+ release,
233
+ check_migration_required,
234
+ migrate,
235
+ verify_aws_credentials,
236
+ ]
221
237
  if: |
222
238
  always() &&
223
239
  needs.verify_aws_credentials.outputs.has_aws_credentials == 'true' &&
224
- (needs.migrate.result == 'success' || needs.migrate.result == 'skipped')
240
+ needs.check_migration_required.result == 'success' &&
241
+ (
242
+ needs.migrate.result == 'success' ||
243
+ (needs.check_migration_required.outputs.requires_migration != 'true' && needs.migrate.result == 'skipped')
244
+ )
225
245
  name: Deploy
226
246
  runs-on: ubuntu-latest
247
+ outputs:
248
+ environment_url: ${{ steps.deployment_outputs.outputs.environment_url }}
249
+ deployment_status: ${{ steps.deployment_outputs.outputs.deployment_status }}
227
250
  permissions:
228
251
  id-token: write # needed to interact with GitHub's OIDC Token endpoint
229
252
  contents: read
@@ -325,6 +348,43 @@ jobs:
325
348
  fi
326
349
  echo "Health check passed: $health_url"
327
350
 
351
+ - name: Resolve deployment outputs
352
+ id: deployment_outputs
353
+ shell: bash
354
+ env:
355
+ SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }}
356
+ AWS_PROFILE: ''
357
+ DEPLOYMENT_URL: ${{ vars.DEPLOYMENT_URL }}
358
+ HEALTH_OUTPUT_KEY: ${{ vars.POST_DEPLOY_HEALTH_OUTPUT_KEY || 'HttpApiUrl' }}
359
+ SERVERLESS_STACK_NAME: ${{ vars.SERVERLESS_STACK_NAME }}
360
+ STAGE: ${{ github.ref_name != 'main' && github.ref_name || 'production' }}
361
+ run: |
362
+ set -euo pipefail
363
+ environment_url="$DEPLOYMENT_URL"
364
+
365
+ if [ -z "$environment_url" ]; then
366
+ stack_name="$SERVERLESS_STACK_NAME"
367
+ if [ -z "$stack_name" ]; then
368
+ service_name=$(bun run serverless print --stage "$STAGE" --format json | jq -r '.service // empty' 2>/dev/null || true)
369
+ if [ -n "$service_name" ]; then
370
+ stack_name="${service_name}-${STAGE}"
371
+ fi
372
+ fi
373
+
374
+ if [ -n "$stack_name" ]; then
375
+ environment_url=$(aws cloudformation describe-stacks \
376
+ --stack-name "$stack_name" \
377
+ --query "Stacks[0].Outputs[?OutputKey=='${HEALTH_OUTPUT_KEY}'].OutputValue | [0]" \
378
+ --output text 2>/dev/null || true)
379
+ if [ "$environment_url" = "None" ]; then
380
+ environment_url=""
381
+ fi
382
+ fi
383
+ fi
384
+
385
+ echo "environment_url=$environment_url" >> "$GITHUB_OUTPUT"
386
+ echo "deployment_status=success" >> "$GITHUB_OUTPUT"
387
+
328
388
  - name: 📢 Notify on success
329
389
  run: echo "Successfully deployed version ${{ needs.release.outputs.version }} to ${{ needs.determine_environment.outputs.environment }}"
330
390
 
package/package.json CHANGED
@@ -95,7 +95,7 @@
95
95
  "ws": ">=8.20.1"
96
96
  },
97
97
  "name": "@codyswann/lisa",
98
- "version": "2.204.0",
98
+ "version": "2.204.2",
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.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.2",
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.204.0",
3
+ "version": "2.204.2",
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.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.2",
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.204.0",
3
+ "version": "2.204.2",
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.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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": "2.204.0",
3
+ "version": "2.204.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"