@codyswann/lisa 1.47.1 → 1.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (904) hide show
  1. package/.claude-plugin/marketplace.json +48 -0
  2. package/all/deletions.json +71 -1
  3. package/all/merge/.claude/settings.json +28 -0
  4. package/cdk/copy-overwrite/eslint.config.ts +11 -21
  5. package/cdk/copy-overwrite/eslint.slow.config.ts +4 -73
  6. package/cdk/copy-overwrite/jest.config.ts +14 -12
  7. package/cdk/copy-overwrite/tsconfig.json +1 -1
  8. package/cdk/create-only/.github/workflows/ci.yml +1 -1
  9. package/cdk/create-only/.github/workflows/deploy.yml +1 -1
  10. package/cdk/merge/.claude/settings.json +29 -0
  11. package/cdk/package-lisa/package.lisa.json +1 -0
  12. package/dist/configs/eslint/base.d.ts +1491 -0
  13. package/dist/configs/eslint/base.d.ts.map +1 -0
  14. package/dist/configs/eslint/base.js +386 -0
  15. package/dist/configs/eslint/base.js.map +1 -0
  16. package/dist/configs/eslint/cdk.d.ts +32 -0
  17. package/dist/configs/eslint/cdk.d.ts.map +1 -0
  18. package/dist/configs/eslint/cdk.js +127 -0
  19. package/dist/configs/eslint/cdk.js.map +1 -0
  20. package/dist/configs/eslint/expo.d.ts +16 -0
  21. package/dist/configs/eslint/expo.d.ts.map +1 -0
  22. package/dist/configs/eslint/expo.js +264 -0
  23. package/dist/configs/eslint/expo.js.map +1 -0
  24. package/dist/configs/eslint/index.d.ts +18 -0
  25. package/dist/configs/eslint/index.d.ts.map +1 -0
  26. package/dist/configs/eslint/index.js +18 -0
  27. package/dist/configs/eslint/index.js.map +1 -0
  28. package/dist/configs/eslint/nestjs.d.ts +32 -0
  29. package/dist/configs/eslint/nestjs.d.ts.map +1 -0
  30. package/dist/configs/eslint/nestjs.js +128 -0
  31. package/dist/configs/eslint/nestjs.js.map +1 -0
  32. package/dist/configs/eslint/slow.d.ts +80 -0
  33. package/dist/configs/eslint/slow.d.ts.map +1 -0
  34. package/dist/configs/eslint/slow.js +83 -0
  35. package/dist/configs/eslint/slow.js.map +1 -0
  36. package/dist/configs/eslint/typescript.d.ts +19 -0
  37. package/dist/configs/eslint/typescript.d.ts.map +1 -0
  38. package/dist/configs/eslint/typescript.js +81 -0
  39. package/dist/configs/eslint/typescript.js.map +1 -0
  40. package/{typescript/copy-overwrite/jest.base.ts → dist/configs/jest/base.d.ts} +9 -69
  41. package/dist/configs/jest/base.d.ts.map +1 -0
  42. package/dist/configs/jest/base.js +83 -0
  43. package/dist/configs/jest/base.js.map +1 -0
  44. package/dist/configs/jest/cdk.d.ts +35 -0
  45. package/dist/configs/jest/cdk.d.ts.map +1 -0
  46. package/dist/configs/jest/cdk.js +30 -0
  47. package/dist/configs/jest/cdk.js.map +1 -0
  48. package/dist/configs/jest/expo.d.ts +56 -0
  49. package/dist/configs/jest/expo.d.ts.map +1 -0
  50. package/dist/configs/jest/expo.js +60 -0
  51. package/dist/configs/jest/expo.js.map +1 -0
  52. package/dist/configs/jest/index.d.ts +14 -0
  53. package/dist/configs/jest/index.d.ts.map +1 -0
  54. package/dist/configs/jest/index.js +14 -0
  55. package/dist/configs/jest/index.js.map +1 -0
  56. package/dist/configs/jest/nestjs.d.ts +35 -0
  57. package/dist/configs/jest/nestjs.d.ts.map +1 -0
  58. package/dist/configs/jest/nestjs.js +47 -0
  59. package/dist/configs/jest/nestjs.js.map +1 -0
  60. package/dist/configs/jest/typescript.d.ts +31 -0
  61. package/dist/configs/jest/typescript.d.ts.map +1 -0
  62. package/dist/configs/jest/typescript.js +34 -0
  63. package/dist/configs/jest/typescript.js.map +1 -0
  64. package/dist/core/lisa.d.ts +14 -0
  65. package/dist/core/lisa.d.ts.map +1 -1
  66. package/dist/core/lisa.js +47 -0
  67. package/dist/core/lisa.js.map +1 -1
  68. package/expo/copy-overwrite/eslint.config.ts +5 -20
  69. package/expo/copy-overwrite/eslint.expo.ts +2 -2
  70. package/expo/copy-overwrite/eslint.slow.config.ts +4 -90
  71. package/expo/copy-overwrite/jest.config.ts +14 -12
  72. package/expo/copy-overwrite/tsconfig.json +1 -1
  73. package/expo/create-only/.github/workflows/ci.yml +1 -1
  74. package/expo/create-only/.github/workflows/deploy.yml +1 -1
  75. package/expo/deletions.json +33 -0
  76. package/expo/merge/.claude/settings.json +29 -0
  77. package/expo/package-lisa/package.lisa.json +1 -10
  78. package/nestjs/copy-overwrite/eslint.config.ts +5 -20
  79. package/nestjs/copy-overwrite/eslint.slow.config.ts +4 -89
  80. package/nestjs/copy-overwrite/jest.config.ts +14 -12
  81. package/nestjs/copy-overwrite/tsconfig.json +1 -1
  82. package/nestjs/create-only/.github/workflows/ci.yml +1 -1
  83. package/nestjs/create-only/.github/workflows/deploy.yml +1 -1
  84. package/nestjs/deletions.json +8 -0
  85. package/nestjs/merge/.claude/settings.json +29 -0
  86. package/nestjs/package-lisa/package.lisa.json +1 -0
  87. package/package.json +86 -43
  88. package/plugins/lisa-cdk/.claude-plugin/plugin.json +86 -0
  89. package/{all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md → plugins/lisa-cdk/commands/git-commit-and-submit-pr.md} +1 -1
  90. package/{all/copy-overwrite/.claude/commands/git/commit-submit-pr-and-verify.md → plugins/lisa-cdk/commands/git-commit-submit-pr-and-verify.md} +1 -1
  91. package/{all/copy-overwrite/.claude/commands/git/commit-submit-pr-deploy-and-verify.md → plugins/lisa-cdk/commands/git-commit-submit-pr-deploy-and-verify.md} +1 -1
  92. package/{all/copy-overwrite/.claude/commands/git/commit.md → plugins/lisa-cdk/commands/git-commit.md} +1 -1
  93. package/{all/copy-overwrite/.claude/commands/git/prune.md → plugins/lisa-cdk/commands/git-prune.md} +1 -1
  94. package/{all/copy-overwrite/.claude/commands/git/submit-pr.md → plugins/lisa-cdk/commands/git-submit-pr.md} +1 -1
  95. package/plugins/lisa-cdk/commands/jira-add-journey.md +7 -0
  96. package/{all/copy-overwrite/.claude/commands/jira/create.md → plugins/lisa-cdk/commands/jira-create.md} +1 -1
  97. package/plugins/lisa-cdk/commands/jira-evidence.md +7 -0
  98. package/plugins/lisa-cdk/commands/jira-fix.md +7 -0
  99. package/plugins/lisa-cdk/commands/jira-implement.md +7 -0
  100. package/plugins/lisa-cdk/commands/jira-journey.md +7 -0
  101. package/{all/copy-overwrite/.claude/commands/jira/sync.md → plugins/lisa-cdk/commands/jira-sync.md} +1 -1
  102. package/{all/copy-overwrite/.claude/commands/jira/verify.md → plugins/lisa-cdk/commands/jira-verify.md} +1 -1
  103. package/{all/copy-overwrite/.claude/commands/lisa/review-implementation.md → plugins/lisa-cdk/commands/lisa-review-implementation.md} +1 -1
  104. package/{all/copy-overwrite/.claude/commands/plan/add-test-coverage.md → plugins/lisa-cdk/commands/plan-add-test-coverage.md} +1 -1
  105. package/{all/copy-overwrite/.claude/commands/plan/create.md → plugins/lisa-cdk/commands/plan-create.md} +1 -1
  106. package/{all/copy-overwrite/.claude/commands/plan/execute.md → plugins/lisa-cdk/commands/plan-execute.md} +1 -1
  107. package/{all/copy-overwrite/.claude/commands/plan/fix-linter-error.md → plugins/lisa-cdk/commands/plan-fix-linter-error.md} +1 -1
  108. package/{all/copy-overwrite/.claude/commands/plan/local-code-review.md → plugins/lisa-cdk/commands/plan-local-code-review.md} +1 -1
  109. package/{all/copy-overwrite/.claude/commands/plan/lower-code-complexity.md → plugins/lisa-cdk/commands/plan-lower-code-complexity.md} +1 -1
  110. package/{all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md → plugins/lisa-cdk/commands/plan-reduce-max-lines-per-function.md} +1 -1
  111. package/{all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md → plugins/lisa-cdk/commands/plan-reduce-max-lines.md} +1 -1
  112. package/{all/copy-overwrite/.claude/commands/pull-request/review.md → plugins/lisa-cdk/commands/pull-request-review.md} +1 -1
  113. package/{all/copy-overwrite/.claude/commands/security/zap-scan.md → plugins/lisa-cdk/commands/security-zap-scan.md} +1 -1
  114. package/{all/copy-overwrite/.claude/commands/sonarqube/check.md → plugins/lisa-cdk/commands/sonarqube-check.md} +1 -1
  115. package/{all/copy-overwrite/.claude/commands/sonarqube/fix.md → plugins/lisa-cdk/commands/sonarqube-fix.md} +1 -1
  116. package/{all/copy-overwrite/.claude/commands/tasks/load.md → plugins/lisa-cdk/commands/tasks-load.md} +1 -1
  117. package/{all/copy-overwrite/.claude/commands/tasks/sync.md → plugins/lisa-cdk/commands/tasks-sync.md} +1 -1
  118. package/{typescript/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/install-pkgs.sh +3 -3
  119. package/plugins/lisa-cdk/rules/lisa.md +37 -0
  120. package/plugins/lisa-cdk/skills/jira-add-journey/SKILL.md +120 -0
  121. package/plugins/lisa-cdk/skills/jira-create/SKILL.md +95 -0
  122. package/plugins/lisa-cdk/skills/jira-evidence/SKILL.md +73 -0
  123. package/plugins/lisa-cdk/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  124. package/plugins/lisa-cdk/skills/jira-fix/SKILL.md +16 -0
  125. package/plugins/lisa-cdk/skills/jira-implement/SKILL.md +18 -0
  126. package/plugins/lisa-cdk/skills/jira-journey/SKILL.md +125 -0
  127. package/plugins/lisa-cdk/skills/jira-journey/scripts/generate-templates.py +233 -0
  128. package/plugins/lisa-cdk/skills/jira-journey/scripts/parse-plan.py +368 -0
  129. package/plugins/lisa-cdk/skills/jira-verify/SKILL.md +48 -0
  130. package/plugins/lisa-expo/.claude-plugin/plugin.json +86 -0
  131. package/plugins/lisa-expo/agents/agent-architect.md +310 -0
  132. package/plugins/lisa-expo/agents/architecture-specialist.md +53 -0
  133. package/plugins/lisa-expo/agents/debug-specialist.md +204 -0
  134. package/plugins/lisa-expo/agents/git-history-analyzer.md +183 -0
  135. package/plugins/lisa-expo/agents/hooks-expert.md +74 -0
  136. package/plugins/lisa-expo/agents/implementer.md +54 -0
  137. package/plugins/lisa-expo/agents/learner.md +44 -0
  138. package/plugins/lisa-expo/agents/performance-specialist.md +95 -0
  139. package/plugins/lisa-expo/agents/product-specialist.md +72 -0
  140. package/plugins/lisa-expo/agents/quality-specialist.md +55 -0
  141. package/plugins/lisa-expo/agents/security-specialist.md +58 -0
  142. package/plugins/lisa-expo/agents/skill-evaluator.md +246 -0
  143. package/plugins/lisa-expo/agents/slash-command-architect.md +87 -0
  144. package/plugins/lisa-expo/agents/test-specialist.md +64 -0
  145. package/plugins/lisa-expo/agents/verification-specialist.md +189 -0
  146. package/plugins/lisa-expo/agents/web-search-researcher.md +112 -0
  147. package/plugins/lisa-expo/commands/git-commit-and-submit-pr.md +7 -0
  148. package/plugins/lisa-expo/commands/git-commit-submit-pr-and-verify.md +7 -0
  149. package/plugins/lisa-expo/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  150. package/plugins/lisa-expo/commands/git-commit.md +7 -0
  151. package/plugins/lisa-expo/commands/git-prune.md +6 -0
  152. package/plugins/lisa-expo/commands/git-submit-pr.md +7 -0
  153. package/plugins/lisa-expo/commands/jira-add-journey.md +7 -0
  154. package/plugins/lisa-expo/commands/jira-create.md +7 -0
  155. package/plugins/lisa-expo/commands/jira-evidence.md +7 -0
  156. package/plugins/lisa-expo/commands/jira-fix.md +7 -0
  157. package/plugins/lisa-expo/commands/jira-implement.md +7 -0
  158. package/plugins/lisa-expo/commands/jira-journey.md +7 -0
  159. package/plugins/lisa-expo/commands/jira-sync.md +7 -0
  160. package/plugins/lisa-expo/commands/jira-verify.md +7 -0
  161. package/plugins/lisa-expo/commands/lisa-review-implementation.md +7 -0
  162. package/plugins/lisa-expo/commands/plan-add-test-coverage.md +7 -0
  163. package/plugins/lisa-expo/commands/plan-create.md +6 -0
  164. package/plugins/lisa-expo/commands/plan-execute.md +7 -0
  165. package/plugins/lisa-expo/commands/plan-fix-linter-error.md +7 -0
  166. package/plugins/lisa-expo/commands/plan-local-code-review.md +6 -0
  167. package/plugins/lisa-expo/commands/plan-lower-code-complexity.md +6 -0
  168. package/plugins/lisa-expo/commands/plan-reduce-max-lines-per-function.md +7 -0
  169. package/plugins/lisa-expo/commands/plan-reduce-max-lines.md +7 -0
  170. package/plugins/lisa-expo/commands/pull-request-review.md +7 -0
  171. package/plugins/lisa-expo/commands/security-zap-scan.md +6 -0
  172. package/plugins/lisa-expo/commands/sonarqube-check.md +6 -0
  173. package/plugins/lisa-expo/commands/sonarqube-fix.md +6 -0
  174. package/plugins/lisa-expo/commands/tasks-load.md +7 -0
  175. package/plugins/lisa-expo/commands/tasks-sync.md +7 -0
  176. package/plugins/lisa-expo/hooks/debug-hook.sh +47 -0
  177. package/plugins/lisa-expo/hooks/enforce-plan-rules.sh +15 -0
  178. package/plugins/lisa-expo/hooks/format-on-edit.sh +76 -0
  179. package/plugins/lisa-expo/hooks/install-pkgs.sh +64 -0
  180. package/plugins/lisa-expo/hooks/lint-on-edit.sh +81 -0
  181. package/plugins/lisa-expo/hooks/notify-ntfy.sh +183 -0
  182. package/plugins/lisa-expo/hooks/setup-jira-cli.sh +52 -0
  183. package/plugins/lisa-expo/hooks/sg-scan-on-edit.sh +68 -0
  184. package/plugins/lisa-expo/hooks/sync-tasks.sh +107 -0
  185. package/plugins/lisa-expo/hooks/ticket-sync-reminder.sh +23 -0
  186. package/plugins/lisa-expo/hooks/track-plan-sessions.sh +164 -0
  187. package/plugins/lisa-expo/hooks/verify-completion.sh +77 -0
  188. package/plugins/lisa-expo/rules/README.md +240 -0
  189. package/plugins/lisa-expo/rules/coding-philosophy.md +428 -0
  190. package/plugins/lisa-expo/rules/lisa.md +37 -0
  191. package/plugins/lisa-expo/rules/verfication.md +596 -0
  192. package/plugins/lisa-expo/skills/agent-design-best-practices/SKILL.md +219 -0
  193. package/plugins/lisa-expo/skills/git-commit/SKILL.md +48 -0
  194. package/plugins/lisa-expo/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  195. package/plugins/lisa-expo/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  196. package/plugins/lisa-expo/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  197. package/plugins/lisa-expo/skills/git-prune/SKILL.md +35 -0
  198. package/plugins/lisa-expo/skills/git-submit-pr/SKILL.md +44 -0
  199. package/plugins/lisa-expo/skills/jira-add-journey/SKILL.md +126 -0
  200. package/plugins/lisa-expo/skills/jira-create/SKILL.md +101 -0
  201. package/plugins/lisa-expo/skills/jira-evidence/SKILL.md +78 -0
  202. package/plugins/lisa-expo/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  203. package/plugins/lisa-expo/skills/jira-fix/SKILL.md +16 -0
  204. package/plugins/lisa-expo/skills/jira-implement/SKILL.md +18 -0
  205. package/plugins/lisa-expo/skills/jira-journey/SKILL.md +190 -0
  206. package/plugins/lisa-expo/skills/jira-journey/scripts/generate-templates.py +281 -0
  207. package/plugins/lisa-expo/skills/jira-journey/scripts/parse-plan.py +368 -0
  208. package/plugins/lisa-expo/skills/jira-sync/SKILL.md +63 -0
  209. package/plugins/lisa-expo/skills/jira-verify/SKILL.md +47 -0
  210. package/plugins/lisa-expo/skills/jsdoc-best-practices/SKILL.md +432 -0
  211. package/plugins/lisa-expo/skills/lisa-review-implementation/SKILL.md +209 -0
  212. package/plugins/lisa-expo/skills/plan-add-test-coverage/SKILL.md +44 -0
  213. package/plugins/lisa-expo/skills/plan-execute/SKILL.md +89 -0
  214. package/plugins/lisa-expo/skills/plan-fix-linter-error/SKILL.md +45 -0
  215. package/plugins/lisa-expo/skills/plan-local-code-review/SKILL.md +88 -0
  216. package/plugins/lisa-expo/skills/plan-lower-code-complexity/SKILL.md +44 -0
  217. package/plugins/lisa-expo/skills/plan-reduce-max-lines/SKILL.md +45 -0
  218. package/plugins/lisa-expo/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  219. package/plugins/lisa-expo/skills/pull-request-review/SKILL.md +68 -0
  220. package/plugins/lisa-expo/skills/skill-creator/LICENSE.txt +202 -0
  221. package/plugins/lisa-expo/skills/skill-creator/SKILL.md +210 -0
  222. package/plugins/lisa-expo/skills/skill-creator/scripts/init_skill.py +305 -0
  223. package/plugins/lisa-expo/skills/skill-creator/scripts/package_skill.py +112 -0
  224. package/plugins/lisa-expo/skills/skill-creator/scripts/quick_validate.py +67 -0
  225. package/plugins/lisa-expo/skills/sonarqube-check/SKILL.md +11 -0
  226. package/plugins/lisa-expo/skills/sonarqube-fix/SKILL.md +8 -0
  227. package/plugins/lisa-expo/skills/tasks-load/SKILL.md +88 -0
  228. package/plugins/lisa-expo/skills/tasks-sync/SKILL.md +108 -0
  229. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +86 -0
  230. package/plugins/lisa-nestjs/agents/agent-architect.md +310 -0
  231. package/plugins/lisa-nestjs/agents/architecture-specialist.md +53 -0
  232. package/plugins/lisa-nestjs/agents/debug-specialist.md +204 -0
  233. package/plugins/lisa-nestjs/agents/git-history-analyzer.md +183 -0
  234. package/plugins/lisa-nestjs/agents/hooks-expert.md +74 -0
  235. package/plugins/lisa-nestjs/agents/implementer.md +54 -0
  236. package/plugins/lisa-nestjs/agents/learner.md +44 -0
  237. package/plugins/lisa-nestjs/agents/performance-specialist.md +95 -0
  238. package/plugins/lisa-nestjs/agents/product-specialist.md +72 -0
  239. package/plugins/lisa-nestjs/agents/quality-specialist.md +55 -0
  240. package/plugins/lisa-nestjs/agents/security-specialist.md +58 -0
  241. package/plugins/lisa-nestjs/agents/skill-evaluator.md +246 -0
  242. package/plugins/lisa-nestjs/agents/slash-command-architect.md +87 -0
  243. package/plugins/lisa-nestjs/agents/test-specialist.md +64 -0
  244. package/plugins/lisa-nestjs/agents/verification-specialist.md +189 -0
  245. package/plugins/lisa-nestjs/agents/web-search-researcher.md +112 -0
  246. package/plugins/lisa-nestjs/commands/git-commit-and-submit-pr.md +7 -0
  247. package/plugins/lisa-nestjs/commands/git-commit-submit-pr-and-verify.md +7 -0
  248. package/plugins/lisa-nestjs/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  249. package/plugins/lisa-nestjs/commands/git-commit.md +7 -0
  250. package/plugins/lisa-nestjs/commands/git-prune.md +6 -0
  251. package/plugins/lisa-nestjs/commands/git-submit-pr.md +7 -0
  252. package/plugins/lisa-nestjs/commands/jira-add-journey.md +7 -0
  253. package/plugins/lisa-nestjs/commands/jira-create.md +7 -0
  254. package/plugins/lisa-nestjs/commands/jira-evidence.md +7 -0
  255. package/plugins/lisa-nestjs/commands/jira-fix.md +7 -0
  256. package/plugins/lisa-nestjs/commands/jira-implement.md +7 -0
  257. package/plugins/lisa-nestjs/commands/jira-journey.md +7 -0
  258. package/plugins/lisa-nestjs/commands/jira-sync.md +7 -0
  259. package/plugins/lisa-nestjs/commands/jira-verify.md +7 -0
  260. package/plugins/lisa-nestjs/commands/lisa-review-implementation.md +7 -0
  261. package/plugins/lisa-nestjs/commands/plan-add-test-coverage.md +7 -0
  262. package/plugins/lisa-nestjs/commands/plan-create.md +6 -0
  263. package/plugins/lisa-nestjs/commands/plan-execute.md +7 -0
  264. package/plugins/lisa-nestjs/commands/plan-fix-linter-error.md +7 -0
  265. package/plugins/lisa-nestjs/commands/plan-local-code-review.md +6 -0
  266. package/plugins/lisa-nestjs/commands/plan-lower-code-complexity.md +6 -0
  267. package/plugins/lisa-nestjs/commands/plan-reduce-max-lines-per-function.md +7 -0
  268. package/plugins/lisa-nestjs/commands/plan-reduce-max-lines.md +7 -0
  269. package/plugins/lisa-nestjs/commands/pull-request-review.md +7 -0
  270. package/plugins/lisa-nestjs/commands/security-zap-scan.md +6 -0
  271. package/plugins/lisa-nestjs/commands/sonarqube-check.md +6 -0
  272. package/plugins/lisa-nestjs/commands/sonarqube-fix.md +6 -0
  273. package/plugins/lisa-nestjs/commands/tasks-load.md +7 -0
  274. package/plugins/lisa-nestjs/commands/tasks-sync.md +7 -0
  275. package/plugins/lisa-nestjs/hooks/debug-hook.sh +47 -0
  276. package/plugins/lisa-nestjs/hooks/enforce-plan-rules.sh +15 -0
  277. package/plugins/lisa-nestjs/hooks/format-on-edit.sh +76 -0
  278. package/plugins/lisa-nestjs/hooks/install-pkgs.sh +64 -0
  279. package/plugins/lisa-nestjs/hooks/lint-on-edit.sh +81 -0
  280. package/plugins/lisa-nestjs/hooks/notify-ntfy.sh +183 -0
  281. package/plugins/lisa-nestjs/hooks/setup-jira-cli.sh +52 -0
  282. package/plugins/lisa-nestjs/hooks/sg-scan-on-edit.sh +68 -0
  283. package/plugins/lisa-nestjs/hooks/sync-tasks.sh +107 -0
  284. package/plugins/lisa-nestjs/hooks/ticket-sync-reminder.sh +23 -0
  285. package/plugins/lisa-nestjs/hooks/track-plan-sessions.sh +164 -0
  286. package/plugins/lisa-nestjs/hooks/verify-completion.sh +77 -0
  287. package/plugins/lisa-nestjs/rules/README.md +240 -0
  288. package/plugins/lisa-nestjs/rules/coding-philosophy.md +428 -0
  289. package/plugins/lisa-nestjs/rules/lisa.md +37 -0
  290. package/plugins/lisa-nestjs/rules/verfication.md +596 -0
  291. package/plugins/lisa-nestjs/skills/agent-design-best-practices/SKILL.md +219 -0
  292. package/plugins/lisa-nestjs/skills/git-commit/SKILL.md +48 -0
  293. package/plugins/lisa-nestjs/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  294. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  295. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  296. package/plugins/lisa-nestjs/skills/git-prune/SKILL.md +35 -0
  297. package/plugins/lisa-nestjs/skills/git-submit-pr/SKILL.md +44 -0
  298. package/plugins/lisa-nestjs/skills/jira-add-journey/SKILL.md +120 -0
  299. package/plugins/lisa-nestjs/skills/jira-create/SKILL.md +95 -0
  300. package/plugins/lisa-nestjs/skills/jira-evidence/SKILL.md +73 -0
  301. package/plugins/lisa-nestjs/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  302. package/plugins/lisa-nestjs/skills/jira-fix/SKILL.md +16 -0
  303. package/plugins/lisa-nestjs/skills/jira-implement/SKILL.md +18 -0
  304. package/plugins/lisa-nestjs/skills/jira-journey/SKILL.md +125 -0
  305. package/plugins/lisa-nestjs/skills/jira-journey/scripts/generate-templates.py +233 -0
  306. package/plugins/lisa-nestjs/skills/jira-journey/scripts/parse-plan.py +368 -0
  307. package/plugins/lisa-nestjs/skills/jira-sync/SKILL.md +63 -0
  308. package/plugins/lisa-nestjs/skills/jira-verify/SKILL.md +48 -0
  309. package/plugins/lisa-nestjs/skills/jsdoc-best-practices/SKILL.md +432 -0
  310. package/plugins/lisa-nestjs/skills/lisa-review-implementation/SKILL.md +209 -0
  311. package/plugins/lisa-nestjs/skills/plan-add-test-coverage/SKILL.md +44 -0
  312. package/plugins/lisa-nestjs/skills/plan-execute/SKILL.md +89 -0
  313. package/plugins/lisa-nestjs/skills/plan-fix-linter-error/SKILL.md +45 -0
  314. package/plugins/lisa-nestjs/skills/plan-local-code-review/SKILL.md +88 -0
  315. package/plugins/lisa-nestjs/skills/plan-lower-code-complexity/SKILL.md +44 -0
  316. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines/SKILL.md +45 -0
  317. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  318. package/plugins/lisa-nestjs/skills/pull-request-review/SKILL.md +68 -0
  319. package/plugins/lisa-nestjs/skills/security-zap-scan/SKILL.md +33 -0
  320. package/plugins/lisa-nestjs/skills/skill-creator/LICENSE.txt +202 -0
  321. package/plugins/lisa-nestjs/skills/skill-creator/SKILL.md +210 -0
  322. package/plugins/lisa-nestjs/skills/skill-creator/scripts/init_skill.py +305 -0
  323. package/plugins/lisa-nestjs/skills/skill-creator/scripts/package_skill.py +112 -0
  324. package/plugins/lisa-nestjs/skills/skill-creator/scripts/quick_validate.py +67 -0
  325. package/plugins/lisa-nestjs/skills/sonarqube-check/SKILL.md +11 -0
  326. package/plugins/lisa-nestjs/skills/sonarqube-fix/SKILL.md +8 -0
  327. package/plugins/lisa-nestjs/skills/tasks-load/SKILL.md +88 -0
  328. package/plugins/lisa-nestjs/skills/tasks-sync/SKILL.md +108 -0
  329. package/plugins/lisa-rails/.claude-plugin/plugin.json +77 -0
  330. package/plugins/lisa-rails/agents/agent-architect.md +310 -0
  331. package/plugins/lisa-rails/agents/architecture-specialist.md +53 -0
  332. package/plugins/lisa-rails/agents/debug-specialist.md +204 -0
  333. package/plugins/lisa-rails/agents/git-history-analyzer.md +183 -0
  334. package/plugins/lisa-rails/agents/hooks-expert.md +74 -0
  335. package/plugins/lisa-rails/agents/implementer.md +54 -0
  336. package/plugins/lisa-rails/agents/learner.md +44 -0
  337. package/plugins/lisa-rails/agents/performance-specialist.md +95 -0
  338. package/plugins/lisa-rails/agents/product-specialist.md +72 -0
  339. package/plugins/lisa-rails/agents/quality-specialist.md +55 -0
  340. package/plugins/lisa-rails/agents/security-specialist.md +58 -0
  341. package/plugins/lisa-rails/agents/skill-evaluator.md +246 -0
  342. package/plugins/lisa-rails/agents/slash-command-architect.md +87 -0
  343. package/plugins/lisa-rails/agents/test-specialist.md +64 -0
  344. package/plugins/lisa-rails/agents/verification-specialist.md +189 -0
  345. package/plugins/lisa-rails/agents/web-search-researcher.md +112 -0
  346. package/plugins/lisa-rails/commands/git-commit-and-submit-pr.md +7 -0
  347. package/plugins/lisa-rails/commands/git-commit-submit-pr-and-verify.md +7 -0
  348. package/plugins/lisa-rails/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  349. package/plugins/lisa-rails/commands/git-commit.md +7 -0
  350. package/plugins/lisa-rails/commands/git-prune.md +6 -0
  351. package/plugins/lisa-rails/commands/git-submit-pr.md +7 -0
  352. package/plugins/lisa-rails/commands/jira-add-journey.md +7 -0
  353. package/plugins/lisa-rails/commands/jira-create.md +7 -0
  354. package/plugins/lisa-rails/commands/jira-evidence.md +7 -0
  355. package/plugins/lisa-rails/commands/jira-fix.md +7 -0
  356. package/plugins/lisa-rails/commands/jira-implement.md +7 -0
  357. package/plugins/lisa-rails/commands/jira-journey.md +7 -0
  358. package/plugins/lisa-rails/commands/jira-sync.md +7 -0
  359. package/plugins/lisa-rails/commands/jira-verify.md +7 -0
  360. package/plugins/lisa-rails/commands/lisa-review-implementation.md +7 -0
  361. package/plugins/lisa-rails/commands/plan-add-test-coverage.md +7 -0
  362. package/plugins/lisa-rails/commands/plan-create.md +6 -0
  363. package/plugins/lisa-rails/commands/plan-execute.md +7 -0
  364. package/plugins/lisa-rails/commands/plan-fix-linter-error.md +7 -0
  365. package/plugins/lisa-rails/commands/plan-local-code-review.md +6 -0
  366. package/plugins/lisa-rails/commands/plan-lower-code-complexity.md +6 -0
  367. package/plugins/lisa-rails/commands/plan-reduce-max-lines-per-function.md +7 -0
  368. package/plugins/lisa-rails/commands/plan-reduce-max-lines.md +7 -0
  369. package/plugins/lisa-rails/commands/pull-request-review.md +7 -0
  370. package/plugins/lisa-rails/commands/security-zap-scan.md +6 -0
  371. package/plugins/lisa-rails/commands/sonarqube-check.md +6 -0
  372. package/plugins/lisa-rails/commands/sonarqube-fix.md +6 -0
  373. package/plugins/lisa-rails/commands/tasks-load.md +7 -0
  374. package/plugins/lisa-rails/commands/tasks-sync.md +7 -0
  375. package/plugins/lisa-rails/hooks/debug-hook.sh +47 -0
  376. package/plugins/lisa-rails/hooks/enforce-plan-rules.sh +15 -0
  377. package/plugins/lisa-rails/hooks/format-on-edit.sh +76 -0
  378. package/plugins/lisa-rails/hooks/install-pkgs.sh +64 -0
  379. package/plugins/lisa-rails/hooks/lint-on-edit.sh +81 -0
  380. package/plugins/lisa-rails/hooks/notify-ntfy.sh +183 -0
  381. package/plugins/lisa-rails/hooks/setup-jira-cli.sh +52 -0
  382. package/plugins/lisa-rails/hooks/sg-scan-on-edit.sh +68 -0
  383. package/plugins/lisa-rails/hooks/sync-tasks.sh +107 -0
  384. package/plugins/lisa-rails/hooks/ticket-sync-reminder.sh +23 -0
  385. package/plugins/lisa-rails/hooks/track-plan-sessions.sh +164 -0
  386. package/plugins/lisa-rails/hooks/verify-completion.sh +77 -0
  387. package/plugins/lisa-rails/rules/README.md +240 -0
  388. package/plugins/lisa-rails/rules/coding-philosophy.md +428 -0
  389. package/plugins/lisa-rails/rules/lisa.md +37 -0
  390. package/plugins/lisa-rails/rules/rails-conventions.md +176 -0
  391. package/plugins/lisa-rails/rules/verfication.md +596 -0
  392. package/plugins/lisa-rails/skills/agent-design-best-practices/SKILL.md +219 -0
  393. package/plugins/lisa-rails/skills/git-commit/SKILL.md +48 -0
  394. package/plugins/lisa-rails/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  395. package/plugins/lisa-rails/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  396. package/plugins/lisa-rails/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  397. package/plugins/lisa-rails/skills/git-prune/SKILL.md +35 -0
  398. package/plugins/lisa-rails/skills/git-submit-pr/SKILL.md +44 -0
  399. package/plugins/lisa-rails/skills/jira-add-journey/SKILL.md +65 -0
  400. package/plugins/lisa-rails/skills/jira-evidence/SKILL.md +70 -0
  401. package/plugins/lisa-rails/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  402. package/plugins/lisa-rails/skills/jira-fix/SKILL.md +16 -0
  403. package/plugins/lisa-rails/skills/jira-implement/SKILL.md +18 -0
  404. package/plugins/lisa-rails/skills/jira-journey/SKILL.md +64 -0
  405. package/plugins/lisa-rails/skills/jira-journey/scripts/generate-templates.py +233 -0
  406. package/plugins/lisa-rails/skills/jira-journey/scripts/parse-plan.py +368 -0
  407. package/plugins/lisa-rails/skills/jira-sync/SKILL.md +63 -0
  408. package/plugins/lisa-rails/skills/jsdoc-best-practices/SKILL.md +432 -0
  409. package/plugins/lisa-rails/skills/lisa-review-implementation/SKILL.md +209 -0
  410. package/plugins/lisa-rails/skills/plan-execute/SKILL.md +89 -0
  411. package/plugins/lisa-rails/skills/plan-local-code-review/SKILL.md +88 -0
  412. package/plugins/lisa-rails/skills/pull-request-review/SKILL.md +68 -0
  413. package/plugins/lisa-rails/skills/security-zap-scan/SKILL.md +33 -0
  414. package/plugins/lisa-rails/skills/skill-creator/LICENSE.txt +202 -0
  415. package/plugins/lisa-rails/skills/skill-creator/SKILL.md +210 -0
  416. package/plugins/lisa-rails/skills/skill-creator/scripts/init_skill.py +305 -0
  417. package/plugins/lisa-rails/skills/skill-creator/scripts/package_skill.py +112 -0
  418. package/plugins/lisa-rails/skills/skill-creator/scripts/quick_validate.py +67 -0
  419. package/plugins/lisa-rails/skills/sonarqube-check/SKILL.md +11 -0
  420. package/plugins/lisa-rails/skills/sonarqube-fix/SKILL.md +8 -0
  421. package/plugins/lisa-rails/skills/tasks-load/SKILL.md +88 -0
  422. package/plugins/lisa-rails/skills/tasks-sync/SKILL.md +108 -0
  423. package/plugins/lisa-typescript/.claude-plugin/plugin.json +86 -0
  424. package/plugins/lisa-typescript/agents/agent-architect.md +310 -0
  425. package/plugins/lisa-typescript/agents/architecture-specialist.md +53 -0
  426. package/plugins/lisa-typescript/agents/debug-specialist.md +204 -0
  427. package/plugins/lisa-typescript/agents/git-history-analyzer.md +183 -0
  428. package/plugins/lisa-typescript/agents/hooks-expert.md +74 -0
  429. package/plugins/lisa-typescript/agents/implementer.md +54 -0
  430. package/plugins/lisa-typescript/agents/learner.md +44 -0
  431. package/plugins/lisa-typescript/agents/performance-specialist.md +95 -0
  432. package/plugins/lisa-typescript/agents/product-specialist.md +72 -0
  433. package/plugins/lisa-typescript/agents/quality-specialist.md +55 -0
  434. package/plugins/lisa-typescript/agents/security-specialist.md +58 -0
  435. package/plugins/lisa-typescript/agents/skill-evaluator.md +246 -0
  436. package/plugins/lisa-typescript/agents/slash-command-architect.md +87 -0
  437. package/plugins/lisa-typescript/agents/test-specialist.md +64 -0
  438. package/plugins/lisa-typescript/agents/verification-specialist.md +189 -0
  439. package/plugins/lisa-typescript/agents/web-search-researcher.md +112 -0
  440. package/plugins/lisa-typescript/commands/git-commit-and-submit-pr.md +7 -0
  441. package/plugins/lisa-typescript/commands/git-commit-submit-pr-and-verify.md +7 -0
  442. package/plugins/lisa-typescript/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  443. package/plugins/lisa-typescript/commands/git-commit.md +7 -0
  444. package/plugins/lisa-typescript/commands/git-prune.md +6 -0
  445. package/plugins/lisa-typescript/commands/git-submit-pr.md +7 -0
  446. package/plugins/lisa-typescript/commands/jira-add-journey.md +7 -0
  447. package/plugins/lisa-typescript/commands/jira-create.md +7 -0
  448. package/plugins/lisa-typescript/commands/jira-evidence.md +7 -0
  449. package/plugins/lisa-typescript/commands/jira-fix.md +7 -0
  450. package/plugins/lisa-typescript/commands/jira-implement.md +7 -0
  451. package/plugins/lisa-typescript/commands/jira-journey.md +7 -0
  452. package/plugins/lisa-typescript/commands/jira-sync.md +7 -0
  453. package/plugins/lisa-typescript/commands/jira-verify.md +7 -0
  454. package/plugins/lisa-typescript/commands/lisa-review-implementation.md +7 -0
  455. package/plugins/lisa-typescript/commands/plan-add-test-coverage.md +7 -0
  456. package/plugins/lisa-typescript/commands/plan-create.md +6 -0
  457. package/plugins/lisa-typescript/commands/plan-execute.md +7 -0
  458. package/plugins/lisa-typescript/commands/plan-fix-linter-error.md +7 -0
  459. package/plugins/lisa-typescript/commands/plan-local-code-review.md +6 -0
  460. package/plugins/lisa-typescript/commands/plan-lower-code-complexity.md +6 -0
  461. package/plugins/lisa-typescript/commands/plan-reduce-max-lines-per-function.md +7 -0
  462. package/plugins/lisa-typescript/commands/plan-reduce-max-lines.md +7 -0
  463. package/plugins/lisa-typescript/commands/pull-request-review.md +7 -0
  464. package/plugins/lisa-typescript/commands/security-zap-scan.md +6 -0
  465. package/plugins/lisa-typescript/commands/sonarqube-check.md +6 -0
  466. package/plugins/lisa-typescript/commands/sonarqube-fix.md +6 -0
  467. package/plugins/lisa-typescript/commands/tasks-load.md +7 -0
  468. package/plugins/lisa-typescript/commands/tasks-sync.md +7 -0
  469. package/plugins/lisa-typescript/hooks/debug-hook.sh +47 -0
  470. package/plugins/lisa-typescript/hooks/enforce-plan-rules.sh +15 -0
  471. package/plugins/lisa-typescript/hooks/format-on-edit.sh +76 -0
  472. package/plugins/lisa-typescript/hooks/install-pkgs.sh +64 -0
  473. package/plugins/lisa-typescript/hooks/lint-on-edit.sh +81 -0
  474. package/plugins/lisa-typescript/hooks/notify-ntfy.sh +183 -0
  475. package/plugins/lisa-typescript/hooks/setup-jira-cli.sh +52 -0
  476. package/plugins/lisa-typescript/hooks/sg-scan-on-edit.sh +68 -0
  477. package/plugins/lisa-typescript/hooks/sync-tasks.sh +107 -0
  478. package/plugins/lisa-typescript/hooks/ticket-sync-reminder.sh +23 -0
  479. package/plugins/lisa-typescript/hooks/track-plan-sessions.sh +164 -0
  480. package/plugins/lisa-typescript/hooks/verify-completion.sh +77 -0
  481. package/plugins/lisa-typescript/rules/README.md +240 -0
  482. package/plugins/lisa-typescript/rules/coding-philosophy.md +428 -0
  483. package/plugins/lisa-typescript/rules/lisa.md +37 -0
  484. package/plugins/lisa-typescript/rules/verfication.md +596 -0
  485. package/plugins/lisa-typescript/skills/agent-design-best-practices/SKILL.md +219 -0
  486. package/plugins/lisa-typescript/skills/git-commit/SKILL.md +48 -0
  487. package/plugins/lisa-typescript/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  488. package/plugins/lisa-typescript/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  489. package/plugins/lisa-typescript/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  490. package/plugins/lisa-typescript/skills/git-prune/SKILL.md +35 -0
  491. package/plugins/lisa-typescript/skills/git-submit-pr/SKILL.md +44 -0
  492. package/plugins/lisa-typescript/skills/jira-add-journey/SKILL.md +120 -0
  493. package/plugins/lisa-typescript/skills/jira-create/SKILL.md +95 -0
  494. package/plugins/lisa-typescript/skills/jira-evidence/SKILL.md +73 -0
  495. package/plugins/lisa-typescript/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  496. package/plugins/lisa-typescript/skills/jira-fix/SKILL.md +16 -0
  497. package/plugins/lisa-typescript/skills/jira-implement/SKILL.md +18 -0
  498. package/plugins/lisa-typescript/skills/jira-journey/SKILL.md +125 -0
  499. package/plugins/lisa-typescript/skills/jira-journey/scripts/generate-templates.py +233 -0
  500. package/plugins/lisa-typescript/skills/jira-journey/scripts/parse-plan.py +368 -0
  501. package/plugins/lisa-typescript/skills/jira-sync/SKILL.md +63 -0
  502. package/plugins/lisa-typescript/skills/jira-verify/SKILL.md +48 -0
  503. package/plugins/lisa-typescript/skills/jsdoc-best-practices/SKILL.md +432 -0
  504. package/plugins/lisa-typescript/skills/lisa-review-implementation/SKILL.md +209 -0
  505. package/plugins/lisa-typescript/skills/plan-add-test-coverage/SKILL.md +44 -0
  506. package/plugins/lisa-typescript/skills/plan-execute/SKILL.md +89 -0
  507. package/plugins/lisa-typescript/skills/plan-fix-linter-error/SKILL.md +45 -0
  508. package/plugins/lisa-typescript/skills/plan-local-code-review/SKILL.md +88 -0
  509. package/plugins/lisa-typescript/skills/plan-lower-code-complexity/SKILL.md +44 -0
  510. package/plugins/lisa-typescript/skills/plan-reduce-max-lines/SKILL.md +45 -0
  511. package/plugins/lisa-typescript/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  512. package/plugins/lisa-typescript/skills/pull-request-review/SKILL.md +68 -0
  513. package/plugins/lisa-typescript/skills/security-zap-scan/SKILL.md +33 -0
  514. package/plugins/lisa-typescript/skills/skill-creator/LICENSE.txt +202 -0
  515. package/plugins/lisa-typescript/skills/skill-creator/SKILL.md +210 -0
  516. package/plugins/lisa-typescript/skills/skill-creator/scripts/init_skill.py +305 -0
  517. package/plugins/lisa-typescript/skills/skill-creator/scripts/package_skill.py +112 -0
  518. package/plugins/lisa-typescript/skills/skill-creator/scripts/quick_validate.py +67 -0
  519. package/plugins/lisa-typescript/skills/sonarqube-check/SKILL.md +11 -0
  520. package/plugins/lisa-typescript/skills/sonarqube-fix/SKILL.md +8 -0
  521. package/plugins/lisa-typescript/skills/tasks-load/SKILL.md +88 -0
  522. package/plugins/lisa-typescript/skills/tasks-sync/SKILL.md +108 -0
  523. package/plugins/src/base/agents/agent-architect.md +310 -0
  524. package/plugins/src/base/agents/architecture-specialist.md +53 -0
  525. package/plugins/src/base/agents/debug-specialist.md +204 -0
  526. package/plugins/src/base/agents/git-history-analyzer.md +183 -0
  527. package/plugins/src/base/agents/hooks-expert.md +74 -0
  528. package/plugins/src/base/agents/implementer.md +54 -0
  529. package/plugins/src/base/agents/learner.md +44 -0
  530. package/plugins/src/base/agents/performance-specialist.md +95 -0
  531. package/plugins/src/base/agents/product-specialist.md +72 -0
  532. package/plugins/src/base/agents/quality-specialist.md +55 -0
  533. package/plugins/src/base/agents/security-specialist.md +58 -0
  534. package/plugins/src/base/agents/skill-evaluator.md +246 -0
  535. package/plugins/src/base/agents/slash-command-architect.md +87 -0
  536. package/plugins/src/base/agents/test-specialist.md +64 -0
  537. package/plugins/src/base/agents/verification-specialist.md +189 -0
  538. package/plugins/src/base/agents/web-search-researcher.md +112 -0
  539. package/plugins/src/base/commands/git-commit-and-submit-pr.md +7 -0
  540. package/plugins/src/base/commands/git-commit-submit-pr-and-verify.md +7 -0
  541. package/plugins/src/base/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  542. package/plugins/src/base/commands/git-commit.md +7 -0
  543. package/plugins/src/base/commands/git-prune.md +6 -0
  544. package/plugins/src/base/commands/git-submit-pr.md +7 -0
  545. package/plugins/src/base/commands/jira-add-journey.md +7 -0
  546. package/plugins/src/base/commands/jira-create.md +7 -0
  547. package/plugins/src/base/commands/jira-evidence.md +7 -0
  548. package/plugins/src/base/commands/jira-fix.md +7 -0
  549. package/plugins/src/base/commands/jira-implement.md +7 -0
  550. package/plugins/src/base/commands/jira-journey.md +7 -0
  551. package/plugins/src/base/commands/jira-sync.md +7 -0
  552. package/plugins/src/base/commands/jira-verify.md +7 -0
  553. package/plugins/src/base/commands/lisa-review-implementation.md +7 -0
  554. package/plugins/src/base/commands/plan-add-test-coverage.md +7 -0
  555. package/plugins/src/base/commands/plan-create.md +6 -0
  556. package/plugins/src/base/commands/plan-execute.md +7 -0
  557. package/plugins/src/base/commands/plan-fix-linter-error.md +7 -0
  558. package/plugins/src/base/commands/plan-local-code-review.md +6 -0
  559. package/plugins/src/base/commands/plan-lower-code-complexity.md +6 -0
  560. package/plugins/src/base/commands/plan-reduce-max-lines-per-function.md +7 -0
  561. package/plugins/src/base/commands/plan-reduce-max-lines.md +7 -0
  562. package/plugins/src/base/commands/pull-request-review.md +7 -0
  563. package/plugins/src/base/commands/security-zap-scan.md +6 -0
  564. package/plugins/src/base/commands/sonarqube-check.md +6 -0
  565. package/plugins/src/base/commands/sonarqube-fix.md +6 -0
  566. package/plugins/src/base/commands/tasks-load.md +7 -0
  567. package/plugins/src/base/commands/tasks-sync.md +7 -0
  568. package/plugins/src/base/hooks/debug-hook.sh +47 -0
  569. package/plugins/src/base/hooks/enforce-plan-rules.sh +15 -0
  570. package/plugins/src/base/hooks/format-on-edit.sh +76 -0
  571. package/plugins/src/base/hooks/install-pkgs.sh +64 -0
  572. package/plugins/src/base/hooks/lint-on-edit.sh +81 -0
  573. package/plugins/src/base/hooks/notify-ntfy.sh +183 -0
  574. package/plugins/src/base/hooks/setup-jira-cli.sh +52 -0
  575. package/plugins/src/base/hooks/sg-scan-on-edit.sh +68 -0
  576. package/plugins/src/base/hooks/sync-tasks.sh +107 -0
  577. package/plugins/src/base/hooks/ticket-sync-reminder.sh +23 -0
  578. package/plugins/src/base/hooks/track-plan-sessions.sh +164 -0
  579. package/plugins/src/base/hooks/verify-completion.sh +77 -0
  580. package/plugins/src/base/rules/README.md +240 -0
  581. package/plugins/src/base/rules/coding-philosophy.md +428 -0
  582. package/plugins/src/base/rules/lisa.md +37 -0
  583. package/plugins/src/base/rules/verfication.md +596 -0
  584. package/plugins/src/base/skills/agent-design-best-practices/SKILL.md +219 -0
  585. package/plugins/src/base/skills/git-commit/SKILL.md +48 -0
  586. package/plugins/src/base/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  587. package/plugins/src/base/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  588. package/plugins/src/base/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  589. package/plugins/src/base/skills/git-prune/SKILL.md +35 -0
  590. package/plugins/src/base/skills/git-submit-pr/SKILL.md +44 -0
  591. package/plugins/src/base/skills/jira-add-journey/SKILL.md +120 -0
  592. package/plugins/src/base/skills/jira-create/SKILL.md +95 -0
  593. package/plugins/src/base/skills/jira-evidence/SKILL.md +73 -0
  594. package/plugins/src/base/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  595. package/plugins/src/base/skills/jira-fix/SKILL.md +16 -0
  596. package/plugins/src/base/skills/jira-implement/SKILL.md +18 -0
  597. package/plugins/src/base/skills/jira-journey/SKILL.md +125 -0
  598. package/plugins/src/base/skills/jira-journey/scripts/generate-templates.py +233 -0
  599. package/plugins/src/base/skills/jira-journey/scripts/parse-plan.py +368 -0
  600. package/plugins/src/base/skills/jira-sync/SKILL.md +63 -0
  601. package/plugins/src/base/skills/jira-verify/SKILL.md +48 -0
  602. package/plugins/src/base/skills/jsdoc-best-practices/SKILL.md +432 -0
  603. package/plugins/src/base/skills/lisa-review-implementation/SKILL.md +209 -0
  604. package/plugins/src/base/skills/plan-add-test-coverage/SKILL.md +44 -0
  605. package/plugins/src/base/skills/plan-execute/SKILL.md +89 -0
  606. package/plugins/src/base/skills/plan-fix-linter-error/SKILL.md +45 -0
  607. package/plugins/src/base/skills/plan-local-code-review/SKILL.md +88 -0
  608. package/plugins/src/base/skills/plan-lower-code-complexity/SKILL.md +44 -0
  609. package/plugins/src/base/skills/plan-reduce-max-lines/SKILL.md +45 -0
  610. package/plugins/src/base/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  611. package/plugins/src/base/skills/pull-request-review/SKILL.md +68 -0
  612. package/plugins/src/base/skills/security-zap-scan/SKILL.md +33 -0
  613. package/plugins/src/base/skills/skill-creator/LICENSE.txt +202 -0
  614. package/plugins/src/base/skills/skill-creator/SKILL.md +210 -0
  615. package/plugins/src/base/skills/skill-creator/scripts/init_skill.py +305 -0
  616. package/plugins/src/base/skills/skill-creator/scripts/package_skill.py +112 -0
  617. package/plugins/src/base/skills/skill-creator/scripts/quick_validate.py +67 -0
  618. package/plugins/src/base/skills/sonarqube-check/SKILL.md +11 -0
  619. package/plugins/src/base/skills/sonarqube-fix/SKILL.md +8 -0
  620. package/plugins/src/base/skills/tasks-load/SKILL.md +88 -0
  621. package/plugins/src/base/skills/tasks-sync/SKILL.md +108 -0
  622. package/plugins/src/cdk/.claude-plugin/plugin.json +86 -0
  623. package/plugins/src/expo/.claude-plugin/plugin.json +86 -0
  624. package/plugins/src/expo/agents/ops-specialist.md +124 -0
  625. package/plugins/src/expo/rules/expo-verification.md +261 -0
  626. package/plugins/src/expo/skills/apollo-client/SKILL.md +238 -0
  627. package/plugins/src/expo/skills/apollo-client/references/mutation-patterns.md +360 -0
  628. package/plugins/src/expo/skills/atomic-design-gluestack/SKILL.md +360 -0
  629. package/plugins/src/expo/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  630. package/plugins/src/expo/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  631. package/plugins/src/expo/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  632. package/plugins/src/expo/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  633. package/plugins/src/expo/skills/container-view-pattern/SKILL.md +299 -0
  634. package/plugins/src/expo/skills/container-view-pattern/references/examples.md +749 -0
  635. package/plugins/src/expo/skills/container-view-pattern/references/patterns.md +318 -0
  636. package/plugins/src/expo/skills/container-view-pattern/scripts/create_component.py +200 -0
  637. package/plugins/src/expo/skills/container-view-pattern/scripts/validate_component.py +209 -0
  638. package/plugins/src/expo/skills/cross-platform-compatibility/SKILL.md +268 -0
  639. package/plugins/src/expo/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  640. package/plugins/src/expo/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  641. package/plugins/src/expo/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  642. package/plugins/src/expo/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  643. package/plugins/src/expo/skills/directory-structure/SKILL.md +202 -0
  644. package/plugins/src/expo/skills/directory-structure/scripts/validate_structure.py +445 -0
  645. package/plugins/src/expo/skills/expo-env-config/SKILL.md +309 -0
  646. package/plugins/src/expo/skills/expo-env-config/references/validation-patterns.md +417 -0
  647. package/plugins/src/expo/skills/expo-router-best-practices/SKILL.md +431 -0
  648. package/plugins/src/expo/skills/expo-router-best-practices/references/official-docs.md +290 -0
  649. package/plugins/src/expo/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  650. package/plugins/src/expo/skills/gluestack-nativewind/SKILL.md +411 -0
  651. package/plugins/src/expo/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  652. package/plugins/src/expo/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  653. package/plugins/src/expo/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  654. package/plugins/src/expo/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  655. package/plugins/src/expo/skills/jira-add-journey/SKILL.md +126 -0
  656. package/plugins/src/expo/skills/jira-create/SKILL.md +101 -0
  657. package/plugins/src/expo/skills/jira-evidence/SKILL.md +78 -0
  658. package/plugins/src/expo/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  659. package/plugins/src/expo/skills/jira-journey/SKILL.md +190 -0
  660. package/plugins/src/expo/skills/jira-journey/scripts/generate-templates.py +281 -0
  661. package/plugins/src/expo/skills/jira-journey/scripts/parse-plan.py +368 -0
  662. package/plugins/src/expo/skills/jira-verify/SKILL.md +47 -0
  663. package/plugins/src/expo/skills/local-state/SKILL.md +362 -0
  664. package/plugins/src/expo/skills/local-state/references/async-storage.md +505 -0
  665. package/plugins/src/expo/skills/local-state/references/persistence-patterns.md +711 -0
  666. package/plugins/src/expo/skills/local-state/references/reactive-variables.md +446 -0
  667. package/plugins/src/expo/skills/ops-browser-uat/SKILL.md +124 -0
  668. package/plugins/src/expo/skills/ops-check-logs/SKILL.md +211 -0
  669. package/plugins/src/expo/skills/ops-db-ops/SKILL.md +119 -0
  670. package/plugins/src/expo/skills/ops-deploy/SKILL.md +119 -0
  671. package/plugins/src/expo/skills/ops-monitor-errors/SKILL.md +99 -0
  672. package/plugins/src/expo/skills/ops-performance/SKILL.md +165 -0
  673. package/plugins/src/expo/skills/ops-run-local/SKILL.md +166 -0
  674. package/plugins/src/expo/skills/ops-verify-health/SKILL.md +101 -0
  675. package/plugins/src/expo/skills/owasp-zap/SKILL.md +56 -0
  676. package/plugins/src/expo/skills/playwright-selectors/SKILL.md +223 -0
  677. package/plugins/src/expo/skills/testing-library/SKILL.md +314 -0
  678. package/plugins/src/expo/skills/testing-library/references/async-patterns.md +420 -0
  679. package/plugins/src/expo/skills/testing-library/references/expo-router-testing.md +556 -0
  680. package/plugins/src/expo/skills/testing-library/references/mocking-patterns.md +590 -0
  681. package/plugins/src/expo/skills/testing-library/references/query-priority.md +291 -0
  682. package/plugins/src/nestjs/.claude-plugin/plugin.json +86 -0
  683. package/plugins/src/nestjs/skills/nestjs-graphql/SKILL.md +176 -0
  684. package/plugins/src/nestjs/skills/nestjs-graphql/references/advanced-features.md +527 -0
  685. package/plugins/src/nestjs/skills/nestjs-graphql/references/project-patterns.md +483 -0
  686. package/plugins/src/nestjs/skills/nestjs-graphql/references/quick-start.md +257 -0
  687. package/plugins/src/nestjs/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  688. package/plugins/src/nestjs/skills/nestjs-graphql/references/types-scalars.md +513 -0
  689. package/plugins/src/nestjs/skills/nestjs-rules/SKILL.md +536 -0
  690. package/plugins/src/nestjs/skills/typeorm-patterns/SKILL.md +275 -0
  691. package/plugins/src/nestjs/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  692. package/plugins/src/nestjs/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  693. package/plugins/src/nestjs/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  694. package/plugins/src/rails/.claude-plugin/plugin.json +77 -0
  695. package/plugins/src/rails/rules/rails-conventions.md +176 -0
  696. package/plugins/src/rails/skills/action-controller-best-practices/SKILL.md +374 -0
  697. package/plugins/src/rails/skills/action-view-best-practices/SKILL.md +335 -0
  698. package/plugins/src/rails/skills/active-record-model-best-practices/SKILL.md +166 -0
  699. package/plugins/src/rails/skills/jira-add-journey/SKILL.md +65 -0
  700. package/plugins/src/rails/skills/jira-create/SKILL.md +41 -0
  701. package/plugins/src/rails/skills/jira-evidence/SKILL.md +70 -0
  702. package/plugins/src/rails/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  703. package/plugins/src/rails/skills/jira-journey/SKILL.md +64 -0
  704. package/plugins/src/rails/skills/jira-verify/SKILL.md +29 -0
  705. package/plugins/src/rails/skills/plan-add-test-coverage/SKILL.md +45 -0
  706. package/plugins/src/rails/skills/plan-fix-linter-error/SKILL.md +45 -0
  707. package/plugins/src/rails/skills/plan-lower-code-complexity/SKILL.md +48 -0
  708. package/plugins/src/rails/skills/plan-reduce-max-lines/SKILL.md +46 -0
  709. package/plugins/src/rails/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  710. package/plugins/src/typescript/.claude-plugin/plugin.json +86 -0
  711. package/rails/copy-overwrite/.claude/settings.json +80 -0
  712. package/rails/create-only/.github/workflows/ci.yml +1 -1
  713. package/rails/deletions.json +11 -1
  714. package/scripts/build-plugins.sh +22 -0
  715. package/scripts/cleanup-amplify-branches.sh +150 -0
  716. package/scripts/cleanup-github-branches.sh +202 -0
  717. package/scripts/github-status-check.sh +301 -0
  718. package/scripts/install-claude-plugins.sh +45 -0
  719. package/scripts/lisa-commit-and-pr-local.sh +204 -0
  720. package/scripts/lisa-update-local.sh +158 -0
  721. package/scripts/update-node-version.ts +197 -0
  722. package/tsconfig/build.json +8 -0
  723. package/tsconfig/cdk.json +16 -0
  724. package/tsconfig/eslint.json +12 -0
  725. package/tsconfig/expo.json +18 -0
  726. package/tsconfig/nestjs.json +18 -0
  727. package/tsconfig/spec.json +7 -0
  728. package/{typescript/copy-overwrite/tsconfig.typescript.json → tsconfig/typescript.json} +1 -1
  729. package/typescript/copy-overwrite/eslint.config.ts +6 -20
  730. package/typescript/copy-overwrite/eslint.slow.config.ts +4 -73
  731. package/typescript/copy-overwrite/jest.config.ts +8 -12
  732. package/typescript/copy-overwrite/tsconfig.json +1 -1
  733. package/typescript/create-only/.github/workflows/ci.yml +1 -1
  734. package/typescript/deletions.json +18 -1
  735. package/typescript/merge/.claude/settings.json +29 -0
  736. package/typescript/package-lisa/package.lisa.json +1 -35
  737. package/all/copy-overwrite/.claude/hooks/check-tired-boss.sh +0 -61
  738. package/all/copy-overwrite/.claude/rules/lisa.md +0 -53
  739. package/all/copy-overwrite/.claude/settings.json +0 -321
  740. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  741. package/all/copy-overwrite/CLAUDE.md +0 -59
  742. package/all/copy-overwrite/HUMAN.md +0 -309
  743. package/eslint-plugin-code-organization/README.md +0 -149
  744. package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  745. package/eslint-plugin-code-organization/index.js +0 -28
  746. package/eslint-plugin-code-organization/package.json +0 -10
  747. package/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
  748. package/expo/copy-overwrite/eslint-plugin-component-structure/README.md +0 -234
  749. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +0 -89
  750. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +0 -201
  751. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +0 -294
  752. package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +0 -37
  753. package/expo/copy-overwrite/eslint-plugin-component-structure/package.json +0 -10
  754. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +0 -235
  755. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +0 -96
  756. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +0 -183
  757. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +0 -243
  758. package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +0 -192
  759. package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +0 -31
  760. package/expo/copy-overwrite/eslint-plugin-ui-standards/package.json +0 -10
  761. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +0 -56
  762. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +0 -60
  763. package/rails/copy-overwrite/CLAUDE.md +0 -56
  764. package/typescript/copy-overwrite/.claude/settings.json +0 -320
  765. package/typescript/copy-overwrite/eslint-plugin-code-organization/README.md +0 -149
  766. package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  767. package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +0 -28
  768. package/typescript/copy-overwrite/eslint-plugin-code-organization/package.json +0 -10
  769. package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
  770. package/typescript/copy-overwrite/eslint.base.ts +0 -429
  771. package/typescript/copy-overwrite/eslint.typescript.ts +0 -142
  772. package/typescript/copy-overwrite/jest.typescript.ts +0 -72
  773. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/agent-architect.md +0 -0
  774. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/architecture-specialist.md +0 -0
  775. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/debug-specialist.md +0 -0
  776. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/git-history-analyzer.md +0 -0
  777. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/hooks-expert.md +0 -0
  778. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/implementer.md +0 -0
  779. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/learner.md +0 -0
  780. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/performance-specialist.md +0 -0
  781. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/product-specialist.md +0 -0
  782. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/quality-specialist.md +0 -0
  783. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/security-specialist.md +0 -0
  784. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/skill-evaluator.md +0 -0
  785. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/slash-command-architect.md +0 -0
  786. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/test-specialist.md +0 -0
  787. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/verification-specialist.md +0 -0
  788. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/agents/web-search-researcher.md +0 -0
  789. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/debug-hook.sh +0 -0
  790. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/enforce-plan-rules.sh +0 -0
  791. /package/{typescript/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/format-on-edit.sh +0 -0
  792. /package/{typescript/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/lint-on-edit.sh +0 -0
  793. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/notify-ntfy.sh +0 -0
  794. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/setup-jira-cli.sh +0 -0
  795. /package/{typescript/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/sg-scan-on-edit.sh +0 -0
  796. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/sync-tasks.sh +0 -0
  797. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/ticket-sync-reminder.sh +0 -0
  798. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/track-plan-sessions.sh +0 -0
  799. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/hooks/verify-completion.sh +0 -0
  800. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk/rules}/README.md +0 -0
  801. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/rules/coding-philosophy.md +0 -0
  802. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/rules/verfication.md +0 -0
  803. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/agent-design-best-practices/SKILL.md +0 -0
  804. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/git-commit/SKILL.md +0 -0
  805. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/git-commit-and-submit-pr/SKILL.md +0 -0
  806. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -0
  807. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -0
  808. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/git-prune/SKILL.md +0 -0
  809. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/git-submit-pr/SKILL.md +0 -0
  810. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/jira-sync/SKILL.md +0 -0
  811. /package/{typescript/copy-overwrite/.claude → plugins/lisa-cdk}/skills/jsdoc-best-practices/SKILL.md +0 -0
  812. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/lisa-review-implementation/SKILL.md +0 -0
  813. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-add-test-coverage/SKILL.md +0 -0
  814. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-execute/SKILL.md +0 -0
  815. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-fix-linter-error/SKILL.md +0 -0
  816. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-local-code-review/SKILL.md +0 -0
  817. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-lower-code-complexity/SKILL.md +0 -0
  818. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-reduce-max-lines/SKILL.md +0 -0
  819. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -0
  820. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/pull-request-review/SKILL.md +0 -0
  821. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/security-zap-scan/SKILL.md +0 -0
  822. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/skill-creator/LICENSE.txt +0 -0
  823. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/skill-creator/SKILL.md +0 -0
  824. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/skill-creator/scripts/init_skill.py +0 -0
  825. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/skill-creator/scripts/package_skill.py +0 -0
  826. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/skill-creator/scripts/quick_validate.py +0 -0
  827. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/sonarqube-check/SKILL.md +0 -0
  828. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/sonarqube-fix/SKILL.md +0 -0
  829. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/tasks-load/SKILL.md +0 -0
  830. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk}/skills/tasks-sync/SKILL.md +0 -0
  831. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/agents/ops-specialist.md +0 -0
  832. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/rules/expo-verification.md +0 -0
  833. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/apollo-client/SKILL.md +0 -0
  834. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/apollo-client/references/mutation-patterns.md +0 -0
  835. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/atomic-design-gluestack/SKILL.md +0 -0
  836. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/atomic-design-gluestack/references/atomic-levels.md +0 -0
  837. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/atomic-design-gluestack/references/folder-structure.md +0 -0
  838. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/atomic-design-gluestack/references/gluestack-mapping.md +0 -0
  839. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +0 -0
  840. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/container-view-pattern/SKILL.md +0 -0
  841. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/container-view-pattern/references/examples.md +0 -0
  842. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/container-view-pattern/references/patterns.md +0 -0
  843. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/container-view-pattern/scripts/create_component.py +0 -0
  844. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/container-view-pattern/scripts/validate_component.py +0 -0
  845. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/cross-platform-compatibility/SKILL.md +0 -0
  846. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/cross-platform-compatibility/references/common-issues.md +0 -0
  847. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/cross-platform-compatibility/references/file-extensions.md +0 -0
  848. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/cross-platform-compatibility/references/platform-api.md +0 -0
  849. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +0 -0
  850. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/directory-structure/SKILL.md +0 -0
  851. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/directory-structure/scripts/validate_structure.py +0 -0
  852. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/expo-env-config/SKILL.md +0 -0
  853. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/expo-env-config/references/validation-patterns.md +0 -0
  854. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/expo-router-best-practices/SKILL.md +0 -0
  855. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/expo-router-best-practices/references/official-docs.md +0 -0
  856. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/expo-router-best-practices/scripts/generate-route.py +0 -0
  857. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/gluestack-nativewind/SKILL.md +0 -0
  858. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/gluestack-nativewind/references/color-tokens.md +0 -0
  859. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/gluestack-nativewind/references/component-mapping.md +0 -0
  860. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/gluestack-nativewind/references/spacing-scale.md +0 -0
  861. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/gluestack-nativewind/scripts/validate_styling.py +0 -0
  862. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/local-state/SKILL.md +0 -0
  863. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/local-state/references/async-storage.md +0 -0
  864. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/local-state/references/persistence-patterns.md +0 -0
  865. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/local-state/references/reactive-variables.md +0 -0
  866. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-browser-uat/SKILL.md +0 -0
  867. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-check-logs/SKILL.md +0 -0
  868. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-db-ops/SKILL.md +0 -0
  869. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-deploy/SKILL.md +0 -0
  870. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-monitor-errors/SKILL.md +0 -0
  871. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-performance/SKILL.md +0 -0
  872. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-run-local/SKILL.md +0 -0
  873. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/ops-verify-health/SKILL.md +0 -0
  874. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/owasp-zap/SKILL.md +0 -0
  875. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/playwright-selectors/SKILL.md +0 -0
  876. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-expo}/skills/security-zap-scan/SKILL.md +0 -0
  877. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/testing-library/SKILL.md +0 -0
  878. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/testing-library/references/async-patterns.md +0 -0
  879. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/testing-library/references/expo-router-testing.md +0 -0
  880. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/testing-library/references/mocking-patterns.md +0 -0
  881. /package/{expo/copy-overwrite/.claude → plugins/lisa-expo}/skills/testing-library/references/query-priority.md +0 -0
  882. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-graphql/SKILL.md +0 -0
  883. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-graphql/references/advanced-features.md +0 -0
  884. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-graphql/references/project-patterns.md +0 -0
  885. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-graphql/references/quick-start.md +0 -0
  886. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-graphql/references/resolvers-mutations.md +0 -0
  887. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-graphql/references/types-scalars.md +0 -0
  888. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/nestjs-rules/SKILL.md +0 -0
  889. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/typeorm-patterns/SKILL.md +0 -0
  890. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/typeorm-patterns/references/configuration-patterns.md +0 -0
  891. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/typeorm-patterns/references/entity-patterns.md +0 -0
  892. /package/{nestjs/copy-overwrite/.claude → plugins/lisa-nestjs}/skills/typeorm-patterns/references/observability-patterns.md +0 -0
  893. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/action-controller-best-practices/SKILL.md +0 -0
  894. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/action-view-best-practices/SKILL.md +0 -0
  895. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/active-record-model-best-practices/SKILL.md +0 -0
  896. /package/{all/copy-overwrite/.claude → plugins/lisa-rails}/skills/jira-create/SKILL.md +0 -0
  897. /package/{all/copy-overwrite/.claude → plugins/lisa-rails}/skills/jira-verify/SKILL.md +0 -0
  898. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/plan-add-test-coverage/SKILL.md +0 -0
  899. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/plan-fix-linter-error/SKILL.md +0 -0
  900. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/plan-lower-code-complexity/SKILL.md +0 -0
  901. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/plan-reduce-max-lines/SKILL.md +0 -0
  902. /package/{rails/copy-overwrite/.claude → plugins/lisa-rails}/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -0
  903. /package/{all/create-only/scripts → scripts}/setup-deploy-key.sh +0 -0
  904. /package/{typescript/copy-overwrite/tsconfig.base.json → tsconfig/base.json} +0 -0
@@ -0,0 +1,76 @@
1
+ #!/bin/bash
2
+ # This file is managed by Lisa.
3
+ # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
+
5
+ # Hook script to format files with Prettier after Claude edits them
6
+ # This script receives JSON input via stdin with tool information
7
+ # Reference: https://docs.claude.com/en/docs/claude-code/hooks
8
+
9
+ # Read the JSON input from stdin
10
+ JSON_INPUT=$(cat)
11
+
12
+ # Extract the file path from the tool_input
13
+ # The Edit tool input contains a "file_path" field in the tool_input object
14
+ FILE_PATH=$(echo "$JSON_INPUT" | grep -o '"tool_input":{[^}]*"file_path":"[^"]*"' | grep -o '"file_path":"[^"]*"' | cut -d'"' -f4)
15
+
16
+ # Check if we successfully extracted a file path
17
+ if [ -z "$FILE_PATH" ]; then
18
+ echo "⚠ Skipping Prettier: Could not extract file path from Edit tool input" >&2
19
+ exit 0 # Exit gracefully to not interrupt Claude's workflow
20
+ fi
21
+
22
+ # Check if the file exists
23
+ if [ ! -f "$FILE_PATH" ]; then
24
+ echo "⚠ Skipping Prettier: File does not exist: $FILE_PATH" >&2
25
+ exit 0 # Exit gracefully
26
+ fi
27
+
28
+ # Get the file extension
29
+ FILE_EXT="${FILE_PATH##*.}"
30
+
31
+ # Check if this is a TypeScript or JavaScript file that should be formatted
32
+ # Based on package.json format command: "prettier --write \"src/**/*.ts\" \"test/**/*.ts\""
33
+ case "$FILE_EXT" in
34
+ ts|tsx|js|jsx|json)
35
+ # File type is supported for formatting
36
+ ;;
37
+ *)
38
+ echo "ℹ Skipping Prettier: File type .$FILE_EXT is not configured for auto-formatting"
39
+ exit 0
40
+ ;;
41
+ esac
42
+
43
+ # Change to the project directory to ensure package manager commands work
44
+ cd "$CLAUDE_PROJECT_DIR" || exit 0
45
+
46
+ # Detect package manager based on lock file presence
47
+ detect_package_manager() {
48
+ if [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then
49
+ echo "bun"
50
+ elif [ -f "pnpm-lock.yaml" ]; then
51
+ echo "pnpm"
52
+ elif [ -f "yarn.lock" ]; then
53
+ echo "yarn"
54
+ elif [ -f "package-lock.json" ]; then
55
+ echo "npm"
56
+ else
57
+ echo "npm" # Default fallback
58
+ fi
59
+ }
60
+
61
+ PKG_MANAGER=$(detect_package_manager)
62
+
63
+ # Run Prettier on the specific file
64
+ echo "🎨 Running Prettier on: $FILE_PATH"
65
+ $PKG_MANAGER prettier --write "$FILE_PATH" 2>&1 | grep -v "run v" | grep -v "Done in"
66
+
67
+ # Check the exit status
68
+ if [ ${PIPESTATUS[0]} -eq 0 ]; then
69
+ echo "✓ Successfully formatted: $(basename "$FILE_PATH")"
70
+ else
71
+ echo "⚠ Prettier formatting failed for: $FILE_PATH" >&2
72
+ echo " You may need to run '$PKG_MANAGER run format' manually to fix formatting issues." >&2
73
+ fi
74
+
75
+ # Always exit successfully to not interrupt Claude's workflow
76
+ exit 0
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+ # This file is managed by Lisa.
3
+ # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
+
5
+ # Only run package installation when node_modules are missing.
6
+ # This covers remote environments, new worktrees, fresh clones, and CI.
7
+ if [ -d "node_modules" ]; then
8
+ exit 0
9
+ fi
10
+
11
+ # Detect package manager based on lock file presence
12
+ if [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then
13
+ bun install
14
+ elif [ -f "pnpm-lock.yaml" ]; then
15
+ pnpm install
16
+ elif [ -f "yarn.lock" ]; then
17
+ yarn install
18
+ elif [ -f "package-lock.json" ]; then
19
+ npm install
20
+ else
21
+ npm install
22
+ fi
23
+
24
+ # Install Gitleaks for secret detection (pre-commit hook)
25
+ echo "Installing Gitleaks for secret detection..."
26
+ GITLEAKS_VERSION="8.18.4"
27
+ curl -sSfL "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz" | tar -xz -C /usr/local/bin gitleaks
28
+ echo "Gitleaks installed: $(gitleaks version)"
29
+
30
+ # Install jira-cli for JIRA integration
31
+ # The tarball nests the binary at jira_VERSION_linux_x86_64/bin/jira,
32
+ # so we extract to a temp dir and copy the binary out.
33
+ echo "Installing jira-cli for JIRA integration..."
34
+ JIRA_CLI_VERSION="1.7.0"
35
+ JIRA_TMPDIR=$(mktemp -d)
36
+ curl -sSfL "https://github.com/ankitpokhrel/jira-cli/releases/download/v${JIRA_CLI_VERSION}/jira_${JIRA_CLI_VERSION}_linux_x86_64.tar.gz" \
37
+ | tar -xz -C "${JIRA_TMPDIR}"
38
+ cp "${JIRA_TMPDIR}/jira_${JIRA_CLI_VERSION}_linux_x86_64/bin/jira" /usr/local/bin/jira
39
+ chmod +x /usr/local/bin/jira
40
+ rm -rf "${JIRA_TMPDIR}"
41
+ echo "jira-cli installed: $(jira version)"
42
+
43
+ # Install Chromium for Lighthouse CI (pre-push hook)
44
+ # Playwright's bundled Chromium works with @lhci/cli
45
+ echo "Installing Chromium for Lighthouse CI..."
46
+ npx playwright install chromium
47
+
48
+ # Find and export CHROME_PATH for Lighthouse CI
49
+ # Use sort to ensure deterministic selection of the latest version
50
+ CHROME_PATH=$(find ~/.cache/ms-playwright -name "chrome" -type f 2>/dev/null | grep "chrome-linux" | sort | tail -n 1)
51
+ if [ -n "$CHROME_PATH" ]; then
52
+ # Append to ~/.bashrc for shell sessions (idempotent)
53
+ if ! grep -q "export CHROME_PATH=" ~/.bashrc 2>/dev/null; then
54
+ echo "export CHROME_PATH=\"$CHROME_PATH\"" >> ~/.bashrc
55
+ else
56
+ # Update existing CHROME_PATH in bashrc
57
+ sed -i "s|^export CHROME_PATH=.*|export CHROME_PATH=\"$CHROME_PATH\"|" ~/.bashrc
58
+ fi
59
+
60
+ export CHROME_PATH="$CHROME_PATH"
61
+ echo "Chromium installed at: $CHROME_PATH"
62
+ fi
63
+
64
+ exit 0
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+ # This file is managed by Lisa.
3
+ # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
+ # =============================================================================
5
+ # ESLint Lint-on-Edit Hook (PostToolUse - Write|Edit)
6
+ # =============================================================================
7
+ # Runs ESLint --fix with --quiet --cache on each edited TypeScript file.
8
+ # Part of the inline self-correction pipeline: prettier → ast-grep → eslint.
9
+ #
10
+ # Behavior:
11
+ # - Exit 0: lint passes or auto-fix resolved all errors
12
+ # - Exit 2: unfixable errors remain — blocks Claude so it fixes them immediately
13
+ #
14
+ # @see .claude/rules/verfication.md "Self-Correction Loop" section
15
+ # =============================================================================
16
+
17
+ # Extract file path from JSON input
18
+ FILE_PATH=$(cat | grep -o '"file_path":"[^"]*"' | head -1 | cut -d'"' -f4)
19
+
20
+ if [ -z "$FILE_PATH" ] || [ ! -f "$FILE_PATH" ]; then
21
+ exit 0
22
+ fi
23
+
24
+ # Check if file type is supported (TypeScript only)
25
+ case "${FILE_PATH##*.}" in
26
+ ts|tsx) ;;
27
+ *) exit 0 ;;
28
+ esac
29
+
30
+ # Validate project directory
31
+ if [ -z "${CLAUDE_PROJECT_DIR:-}" ]; then
32
+ exit 0
33
+ fi
34
+
35
+ # Check if file is in a source directory
36
+ RELATIVE_PATH="${FILE_PATH#$CLAUDE_PROJECT_DIR/}"
37
+ case "$RELATIVE_PATH" in
38
+ src/*|apps/*|libs/*|test/*|tests/*|features/*|components/*|hooks/*|screens/*|app/*|constants/*|utils/*|providers/*|stores/*) ;;
39
+ *) exit 0 ;;
40
+ esac
41
+
42
+ cd "$CLAUDE_PROJECT_DIR" || exit 0
43
+
44
+ # Detect package manager
45
+ if [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then
46
+ PKG_MANAGER="bun"
47
+ elif [ -f "pnpm-lock.yaml" ]; then
48
+ PKG_MANAGER="pnpm"
49
+ elif [ -f "yarn.lock" ]; then
50
+ PKG_MANAGER="yarn"
51
+ else
52
+ PKG_MANAGER="npm"
53
+ fi
54
+
55
+ # Run ESLint with --fix --quiet --cache on the specific file
56
+ # --quiet: suppress warnings, only show errors
57
+ # --cache: use ESLint cache for performance
58
+ echo "Running ESLint --fix on: $FILE_PATH"
59
+
60
+ # First pass: attempt auto-fix
61
+ OUTPUT=$($PKG_MANAGER eslint --fix --quiet --cache "$FILE_PATH" 2>&1)
62
+ FIX_EXIT=$?
63
+
64
+ if [ $FIX_EXIT -eq 0 ]; then
65
+ echo "ESLint: No errors in $(basename "$FILE_PATH")"
66
+ exit 0
67
+ fi
68
+
69
+ # Auto-fix resolved some issues but errors remain — re-run to get remaining errors
70
+ OUTPUT=$($PKG_MANAGER eslint --quiet --cache "$FILE_PATH" 2>&1)
71
+ LINT_EXIT=$?
72
+
73
+ if [ $LINT_EXIT -eq 0 ]; then
74
+ echo "ESLint: Auto-fixed all errors in $(basename "$FILE_PATH")"
75
+ exit 0
76
+ fi
77
+
78
+ # Unfixable errors remain — block with feedback
79
+ echo "ESLint found unfixable errors in: $FILE_PATH" >&2
80
+ echo "$OUTPUT" >&2
81
+ exit 2
@@ -0,0 +1,183 @@
1
+ #!/bin/bash
2
+ # This file is managed by Lisa.
3
+ # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
+ # =============================================================================
5
+ # ntfy.sh Notification Hook for Claude Code
6
+ # =============================================================================
7
+ # Sends desktop and mobile notifications via ntfy.sh when Claude needs
8
+ # attention or finishes a task.
9
+ #
10
+ # Setup:
11
+ # 1. Install ntfy app on mobile (iOS App Store / Android Play Store)
12
+ # 2. Subscribe to your unique topic in the app
13
+ # 3. Set NTFY_TOPIC environment variable (e.g., in ~/.bashrc or ~/.zshrc):
14
+ # export NTFY_TOPIC="my-claude-alerts-xyz123"
15
+ #
16
+ # @see https://ntfy.sh
17
+ # =============================================================================
18
+
19
+ # Read JSON input from stdin
20
+ INPUT=$(cat)
21
+
22
+ # Extract hook event name
23
+ HOOK_EVENT=$(echo "$INPUT" | grep -o '"hook_event_name"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
24
+
25
+ # Extract notification type (for Notification hooks)
26
+ NOTIFICATION_TYPE=$(echo "$INPUT" | grep -o '"notification_type"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
27
+
28
+ # Extract message if available
29
+ MESSAGE=$(echo "$INPUT" | grep -o '"message"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
30
+
31
+ # Extract session ID (first 8 chars for brevity)
32
+ FULL_SESSION_ID=$(echo "$INPUT" | grep -o '"session_id"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
33
+ SESSION_ID="${FULL_SESSION_ID:0:8}"
34
+
35
+ # Extract transcript path for task summary
36
+ TRANSCRIPT_PATH=$(echo "$INPUT" | grep -o '"transcript_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
37
+
38
+ # Determine source (Web vs Local)
39
+ if [ "$CLAUDE_CODE_REMOTE" = "true" ]; then
40
+ SOURCE="Web"
41
+ else
42
+ SOURCE="Local"
43
+ fi
44
+
45
+ # Get project name from current directory
46
+ PROJECT_NAME=$(basename "$CLAUDE_PROJECT_DIR" 2>/dev/null || basename "$(pwd)")
47
+
48
+ # Load NTFY_TOPIC from local config if not already set
49
+ if [ -z "$NTFY_TOPIC" ]; then
50
+ # Check for project-local config (gitignored)
51
+ if [ -f "$CLAUDE_PROJECT_DIR/.claude/env.local" ]; then
52
+ # shellcheck source=/dev/null
53
+ source "$CLAUDE_PROJECT_DIR/.claude/env.local"
54
+ fi
55
+ # Check for user-global config
56
+ if [ -z "$NTFY_TOPIC" ] && [ -f "$HOME/.claude/env.local" ]; then
57
+ # shellcheck source=/dev/null
58
+ source "$HOME/.claude/env.local"
59
+ fi
60
+ fi
61
+
62
+ # Exit silently if still not configured
63
+ if [ -z "$NTFY_TOPIC" ]; then
64
+ exit 0
65
+ fi
66
+
67
+ # Extract task summary from transcript (last assistant message, truncated)
68
+ TASK_SUMMARY=""
69
+ if [ -n "$TRANSCRIPT_PATH" ] && [ -f "$TRANSCRIPT_PATH" ]; then
70
+ # Get the last assistant message from the JSONL transcript
71
+ # The transcript contains lines with "type":"assistant" and "message" content
72
+ # Use awk for cross-platform compatibility (tac is not available on macOS)
73
+ LAST_ASSISTANT=$(awk '/"type"[[:space:]]*:[[:space:]]*"assistant"/{line=$0} END{if(line) print line}' "$TRANSCRIPT_PATH" 2>/dev/null)
74
+ if [ -n "$LAST_ASSISTANT" ]; then
75
+ # Extract the message content - look for text content in the message
76
+ # Format: {"message":{"content":[{"type":"text","text":"..."}]}}
77
+ # Use jq for robust JSON parsing when available, fallback to grep/sed
78
+ if command -v jq >/dev/null 2>&1; then
79
+ RAW_SUMMARY=$(echo "$LAST_ASSISTANT" | jq -r '.message.content[] | select(.type == "text") | .text' 2>/dev/null | head -1)
80
+ else
81
+ # Fallback: simple regex extraction (may fail on escaped quotes)
82
+ RAW_SUMMARY=$(echo "$LAST_ASSISTANT" | grep -o '"text"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*: *"//' | sed 's/"$//')
83
+ fi
84
+ if [ -n "$RAW_SUMMARY" ]; then
85
+ # Truncate to 100 chars and clean up newlines
86
+ TASK_SUMMARY=$(echo "$RAW_SUMMARY" | tr '\n' ' ' | cut -c1-100)
87
+ # Add ellipsis if truncated
88
+ if [ ${#RAW_SUMMARY} -gt 100 ]; then
89
+ TASK_SUMMARY="${TASK_SUMMARY}..."
90
+ fi
91
+ fi
92
+ fi
93
+ fi
94
+
95
+ # Build session info string (shown in body)
96
+ SESSION_INFO=""
97
+ if [ -n "$SESSION_ID" ]; then
98
+ SESSION_INFO="Session: $SESSION_ID"
99
+ fi
100
+
101
+ # Determine notification title and body based on hook type
102
+ case "$HOOK_EVENT" in
103
+ "Notification")
104
+ case "$NOTIFICATION_TYPE" in
105
+ "permission_prompt")
106
+ TITLE="Claude [$SOURCE] - Permission Required"
107
+ BODY="${MESSAGE:-Claude needs your permission to continue}"
108
+ if [ -n "$SESSION_INFO" ]; then
109
+ BODY="$SESSION_INFO
110
+ $BODY"
111
+ fi
112
+ PRIORITY="high"
113
+ TAGS="warning"
114
+ ;;
115
+ "idle_prompt")
116
+ TITLE="Claude [$SOURCE] - Waiting"
117
+ BODY="${MESSAGE:-Claude is waiting for your input}"
118
+ if [ -n "$SESSION_INFO" ]; then
119
+ BODY="$SESSION_INFO
120
+ $BODY"
121
+ fi
122
+ PRIORITY="default"
123
+ TAGS="hourglass"
124
+ ;;
125
+ *)
126
+ TITLE="Claude [$SOURCE] - Attention"
127
+ BODY="${MESSAGE:-Claude needs your attention}"
128
+ if [ -n "$SESSION_INFO" ]; then
129
+ BODY="$SESSION_INFO
130
+ $BODY"
131
+ fi
132
+ PRIORITY="default"
133
+ TAGS="bell"
134
+ ;;
135
+ esac
136
+ ;;
137
+ "Stop")
138
+ TITLE="Claude [$SOURCE] - Finished"
139
+ BODY="$PROJECT_NAME"
140
+ if [ -n "$SESSION_INFO" ]; then
141
+ BODY="$SESSION_INFO | $BODY"
142
+ fi
143
+ if [ -n "$TASK_SUMMARY" ]; then
144
+ BODY="$BODY
145
+ $TASK_SUMMARY"
146
+ fi
147
+ PRIORITY="default"
148
+ TAGS="white_check_mark"
149
+ ;;
150
+ "SubagentStop")
151
+ TITLE="Claude [$SOURCE] - Subagent Done"
152
+ BODY="$PROJECT_NAME"
153
+ if [ -n "$SESSION_INFO" ]; then
154
+ BODY="$SESSION_INFO | $BODY"
155
+ fi
156
+ if [ -n "$TASK_SUMMARY" ]; then
157
+ BODY="$BODY
158
+ $TASK_SUMMARY"
159
+ fi
160
+ PRIORITY="low"
161
+ TAGS="checkered_flag"
162
+ ;;
163
+ *)
164
+ TITLE="Claude [$SOURCE]"
165
+ BODY="${MESSAGE:-Event: $HOOK_EVENT}"
166
+ if [ -n "$SESSION_INFO" ]; then
167
+ BODY="$SESSION_INFO
168
+ $BODY"
169
+ fi
170
+ PRIORITY="default"
171
+ TAGS="robot"
172
+ ;;
173
+ esac
174
+
175
+ # Send notification via ntfy.sh
176
+ curl -s \
177
+ -H "Title: $TITLE" \
178
+ -H "Priority: $PRIORITY" \
179
+ -H "Tags: $TAGS" \
180
+ -d "$BODY" \
181
+ "https://ntfy.sh/$NTFY_TOPIC" > /dev/null 2>&1
182
+
183
+ exit 0
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env bash
2
+ ##
3
+ # Writes the JIRA CLI config file from environment variables.
4
+ # Runs on SessionStart so the config is available for every session.
5
+ #
6
+ # Required env vars (must be created in your Claude Code Web environment):
7
+ # JIRA_INSTALLATION - cloud or local
8
+ # JIRA_SERVER - Atlassian instance URL
9
+ # JIRA_LOGIN - login email
10
+ # JIRA_PROJECT - default project key
11
+ # JIRA_API_TOKEN - already expected by jira-cli natively
12
+ #
13
+ # Optional env vars:
14
+ # JIRA_BOARD - default board name
15
+ ##
16
+
17
+ set -euo pipefail
18
+
19
+ # Fix jira-cli installation if install-pkgs.sh failed to extract correctly.
20
+ # The tarball nests the binary at jira_VERSION_linux_x86_64/bin/jira,
21
+ # but install-pkgs.sh expects a top-level "jira" file.
22
+ if ! command -v jira &>/dev/null; then
23
+ JIRA_CLI_VERSION="1.7.0"
24
+ TMPDIR=$(mktemp -d)
25
+ curl -sSfL "https://github.com/ankitpokhrel/jira-cli/releases/download/v${JIRA_CLI_VERSION}/jira_${JIRA_CLI_VERSION}_linux_x86_64.tar.gz" \
26
+ | tar -xz -C "${TMPDIR}"
27
+ cp "${TMPDIR}/jira_${JIRA_CLI_VERSION}_linux_x86_64/bin/jira" /usr/local/bin/jira
28
+ chmod +x /usr/local/bin/jira
29
+ rm -rf "${TMPDIR}"
30
+ fi
31
+
32
+ CONFIG_DIR="${HOME}/.config/.jira"
33
+ CONFIG_FILE="${CONFIG_DIR}/.config.yml"
34
+
35
+ # Skip config write if required vars are missing
36
+ if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
37
+ exit 0
38
+ fi
39
+
40
+ mkdir -p "${CONFIG_DIR}"
41
+
42
+ cat > "${CONFIG_FILE}" << EOF
43
+ installation: ${JIRA_INSTALLATION:-cloud}
44
+ server: ${JIRA_SERVER}
45
+ login: ${JIRA_LOGIN}
46
+ project: ${JIRA_PROJECT:-}
47
+ board: "${JIRA_BOARD:-}"
48
+ auth_type: basic
49
+ epic:
50
+ name: Epic Name
51
+ link: Epic Link
52
+ EOF
@@ -0,0 +1,68 @@
1
+ #!/bin/bash
2
+ # This file is managed by Lisa.
3
+ # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
+
5
+ # Hook script to run ast-grep scan after Claude edits files
6
+ # This script receives JSON input via stdin with tool information
7
+ # Reference: https://docs.claude.com/en/docs/claude-code/hooks
8
+ # Note: This hook is BLOCKING - it returns non-zero exit codes so Claude must fix issues
9
+
10
+ # Extract file path from JSON input
11
+ FILE_PATH=$(cat | grep -o '"file_path":"[^"]*"' | head -1 | cut -d'"' -f4)
12
+
13
+ if [ -z "$FILE_PATH" ] || [ ! -f "$FILE_PATH" ]; then
14
+ exit 0
15
+ fi
16
+
17
+ # Check if file type is supported (TypeScript, JavaScript)
18
+ case "${FILE_PATH##*.}" in
19
+ ts|tsx|js|jsx|mjs|cjs) ;;
20
+ *) exit 0 ;;
21
+ esac
22
+
23
+ # Validate project directory
24
+ if [ -z "${CLAUDE_PROJECT_DIR:-}" ]; then
25
+ exit 0
26
+ fi
27
+
28
+ # Check if file is in a source directory
29
+ RELATIVE_PATH="${FILE_PATH#$CLAUDE_PROJECT_DIR/}"
30
+ case "$RELATIVE_PATH" in
31
+ src/*|apps/*|libs/*|test/*|tests/*|features/*|components/*|hooks/*|screens/*|app/*|constants/*|utils/*|providers/*|stores/*) ;;
32
+ *) exit 0 ;;
33
+ esac
34
+
35
+ cd "$CLAUDE_PROJECT_DIR" || exit 0
36
+
37
+ # Verify ast-grep configuration exists
38
+ if [ ! -f "sgconfig.yml" ]; then
39
+ exit 0
40
+ fi
41
+
42
+ # Verify rules are defined
43
+ RULE_COUNT=$(find ast-grep/rules -name "*.yml" -o -name "*.yaml" 2>/dev/null | grep -v ".gitkeep" | wc -l | tr -d ' ')
44
+ if [ "$RULE_COUNT" -eq 0 ]; then
45
+ exit 0
46
+ fi
47
+
48
+ # Detect package manager
49
+ if [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then
50
+ PKG_MANAGER="bun"
51
+ elif [ -f "pnpm-lock.yaml" ]; then
52
+ PKG_MANAGER="pnpm"
53
+ elif [ -f "yarn.lock" ]; then
54
+ PKG_MANAGER="yarn"
55
+ else
56
+ PKG_MANAGER="npm"
57
+ fi
58
+
59
+ # Run ast-grep scan
60
+ echo "Running ast-grep scan on: $FILE_PATH"
61
+ if OUTPUT=$($PKG_MANAGER run sg:scan "$FILE_PATH" 2>&1); then
62
+ echo "ast-grep: No issues found in $(basename "$FILE_PATH")"
63
+ exit 0
64
+ else
65
+ echo "ast-grep found issues in: $FILE_PATH" >&2
66
+ echo "$OUTPUT" >&2
67
+ exit 1
68
+ fi
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # sync-tasks.sh - Syncs Claude Code tasks to project directories
4
+ #
5
+ # This hook is triggered on PostToolUse for TaskCreate and TaskUpdate.
6
+ # It reads the task metadata to determine the project and syncs
7
+ # task JSON files to ./projects/{project}/tasks/{session-id}/
8
+ #
9
+ # This session-based structure preserves task history across /clear commands,
10
+ # preventing overwrites when new sessions create tasks with the same IDs.
11
+ #
12
+ # Input (via stdin): JSON with tool_name, tool_input, tool_response
13
+ #
14
+
15
+ # Temporarily disable this hook
16
+ exit 0
17
+
18
+ set -euo pipefail
19
+
20
+ # Read JSON input from stdin
21
+ INPUT=$(cat)
22
+
23
+ # Extract tool name
24
+ TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // empty')
25
+
26
+ # Only process TaskCreate and TaskUpdate
27
+ if [[ "$TOOL_NAME" != "TaskCreate" && "$TOOL_NAME" != "TaskUpdate" ]]; then
28
+ exit 0
29
+ fi
30
+
31
+ # Try to get project from multiple sources:
32
+ # 1. Task metadata (passed in tool_input)
33
+ # 2. .claude-active-project marker file
34
+
35
+ PROJECT=""
36
+
37
+ # Check tool_input metadata for project
38
+ PROJECT=$(echo "$INPUT" | jq -r '.tool_input.metadata.project // empty')
39
+
40
+ # If no project in metadata, check marker file
41
+ if [[ -z "$PROJECT" && -f ".claude-active-project" ]]; then
42
+ PROJECT=$(cat .claude-active-project | tr -d '[:space:]')
43
+ fi
44
+
45
+ # If still no project, skip syncing
46
+ if [[ -z "$PROJECT" ]]; then
47
+ exit 0
48
+ fi
49
+
50
+ # Validate project name (kebab-case, no path traversal)
51
+ if [[ ! "$PROJECT" =~ ^[a-z0-9-]+$ ]]; then
52
+ echo "Warning: Invalid project name '$PROJECT', skipping sync" >&2
53
+ exit 0
54
+ fi
55
+
56
+ # Get task ID
57
+ TASK_ID=""
58
+ if [[ "$TOOL_NAME" == "TaskCreate" ]]; then
59
+ # For TaskCreate, ID is in tool_response.task.id
60
+ TASK_ID=$(echo "$INPUT" | jq -r '.tool_response.task.id // empty')
61
+ elif [[ "$TOOL_NAME" == "TaskUpdate" ]]; then
62
+ # For TaskUpdate, ID is in tool_input
63
+ TASK_ID=$(echo "$INPUT" | jq -r '.tool_input.taskId // empty')
64
+ fi
65
+
66
+ if [[ -z "$TASK_ID" ]]; then
67
+ exit 0
68
+ fi
69
+
70
+ # Find the task file in ~/.claude/tasks/
71
+ # Tasks are stored in ~/.claude/tasks/{session-uuid}/{id}.json
72
+ CLAUDE_TASKS_DIR="${HOME}/.claude/tasks"
73
+ TASK_FILE=""
74
+
75
+ # Get session ID from hook input (preferred - 100% accurate)
76
+ SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // empty')
77
+
78
+ if [[ -n "$SESSION_ID" && -f "${CLAUDE_TASKS_DIR}/${SESSION_ID}/${TASK_ID}.json" ]]; then
79
+ # Use session ID directly - guaranteed correct session
80
+ TASK_FILE="${CLAUDE_TASKS_DIR}/${SESSION_ID}/${TASK_ID}.json"
81
+ else
82
+ # Fallback: find most recently modified task file with this ID
83
+ # This handles edge cases where session_id isn't available
84
+ TASK_FILE=$(find "$CLAUDE_TASKS_DIR" -name "${TASK_ID}.json" -exec stat -f '%m %N' {} \; 2>/dev/null | sort -rn | head -1 | cut -d' ' -f2-)
85
+ fi
86
+
87
+ if [[ -z "$TASK_FILE" || ! -f "$TASK_FILE" ]]; then
88
+ exit 0
89
+ fi
90
+
91
+ # Require session ID for proper history tracking
92
+ if [[ -z "$SESSION_ID" ]]; then
93
+ echo "Warning: No session_id available, skipping sync" >&2
94
+ exit 0
95
+ fi
96
+
97
+ # Ensure project tasks directory exists (includes session ID for history preservation)
98
+ PROJECT_TASKS_DIR="./projects/${PROJECT}/tasks/${SESSION_ID}"
99
+ mkdir -p "$PROJECT_TASKS_DIR"
100
+
101
+ # Copy task file to project directory
102
+ cp "$TASK_FILE" "${PROJECT_TASKS_DIR}/${TASK_ID}.json"
103
+
104
+ # Optionally stage the file for git (non-blocking)
105
+ git add "${PROJECT_TASKS_DIR}/${TASK_ID}.json" 2>/dev/null || true
106
+
107
+ exit 0
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env bash
2
+ # Ticket sync reminder hook
3
+ # Runs on TaskUpdate to remind about updating linked tickets
4
+ # Non-blocking (exit 0) - this is a reminder, not enforcement
5
+
6
+ # Temporarily disable this hook
7
+ exit 0
8
+
9
+ PLANS_DIR="${CLAUDE_PROJECT_DIR}/plans"
10
+
11
+ # Find the active plan file (most recently modified .md in plans/)
12
+ ACTIVE_PLAN=$(find "$PLANS_DIR" -maxdepth 1 -name "*.md" -type f 2>/dev/null | head -1)
13
+
14
+ if [ -z "$ACTIVE_PLAN" ]; then
15
+ exit 0
16
+ fi
17
+
18
+ # Check if the plan contains a ticket URL (JIRA, Linear, GitHub Issues)
19
+ if grep -qiE "(https?://.*(atlassian|jira|linear|github\.com/.*/issues))" "$ACTIVE_PLAN" 2>/dev/null; then
20
+ echo "REMINDER: This plan is linked to a ticket. Consider running /jira:sync to update the ticket with current progress."
21
+ fi
22
+
23
+ exit 0