@codyswann/lisa 1.48.0 → 1.50.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 (863) hide show
  1. package/.claude-plugin/marketplace.json +48 -0
  2. package/all/deletions.json +5 -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/merge/.claude/settings.json +29 -0
  9. package/cdk/package-lisa/package.lisa.json +1 -0
  10. package/dist/configs/eslint/base.d.ts +1491 -0
  11. package/dist/configs/eslint/base.d.ts.map +1 -0
  12. package/dist/configs/eslint/base.js +386 -0
  13. package/dist/configs/eslint/base.js.map +1 -0
  14. package/dist/configs/eslint/cdk.d.ts +32 -0
  15. package/dist/configs/eslint/cdk.d.ts.map +1 -0
  16. package/dist/configs/eslint/cdk.js +127 -0
  17. package/dist/configs/eslint/cdk.js.map +1 -0
  18. package/dist/configs/eslint/expo.d.ts +16 -0
  19. package/dist/configs/eslint/expo.d.ts.map +1 -0
  20. package/dist/configs/eslint/expo.js +264 -0
  21. package/dist/configs/eslint/expo.js.map +1 -0
  22. package/dist/configs/eslint/index.d.ts +18 -0
  23. package/dist/configs/eslint/index.d.ts.map +1 -0
  24. package/dist/configs/eslint/index.js +18 -0
  25. package/dist/configs/eslint/index.js.map +1 -0
  26. package/dist/configs/eslint/nestjs.d.ts +32 -0
  27. package/dist/configs/eslint/nestjs.d.ts.map +1 -0
  28. package/dist/configs/eslint/nestjs.js +128 -0
  29. package/dist/configs/eslint/nestjs.js.map +1 -0
  30. package/dist/configs/eslint/slow.d.ts +80 -0
  31. package/dist/configs/eslint/slow.d.ts.map +1 -0
  32. package/dist/configs/eslint/slow.js +83 -0
  33. package/dist/configs/eslint/slow.js.map +1 -0
  34. package/dist/configs/eslint/typescript.d.ts +19 -0
  35. package/dist/configs/eslint/typescript.d.ts.map +1 -0
  36. package/dist/configs/eslint/typescript.js +81 -0
  37. package/dist/configs/eslint/typescript.js.map +1 -0
  38. package/{typescript/copy-overwrite/jest.base.ts → dist/configs/jest/base.d.ts} +9 -69
  39. package/dist/configs/jest/base.d.ts.map +1 -0
  40. package/dist/configs/jest/base.js +83 -0
  41. package/dist/configs/jest/base.js.map +1 -0
  42. package/dist/configs/jest/cdk.d.ts +35 -0
  43. package/dist/configs/jest/cdk.d.ts.map +1 -0
  44. package/dist/configs/jest/cdk.js +30 -0
  45. package/dist/configs/jest/cdk.js.map +1 -0
  46. package/dist/configs/jest/expo.d.ts +56 -0
  47. package/dist/configs/jest/expo.d.ts.map +1 -0
  48. package/dist/configs/jest/expo.js +60 -0
  49. package/dist/configs/jest/expo.js.map +1 -0
  50. package/dist/configs/jest/index.d.ts +14 -0
  51. package/dist/configs/jest/index.d.ts.map +1 -0
  52. package/dist/configs/jest/index.js +14 -0
  53. package/dist/configs/jest/index.js.map +1 -0
  54. package/dist/configs/jest/nestjs.d.ts +35 -0
  55. package/dist/configs/jest/nestjs.d.ts.map +1 -0
  56. package/dist/configs/jest/nestjs.js +47 -0
  57. package/dist/configs/jest/nestjs.js.map +1 -0
  58. package/dist/configs/jest/typescript.d.ts +31 -0
  59. package/dist/configs/jest/typescript.d.ts.map +1 -0
  60. package/dist/configs/jest/typescript.js +34 -0
  61. package/dist/configs/jest/typescript.js.map +1 -0
  62. package/expo/copy-overwrite/eslint.config.ts +5 -20
  63. package/expo/copy-overwrite/eslint.slow.config.ts +4 -90
  64. package/expo/copy-overwrite/jest.config.ts +14 -12
  65. package/expo/copy-overwrite/tsconfig.json +1 -1
  66. package/expo/merge/.claude/settings.json +29 -0
  67. package/expo/package-lisa/package.lisa.json +1 -10
  68. package/nestjs/copy-overwrite/eslint.config.ts +5 -20
  69. package/nestjs/copy-overwrite/eslint.slow.config.ts +4 -89
  70. package/nestjs/copy-overwrite/jest.config.ts +14 -12
  71. package/nestjs/copy-overwrite/tsconfig.json +1 -1
  72. package/nestjs/merge/.claude/settings.json +29 -0
  73. package/nestjs/package-lisa/package.lisa.json +1 -0
  74. package/package.json +82 -43
  75. package/plugins/lisa-cdk/.claude-plugin/plugin.json +86 -0
  76. package/plugins/lisa-cdk/agents/agent-architect.md +310 -0
  77. package/plugins/lisa-cdk/agents/architecture-specialist.md +53 -0
  78. package/plugins/lisa-cdk/agents/debug-specialist.md +204 -0
  79. package/plugins/lisa-cdk/agents/git-history-analyzer.md +183 -0
  80. package/plugins/lisa-cdk/agents/hooks-expert.md +74 -0
  81. package/plugins/lisa-cdk/agents/implementer.md +54 -0
  82. package/plugins/lisa-cdk/agents/learner.md +44 -0
  83. package/plugins/lisa-cdk/agents/performance-specialist.md +95 -0
  84. package/plugins/lisa-cdk/agents/product-specialist.md +72 -0
  85. package/plugins/lisa-cdk/agents/quality-specialist.md +55 -0
  86. package/plugins/lisa-cdk/agents/security-specialist.md +58 -0
  87. package/plugins/lisa-cdk/agents/skill-evaluator.md +246 -0
  88. package/plugins/lisa-cdk/agents/slash-command-architect.md +87 -0
  89. package/plugins/lisa-cdk/agents/test-specialist.md +64 -0
  90. package/plugins/lisa-cdk/agents/verification-specialist.md +189 -0
  91. package/plugins/lisa-cdk/agents/web-search-researcher.md +112 -0
  92. package/plugins/lisa-cdk/commands/git-commit-and-submit-pr.md +7 -0
  93. package/plugins/lisa-cdk/commands/git-commit-submit-pr-and-verify.md +7 -0
  94. package/plugins/lisa-cdk/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  95. package/plugins/lisa-cdk/commands/git-commit.md +7 -0
  96. package/plugins/lisa-cdk/commands/git-prune.md +6 -0
  97. package/plugins/lisa-cdk/commands/git-submit-pr.md +7 -0
  98. package/plugins/lisa-cdk/commands/jira-add-journey.md +7 -0
  99. package/plugins/lisa-cdk/commands/jira-create.md +7 -0
  100. package/plugins/lisa-cdk/commands/jira-evidence.md +7 -0
  101. package/plugins/lisa-cdk/commands/jira-fix.md +7 -0
  102. package/plugins/lisa-cdk/commands/jira-implement.md +7 -0
  103. package/plugins/lisa-cdk/commands/jira-journey.md +7 -0
  104. package/plugins/lisa-cdk/commands/jira-sync.md +7 -0
  105. package/plugins/lisa-cdk/commands/jira-verify.md +7 -0
  106. package/plugins/lisa-cdk/commands/lisa-review-implementation.md +7 -0
  107. package/plugins/lisa-cdk/commands/plan-add-test-coverage.md +7 -0
  108. package/plugins/lisa-cdk/commands/plan-create.md +6 -0
  109. package/plugins/lisa-cdk/commands/plan-execute.md +7 -0
  110. package/plugins/lisa-cdk/commands/plan-fix-linter-error.md +7 -0
  111. package/plugins/lisa-cdk/commands/plan-local-code-review.md +6 -0
  112. package/plugins/lisa-cdk/commands/plan-lower-code-complexity.md +6 -0
  113. package/plugins/lisa-cdk/commands/plan-reduce-max-lines-per-function.md +7 -0
  114. package/plugins/lisa-cdk/commands/plan-reduce-max-lines.md +7 -0
  115. package/plugins/lisa-cdk/commands/pull-request-review.md +7 -0
  116. package/plugins/lisa-cdk/commands/security-zap-scan.md +6 -0
  117. package/plugins/lisa-cdk/commands/sonarqube-check.md +6 -0
  118. package/plugins/lisa-cdk/commands/sonarqube-fix.md +6 -0
  119. package/plugins/lisa-cdk/commands/tasks-load.md +7 -0
  120. package/plugins/lisa-cdk/commands/tasks-sync.md +7 -0
  121. package/plugins/lisa-cdk/hooks/debug-hook.sh +47 -0
  122. package/plugins/lisa-cdk/hooks/enforce-plan-rules.sh +15 -0
  123. package/plugins/lisa-cdk/hooks/format-on-edit.sh +76 -0
  124. package/plugins/lisa-cdk/hooks/install-pkgs.sh +64 -0
  125. package/plugins/lisa-cdk/hooks/lint-on-edit.sh +81 -0
  126. package/plugins/lisa-cdk/hooks/notify-ntfy.sh +183 -0
  127. package/plugins/lisa-cdk/hooks/setup-jira-cli.sh +52 -0
  128. package/plugins/lisa-cdk/hooks/sg-scan-on-edit.sh +68 -0
  129. package/plugins/lisa-cdk/hooks/sync-tasks.sh +107 -0
  130. package/plugins/lisa-cdk/hooks/ticket-sync-reminder.sh +23 -0
  131. package/plugins/lisa-cdk/hooks/track-plan-sessions.sh +164 -0
  132. package/plugins/lisa-cdk/hooks/verify-completion.sh +77 -0
  133. package/plugins/lisa-cdk/rules/coding-philosophy.md +428 -0
  134. package/plugins/lisa-cdk/rules/lisa.md +37 -0
  135. package/plugins/lisa-cdk/rules/verfication.md +596 -0
  136. package/plugins/lisa-cdk/skills/agent-design-best-practices/SKILL.md +219 -0
  137. package/plugins/lisa-cdk/skills/git-commit/SKILL.md +48 -0
  138. package/plugins/lisa-cdk/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  139. package/plugins/lisa-cdk/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  140. package/plugins/lisa-cdk/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  141. package/plugins/lisa-cdk/skills/git-prune/SKILL.md +35 -0
  142. package/plugins/lisa-cdk/skills/git-submit-pr/SKILL.md +44 -0
  143. package/plugins/lisa-cdk/skills/jira-add-journey/SKILL.md +120 -0
  144. package/plugins/lisa-cdk/skills/jira-create/SKILL.md +95 -0
  145. package/plugins/lisa-cdk/skills/jira-evidence/SKILL.md +73 -0
  146. package/plugins/lisa-cdk/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  147. package/plugins/lisa-cdk/skills/jira-fix/SKILL.md +16 -0
  148. package/plugins/lisa-cdk/skills/jira-implement/SKILL.md +18 -0
  149. package/plugins/lisa-cdk/skills/jira-journey/SKILL.md +125 -0
  150. package/plugins/lisa-cdk/skills/jira-journey/scripts/generate-templates.py +233 -0
  151. package/plugins/lisa-cdk/skills/jira-journey/scripts/parse-plan.py +368 -0
  152. package/plugins/lisa-cdk/skills/jira-sync/SKILL.md +63 -0
  153. package/plugins/lisa-cdk/skills/jira-verify/SKILL.md +48 -0
  154. package/plugins/lisa-cdk/skills/jsdoc-best-practices/SKILL.md +432 -0
  155. package/plugins/lisa-cdk/skills/lisa-review-implementation/SKILL.md +209 -0
  156. package/plugins/lisa-cdk/skills/plan-add-test-coverage/SKILL.md +44 -0
  157. package/plugins/lisa-cdk/skills/plan-execute/SKILL.md +89 -0
  158. package/plugins/lisa-cdk/skills/plan-fix-linter-error/SKILL.md +45 -0
  159. package/plugins/lisa-cdk/skills/plan-local-code-review/SKILL.md +88 -0
  160. package/plugins/lisa-cdk/skills/plan-lower-code-complexity/SKILL.md +44 -0
  161. package/plugins/lisa-cdk/skills/plan-reduce-max-lines/SKILL.md +45 -0
  162. package/plugins/lisa-cdk/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  163. package/plugins/lisa-cdk/skills/pull-request-review/SKILL.md +68 -0
  164. package/plugins/lisa-cdk/skills/security-zap-scan/SKILL.md +33 -0
  165. package/plugins/lisa-cdk/skills/skill-creator/LICENSE.txt +202 -0
  166. package/plugins/lisa-cdk/skills/skill-creator/SKILL.md +210 -0
  167. package/plugins/lisa-cdk/skills/skill-creator/scripts/init_skill.py +305 -0
  168. package/plugins/lisa-cdk/skills/skill-creator/scripts/package_skill.py +112 -0
  169. package/plugins/lisa-cdk/skills/skill-creator/scripts/quick_validate.py +67 -0
  170. package/plugins/lisa-cdk/skills/sonarqube-check/SKILL.md +11 -0
  171. package/plugins/lisa-cdk/skills/sonarqube-fix/SKILL.md +8 -0
  172. package/plugins/lisa-cdk/skills/tasks-load/SKILL.md +88 -0
  173. package/plugins/lisa-cdk/skills/tasks-sync/SKILL.md +108 -0
  174. package/plugins/lisa-expo/.claude-plugin/plugin.json +86 -0
  175. package/plugins/lisa-expo/agents/agent-architect.md +310 -0
  176. package/plugins/lisa-expo/agents/architecture-specialist.md +53 -0
  177. package/plugins/lisa-expo/agents/debug-specialist.md +204 -0
  178. package/plugins/lisa-expo/agents/git-history-analyzer.md +183 -0
  179. package/plugins/lisa-expo/agents/hooks-expert.md +74 -0
  180. package/plugins/lisa-expo/agents/implementer.md +54 -0
  181. package/plugins/lisa-expo/agents/learner.md +44 -0
  182. package/plugins/lisa-expo/agents/ops-specialist.md +124 -0
  183. package/plugins/lisa-expo/agents/performance-specialist.md +95 -0
  184. package/plugins/lisa-expo/agents/product-specialist.md +72 -0
  185. package/plugins/lisa-expo/agents/quality-specialist.md +55 -0
  186. package/plugins/lisa-expo/agents/security-specialist.md +58 -0
  187. package/plugins/lisa-expo/agents/skill-evaluator.md +246 -0
  188. package/plugins/lisa-expo/agents/slash-command-architect.md +87 -0
  189. package/plugins/lisa-expo/agents/test-specialist.md +64 -0
  190. package/plugins/lisa-expo/agents/verification-specialist.md +189 -0
  191. package/plugins/lisa-expo/agents/web-search-researcher.md +112 -0
  192. package/plugins/lisa-expo/commands/git-commit-and-submit-pr.md +7 -0
  193. package/plugins/lisa-expo/commands/git-commit-submit-pr-and-verify.md +7 -0
  194. package/plugins/lisa-expo/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  195. package/plugins/lisa-expo/commands/git-commit.md +7 -0
  196. package/plugins/lisa-expo/commands/git-prune.md +6 -0
  197. package/plugins/lisa-expo/commands/git-submit-pr.md +7 -0
  198. package/plugins/lisa-expo/commands/jira-add-journey.md +7 -0
  199. package/plugins/lisa-expo/commands/jira-create.md +7 -0
  200. package/plugins/lisa-expo/commands/jira-evidence.md +7 -0
  201. package/plugins/lisa-expo/commands/jira-fix.md +7 -0
  202. package/plugins/lisa-expo/commands/jira-implement.md +7 -0
  203. package/plugins/lisa-expo/commands/jira-journey.md +7 -0
  204. package/plugins/lisa-expo/commands/jira-sync.md +7 -0
  205. package/plugins/lisa-expo/commands/jira-verify.md +7 -0
  206. package/plugins/lisa-expo/commands/lisa-review-implementation.md +7 -0
  207. package/plugins/lisa-expo/commands/plan-add-test-coverage.md +7 -0
  208. package/plugins/lisa-expo/commands/plan-create.md +6 -0
  209. package/plugins/lisa-expo/commands/plan-execute.md +7 -0
  210. package/plugins/lisa-expo/commands/plan-fix-linter-error.md +7 -0
  211. package/plugins/lisa-expo/commands/plan-local-code-review.md +6 -0
  212. package/plugins/lisa-expo/commands/plan-lower-code-complexity.md +6 -0
  213. package/plugins/lisa-expo/commands/plan-reduce-max-lines-per-function.md +7 -0
  214. package/plugins/lisa-expo/commands/plan-reduce-max-lines.md +7 -0
  215. package/plugins/lisa-expo/commands/pull-request-review.md +7 -0
  216. package/plugins/lisa-expo/commands/security-zap-scan.md +6 -0
  217. package/plugins/lisa-expo/commands/sonarqube-check.md +6 -0
  218. package/plugins/lisa-expo/commands/sonarqube-fix.md +6 -0
  219. package/plugins/lisa-expo/commands/tasks-load.md +7 -0
  220. package/plugins/lisa-expo/commands/tasks-sync.md +7 -0
  221. package/plugins/lisa-expo/hooks/debug-hook.sh +47 -0
  222. package/plugins/lisa-expo/hooks/enforce-plan-rules.sh +15 -0
  223. package/plugins/lisa-expo/hooks/format-on-edit.sh +76 -0
  224. package/plugins/lisa-expo/hooks/install-pkgs.sh +64 -0
  225. package/plugins/lisa-expo/hooks/lint-on-edit.sh +81 -0
  226. package/plugins/lisa-expo/hooks/notify-ntfy.sh +183 -0
  227. package/plugins/lisa-expo/hooks/setup-jira-cli.sh +52 -0
  228. package/plugins/lisa-expo/hooks/sg-scan-on-edit.sh +68 -0
  229. package/plugins/lisa-expo/hooks/sync-tasks.sh +107 -0
  230. package/plugins/lisa-expo/hooks/ticket-sync-reminder.sh +23 -0
  231. package/plugins/lisa-expo/hooks/track-plan-sessions.sh +164 -0
  232. package/plugins/lisa-expo/hooks/verify-completion.sh +77 -0
  233. package/plugins/lisa-expo/rules/README.md +240 -0
  234. package/plugins/lisa-expo/rules/coding-philosophy.md +428 -0
  235. package/plugins/lisa-expo/rules/expo-verification.md +261 -0
  236. package/plugins/lisa-expo/rules/lisa.md +37 -0
  237. package/plugins/lisa-expo/rules/verfication.md +596 -0
  238. package/plugins/lisa-expo/skills/agent-design-best-practices/SKILL.md +219 -0
  239. package/plugins/lisa-expo/skills/apollo-client/SKILL.md +238 -0
  240. package/plugins/lisa-expo/skills/apollo-client/references/mutation-patterns.md +360 -0
  241. package/plugins/lisa-expo/skills/atomic-design-gluestack/SKILL.md +360 -0
  242. package/plugins/lisa-expo/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  243. package/plugins/lisa-expo/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  244. package/plugins/lisa-expo/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  245. package/plugins/lisa-expo/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  246. package/plugins/lisa-expo/skills/container-view-pattern/SKILL.md +299 -0
  247. package/plugins/lisa-expo/skills/container-view-pattern/references/examples.md +749 -0
  248. package/plugins/lisa-expo/skills/container-view-pattern/references/patterns.md +318 -0
  249. package/plugins/lisa-expo/skills/container-view-pattern/scripts/create_component.py +200 -0
  250. package/plugins/lisa-expo/skills/container-view-pattern/scripts/validate_component.py +209 -0
  251. package/plugins/lisa-expo/skills/cross-platform-compatibility/SKILL.md +268 -0
  252. package/plugins/lisa-expo/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  253. package/plugins/lisa-expo/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  254. package/plugins/lisa-expo/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  255. package/plugins/lisa-expo/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  256. package/plugins/lisa-expo/skills/directory-structure/SKILL.md +202 -0
  257. package/plugins/lisa-expo/skills/directory-structure/scripts/validate_structure.py +445 -0
  258. package/plugins/lisa-expo/skills/expo-env-config/SKILL.md +309 -0
  259. package/plugins/lisa-expo/skills/expo-env-config/references/validation-patterns.md +417 -0
  260. package/plugins/lisa-expo/skills/expo-router-best-practices/SKILL.md +431 -0
  261. package/plugins/lisa-expo/skills/expo-router-best-practices/references/official-docs.md +290 -0
  262. package/plugins/lisa-expo/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  263. package/plugins/lisa-expo/skills/git-commit/SKILL.md +48 -0
  264. package/plugins/lisa-expo/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  265. package/plugins/lisa-expo/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  266. package/plugins/lisa-expo/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  267. package/plugins/lisa-expo/skills/git-prune/SKILL.md +35 -0
  268. package/plugins/lisa-expo/skills/git-submit-pr/SKILL.md +44 -0
  269. package/plugins/lisa-expo/skills/gluestack-nativewind/SKILL.md +411 -0
  270. package/plugins/lisa-expo/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  271. package/plugins/lisa-expo/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  272. package/plugins/lisa-expo/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  273. package/plugins/lisa-expo/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  274. package/plugins/lisa-expo/skills/jira-add-journey/SKILL.md +126 -0
  275. package/plugins/lisa-expo/skills/jira-create/SKILL.md +101 -0
  276. package/plugins/lisa-expo/skills/jira-evidence/SKILL.md +78 -0
  277. package/plugins/lisa-expo/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  278. package/plugins/lisa-expo/skills/jira-fix/SKILL.md +16 -0
  279. package/plugins/lisa-expo/skills/jira-implement/SKILL.md +18 -0
  280. package/plugins/lisa-expo/skills/jira-journey/SKILL.md +190 -0
  281. package/plugins/lisa-expo/skills/jira-journey/scripts/generate-templates.py +281 -0
  282. package/plugins/lisa-expo/skills/jira-journey/scripts/parse-plan.py +368 -0
  283. package/plugins/lisa-expo/skills/jira-sync/SKILL.md +63 -0
  284. package/plugins/lisa-expo/skills/jira-verify/SKILL.md +47 -0
  285. package/plugins/lisa-expo/skills/jsdoc-best-practices/SKILL.md +432 -0
  286. package/plugins/lisa-expo/skills/lisa-review-implementation/SKILL.md +209 -0
  287. package/plugins/lisa-expo/skills/local-state/SKILL.md +362 -0
  288. package/plugins/lisa-expo/skills/local-state/references/async-storage.md +505 -0
  289. package/plugins/lisa-expo/skills/local-state/references/persistence-patterns.md +711 -0
  290. package/plugins/lisa-expo/skills/local-state/references/reactive-variables.md +446 -0
  291. package/plugins/lisa-expo/skills/ops-browser-uat/SKILL.md +124 -0
  292. package/plugins/lisa-expo/skills/ops-check-logs/SKILL.md +211 -0
  293. package/plugins/lisa-expo/skills/ops-db-ops/SKILL.md +119 -0
  294. package/plugins/lisa-expo/skills/ops-deploy/SKILL.md +119 -0
  295. package/plugins/lisa-expo/skills/ops-monitor-errors/SKILL.md +99 -0
  296. package/plugins/lisa-expo/skills/ops-performance/SKILL.md +165 -0
  297. package/plugins/lisa-expo/skills/ops-run-local/SKILL.md +166 -0
  298. package/plugins/lisa-expo/skills/ops-verify-health/SKILL.md +101 -0
  299. package/plugins/lisa-expo/skills/owasp-zap/SKILL.md +56 -0
  300. package/plugins/lisa-expo/skills/plan-add-test-coverage/SKILL.md +44 -0
  301. package/plugins/lisa-expo/skills/plan-execute/SKILL.md +89 -0
  302. package/plugins/lisa-expo/skills/plan-fix-linter-error/SKILL.md +45 -0
  303. package/plugins/lisa-expo/skills/plan-local-code-review/SKILL.md +88 -0
  304. package/plugins/lisa-expo/skills/plan-lower-code-complexity/SKILL.md +44 -0
  305. package/plugins/lisa-expo/skills/plan-reduce-max-lines/SKILL.md +45 -0
  306. package/plugins/lisa-expo/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  307. package/plugins/lisa-expo/skills/playwright-selectors/SKILL.md +223 -0
  308. package/plugins/lisa-expo/skills/pull-request-review/SKILL.md +68 -0
  309. package/plugins/lisa-expo/skills/security-zap-scan/SKILL.md +33 -0
  310. package/plugins/lisa-expo/skills/skill-creator/LICENSE.txt +202 -0
  311. package/plugins/lisa-expo/skills/skill-creator/SKILL.md +210 -0
  312. package/plugins/lisa-expo/skills/skill-creator/scripts/init_skill.py +305 -0
  313. package/plugins/lisa-expo/skills/skill-creator/scripts/package_skill.py +112 -0
  314. package/plugins/lisa-expo/skills/skill-creator/scripts/quick_validate.py +67 -0
  315. package/plugins/lisa-expo/skills/sonarqube-check/SKILL.md +11 -0
  316. package/plugins/lisa-expo/skills/sonarqube-fix/SKILL.md +8 -0
  317. package/plugins/lisa-expo/skills/tasks-load/SKILL.md +88 -0
  318. package/plugins/lisa-expo/skills/tasks-sync/SKILL.md +108 -0
  319. package/plugins/lisa-expo/skills/testing-library/SKILL.md +314 -0
  320. package/plugins/lisa-expo/skills/testing-library/references/async-patterns.md +420 -0
  321. package/plugins/lisa-expo/skills/testing-library/references/expo-router-testing.md +556 -0
  322. package/plugins/lisa-expo/skills/testing-library/references/mocking-patterns.md +590 -0
  323. package/plugins/lisa-expo/skills/testing-library/references/query-priority.md +291 -0
  324. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +86 -0
  325. package/plugins/lisa-nestjs/agents/agent-architect.md +310 -0
  326. package/plugins/lisa-nestjs/agents/architecture-specialist.md +53 -0
  327. package/plugins/lisa-nestjs/agents/debug-specialist.md +204 -0
  328. package/plugins/lisa-nestjs/agents/git-history-analyzer.md +183 -0
  329. package/plugins/lisa-nestjs/agents/hooks-expert.md +74 -0
  330. package/plugins/lisa-nestjs/agents/implementer.md +54 -0
  331. package/plugins/lisa-nestjs/agents/learner.md +44 -0
  332. package/plugins/lisa-nestjs/agents/performance-specialist.md +95 -0
  333. package/plugins/lisa-nestjs/agents/product-specialist.md +72 -0
  334. package/plugins/lisa-nestjs/agents/quality-specialist.md +55 -0
  335. package/plugins/lisa-nestjs/agents/security-specialist.md +58 -0
  336. package/plugins/lisa-nestjs/agents/skill-evaluator.md +246 -0
  337. package/plugins/lisa-nestjs/agents/slash-command-architect.md +87 -0
  338. package/plugins/lisa-nestjs/agents/test-specialist.md +64 -0
  339. package/plugins/lisa-nestjs/agents/verification-specialist.md +189 -0
  340. package/plugins/lisa-nestjs/agents/web-search-researcher.md +112 -0
  341. package/plugins/lisa-nestjs/commands/git-commit-and-submit-pr.md +7 -0
  342. package/plugins/lisa-nestjs/commands/git-commit-submit-pr-and-verify.md +7 -0
  343. package/plugins/lisa-nestjs/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  344. package/plugins/lisa-nestjs/commands/git-commit.md +7 -0
  345. package/plugins/lisa-nestjs/commands/git-prune.md +6 -0
  346. package/plugins/lisa-nestjs/commands/git-submit-pr.md +7 -0
  347. package/plugins/lisa-nestjs/commands/jira-add-journey.md +7 -0
  348. package/plugins/lisa-nestjs/commands/jira-create.md +7 -0
  349. package/plugins/lisa-nestjs/commands/jira-evidence.md +7 -0
  350. package/plugins/lisa-nestjs/commands/jira-fix.md +7 -0
  351. package/plugins/lisa-nestjs/commands/jira-implement.md +7 -0
  352. package/plugins/lisa-nestjs/commands/jira-journey.md +7 -0
  353. package/plugins/lisa-nestjs/commands/jira-sync.md +7 -0
  354. package/plugins/lisa-nestjs/commands/jira-verify.md +7 -0
  355. package/plugins/lisa-nestjs/commands/lisa-review-implementation.md +7 -0
  356. package/plugins/lisa-nestjs/commands/plan-add-test-coverage.md +7 -0
  357. package/plugins/lisa-nestjs/commands/plan-create.md +6 -0
  358. package/plugins/lisa-nestjs/commands/plan-execute.md +7 -0
  359. package/plugins/lisa-nestjs/commands/plan-fix-linter-error.md +7 -0
  360. package/plugins/lisa-nestjs/commands/plan-local-code-review.md +6 -0
  361. package/plugins/lisa-nestjs/commands/plan-lower-code-complexity.md +6 -0
  362. package/plugins/lisa-nestjs/commands/plan-reduce-max-lines-per-function.md +7 -0
  363. package/plugins/lisa-nestjs/commands/plan-reduce-max-lines.md +7 -0
  364. package/plugins/lisa-nestjs/commands/pull-request-review.md +7 -0
  365. package/plugins/lisa-nestjs/commands/security-zap-scan.md +6 -0
  366. package/plugins/lisa-nestjs/commands/sonarqube-check.md +6 -0
  367. package/plugins/lisa-nestjs/commands/sonarqube-fix.md +6 -0
  368. package/plugins/lisa-nestjs/commands/tasks-load.md +7 -0
  369. package/plugins/lisa-nestjs/commands/tasks-sync.md +7 -0
  370. package/plugins/lisa-nestjs/hooks/debug-hook.sh +47 -0
  371. package/plugins/lisa-nestjs/hooks/enforce-plan-rules.sh +15 -0
  372. package/plugins/lisa-nestjs/hooks/format-on-edit.sh +76 -0
  373. package/plugins/lisa-nestjs/hooks/install-pkgs.sh +64 -0
  374. package/plugins/lisa-nestjs/hooks/lint-on-edit.sh +81 -0
  375. package/plugins/lisa-nestjs/hooks/notify-ntfy.sh +183 -0
  376. package/plugins/lisa-nestjs/hooks/setup-jira-cli.sh +52 -0
  377. package/plugins/lisa-nestjs/hooks/sg-scan-on-edit.sh +68 -0
  378. package/plugins/lisa-nestjs/hooks/sync-tasks.sh +107 -0
  379. package/plugins/lisa-nestjs/hooks/ticket-sync-reminder.sh +23 -0
  380. package/plugins/lisa-nestjs/hooks/track-plan-sessions.sh +164 -0
  381. package/plugins/lisa-nestjs/hooks/verify-completion.sh +77 -0
  382. package/plugins/lisa-nestjs/rules/README.md +240 -0
  383. package/plugins/lisa-nestjs/rules/coding-philosophy.md +428 -0
  384. package/plugins/lisa-nestjs/rules/lisa.md +37 -0
  385. package/plugins/lisa-nestjs/rules/verfication.md +596 -0
  386. package/plugins/lisa-nestjs/skills/agent-design-best-practices/SKILL.md +219 -0
  387. package/plugins/lisa-nestjs/skills/git-commit/SKILL.md +48 -0
  388. package/plugins/lisa-nestjs/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  389. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  390. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  391. package/plugins/lisa-nestjs/skills/git-prune/SKILL.md +35 -0
  392. package/plugins/lisa-nestjs/skills/git-submit-pr/SKILL.md +44 -0
  393. package/plugins/lisa-nestjs/skills/jira-add-journey/SKILL.md +120 -0
  394. package/plugins/lisa-nestjs/skills/jira-create/SKILL.md +95 -0
  395. package/plugins/lisa-nestjs/skills/jira-evidence/SKILL.md +73 -0
  396. package/plugins/lisa-nestjs/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  397. package/plugins/lisa-nestjs/skills/jira-fix/SKILL.md +16 -0
  398. package/plugins/lisa-nestjs/skills/jira-implement/SKILL.md +18 -0
  399. package/plugins/lisa-nestjs/skills/jira-journey/SKILL.md +125 -0
  400. package/plugins/lisa-nestjs/skills/jira-journey/scripts/generate-templates.py +233 -0
  401. package/plugins/lisa-nestjs/skills/jira-journey/scripts/parse-plan.py +368 -0
  402. package/plugins/lisa-nestjs/skills/jira-sync/SKILL.md +63 -0
  403. package/plugins/lisa-nestjs/skills/jira-verify/SKILL.md +48 -0
  404. package/plugins/lisa-nestjs/skills/jsdoc-best-practices/SKILL.md +432 -0
  405. package/plugins/lisa-nestjs/skills/lisa-review-implementation/SKILL.md +209 -0
  406. package/plugins/lisa-nestjs/skills/nestjs-graphql/SKILL.md +176 -0
  407. package/plugins/lisa-nestjs/skills/nestjs-graphql/references/advanced-features.md +527 -0
  408. package/plugins/lisa-nestjs/skills/nestjs-graphql/references/project-patterns.md +483 -0
  409. package/plugins/lisa-nestjs/skills/nestjs-graphql/references/quick-start.md +257 -0
  410. package/plugins/lisa-nestjs/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  411. package/plugins/lisa-nestjs/skills/nestjs-graphql/references/types-scalars.md +513 -0
  412. package/plugins/lisa-nestjs/skills/nestjs-rules/SKILL.md +536 -0
  413. package/plugins/lisa-nestjs/skills/plan-add-test-coverage/SKILL.md +44 -0
  414. package/plugins/lisa-nestjs/skills/plan-execute/SKILL.md +89 -0
  415. package/plugins/lisa-nestjs/skills/plan-fix-linter-error/SKILL.md +45 -0
  416. package/plugins/lisa-nestjs/skills/plan-local-code-review/SKILL.md +88 -0
  417. package/plugins/lisa-nestjs/skills/plan-lower-code-complexity/SKILL.md +44 -0
  418. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines/SKILL.md +45 -0
  419. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  420. package/plugins/lisa-nestjs/skills/pull-request-review/SKILL.md +68 -0
  421. package/plugins/lisa-nestjs/skills/security-zap-scan/SKILL.md +33 -0
  422. package/plugins/lisa-nestjs/skills/skill-creator/LICENSE.txt +202 -0
  423. package/plugins/lisa-nestjs/skills/skill-creator/SKILL.md +210 -0
  424. package/plugins/lisa-nestjs/skills/skill-creator/scripts/init_skill.py +305 -0
  425. package/plugins/lisa-nestjs/skills/skill-creator/scripts/package_skill.py +112 -0
  426. package/plugins/lisa-nestjs/skills/skill-creator/scripts/quick_validate.py +67 -0
  427. package/plugins/lisa-nestjs/skills/sonarqube-check/SKILL.md +11 -0
  428. package/plugins/lisa-nestjs/skills/sonarqube-fix/SKILL.md +8 -0
  429. package/plugins/lisa-nestjs/skills/tasks-load/SKILL.md +88 -0
  430. package/plugins/lisa-nestjs/skills/tasks-sync/SKILL.md +108 -0
  431. package/plugins/lisa-nestjs/skills/typeorm-patterns/SKILL.md +275 -0
  432. package/plugins/lisa-nestjs/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  433. package/plugins/lisa-nestjs/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  434. package/plugins/lisa-nestjs/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  435. package/plugins/lisa-rails/.claude-plugin/plugin.json +77 -0
  436. package/plugins/lisa-rails/agents/agent-architect.md +310 -0
  437. package/plugins/lisa-rails/agents/architecture-specialist.md +53 -0
  438. package/plugins/lisa-rails/agents/debug-specialist.md +204 -0
  439. package/plugins/lisa-rails/agents/git-history-analyzer.md +183 -0
  440. package/plugins/lisa-rails/agents/hooks-expert.md +74 -0
  441. package/plugins/lisa-rails/agents/implementer.md +54 -0
  442. package/plugins/lisa-rails/agents/learner.md +44 -0
  443. package/plugins/lisa-rails/agents/performance-specialist.md +95 -0
  444. package/plugins/lisa-rails/agents/product-specialist.md +72 -0
  445. package/plugins/lisa-rails/agents/quality-specialist.md +55 -0
  446. package/plugins/lisa-rails/agents/security-specialist.md +58 -0
  447. package/plugins/lisa-rails/agents/skill-evaluator.md +246 -0
  448. package/plugins/lisa-rails/agents/slash-command-architect.md +87 -0
  449. package/plugins/lisa-rails/agents/test-specialist.md +64 -0
  450. package/plugins/lisa-rails/agents/verification-specialist.md +189 -0
  451. package/plugins/lisa-rails/agents/web-search-researcher.md +112 -0
  452. package/plugins/lisa-rails/commands/git-commit-and-submit-pr.md +7 -0
  453. package/plugins/lisa-rails/commands/git-commit-submit-pr-and-verify.md +7 -0
  454. package/plugins/lisa-rails/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  455. package/plugins/lisa-rails/commands/git-commit.md +7 -0
  456. package/plugins/lisa-rails/commands/git-prune.md +6 -0
  457. package/plugins/lisa-rails/commands/git-submit-pr.md +7 -0
  458. package/plugins/lisa-rails/commands/jira-add-journey.md +7 -0
  459. package/plugins/lisa-rails/commands/jira-create.md +7 -0
  460. package/plugins/lisa-rails/commands/jira-evidence.md +7 -0
  461. package/plugins/lisa-rails/commands/jira-fix.md +7 -0
  462. package/plugins/lisa-rails/commands/jira-implement.md +7 -0
  463. package/plugins/lisa-rails/commands/jira-journey.md +7 -0
  464. package/plugins/lisa-rails/commands/jira-sync.md +7 -0
  465. package/plugins/lisa-rails/commands/jira-verify.md +7 -0
  466. package/plugins/lisa-rails/commands/lisa-review-implementation.md +7 -0
  467. package/plugins/lisa-rails/commands/plan-add-test-coverage.md +7 -0
  468. package/plugins/lisa-rails/commands/plan-create.md +6 -0
  469. package/plugins/lisa-rails/commands/plan-execute.md +7 -0
  470. package/plugins/lisa-rails/commands/plan-fix-linter-error.md +7 -0
  471. package/plugins/lisa-rails/commands/plan-local-code-review.md +6 -0
  472. package/plugins/lisa-rails/commands/plan-lower-code-complexity.md +6 -0
  473. package/plugins/lisa-rails/commands/plan-reduce-max-lines-per-function.md +7 -0
  474. package/plugins/lisa-rails/commands/plan-reduce-max-lines.md +7 -0
  475. package/plugins/lisa-rails/commands/pull-request-review.md +7 -0
  476. package/plugins/lisa-rails/commands/security-zap-scan.md +6 -0
  477. package/plugins/lisa-rails/commands/sonarqube-check.md +6 -0
  478. package/plugins/lisa-rails/commands/sonarqube-fix.md +6 -0
  479. package/plugins/lisa-rails/commands/tasks-load.md +7 -0
  480. package/plugins/lisa-rails/commands/tasks-sync.md +7 -0
  481. package/plugins/lisa-rails/hooks/debug-hook.sh +47 -0
  482. package/plugins/lisa-rails/hooks/enforce-plan-rules.sh +15 -0
  483. package/plugins/lisa-rails/hooks/format-on-edit.sh +76 -0
  484. package/plugins/lisa-rails/hooks/install-pkgs.sh +64 -0
  485. package/plugins/lisa-rails/hooks/lint-on-edit.sh +81 -0
  486. package/plugins/lisa-rails/hooks/notify-ntfy.sh +183 -0
  487. package/plugins/lisa-rails/hooks/setup-jira-cli.sh +52 -0
  488. package/plugins/lisa-rails/hooks/sg-scan-on-edit.sh +68 -0
  489. package/plugins/lisa-rails/hooks/sync-tasks.sh +107 -0
  490. package/plugins/lisa-rails/hooks/ticket-sync-reminder.sh +23 -0
  491. package/plugins/lisa-rails/hooks/track-plan-sessions.sh +164 -0
  492. package/plugins/lisa-rails/hooks/verify-completion.sh +77 -0
  493. package/plugins/lisa-rails/rules/README.md +240 -0
  494. package/plugins/lisa-rails/rules/coding-philosophy.md +428 -0
  495. package/plugins/lisa-rails/rules/lisa.md +37 -0
  496. package/plugins/lisa-rails/rules/rails-conventions.md +176 -0
  497. package/plugins/lisa-rails/rules/verfication.md +596 -0
  498. package/plugins/lisa-rails/skills/action-controller-best-practices/SKILL.md +374 -0
  499. package/plugins/lisa-rails/skills/action-view-best-practices/SKILL.md +335 -0
  500. package/plugins/lisa-rails/skills/active-record-model-best-practices/SKILL.md +166 -0
  501. package/plugins/lisa-rails/skills/agent-design-best-practices/SKILL.md +219 -0
  502. package/plugins/lisa-rails/skills/git-commit/SKILL.md +48 -0
  503. package/plugins/lisa-rails/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  504. package/plugins/lisa-rails/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  505. package/plugins/lisa-rails/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  506. package/plugins/lisa-rails/skills/git-prune/SKILL.md +35 -0
  507. package/plugins/lisa-rails/skills/git-submit-pr/SKILL.md +44 -0
  508. package/plugins/lisa-rails/skills/jira-add-journey/SKILL.md +65 -0
  509. package/plugins/lisa-rails/skills/jira-create/SKILL.md +41 -0
  510. package/plugins/lisa-rails/skills/jira-evidence/SKILL.md +70 -0
  511. package/plugins/lisa-rails/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  512. package/plugins/lisa-rails/skills/jira-fix/SKILL.md +16 -0
  513. package/plugins/lisa-rails/skills/jira-implement/SKILL.md +18 -0
  514. package/plugins/lisa-rails/skills/jira-journey/SKILL.md +64 -0
  515. package/plugins/lisa-rails/skills/jira-journey/scripts/generate-templates.py +233 -0
  516. package/plugins/lisa-rails/skills/jira-journey/scripts/parse-plan.py +368 -0
  517. package/plugins/lisa-rails/skills/jira-sync/SKILL.md +63 -0
  518. package/plugins/lisa-rails/skills/jira-verify/SKILL.md +29 -0
  519. package/plugins/lisa-rails/skills/jsdoc-best-practices/SKILL.md +432 -0
  520. package/plugins/lisa-rails/skills/lisa-review-implementation/SKILL.md +209 -0
  521. package/plugins/lisa-rails/skills/plan-add-test-coverage/SKILL.md +45 -0
  522. package/plugins/lisa-rails/skills/plan-execute/SKILL.md +89 -0
  523. package/plugins/lisa-rails/skills/plan-fix-linter-error/SKILL.md +45 -0
  524. package/plugins/lisa-rails/skills/plan-local-code-review/SKILL.md +88 -0
  525. package/plugins/lisa-rails/skills/plan-lower-code-complexity/SKILL.md +48 -0
  526. package/plugins/lisa-rails/skills/plan-reduce-max-lines/SKILL.md +46 -0
  527. package/plugins/lisa-rails/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  528. package/plugins/lisa-rails/skills/pull-request-review/SKILL.md +68 -0
  529. package/plugins/lisa-rails/skills/security-zap-scan/SKILL.md +33 -0
  530. package/plugins/lisa-rails/skills/skill-creator/LICENSE.txt +202 -0
  531. package/plugins/lisa-rails/skills/skill-creator/SKILL.md +210 -0
  532. package/plugins/lisa-rails/skills/skill-creator/scripts/init_skill.py +305 -0
  533. package/plugins/lisa-rails/skills/skill-creator/scripts/package_skill.py +112 -0
  534. package/plugins/lisa-rails/skills/skill-creator/scripts/quick_validate.py +67 -0
  535. package/plugins/lisa-rails/skills/sonarqube-check/SKILL.md +11 -0
  536. package/plugins/lisa-rails/skills/sonarqube-fix/SKILL.md +8 -0
  537. package/plugins/lisa-rails/skills/tasks-load/SKILL.md +88 -0
  538. package/plugins/lisa-rails/skills/tasks-sync/SKILL.md +108 -0
  539. package/plugins/lisa-typescript/.claude-plugin/plugin.json +86 -0
  540. package/plugins/lisa-typescript/agents/agent-architect.md +310 -0
  541. package/plugins/lisa-typescript/agents/architecture-specialist.md +53 -0
  542. package/plugins/lisa-typescript/agents/debug-specialist.md +204 -0
  543. package/plugins/lisa-typescript/agents/git-history-analyzer.md +183 -0
  544. package/plugins/lisa-typescript/agents/hooks-expert.md +74 -0
  545. package/plugins/lisa-typescript/agents/implementer.md +54 -0
  546. package/plugins/lisa-typescript/agents/learner.md +44 -0
  547. package/plugins/lisa-typescript/agents/performance-specialist.md +95 -0
  548. package/plugins/lisa-typescript/agents/product-specialist.md +72 -0
  549. package/plugins/lisa-typescript/agents/quality-specialist.md +55 -0
  550. package/plugins/lisa-typescript/agents/security-specialist.md +58 -0
  551. package/plugins/lisa-typescript/agents/skill-evaluator.md +246 -0
  552. package/plugins/lisa-typescript/agents/slash-command-architect.md +87 -0
  553. package/plugins/lisa-typescript/agents/test-specialist.md +64 -0
  554. package/plugins/lisa-typescript/agents/verification-specialist.md +189 -0
  555. package/plugins/lisa-typescript/agents/web-search-researcher.md +112 -0
  556. package/plugins/lisa-typescript/commands/git-commit-and-submit-pr.md +7 -0
  557. package/plugins/lisa-typescript/commands/git-commit-submit-pr-and-verify.md +7 -0
  558. package/plugins/lisa-typescript/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  559. package/plugins/lisa-typescript/commands/git-commit.md +7 -0
  560. package/plugins/lisa-typescript/commands/git-prune.md +6 -0
  561. package/plugins/lisa-typescript/commands/git-submit-pr.md +7 -0
  562. package/plugins/lisa-typescript/commands/jira-add-journey.md +7 -0
  563. package/plugins/lisa-typescript/commands/jira-create.md +7 -0
  564. package/plugins/lisa-typescript/commands/jira-evidence.md +7 -0
  565. package/plugins/lisa-typescript/commands/jira-fix.md +7 -0
  566. package/plugins/lisa-typescript/commands/jira-implement.md +7 -0
  567. package/plugins/lisa-typescript/commands/jira-journey.md +7 -0
  568. package/plugins/lisa-typescript/commands/jira-sync.md +7 -0
  569. package/plugins/lisa-typescript/commands/jira-verify.md +7 -0
  570. package/plugins/lisa-typescript/commands/lisa-review-implementation.md +7 -0
  571. package/plugins/lisa-typescript/commands/plan-add-test-coverage.md +7 -0
  572. package/plugins/lisa-typescript/commands/plan-create.md +6 -0
  573. package/plugins/lisa-typescript/commands/plan-execute.md +7 -0
  574. package/plugins/lisa-typescript/commands/plan-fix-linter-error.md +7 -0
  575. package/plugins/lisa-typescript/commands/plan-local-code-review.md +6 -0
  576. package/plugins/lisa-typescript/commands/plan-lower-code-complexity.md +6 -0
  577. package/plugins/lisa-typescript/commands/plan-reduce-max-lines-per-function.md +7 -0
  578. package/plugins/lisa-typescript/commands/plan-reduce-max-lines.md +7 -0
  579. package/plugins/lisa-typescript/commands/pull-request-review.md +7 -0
  580. package/plugins/lisa-typescript/commands/security-zap-scan.md +6 -0
  581. package/plugins/lisa-typescript/commands/sonarqube-check.md +6 -0
  582. package/plugins/lisa-typescript/commands/sonarqube-fix.md +6 -0
  583. package/plugins/lisa-typescript/commands/tasks-load.md +7 -0
  584. package/plugins/lisa-typescript/commands/tasks-sync.md +7 -0
  585. package/plugins/lisa-typescript/hooks/debug-hook.sh +47 -0
  586. package/plugins/lisa-typescript/hooks/enforce-plan-rules.sh +15 -0
  587. package/plugins/lisa-typescript/hooks/format-on-edit.sh +76 -0
  588. package/plugins/lisa-typescript/hooks/install-pkgs.sh +64 -0
  589. package/plugins/lisa-typescript/hooks/lint-on-edit.sh +81 -0
  590. package/plugins/lisa-typescript/hooks/notify-ntfy.sh +183 -0
  591. package/plugins/lisa-typescript/hooks/setup-jira-cli.sh +52 -0
  592. package/plugins/lisa-typescript/hooks/sg-scan-on-edit.sh +68 -0
  593. package/plugins/lisa-typescript/hooks/sync-tasks.sh +107 -0
  594. package/plugins/lisa-typescript/hooks/ticket-sync-reminder.sh +23 -0
  595. package/plugins/lisa-typescript/hooks/track-plan-sessions.sh +164 -0
  596. package/plugins/lisa-typescript/hooks/verify-completion.sh +77 -0
  597. package/plugins/lisa-typescript/rules/README.md +240 -0
  598. package/plugins/lisa-typescript/rules/coding-philosophy.md +428 -0
  599. package/plugins/lisa-typescript/rules/lisa.md +37 -0
  600. package/plugins/lisa-typescript/rules/verfication.md +596 -0
  601. package/plugins/lisa-typescript/skills/agent-design-best-practices/SKILL.md +219 -0
  602. package/plugins/lisa-typescript/skills/git-commit/SKILL.md +48 -0
  603. package/plugins/lisa-typescript/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  604. package/plugins/lisa-typescript/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  605. package/plugins/lisa-typescript/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  606. package/plugins/lisa-typescript/skills/git-prune/SKILL.md +35 -0
  607. package/plugins/lisa-typescript/skills/git-submit-pr/SKILL.md +44 -0
  608. package/plugins/lisa-typescript/skills/jira-add-journey/SKILL.md +120 -0
  609. package/plugins/lisa-typescript/skills/jira-create/SKILL.md +95 -0
  610. package/plugins/lisa-typescript/skills/jira-evidence/SKILL.md +73 -0
  611. package/plugins/lisa-typescript/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  612. package/plugins/lisa-typescript/skills/jira-fix/SKILL.md +16 -0
  613. package/plugins/lisa-typescript/skills/jira-implement/SKILL.md +18 -0
  614. package/plugins/lisa-typescript/skills/jira-journey/SKILL.md +125 -0
  615. package/plugins/lisa-typescript/skills/jira-journey/scripts/generate-templates.py +233 -0
  616. package/plugins/lisa-typescript/skills/jira-journey/scripts/parse-plan.py +368 -0
  617. package/plugins/lisa-typescript/skills/jira-sync/SKILL.md +63 -0
  618. package/plugins/lisa-typescript/skills/jira-verify/SKILL.md +48 -0
  619. package/plugins/lisa-typescript/skills/jsdoc-best-practices/SKILL.md +432 -0
  620. package/plugins/lisa-typescript/skills/lisa-review-implementation/SKILL.md +209 -0
  621. package/plugins/lisa-typescript/skills/plan-add-test-coverage/SKILL.md +44 -0
  622. package/plugins/lisa-typescript/skills/plan-execute/SKILL.md +89 -0
  623. package/plugins/lisa-typescript/skills/plan-fix-linter-error/SKILL.md +45 -0
  624. package/plugins/lisa-typescript/skills/plan-local-code-review/SKILL.md +88 -0
  625. package/plugins/lisa-typescript/skills/plan-lower-code-complexity/SKILL.md +44 -0
  626. package/plugins/lisa-typescript/skills/plan-reduce-max-lines/SKILL.md +45 -0
  627. package/plugins/lisa-typescript/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  628. package/plugins/lisa-typescript/skills/pull-request-review/SKILL.md +68 -0
  629. package/plugins/lisa-typescript/skills/security-zap-scan/SKILL.md +33 -0
  630. package/plugins/lisa-typescript/skills/skill-creator/LICENSE.txt +202 -0
  631. package/plugins/lisa-typescript/skills/skill-creator/SKILL.md +210 -0
  632. package/plugins/lisa-typescript/skills/skill-creator/scripts/init_skill.py +305 -0
  633. package/plugins/lisa-typescript/skills/skill-creator/scripts/package_skill.py +112 -0
  634. package/plugins/lisa-typescript/skills/skill-creator/scripts/quick_validate.py +67 -0
  635. package/plugins/lisa-typescript/skills/sonarqube-check/SKILL.md +11 -0
  636. package/plugins/lisa-typescript/skills/sonarqube-fix/SKILL.md +8 -0
  637. package/plugins/lisa-typescript/skills/tasks-load/SKILL.md +88 -0
  638. package/plugins/lisa-typescript/skills/tasks-sync/SKILL.md +108 -0
  639. package/plugins/src/base/agents/agent-architect.md +310 -0
  640. package/plugins/src/base/agents/architecture-specialist.md +53 -0
  641. package/plugins/src/base/agents/debug-specialist.md +204 -0
  642. package/plugins/src/base/agents/git-history-analyzer.md +183 -0
  643. package/plugins/src/base/agents/hooks-expert.md +74 -0
  644. package/plugins/src/base/agents/implementer.md +54 -0
  645. package/plugins/src/base/agents/learner.md +44 -0
  646. package/plugins/src/base/agents/performance-specialist.md +95 -0
  647. package/plugins/src/base/agents/product-specialist.md +72 -0
  648. package/plugins/src/base/agents/quality-specialist.md +55 -0
  649. package/plugins/src/base/agents/security-specialist.md +58 -0
  650. package/plugins/src/base/agents/skill-evaluator.md +246 -0
  651. package/plugins/src/base/agents/slash-command-architect.md +87 -0
  652. package/plugins/src/base/agents/test-specialist.md +64 -0
  653. package/plugins/src/base/agents/verification-specialist.md +189 -0
  654. package/plugins/src/base/agents/web-search-researcher.md +112 -0
  655. package/plugins/src/base/commands/git-commit-and-submit-pr.md +7 -0
  656. package/plugins/src/base/commands/git-commit-submit-pr-and-verify.md +7 -0
  657. package/plugins/src/base/commands/git-commit-submit-pr-deploy-and-verify.md +7 -0
  658. package/plugins/src/base/commands/git-commit.md +7 -0
  659. package/plugins/src/base/commands/git-prune.md +6 -0
  660. package/plugins/src/base/commands/git-submit-pr.md +7 -0
  661. package/plugins/src/base/commands/jira-add-journey.md +7 -0
  662. package/plugins/src/base/commands/jira-create.md +7 -0
  663. package/plugins/src/base/commands/jira-evidence.md +7 -0
  664. package/plugins/src/base/commands/jira-fix.md +7 -0
  665. package/plugins/src/base/commands/jira-implement.md +7 -0
  666. package/plugins/src/base/commands/jira-journey.md +7 -0
  667. package/plugins/src/base/commands/jira-sync.md +7 -0
  668. package/plugins/src/base/commands/jira-verify.md +7 -0
  669. package/plugins/src/base/commands/lisa-review-implementation.md +7 -0
  670. package/plugins/src/base/commands/plan-add-test-coverage.md +7 -0
  671. package/plugins/src/base/commands/plan-create.md +6 -0
  672. package/plugins/src/base/commands/plan-execute.md +7 -0
  673. package/plugins/src/base/commands/plan-fix-linter-error.md +7 -0
  674. package/plugins/src/base/commands/plan-local-code-review.md +6 -0
  675. package/plugins/src/base/commands/plan-lower-code-complexity.md +6 -0
  676. package/plugins/src/base/commands/plan-reduce-max-lines-per-function.md +7 -0
  677. package/plugins/src/base/commands/plan-reduce-max-lines.md +7 -0
  678. package/plugins/src/base/commands/pull-request-review.md +7 -0
  679. package/plugins/src/base/commands/security-zap-scan.md +6 -0
  680. package/plugins/src/base/commands/sonarqube-check.md +6 -0
  681. package/plugins/src/base/commands/sonarqube-fix.md +6 -0
  682. package/plugins/src/base/commands/tasks-load.md +7 -0
  683. package/plugins/src/base/commands/tasks-sync.md +7 -0
  684. package/plugins/src/base/hooks/debug-hook.sh +47 -0
  685. package/plugins/src/base/hooks/enforce-plan-rules.sh +15 -0
  686. package/plugins/src/base/hooks/format-on-edit.sh +76 -0
  687. package/plugins/src/base/hooks/install-pkgs.sh +64 -0
  688. package/plugins/src/base/hooks/lint-on-edit.sh +81 -0
  689. package/plugins/src/base/hooks/notify-ntfy.sh +183 -0
  690. package/plugins/src/base/hooks/setup-jira-cli.sh +52 -0
  691. package/plugins/src/base/hooks/sg-scan-on-edit.sh +68 -0
  692. package/plugins/src/base/hooks/sync-tasks.sh +107 -0
  693. package/plugins/src/base/hooks/ticket-sync-reminder.sh +23 -0
  694. package/plugins/src/base/hooks/track-plan-sessions.sh +164 -0
  695. package/plugins/src/base/hooks/verify-completion.sh +77 -0
  696. package/plugins/src/base/rules/README.md +240 -0
  697. package/plugins/src/base/rules/coding-philosophy.md +428 -0
  698. package/plugins/src/base/rules/lisa.md +37 -0
  699. package/plugins/src/base/rules/verfication.md +596 -0
  700. package/plugins/src/base/skills/agent-design-best-practices/SKILL.md +219 -0
  701. package/plugins/src/base/skills/git-commit/SKILL.md +48 -0
  702. package/plugins/src/base/skills/git-commit-and-submit-pr/SKILL.md +8 -0
  703. package/plugins/src/base/skills/git-commit-submit-pr-and-verify/SKILL.md +7 -0
  704. package/plugins/src/base/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +7 -0
  705. package/plugins/src/base/skills/git-prune/SKILL.md +35 -0
  706. package/plugins/src/base/skills/git-submit-pr/SKILL.md +44 -0
  707. package/plugins/src/base/skills/jira-add-journey/SKILL.md +120 -0
  708. package/plugins/src/base/skills/jira-create/SKILL.md +95 -0
  709. package/plugins/src/base/skills/jira-evidence/SKILL.md +73 -0
  710. package/plugins/src/base/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  711. package/plugins/src/base/skills/jira-fix/SKILL.md +16 -0
  712. package/plugins/src/base/skills/jira-implement/SKILL.md +18 -0
  713. package/plugins/src/base/skills/jira-journey/SKILL.md +125 -0
  714. package/plugins/src/base/skills/jira-journey/scripts/generate-templates.py +233 -0
  715. package/plugins/src/base/skills/jira-journey/scripts/parse-plan.py +368 -0
  716. package/plugins/src/base/skills/jira-sync/SKILL.md +63 -0
  717. package/plugins/src/base/skills/jira-verify/SKILL.md +48 -0
  718. package/plugins/src/base/skills/jsdoc-best-practices/SKILL.md +432 -0
  719. package/plugins/src/base/skills/lisa-review-implementation/SKILL.md +209 -0
  720. package/plugins/src/base/skills/plan-add-test-coverage/SKILL.md +44 -0
  721. package/plugins/src/base/skills/plan-execute/SKILL.md +89 -0
  722. package/plugins/src/base/skills/plan-fix-linter-error/SKILL.md +45 -0
  723. package/plugins/src/base/skills/plan-local-code-review/SKILL.md +88 -0
  724. package/plugins/src/base/skills/plan-lower-code-complexity/SKILL.md +44 -0
  725. package/plugins/src/base/skills/plan-reduce-max-lines/SKILL.md +45 -0
  726. package/plugins/src/base/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  727. package/plugins/src/base/skills/pull-request-review/SKILL.md +68 -0
  728. package/plugins/src/base/skills/security-zap-scan/SKILL.md +33 -0
  729. package/plugins/src/base/skills/skill-creator/LICENSE.txt +202 -0
  730. package/plugins/src/base/skills/skill-creator/SKILL.md +210 -0
  731. package/plugins/src/base/skills/skill-creator/scripts/init_skill.py +305 -0
  732. package/plugins/src/base/skills/skill-creator/scripts/package_skill.py +112 -0
  733. package/plugins/src/base/skills/skill-creator/scripts/quick_validate.py +67 -0
  734. package/plugins/src/base/skills/sonarqube-check/SKILL.md +11 -0
  735. package/plugins/src/base/skills/sonarqube-fix/SKILL.md +8 -0
  736. package/plugins/src/base/skills/tasks-load/SKILL.md +88 -0
  737. package/plugins/src/base/skills/tasks-sync/SKILL.md +108 -0
  738. package/plugins/src/cdk/.claude-plugin/plugin.json +86 -0
  739. package/plugins/src/expo/.claude-plugin/plugin.json +86 -0
  740. package/plugins/src/expo/agents/ops-specialist.md +124 -0
  741. package/plugins/src/expo/rules/expo-verification.md +261 -0
  742. package/plugins/src/expo/skills/apollo-client/SKILL.md +238 -0
  743. package/plugins/src/expo/skills/apollo-client/references/mutation-patterns.md +360 -0
  744. package/plugins/src/expo/skills/atomic-design-gluestack/SKILL.md +360 -0
  745. package/plugins/src/expo/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  746. package/plugins/src/expo/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  747. package/plugins/src/expo/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  748. package/plugins/src/expo/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  749. package/plugins/src/expo/skills/container-view-pattern/SKILL.md +299 -0
  750. package/plugins/src/expo/skills/container-view-pattern/references/examples.md +749 -0
  751. package/plugins/src/expo/skills/container-view-pattern/references/patterns.md +318 -0
  752. package/plugins/src/expo/skills/container-view-pattern/scripts/create_component.py +200 -0
  753. package/plugins/src/expo/skills/container-view-pattern/scripts/validate_component.py +209 -0
  754. package/plugins/src/expo/skills/cross-platform-compatibility/SKILL.md +268 -0
  755. package/plugins/src/expo/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  756. package/plugins/src/expo/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  757. package/plugins/src/expo/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  758. package/plugins/src/expo/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  759. package/plugins/src/expo/skills/directory-structure/SKILL.md +202 -0
  760. package/plugins/src/expo/skills/directory-structure/scripts/validate_structure.py +445 -0
  761. package/plugins/src/expo/skills/expo-env-config/SKILL.md +309 -0
  762. package/plugins/src/expo/skills/expo-env-config/references/validation-patterns.md +417 -0
  763. package/plugins/src/expo/skills/expo-router-best-practices/SKILL.md +431 -0
  764. package/plugins/src/expo/skills/expo-router-best-practices/references/official-docs.md +290 -0
  765. package/plugins/src/expo/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  766. package/plugins/src/expo/skills/gluestack-nativewind/SKILL.md +411 -0
  767. package/plugins/src/expo/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  768. package/plugins/src/expo/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  769. package/plugins/src/expo/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  770. package/plugins/src/expo/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  771. package/plugins/src/expo/skills/jira-add-journey/SKILL.md +126 -0
  772. package/plugins/src/expo/skills/jira-create/SKILL.md +101 -0
  773. package/plugins/src/expo/skills/jira-evidence/SKILL.md +78 -0
  774. package/plugins/src/expo/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  775. package/plugins/src/expo/skills/jira-journey/SKILL.md +190 -0
  776. package/plugins/src/expo/skills/jira-journey/scripts/generate-templates.py +281 -0
  777. package/plugins/src/expo/skills/jira-journey/scripts/parse-plan.py +368 -0
  778. package/plugins/src/expo/skills/jira-verify/SKILL.md +47 -0
  779. package/plugins/src/expo/skills/local-state/SKILL.md +362 -0
  780. package/plugins/src/expo/skills/local-state/references/async-storage.md +505 -0
  781. package/plugins/src/expo/skills/local-state/references/persistence-patterns.md +711 -0
  782. package/plugins/src/expo/skills/local-state/references/reactive-variables.md +446 -0
  783. package/plugins/src/expo/skills/ops-browser-uat/SKILL.md +124 -0
  784. package/plugins/src/expo/skills/ops-check-logs/SKILL.md +211 -0
  785. package/plugins/src/expo/skills/ops-db-ops/SKILL.md +119 -0
  786. package/plugins/src/expo/skills/ops-deploy/SKILL.md +119 -0
  787. package/plugins/src/expo/skills/ops-monitor-errors/SKILL.md +99 -0
  788. package/plugins/src/expo/skills/ops-performance/SKILL.md +165 -0
  789. package/plugins/src/expo/skills/ops-run-local/SKILL.md +166 -0
  790. package/plugins/src/expo/skills/ops-verify-health/SKILL.md +101 -0
  791. package/plugins/src/expo/skills/owasp-zap/SKILL.md +56 -0
  792. package/plugins/src/expo/skills/playwright-selectors/SKILL.md +223 -0
  793. package/plugins/src/expo/skills/testing-library/SKILL.md +314 -0
  794. package/plugins/src/expo/skills/testing-library/references/async-patterns.md +420 -0
  795. package/plugins/src/expo/skills/testing-library/references/expo-router-testing.md +556 -0
  796. package/plugins/src/expo/skills/testing-library/references/mocking-patterns.md +590 -0
  797. package/plugins/src/expo/skills/testing-library/references/query-priority.md +291 -0
  798. package/plugins/src/nestjs/.claude-plugin/plugin.json +86 -0
  799. package/plugins/src/nestjs/skills/nestjs-graphql/SKILL.md +176 -0
  800. package/plugins/src/nestjs/skills/nestjs-graphql/references/advanced-features.md +527 -0
  801. package/plugins/src/nestjs/skills/nestjs-graphql/references/project-patterns.md +483 -0
  802. package/plugins/src/nestjs/skills/nestjs-graphql/references/quick-start.md +257 -0
  803. package/plugins/src/nestjs/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  804. package/plugins/src/nestjs/skills/nestjs-graphql/references/types-scalars.md +513 -0
  805. package/plugins/src/nestjs/skills/nestjs-rules/SKILL.md +536 -0
  806. package/plugins/src/nestjs/skills/typeorm-patterns/SKILL.md +275 -0
  807. package/plugins/src/nestjs/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  808. package/plugins/src/nestjs/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  809. package/plugins/src/nestjs/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  810. package/plugins/src/rails/.claude-plugin/plugin.json +77 -0
  811. package/plugins/src/rails/rules/rails-conventions.md +176 -0
  812. package/plugins/src/rails/skills/action-controller-best-practices/SKILL.md +374 -0
  813. package/plugins/src/rails/skills/action-view-best-practices/SKILL.md +335 -0
  814. package/plugins/src/rails/skills/active-record-model-best-practices/SKILL.md +166 -0
  815. package/plugins/src/rails/skills/jira-add-journey/SKILL.md +65 -0
  816. package/plugins/src/rails/skills/jira-create/SKILL.md +41 -0
  817. package/plugins/src/rails/skills/jira-evidence/SKILL.md +70 -0
  818. package/plugins/src/rails/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  819. package/plugins/src/rails/skills/jira-journey/SKILL.md +64 -0
  820. package/plugins/src/rails/skills/jira-verify/SKILL.md +29 -0
  821. package/plugins/src/rails/skills/plan-add-test-coverage/SKILL.md +45 -0
  822. package/plugins/src/rails/skills/plan-fix-linter-error/SKILL.md +45 -0
  823. package/plugins/src/rails/skills/plan-lower-code-complexity/SKILL.md +48 -0
  824. package/plugins/src/rails/skills/plan-reduce-max-lines/SKILL.md +46 -0
  825. package/plugins/src/rails/skills/plan-reduce-max-lines-per-function/SKILL.md +46 -0
  826. package/plugins/src/typescript/.claude-plugin/plugin.json +86 -0
  827. package/scripts/build-plugins.sh +22 -0
  828. package/scripts/cleanup-amplify-branches.sh +150 -0
  829. package/scripts/cleanup-github-branches.sh +202 -0
  830. package/scripts/github-status-check.sh +301 -0
  831. package/scripts/install-claude-plugins.sh +70 -0
  832. package/scripts/lisa-commit-and-pr-local.sh +204 -0
  833. package/scripts/lisa-update-local.sh +158 -0
  834. package/scripts/update-node-version.ts +197 -0
  835. package/tsconfig/build.json +8 -0
  836. package/tsconfig/cdk.json +16 -0
  837. package/tsconfig/eslint.json +12 -0
  838. package/tsconfig/expo.json +18 -0
  839. package/tsconfig/nestjs.json +18 -0
  840. package/tsconfig/spec.json +7 -0
  841. package/{typescript/copy-overwrite/tsconfig.typescript.json → tsconfig/typescript.json} +1 -1
  842. package/typescript/copy-overwrite/eslint.config.ts +6 -20
  843. package/typescript/copy-overwrite/eslint.slow.config.ts +4 -73
  844. package/typescript/copy-overwrite/jest.config.ts +8 -12
  845. package/typescript/copy-overwrite/tsconfig.json +1 -1
  846. package/typescript/deletions.json +7 -1
  847. package/typescript/merge/.claude/settings.json +29 -0
  848. package/typescript/package-lisa/package.lisa.json +2 -36
  849. package/all/copy-overwrite/.claude/rules/lisa.md +0 -66
  850. package/all/copy-overwrite/.claude/settings.json +0 -79
  851. package/all/copy-overwrite/CLAUDE.md +0 -59
  852. package/all/copy-overwrite/HUMAN.md +0 -309
  853. package/cdk/copy-overwrite/.claude/settings.json +0 -80
  854. package/expo/copy-overwrite/.claude/settings.json +0 -80
  855. package/nestjs/copy-overwrite/.claude/settings.json +0 -80
  856. package/rails/copy-overwrite/CLAUDE.md +0 -56
  857. package/typescript/copy-overwrite/.claude/settings.json +0 -80
  858. package/typescript/copy-overwrite/eslint.base.ts +0 -429
  859. package/typescript/copy-overwrite/eslint.typescript.ts +0 -142
  860. package/typescript/copy-overwrite/jest.typescript.ts +0 -72
  861. /package/{all/copy-overwrite/.claude → plugins/lisa-cdk/rules}/README.md +0 -0
  862. /package/{all/create-only/scripts → scripts}/setup-deploy-key.sh +0 -0
  863. /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