@codyswann/lisa 1.56.1 → 1.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/.claude-plugin/marketplace.json +11 -5
  2. package/all/merge/.claude/settings.json +7 -0
  3. package/package.json +1 -1
  4. package/plugins/lisa/.claude-plugin/plugin.json +148 -0
  5. package/plugins/lisa-cdk/.claude-plugin/plugin.json +3 -159
  6. package/plugins/lisa-expo/.claude-plugin/plugin.json +2 -146
  7. package/plugins/lisa-expo/commands/jira/add-journey.md +1 -1
  8. package/plugins/lisa-expo/commands/jira/create.md +1 -1
  9. package/plugins/lisa-expo/commands/jira/evidence.md +1 -1
  10. package/plugins/lisa-expo/commands/jira/journey.md +1 -1
  11. package/plugins/lisa-expo/commands/jira/verify.md +1 -1
  12. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +3 -159
  13. package/plugins/lisa-rails/.claude-plugin/plugin.json +2 -120
  14. package/plugins/lisa-rails/commands/jira/add-journey.md +1 -1
  15. package/plugins/lisa-rails/commands/jira/create.md +1 -1
  16. package/plugins/lisa-rails/commands/jira/evidence.md +1 -1
  17. package/plugins/lisa-rails/commands/jira/journey.md +1 -1
  18. package/plugins/lisa-rails/commands/jira/verify.md +1 -1
  19. package/plugins/lisa-rails/commands/plan/add-test-coverage.md +1 -1
  20. package/plugins/lisa-rails/commands/plan/fix-linter-error.md +1 -1
  21. package/plugins/lisa-rails/commands/plan/lower-code-complexity.md +1 -1
  22. package/plugins/lisa-rails/commands/plan/reduce-max-lines-per-function.md +1 -1
  23. package/plugins/lisa-rails/commands/plan/reduce-max-lines.md +1 -1
  24. package/plugins/lisa-typescript/.claude-plugin/plugin.json +2 -127
  25. package/plugins/src/base/.claude-plugin/plugin.json +78 -0
  26. package/plugins/src/cdk/.claude-plugin/plugin.json +2 -81
  27. package/plugins/src/expo/.claude-plugin/plugin.json +1 -68
  28. package/plugins/{lisa-typescript → src/expo}/commands/jira/add-journey.md +1 -1
  29. package/plugins/{lisa-nestjs → src/expo}/commands/jira/create.md +1 -1
  30. package/plugins/{lisa-nestjs → src/expo}/commands/jira/evidence.md +1 -1
  31. package/plugins/{lisa-nestjs → src/expo}/commands/jira/journey.md +1 -1
  32. package/plugins/{lisa-nestjs → src/expo}/commands/jira/verify.md +1 -1
  33. package/plugins/src/nestjs/.claude-plugin/plugin.json +2 -81
  34. package/plugins/src/rails/.claude-plugin/plugin.json +1 -59
  35. package/plugins/{lisa-nestjs → src/rails}/commands/jira/add-journey.md +1 -1
  36. package/plugins/{lisa-typescript → src/rails}/commands/jira/create.md +1 -1
  37. package/plugins/{lisa-typescript → src/rails}/commands/jira/evidence.md +1 -1
  38. package/plugins/{lisa-typescript → src/rails}/commands/jira/journey.md +1 -1
  39. package/plugins/{lisa-typescript → src/rails}/commands/jira/verify.md +1 -1
  40. package/plugins/{lisa-expo → src/rails}/commands/plan/add-test-coverage.md +1 -1
  41. package/plugins/{lisa-expo → src/rails}/commands/plan/fix-linter-error.md +1 -1
  42. package/plugins/{lisa-expo → src/rails}/commands/plan/lower-code-complexity.md +1 -1
  43. package/plugins/{lisa-expo → src/rails}/commands/plan/reduce-max-lines-per-function.md +1 -1
  44. package/plugins/{lisa-expo → src/rails}/commands/plan/reduce-max-lines.md +1 -1
  45. package/plugins/src/typescript/.claude-plugin/plugin.json +1 -58
  46. package/scripts/build-plugins.sh +30 -17
  47. package/scripts/install-claude-plugins.sh +28 -11
  48. package/typescript/merge/.claude/settings.json +2 -2
  49. package/plugins/lisa-expo/agents/agent-architect.md +0 -310
  50. package/plugins/lisa-expo/agents/architecture-specialist.md +0 -53
  51. package/plugins/lisa-expo/agents/debug-specialist.md +0 -204
  52. package/plugins/lisa-expo/agents/git-history-analyzer.md +0 -183
  53. package/plugins/lisa-expo/agents/hooks-expert.md +0 -74
  54. package/plugins/lisa-expo/agents/implementer.md +0 -54
  55. package/plugins/lisa-expo/agents/learner.md +0 -44
  56. package/plugins/lisa-expo/agents/performance-specialist.md +0 -95
  57. package/plugins/lisa-expo/agents/product-specialist.md +0 -72
  58. package/plugins/lisa-expo/agents/quality-specialist.md +0 -55
  59. package/plugins/lisa-expo/agents/security-specialist.md +0 -58
  60. package/plugins/lisa-expo/agents/skill-evaluator.md +0 -246
  61. package/plugins/lisa-expo/agents/slash-command-architect.md +0 -87
  62. package/plugins/lisa-expo/agents/test-specialist.md +0 -64
  63. package/plugins/lisa-expo/agents/verification-specialist.md +0 -189
  64. package/plugins/lisa-expo/agents/web-search-researcher.md +0 -112
  65. package/plugins/lisa-expo/commands/git/commit-and-submit-pr.md +0 -7
  66. package/plugins/lisa-expo/commands/git/commit-submit-pr-and-verify.md +0 -7
  67. package/plugins/lisa-expo/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  68. package/plugins/lisa-expo/commands/git/commit.md +0 -7
  69. package/plugins/lisa-expo/commands/git/prune.md +0 -6
  70. package/plugins/lisa-expo/commands/git/submit-pr.md +0 -7
  71. package/plugins/lisa-expo/commands/jira/fix.md +0 -7
  72. package/plugins/lisa-expo/commands/jira/implement.md +0 -7
  73. package/plugins/lisa-expo/commands/jira/sync.md +0 -7
  74. package/plugins/lisa-expo/commands/plan/create.md +0 -6
  75. package/plugins/lisa-expo/commands/plan/execute.md +0 -7
  76. package/plugins/lisa-expo/commands/plan/local-code-review.md +0 -6
  77. package/plugins/lisa-expo/commands/pull-request/review.md +0 -7
  78. package/plugins/lisa-expo/commands/review/implementation.md +0 -7
  79. package/plugins/lisa-expo/commands/security/zap-scan.md +0 -6
  80. package/plugins/lisa-expo/commands/sonarqube/check.md +0 -6
  81. package/plugins/lisa-expo/commands/sonarqube/fix.md +0 -6
  82. package/plugins/lisa-expo/commands/tasks/load.md +0 -7
  83. package/plugins/lisa-expo/commands/tasks/sync.md +0 -7
  84. package/plugins/lisa-expo/hooks/debug-hook.sh +0 -47
  85. package/plugins/lisa-expo/hooks/enforce-plan-rules.sh +0 -15
  86. package/plugins/lisa-expo/hooks/format-on-edit.sh +0 -76
  87. package/plugins/lisa-expo/hooks/install-pkgs.sh +0 -64
  88. package/plugins/lisa-expo/hooks/lint-on-edit.sh +0 -81
  89. package/plugins/lisa-expo/hooks/notify-ntfy.sh +0 -183
  90. package/plugins/lisa-expo/hooks/setup-jira-cli.sh +0 -52
  91. package/plugins/lisa-expo/hooks/sg-scan-on-edit.sh +0 -68
  92. package/plugins/lisa-expo/hooks/sync-tasks.sh +0 -107
  93. package/plugins/lisa-expo/hooks/ticket-sync-reminder.sh +0 -23
  94. package/plugins/lisa-expo/hooks/track-plan-sessions.sh +0 -164
  95. package/plugins/lisa-expo/hooks/verify-completion.sh +0 -77
  96. package/plugins/lisa-expo/rules/README.md +0 -240
  97. package/plugins/lisa-expo/rules/coding-philosophy.md +0 -428
  98. package/plugins/lisa-expo/rules/lisa.md +0 -37
  99. package/plugins/lisa-expo/rules/verfication.md +0 -596
  100. package/plugins/lisa-expo/skills/agent-design-best-practices/SKILL.md +0 -219
  101. package/plugins/lisa-expo/skills/git-commit/SKILL.md +0 -48
  102. package/plugins/lisa-expo/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  103. package/plugins/lisa-expo/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  104. package/plugins/lisa-expo/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  105. package/plugins/lisa-expo/skills/git-prune/SKILL.md +0 -35
  106. package/plugins/lisa-expo/skills/git-submit-pr/SKILL.md +0 -44
  107. package/plugins/lisa-expo/skills/jira-fix/SKILL.md +0 -16
  108. package/plugins/lisa-expo/skills/jira-implement/SKILL.md +0 -18
  109. package/plugins/lisa-expo/skills/jira-sync/SKILL.md +0 -63
  110. package/plugins/lisa-expo/skills/jsdoc-best-practices/SKILL.md +0 -432
  111. package/plugins/lisa-expo/skills/lisa-review-implementation/SKILL.md +0 -209
  112. package/plugins/lisa-expo/skills/plan-add-test-coverage/SKILL.md +0 -44
  113. package/plugins/lisa-expo/skills/plan-execute/SKILL.md +0 -89
  114. package/plugins/lisa-expo/skills/plan-fix-linter-error/SKILL.md +0 -45
  115. package/plugins/lisa-expo/skills/plan-local-code-review/SKILL.md +0 -88
  116. package/plugins/lisa-expo/skills/plan-lower-code-complexity/SKILL.md +0 -44
  117. package/plugins/lisa-expo/skills/plan-reduce-max-lines/SKILL.md +0 -45
  118. package/plugins/lisa-expo/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  119. package/plugins/lisa-expo/skills/pull-request-review/SKILL.md +0 -68
  120. package/plugins/lisa-expo/skills/security-zap-scan/SKILL.md +0 -33
  121. package/plugins/lisa-expo/skills/sonarqube-check/SKILL.md +0 -11
  122. package/plugins/lisa-expo/skills/sonarqube-fix/SKILL.md +0 -8
  123. package/plugins/lisa-expo/skills/tasks-load/SKILL.md +0 -88
  124. package/plugins/lisa-expo/skills/tasks-sync/SKILL.md +0 -108
  125. package/plugins/lisa-nestjs/agents/agent-architect.md +0 -310
  126. package/plugins/lisa-nestjs/agents/architecture-specialist.md +0 -53
  127. package/plugins/lisa-nestjs/agents/debug-specialist.md +0 -204
  128. package/plugins/lisa-nestjs/agents/git-history-analyzer.md +0 -183
  129. package/plugins/lisa-nestjs/agents/hooks-expert.md +0 -74
  130. package/plugins/lisa-nestjs/agents/implementer.md +0 -54
  131. package/plugins/lisa-nestjs/agents/learner.md +0 -44
  132. package/plugins/lisa-nestjs/agents/performance-specialist.md +0 -95
  133. package/plugins/lisa-nestjs/agents/product-specialist.md +0 -72
  134. package/plugins/lisa-nestjs/agents/quality-specialist.md +0 -55
  135. package/plugins/lisa-nestjs/agents/security-specialist.md +0 -58
  136. package/plugins/lisa-nestjs/agents/skill-evaluator.md +0 -246
  137. package/plugins/lisa-nestjs/agents/slash-command-architect.md +0 -87
  138. package/plugins/lisa-nestjs/agents/test-specialist.md +0 -64
  139. package/plugins/lisa-nestjs/agents/verification-specialist.md +0 -189
  140. package/plugins/lisa-nestjs/agents/web-search-researcher.md +0 -112
  141. package/plugins/lisa-nestjs/commands/git/commit-and-submit-pr.md +0 -7
  142. package/plugins/lisa-nestjs/commands/git/commit-submit-pr-and-verify.md +0 -7
  143. package/plugins/lisa-nestjs/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  144. package/plugins/lisa-nestjs/commands/git/commit.md +0 -7
  145. package/plugins/lisa-nestjs/commands/git/prune.md +0 -6
  146. package/plugins/lisa-nestjs/commands/git/submit-pr.md +0 -7
  147. package/plugins/lisa-nestjs/commands/jira/fix.md +0 -7
  148. package/plugins/lisa-nestjs/commands/jira/implement.md +0 -7
  149. package/plugins/lisa-nestjs/commands/jira/sync.md +0 -7
  150. package/plugins/lisa-nestjs/commands/plan/add-test-coverage.md +0 -7
  151. package/plugins/lisa-nestjs/commands/plan/create.md +0 -6
  152. package/plugins/lisa-nestjs/commands/plan/execute.md +0 -7
  153. package/plugins/lisa-nestjs/commands/plan/fix-linter-error.md +0 -7
  154. package/plugins/lisa-nestjs/commands/plan/local-code-review.md +0 -6
  155. package/plugins/lisa-nestjs/commands/plan/lower-code-complexity.md +0 -6
  156. package/plugins/lisa-nestjs/commands/plan/reduce-max-lines-per-function.md +0 -7
  157. package/plugins/lisa-nestjs/commands/plan/reduce-max-lines.md +0 -7
  158. package/plugins/lisa-nestjs/commands/pull-request/review.md +0 -7
  159. package/plugins/lisa-nestjs/commands/review/implementation.md +0 -7
  160. package/plugins/lisa-nestjs/commands/security/zap-scan.md +0 -6
  161. package/plugins/lisa-nestjs/commands/sonarqube/check.md +0 -6
  162. package/plugins/lisa-nestjs/commands/sonarqube/fix.md +0 -6
  163. package/plugins/lisa-nestjs/commands/tasks/load.md +0 -7
  164. package/plugins/lisa-nestjs/commands/tasks/sync.md +0 -7
  165. package/plugins/lisa-nestjs/hooks/debug-hook.sh +0 -47
  166. package/plugins/lisa-nestjs/hooks/enforce-plan-rules.sh +0 -15
  167. package/plugins/lisa-nestjs/hooks/format-on-edit.sh +0 -76
  168. package/plugins/lisa-nestjs/hooks/install-pkgs.sh +0 -64
  169. package/plugins/lisa-nestjs/hooks/lint-on-edit.sh +0 -81
  170. package/plugins/lisa-nestjs/hooks/notify-ntfy.sh +0 -183
  171. package/plugins/lisa-nestjs/hooks/setup-jira-cli.sh +0 -52
  172. package/plugins/lisa-nestjs/hooks/sg-scan-on-edit.sh +0 -68
  173. package/plugins/lisa-nestjs/hooks/sync-tasks.sh +0 -107
  174. package/plugins/lisa-nestjs/hooks/ticket-sync-reminder.sh +0 -23
  175. package/plugins/lisa-nestjs/hooks/track-plan-sessions.sh +0 -164
  176. package/plugins/lisa-nestjs/hooks/verify-completion.sh +0 -77
  177. package/plugins/lisa-nestjs/rules/README.md +0 -240
  178. package/plugins/lisa-nestjs/rules/coding-philosophy.md +0 -428
  179. package/plugins/lisa-nestjs/rules/lisa.md +0 -37
  180. package/plugins/lisa-nestjs/rules/verfication.md +0 -596
  181. package/plugins/lisa-nestjs/skills/agent-design-best-practices/SKILL.md +0 -219
  182. package/plugins/lisa-nestjs/skills/git-commit/SKILL.md +0 -48
  183. package/plugins/lisa-nestjs/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  184. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  185. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  186. package/plugins/lisa-nestjs/skills/git-prune/SKILL.md +0 -35
  187. package/plugins/lisa-nestjs/skills/git-submit-pr/SKILL.md +0 -44
  188. package/plugins/lisa-nestjs/skills/jira-add-journey/SKILL.md +0 -120
  189. package/plugins/lisa-nestjs/skills/jira-create/SKILL.md +0 -95
  190. package/plugins/lisa-nestjs/skills/jira-evidence/SKILL.md +0 -73
  191. package/plugins/lisa-nestjs/skills/jira-evidence/scripts/post-evidence.sh +0 -163
  192. package/plugins/lisa-nestjs/skills/jira-fix/SKILL.md +0 -16
  193. package/plugins/lisa-nestjs/skills/jira-implement/SKILL.md +0 -18
  194. package/plugins/lisa-nestjs/skills/jira-journey/SKILL.md +0 -125
  195. package/plugins/lisa-nestjs/skills/jira-journey/scripts/generate-templates.py +0 -233
  196. package/plugins/lisa-nestjs/skills/jira-journey/scripts/parse-plan.py +0 -368
  197. package/plugins/lisa-nestjs/skills/jira-sync/SKILL.md +0 -63
  198. package/plugins/lisa-nestjs/skills/jira-verify/SKILL.md +0 -48
  199. package/plugins/lisa-nestjs/skills/jsdoc-best-practices/SKILL.md +0 -432
  200. package/plugins/lisa-nestjs/skills/lisa-review-implementation/SKILL.md +0 -209
  201. package/plugins/lisa-nestjs/skills/plan-add-test-coverage/SKILL.md +0 -44
  202. package/plugins/lisa-nestjs/skills/plan-execute/SKILL.md +0 -89
  203. package/plugins/lisa-nestjs/skills/plan-fix-linter-error/SKILL.md +0 -45
  204. package/plugins/lisa-nestjs/skills/plan-local-code-review/SKILL.md +0 -88
  205. package/plugins/lisa-nestjs/skills/plan-lower-code-complexity/SKILL.md +0 -44
  206. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines/SKILL.md +0 -45
  207. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  208. package/plugins/lisa-nestjs/skills/pull-request-review/SKILL.md +0 -68
  209. package/plugins/lisa-nestjs/skills/security-zap-scan/SKILL.md +0 -33
  210. package/plugins/lisa-nestjs/skills/sonarqube-check/SKILL.md +0 -11
  211. package/plugins/lisa-nestjs/skills/sonarqube-fix/SKILL.md +0 -8
  212. package/plugins/lisa-nestjs/skills/tasks-load/SKILL.md +0 -88
  213. package/plugins/lisa-nestjs/skills/tasks-sync/SKILL.md +0 -108
  214. package/plugins/lisa-rails/agents/agent-architect.md +0 -310
  215. package/plugins/lisa-rails/agents/architecture-specialist.md +0 -53
  216. package/plugins/lisa-rails/agents/debug-specialist.md +0 -204
  217. package/plugins/lisa-rails/agents/git-history-analyzer.md +0 -183
  218. package/plugins/lisa-rails/agents/hooks-expert.md +0 -74
  219. package/plugins/lisa-rails/agents/implementer.md +0 -54
  220. package/plugins/lisa-rails/agents/learner.md +0 -44
  221. package/plugins/lisa-rails/agents/performance-specialist.md +0 -95
  222. package/plugins/lisa-rails/agents/product-specialist.md +0 -72
  223. package/plugins/lisa-rails/agents/quality-specialist.md +0 -55
  224. package/plugins/lisa-rails/agents/security-specialist.md +0 -58
  225. package/plugins/lisa-rails/agents/skill-evaluator.md +0 -246
  226. package/plugins/lisa-rails/agents/slash-command-architect.md +0 -87
  227. package/plugins/lisa-rails/agents/test-specialist.md +0 -64
  228. package/plugins/lisa-rails/agents/verification-specialist.md +0 -189
  229. package/plugins/lisa-rails/agents/web-search-researcher.md +0 -112
  230. package/plugins/lisa-rails/commands/git/commit-and-submit-pr.md +0 -7
  231. package/plugins/lisa-rails/commands/git/commit-submit-pr-and-verify.md +0 -7
  232. package/plugins/lisa-rails/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  233. package/plugins/lisa-rails/commands/git/commit.md +0 -7
  234. package/plugins/lisa-rails/commands/git/prune.md +0 -6
  235. package/plugins/lisa-rails/commands/git/submit-pr.md +0 -7
  236. package/plugins/lisa-rails/commands/jira/fix.md +0 -7
  237. package/plugins/lisa-rails/commands/jira/implement.md +0 -7
  238. package/plugins/lisa-rails/commands/jira/sync.md +0 -7
  239. package/plugins/lisa-rails/commands/plan/create.md +0 -6
  240. package/plugins/lisa-rails/commands/plan/execute.md +0 -7
  241. package/plugins/lisa-rails/commands/plan/local-code-review.md +0 -6
  242. package/plugins/lisa-rails/commands/pull-request/review.md +0 -7
  243. package/plugins/lisa-rails/commands/review/implementation.md +0 -7
  244. package/plugins/lisa-rails/commands/security/zap-scan.md +0 -6
  245. package/plugins/lisa-rails/commands/sonarqube/check.md +0 -6
  246. package/plugins/lisa-rails/commands/sonarqube/fix.md +0 -6
  247. package/plugins/lisa-rails/commands/tasks/load.md +0 -7
  248. package/plugins/lisa-rails/commands/tasks/sync.md +0 -7
  249. package/plugins/lisa-rails/hooks/debug-hook.sh +0 -47
  250. package/plugins/lisa-rails/hooks/enforce-plan-rules.sh +0 -15
  251. package/plugins/lisa-rails/hooks/format-on-edit.sh +0 -76
  252. package/plugins/lisa-rails/hooks/install-pkgs.sh +0 -64
  253. package/plugins/lisa-rails/hooks/lint-on-edit.sh +0 -81
  254. package/plugins/lisa-rails/hooks/notify-ntfy.sh +0 -183
  255. package/plugins/lisa-rails/hooks/setup-jira-cli.sh +0 -52
  256. package/plugins/lisa-rails/hooks/sg-scan-on-edit.sh +0 -68
  257. package/plugins/lisa-rails/hooks/sync-tasks.sh +0 -107
  258. package/plugins/lisa-rails/hooks/ticket-sync-reminder.sh +0 -23
  259. package/plugins/lisa-rails/hooks/track-plan-sessions.sh +0 -164
  260. package/plugins/lisa-rails/hooks/verify-completion.sh +0 -77
  261. package/plugins/lisa-rails/rules/README.md +0 -240
  262. package/plugins/lisa-rails/rules/coding-philosophy.md +0 -428
  263. package/plugins/lisa-rails/rules/verfication.md +0 -596
  264. package/plugins/lisa-rails/skills/agent-design-best-practices/SKILL.md +0 -219
  265. package/plugins/lisa-rails/skills/git-commit/SKILL.md +0 -48
  266. package/plugins/lisa-rails/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  267. package/plugins/lisa-rails/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  268. package/plugins/lisa-rails/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  269. package/plugins/lisa-rails/skills/git-prune/SKILL.md +0 -35
  270. package/plugins/lisa-rails/skills/git-submit-pr/SKILL.md +0 -44
  271. package/plugins/lisa-rails/skills/jira-fix/SKILL.md +0 -16
  272. package/plugins/lisa-rails/skills/jira-implement/SKILL.md +0 -18
  273. package/plugins/lisa-rails/skills/jira-journey/scripts/generate-templates.py +0 -233
  274. package/plugins/lisa-rails/skills/jira-journey/scripts/parse-plan.py +0 -368
  275. package/plugins/lisa-rails/skills/jira-sync/SKILL.md +0 -63
  276. package/plugins/lisa-rails/skills/jsdoc-best-practices/SKILL.md +0 -432
  277. package/plugins/lisa-rails/skills/lisa-review-implementation/SKILL.md +0 -209
  278. package/plugins/lisa-rails/skills/plan-execute/SKILL.md +0 -89
  279. package/plugins/lisa-rails/skills/plan-local-code-review/SKILL.md +0 -88
  280. package/plugins/lisa-rails/skills/pull-request-review/SKILL.md +0 -68
  281. package/plugins/lisa-rails/skills/security-zap-scan/SKILL.md +0 -33
  282. package/plugins/lisa-rails/skills/sonarqube-check/SKILL.md +0 -11
  283. package/plugins/lisa-rails/skills/sonarqube-fix/SKILL.md +0 -8
  284. package/plugins/lisa-rails/skills/tasks-load/SKILL.md +0 -88
  285. package/plugins/lisa-rails/skills/tasks-sync/SKILL.md +0 -108
  286. package/plugins/lisa-typescript/agents/agent-architect.md +0 -310
  287. package/plugins/lisa-typescript/agents/architecture-specialist.md +0 -53
  288. package/plugins/lisa-typescript/agents/debug-specialist.md +0 -204
  289. package/plugins/lisa-typescript/agents/git-history-analyzer.md +0 -183
  290. package/plugins/lisa-typescript/agents/hooks-expert.md +0 -74
  291. package/plugins/lisa-typescript/agents/implementer.md +0 -54
  292. package/plugins/lisa-typescript/agents/learner.md +0 -44
  293. package/plugins/lisa-typescript/agents/performance-specialist.md +0 -95
  294. package/plugins/lisa-typescript/agents/product-specialist.md +0 -72
  295. package/plugins/lisa-typescript/agents/quality-specialist.md +0 -55
  296. package/plugins/lisa-typescript/agents/security-specialist.md +0 -58
  297. package/plugins/lisa-typescript/agents/skill-evaluator.md +0 -246
  298. package/plugins/lisa-typescript/agents/slash-command-architect.md +0 -87
  299. package/plugins/lisa-typescript/agents/test-specialist.md +0 -64
  300. package/plugins/lisa-typescript/agents/verification-specialist.md +0 -189
  301. package/plugins/lisa-typescript/agents/web-search-researcher.md +0 -112
  302. package/plugins/lisa-typescript/commands/git/commit-and-submit-pr.md +0 -7
  303. package/plugins/lisa-typescript/commands/git/commit-submit-pr-and-verify.md +0 -7
  304. package/plugins/lisa-typescript/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  305. package/plugins/lisa-typescript/commands/git/commit.md +0 -7
  306. package/plugins/lisa-typescript/commands/git/prune.md +0 -6
  307. package/plugins/lisa-typescript/commands/git/submit-pr.md +0 -7
  308. package/plugins/lisa-typescript/commands/jira/fix.md +0 -7
  309. package/plugins/lisa-typescript/commands/jira/implement.md +0 -7
  310. package/plugins/lisa-typescript/commands/jira/sync.md +0 -7
  311. package/plugins/lisa-typescript/commands/plan/add-test-coverage.md +0 -7
  312. package/plugins/lisa-typescript/commands/plan/create.md +0 -6
  313. package/plugins/lisa-typescript/commands/plan/execute.md +0 -7
  314. package/plugins/lisa-typescript/commands/plan/fix-linter-error.md +0 -7
  315. package/plugins/lisa-typescript/commands/plan/local-code-review.md +0 -6
  316. package/plugins/lisa-typescript/commands/plan/lower-code-complexity.md +0 -6
  317. package/plugins/lisa-typescript/commands/plan/reduce-max-lines-per-function.md +0 -7
  318. package/plugins/lisa-typescript/commands/plan/reduce-max-lines.md +0 -7
  319. package/plugins/lisa-typescript/commands/pull-request/review.md +0 -7
  320. package/plugins/lisa-typescript/commands/review/implementation.md +0 -7
  321. package/plugins/lisa-typescript/commands/security/zap-scan.md +0 -6
  322. package/plugins/lisa-typescript/commands/sonarqube/check.md +0 -6
  323. package/plugins/lisa-typescript/commands/sonarqube/fix.md +0 -6
  324. package/plugins/lisa-typescript/commands/tasks/load.md +0 -7
  325. package/plugins/lisa-typescript/commands/tasks/sync.md +0 -7
  326. package/plugins/lisa-typescript/hooks/debug-hook.sh +0 -47
  327. package/plugins/lisa-typescript/hooks/enforce-plan-rules.sh +0 -15
  328. package/plugins/lisa-typescript/hooks/install-pkgs.sh +0 -64
  329. package/plugins/lisa-typescript/hooks/notify-ntfy.sh +0 -183
  330. package/plugins/lisa-typescript/hooks/setup-jira-cli.sh +0 -52
  331. package/plugins/lisa-typescript/hooks/sync-tasks.sh +0 -107
  332. package/plugins/lisa-typescript/hooks/ticket-sync-reminder.sh +0 -23
  333. package/plugins/lisa-typescript/hooks/track-plan-sessions.sh +0 -164
  334. package/plugins/lisa-typescript/hooks/verify-completion.sh +0 -77
  335. package/plugins/lisa-typescript/rules/README.md +0 -240
  336. package/plugins/lisa-typescript/rules/coding-philosophy.md +0 -428
  337. package/plugins/lisa-typescript/rules/verfication.md +0 -596
  338. package/plugins/lisa-typescript/skills/agent-design-best-practices/SKILL.md +0 -219
  339. package/plugins/lisa-typescript/skills/git-commit/SKILL.md +0 -48
  340. package/plugins/lisa-typescript/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  341. package/plugins/lisa-typescript/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  342. package/plugins/lisa-typescript/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  343. package/plugins/lisa-typescript/skills/git-prune/SKILL.md +0 -35
  344. package/plugins/lisa-typescript/skills/git-submit-pr/SKILL.md +0 -44
  345. package/plugins/lisa-typescript/skills/jira-add-journey/SKILL.md +0 -120
  346. package/plugins/lisa-typescript/skills/jira-create/SKILL.md +0 -95
  347. package/plugins/lisa-typescript/skills/jira-evidence/SKILL.md +0 -73
  348. package/plugins/lisa-typescript/skills/jira-evidence/scripts/post-evidence.sh +0 -163
  349. package/plugins/lisa-typescript/skills/jira-fix/SKILL.md +0 -16
  350. package/plugins/lisa-typescript/skills/jira-implement/SKILL.md +0 -18
  351. package/plugins/lisa-typescript/skills/jira-journey/SKILL.md +0 -125
  352. package/plugins/lisa-typescript/skills/jira-journey/scripts/generate-templates.py +0 -233
  353. package/plugins/lisa-typescript/skills/jira-journey/scripts/parse-plan.py +0 -368
  354. package/plugins/lisa-typescript/skills/jira-sync/SKILL.md +0 -63
  355. package/plugins/lisa-typescript/skills/jira-verify/SKILL.md +0 -48
  356. package/plugins/lisa-typescript/skills/jsdoc-best-practices/SKILL.md +0 -432
  357. package/plugins/lisa-typescript/skills/lisa-review-implementation/SKILL.md +0 -209
  358. package/plugins/lisa-typescript/skills/plan-add-test-coverage/SKILL.md +0 -44
  359. package/plugins/lisa-typescript/skills/plan-execute/SKILL.md +0 -89
  360. package/plugins/lisa-typescript/skills/plan-fix-linter-error/SKILL.md +0 -45
  361. package/plugins/lisa-typescript/skills/plan-local-code-review/SKILL.md +0 -88
  362. package/plugins/lisa-typescript/skills/plan-lower-code-complexity/SKILL.md +0 -44
  363. package/plugins/lisa-typescript/skills/plan-reduce-max-lines/SKILL.md +0 -45
  364. package/plugins/lisa-typescript/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  365. package/plugins/lisa-typescript/skills/pull-request-review/SKILL.md +0 -68
  366. package/plugins/lisa-typescript/skills/security-zap-scan/SKILL.md +0 -33
  367. package/plugins/lisa-typescript/skills/sonarqube-check/SKILL.md +0 -11
  368. package/plugins/lisa-typescript/skills/sonarqube-fix/SKILL.md +0 -8
  369. package/plugins/lisa-typescript/skills/tasks-load/SKILL.md +0 -88
  370. package/plugins/lisa-typescript/skills/tasks-sync/SKILL.md +0 -108
  371. package/plugins/src/base/hooks/format-on-edit.sh +0 -76
  372. package/plugins/src/base/hooks/lint-on-edit.sh +0 -81
  373. package/plugins/src/base/hooks/sg-scan-on-edit.sh +0 -68
  374. package/plugins/src/base/rules/lisa.md +0 -37
  375. /package/plugins/{lisa-cdk → lisa}/agents/agent-architect.md +0 -0
  376. /package/plugins/{lisa-cdk → lisa}/agents/architecture-specialist.md +0 -0
  377. /package/plugins/{lisa-cdk → lisa}/agents/debug-specialist.md +0 -0
  378. /package/plugins/{lisa-cdk → lisa}/agents/git-history-analyzer.md +0 -0
  379. /package/plugins/{lisa-cdk → lisa}/agents/hooks-expert.md +0 -0
  380. /package/plugins/{lisa-cdk → lisa}/agents/implementer.md +0 -0
  381. /package/plugins/{lisa-cdk → lisa}/agents/learner.md +0 -0
  382. /package/plugins/{lisa-cdk → lisa}/agents/performance-specialist.md +0 -0
  383. /package/plugins/{lisa-cdk → lisa}/agents/product-specialist.md +0 -0
  384. /package/plugins/{lisa-cdk → lisa}/agents/quality-specialist.md +0 -0
  385. /package/plugins/{lisa-cdk → lisa}/agents/security-specialist.md +0 -0
  386. /package/plugins/{lisa-cdk → lisa}/agents/skill-evaluator.md +0 -0
  387. /package/plugins/{lisa-cdk → lisa}/agents/slash-command-architect.md +0 -0
  388. /package/plugins/{lisa-cdk → lisa}/agents/test-specialist.md +0 -0
  389. /package/plugins/{lisa-cdk → lisa}/agents/verification-specialist.md +0 -0
  390. /package/plugins/{lisa-cdk → lisa}/agents/web-search-researcher.md +0 -0
  391. /package/plugins/{lisa-cdk → lisa}/commands/git/commit-and-submit-pr.md +0 -0
  392. /package/plugins/{lisa-cdk → lisa}/commands/git/commit-submit-pr-and-verify.md +0 -0
  393. /package/plugins/{lisa-cdk → lisa}/commands/git/commit-submit-pr-deploy-and-verify.md +0 -0
  394. /package/plugins/{lisa-cdk → lisa}/commands/git/commit.md +0 -0
  395. /package/plugins/{lisa-cdk → lisa}/commands/git/prune.md +0 -0
  396. /package/plugins/{lisa-cdk → lisa}/commands/git/submit-pr.md +0 -0
  397. /package/plugins/{lisa-cdk → lisa}/commands/jira/add-journey.md +0 -0
  398. /package/plugins/{lisa-cdk → lisa}/commands/jira/create.md +0 -0
  399. /package/plugins/{lisa-cdk → lisa}/commands/jira/evidence.md +0 -0
  400. /package/plugins/{lisa-cdk → lisa}/commands/jira/fix.md +0 -0
  401. /package/plugins/{lisa-cdk → lisa}/commands/jira/implement.md +0 -0
  402. /package/plugins/{lisa-cdk → lisa}/commands/jira/journey.md +0 -0
  403. /package/plugins/{lisa-cdk → lisa}/commands/jira/sync.md +0 -0
  404. /package/plugins/{lisa-cdk → lisa}/commands/jira/verify.md +0 -0
  405. /package/plugins/{lisa-cdk → lisa}/commands/plan/add-test-coverage.md +0 -0
  406. /package/plugins/{lisa-cdk → lisa}/commands/plan/create.md +0 -0
  407. /package/plugins/{lisa-cdk → lisa}/commands/plan/execute.md +0 -0
  408. /package/plugins/{lisa-cdk → lisa}/commands/plan/fix-linter-error.md +0 -0
  409. /package/plugins/{lisa-cdk → lisa}/commands/plan/local-code-review.md +0 -0
  410. /package/plugins/{lisa-cdk → lisa}/commands/plan/lower-code-complexity.md +0 -0
  411. /package/plugins/{lisa-cdk → lisa}/commands/plan/reduce-max-lines-per-function.md +0 -0
  412. /package/plugins/{lisa-cdk → lisa}/commands/plan/reduce-max-lines.md +0 -0
  413. /package/plugins/{lisa-cdk → lisa}/commands/pull-request/review.md +0 -0
  414. /package/plugins/{lisa-cdk → lisa}/commands/review/implementation.md +0 -0
  415. /package/plugins/{lisa-cdk → lisa}/commands/security/zap-scan.md +0 -0
  416. /package/plugins/{lisa-cdk → lisa}/commands/sonarqube/check.md +0 -0
  417. /package/plugins/{lisa-cdk → lisa}/commands/sonarqube/fix.md +0 -0
  418. /package/plugins/{lisa-cdk → lisa}/commands/tasks/load.md +0 -0
  419. /package/plugins/{lisa-cdk → lisa}/commands/tasks/sync.md +0 -0
  420. /package/plugins/{lisa-cdk → lisa}/hooks/debug-hook.sh +0 -0
  421. /package/plugins/{lisa-cdk → lisa}/hooks/enforce-plan-rules.sh +0 -0
  422. /package/plugins/{lisa-cdk → lisa}/hooks/install-pkgs.sh +0 -0
  423. /package/plugins/{lisa-cdk → lisa}/hooks/notify-ntfy.sh +0 -0
  424. /package/plugins/{lisa-cdk → lisa}/hooks/setup-jira-cli.sh +0 -0
  425. /package/plugins/{lisa-cdk → lisa}/hooks/sync-tasks.sh +0 -0
  426. /package/plugins/{lisa-cdk → lisa}/hooks/ticket-sync-reminder.sh +0 -0
  427. /package/plugins/{lisa-cdk → lisa}/hooks/track-plan-sessions.sh +0 -0
  428. /package/plugins/{lisa-cdk → lisa}/hooks/verify-completion.sh +0 -0
  429. /package/plugins/{lisa-cdk → lisa}/rules/README.md +0 -0
  430. /package/plugins/{lisa-cdk → lisa}/rules/coding-philosophy.md +0 -0
  431. /package/plugins/{lisa-cdk → lisa}/rules/verfication.md +0 -0
  432. /package/plugins/{lisa-cdk → lisa}/skills/agent-design-best-practices/SKILL.md +0 -0
  433. /package/plugins/{lisa-cdk → lisa}/skills/git-commit/SKILL.md +0 -0
  434. /package/plugins/{lisa-cdk → lisa}/skills/git-commit-and-submit-pr/SKILL.md +0 -0
  435. /package/plugins/{lisa-cdk → lisa}/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -0
  436. /package/plugins/{lisa-cdk → lisa}/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -0
  437. /package/plugins/{lisa-cdk → lisa}/skills/git-prune/SKILL.md +0 -0
  438. /package/plugins/{lisa-cdk → lisa}/skills/git-submit-pr/SKILL.md +0 -0
  439. /package/plugins/{lisa-cdk → lisa}/skills/jira-add-journey/SKILL.md +0 -0
  440. /package/plugins/{lisa-cdk → lisa}/skills/jira-create/SKILL.md +0 -0
  441. /package/plugins/{lisa-cdk → lisa}/skills/jira-evidence/SKILL.md +0 -0
  442. /package/plugins/{lisa-cdk → lisa}/skills/jira-evidence/scripts/post-evidence.sh +0 -0
  443. /package/plugins/{lisa-cdk → lisa}/skills/jira-fix/SKILL.md +0 -0
  444. /package/plugins/{lisa-cdk → lisa}/skills/jira-implement/SKILL.md +0 -0
  445. /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/SKILL.md +0 -0
  446. /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/scripts/generate-templates.py +0 -0
  447. /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/scripts/parse-plan.py +0 -0
  448. /package/plugins/{lisa-cdk → lisa}/skills/jira-sync/SKILL.md +0 -0
  449. /package/plugins/{lisa-cdk → lisa}/skills/jira-verify/SKILL.md +0 -0
  450. /package/plugins/{lisa-cdk → lisa}/skills/jsdoc-best-practices/SKILL.md +0 -0
  451. /package/plugins/{lisa-cdk → lisa}/skills/lisa-review-implementation/SKILL.md +0 -0
  452. /package/plugins/{lisa-cdk → lisa}/skills/plan-add-test-coverage/SKILL.md +0 -0
  453. /package/plugins/{lisa-cdk → lisa}/skills/plan-execute/SKILL.md +0 -0
  454. /package/plugins/{lisa-cdk → lisa}/skills/plan-fix-linter-error/SKILL.md +0 -0
  455. /package/plugins/{lisa-cdk → lisa}/skills/plan-local-code-review/SKILL.md +0 -0
  456. /package/plugins/{lisa-cdk → lisa}/skills/plan-lower-code-complexity/SKILL.md +0 -0
  457. /package/plugins/{lisa-cdk → lisa}/skills/plan-reduce-max-lines/SKILL.md +0 -0
  458. /package/plugins/{lisa-cdk → lisa}/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -0
  459. /package/plugins/{lisa-cdk → lisa}/skills/pull-request-review/SKILL.md +0 -0
  460. /package/plugins/{lisa-cdk → lisa}/skills/security-zap-scan/SKILL.md +0 -0
  461. /package/plugins/{lisa-cdk → lisa}/skills/sonarqube-check/SKILL.md +0 -0
  462. /package/plugins/{lisa-cdk → lisa}/skills/sonarqube-fix/SKILL.md +0 -0
  463. /package/plugins/{lisa-cdk → lisa}/skills/tasks-load/SKILL.md +0 -0
  464. /package/plugins/{lisa-cdk → lisa}/skills/tasks-sync/SKILL.md +0 -0
  465. /package/plugins/{lisa-cdk → src/typescript}/hooks/format-on-edit.sh +0 -0
  466. /package/plugins/{lisa-cdk → src/typescript}/hooks/lint-on-edit.sh +0 -0
  467. /package/plugins/{lisa-cdk → src/typescript}/hooks/sg-scan-on-edit.sh +0 -0
  468. /package/plugins/{lisa-cdk → src/typescript}/rules/lisa.md +0 -0
@@ -1,432 +0,0 @@
1
- ---
2
- name: jsdoc-best-practices
3
- description: Enforces JSDoc documentation standards for this TypeScript project. This skill should be used when writing or reviewing TypeScript code to ensure proper documentation with file preambles, function docs, interface docs, and the critical distinction between documenting "what" vs "why". Use this skill to understand the project's JSDoc ESLint rules and established patterns.
4
- ---
5
-
6
- # JSDoc Best Practices
7
-
8
- ## Overview
9
-
10
- This skill defines the JSDoc documentation standards for this project. The core principle is that **documentation should explain "why", not just "what"**. Code already shows what it does—good documentation explains the reasoning, context, and non-obvious details that help developers understand and maintain the code.
11
-
12
- ## Core Philosophy: Why Over What
13
-
14
- ### The Problem with "What" Documentation
15
-
16
- ```typescript
17
- // Bad: Just restates the code
18
- /**
19
- * Gets the user by ID
20
- * @param id - The ID
21
- * @returns The user
22
- */
23
- function getUserById(id: string): User { ... }
24
- ```
25
-
26
- This documentation adds no value—the function name already tells us it gets a user by ID.
27
-
28
- ### The Solution: Document "Why"
29
-
30
- ```typescript
31
- // Good: Explains context, constraints, and non-obvious behavior
32
- /**
33
- * Retrieves a user by their unique identifier
34
- * @param id - The user's UUID (not the legacy numeric ID)
35
- * @returns The user if found, null if not found or soft-deleted
36
- * @remarks Used by DataLoader for batching - maintains input order
37
- */
38
- function getUserById(id: string): User | null { ... }
39
- ```
40
-
41
- This documentation adds value by explaining:
42
- - What kind of ID (UUID vs legacy)
43
- - What happens when not found
44
- - Why this specific implementation exists (DataLoader batching)
45
-
46
- ## ESLint Enforcement
47
-
48
- The project enforces JSDoc through `eslint-plugin-jsdoc` with these rules:
49
-
50
- ### Required Documentation
51
-
52
- | Rule | Setting | What It Enforces |
53
- |------|---------|------------------|
54
- | `jsdoc/require-jsdoc` | error | JSDoc on function declarations, interfaces, type aliases, and PascalCase arrow functions |
55
- | `jsdoc/require-param-description` | error | All `@param` tags must have descriptions |
56
- | `jsdoc/require-returns-description` | error | All `@returns` tags must have descriptions |
57
- | `jsdoc/require-property-description` | error | All `@property` tags must have descriptions |
58
-
59
- ### Allowed Tags
60
-
61
- | Rule | Setting | Effect |
62
- |------|---------|--------|
63
- | `jsdoc/check-tag-names` | `definedTags: ["remarks"]` | Allows `@remarks` for "why" documentation |
64
- | `jsdoc/no-types` | off | TypeScript types in JSDoc are optional |
65
- | `jsdoc/require-param-type` | off | Types come from TypeScript, not JSDoc |
66
- | `jsdoc/require-returns-type` | off | Types come from TypeScript, not JSDoc |
67
-
68
- ### What Requires Documentation
69
-
70
- Per `jsdoc/require-jsdoc` configuration:
71
-
72
- ```javascript
73
- {
74
- require: {
75
- FunctionDeclaration: true, // function foo() {}
76
- MethodDefinition: false, // class methods (optional)
77
- ClassDeclaration: false, // classes (optional but recommended)
78
- ArrowFunctionExpression: false, // const foo = () => {} (optional)
79
- FunctionExpression: false, // const foo = function() {} (optional)
80
- },
81
- contexts: [
82
- "TSInterfaceDeclaration", // interface Foo {}
83
- "TSTypeAliasDeclaration", // type Foo = ...
84
- // PascalCase arrow functions (React components, factories):
85
- "VariableDeclaration[declarations.0.init.type='ArrowFunctionExpression']:has([id.name=/^[A-Z]/])"
86
- ]
87
- }
88
- ```
89
-
90
- ## Documentation Patterns
91
-
92
- ### File Preambles
93
-
94
- Every file should have a preamble comment at the top:
95
-
96
- ```typescript
97
- /**
98
- * @file complexity.plugin.ts
99
- * @description Apollo Server plugin for query complexity analysis and limiting
100
- * @module graphql
101
- */
102
- ```
103
-
104
- | Tag | Purpose |
105
- |-----|---------|
106
- | `@file` | The filename (for navigation and search) |
107
- | `@description` | What this file provides |
108
- | `@module` | The feature module this belongs to |
109
-
110
- ### Service Documentation
111
-
112
- ```typescript
113
- /**
114
- * Service for managing user accounts
115
- * @description Provides CRUD operations for user entities
116
- * @remarks
117
- * - All methods are idempotent
118
- * - Throws NotFoundException for missing resources
119
- * - Uses DataLoader batching for bulk operations
120
- */
121
- @Injectable()
122
- export class UserService { ... }
123
- ```
124
-
125
- ### Method Documentation
126
-
127
- ```typescript
128
- /**
129
- * Batch loads entities by IDs (for DataLoader)
130
- * @param ids - Array of entity IDs to load
131
- * @returns Promise resolving to array of entities in same order as input
132
- * @remarks Used by DataLoader for batching - maintains input order
133
- */
134
- async findByIds(ids: readonly string[]): Promise<Entity[]> { ... }
135
- ```
136
-
137
- ### Interface Documentation
138
-
139
- ```typescript
140
- /**
141
- * Interface for authentication services
142
- * @description Defines the contract for both Cognito and Local auth implementations.
143
- * This interface ensures both AuthService (production) and LocalAuthService
144
- * (local development) provide the same public API for authentication operations.
145
- */
146
- export interface IAuthService {
147
- /**
148
- * Initiates the sign-in flow by sending an OTP to the user
149
- * @param input - The sign-in input containing the user identifier (phone/email)
150
- * @returns A promise resolving to the sign-in result with session and challenge info
151
- */
152
- signIn(input: SignInInput): Promise<SignInResult>;
153
- }
154
- ```
155
-
156
- ### Type/Constant Documentation
157
-
158
- ```typescript
159
- /**
160
- * Default complexity configuration
161
- * @description Tune these values based on your server capacity
162
- */
163
- const COMPLEXITY_CONFIG = {
164
- /** Maximum allowed query complexity */
165
- maxComplexity: 100,
166
- /** Default complexity for fields without explicit complexity */
167
- defaultComplexity: 1,
168
- } as const;
169
- ```
170
-
171
- ## The @remarks Tag
172
-
173
- Use `@remarks` to document the "why" and important context:
174
-
175
- ### When to Use @remarks
176
-
177
- | Use Case | Example |
178
- |----------|---------|
179
- | Design decisions | `@remarks Uses closure pattern to cache between Lambda invocations` |
180
- | Usage constraints | `@remarks Call getLoaders() once per GraphQL request in context factory` |
181
- | Non-obvious behavior | `@remarks Maintains input order for DataLoader compatibility` |
182
- | Important caveats | `@remarks All methods are idempotent - safe to retry` |
183
- | Integration details | `@remarks Connects on module initialization, disconnects on destruction` |
184
-
185
- ### @remarks Format
186
-
187
- Use bullet points for multiple remarks:
188
-
189
- ```typescript
190
- /**
191
- * Apollo Server plugin that calculates and limits query complexity
192
- * @description Prevents expensive queries from overwhelming the server
193
- * @remarks
194
- * - Uses field extensions estimator for custom complexity values
195
- * - Falls back to simple estimator with default complexity of 1
196
- * - Rejects queries that exceed the configured maximum complexity
197
- */
198
- ```
199
-
200
- Use inline for single remarks:
201
-
202
- ```typescript
203
- /**
204
- * Creates all DataLoader instances for a single request
205
- * @returns Object containing all typed DataLoaders
206
- * @remarks Called in GraphQL context factory - creates fresh instances per request
207
- */
208
- ```
209
-
210
- ## Parameter Descriptions
211
-
212
- ### Bad: Restating the Name
213
-
214
- ```typescript
215
- /**
216
- * @param id - The id
217
- * @param name - The name
218
- * @param options - The options
219
- */
220
- ```
221
-
222
- ### Good: Adding Value
223
-
224
- ```typescript
225
- /**
226
- * @param id - The user's UUID (not the legacy numeric ID from v1 API)
227
- * @param name - Display name, max 50 characters, sanitized for XSS
228
- * @param options - Configuration for the query, see QueryOptions type
229
- */
230
- ```
231
-
232
- ### Parameter Description Guidelines
233
-
234
- | Include | Avoid |
235
- |---------|-------|
236
- | Valid value ranges | Restating the parameter name |
237
- | Format requirements | Restating the type |
238
- | Default behavior | Obvious information |
239
- | Edge cases | Implementation details |
240
- | Units (ms, bytes, etc.) | Internal variable names |
241
-
242
- ## Return Value Descriptions
243
-
244
- ### Bad: Restating the Type
245
-
246
- ```typescript
247
- /**
248
- * @returns The user
249
- * @returns A promise
250
- * @returns The result
251
- */
252
- ```
253
-
254
- ### Good: Explaining Behavior
255
-
256
- ```typescript
257
- /**
258
- * @returns The user if found, null if not found or soft-deleted
259
- * @returns Promise resolving to array of entities in same order as input
260
- * @returns Authentication tokens on success, error message on failure
261
- */
262
- ```
263
-
264
- ## Anti-Patterns to Avoid
265
-
266
- ### Don't Document the Obvious
267
-
268
- ```typescript
269
- // Wrong: Adds no value
270
- /**
271
- * Constructor
272
- */
273
- constructor() {}
274
-
275
- /**
276
- * Gets the name
277
- * @returns The name
278
- */
279
- getName(): string { return this.name; }
280
- ```
281
-
282
- ### Don't Duplicate TypeScript Types
283
-
284
- ```typescript
285
- // Wrong: Type is already in signature
286
- /**
287
- * @param id - {string} The user ID
288
- * @returns {Promise<User>} The user
289
- */
290
- async getUser(id: string): Promise<User> { ... }
291
-
292
- // Correct: Description only, type from TypeScript
293
- /**
294
- * @param id - The user's UUID identifier
295
- * @returns The user entity with populated relations
296
- */
297
- async getUser(id: string): Promise<User> { ... }
298
- ```
299
-
300
- ### Don't Write Implementation Comments
301
-
302
- ```typescript
303
- // Wrong: Documents how, not why
304
- /**
305
- * Loops through users and filters by active status
306
- */
307
- const activeUsers = users.filter(u => u.active);
308
-
309
- // Correct: Self-documenting code needs no comment
310
- // If explanation is needed, explain WHY:
311
- // Active users are filtered first to avoid unnecessary permission checks
312
- const activeUsers = users.filter(u => u.active);
313
- ```
314
-
315
- ## Escaping @ Symbols in JSDoc
316
-
317
- When documenting code that contains TypeScript/NestJS decorators (like `@Injectable()`, `@Processor('queue-name')`), JSDoc will interpret the `@` as a tag marker. This causes lint errors because JSDoc sees `@Processor('qpr-v2')` as a single unknown tag name (including the parentheses and arguments).
318
-
319
- **The problem:** Adding decorator names to `definedTags` doesn't help because JSDoc parses the entire string `@Processor('qpr-v2')` as the tag name, not just `@Processor`.
320
-
321
- ### Solution 1: Backticks in Prose
322
-
323
- When mentioning decorators in description text, wrap them in backticks:
324
-
325
- ```typescript
326
- /**
327
- * Queue processor for QPR calculations
328
- * @description Handles jobs from the `@Processor('qpr-v2')` queue
329
- * @remarks Uses `@Injectable()` scope for request isolation
330
- */
331
- ```
332
-
333
- ### Solution 2: Escape in @example Blocks
334
-
335
- In `@example` blocks, use fenced code blocks and escape `@` as `\@`:
336
-
337
- ```typescript
338
- /**
339
- * Creates a queue processor
340
- * @example
341
- * ```typescript
342
- * \@Processor('my-queue')
343
- * export class MyProcessor {
344
- * \@Process()
345
- * async handle(job: Job) { ... }
346
- * }
347
- * ```
348
- */
349
- ```
350
-
351
- ### Quick Reference for Escaping
352
-
353
- | Context | Approach | Example |
354
- |---------|----------|---------|
355
- | Prose/description | Wrap in backticks | `` `@Injectable()` `` |
356
- | @example block | Escape with backslash | `\@Processor('name')` |
357
- | Code comments | No escaping needed | `// Uses @Injectable` |
358
-
359
- ## Quick Reference
360
-
361
- ### Required Structure for Services
362
-
363
- ```typescript
364
- /**
365
- * @file feature.service.ts
366
- * @description Service providing feature functionality
367
- * @module feature
368
- */
369
-
370
- /**
371
- * Service for feature operations
372
- * @description Brief description of what this service handles
373
- * @remarks
374
- * - Important architectural decisions
375
- * - Usage patterns or constraints
376
- */
377
- @Injectable()
378
- export class FeatureService {
379
- /**
380
- * Brief description of what this method does
381
- * @param paramName - What this parameter represents and any constraints
382
- * @returns What is returned and under what conditions
383
- * @remarks Any non-obvious behavior or usage notes
384
- */
385
- methodName(paramName: Type): ReturnType { ... }
386
- }
387
- ```
388
-
389
- ### Required Structure for Interfaces
390
-
391
- ```typescript
392
- /**
393
- * Interface for feature operations
394
- * @description Explains the contract this interface defines
395
- */
396
- export interface IFeature {
397
- /**
398
- * Method description
399
- * @param param - Parameter description with constraints
400
- * @returns Return description with conditions
401
- */
402
- method(param: Type): ReturnType;
403
- }
404
- ```
405
-
406
- ### Required Structure for Types
407
-
408
- ```typescript
409
- /**
410
- * Represents a feature configuration
411
- * @description Used to configure feature behavior at initialization
412
- */
413
- export type FeatureConfig = {
414
- /** Maximum retry attempts before failing */
415
- maxRetries: number;
416
- /** Timeout in milliseconds */
417
- timeoutMs: number;
418
- };
419
- ```
420
-
421
- ## Verification Checklist
422
-
423
- Before committing code, verify:
424
-
425
- 1. **File preamble exists**: `@file`, `@description`, `@module`
426
- 2. **Function declarations have JSDoc**: Required by ESLint
427
- 3. **Interfaces have JSDoc**: Required by ESLint
428
- 4. **Type aliases have JSDoc**: Required by ESLint
429
- 5. **Parameters have meaningful descriptions**: Not just restating the name
430
- 6. **Returns have meaningful descriptions**: Explain conditions and edge cases
431
- 7. **@remarks used for "why"**: Design decisions, constraints, non-obvious behavior
432
- 8. **No TypeScript types in JSDoc**: Types come from the signature
@@ -1,209 +0,0 @@
1
- ---
2
- name: lisa-review-implementation
3
- description: This skill should be used when comparing a project's Lisa-managed files against Lisa's source templates to identify drift. It reads the project manifest, locates source templates, generates diffs for drifted files, and offers to upstream improvements back to Lisa.
4
- ---
5
-
6
- # Lisa Implementation Review
7
-
8
- This skill compares the current project's Lisa-managed files against Lisa's source templates to identify drift and offer to upstream improvements back to Lisa.
9
-
10
- ## Prerequisites
11
-
12
- This skill requires access to the Lisa installation directory. Either:
13
- 1. Start Claude Code with `--add-dir ~/lisa` (or your Lisa path)
14
- 2. Pass the Lisa directory as an argument: `/lisa-review-implementation ~/lisa`
15
-
16
- ## Instructions
17
-
18
- ### Step 1: Locate Lisa Directory
19
-
20
- First, determine the Lisa installation directory:
21
-
22
- 1. If an argument was provided, use that path
23
- 2. Otherwise, check if any `--add-dir` paths contain a `src/core/lisa.ts` file (Lisa's signature file)
24
- 3. Common locations to check: `~/lisa`, `~/workspace/lisa`, `../lisa`
25
-
26
- If Lisa directory cannot be found, inform the user:
27
- ```
28
- Unable to locate Lisa installation directory.
29
-
30
- Please either:
31
- 1. Start Claude Code with: claude --add-dir /path/to/lisa
32
- 2. Run this command with the path: /lisa-review-implementation /path/to/lisa
33
- ```
34
-
35
- ### Step 2: Read the Manifest
36
-
37
- Read the project's `.lisa-manifest` file to get the list of managed files.
38
-
39
- Parse each line to extract:
40
- - `strategy`: The copy strategy used (copy-overwrite, copy-contents, merge, create-only)
41
- - `relativePath`: The file path relative to project root
42
-
43
- Skip:
44
- - Lines starting with `#` (comments)
45
- - Empty lines
46
- - Files with `create-only` strategy (these are meant to be customized)
47
- - Files with `merge` strategy (these are intentionally combined)
48
-
49
- ### Step 3: Find Source Templates
50
-
51
- For each managed file, locate its source in Lisa by checking these directories in order:
52
- 1. `npm-package/copy-overwrite/` and `npm-package/copy-contents/`
53
- 2. `cdk/copy-overwrite/` and `cdk/copy-contents/`
54
- 3. `nestjs/copy-overwrite/` and `nestjs/copy-contents/`
55
- 4. `expo/copy-overwrite/` and `expo/copy-contents/`
56
- 5. `typescript/copy-overwrite/` and `typescript/copy-contents/`
57
- 6. `all/copy-overwrite/` and `all/copy-contents/`
58
-
59
- The FIRST match wins (most specific type takes precedence).
60
-
61
- Detect which project types apply by checking the project for:
62
- - `npm-package`: package.json without `"private": true` AND has `main`, `bin`, `exports`, or `files`
63
- - `cdk`: presence of `cdk.json` or `aws-cdk` in dependencies
64
- - `nestjs`: presence of `nest-cli.json` or `@nestjs` in dependencies
65
- - `expo`: presence of `app.json`, `eas.json`, or `expo` in dependencies
66
- - `typescript`: presence of `tsconfig.json` or `typescript` in dependencies
67
-
68
- Only check type directories that match the project.
69
-
70
- ### Step 4: Compare Files
71
-
72
- For each file, compare the project version against the Lisa source:
73
-
74
- 1. Read both files
75
- 2. If identical, mark as "in sync"
76
- 3. If different, generate a diff summary
77
-
78
- Use the Bash tool with `diff` to generate readable diffs:
79
- ```bash
80
- diff -u "/path/to/lisa/source" "/path/to/project/file" || true
81
- ```
82
-
83
- ### Step 5: Generate Report
84
-
85
- Create a markdown report with these sections:
86
-
87
- ```markdown
88
- # Lisa Implementation Review
89
-
90
- **Project:** [project name from package.json]
91
- **Lisa Source:** [lisa directory path]
92
- **Generated:** [current date/time]
93
-
94
- ## Summary
95
-
96
- - **Total managed files:** X
97
- - **In sync:** X
98
- - **Drifted:** X
99
- - **Source not found:** X
100
-
101
- ## Drifted Files
102
-
103
- ### [relative/path/to/file]
104
-
105
- **Source:** [lisa-type]/copy-overwrite/[path]
106
- **Strategy:** copy-overwrite
107
-
108
- <details>
109
- <summary>View diff</summary>
110
-
111
- ```diff
112
- [diff output]
113
- ```
114
-
115
- </details>
116
-
117
- **Recommendation:** [Brief analysis of whether this change should be upstreamed]
118
-
119
- ---
120
-
121
- [Repeat for each drifted file]
122
-
123
- ## Files Not Found in Lisa
124
-
125
- These files are in the manifest but their source templates couldn't be located:
126
-
127
- - [list of files]
128
-
129
- ## In Sync Files
130
-
131
- <details>
132
- <summary>X files are in sync with Lisa</summary>
133
-
134
- - [list of files]
135
-
136
- </details>
137
- ```
138
-
139
- ### Step 6: Offer to Upstream Changes
140
-
141
- After presenting the report, ask the user which drifted files they want to copy back to Lisa.
142
-
143
- For each file the user wants to upstream:
144
-
145
- 1. Confirm the target path in Lisa (e.g., `typescript/copy-overwrite/.github/workflows/ci.yml`)
146
- 2. Use the Write tool to copy the project's version to Lisa
147
- 3. Report success
148
-
149
- Example prompt:
150
- ```
151
- I found X files that have drifted from Lisa's templates.
152
-
153
- Which files would you like to copy back to Lisa?
154
- 1. .github/workflows/ci.yml - [brief description of changes]
155
- 2. .claude/settings.json - [brief description of changes]
156
- 3. All of the above
157
- 4. None - just show me the report
158
-
159
- Select an option (or list specific numbers):
160
- ```
161
-
162
- ### Important Notes
163
-
164
- - **Never auto-upstream without confirmation** - always ask the user first
165
- - **Preserve the most specific type directory** - if a file exists in both `typescript/` and `all/`, upstream to where it currently exists
166
- - **Handle binary files gracefully** - skip comparison for non-text files
167
- - **Respect .gitignore patterns** - some generated files shouldn't be compared
168
- - For `copy-contents` files like `.gitignore`, the comparison is trickier since the project may have additional lines - highlight only if Lisa's required lines are missing
169
-
170
- ## Example Usage
171
-
172
- ```
173
- User: /lisa-review-implementation
174
-
175
- Claude: I'll review your project's Lisa-managed files against the Lisa source templates.
176
-
177
- [Locates Lisa directory]
178
- [Reads manifest]
179
- [Compares files]
180
- [Generates report]
181
-
182
- # Lisa Implementation Review
183
-
184
- **Project:** my-awesome-app
185
- **Lisa Source:** /Users/dev/lisa
186
- **Generated:** 2026-01-18 10:30:00
187
-
188
- ## Summary
189
-
190
- - **Total managed files:** 45
191
- - **In sync:** 42
192
- - **Drifted:** 3
193
- - **Source not found:** 0
194
-
195
- ## Drifted Files
196
-
197
- ### .github/workflows/ci.yml
198
-
199
- **Source:** typescript/copy-overwrite/.github/workflows/ci.yml
200
- **Strategy:** copy-overwrite
201
-
202
- [diff details]
203
-
204
- **Recommendation:** This adds a new caching step that improves CI performance. Good candidate for upstreaming.
205
-
206
- ---
207
-
208
- I found 3 files that have drifted. Would you like to upstream any of these changes back to Lisa?
209
- ```