@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,505 @@
1
+ # AsyncStorage Reference
2
+
3
+ ## Overview
4
+
5
+ AsyncStorage is an asynchronous, unencrypted, persistent key-value storage system for React Native. The community package `@react-native-async-storage/async-storage` is the standard solution for Expo projects.
6
+
7
+ ## Key Characteristics
8
+
9
+ - **Asynchronous**: All operations return Promises (non-blocking)
10
+ - **String-only**: Stores only string values (JSON serialization required for objects)
11
+ - **Persistent**: Data survives app restarts
12
+ - **Unencrypted**: Not suitable for sensitive data
13
+ - **Size limits**: ~6 MB total storage, ~2 MB per record (varies by platform)
14
+
15
+ ## Core API
16
+
17
+ ### Basic Operations
18
+
19
+ ```typescript
20
+ import AsyncStorage from "@react-native-async-storage/async-storage";
21
+
22
+ // Set a value
23
+ await AsyncStorage.setItem("@app:key", "string value");
24
+
25
+ // Get a value (returns string | null)
26
+ const value = await AsyncStorage.getItem("@app:key");
27
+
28
+ // Remove a value
29
+ await AsyncStorage.removeItem("@app:key");
30
+
31
+ // Get all keys
32
+ const allKeys = await AsyncStorage.getAllKeys();
33
+
34
+ // Clear all storage (use with caution)
35
+ await AsyncStorage.clear();
36
+ ```
37
+
38
+ ### Batch Operations
39
+
40
+ More efficient than multiple single operations:
41
+
42
+ ```typescript
43
+ // Get multiple values
44
+ const keyValuePairs = await AsyncStorage.multiGet([
45
+ "@app:user-prefs",
46
+ "@app:filters",
47
+ "@app:theme",
48
+ ]);
49
+ // Returns: [["@app:user-prefs", "..."], ["@app:filters", "..."], ...]
50
+
51
+ // Set multiple values
52
+ await AsyncStorage.multiSet([
53
+ ["@app:user-prefs", JSON.stringify(prefs)],
54
+ ["@app:filters", JSON.stringify(filters)],
55
+ ]);
56
+
57
+ // Remove multiple keys
58
+ await AsyncStorage.multiRemove(["@app:temp-data", "@app:cache"]);
59
+
60
+ // Merge values (shallow merge for JSON objects)
61
+ await AsyncStorage.multiMerge([
62
+ ["@app:user", JSON.stringify({ name: "John" })],
63
+ ["@app:user", JSON.stringify({ age: 30 })],
64
+ ]);
65
+ // Result: { name: "John", age: 30 }
66
+ ```
67
+
68
+ ## Type-Safe Utilities
69
+
70
+ ### Generic Storage Functions
71
+
72
+ ```typescript
73
+ import AsyncStorage from "@react-native-async-storage/async-storage";
74
+
75
+ /**
76
+ * Save typed data to AsyncStorage with error handling
77
+ * @param key - Storage key (should include namespace prefix)
78
+ * @param value - Value to store (will be JSON stringified)
79
+ */
80
+ export const saveToStorage = async <T>(
81
+ key: string,
82
+ value: T
83
+ ): Promise<void> => {
84
+ try {
85
+ const jsonValue = JSON.stringify(value);
86
+ await AsyncStorage.setItem(key, jsonValue);
87
+ } catch (error) {
88
+ const message = error instanceof Error ? error.message : "Unknown error";
89
+ console.error(`Failed to save ${key}:`, message);
90
+ throw error;
91
+ }
92
+ };
93
+
94
+ /**
95
+ * Load typed data from AsyncStorage with error handling
96
+ * @param key - Storage key
97
+ * @param defaultValue - Default value if key doesn't exist or parsing fails
98
+ * @returns Parsed value or default
99
+ */
100
+ export const loadFromStorage = async <T>(
101
+ key: string,
102
+ defaultValue: T
103
+ ): Promise<T> => {
104
+ try {
105
+ const jsonValue = await AsyncStorage.getItem(key);
106
+ if (jsonValue === null) {
107
+ return defaultValue;
108
+ }
109
+ return JSON.parse(jsonValue) as T;
110
+ } catch (error) {
111
+ const message = error instanceof Error ? error.message : "Unknown error";
112
+ console.error(`Failed to load ${key}:`, message);
113
+ return defaultValue;
114
+ }
115
+ };
116
+
117
+ /**
118
+ * Remove data from AsyncStorage
119
+ * @param key - Storage key to remove
120
+ */
121
+ export const removeFromStorage = async (key: string): Promise<void> => {
122
+ try {
123
+ await AsyncStorage.removeItem(key);
124
+ } catch (error) {
125
+ const message = error instanceof Error ? error.message : "Unknown error";
126
+ console.error(`Failed to remove ${key}:`, message);
127
+ }
128
+ };
129
+ ```
130
+
131
+ ### Result-Based Error Handling
132
+
133
+ For operations where you need to know if they succeeded:
134
+
135
+ ```typescript
136
+ interface StorageResult<T> {
137
+ readonly success: boolean;
138
+ readonly data?: T;
139
+ readonly error?: string;
140
+ }
141
+
142
+ /**
143
+ * Safely get item with success/failure result
144
+ */
145
+ export const safeGetItem = async <T>(
146
+ key: string,
147
+ defaultValue: T
148
+ ): Promise<StorageResult<T>> => {
149
+ try {
150
+ const jsonValue = await AsyncStorage.getItem(key);
151
+ if (jsonValue === null) {
152
+ return { success: true, data: defaultValue };
153
+ }
154
+ const parsed = JSON.parse(jsonValue) as T;
155
+ return { success: true, data: parsed };
156
+ } catch (error) {
157
+ const errorMessage =
158
+ error instanceof Error ? error.message : "Unknown error";
159
+ return { success: false, error: errorMessage, data: defaultValue };
160
+ }
161
+ };
162
+
163
+ /**
164
+ * Safely set item with success/failure result
165
+ */
166
+ export const safeSetItem = async <T>(
167
+ key: string,
168
+ value: T
169
+ ): Promise<StorageResult<void>> => {
170
+ try {
171
+ await AsyncStorage.setItem(key, JSON.stringify(value));
172
+ return { success: true };
173
+ } catch (error) {
174
+ const errorMessage =
175
+ error instanceof Error ? error.message : "Unknown error";
176
+ return { success: false, error: errorMessage };
177
+ }
178
+ };
179
+
180
+ // Usage
181
+ const result = await safeGetItem<UserPrefs>("@app:prefs", DEFAULT_PREFS);
182
+ if (!result.success) {
183
+ console.warn("Storage read failed:", result.error);
184
+ }
185
+ const prefs = result.data;
186
+ ```
187
+
188
+ ## Key Naming Conventions
189
+
190
+ ### Namespace Prefix
191
+
192
+ Always use a namespace prefix to avoid collisions with other libraries:
193
+
194
+ ```typescript
195
+ // Project namespace
196
+ const STORAGE_PREFIX = "@whatever";
197
+
198
+ // Key examples
199
+ const KEYS = {
200
+ USER_PREFERENCES: `${STORAGE_PREFIX}:user-preferences`,
201
+ FILTER_VALUES: `${STORAGE_PREFIX}:filter-values`,
202
+ FEATURE_FLAGS: `${STORAGE_PREFIX}:feature-flags`,
203
+ ONBOARDING_COMPLETE: `${STORAGE_PREFIX}:onboarding-complete`,
204
+ } as const;
205
+ ```
206
+
207
+ ### Key Organization
208
+
209
+ ```typescript
210
+ // Feature-scoped keys
211
+ const PLAYER_KEYS = {
212
+ FAVORITES: "@whatever:players:favorites",
213
+ RECENT_VIEWS: "@whatever:players:recent-views",
214
+ COMPARISONS: "@whatever:players:comparisons",
215
+ } as const;
216
+
217
+ const SETTINGS_KEYS = {
218
+ THEME: "@whatever:settings:theme",
219
+ LANGUAGE: "@whatever:settings:language",
220
+ NOTIFICATIONS: "@whatever:settings:notifications",
221
+ } as const;
222
+ ```
223
+
224
+ ## Error Handling Patterns
225
+
226
+ ### Always Use Try/Catch
227
+
228
+ AsyncStorage operations can fail for various reasons (storage full, permissions, corrupted data):
229
+
230
+ ```typescript
231
+ // CORRECT - proper error handling
232
+ const loadSettings = async (): Promise<Settings> => {
233
+ try {
234
+ const stored = await AsyncStorage.getItem(SETTINGS_KEY);
235
+ if (stored) {
236
+ return JSON.parse(stored) as Settings;
237
+ }
238
+ return DEFAULT_SETTINGS;
239
+ } catch (error) {
240
+ const message = error instanceof Error ? error.message : "Unknown error";
241
+ console.error("Failed to load settings:", message);
242
+ return DEFAULT_SETTINGS; // Graceful fallback
243
+ }
244
+ };
245
+
246
+ // INCORRECT - unhandled errors can crash the app
247
+ const loadSettings = async (): Promise<Settings> => {
248
+ const stored = await AsyncStorage.getItem(SETTINGS_KEY);
249
+ return stored ? JSON.parse(stored) : DEFAULT_SETTINGS;
250
+ };
251
+ ```
252
+
253
+ ### Handle JSON Parse Errors Separately
254
+
255
+ ```typescript
256
+ const loadData = async <T>(key: string, defaultValue: T): Promise<T> => {
257
+ try {
258
+ const jsonValue = await AsyncStorage.getItem(key);
259
+ if (jsonValue === null) {
260
+ return defaultValue;
261
+ }
262
+
263
+ try {
264
+ return JSON.parse(jsonValue) as T;
265
+ } catch (parseError) {
266
+ // Corrupted data - clear and return default
267
+ console.warn(`Corrupted data for ${key}, resetting to default`);
268
+ await AsyncStorage.removeItem(key);
269
+ return defaultValue;
270
+ }
271
+ } catch (storageError) {
272
+ const message =
273
+ storageError instanceof Error ? storageError.message : "Unknown error";
274
+ console.error(`Storage error for ${key}:`, message);
275
+ return defaultValue;
276
+ }
277
+ };
278
+ ```
279
+
280
+ ## Security Considerations
281
+
282
+ ### Never Store Sensitive Data
283
+
284
+ AsyncStorage is unencrypted and readable by anyone with device access:
285
+
286
+ ```typescript
287
+ // NEVER store these in AsyncStorage:
288
+ // - Access tokens
289
+ // - Refresh tokens
290
+ // - Passwords
291
+ // - API keys
292
+ // - Personal identification numbers
293
+ // - Financial data
294
+
295
+ // Use expo-secure-store instead:
296
+ import * as SecureStore from "expo-secure-store";
297
+
298
+ const saveToken = async (token: string): Promise<void> => {
299
+ await SecureStore.setItemAsync("accessToken", token);
300
+ };
301
+
302
+ const getToken = async (): Promise<string | null> => {
303
+ return await SecureStore.getItemAsync("accessToken");
304
+ };
305
+ ```
306
+
307
+ ### What IS Safe for AsyncStorage
308
+
309
+ - User preferences (theme, language, notifications)
310
+ - Feature flags
311
+ - UI state (last viewed tab, collapsed sections)
312
+ - Non-sensitive cache data
313
+ - Onboarding completion flags
314
+ - Search history (non-sensitive queries)
315
+
316
+ ## Performance Best Practices
317
+
318
+ ### Use Batch Operations
319
+
320
+ ```typescript
321
+ // EFFICIENT - single batch operation
322
+ await AsyncStorage.multiSet([
323
+ ["@app:pref1", JSON.stringify(pref1)],
324
+ ["@app:pref2", JSON.stringify(pref2)],
325
+ ["@app:pref3", JSON.stringify(pref3)],
326
+ ]);
327
+
328
+ // INEFFICIENT - multiple sequential operations
329
+ await AsyncStorage.setItem("@app:pref1", JSON.stringify(pref1));
330
+ await AsyncStorage.setItem("@app:pref2", JSON.stringify(pref2));
331
+ await AsyncStorage.setItem("@app:pref3", JSON.stringify(pref3));
332
+ ```
333
+
334
+ ### Debounce Frequent Writes
335
+
336
+ For values that change frequently (e.g., form inputs):
337
+
338
+ ```typescript
339
+ import { useDebouncedCallback } from "use-debounce";
340
+
341
+ const usePersistedFilter = () => {
342
+ const [filter, setFilter] = useState("");
343
+
344
+ const persistFilter = useDebouncedCallback(
345
+ async (value: string) => {
346
+ try {
347
+ await AsyncStorage.setItem("@app:filter", value);
348
+ } catch (error) {
349
+ console.error("Failed to persist filter");
350
+ }
351
+ },
352
+ 500 // 500ms debounce
353
+ );
354
+
355
+ const updateFilter = useCallback(
356
+ (value: string) => {
357
+ setFilter(value);
358
+ persistFilter(value);
359
+ },
360
+ [persistFilter]
361
+ );
362
+
363
+ return { filter, updateFilter };
364
+ };
365
+ ```
366
+
367
+ ### Load Only What You Need
368
+
369
+ ```typescript
370
+ // EFFICIENT - load specific keys
371
+ const loadUserContext = async () => {
372
+ const keys = ["@app:user-prefs", "@app:theme"];
373
+ const results = await AsyncStorage.multiGet(keys);
374
+ return results.reduce(
375
+ (acc, [key, value]) => ({
376
+ ...acc,
377
+ [key]: value ? JSON.parse(value) : null,
378
+ }),
379
+ {} as Record<string, unknown>
380
+ );
381
+ };
382
+
383
+ // INEFFICIENT - loading all keys
384
+ const loadEverything = async () => {
385
+ const allKeys = await AsyncStorage.getAllKeys();
386
+ const allData = await AsyncStorage.multiGet(allKeys);
387
+ // Processing potentially hundreds of keys...
388
+ };
389
+ ```
390
+
391
+ ### Consider Storage Limits
392
+
393
+ ```typescript
394
+ // Check data size before storing
395
+ const safeStore = async <T>(key: string, data: T): Promise<boolean> => {
396
+ const serialized = JSON.stringify(data);
397
+ const sizeInBytes = new Blob([serialized]).size;
398
+
399
+ // Warn if approaching 2MB limit per key
400
+ if (sizeInBytes > 1_500_000) {
401
+ console.warn(
402
+ `Data for ${key} is ${(sizeInBytes / 1_000_000).toFixed(2)}MB`
403
+ );
404
+ }
405
+
406
+ if (sizeInBytes > 2_000_000) {
407
+ console.error(`Data for ${key} exceeds 2MB limit, not storing`);
408
+ return false;
409
+ }
410
+
411
+ try {
412
+ await AsyncStorage.setItem(key, serialized);
413
+ return true;
414
+ } catch (error) {
415
+ console.error("Storage failed:", error);
416
+ return false;
417
+ }
418
+ };
419
+ ```
420
+
421
+ ## Migration Patterns
422
+
423
+ ### Versioned Storage Keys
424
+
425
+ ```typescript
426
+ const STORAGE_VERSION = "v2";
427
+ const PREFS_KEY = `@app:preferences:${STORAGE_VERSION}`;
428
+
429
+ // Migration on app start
430
+ const migrateStorageIfNeeded = async (): Promise<void> => {
431
+ const allKeys = await AsyncStorage.getAllKeys();
432
+
433
+ // Find old version keys
434
+ const oldKeys = allKeys.filter(
435
+ key => key.startsWith("@app:preferences:") && !key.includes(STORAGE_VERSION)
436
+ );
437
+
438
+ if (oldKeys.length === 0) return;
439
+
440
+ // Migrate each old key
441
+ const migrations = oldKeys.map(async oldKey => {
442
+ try {
443
+ const oldData = await AsyncStorage.getItem(oldKey);
444
+ if (oldData) {
445
+ const parsed = JSON.parse(oldData);
446
+ const migrated = migratePreferences(parsed); // Your migration logic
447
+ await AsyncStorage.setItem(PREFS_KEY, JSON.stringify(migrated));
448
+ }
449
+ await AsyncStorage.removeItem(oldKey);
450
+ } catch (error) {
451
+ console.error(`Failed to migrate ${oldKey}:`, error);
452
+ }
453
+ });
454
+
455
+ await Promise.all(migrations);
456
+ };
457
+ ```
458
+
459
+ ### Schema Validation
460
+
461
+ ```typescript
462
+ interface StoredPreferences {
463
+ readonly theme: "light" | "dark";
464
+ readonly language: string;
465
+ readonly schemaVersion: number;
466
+ }
467
+
468
+ const CURRENT_SCHEMA_VERSION = 2;
469
+
470
+ const isValidPreferences = (data: unknown): data is StoredPreferences => {
471
+ if (typeof data !== "object" || data === null) return false;
472
+ const obj = data as Record<string, unknown>;
473
+ return (
474
+ (obj.theme === "light" || obj.theme === "dark") &&
475
+ typeof obj.language === "string" &&
476
+ typeof obj.schemaVersion === "number"
477
+ );
478
+ };
479
+
480
+ const loadPreferences = async (): Promise<StoredPreferences> => {
481
+ try {
482
+ const stored = await AsyncStorage.getItem(PREFS_KEY);
483
+ if (!stored) return DEFAULT_PREFERENCES;
484
+
485
+ const parsed = JSON.parse(stored);
486
+
487
+ if (!isValidPreferences(parsed)) {
488
+ console.warn("Invalid preferences schema, resetting");
489
+ await AsyncStorage.removeItem(PREFS_KEY);
490
+ return DEFAULT_PREFERENCES;
491
+ }
492
+
493
+ if (parsed.schemaVersion < CURRENT_SCHEMA_VERSION) {
494
+ const migrated = migrateToCurrentSchema(parsed);
495
+ await AsyncStorage.setItem(PREFS_KEY, JSON.stringify(migrated));
496
+ return migrated;
497
+ }
498
+
499
+ return parsed;
500
+ } catch (error) {
501
+ console.error("Failed to load preferences:", error);
502
+ return DEFAULT_PREFERENCES;
503
+ }
504
+ };
505
+ ```