@codyswann/lisa 1.56.0 → 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 (469) 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/typescript/package-lisa/package.lisa.json +2 -1
  50. package/plugins/lisa-expo/agents/agent-architect.md +0 -310
  51. package/plugins/lisa-expo/agents/architecture-specialist.md +0 -53
  52. package/plugins/lisa-expo/agents/debug-specialist.md +0 -204
  53. package/plugins/lisa-expo/agents/git-history-analyzer.md +0 -183
  54. package/plugins/lisa-expo/agents/hooks-expert.md +0 -74
  55. package/plugins/lisa-expo/agents/implementer.md +0 -54
  56. package/plugins/lisa-expo/agents/learner.md +0 -44
  57. package/plugins/lisa-expo/agents/performance-specialist.md +0 -95
  58. package/plugins/lisa-expo/agents/product-specialist.md +0 -72
  59. package/plugins/lisa-expo/agents/quality-specialist.md +0 -55
  60. package/plugins/lisa-expo/agents/security-specialist.md +0 -58
  61. package/plugins/lisa-expo/agents/skill-evaluator.md +0 -246
  62. package/plugins/lisa-expo/agents/slash-command-architect.md +0 -87
  63. package/plugins/lisa-expo/agents/test-specialist.md +0 -64
  64. package/plugins/lisa-expo/agents/verification-specialist.md +0 -189
  65. package/plugins/lisa-expo/agents/web-search-researcher.md +0 -112
  66. package/plugins/lisa-expo/commands/git/commit-and-submit-pr.md +0 -7
  67. package/plugins/lisa-expo/commands/git/commit-submit-pr-and-verify.md +0 -7
  68. package/plugins/lisa-expo/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  69. package/plugins/lisa-expo/commands/git/commit.md +0 -7
  70. package/plugins/lisa-expo/commands/git/prune.md +0 -6
  71. package/plugins/lisa-expo/commands/git/submit-pr.md +0 -7
  72. package/plugins/lisa-expo/commands/jira/fix.md +0 -7
  73. package/plugins/lisa-expo/commands/jira/implement.md +0 -7
  74. package/plugins/lisa-expo/commands/jira/sync.md +0 -7
  75. package/plugins/lisa-expo/commands/plan/create.md +0 -6
  76. package/plugins/lisa-expo/commands/plan/execute.md +0 -7
  77. package/plugins/lisa-expo/commands/plan/local-code-review.md +0 -6
  78. package/plugins/lisa-expo/commands/pull-request/review.md +0 -7
  79. package/plugins/lisa-expo/commands/review/implementation.md +0 -7
  80. package/plugins/lisa-expo/commands/security/zap-scan.md +0 -6
  81. package/plugins/lisa-expo/commands/sonarqube/check.md +0 -6
  82. package/plugins/lisa-expo/commands/sonarqube/fix.md +0 -6
  83. package/plugins/lisa-expo/commands/tasks/load.md +0 -7
  84. package/plugins/lisa-expo/commands/tasks/sync.md +0 -7
  85. package/plugins/lisa-expo/hooks/debug-hook.sh +0 -47
  86. package/plugins/lisa-expo/hooks/enforce-plan-rules.sh +0 -15
  87. package/plugins/lisa-expo/hooks/format-on-edit.sh +0 -76
  88. package/plugins/lisa-expo/hooks/install-pkgs.sh +0 -64
  89. package/plugins/lisa-expo/hooks/lint-on-edit.sh +0 -81
  90. package/plugins/lisa-expo/hooks/notify-ntfy.sh +0 -183
  91. package/plugins/lisa-expo/hooks/setup-jira-cli.sh +0 -52
  92. package/plugins/lisa-expo/hooks/sg-scan-on-edit.sh +0 -68
  93. package/plugins/lisa-expo/hooks/sync-tasks.sh +0 -107
  94. package/plugins/lisa-expo/hooks/ticket-sync-reminder.sh +0 -23
  95. package/plugins/lisa-expo/hooks/track-plan-sessions.sh +0 -164
  96. package/plugins/lisa-expo/hooks/verify-completion.sh +0 -77
  97. package/plugins/lisa-expo/rules/README.md +0 -240
  98. package/plugins/lisa-expo/rules/coding-philosophy.md +0 -428
  99. package/plugins/lisa-expo/rules/lisa.md +0 -37
  100. package/plugins/lisa-expo/rules/verfication.md +0 -596
  101. package/plugins/lisa-expo/skills/agent-design-best-practices/SKILL.md +0 -219
  102. package/plugins/lisa-expo/skills/git-commit/SKILL.md +0 -48
  103. package/plugins/lisa-expo/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  104. package/plugins/lisa-expo/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  105. package/plugins/lisa-expo/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  106. package/plugins/lisa-expo/skills/git-prune/SKILL.md +0 -35
  107. package/plugins/lisa-expo/skills/git-submit-pr/SKILL.md +0 -44
  108. package/plugins/lisa-expo/skills/jira-fix/SKILL.md +0 -16
  109. package/plugins/lisa-expo/skills/jira-implement/SKILL.md +0 -18
  110. package/plugins/lisa-expo/skills/jira-sync/SKILL.md +0 -63
  111. package/plugins/lisa-expo/skills/jsdoc-best-practices/SKILL.md +0 -432
  112. package/plugins/lisa-expo/skills/lisa-review-implementation/SKILL.md +0 -209
  113. package/plugins/lisa-expo/skills/plan-add-test-coverage/SKILL.md +0 -44
  114. package/plugins/lisa-expo/skills/plan-execute/SKILL.md +0 -89
  115. package/plugins/lisa-expo/skills/plan-fix-linter-error/SKILL.md +0 -45
  116. package/plugins/lisa-expo/skills/plan-local-code-review/SKILL.md +0 -88
  117. package/plugins/lisa-expo/skills/plan-lower-code-complexity/SKILL.md +0 -44
  118. package/plugins/lisa-expo/skills/plan-reduce-max-lines/SKILL.md +0 -45
  119. package/plugins/lisa-expo/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  120. package/plugins/lisa-expo/skills/pull-request-review/SKILL.md +0 -68
  121. package/plugins/lisa-expo/skills/security-zap-scan/SKILL.md +0 -33
  122. package/plugins/lisa-expo/skills/sonarqube-check/SKILL.md +0 -11
  123. package/plugins/lisa-expo/skills/sonarqube-fix/SKILL.md +0 -8
  124. package/plugins/lisa-expo/skills/tasks-load/SKILL.md +0 -88
  125. package/plugins/lisa-expo/skills/tasks-sync/SKILL.md +0 -108
  126. package/plugins/lisa-nestjs/agents/agent-architect.md +0 -310
  127. package/plugins/lisa-nestjs/agents/architecture-specialist.md +0 -53
  128. package/plugins/lisa-nestjs/agents/debug-specialist.md +0 -204
  129. package/plugins/lisa-nestjs/agents/git-history-analyzer.md +0 -183
  130. package/plugins/lisa-nestjs/agents/hooks-expert.md +0 -74
  131. package/plugins/lisa-nestjs/agents/implementer.md +0 -54
  132. package/plugins/lisa-nestjs/agents/learner.md +0 -44
  133. package/plugins/lisa-nestjs/agents/performance-specialist.md +0 -95
  134. package/plugins/lisa-nestjs/agents/product-specialist.md +0 -72
  135. package/plugins/lisa-nestjs/agents/quality-specialist.md +0 -55
  136. package/plugins/lisa-nestjs/agents/security-specialist.md +0 -58
  137. package/plugins/lisa-nestjs/agents/skill-evaluator.md +0 -246
  138. package/plugins/lisa-nestjs/agents/slash-command-architect.md +0 -87
  139. package/plugins/lisa-nestjs/agents/test-specialist.md +0 -64
  140. package/plugins/lisa-nestjs/agents/verification-specialist.md +0 -189
  141. package/plugins/lisa-nestjs/agents/web-search-researcher.md +0 -112
  142. package/plugins/lisa-nestjs/commands/git/commit-and-submit-pr.md +0 -7
  143. package/plugins/lisa-nestjs/commands/git/commit-submit-pr-and-verify.md +0 -7
  144. package/plugins/lisa-nestjs/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  145. package/plugins/lisa-nestjs/commands/git/commit.md +0 -7
  146. package/plugins/lisa-nestjs/commands/git/prune.md +0 -6
  147. package/plugins/lisa-nestjs/commands/git/submit-pr.md +0 -7
  148. package/plugins/lisa-nestjs/commands/jira/fix.md +0 -7
  149. package/plugins/lisa-nestjs/commands/jira/implement.md +0 -7
  150. package/plugins/lisa-nestjs/commands/jira/sync.md +0 -7
  151. package/plugins/lisa-nestjs/commands/plan/add-test-coverage.md +0 -7
  152. package/plugins/lisa-nestjs/commands/plan/create.md +0 -6
  153. package/plugins/lisa-nestjs/commands/plan/execute.md +0 -7
  154. package/plugins/lisa-nestjs/commands/plan/fix-linter-error.md +0 -7
  155. package/plugins/lisa-nestjs/commands/plan/local-code-review.md +0 -6
  156. package/plugins/lisa-nestjs/commands/plan/lower-code-complexity.md +0 -6
  157. package/plugins/lisa-nestjs/commands/plan/reduce-max-lines-per-function.md +0 -7
  158. package/plugins/lisa-nestjs/commands/plan/reduce-max-lines.md +0 -7
  159. package/plugins/lisa-nestjs/commands/pull-request/review.md +0 -7
  160. package/plugins/lisa-nestjs/commands/review/implementation.md +0 -7
  161. package/plugins/lisa-nestjs/commands/security/zap-scan.md +0 -6
  162. package/plugins/lisa-nestjs/commands/sonarqube/check.md +0 -6
  163. package/plugins/lisa-nestjs/commands/sonarqube/fix.md +0 -6
  164. package/plugins/lisa-nestjs/commands/tasks/load.md +0 -7
  165. package/plugins/lisa-nestjs/commands/tasks/sync.md +0 -7
  166. package/plugins/lisa-nestjs/hooks/debug-hook.sh +0 -47
  167. package/plugins/lisa-nestjs/hooks/enforce-plan-rules.sh +0 -15
  168. package/plugins/lisa-nestjs/hooks/format-on-edit.sh +0 -76
  169. package/plugins/lisa-nestjs/hooks/install-pkgs.sh +0 -64
  170. package/plugins/lisa-nestjs/hooks/lint-on-edit.sh +0 -81
  171. package/plugins/lisa-nestjs/hooks/notify-ntfy.sh +0 -183
  172. package/plugins/lisa-nestjs/hooks/setup-jira-cli.sh +0 -52
  173. package/plugins/lisa-nestjs/hooks/sg-scan-on-edit.sh +0 -68
  174. package/plugins/lisa-nestjs/hooks/sync-tasks.sh +0 -107
  175. package/plugins/lisa-nestjs/hooks/ticket-sync-reminder.sh +0 -23
  176. package/plugins/lisa-nestjs/hooks/track-plan-sessions.sh +0 -164
  177. package/plugins/lisa-nestjs/hooks/verify-completion.sh +0 -77
  178. package/plugins/lisa-nestjs/rules/README.md +0 -240
  179. package/plugins/lisa-nestjs/rules/coding-philosophy.md +0 -428
  180. package/plugins/lisa-nestjs/rules/lisa.md +0 -37
  181. package/plugins/lisa-nestjs/rules/verfication.md +0 -596
  182. package/plugins/lisa-nestjs/skills/agent-design-best-practices/SKILL.md +0 -219
  183. package/plugins/lisa-nestjs/skills/git-commit/SKILL.md +0 -48
  184. package/plugins/lisa-nestjs/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  185. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  186. package/plugins/lisa-nestjs/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  187. package/plugins/lisa-nestjs/skills/git-prune/SKILL.md +0 -35
  188. package/plugins/lisa-nestjs/skills/git-submit-pr/SKILL.md +0 -44
  189. package/plugins/lisa-nestjs/skills/jira-add-journey/SKILL.md +0 -120
  190. package/plugins/lisa-nestjs/skills/jira-create/SKILL.md +0 -95
  191. package/plugins/lisa-nestjs/skills/jira-evidence/SKILL.md +0 -73
  192. package/plugins/lisa-nestjs/skills/jira-evidence/scripts/post-evidence.sh +0 -163
  193. package/plugins/lisa-nestjs/skills/jira-fix/SKILL.md +0 -16
  194. package/plugins/lisa-nestjs/skills/jira-implement/SKILL.md +0 -18
  195. package/plugins/lisa-nestjs/skills/jira-journey/SKILL.md +0 -125
  196. package/plugins/lisa-nestjs/skills/jira-journey/scripts/generate-templates.py +0 -233
  197. package/plugins/lisa-nestjs/skills/jira-journey/scripts/parse-plan.py +0 -368
  198. package/plugins/lisa-nestjs/skills/jira-sync/SKILL.md +0 -63
  199. package/plugins/lisa-nestjs/skills/jira-verify/SKILL.md +0 -48
  200. package/plugins/lisa-nestjs/skills/jsdoc-best-practices/SKILL.md +0 -432
  201. package/plugins/lisa-nestjs/skills/lisa-review-implementation/SKILL.md +0 -209
  202. package/plugins/lisa-nestjs/skills/plan-add-test-coverage/SKILL.md +0 -44
  203. package/plugins/lisa-nestjs/skills/plan-execute/SKILL.md +0 -89
  204. package/plugins/lisa-nestjs/skills/plan-fix-linter-error/SKILL.md +0 -45
  205. package/plugins/lisa-nestjs/skills/plan-local-code-review/SKILL.md +0 -88
  206. package/plugins/lisa-nestjs/skills/plan-lower-code-complexity/SKILL.md +0 -44
  207. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines/SKILL.md +0 -45
  208. package/plugins/lisa-nestjs/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  209. package/plugins/lisa-nestjs/skills/pull-request-review/SKILL.md +0 -68
  210. package/plugins/lisa-nestjs/skills/security-zap-scan/SKILL.md +0 -33
  211. package/plugins/lisa-nestjs/skills/sonarqube-check/SKILL.md +0 -11
  212. package/plugins/lisa-nestjs/skills/sonarqube-fix/SKILL.md +0 -8
  213. package/plugins/lisa-nestjs/skills/tasks-load/SKILL.md +0 -88
  214. package/plugins/lisa-nestjs/skills/tasks-sync/SKILL.md +0 -108
  215. package/plugins/lisa-rails/agents/agent-architect.md +0 -310
  216. package/plugins/lisa-rails/agents/architecture-specialist.md +0 -53
  217. package/plugins/lisa-rails/agents/debug-specialist.md +0 -204
  218. package/plugins/lisa-rails/agents/git-history-analyzer.md +0 -183
  219. package/plugins/lisa-rails/agents/hooks-expert.md +0 -74
  220. package/plugins/lisa-rails/agents/implementer.md +0 -54
  221. package/plugins/lisa-rails/agents/learner.md +0 -44
  222. package/plugins/lisa-rails/agents/performance-specialist.md +0 -95
  223. package/plugins/lisa-rails/agents/product-specialist.md +0 -72
  224. package/plugins/lisa-rails/agents/quality-specialist.md +0 -55
  225. package/plugins/lisa-rails/agents/security-specialist.md +0 -58
  226. package/plugins/lisa-rails/agents/skill-evaluator.md +0 -246
  227. package/plugins/lisa-rails/agents/slash-command-architect.md +0 -87
  228. package/plugins/lisa-rails/agents/test-specialist.md +0 -64
  229. package/plugins/lisa-rails/agents/verification-specialist.md +0 -189
  230. package/plugins/lisa-rails/agents/web-search-researcher.md +0 -112
  231. package/plugins/lisa-rails/commands/git/commit-and-submit-pr.md +0 -7
  232. package/plugins/lisa-rails/commands/git/commit-submit-pr-and-verify.md +0 -7
  233. package/plugins/lisa-rails/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  234. package/plugins/lisa-rails/commands/git/commit.md +0 -7
  235. package/plugins/lisa-rails/commands/git/prune.md +0 -6
  236. package/plugins/lisa-rails/commands/git/submit-pr.md +0 -7
  237. package/plugins/lisa-rails/commands/jira/fix.md +0 -7
  238. package/plugins/lisa-rails/commands/jira/implement.md +0 -7
  239. package/plugins/lisa-rails/commands/jira/sync.md +0 -7
  240. package/plugins/lisa-rails/commands/plan/create.md +0 -6
  241. package/plugins/lisa-rails/commands/plan/execute.md +0 -7
  242. package/plugins/lisa-rails/commands/plan/local-code-review.md +0 -6
  243. package/plugins/lisa-rails/commands/pull-request/review.md +0 -7
  244. package/plugins/lisa-rails/commands/review/implementation.md +0 -7
  245. package/plugins/lisa-rails/commands/security/zap-scan.md +0 -6
  246. package/plugins/lisa-rails/commands/sonarqube/check.md +0 -6
  247. package/plugins/lisa-rails/commands/sonarqube/fix.md +0 -6
  248. package/plugins/lisa-rails/commands/tasks/load.md +0 -7
  249. package/plugins/lisa-rails/commands/tasks/sync.md +0 -7
  250. package/plugins/lisa-rails/hooks/debug-hook.sh +0 -47
  251. package/plugins/lisa-rails/hooks/enforce-plan-rules.sh +0 -15
  252. package/plugins/lisa-rails/hooks/format-on-edit.sh +0 -76
  253. package/plugins/lisa-rails/hooks/install-pkgs.sh +0 -64
  254. package/plugins/lisa-rails/hooks/lint-on-edit.sh +0 -81
  255. package/plugins/lisa-rails/hooks/notify-ntfy.sh +0 -183
  256. package/plugins/lisa-rails/hooks/setup-jira-cli.sh +0 -52
  257. package/plugins/lisa-rails/hooks/sg-scan-on-edit.sh +0 -68
  258. package/plugins/lisa-rails/hooks/sync-tasks.sh +0 -107
  259. package/plugins/lisa-rails/hooks/ticket-sync-reminder.sh +0 -23
  260. package/plugins/lisa-rails/hooks/track-plan-sessions.sh +0 -164
  261. package/plugins/lisa-rails/hooks/verify-completion.sh +0 -77
  262. package/plugins/lisa-rails/rules/README.md +0 -240
  263. package/plugins/lisa-rails/rules/coding-philosophy.md +0 -428
  264. package/plugins/lisa-rails/rules/verfication.md +0 -596
  265. package/plugins/lisa-rails/skills/agent-design-best-practices/SKILL.md +0 -219
  266. package/plugins/lisa-rails/skills/git-commit/SKILL.md +0 -48
  267. package/plugins/lisa-rails/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  268. package/plugins/lisa-rails/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  269. package/plugins/lisa-rails/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  270. package/plugins/lisa-rails/skills/git-prune/SKILL.md +0 -35
  271. package/plugins/lisa-rails/skills/git-submit-pr/SKILL.md +0 -44
  272. package/plugins/lisa-rails/skills/jira-fix/SKILL.md +0 -16
  273. package/plugins/lisa-rails/skills/jira-implement/SKILL.md +0 -18
  274. package/plugins/lisa-rails/skills/jira-journey/scripts/generate-templates.py +0 -233
  275. package/plugins/lisa-rails/skills/jira-journey/scripts/parse-plan.py +0 -368
  276. package/plugins/lisa-rails/skills/jira-sync/SKILL.md +0 -63
  277. package/plugins/lisa-rails/skills/jsdoc-best-practices/SKILL.md +0 -432
  278. package/plugins/lisa-rails/skills/lisa-review-implementation/SKILL.md +0 -209
  279. package/plugins/lisa-rails/skills/plan-execute/SKILL.md +0 -89
  280. package/plugins/lisa-rails/skills/plan-local-code-review/SKILL.md +0 -88
  281. package/plugins/lisa-rails/skills/pull-request-review/SKILL.md +0 -68
  282. package/plugins/lisa-rails/skills/security-zap-scan/SKILL.md +0 -33
  283. package/plugins/lisa-rails/skills/sonarqube-check/SKILL.md +0 -11
  284. package/plugins/lisa-rails/skills/sonarqube-fix/SKILL.md +0 -8
  285. package/plugins/lisa-rails/skills/tasks-load/SKILL.md +0 -88
  286. package/plugins/lisa-rails/skills/tasks-sync/SKILL.md +0 -108
  287. package/plugins/lisa-typescript/agents/agent-architect.md +0 -310
  288. package/plugins/lisa-typescript/agents/architecture-specialist.md +0 -53
  289. package/plugins/lisa-typescript/agents/debug-specialist.md +0 -204
  290. package/plugins/lisa-typescript/agents/git-history-analyzer.md +0 -183
  291. package/plugins/lisa-typescript/agents/hooks-expert.md +0 -74
  292. package/plugins/lisa-typescript/agents/implementer.md +0 -54
  293. package/plugins/lisa-typescript/agents/learner.md +0 -44
  294. package/plugins/lisa-typescript/agents/performance-specialist.md +0 -95
  295. package/plugins/lisa-typescript/agents/product-specialist.md +0 -72
  296. package/plugins/lisa-typescript/agents/quality-specialist.md +0 -55
  297. package/plugins/lisa-typescript/agents/security-specialist.md +0 -58
  298. package/plugins/lisa-typescript/agents/skill-evaluator.md +0 -246
  299. package/plugins/lisa-typescript/agents/slash-command-architect.md +0 -87
  300. package/plugins/lisa-typescript/agents/test-specialist.md +0 -64
  301. package/plugins/lisa-typescript/agents/verification-specialist.md +0 -189
  302. package/plugins/lisa-typescript/agents/web-search-researcher.md +0 -112
  303. package/plugins/lisa-typescript/commands/git/commit-and-submit-pr.md +0 -7
  304. package/plugins/lisa-typescript/commands/git/commit-submit-pr-and-verify.md +0 -7
  305. package/plugins/lisa-typescript/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  306. package/plugins/lisa-typescript/commands/git/commit.md +0 -7
  307. package/plugins/lisa-typescript/commands/git/prune.md +0 -6
  308. package/plugins/lisa-typescript/commands/git/submit-pr.md +0 -7
  309. package/plugins/lisa-typescript/commands/jira/fix.md +0 -7
  310. package/plugins/lisa-typescript/commands/jira/implement.md +0 -7
  311. package/plugins/lisa-typescript/commands/jira/sync.md +0 -7
  312. package/plugins/lisa-typescript/commands/plan/add-test-coverage.md +0 -7
  313. package/plugins/lisa-typescript/commands/plan/create.md +0 -6
  314. package/plugins/lisa-typescript/commands/plan/execute.md +0 -7
  315. package/plugins/lisa-typescript/commands/plan/fix-linter-error.md +0 -7
  316. package/plugins/lisa-typescript/commands/plan/local-code-review.md +0 -6
  317. package/plugins/lisa-typescript/commands/plan/lower-code-complexity.md +0 -6
  318. package/plugins/lisa-typescript/commands/plan/reduce-max-lines-per-function.md +0 -7
  319. package/plugins/lisa-typescript/commands/plan/reduce-max-lines.md +0 -7
  320. package/plugins/lisa-typescript/commands/pull-request/review.md +0 -7
  321. package/plugins/lisa-typescript/commands/review/implementation.md +0 -7
  322. package/plugins/lisa-typescript/commands/security/zap-scan.md +0 -6
  323. package/plugins/lisa-typescript/commands/sonarqube/check.md +0 -6
  324. package/plugins/lisa-typescript/commands/sonarqube/fix.md +0 -6
  325. package/plugins/lisa-typescript/commands/tasks/load.md +0 -7
  326. package/plugins/lisa-typescript/commands/tasks/sync.md +0 -7
  327. package/plugins/lisa-typescript/hooks/debug-hook.sh +0 -47
  328. package/plugins/lisa-typescript/hooks/enforce-plan-rules.sh +0 -15
  329. package/plugins/lisa-typescript/hooks/install-pkgs.sh +0 -64
  330. package/plugins/lisa-typescript/hooks/notify-ntfy.sh +0 -183
  331. package/plugins/lisa-typescript/hooks/setup-jira-cli.sh +0 -52
  332. package/plugins/lisa-typescript/hooks/sync-tasks.sh +0 -107
  333. package/plugins/lisa-typescript/hooks/ticket-sync-reminder.sh +0 -23
  334. package/plugins/lisa-typescript/hooks/track-plan-sessions.sh +0 -164
  335. package/plugins/lisa-typescript/hooks/verify-completion.sh +0 -77
  336. package/plugins/lisa-typescript/rules/README.md +0 -240
  337. package/plugins/lisa-typescript/rules/coding-philosophy.md +0 -428
  338. package/plugins/lisa-typescript/rules/verfication.md +0 -596
  339. package/plugins/lisa-typescript/skills/agent-design-best-practices/SKILL.md +0 -219
  340. package/plugins/lisa-typescript/skills/git-commit/SKILL.md +0 -48
  341. package/plugins/lisa-typescript/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  342. package/plugins/lisa-typescript/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  343. package/plugins/lisa-typescript/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  344. package/plugins/lisa-typescript/skills/git-prune/SKILL.md +0 -35
  345. package/plugins/lisa-typescript/skills/git-submit-pr/SKILL.md +0 -44
  346. package/plugins/lisa-typescript/skills/jira-add-journey/SKILL.md +0 -120
  347. package/plugins/lisa-typescript/skills/jira-create/SKILL.md +0 -95
  348. package/plugins/lisa-typescript/skills/jira-evidence/SKILL.md +0 -73
  349. package/plugins/lisa-typescript/skills/jira-evidence/scripts/post-evidence.sh +0 -163
  350. package/plugins/lisa-typescript/skills/jira-fix/SKILL.md +0 -16
  351. package/plugins/lisa-typescript/skills/jira-implement/SKILL.md +0 -18
  352. package/plugins/lisa-typescript/skills/jira-journey/SKILL.md +0 -125
  353. package/plugins/lisa-typescript/skills/jira-journey/scripts/generate-templates.py +0 -233
  354. package/plugins/lisa-typescript/skills/jira-journey/scripts/parse-plan.py +0 -368
  355. package/plugins/lisa-typescript/skills/jira-sync/SKILL.md +0 -63
  356. package/plugins/lisa-typescript/skills/jira-verify/SKILL.md +0 -48
  357. package/plugins/lisa-typescript/skills/jsdoc-best-practices/SKILL.md +0 -432
  358. package/plugins/lisa-typescript/skills/lisa-review-implementation/SKILL.md +0 -209
  359. package/plugins/lisa-typescript/skills/plan-add-test-coverage/SKILL.md +0 -44
  360. package/plugins/lisa-typescript/skills/plan-execute/SKILL.md +0 -89
  361. package/plugins/lisa-typescript/skills/plan-fix-linter-error/SKILL.md +0 -45
  362. package/plugins/lisa-typescript/skills/plan-local-code-review/SKILL.md +0 -88
  363. package/plugins/lisa-typescript/skills/plan-lower-code-complexity/SKILL.md +0 -44
  364. package/plugins/lisa-typescript/skills/plan-reduce-max-lines/SKILL.md +0 -45
  365. package/plugins/lisa-typescript/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  366. package/plugins/lisa-typescript/skills/pull-request-review/SKILL.md +0 -68
  367. package/plugins/lisa-typescript/skills/security-zap-scan/SKILL.md +0 -33
  368. package/plugins/lisa-typescript/skills/sonarqube-check/SKILL.md +0 -11
  369. package/plugins/lisa-typescript/skills/sonarqube-fix/SKILL.md +0 -8
  370. package/plugins/lisa-typescript/skills/tasks-load/SKILL.md +0 -88
  371. package/plugins/lisa-typescript/skills/tasks-sync/SKILL.md +0 -108
  372. package/plugins/src/base/hooks/format-on-edit.sh +0 -76
  373. package/plugins/src/base/hooks/lint-on-edit.sh +0 -81
  374. package/plugins/src/base/hooks/sg-scan-on-edit.sh +0 -68
  375. package/plugins/src/base/rules/lisa.md +0 -37
  376. /package/plugins/{lisa-cdk → lisa}/agents/agent-architect.md +0 -0
  377. /package/plugins/{lisa-cdk → lisa}/agents/architecture-specialist.md +0 -0
  378. /package/plugins/{lisa-cdk → lisa}/agents/debug-specialist.md +0 -0
  379. /package/plugins/{lisa-cdk → lisa}/agents/git-history-analyzer.md +0 -0
  380. /package/plugins/{lisa-cdk → lisa}/agents/hooks-expert.md +0 -0
  381. /package/plugins/{lisa-cdk → lisa}/agents/implementer.md +0 -0
  382. /package/plugins/{lisa-cdk → lisa}/agents/learner.md +0 -0
  383. /package/plugins/{lisa-cdk → lisa}/agents/performance-specialist.md +0 -0
  384. /package/plugins/{lisa-cdk → lisa}/agents/product-specialist.md +0 -0
  385. /package/plugins/{lisa-cdk → lisa}/agents/quality-specialist.md +0 -0
  386. /package/plugins/{lisa-cdk → lisa}/agents/security-specialist.md +0 -0
  387. /package/plugins/{lisa-cdk → lisa}/agents/skill-evaluator.md +0 -0
  388. /package/plugins/{lisa-cdk → lisa}/agents/slash-command-architect.md +0 -0
  389. /package/plugins/{lisa-cdk → lisa}/agents/test-specialist.md +0 -0
  390. /package/plugins/{lisa-cdk → lisa}/agents/verification-specialist.md +0 -0
  391. /package/plugins/{lisa-cdk → lisa}/agents/web-search-researcher.md +0 -0
  392. /package/plugins/{lisa-cdk → lisa}/commands/git/commit-and-submit-pr.md +0 -0
  393. /package/plugins/{lisa-cdk → lisa}/commands/git/commit-submit-pr-and-verify.md +0 -0
  394. /package/plugins/{lisa-cdk → lisa}/commands/git/commit-submit-pr-deploy-and-verify.md +0 -0
  395. /package/plugins/{lisa-cdk → lisa}/commands/git/commit.md +0 -0
  396. /package/plugins/{lisa-cdk → lisa}/commands/git/prune.md +0 -0
  397. /package/plugins/{lisa-cdk → lisa}/commands/git/submit-pr.md +0 -0
  398. /package/plugins/{lisa-cdk → lisa}/commands/jira/add-journey.md +0 -0
  399. /package/plugins/{lisa-cdk → lisa}/commands/jira/create.md +0 -0
  400. /package/plugins/{lisa-cdk → lisa}/commands/jira/evidence.md +0 -0
  401. /package/plugins/{lisa-cdk → lisa}/commands/jira/fix.md +0 -0
  402. /package/plugins/{lisa-cdk → lisa}/commands/jira/implement.md +0 -0
  403. /package/plugins/{lisa-cdk → lisa}/commands/jira/journey.md +0 -0
  404. /package/plugins/{lisa-cdk → lisa}/commands/jira/sync.md +0 -0
  405. /package/plugins/{lisa-cdk → lisa}/commands/jira/verify.md +0 -0
  406. /package/plugins/{lisa-cdk → lisa}/commands/plan/add-test-coverage.md +0 -0
  407. /package/plugins/{lisa-cdk → lisa}/commands/plan/create.md +0 -0
  408. /package/plugins/{lisa-cdk → lisa}/commands/plan/execute.md +0 -0
  409. /package/plugins/{lisa-cdk → lisa}/commands/plan/fix-linter-error.md +0 -0
  410. /package/plugins/{lisa-cdk → lisa}/commands/plan/local-code-review.md +0 -0
  411. /package/plugins/{lisa-cdk → lisa}/commands/plan/lower-code-complexity.md +0 -0
  412. /package/plugins/{lisa-cdk → lisa}/commands/plan/reduce-max-lines-per-function.md +0 -0
  413. /package/plugins/{lisa-cdk → lisa}/commands/plan/reduce-max-lines.md +0 -0
  414. /package/plugins/{lisa-cdk → lisa}/commands/pull-request/review.md +0 -0
  415. /package/plugins/{lisa-cdk → lisa}/commands/review/implementation.md +0 -0
  416. /package/plugins/{lisa-cdk → lisa}/commands/security/zap-scan.md +0 -0
  417. /package/plugins/{lisa-cdk → lisa}/commands/sonarqube/check.md +0 -0
  418. /package/plugins/{lisa-cdk → lisa}/commands/sonarqube/fix.md +0 -0
  419. /package/plugins/{lisa-cdk → lisa}/commands/tasks/load.md +0 -0
  420. /package/plugins/{lisa-cdk → lisa}/commands/tasks/sync.md +0 -0
  421. /package/plugins/{lisa-cdk → lisa}/hooks/debug-hook.sh +0 -0
  422. /package/plugins/{lisa-cdk → lisa}/hooks/enforce-plan-rules.sh +0 -0
  423. /package/plugins/{lisa-cdk → lisa}/hooks/install-pkgs.sh +0 -0
  424. /package/plugins/{lisa-cdk → lisa}/hooks/notify-ntfy.sh +0 -0
  425. /package/plugins/{lisa-cdk → lisa}/hooks/setup-jira-cli.sh +0 -0
  426. /package/plugins/{lisa-cdk → lisa}/hooks/sync-tasks.sh +0 -0
  427. /package/plugins/{lisa-cdk → lisa}/hooks/ticket-sync-reminder.sh +0 -0
  428. /package/plugins/{lisa-cdk → lisa}/hooks/track-plan-sessions.sh +0 -0
  429. /package/plugins/{lisa-cdk → lisa}/hooks/verify-completion.sh +0 -0
  430. /package/plugins/{lisa-cdk → lisa}/rules/README.md +0 -0
  431. /package/plugins/{lisa-cdk → lisa}/rules/coding-philosophy.md +0 -0
  432. /package/plugins/{lisa-cdk → lisa}/rules/verfication.md +0 -0
  433. /package/plugins/{lisa-cdk → lisa}/skills/agent-design-best-practices/SKILL.md +0 -0
  434. /package/plugins/{lisa-cdk → lisa}/skills/git-commit/SKILL.md +0 -0
  435. /package/plugins/{lisa-cdk → lisa}/skills/git-commit-and-submit-pr/SKILL.md +0 -0
  436. /package/plugins/{lisa-cdk → lisa}/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -0
  437. /package/plugins/{lisa-cdk → lisa}/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -0
  438. /package/plugins/{lisa-cdk → lisa}/skills/git-prune/SKILL.md +0 -0
  439. /package/plugins/{lisa-cdk → lisa}/skills/git-submit-pr/SKILL.md +0 -0
  440. /package/plugins/{lisa-cdk → lisa}/skills/jira-add-journey/SKILL.md +0 -0
  441. /package/plugins/{lisa-cdk → lisa}/skills/jira-create/SKILL.md +0 -0
  442. /package/plugins/{lisa-cdk → lisa}/skills/jira-evidence/SKILL.md +0 -0
  443. /package/plugins/{lisa-cdk → lisa}/skills/jira-evidence/scripts/post-evidence.sh +0 -0
  444. /package/plugins/{lisa-cdk → lisa}/skills/jira-fix/SKILL.md +0 -0
  445. /package/plugins/{lisa-cdk → lisa}/skills/jira-implement/SKILL.md +0 -0
  446. /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/SKILL.md +0 -0
  447. /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/scripts/generate-templates.py +0 -0
  448. /package/plugins/{lisa-cdk → lisa}/skills/jira-journey/scripts/parse-plan.py +0 -0
  449. /package/plugins/{lisa-cdk → lisa}/skills/jira-sync/SKILL.md +0 -0
  450. /package/plugins/{lisa-cdk → lisa}/skills/jira-verify/SKILL.md +0 -0
  451. /package/plugins/{lisa-cdk → lisa}/skills/jsdoc-best-practices/SKILL.md +0 -0
  452. /package/plugins/{lisa-cdk → lisa}/skills/lisa-review-implementation/SKILL.md +0 -0
  453. /package/plugins/{lisa-cdk → lisa}/skills/plan-add-test-coverage/SKILL.md +0 -0
  454. /package/plugins/{lisa-cdk → lisa}/skills/plan-execute/SKILL.md +0 -0
  455. /package/plugins/{lisa-cdk → lisa}/skills/plan-fix-linter-error/SKILL.md +0 -0
  456. /package/plugins/{lisa-cdk → lisa}/skills/plan-local-code-review/SKILL.md +0 -0
  457. /package/plugins/{lisa-cdk → lisa}/skills/plan-lower-code-complexity/SKILL.md +0 -0
  458. /package/plugins/{lisa-cdk → lisa}/skills/plan-reduce-max-lines/SKILL.md +0 -0
  459. /package/plugins/{lisa-cdk → lisa}/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -0
  460. /package/plugins/{lisa-cdk → lisa}/skills/pull-request-review/SKILL.md +0 -0
  461. /package/plugins/{lisa-cdk → lisa}/skills/security-zap-scan/SKILL.md +0 -0
  462. /package/plugins/{lisa-cdk → lisa}/skills/sonarqube-check/SKILL.md +0 -0
  463. /package/plugins/{lisa-cdk → lisa}/skills/sonarqube-fix/SKILL.md +0 -0
  464. /package/plugins/{lisa-cdk → lisa}/skills/tasks-load/SKILL.md +0 -0
  465. /package/plugins/{lisa-cdk → lisa}/skills/tasks-sync/SKILL.md +0 -0
  466. /package/plugins/{lisa-cdk → src/typescript}/hooks/format-on-edit.sh +0 -0
  467. /package/plugins/{lisa-cdk → src/typescript}/hooks/lint-on-edit.sh +0 -0
  468. /package/plugins/{lisa-cdk → src/typescript}/hooks/sg-scan-on-edit.sh +0 -0
  469. /package/plugins/{lisa-cdk → src/typescript}/rules/lisa.md +0 -0
@@ -1,163 +0,0 @@
1
- #!/usr/bin/env bash
2
- # post-evidence.sh — Upload evidence and post to JIRA + GitHub PR description
3
- #
4
- # Usage:
5
- # bash post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>
6
- #
7
- # Prerequisites:
8
- # - JIRA_API_TOKEN env var set
9
- # - jira-cli configured (~/.config/.jira/.config.yml)
10
- # - gh CLI authenticated
11
- #
12
- # What it does:
13
- # 1. Uploads evidence files to the 'pr-assets' GitHub release
14
- # 2. Updates the GitHub PR description with evidence/comment.md
15
- # 3. Uploads image evidence as JIRA attachments
16
- # 4. Posts/updates the JIRA comment with evidence/comment.txt
17
- # 5. Moves the JIRA ticket to "Code Review"
18
-
19
- set -euo pipefail
20
-
21
- TICKET_ID="${1:?Usage: post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>}"
22
- EVIDENCE_DIR="${2:?Usage: post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>}"
23
- PR_NUMBER="${3:?Usage: post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>}"
24
-
25
- JIRA_CONFIG="${HOME}/.config/.jira/.config.yml"
26
- if [[ ! -f "$JIRA_CONFIG" ]]; then
27
- echo "ERROR: jira-cli config not found at $JIRA_CONFIG — run 'jira init' first" >&2
28
- exit 1
29
- fi
30
- JIRA_SERVER=$(grep '^server:' "$JIRA_CONFIG" | awk '{print $2}')
31
- JIRA_USER=$(grep '^login:' "$JIRA_CONFIG" | awk '{print $2}')
32
- GH_REPO=$(gh repo view --json nameWithOwner --jq '.nameWithOwner')
33
- RELEASE_TAG="pr-assets"
34
-
35
- if [[ -z "${JIRA_API_TOKEN:-}" ]]; then
36
- echo "ERROR: JIRA_API_TOKEN environment variable is not set" >&2
37
- exit 1
38
- fi
39
-
40
- # Collect numbered evidence files (images + text)
41
- SCREENSHOTS=()
42
- while IFS= read -r -d '' f; do
43
- SCREENSHOTS+=("$f")
44
- done < <(find "$EVIDENCE_DIR" -maxdepth 1 -name '[0-9][0-9]-*.png' -print0 | sort -z)
45
-
46
- TEXT_EVIDENCE=()
47
- while IFS= read -r -d '' f; do
48
- TEXT_EVIDENCE+=("$f")
49
- done < <(find "$EVIDENCE_DIR" -maxdepth 1 \( -name '[0-9][0-9]-*.txt' -o -name '[0-9][0-9]-*.json' \) ! -name 'comment.txt' -print0 | sort -z)
50
-
51
- ALL_EVIDENCE=("${SCREENSHOTS[@]}" "${TEXT_EVIDENCE[@]}")
52
-
53
- if [[ ${#ALL_EVIDENCE[@]} -eq 0 ]]; then
54
- echo "ERROR: No numbered evidence files found in $EVIDENCE_DIR (expected NN-*.png, NN-*.txt, or NN-*.json)" >&2
55
- exit 1
56
- fi
57
-
58
- echo "Found ${#SCREENSHOTS[@]} screenshots and ${#TEXT_EVIDENCE[@]} text evidence files to upload"
59
-
60
- # Compute JIRA auth early (used in steps 3 and 4)
61
- JIRA_AUTH=$(echo -n "$JIRA_USER:$JIRA_API_TOKEN" | base64)
62
-
63
- # ── Step 1: Upload to GitHub pr-assets release ──────────────────────────────
64
- echo ""
65
- echo "==> Uploading to GitHub release '$RELEASE_TAG'..."
66
-
67
- for FILE in "${ALL_EVIDENCE[@]}"; do
68
- FILENAME=$(basename "$FILE")
69
- echo " ↑ $FILENAME"
70
- gh release upload "$RELEASE_TAG" "$FILE" --repo "$GH_REPO" --clobber
71
- done
72
-
73
- echo " ✓ GitHub release assets uploaded"
74
-
75
- # ── Step 2: Update GitHub PR description with evidence ──────────────────────
76
- COMMENT_MD="$EVIDENCE_DIR/comment.md"
77
- if [[ ! -f "$COMMENT_MD" ]]; then
78
- echo "ERROR: $COMMENT_MD not found — run generate-templates.py first" >&2
79
- exit 1
80
- fi
81
-
82
- echo ""
83
- echo "==> Updating GitHub PR #$PR_NUMBER description..."
84
-
85
- CURRENT_BODY=$(gh pr view "$PR_NUMBER" --json body --jq '.body')
86
-
87
- # Replace or append the Evidence section
88
- if echo "$CURRENT_BODY" | grep -q "^## Evidence"; then
89
- # Replace from "## Evidence" to end of file
90
- NEW_BODY=$(echo "$CURRENT_BODY" | sed '/^## Evidence/,$d')
91
- EVIDENCE_SECTION=$(cat "$COMMENT_MD")
92
- UPDATED_BODY="${NEW_BODY}
93
- ${EVIDENCE_SECTION}"
94
- else
95
- EVIDENCE_SECTION=$(cat "$COMMENT_MD")
96
- UPDATED_BODY="${CURRENT_BODY}
97
-
98
- ${EVIDENCE_SECTION}"
99
- fi
100
-
101
- gh pr edit "$PR_NUMBER" --body "$UPDATED_BODY"
102
- echo " ✓ PR description updated with evidence"
103
-
104
- # ── Step 3: Upload image evidence as JIRA attachments ───────────────────────
105
- if [[ ${#SCREENSHOTS[@]} -gt 0 ]]; then
106
- echo ""
107
- echo "==> Uploading image attachments to JIRA $TICKET_ID..."
108
-
109
- for IMG in "${SCREENSHOTS[@]}"; do
110
- FILENAME=$(basename "$IMG")
111
- echo " ↑ $FILENAME"
112
- RESP=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
113
- -X POST \
114
- -H "Authorization: Basic $JIRA_AUTH" \
115
- -H "X-Atlassian-Token: no-check" \
116
- -F "file=@$IMG" \
117
- "$JIRA_SERVER/rest/api/3/issue/$TICKET_ID/attachments")
118
- HTTP_CODE=$(echo "$RESP" | grep "HTTP_CODE:" | cut -d: -f2)
119
- if [[ "$HTTP_CODE" != "200" ]]; then
120
- echo " WARNING: Failed to upload $FILENAME (HTTP $HTTP_CODE)" >&2
121
- fi
122
- done
123
-
124
- echo " ✓ JIRA attachments uploaded"
125
- fi
126
-
127
- # ── Step 4: Post JIRA comment ────────────────────────────────────────────────
128
- COMMENT_TXT="$EVIDENCE_DIR/comment.txt"
129
- if [[ ! -f "$COMMENT_TXT" ]]; then
130
- echo "ERROR: $COMMENT_TXT not found — run generate-templates.py first" >&2
131
- exit 1
132
- fi
133
-
134
- echo ""
135
- echo "==> Posting JIRA comment on $TICKET_ID..."
136
-
137
- COMMENT_BODY=$(cat "$COMMENT_TXT")
138
- COMMENT_JSON=$(python3 -c "import sys, json; print(json.dumps(sys.stdin.read()))" <<< "$COMMENT_BODY")
139
-
140
- RESP=$(curl -s -w "\nHTTP_CODE:%{http_code}" \
141
- -X POST \
142
- -H "Authorization: Basic $JIRA_AUTH" \
143
- -H "Content-Type: application/json" \
144
- "$JIRA_SERVER/rest/api/2/issue/$TICKET_ID/comment" \
145
- -d "{\"body\": $COMMENT_JSON}")
146
- HTTP_CODE=$(echo "$RESP" | grep "HTTP_CODE:" | cut -d: -f2)
147
-
148
- if [[ "$HTTP_CODE" == "201" ]]; then
149
- echo " ✓ JIRA comment posted"
150
- else
151
- echo " WARNING: JIRA comment returned HTTP $HTTP_CODE" >&2
152
- echo "$RESP" | grep -v "HTTP_CODE:" | head -3
153
- fi
154
-
155
- # ── Step 5: Move ticket to Code Review ──────────────────────────────────────
156
- echo ""
157
- echo "==> Moving $TICKET_ID to Code Review..."
158
- jira issue move "$TICKET_ID" "Code Review" 2>&1 && echo " ✓ Ticket moved to Code Review" || echo " WARNING: Could not move ticket" >&2
159
-
160
- echo ""
161
- echo "==> Done!"
162
- echo " JIRA: $JIRA_SERVER/browse/$TICKET_ID"
163
- echo " GitHub: https://github.com/$GH_REPO/pull/$PR_NUMBER"
@@ -1,16 +0,0 @@
1
- ---
2
- name: jira-fix
3
- description: This skill should be used when fixing a bug ticket in JIRA
4
- ---
5
-
6
- 1. Use the JIRA/Atlassian MCP or CLI to fully read this issue, including comments and attachments: $ARGUMENTS
7
- 2. Extract sign-in information if available from the ticket (e.g., test credentials, OTP codes)
8
- 3. Use the project's verification method to attempt to reproduce the bug:
9
- - For UI projects: Use Playwright MCP browser tools to record a replication
10
- - For API projects: Use curl or test commands to reproduce the error
11
- - For library projects: Write a minimal reproduction test
12
- 4. If you cannot reproduce the issue, upload the evidence to the JIRA ticket explaining that you can't replicate it and skip the remaining steps
13
- 5. If there have already been attempts to fix this bug, understand the previous attempts by looking for pull requests and git commits related to it
14
- 6. Fix the bug
15
- 7. Verify the fix using the same verification method used in step 3
16
- 8. Upload the evidence to the JIRA ticket and explain the fix
@@ -1,18 +0,0 @@
1
- ---
2
- name: jira-implement
3
- description: This skill should be used when implementing the requirements in a JIRA ticket.
4
- ---
5
-
6
- Use either the Atlassian MCP or CLI to examine the contents of the JIRA ticket: $ARGUMENTS
7
-
8
- If neither is available, stop and report that you cannot access the ticket.
9
-
10
- Read all the details in the ticket, including any URLs and attachments.
11
-
12
- Make a plan to fulfill the requirements of the ticket.
13
-
14
- Important: If this involves UI changes, use Playwright MCP browser tools to access the app and get a better understanding of what needs to be done. Create a verification task using browser tools to confirm the implementation.
15
-
16
- Important: If this involves API or backend changes, use curl or test commands to understand current behavior. Create a verification task to confirm the implementation.
17
-
18
- If you don't know how to access the app or service, clarify when making the plan.
@@ -1,125 +0,0 @@
1
- ---
2
- name: jira-journey
3
- description: "Parse a JIRA ticket's Validation Journey section, execute the verification steps using appropriate tools (curl, test commands, database queries), capture evidence, and post to JIRA + GitHub PR using the jira-evidence skill."
4
- allowed-tools: ["Bash", "Read", "Glob", "Grep", "Skill", "mcp__atlassian__getJiraIssue", "mcp__atlassian__updateJiraIssue"]
5
- ---
6
-
7
- # JIRA Validation Journey (TypeScript)
8
-
9
- Parse a JIRA ticket's Validation Journey, execute the verification steps using the appropriate tools for the change type, capture evidence at each `[EVIDENCE: name]` marker, and post to JIRA + GitHub PR.
10
-
11
- ## Arguments
12
-
13
- `$ARGUMENTS`: `<TICKET_ID> [PR_NUMBER]`
14
-
15
- - `TICKET_ID` (required): JIRA ticket key (e.g., `PROJ-123`)
16
- - `PR_NUMBER` (optional): GitHub PR number to update description
17
-
18
- ## Prerequisites
19
-
20
- - `JIRA_API_TOKEN` environment variable set
21
- - `jira-cli` configured (`~/.config/.jira/.config.yml`)
22
- - `gh` CLI authenticated
23
- - Appropriate services running for the verification type (dev server, database, etc.)
24
-
25
- ## Workflow
26
-
27
- ### Step 1: Parse the Validation Journey
28
-
29
- Run the parser script to extract the Validation Journey from the JIRA ticket description:
30
-
31
- ```bash
32
- python3 .claude/skills/jira-journey/scripts/parse-plan.py <TICKET_ID>
33
- ```
34
-
35
- The script outputs JSON with: `ticket`, `prerequisites`, `steps`, `viewports`, `assertions`.
36
-
37
- Note: `viewports` may be empty for TypeScript tickets — that is expected.
38
-
39
- ### Step 2: Satisfy Prerequisites
40
-
41
- Before starting the journey, verify each prerequisite:
42
-
43
- 1. Check if required services are running
44
- 2. Verify database connectivity if needed
45
- 3. Ensure environment variables are set
46
- 4. Run any setup commands mentioned in prerequisites
47
-
48
- ### Step 3: Execute Steps and Capture Evidence
49
-
50
- Execute each step sequentially. For each step, determine the verification approach based on the step text and change type:
51
-
52
- - **API endpoints** → Run curl commands, capture HTTP response to `evidence/NN-name.txt`
53
- - **Database changes** → Run psql/migration commands, capture schema output to `evidence/NN-name.txt`
54
- - **Background jobs** → Trigger the job, check queue/state, capture logs to `evidence/NN-name.txt`
55
- - **Library/utility changes** → Run tests, capture output to `evidence/NN-name.txt`
56
- - **Security fixes** → Reproduce exploit attempt, verify fix, capture output to `evidence/NN-name.txt`
57
-
58
- At each `[EVIDENCE: name]` marker, capture stdout/stderr to a numbered file:
59
-
60
- #### Evidence Naming Convention
61
-
62
- Evidence files are named: `{NN}-{evidence-name}.txt` (or `.json` for structured data)
63
-
64
- - `NN`: zero-padded sequential number (01, 02, 03...)
65
- - `evidence-name`: the value from `[EVIDENCE: name]` in the JIRA step
66
-
67
- Example:
68
-
69
- ```text
70
- evidence/
71
- 01-health-check.json
72
- 02-schema-after-migration.txt
73
- 03-rate-limit-response.txt
74
- comment.txt
75
- comment.md
76
- ```
77
-
78
- ### Step 4: Generate Evidence Templates
79
-
80
- After capturing all evidence, run the template generator:
81
-
82
- ```bash
83
- python3 .claude/skills/jira-journey/scripts/generate-templates.py \
84
- <TICKET_ID> \
85
- <PR_NUMBER> \
86
- <BRANCH_NAME> \
87
- ./evidence
88
- ```
89
-
90
- This generates `evidence/comment.txt` (JIRA wiki markup) and `evidence/comment.md` (GitHub markdown) with evidence formatted as code blocks.
91
-
92
- ### Step 5: Post Evidence
93
-
94
- Use the jira-evidence skill to post everything:
95
-
96
- ```bash
97
- bash .claude/skills/jira-evidence/scripts/post-evidence.sh <TICKET_ID> ./evidence <PR_NUMBER>
98
- ```
99
-
100
- ### Step 6: Verify
101
-
102
- Confirm evidence is posted to both the JIRA ticket and GitHub PR.
103
-
104
- ## Verification Patterns Reference
105
-
106
- The agent should use patterns from the project's `verfication.md` when executing steps:
107
-
108
- | Change Type | Verification Method | Evidence Format |
109
- |---|---|---|
110
- | API endpoint | `curl -s localhost:PORT/endpoint` | JSON response |
111
- | Database migration | `psql -c "\d table"` or migration output | Schema text |
112
- | Background job | Trigger + check state | Log output |
113
- | Library/utility | `bun run test -- path/to/test` | Test output |
114
- | Security fix | Reproduce + verify fix | Request/response |
115
- | Auth/authz | Multi-role verification | Status codes per role |
116
-
117
- ## Troubleshooting
118
-
119
- ### Evidence file is empty
120
-
121
- Ensure the command succeeded and produced output. Use `2>&1` to capture both stdout and stderr.
122
-
123
- ### Parser returns no steps
124
-
125
- The ticket may not have a Validation Journey section. Use `/jira-add-journey <TICKET_ID>` to add one.
@@ -1,233 +0,0 @@
1
- #!/usr/bin/env python3
2
- """Generate evidence comment templates from captured text evidence.
3
-
4
- Scans an evidence directory for text/JSON evidence files, reads the journey JSON,
5
- and produces comment.txt (JIRA wiki markup) and comment.md (GitHub markdown).
6
-
7
- Usage:
8
- python3 generate-templates.py <TICKET_ID> <PR_NUMBER> <BRANCH_NAME> <EVIDENCE_DIR> [JOURNEY_JSON]
9
-
10
- Example:
11
- python3 generate-templates.py PROJ-123 42 fix/PROJ-123-api ./evidence journey.json
12
-
13
- If JOURNEY_JSON is not provided, reads from stdin.
14
- """
15
-
16
- import json
17
- import os
18
- import re
19
- import subprocess
20
- import sys
21
- from pathlib import Path
22
-
23
-
24
- def get_jira_server():
25
- """Read JIRA server URL from jira-cli config."""
26
- config_path = Path.home() / ".config" / ".jira" / ".config.yml"
27
- if not config_path.exists():
28
- return ""
29
- with open(config_path) as f:
30
- for line in f:
31
- if line.startswith("server:"):
32
- return line.split(":", 1)[1].strip()
33
- return ""
34
-
35
-
36
- def get_github_repo():
37
- """Detect GitHub repo from gh CLI."""
38
- try:
39
- result = subprocess.run(
40
- ["gh", "repo", "view", "--json", "nameWithOwner", "--jq", ".nameWithOwner"],
41
- capture_output=True, text=True, timeout=10,
42
- )
43
- return result.stdout.strip()
44
- except (subprocess.SubprocessError, FileNotFoundError):
45
- return ""
46
-
47
-
48
- def collect_evidence(evidence_dir):
49
- """Collect evidence files (text, JSON, and images) sorted by name."""
50
- evidence_path = Path(evidence_dir)
51
- files = []
52
- for pattern in ("[0-9][0-9]-*.txt", "[0-9][0-9]-*.json", "[0-9][0-9]-*.png"):
53
- files.extend(evidence_path.glob(pattern))
54
- # Exclude comment.txt
55
- files = [f for f in files if f.name != "comment.txt"]
56
- return sorted(files, key=lambda p: p.name)
57
-
58
-
59
- def detect_language(filename, content):
60
- """Detect code block language from filename extension and content."""
61
- if filename.endswith(".json"):
62
- return "json"
63
- if "HTTP/" in content or "curl" in content.lower():
64
- return "http"
65
- if "CREATE TABLE" in content or "ALTER TABLE" in content or "\\d " in content:
66
- return "sql"
67
- return "text"
68
-
69
-
70
- def generate_jira_wiki(ticket_id, pr_number, branch, evidence_files, journey, gh_repo):
71
- """Generate JIRA wiki markup comment with code block evidence."""
72
- lines = []
73
- lines.append(f"h2. Evidence — PR #{pr_number}")
74
- lines.append("")
75
- lines.append(f"*Branch:* {{{{{branch}}}}}")
76
- lines.append(f"*PR:* [PR #{pr_number}|https://github.com/{gh_repo}/pull/{pr_number}]")
77
- lines.append("")
78
-
79
- # Verification Results from assertions
80
- if journey.get("assertions"):
81
- lines.append("h3. Verification Results")
82
- lines.append("")
83
- for assertion in journey["assertions"]:
84
- lines.append(f"* {assertion}")
85
- lines.append("")
86
-
87
- # Evidence
88
- lines.append("h3. Evidence")
89
- lines.append("")
90
-
91
- for evidence_path in evidence_files:
92
- filename = evidence_path.name
93
- stem = evidence_path.stem
94
- # Extract readable label: remove NN- prefix
95
- label_parts = stem.split("-")[1:]
96
- label = " ".join(label_parts).title() if label_parts else stem
97
-
98
- if filename.endswith(".png"):
99
- display_width = 700
100
- lines.append(f"*{label}:*")
101
- lines.append(f"!{filename}|width={display_width}!")
102
- lines.append("")
103
- else:
104
- content = evidence_path.read_text().strip()
105
- lang = detect_language(filename, content)
106
- lines.append(f"*{label}:*")
107
- lines.append(f"{{code:{lang}}}")
108
- lines.append(content)
109
- lines.append("{code}")
110
- lines.append("")
111
-
112
- # Verification Journey steps
113
- if journey.get("steps"):
114
- lines.append("h3. Verification Journey")
115
- lines.append("")
116
- for step in journey["steps"]:
117
- text = step["text"]
118
- clean_text = re.sub(r'\s*\[(SCREENSHOT|EVIDENCE):\s*[^\]]+\]', '', text).strip()
119
- lines.append(f"# {clean_text}")
120
- lines.append("")
121
-
122
- return "\n".join(lines)
123
-
124
-
125
- def generate_github_md(ticket_id, pr_number, branch, evidence_files, journey, gh_repo, jira_server):
126
- """Generate GitHub markdown comment with code block evidence."""
127
- release_base = f"https://github.com/{gh_repo}/releases/download/pr-assets"
128
-
129
- lines = []
130
- lines.append(f"## Evidence — PR #{pr_number}")
131
- lines.append("")
132
- lines.append(f"**Branch:** `{branch}`")
133
- if jira_server:
134
- lines.append(f"**Ticket:** [{ticket_id}]({jira_server}/browse/{ticket_id})")
135
- else:
136
- lines.append(f"**Ticket:** {ticket_id}")
137
- lines.append("")
138
-
139
- # Verification Results
140
- if journey.get("assertions"):
141
- lines.append("### Verification Results")
142
- lines.append("")
143
- for assertion in journey["assertions"]:
144
- lines.append(f"- {assertion}")
145
- lines.append("")
146
-
147
- # Evidence
148
- lines.append("### Evidence")
149
- lines.append("")
150
-
151
- for evidence_path in evidence_files:
152
- filename = evidence_path.name
153
- stem = evidence_path.stem
154
- label_parts = stem.split("-")[1:]
155
- label = " ".join(label_parts).title() if label_parts else stem
156
-
157
- if filename.endswith(".png"):
158
- lines.append(f"**{label}:**")
159
- lines.append("")
160
- lines.append(f"![{label}]({release_base}/{filename})")
161
- lines.append("")
162
- else:
163
- content = evidence_path.read_text().strip()
164
- lang = detect_language(filename, content)
165
- lines.append(f"**{label}:**")
166
- lines.append("")
167
- lines.append(f"```{lang}")
168
- lines.append(content)
169
- lines.append("```")
170
- lines.append("")
171
-
172
- # Verification Journey
173
- if journey.get("steps"):
174
- lines.append("### Verification Journey")
175
- lines.append("")
176
- for step in journey["steps"]:
177
- text = step["text"]
178
- clean_text = re.sub(r'\s*\[(SCREENSHOT|EVIDENCE):\s*[^\]]+\]', '', text).strip()
179
- lines.append(f"{step['number']}. {clean_text}")
180
- lines.append("")
181
-
182
- return "\n".join(lines)
183
-
184
-
185
- def main():
186
- if len(sys.argv) < 5:
187
- print(
188
- "Usage: generate-templates.py <TICKET_ID> <PR_NUMBER> <BRANCH_NAME> <EVIDENCE_DIR> [JOURNEY_JSON]",
189
- file=sys.stderr,
190
- )
191
- sys.exit(1)
192
-
193
- ticket_id = sys.argv[1]
194
- pr_number = sys.argv[2]
195
- branch = sys.argv[3]
196
- evidence_dir = sys.argv[4]
197
- journey_file = sys.argv[5] if len(sys.argv) > 5 else None
198
-
199
- # Read journey JSON
200
- if journey_file:
201
- with open(journey_file) as f:
202
- journey = json.load(f)
203
- else:
204
- journey = json.load(sys.stdin)
205
-
206
- gh_repo = get_github_repo()
207
- if not gh_repo:
208
- print("ERROR: Could not detect GitHub repo — ensure gh CLI is authenticated", file=sys.stderr)
209
- sys.exit(1)
210
-
211
- jira_server = get_jira_server()
212
-
213
- evidence_files = collect_evidence(evidence_dir)
214
- if not evidence_files:
215
- print(f"ERROR: No evidence files found in {evidence_dir}", file=sys.stderr)
216
- sys.exit(1)
217
-
218
- # Generate templates
219
- jira_wiki = generate_jira_wiki(ticket_id, pr_number, branch, evidence_files, journey, gh_repo)
220
- github_md = generate_github_md(ticket_id, pr_number, branch, evidence_files, journey, gh_repo, jira_server)
221
-
222
- # Write templates
223
- evidence_path = Path(evidence_dir)
224
- (evidence_path / "comment.txt").write_text(jira_wiki)
225
- (evidence_path / "comment.md").write_text(github_md)
226
-
227
- print(f"Generated {evidence_path / 'comment.txt'} ({len(jira_wiki)} bytes)")
228
- print(f"Generated {evidence_path / 'comment.md'} ({len(github_md)} bytes)")
229
- print(f"Evidence files: {len(evidence_files)}")
230
-
231
-
232
- if __name__ == "__main__":
233
- main()