@codyswann/lisa 2.121.1 → 2.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (846) hide show
  1. package/.claude-plugin/marketplace.json +144 -0
  2. package/dist/agy/agents-md-installer.d.ts +6 -3
  3. package/dist/agy/agents-md-installer.d.ts.map +1 -1
  4. package/dist/agy/agents-md-installer.js +9 -4
  5. package/dist/agy/agents-md-installer.js.map +1 -1
  6. package/dist/agy/plugin-installer.d.ts +6 -4
  7. package/dist/agy/plugin-installer.d.ts.map +1 -1
  8. package/dist/agy/plugin-installer.js +7 -5
  9. package/dist/agy/plugin-installer.js.map +1 -1
  10. package/dist/copilot/plugin-installer.d.ts +6 -3
  11. package/dist/copilot/plugin-installer.d.ts.map +1 -1
  12. package/dist/copilot/plugin-installer.js +7 -4
  13. package/dist/copilot/plugin-installer.js.map +1 -1
  14. package/dist/core/lisa.d.ts +16 -0
  15. package/dist/core/lisa.d.ts.map +1 -1
  16. package/dist/core/lisa.js +61 -18
  17. package/dist/core/lisa.js.map +1 -1
  18. package/package.json +1 -1
  19. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-agy/plugin.json +1 -1
  22. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cdk-agy/plugin.json +11 -0
  25. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +11 -0
  26. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +11 -0
  27. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo-agy/.mcp.json +8 -0
  32. package/plugins/lisa-expo-agy/THIRD-PARTY-NOTICES.md +57 -0
  33. package/plugins/lisa-expo-agy/agents/ops-specialist.md +124 -0
  34. package/plugins/lisa-expo-agy/commands/e2e-coverage-gaps.md +7 -0
  35. package/plugins/lisa-expo-agy/commands/exploratory-qa.md +7 -0
  36. package/plugins/lisa-expo-agy/plugin.json +11 -0
  37. package/plugins/lisa-expo-agy/skills/add-app-clip/SKILL.md +280 -0
  38. package/plugins/lisa-expo-agy/skills/add-app-clip/references/native-module.md +96 -0
  39. package/plugins/lisa-expo-agy/skills/apollo-client/SKILL.md +238 -0
  40. package/plugins/lisa-expo-agy/skills/apollo-client/references/mutation-patterns.md +360 -0
  41. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/SKILL.md +360 -0
  42. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  43. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  44. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  45. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  46. package/plugins/lisa-expo-agy/skills/building-native-ui/SKILL.md +321 -0
  47. package/plugins/lisa-expo-agy/skills/building-native-ui/references/animations.md +220 -0
  48. package/plugins/lisa-expo-agy/skills/building-native-ui/references/controls.md +272 -0
  49. package/plugins/lisa-expo-agy/skills/building-native-ui/references/form-sheet.md +253 -0
  50. package/plugins/lisa-expo-agy/skills/building-native-ui/references/gradients.md +106 -0
  51. package/plugins/lisa-expo-agy/skills/building-native-ui/references/icons.md +213 -0
  52. package/plugins/lisa-expo-agy/skills/building-native-ui/references/media.md +198 -0
  53. package/plugins/lisa-expo-agy/skills/building-native-ui/references/route-structure.md +229 -0
  54. package/plugins/lisa-expo-agy/skills/building-native-ui/references/search.md +248 -0
  55. package/plugins/lisa-expo-agy/skills/building-native-ui/references/storage.md +121 -0
  56. package/plugins/lisa-expo-agy/skills/building-native-ui/references/tabs.md +433 -0
  57. package/plugins/lisa-expo-agy/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  58. package/plugins/lisa-expo-agy/skills/building-native-ui/references/visual-effects.md +197 -0
  59. package/plugins/lisa-expo-agy/skills/building-native-ui/references/webgpu-three.md +605 -0
  60. package/plugins/lisa-expo-agy/skills/building-native-ui/references/zoom-transitions.md +158 -0
  61. package/plugins/lisa-expo-agy/skills/container-view-pattern/SKILL.md +299 -0
  62. package/plugins/lisa-expo-agy/skills/container-view-pattern/references/examples.md +749 -0
  63. package/plugins/lisa-expo-agy/skills/container-view-pattern/references/patterns.md +318 -0
  64. package/plugins/lisa-expo-agy/skills/container-view-pattern/scripts/create_component.py +200 -0
  65. package/plugins/lisa-expo-agy/skills/container-view-pattern/scripts/validate_component.py +209 -0
  66. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/SKILL.md +268 -0
  67. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  68. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  69. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  70. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  71. package/plugins/lisa-expo-agy/skills/directory-structure/SKILL.md +202 -0
  72. package/plugins/lisa-expo-agy/skills/directory-structure/scripts/validate_structure.py +445 -0
  73. package/plugins/lisa-expo-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
  74. package/plugins/lisa-expo-agy/skills/eas-update-insights/SKILL.md +228 -0
  75. package/plugins/lisa-expo-agy/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  76. package/plugins/lisa-expo-agy/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  77. package/plugins/lisa-expo-agy/skills/exploratory-qa/SKILL.md +145 -0
  78. package/plugins/lisa-expo-agy/skills/expo-api-routes/SKILL.md +369 -0
  79. package/plugins/lisa-expo-agy/skills/expo-brownfield/SKILL.md +54 -0
  80. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  81. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  82. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/comparison.md +63 -0
  83. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/troubleshooting.md +88 -0
  84. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/SKILL.md +92 -0
  85. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  86. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/package.json +11 -0
  87. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  88. package/plugins/lisa-expo-agy/skills/expo-deployment/SKILL.md +190 -0
  89. package/plugins/lisa-expo-agy/skills/expo-deployment/references/app-store-metadata.md +479 -0
  90. package/plugins/lisa-expo-agy/skills/expo-deployment/references/ios-app-store.md +355 -0
  91. package/plugins/lisa-expo-agy/skills/expo-deployment/references/play-store.md +246 -0
  92. package/plugins/lisa-expo-agy/skills/expo-deployment/references/testflight.md +58 -0
  93. package/plugins/lisa-expo-agy/skills/expo-deployment/references/workflows.md +200 -0
  94. package/plugins/lisa-expo-agy/skills/expo-dev-client/SKILL.md +164 -0
  95. package/plugins/lisa-expo-agy/skills/expo-env-config/SKILL.md +309 -0
  96. package/plugins/lisa-expo-agy/skills/expo-env-config/references/validation-patterns.md +417 -0
  97. package/plugins/lisa-expo-agy/skills/expo-module/SKILL.md +141 -0
  98. package/plugins/lisa-expo-agy/skills/expo-module/references/config-plugin.md +90 -0
  99. package/plugins/lisa-expo-agy/skills/expo-module/references/create-expo-module.md +206 -0
  100. package/plugins/lisa-expo-agy/skills/expo-module/references/lifecycle.md +127 -0
  101. package/plugins/lisa-expo-agy/skills/expo-module/references/module-config.md +48 -0
  102. package/plugins/lisa-expo-agy/skills/expo-module/references/native-module.md +286 -0
  103. package/plugins/lisa-expo-agy/skills/expo-module/references/native-view.md +171 -0
  104. package/plugins/lisa-expo-agy/skills/expo-router-best-practices/SKILL.md +431 -0
  105. package/plugins/lisa-expo-agy/skills/expo-router-best-practices/references/official-docs.md +290 -0
  106. package/plugins/lisa-expo-agy/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  107. package/plugins/lisa-expo-agy/skills/expo-tailwind-setup/SKILL.md +480 -0
  108. package/plugins/lisa-expo-agy/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  109. package/plugins/lisa-expo-agy/skills/expo-ui-swift-ui/SKILL.md +39 -0
  110. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/SKILL.md +411 -0
  111. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  112. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  113. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  114. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  115. package/plugins/lisa-expo-agy/skills/jira-add-journey/SKILL.md +126 -0
  116. package/plugins/lisa-expo-agy/skills/jira-create/SKILL.md +161 -0
  117. package/plugins/lisa-expo-agy/skills/jira-evidence/SKILL.md +78 -0
  118. package/plugins/lisa-expo-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  119. package/plugins/lisa-expo-agy/skills/jira-journey/SKILL.md +190 -0
  120. package/plugins/lisa-expo-agy/skills/jira-journey/scripts/generate-templates.py +281 -0
  121. package/plugins/lisa-expo-agy/skills/jira-journey/scripts/parse-plan.py +368 -0
  122. package/plugins/lisa-expo-agy/skills/jira-verify/SKILL.md +27 -0
  123. package/plugins/lisa-expo-agy/skills/local-state/SKILL.md +362 -0
  124. package/plugins/lisa-expo-agy/skills/local-state/references/async-storage.md +505 -0
  125. package/plugins/lisa-expo-agy/skills/local-state/references/persistence-patterns.md +711 -0
  126. package/plugins/lisa-expo-agy/skills/local-state/references/reactive-variables.md +446 -0
  127. package/plugins/lisa-expo-agy/skills/native-data-fetching/SKILL.md +507 -0
  128. package/plugins/lisa-expo-agy/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  129. package/plugins/lisa-expo-agy/skills/ops-browser-uat/SKILL.md +124 -0
  130. package/plugins/lisa-expo-agy/skills/ops-check-logs/SKILL.md +211 -0
  131. package/plugins/lisa-expo-agy/skills/ops-db-ops/SKILL.md +119 -0
  132. package/plugins/lisa-expo-agy/skills/ops-deploy/SKILL.md +119 -0
  133. package/plugins/lisa-expo-agy/skills/ops-monitor-errors/SKILL.md +99 -0
  134. package/plugins/lisa-expo-agy/skills/ops-performance/SKILL.md +165 -0
  135. package/plugins/lisa-expo-agy/skills/ops-run-local/SKILL.md +166 -0
  136. package/plugins/lisa-expo-agy/skills/ops-verify-health/SKILL.md +101 -0
  137. package/plugins/lisa-expo-agy/skills/owasp-zap/SKILL.md +56 -0
  138. package/plugins/lisa-expo-agy/skills/playwright-ci-debugging/SKILL.md +140 -0
  139. package/plugins/lisa-expo-agy/skills/playwright-selectors/SKILL.md +455 -0
  140. package/plugins/lisa-expo-agy/skills/reduce-complexity/SKILL.md +251 -0
  141. package/plugins/lisa-expo-agy/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  142. package/plugins/lisa-expo-agy/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  143. package/plugins/lisa-expo-agy/skills/testing-library/SKILL.md +314 -0
  144. package/plugins/lisa-expo-agy/skills/testing-library/references/async-patterns.md +420 -0
  145. package/plugins/lisa-expo-agy/skills/testing-library/references/expo-router-testing.md +556 -0
  146. package/plugins/lisa-expo-agy/skills/testing-library/references/mocking-patterns.md +590 -0
  147. package/plugins/lisa-expo-agy/skills/testing-library/references/query-priority.md +291 -0
  148. package/plugins/lisa-expo-agy/skills/upgrading-expo/SKILL.md +134 -0
  149. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  150. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  151. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/native-tabs.md +124 -0
  152. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/new-architecture.md +79 -0
  153. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-19.md +79 -0
  154. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-compiler.md +59 -0
  155. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  156. package/plugins/lisa-expo-agy/skills/use-dom/SKILL.md +417 -0
  157. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +11 -0
  158. package/plugins/lisa-expo-copilot/.mcp.json +8 -0
  159. package/plugins/lisa-expo-copilot/THIRD-PARTY-NOTICES.md +57 -0
  160. package/plugins/lisa-expo-copilot/agents/ops-specialist.agent.md +124 -0
  161. package/plugins/lisa-expo-copilot/commands/e2e-coverage-gaps.md +7 -0
  162. package/plugins/lisa-expo-copilot/commands/exploratory-qa.md +7 -0
  163. package/plugins/lisa-expo-copilot/skills/add-app-clip/SKILL.md +280 -0
  164. package/plugins/lisa-expo-copilot/skills/add-app-clip/references/native-module.md +96 -0
  165. package/plugins/lisa-expo-copilot/skills/apollo-client/SKILL.md +238 -0
  166. package/plugins/lisa-expo-copilot/skills/apollo-client/references/mutation-patterns.md +360 -0
  167. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/SKILL.md +360 -0
  168. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  169. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  170. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  171. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  172. package/plugins/lisa-expo-copilot/skills/building-native-ui/SKILL.md +321 -0
  173. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/animations.md +220 -0
  174. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/controls.md +272 -0
  175. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/form-sheet.md +253 -0
  176. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/gradients.md +106 -0
  177. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/icons.md +213 -0
  178. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/media.md +198 -0
  179. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/route-structure.md +229 -0
  180. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/search.md +248 -0
  181. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/storage.md +121 -0
  182. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/tabs.md +433 -0
  183. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  184. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/visual-effects.md +197 -0
  185. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/webgpu-three.md +605 -0
  186. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/zoom-transitions.md +158 -0
  187. package/plugins/lisa-expo-copilot/skills/container-view-pattern/SKILL.md +299 -0
  188. package/plugins/lisa-expo-copilot/skills/container-view-pattern/references/examples.md +749 -0
  189. package/plugins/lisa-expo-copilot/skills/container-view-pattern/references/patterns.md +318 -0
  190. package/plugins/lisa-expo-copilot/skills/container-view-pattern/scripts/create_component.py +200 -0
  191. package/plugins/lisa-expo-copilot/skills/container-view-pattern/scripts/validate_component.py +209 -0
  192. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/SKILL.md +268 -0
  193. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  194. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  195. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  196. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  197. package/plugins/lisa-expo-copilot/skills/directory-structure/SKILL.md +202 -0
  198. package/plugins/lisa-expo-copilot/skills/directory-structure/scripts/validate_structure.py +445 -0
  199. package/plugins/lisa-expo-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
  200. package/plugins/lisa-expo-copilot/skills/eas-update-insights/SKILL.md +228 -0
  201. package/plugins/lisa-expo-copilot/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  202. package/plugins/lisa-expo-copilot/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  203. package/plugins/lisa-expo-copilot/skills/exploratory-qa/SKILL.md +145 -0
  204. package/plugins/lisa-expo-copilot/skills/expo-api-routes/SKILL.md +369 -0
  205. package/plugins/lisa-expo-copilot/skills/expo-brownfield/SKILL.md +54 -0
  206. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  207. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  208. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/comparison.md +63 -0
  209. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/troubleshooting.md +88 -0
  210. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/SKILL.md +92 -0
  211. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  212. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/package.json +11 -0
  213. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  214. package/plugins/lisa-expo-copilot/skills/expo-deployment/SKILL.md +190 -0
  215. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/app-store-metadata.md +479 -0
  216. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/ios-app-store.md +355 -0
  217. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/play-store.md +246 -0
  218. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/testflight.md +58 -0
  219. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/workflows.md +200 -0
  220. package/plugins/lisa-expo-copilot/skills/expo-dev-client/SKILL.md +164 -0
  221. package/plugins/lisa-expo-copilot/skills/expo-env-config/SKILL.md +309 -0
  222. package/plugins/lisa-expo-copilot/skills/expo-env-config/references/validation-patterns.md +417 -0
  223. package/plugins/lisa-expo-copilot/skills/expo-module/SKILL.md +141 -0
  224. package/plugins/lisa-expo-copilot/skills/expo-module/references/config-plugin.md +90 -0
  225. package/plugins/lisa-expo-copilot/skills/expo-module/references/create-expo-module.md +206 -0
  226. package/plugins/lisa-expo-copilot/skills/expo-module/references/lifecycle.md +127 -0
  227. package/plugins/lisa-expo-copilot/skills/expo-module/references/module-config.md +48 -0
  228. package/plugins/lisa-expo-copilot/skills/expo-module/references/native-module.md +286 -0
  229. package/plugins/lisa-expo-copilot/skills/expo-module/references/native-view.md +171 -0
  230. package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/SKILL.md +431 -0
  231. package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/references/official-docs.md +290 -0
  232. package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  233. package/plugins/lisa-expo-copilot/skills/expo-tailwind-setup/SKILL.md +480 -0
  234. package/plugins/lisa-expo-copilot/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  235. package/plugins/lisa-expo-copilot/skills/expo-ui-swift-ui/SKILL.md +39 -0
  236. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/SKILL.md +411 -0
  237. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  238. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  239. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  240. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  241. package/plugins/lisa-expo-copilot/skills/jira-add-journey/SKILL.md +126 -0
  242. package/plugins/lisa-expo-copilot/skills/jira-create/SKILL.md +161 -0
  243. package/plugins/lisa-expo-copilot/skills/jira-evidence/SKILL.md +78 -0
  244. package/plugins/lisa-expo-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  245. package/plugins/lisa-expo-copilot/skills/jira-journey/SKILL.md +190 -0
  246. package/plugins/lisa-expo-copilot/skills/jira-journey/scripts/generate-templates.py +281 -0
  247. package/plugins/lisa-expo-copilot/skills/jira-journey/scripts/parse-plan.py +368 -0
  248. package/plugins/lisa-expo-copilot/skills/jira-verify/SKILL.md +27 -0
  249. package/plugins/lisa-expo-copilot/skills/local-state/SKILL.md +362 -0
  250. package/plugins/lisa-expo-copilot/skills/local-state/references/async-storage.md +505 -0
  251. package/plugins/lisa-expo-copilot/skills/local-state/references/persistence-patterns.md +711 -0
  252. package/plugins/lisa-expo-copilot/skills/local-state/references/reactive-variables.md +446 -0
  253. package/plugins/lisa-expo-copilot/skills/native-data-fetching/SKILL.md +507 -0
  254. package/plugins/lisa-expo-copilot/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  255. package/plugins/lisa-expo-copilot/skills/ops-browser-uat/SKILL.md +124 -0
  256. package/plugins/lisa-expo-copilot/skills/ops-check-logs/SKILL.md +211 -0
  257. package/plugins/lisa-expo-copilot/skills/ops-db-ops/SKILL.md +119 -0
  258. package/plugins/lisa-expo-copilot/skills/ops-deploy/SKILL.md +119 -0
  259. package/plugins/lisa-expo-copilot/skills/ops-monitor-errors/SKILL.md +99 -0
  260. package/plugins/lisa-expo-copilot/skills/ops-performance/SKILL.md +165 -0
  261. package/plugins/lisa-expo-copilot/skills/ops-run-local/SKILL.md +166 -0
  262. package/plugins/lisa-expo-copilot/skills/ops-verify-health/SKILL.md +101 -0
  263. package/plugins/lisa-expo-copilot/skills/owasp-zap/SKILL.md +56 -0
  264. package/plugins/lisa-expo-copilot/skills/playwright-ci-debugging/SKILL.md +140 -0
  265. package/plugins/lisa-expo-copilot/skills/playwright-selectors/SKILL.md +455 -0
  266. package/plugins/lisa-expo-copilot/skills/reduce-complexity/SKILL.md +251 -0
  267. package/plugins/lisa-expo-copilot/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  268. package/plugins/lisa-expo-copilot/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  269. package/plugins/lisa-expo-copilot/skills/testing-library/SKILL.md +314 -0
  270. package/plugins/lisa-expo-copilot/skills/testing-library/references/async-patterns.md +420 -0
  271. package/plugins/lisa-expo-copilot/skills/testing-library/references/expo-router-testing.md +556 -0
  272. package/plugins/lisa-expo-copilot/skills/testing-library/references/mocking-patterns.md +590 -0
  273. package/plugins/lisa-expo-copilot/skills/testing-library/references/query-priority.md +291 -0
  274. package/plugins/lisa-expo-copilot/skills/upgrading-expo/SKILL.md +134 -0
  275. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  276. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  277. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/native-tabs.md +124 -0
  278. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/new-architecture.md +79 -0
  279. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-19.md +79 -0
  280. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-compiler.md +59 -0
  281. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  282. package/plugins/lisa-expo-copilot/skills/use-dom/SKILL.md +417 -0
  283. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +11 -0
  284. package/plugins/lisa-expo-cursor/.mcp.json +8 -0
  285. package/plugins/lisa-expo-cursor/THIRD-PARTY-NOTICES.md +57 -0
  286. package/plugins/lisa-expo-cursor/agents/ops-specialist.md +124 -0
  287. package/plugins/lisa-expo-cursor/commands/e2e-coverage-gaps.md +7 -0
  288. package/plugins/lisa-expo-cursor/commands/exploratory-qa.md +7 -0
  289. package/plugins/lisa-expo-cursor/skills/add-app-clip/SKILL.md +280 -0
  290. package/plugins/lisa-expo-cursor/skills/add-app-clip/references/native-module.md +96 -0
  291. package/plugins/lisa-expo-cursor/skills/apollo-client/SKILL.md +238 -0
  292. package/plugins/lisa-expo-cursor/skills/apollo-client/references/mutation-patterns.md +360 -0
  293. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/SKILL.md +360 -0
  294. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  295. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  296. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  297. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  298. package/plugins/lisa-expo-cursor/skills/building-native-ui/SKILL.md +321 -0
  299. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/animations.md +220 -0
  300. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/controls.md +272 -0
  301. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/form-sheet.md +253 -0
  302. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/gradients.md +106 -0
  303. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/icons.md +213 -0
  304. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/media.md +198 -0
  305. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/route-structure.md +229 -0
  306. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/search.md +248 -0
  307. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/storage.md +121 -0
  308. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/tabs.md +433 -0
  309. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  310. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/visual-effects.md +197 -0
  311. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/webgpu-three.md +605 -0
  312. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/zoom-transitions.md +158 -0
  313. package/plugins/lisa-expo-cursor/skills/container-view-pattern/SKILL.md +299 -0
  314. package/plugins/lisa-expo-cursor/skills/container-view-pattern/references/examples.md +749 -0
  315. package/plugins/lisa-expo-cursor/skills/container-view-pattern/references/patterns.md +318 -0
  316. package/plugins/lisa-expo-cursor/skills/container-view-pattern/scripts/create_component.py +200 -0
  317. package/plugins/lisa-expo-cursor/skills/container-view-pattern/scripts/validate_component.py +209 -0
  318. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/SKILL.md +268 -0
  319. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  320. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  321. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  322. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  323. package/plugins/lisa-expo-cursor/skills/directory-structure/SKILL.md +202 -0
  324. package/plugins/lisa-expo-cursor/skills/directory-structure/scripts/validate_structure.py +445 -0
  325. package/plugins/lisa-expo-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
  326. package/plugins/lisa-expo-cursor/skills/eas-update-insights/SKILL.md +228 -0
  327. package/plugins/lisa-expo-cursor/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  328. package/plugins/lisa-expo-cursor/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  329. package/plugins/lisa-expo-cursor/skills/exploratory-qa/SKILL.md +145 -0
  330. package/plugins/lisa-expo-cursor/skills/expo-api-routes/SKILL.md +369 -0
  331. package/plugins/lisa-expo-cursor/skills/expo-brownfield/SKILL.md +54 -0
  332. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  333. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  334. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/comparison.md +63 -0
  335. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/troubleshooting.md +88 -0
  336. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/SKILL.md +92 -0
  337. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  338. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/package.json +11 -0
  339. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  340. package/plugins/lisa-expo-cursor/skills/expo-deployment/SKILL.md +190 -0
  341. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/app-store-metadata.md +479 -0
  342. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/ios-app-store.md +355 -0
  343. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/play-store.md +246 -0
  344. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/testflight.md +58 -0
  345. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/workflows.md +200 -0
  346. package/plugins/lisa-expo-cursor/skills/expo-dev-client/SKILL.md +164 -0
  347. package/plugins/lisa-expo-cursor/skills/expo-env-config/SKILL.md +309 -0
  348. package/plugins/lisa-expo-cursor/skills/expo-env-config/references/validation-patterns.md +417 -0
  349. package/plugins/lisa-expo-cursor/skills/expo-module/SKILL.md +141 -0
  350. package/plugins/lisa-expo-cursor/skills/expo-module/references/config-plugin.md +90 -0
  351. package/plugins/lisa-expo-cursor/skills/expo-module/references/create-expo-module.md +206 -0
  352. package/plugins/lisa-expo-cursor/skills/expo-module/references/lifecycle.md +127 -0
  353. package/plugins/lisa-expo-cursor/skills/expo-module/references/module-config.md +48 -0
  354. package/plugins/lisa-expo-cursor/skills/expo-module/references/native-module.md +286 -0
  355. package/plugins/lisa-expo-cursor/skills/expo-module/references/native-view.md +171 -0
  356. package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/SKILL.md +431 -0
  357. package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/references/official-docs.md +290 -0
  358. package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  359. package/plugins/lisa-expo-cursor/skills/expo-tailwind-setup/SKILL.md +480 -0
  360. package/plugins/lisa-expo-cursor/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  361. package/plugins/lisa-expo-cursor/skills/expo-ui-swift-ui/SKILL.md +39 -0
  362. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/SKILL.md +411 -0
  363. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  364. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  365. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  366. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  367. package/plugins/lisa-expo-cursor/skills/jira-add-journey/SKILL.md +126 -0
  368. package/plugins/lisa-expo-cursor/skills/jira-create/SKILL.md +161 -0
  369. package/plugins/lisa-expo-cursor/skills/jira-evidence/SKILL.md +78 -0
  370. package/plugins/lisa-expo-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  371. package/plugins/lisa-expo-cursor/skills/jira-journey/SKILL.md +190 -0
  372. package/plugins/lisa-expo-cursor/skills/jira-journey/scripts/generate-templates.py +281 -0
  373. package/plugins/lisa-expo-cursor/skills/jira-journey/scripts/parse-plan.py +368 -0
  374. package/plugins/lisa-expo-cursor/skills/jira-verify/SKILL.md +27 -0
  375. package/plugins/lisa-expo-cursor/skills/local-state/SKILL.md +362 -0
  376. package/plugins/lisa-expo-cursor/skills/local-state/references/async-storage.md +505 -0
  377. package/plugins/lisa-expo-cursor/skills/local-state/references/persistence-patterns.md +711 -0
  378. package/plugins/lisa-expo-cursor/skills/local-state/references/reactive-variables.md +446 -0
  379. package/plugins/lisa-expo-cursor/skills/native-data-fetching/SKILL.md +507 -0
  380. package/plugins/lisa-expo-cursor/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  381. package/plugins/lisa-expo-cursor/skills/ops-browser-uat/SKILL.md +124 -0
  382. package/plugins/lisa-expo-cursor/skills/ops-check-logs/SKILL.md +211 -0
  383. package/plugins/lisa-expo-cursor/skills/ops-db-ops/SKILL.md +119 -0
  384. package/plugins/lisa-expo-cursor/skills/ops-deploy/SKILL.md +119 -0
  385. package/plugins/lisa-expo-cursor/skills/ops-monitor-errors/SKILL.md +99 -0
  386. package/plugins/lisa-expo-cursor/skills/ops-performance/SKILL.md +165 -0
  387. package/plugins/lisa-expo-cursor/skills/ops-run-local/SKILL.md +166 -0
  388. package/plugins/lisa-expo-cursor/skills/ops-verify-health/SKILL.md +101 -0
  389. package/plugins/lisa-expo-cursor/skills/owasp-zap/SKILL.md +56 -0
  390. package/plugins/lisa-expo-cursor/skills/playwright-ci-debugging/SKILL.md +140 -0
  391. package/plugins/lisa-expo-cursor/skills/playwright-selectors/SKILL.md +455 -0
  392. package/plugins/lisa-expo-cursor/skills/reduce-complexity/SKILL.md +251 -0
  393. package/plugins/lisa-expo-cursor/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  394. package/plugins/lisa-expo-cursor/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  395. package/plugins/lisa-expo-cursor/skills/testing-library/SKILL.md +314 -0
  396. package/plugins/lisa-expo-cursor/skills/testing-library/references/async-patterns.md +420 -0
  397. package/plugins/lisa-expo-cursor/skills/testing-library/references/expo-router-testing.md +556 -0
  398. package/plugins/lisa-expo-cursor/skills/testing-library/references/mocking-patterns.md +590 -0
  399. package/plugins/lisa-expo-cursor/skills/testing-library/references/query-priority.md +291 -0
  400. package/plugins/lisa-expo-cursor/skills/upgrading-expo/SKILL.md +134 -0
  401. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  402. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  403. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/native-tabs.md +124 -0
  404. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/new-architecture.md +79 -0
  405. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-19.md +79 -0
  406. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-compiler.md +59 -0
  407. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  408. package/plugins/lisa-expo-cursor/skills/use-dom/SKILL.md +417 -0
  409. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  410. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  411. package/plugins/lisa-harper-fabric-agy/commands/e2e-coverage-gaps.md +7 -0
  412. package/plugins/lisa-harper-fabric-agy/commands/exploratory-qa.md +7 -0
  413. package/plugins/lisa-harper-fabric-agy/plugin.json +11 -0
  414. package/plugins/lisa-harper-fabric-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
  415. package/plugins/lisa-harper-fabric-agy/skills/exploratory-qa/SKILL.md +145 -0
  416. package/plugins/lisa-harper-fabric-agy/skills/harper-build-and-deploy/SKILL.md +101 -0
  417. package/plugins/lisa-harper-fabric-agy/skills/harper-component-model/SKILL.md +87 -0
  418. package/plugins/lisa-harper-fabric-agy/skills/harper-config-yaml/SKILL.md +107 -0
  419. package/plugins/lisa-harper-fabric-agy/skills/harper-resources/SKILL.md +106 -0
  420. package/plugins/lisa-harper-fabric-agy/skills/harper-schema-graphql/SKILL.md +72 -0
  421. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +35 -0
  422. package/plugins/lisa-harper-fabric-copilot/commands/e2e-coverage-gaps.md +7 -0
  423. package/plugins/lisa-harper-fabric-copilot/commands/exploratory-qa.md +7 -0
  424. package/plugins/lisa-harper-fabric-copilot/hooks/inject-rules.sh +16 -0
  425. package/plugins/lisa-harper-fabric-copilot/rules/harper-fabric.md +51 -0
  426. package/plugins/lisa-harper-fabric-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
  427. package/plugins/lisa-harper-fabric-copilot/skills/exploratory-qa/SKILL.md +145 -0
  428. package/plugins/lisa-harper-fabric-copilot/skills/harper-build-and-deploy/SKILL.md +101 -0
  429. package/plugins/lisa-harper-fabric-copilot/skills/harper-component-model/SKILL.md +87 -0
  430. package/plugins/lisa-harper-fabric-copilot/skills/harper-config-yaml/SKILL.md +107 -0
  431. package/plugins/lisa-harper-fabric-copilot/skills/harper-resources/SKILL.md +106 -0
  432. package/plugins/lisa-harper-fabric-copilot/skills/harper-schema-graphql/SKILL.md +72 -0
  433. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +11 -0
  434. package/plugins/lisa-harper-fabric-cursor/commands/e2e-coverage-gaps.md +7 -0
  435. package/plugins/lisa-harper-fabric-cursor/commands/exploratory-qa.md +7 -0
  436. package/plugins/lisa-harper-fabric-cursor/rules/harper-fabric.md +51 -0
  437. package/plugins/lisa-harper-fabric-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
  438. package/plugins/lisa-harper-fabric-cursor/skills/exploratory-qa/SKILL.md +145 -0
  439. package/plugins/lisa-harper-fabric-cursor/skills/harper-build-and-deploy/SKILL.md +101 -0
  440. package/plugins/lisa-harper-fabric-cursor/skills/harper-component-model/SKILL.md +87 -0
  441. package/plugins/lisa-harper-fabric-cursor/skills/harper-config-yaml/SKILL.md +107 -0
  442. package/plugins/lisa-harper-fabric-cursor/skills/harper-resources/SKILL.md +106 -0
  443. package/plugins/lisa-harper-fabric-cursor/skills/harper-schema-graphql/SKILL.md +72 -0
  444. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  445. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  446. package/plugins/lisa-nestjs-agy/plugin.json +11 -0
  447. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/SKILL.md +176 -0
  448. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/advanced-features.md +527 -0
  449. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/project-patterns.md +531 -0
  450. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/quick-start.md +257 -0
  451. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  452. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/types-scalars.md +513 -0
  453. package/plugins/lisa-nestjs-agy/skills/nestjs-rules/SKILL.md +565 -0
  454. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/SKILL.md +275 -0
  455. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  456. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  457. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  458. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +24 -0
  459. package/plugins/lisa-nestjs-copilot/hooks/block-migration-edits.sh +60 -0
  460. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/SKILL.md +176 -0
  461. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/advanced-features.md +527 -0
  462. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/project-patterns.md +531 -0
  463. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/quick-start.md +257 -0
  464. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  465. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/types-scalars.md +513 -0
  466. package/plugins/lisa-nestjs-copilot/skills/nestjs-rules/SKILL.md +565 -0
  467. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/SKILL.md +275 -0
  468. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  469. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  470. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  471. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +24 -0
  472. package/plugins/lisa-nestjs-cursor/hooks/block-migration-edits.sh +60 -0
  473. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/SKILL.md +176 -0
  474. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/advanced-features.md +527 -0
  475. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/project-patterns.md +531 -0
  476. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/quick-start.md +257 -0
  477. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  478. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/types-scalars.md +513 -0
  479. package/plugins/lisa-nestjs-cursor/skills/nestjs-rules/SKILL.md +565 -0
  480. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/SKILL.md +275 -0
  481. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  482. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  483. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  484. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  485. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  486. package/plugins/lisa-openclaw-agy/commands/connect-repo-topic.md +7 -0
  487. package/plugins/lisa-openclaw-agy/commands/connect-staff-slack.md +7 -0
  488. package/plugins/lisa-openclaw-agy/commands/connect-staff-telegram.md +7 -0
  489. package/plugins/lisa-openclaw-agy/commands/setup-openclaw.md +7 -0
  490. package/plugins/lisa-openclaw-agy/plugin.json +8 -0
  491. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  492. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  493. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  494. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  495. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  496. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-setup/SKILL.md +138 -0
  497. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +8 -0
  498. package/plugins/lisa-openclaw-copilot/commands/connect-repo-topic.md +7 -0
  499. package/plugins/lisa-openclaw-copilot/commands/connect-staff-slack.md +7 -0
  500. package/plugins/lisa-openclaw-copilot/commands/connect-staff-telegram.md +7 -0
  501. package/plugins/lisa-openclaw-copilot/commands/setup-openclaw.md +7 -0
  502. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  503. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  504. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  505. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  506. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  507. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-setup/SKILL.md +138 -0
  508. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +8 -0
  509. package/plugins/lisa-openclaw-cursor/commands/connect-repo-topic.md +7 -0
  510. package/plugins/lisa-openclaw-cursor/commands/connect-staff-slack.md +7 -0
  511. package/plugins/lisa-openclaw-cursor/commands/connect-staff-telegram.md +7 -0
  512. package/plugins/lisa-openclaw-cursor/commands/setup-openclaw.md +7 -0
  513. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  514. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  515. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  516. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  517. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  518. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-setup/SKILL.md +138 -0
  519. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  520. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  521. package/plugins/lisa-rails-agy/agents/ops-specialist.md +226 -0
  522. package/plugins/lisa-rails-agy/commands/e2e-coverage-gaps.md +7 -0
  523. package/plugins/lisa-rails-agy/commands/exploratory-qa.md +7 -0
  524. package/plugins/lisa-rails-agy/commands/fix/linter-error.md +7 -0
  525. package/plugins/lisa-rails-agy/commands/improve/code-complexity.md +6 -0
  526. package/plugins/lisa-rails-agy/commands/improve/max-lines-per-function.md +7 -0
  527. package/plugins/lisa-rails-agy/commands/improve/max-lines.md +7 -0
  528. package/plugins/lisa-rails-agy/commands/improve/test-coverage.md +7 -0
  529. package/plugins/lisa-rails-agy/plugin.json +11 -0
  530. package/plugins/lisa-rails-agy/skills/action-controller-best-practices/SKILL.md +374 -0
  531. package/plugins/lisa-rails-agy/skills/action-view-best-practices/SKILL.md +335 -0
  532. package/plugins/lisa-rails-agy/skills/active-record-model-best-practices/SKILL.md +166 -0
  533. package/plugins/lisa-rails-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
  534. package/plugins/lisa-rails-agy/skills/exploratory-qa/SKILL.md +145 -0
  535. package/plugins/lisa-rails-agy/skills/fix-linter-error/SKILL.md +45 -0
  536. package/plugins/lisa-rails-agy/skills/improve-code-complexity/SKILL.md +48 -0
  537. package/plugins/lisa-rails-agy/skills/improve-max-lines/SKILL.md +46 -0
  538. package/plugins/lisa-rails-agy/skills/improve-max-lines-per-function/SKILL.md +46 -0
  539. package/plugins/lisa-rails-agy/skills/improve-test-coverage/SKILL.md +45 -0
  540. package/plugins/lisa-rails-agy/skills/jira-add-journey/SKILL.md +65 -0
  541. package/plugins/lisa-rails-agy/skills/jira-create/SKILL.md +100 -0
  542. package/plugins/lisa-rails-agy/skills/jira-evidence/SKILL.md +70 -0
  543. package/plugins/lisa-rails-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  544. package/plugins/lisa-rails-agy/skills/jira-journey/SKILL.md +64 -0
  545. package/plugins/lisa-rails-agy/skills/jira-verify/SKILL.md +26 -0
  546. package/plugins/lisa-rails-agy/skills/ops-check-logs/SKILL.md +191 -0
  547. package/plugins/lisa-rails-agy/skills/ops-deploy/SKILL.md +153 -0
  548. package/plugins/lisa-rails-agy/skills/ops-run-local/SKILL.md +169 -0
  549. package/plugins/lisa-rails-agy/skills/ops-verify-jobs/SKILL.md +157 -0
  550. package/plugins/lisa-rails-agy/skills/ops-verify-telemetry/SKILL.md +197 -0
  551. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +50 -0
  552. package/plugins/lisa-rails-copilot/agents/ops-specialist.agent.md +226 -0
  553. package/plugins/lisa-rails-copilot/commands/e2e-coverage-gaps.md +7 -0
  554. package/plugins/lisa-rails-copilot/commands/exploratory-qa.md +7 -0
  555. package/plugins/lisa-rails-copilot/commands/fix/linter-error.md +7 -0
  556. package/plugins/lisa-rails-copilot/commands/improve/code-complexity.md +6 -0
  557. package/plugins/lisa-rails-copilot/commands/improve/max-lines-per-function.md +7 -0
  558. package/plugins/lisa-rails-copilot/commands/improve/max-lines.md +7 -0
  559. package/plugins/lisa-rails-copilot/commands/improve/test-coverage.md +7 -0
  560. package/plugins/lisa-rails-copilot/hooks/inject-rules.sh +22 -0
  561. package/plugins/lisa-rails-copilot/hooks/rubocop-on-edit.sh +78 -0
  562. package/plugins/lisa-rails-copilot/hooks/sg-scan-on-edit.sh +74 -0
  563. package/plugins/lisa-rails-copilot/rules/rails-conventions.md +176 -0
  564. package/plugins/lisa-rails-copilot/skills/action-controller-best-practices/SKILL.md +374 -0
  565. package/plugins/lisa-rails-copilot/skills/action-view-best-practices/SKILL.md +335 -0
  566. package/plugins/lisa-rails-copilot/skills/active-record-model-best-practices/SKILL.md +166 -0
  567. package/plugins/lisa-rails-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
  568. package/plugins/lisa-rails-copilot/skills/exploratory-qa/SKILL.md +145 -0
  569. package/plugins/lisa-rails-copilot/skills/fix-linter-error/SKILL.md +45 -0
  570. package/plugins/lisa-rails-copilot/skills/improve-code-complexity/SKILL.md +48 -0
  571. package/plugins/lisa-rails-copilot/skills/improve-max-lines/SKILL.md +46 -0
  572. package/plugins/lisa-rails-copilot/skills/improve-max-lines-per-function/SKILL.md +46 -0
  573. package/plugins/lisa-rails-copilot/skills/improve-test-coverage/SKILL.md +45 -0
  574. package/plugins/lisa-rails-copilot/skills/jira-add-journey/SKILL.md +65 -0
  575. package/plugins/lisa-rails-copilot/skills/jira-create/SKILL.md +100 -0
  576. package/plugins/lisa-rails-copilot/skills/jira-evidence/SKILL.md +70 -0
  577. package/plugins/lisa-rails-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  578. package/plugins/lisa-rails-copilot/skills/jira-journey/SKILL.md +64 -0
  579. package/plugins/lisa-rails-copilot/skills/jira-verify/SKILL.md +26 -0
  580. package/plugins/lisa-rails-copilot/skills/ops-check-logs/SKILL.md +191 -0
  581. package/plugins/lisa-rails-copilot/skills/ops-deploy/SKILL.md +153 -0
  582. package/plugins/lisa-rails-copilot/skills/ops-run-local/SKILL.md +169 -0
  583. package/plugins/lisa-rails-copilot/skills/ops-verify-jobs/SKILL.md +157 -0
  584. package/plugins/lisa-rails-copilot/skills/ops-verify-telemetry/SKILL.md +197 -0
  585. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +28 -0
  586. package/plugins/lisa-rails-cursor/agents/ops-specialist.md +226 -0
  587. package/plugins/lisa-rails-cursor/commands/e2e-coverage-gaps.md +7 -0
  588. package/plugins/lisa-rails-cursor/commands/exploratory-qa.md +7 -0
  589. package/plugins/lisa-rails-cursor/commands/fix/linter-error.md +7 -0
  590. package/plugins/lisa-rails-cursor/commands/improve/code-complexity.md +6 -0
  591. package/plugins/lisa-rails-cursor/commands/improve/max-lines-per-function.md +7 -0
  592. package/plugins/lisa-rails-cursor/commands/improve/max-lines.md +7 -0
  593. package/plugins/lisa-rails-cursor/commands/improve/test-coverage.md +7 -0
  594. package/plugins/lisa-rails-cursor/hooks/rubocop-on-edit.sh +78 -0
  595. package/plugins/lisa-rails-cursor/hooks/sg-scan-on-edit.sh +74 -0
  596. package/plugins/lisa-rails-cursor/rules/rails-conventions.md +176 -0
  597. package/plugins/lisa-rails-cursor/skills/action-controller-best-practices/SKILL.md +374 -0
  598. package/plugins/lisa-rails-cursor/skills/action-view-best-practices/SKILL.md +335 -0
  599. package/plugins/lisa-rails-cursor/skills/active-record-model-best-practices/SKILL.md +166 -0
  600. package/plugins/lisa-rails-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
  601. package/plugins/lisa-rails-cursor/skills/exploratory-qa/SKILL.md +145 -0
  602. package/plugins/lisa-rails-cursor/skills/fix-linter-error/SKILL.md +45 -0
  603. package/plugins/lisa-rails-cursor/skills/improve-code-complexity/SKILL.md +48 -0
  604. package/plugins/lisa-rails-cursor/skills/improve-max-lines/SKILL.md +46 -0
  605. package/plugins/lisa-rails-cursor/skills/improve-max-lines-per-function/SKILL.md +46 -0
  606. package/plugins/lisa-rails-cursor/skills/improve-test-coverage/SKILL.md +45 -0
  607. package/plugins/lisa-rails-cursor/skills/jira-add-journey/SKILL.md +65 -0
  608. package/plugins/lisa-rails-cursor/skills/jira-create/SKILL.md +100 -0
  609. package/plugins/lisa-rails-cursor/skills/jira-evidence/SKILL.md +70 -0
  610. package/plugins/lisa-rails-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  611. package/plugins/lisa-rails-cursor/skills/jira-journey/SKILL.md +64 -0
  612. package/plugins/lisa-rails-cursor/skills/jira-verify/SKILL.md +26 -0
  613. package/plugins/lisa-rails-cursor/skills/ops-check-logs/SKILL.md +191 -0
  614. package/plugins/lisa-rails-cursor/skills/ops-deploy/SKILL.md +153 -0
  615. package/plugins/lisa-rails-cursor/skills/ops-run-local/SKILL.md +169 -0
  616. package/plugins/lisa-rails-cursor/skills/ops-verify-jobs/SKILL.md +157 -0
  617. package/plugins/lisa-rails-cursor/skills/ops-verify-telemetry/SKILL.md +197 -0
  618. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  619. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  620. package/plugins/lisa-typescript-agy/plugin.json +11 -0
  621. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +43 -0
  622. package/plugins/lisa-typescript-copilot/hooks/block-suppress-directives.sh +73 -0
  623. package/plugins/lisa-typescript-copilot/hooks/format-on-edit.sh +79 -0
  624. package/plugins/lisa-typescript-copilot/hooks/lint-on-edit.sh +134 -0
  625. package/plugins/lisa-typescript-copilot/hooks/sg-scan-on-edit.sh +71 -0
  626. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +43 -0
  627. package/plugins/lisa-typescript-cursor/hooks/block-suppress-directives.sh +73 -0
  628. package/plugins/lisa-typescript-cursor/hooks/format-on-edit.sh +79 -0
  629. package/plugins/lisa-typescript-cursor/hooks/lint-on-edit.sh +134 -0
  630. package/plugins/lisa-typescript-cursor/hooks/sg-scan-on-edit.sh +71 -0
  631. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  632. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  633. package/plugins/lisa-wiki-agy/ci/lisa-wiki-validate.yml +33 -0
  634. package/plugins/lisa-wiki-agy/commands/add-ingest.md +6 -0
  635. package/plugins/lisa-wiki-agy/commands/add-role.md +6 -0
  636. package/plugins/lisa-wiki-agy/commands/doctor.md +6 -0
  637. package/plugins/lisa-wiki-agy/commands/ingest.md +6 -0
  638. package/plugins/lisa-wiki-agy/commands/lint.md +6 -0
  639. package/plugins/lisa-wiki-agy/commands/migrate.md +6 -0
  640. package/plugins/lisa-wiki-agy/commands/onboard-me.md +6 -0
  641. package/plugins/lisa-wiki-agy/commands/query.md +6 -0
  642. package/plugins/lisa-wiki-agy/commands/setup/wiki.md +6 -0
  643. package/plugins/lisa-wiki-agy/commands/setup-automations.md +6 -0
  644. package/plugins/lisa-wiki-agy/commands/setup.md +6 -0
  645. package/plugins/lisa-wiki-agy/commands/status.md +6 -0
  646. package/plugins/lisa-wiki-agy/commands/tear-down-automations.md +6 -0
  647. package/plugins/lisa-wiki-agy/plugin.json +8 -0
  648. package/plugins/lisa-wiki-agy/schema/lisa-wiki-config.schema.json +118 -0
  649. package/plugins/lisa-wiki-agy/schema/wiki-structure.schema.json +51 -0
  650. package/plugins/lisa-wiki-agy/scripts/_wiki-lib.mjs +185 -0
  651. package/plugins/lisa-wiki-agy/scripts/diff-guard.mjs +116 -0
  652. package/plugins/lisa-wiki-agy/scripts/ensure-gitignore.mjs +131 -0
  653. package/plugins/lisa-wiki-agy/scripts/ingest-git.mjs +189 -0
  654. package/plugins/lisa-wiki-agy/scripts/ingest-memory.mjs +130 -0
  655. package/plugins/lisa-wiki-agy/scripts/ingest-roles.mjs +85 -0
  656. package/plugins/lisa-wiki-agy/scripts/ingest_slack_channel.py +329 -0
  657. package/plugins/lisa-wiki-agy/scripts/lint-wiki.mjs +324 -0
  658. package/plugins/lisa-wiki-agy/scripts/mcp-doctor.mjs +72 -0
  659. package/plugins/lisa-wiki-agy/scripts/render-contract.mjs +107 -0
  660. package/plugins/lisa-wiki-agy/scripts/rewrite-refs.mjs +144 -0
  661. package/plugins/lisa-wiki-agy/scripts/slack_oauth_user.py +179 -0
  662. package/plugins/lisa-wiki-agy/scripts/validate-config.mjs +232 -0
  663. package/plugins/lisa-wiki-agy/scripts/verify-migration.mjs +199 -0
  664. package/plugins/lisa-wiki-agy/scripts/wiki-status.mjs +345 -0
  665. package/plugins/lisa-wiki-agy/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  666. package/plugins/lisa-wiki-agy/skills/lisa-wiki-add-role/SKILL.md +30 -0
  667. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  668. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  669. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  670. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  671. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  672. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  673. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  674. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  675. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  676. package/plugins/lisa-wiki-agy/skills/lisa-wiki-doctor/SKILL.md +47 -0
  677. package/plugins/lisa-wiki-agy/skills/lisa-wiki-ingest/SKILL.md +72 -0
  678. package/plugins/lisa-wiki-agy/skills/lisa-wiki-lint/SKILL.md +32 -0
  679. package/plugins/lisa-wiki-agy/skills/lisa-wiki-migrate/SKILL.md +43 -0
  680. package/plugins/lisa-wiki-agy/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  681. package/plugins/lisa-wiki-agy/skills/lisa-wiki-query/SKILL.md +30 -0
  682. package/plugins/lisa-wiki-agy/skills/lisa-wiki-setup/SKILL.md +75 -0
  683. package/plugins/lisa-wiki-agy/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
  684. package/plugins/lisa-wiki-agy/skills/lisa-wiki-status/SKILL.md +47 -0
  685. package/plugins/lisa-wiki-agy/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  686. package/plugins/lisa-wiki-agy/skills/lisa-wiki-usage/SKILL.md +50 -0
  687. package/plugins/lisa-wiki-agy/templates/agents/role-agent.claude.md +16 -0
  688. package/plugins/lisa-wiki-agy/templates/agents/role-agent.codex.toml +15 -0
  689. package/plugins/lisa-wiki-agy/templates/index.md +17 -0
  690. package/plugins/lisa-wiki-agy/templates/llm-wiki-contract.md +72 -0
  691. package/plugins/lisa-wiki-agy/templates/log.md +8 -0
  692. package/plugins/lisa-wiki-agy/templates/page-types/architecture.md +18 -0
  693. package/plugins/lisa-wiki-agy/templates/page-types/concept.md +18 -0
  694. package/plugins/lisa-wiki-agy/templates/page-types/decision.md +18 -0
  695. package/plugins/lisa-wiki-agy/templates/page-types/entity.md +19 -0
  696. package/plugins/lisa-wiki-agy/templates/page-types/open-question.md +18 -0
  697. package/plugins/lisa-wiki-agy/templates/page-types/playbook.md +18 -0
  698. package/plugins/lisa-wiki-agy/templates/page-types/project.md +19 -0
  699. package/plugins/lisa-wiki-agy/templates/page-types/requirement.md +19 -0
  700. package/plugins/lisa-wiki-agy/templates/page-types/staff.md +26 -0
  701. package/plugins/lisa-wiki-agy/templates/start-here.md +24 -0
  702. package/plugins/lisa-wiki-agy/templates/state-readme.md +20 -0
  703. package/plugins/lisa-wiki-agy/templates/wrapper-gitignore.txt +19 -0
  704. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +8 -0
  705. package/plugins/lisa-wiki-copilot/ci/lisa-wiki-validate.yml +33 -0
  706. package/plugins/lisa-wiki-copilot/commands/add-ingest.md +6 -0
  707. package/plugins/lisa-wiki-copilot/commands/add-role.md +6 -0
  708. package/plugins/lisa-wiki-copilot/commands/doctor.md +6 -0
  709. package/plugins/lisa-wiki-copilot/commands/ingest.md +6 -0
  710. package/plugins/lisa-wiki-copilot/commands/lint.md +6 -0
  711. package/plugins/lisa-wiki-copilot/commands/migrate.md +6 -0
  712. package/plugins/lisa-wiki-copilot/commands/onboard-me.md +6 -0
  713. package/plugins/lisa-wiki-copilot/commands/query.md +6 -0
  714. package/plugins/lisa-wiki-copilot/commands/setup/wiki.md +6 -0
  715. package/plugins/lisa-wiki-copilot/commands/setup-automations.md +6 -0
  716. package/plugins/lisa-wiki-copilot/commands/setup.md +6 -0
  717. package/plugins/lisa-wiki-copilot/commands/status.md +6 -0
  718. package/plugins/lisa-wiki-copilot/commands/tear-down-automations.md +6 -0
  719. package/plugins/lisa-wiki-copilot/schema/lisa-wiki-config.schema.json +118 -0
  720. package/plugins/lisa-wiki-copilot/schema/wiki-structure.schema.json +51 -0
  721. package/plugins/lisa-wiki-copilot/scripts/_wiki-lib.mjs +185 -0
  722. package/plugins/lisa-wiki-copilot/scripts/diff-guard.mjs +116 -0
  723. package/plugins/lisa-wiki-copilot/scripts/ensure-gitignore.mjs +131 -0
  724. package/plugins/lisa-wiki-copilot/scripts/ingest-git.mjs +189 -0
  725. package/plugins/lisa-wiki-copilot/scripts/ingest-memory.mjs +130 -0
  726. package/plugins/lisa-wiki-copilot/scripts/ingest-roles.mjs +85 -0
  727. package/plugins/lisa-wiki-copilot/scripts/ingest_slack_channel.py +329 -0
  728. package/plugins/lisa-wiki-copilot/scripts/lint-wiki.mjs +324 -0
  729. package/plugins/lisa-wiki-copilot/scripts/mcp-doctor.mjs +72 -0
  730. package/plugins/lisa-wiki-copilot/scripts/render-contract.mjs +107 -0
  731. package/plugins/lisa-wiki-copilot/scripts/rewrite-refs.mjs +144 -0
  732. package/plugins/lisa-wiki-copilot/scripts/slack_oauth_user.py +179 -0
  733. package/plugins/lisa-wiki-copilot/scripts/validate-config.mjs +232 -0
  734. package/plugins/lisa-wiki-copilot/scripts/verify-migration.mjs +199 -0
  735. package/plugins/lisa-wiki-copilot/scripts/wiki-status.mjs +345 -0
  736. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  737. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-add-role/SKILL.md +30 -0
  738. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  739. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  740. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  741. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  742. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  743. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  744. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  745. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  746. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  747. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-doctor/SKILL.md +47 -0
  748. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-ingest/SKILL.md +72 -0
  749. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-lint/SKILL.md +32 -0
  750. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-migrate/SKILL.md +43 -0
  751. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  752. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-query/SKILL.md +30 -0
  753. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-setup/SKILL.md +75 -0
  754. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
  755. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-status/SKILL.md +47 -0
  756. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  757. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-usage/SKILL.md +50 -0
  758. package/plugins/lisa-wiki-copilot/templates/agents/role-agent.claude.md +16 -0
  759. package/plugins/lisa-wiki-copilot/templates/agents/role-agent.codex.toml +15 -0
  760. package/plugins/lisa-wiki-copilot/templates/index.md +17 -0
  761. package/plugins/lisa-wiki-copilot/templates/llm-wiki-contract.md +72 -0
  762. package/plugins/lisa-wiki-copilot/templates/log.md +8 -0
  763. package/plugins/lisa-wiki-copilot/templates/page-types/architecture.md +18 -0
  764. package/plugins/lisa-wiki-copilot/templates/page-types/concept.md +18 -0
  765. package/plugins/lisa-wiki-copilot/templates/page-types/decision.md +18 -0
  766. package/plugins/lisa-wiki-copilot/templates/page-types/entity.md +19 -0
  767. package/plugins/lisa-wiki-copilot/templates/page-types/open-question.md +18 -0
  768. package/plugins/lisa-wiki-copilot/templates/page-types/playbook.md +18 -0
  769. package/plugins/lisa-wiki-copilot/templates/page-types/project.md +19 -0
  770. package/plugins/lisa-wiki-copilot/templates/page-types/requirement.md +19 -0
  771. package/plugins/lisa-wiki-copilot/templates/page-types/staff.md +26 -0
  772. package/plugins/lisa-wiki-copilot/templates/start-here.md +24 -0
  773. package/plugins/lisa-wiki-copilot/templates/state-readme.md +20 -0
  774. package/plugins/lisa-wiki-copilot/templates/wrapper-gitignore.txt +19 -0
  775. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +8 -0
  776. package/plugins/lisa-wiki-cursor/ci/lisa-wiki-validate.yml +33 -0
  777. package/plugins/lisa-wiki-cursor/commands/add-ingest.md +6 -0
  778. package/plugins/lisa-wiki-cursor/commands/add-role.md +6 -0
  779. package/plugins/lisa-wiki-cursor/commands/doctor.md +6 -0
  780. package/plugins/lisa-wiki-cursor/commands/ingest.md +6 -0
  781. package/plugins/lisa-wiki-cursor/commands/lint.md +6 -0
  782. package/plugins/lisa-wiki-cursor/commands/migrate.md +6 -0
  783. package/plugins/lisa-wiki-cursor/commands/onboard-me.md +6 -0
  784. package/plugins/lisa-wiki-cursor/commands/query.md +6 -0
  785. package/plugins/lisa-wiki-cursor/commands/setup/wiki.md +6 -0
  786. package/plugins/lisa-wiki-cursor/commands/setup-automations.md +6 -0
  787. package/plugins/lisa-wiki-cursor/commands/setup.md +6 -0
  788. package/plugins/lisa-wiki-cursor/commands/status.md +6 -0
  789. package/plugins/lisa-wiki-cursor/commands/tear-down-automations.md +6 -0
  790. package/plugins/lisa-wiki-cursor/schema/lisa-wiki-config.schema.json +118 -0
  791. package/plugins/lisa-wiki-cursor/schema/wiki-structure.schema.json +51 -0
  792. package/plugins/lisa-wiki-cursor/scripts/_wiki-lib.mjs +185 -0
  793. package/plugins/lisa-wiki-cursor/scripts/diff-guard.mjs +116 -0
  794. package/plugins/lisa-wiki-cursor/scripts/ensure-gitignore.mjs +131 -0
  795. package/plugins/lisa-wiki-cursor/scripts/ingest-git.mjs +189 -0
  796. package/plugins/lisa-wiki-cursor/scripts/ingest-memory.mjs +130 -0
  797. package/plugins/lisa-wiki-cursor/scripts/ingest-roles.mjs +85 -0
  798. package/plugins/lisa-wiki-cursor/scripts/ingest_slack_channel.py +329 -0
  799. package/plugins/lisa-wiki-cursor/scripts/lint-wiki.mjs +324 -0
  800. package/plugins/lisa-wiki-cursor/scripts/mcp-doctor.mjs +72 -0
  801. package/plugins/lisa-wiki-cursor/scripts/render-contract.mjs +107 -0
  802. package/plugins/lisa-wiki-cursor/scripts/rewrite-refs.mjs +144 -0
  803. package/plugins/lisa-wiki-cursor/scripts/slack_oauth_user.py +179 -0
  804. package/plugins/lisa-wiki-cursor/scripts/validate-config.mjs +232 -0
  805. package/plugins/lisa-wiki-cursor/scripts/verify-migration.mjs +199 -0
  806. package/plugins/lisa-wiki-cursor/scripts/wiki-status.mjs +345 -0
  807. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  808. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-add-role/SKILL.md +30 -0
  809. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  810. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  811. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  812. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  813. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  814. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  815. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  816. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  817. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  818. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-doctor/SKILL.md +47 -0
  819. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-ingest/SKILL.md +72 -0
  820. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-lint/SKILL.md +32 -0
  821. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-migrate/SKILL.md +43 -0
  822. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  823. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-query/SKILL.md +30 -0
  824. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-setup/SKILL.md +75 -0
  825. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
  826. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-status/SKILL.md +47 -0
  827. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  828. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-usage/SKILL.md +50 -0
  829. package/plugins/lisa-wiki-cursor/templates/agents/role-agent.claude.md +16 -0
  830. package/plugins/lisa-wiki-cursor/templates/agents/role-agent.codex.toml +15 -0
  831. package/plugins/lisa-wiki-cursor/templates/index.md +17 -0
  832. package/plugins/lisa-wiki-cursor/templates/llm-wiki-contract.md +72 -0
  833. package/plugins/lisa-wiki-cursor/templates/log.md +8 -0
  834. package/plugins/lisa-wiki-cursor/templates/page-types/architecture.md +18 -0
  835. package/plugins/lisa-wiki-cursor/templates/page-types/concept.md +18 -0
  836. package/plugins/lisa-wiki-cursor/templates/page-types/decision.md +18 -0
  837. package/plugins/lisa-wiki-cursor/templates/page-types/entity.md +19 -0
  838. package/plugins/lisa-wiki-cursor/templates/page-types/open-question.md +18 -0
  839. package/plugins/lisa-wiki-cursor/templates/page-types/playbook.md +18 -0
  840. package/plugins/lisa-wiki-cursor/templates/page-types/project.md +19 -0
  841. package/plugins/lisa-wiki-cursor/templates/page-types/requirement.md +19 -0
  842. package/plugins/lisa-wiki-cursor/templates/page-types/staff.md +26 -0
  843. package/plugins/lisa-wiki-cursor/templates/start-here.md +24 -0
  844. package/plugins/lisa-wiki-cursor/templates/state-readme.md +20 -0
  845. package/plugins/lisa-wiki-cursor/templates/wrapper-gitignore.txt +19 -0
  846. package/scripts/build-plugins.sh +28 -11
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: jira-add-journey
3
+ description: "Add a Validation Journey section to an existing JIRA ticket by reading the ticket description, understanding the feature, and generating the journey steps, viewports, and assertions."
4
+ ---
5
+
6
+ # Add Validation Journey to Existing JIRA Ticket
7
+
8
+ Read an existing JIRA ticket, understand the feature or fix it describes, analyze the codebase to determine the user flow, and append a Validation Journey section to the ticket description.
9
+
10
+ ## Arguments
11
+
12
+ `$ARGUMENTS`: `<TICKET_ID>`
13
+
14
+ - `TICKET_ID` (required): JIRA ticket key (e.g., `PROJ-123`)
15
+
16
+ ## Prerequisites
17
+
18
+ - `JIRA_API_TOKEN` environment variable set
19
+ - `jira-cli` configured (`~/.config/.jira/.config.yml`)
20
+
21
+ ## Workflow
22
+
23
+ ### Step 1: Read the Ticket
24
+
25
+ Use the Atlassian MCP or jira-cli to read the full ticket details:
26
+
27
+ ```bash
28
+ jira issue view <TICKET_ID>
29
+ ```
30
+
31
+ Extract:
32
+ - Title and description (what the feature/fix is)
33
+ - Acceptance criteria (what needs to be verified)
34
+ - Components or labels (frontend, mobile, responsive, etc.)
35
+ - Any linked tickets or parent epic context
36
+
37
+ ### Step 2: Check for Existing Journey
38
+
39
+ Run the parser to see if a Validation Journey already exists:
40
+
41
+ ```bash
42
+ python3 .claude/skills/jira-journey/scripts/parse-plan.py <TICKET_ID> 2>&1
43
+ ```
44
+
45
+ If the parser succeeds and returns steps, the ticket already has a journey. Report this to the user and stop.
46
+
47
+ ### Step 3: Analyze the Feature
48
+
49
+ Based on the ticket description and acceptance criteria:
50
+
51
+ 1. **Identify the UI surface** — Which pages, modals, or components are affected?
52
+ 2. **Identify the user flow** — What steps does a user take to exercise the feature?
53
+ 3. **Identify visual checkpoints** — At which states should screenshots be captured?
54
+ 4. **Identify viewports** — Does this feature have responsive behavior? Always include Desktop. Add Mobile for responsive changes.
55
+ 5. **Identify assertions** — What must be visually true for the feature to be correct?
56
+
57
+ Use the Explore agent or read the codebase directly to understand:
58
+ - Which components are involved (search by ticket ID, feature name, or file paths mentioned in the ticket)
59
+ - What testIDs exist (for Playwright interaction)
60
+ - What the user flow looks like (Container/View structure, navigation, modals)
61
+
62
+ ### Step 4: Draft the Validation Journey
63
+
64
+ Compose the journey following the format:
65
+
66
+ ```text
67
+ h2. Validation Journey
68
+
69
+ h3. Prerequisites
70
+ - List what must be true before starting (backend, auth, feature flags)
71
+
72
+ h3. Steps
73
+ 1. First action the user takes
74
+ 2. Second action [SCREENSHOT: descriptive-name]
75
+ 3. Continue the flow
76
+ 4. Final verification [SCREENSHOT: final-state]
77
+
78
+ h3. Viewports
79
+ ||Name||Width||Height||
80
+ |Desktop|1512|768|
81
+ |Mobile|375|812|
82
+
83
+ h3. Assertions
84
+ - Testable visual statement about the expected behavior
85
+ - Another assertion about responsive layout
86
+ ```
87
+
88
+ ### Guidelines for Drafting
89
+
90
+ 1. **3-7 screenshot markers** — Enough to prove the feature, not so many that execution is slow
91
+ 2. **Concrete steps** — "Click the 'Add action' button" not "Interact with the controls"
92
+ 3. **Include auth if needed** — If the journey requires login, include credentials in Prerequisites
93
+ 4. **Name feature flags explicitly** — If the feature is behind a PostHog flag, name it
94
+ 5. **Assertions must be testable** — "Buttons stacked vertically on mobile" not "Layout looks good"
95
+ 6. **Screenshot names in kebab-case** — `confirm-step-disabled`, `modal-open`, `form-error`
96
+
97
+ ### Step 5: Present to User for Approval
98
+
99
+ Display the drafted Validation Journey to the user and ask for confirmation before appending it to the ticket. The user may want to:
100
+ - Add or remove steps
101
+ - Change screenshot markers
102
+ - Adjust viewports or assertions
103
+ - Modify prerequisites
104
+
105
+ ### Step 6: Append to Ticket Description
106
+
107
+ After user approval, use the JIRA REST API to append the Validation Journey to the existing ticket description.
108
+
109
+ Use the Atlassian MCP `updateJiraIssue` to update the description field. The journey section must be appended **after** the existing description content, not replace it.
110
+
111
+ ### Step 7: Verify
112
+
113
+ Run the parser again to confirm the journey was added correctly:
114
+
115
+ ```bash
116
+ python3 .claude/skills/jira-journey/scripts/parse-plan.py <TICKET_ID>
117
+ ```
118
+
119
+ The parser should now return the steps, viewports, and assertions from the newly added section.
120
+
121
+ ## When to Use This Skill
122
+
123
+ - Ticket was created before the Validation Journey convention was established
124
+ - Ticket was created manually without following `lisa:jira-create` guidelines
125
+ - Ticket needs a journey added or updated based on implementation progress
126
+ - During sprint planning, to ensure all frontend tickets have journeys before work starts
@@ -0,0 +1,161 @@
1
+ ---
2
+ name: jira-create
3
+ description: This skill should be used when creating JIRA epics, stories, and tasks from code files or descriptions. It analyzes the provided input, determines the appropriate issue hierarchy, and creates issues with comprehensive quality requirements including test-first development and documentation.
4
+ allowed-tools: ["Read", "Glob", "LS", "Skill", "mcp__atlassian__getVisibleJiraProjects", "mcp__atlassian__getJiraProjectIssueTypesMetadata", "mcp__atlassian__getAccessibleAtlassianResources"]
5
+ ---
6
+
7
+ # Create JIRA Issues from $ARGUMENTS
8
+
9
+ Analyze the provided file(s) and plan a JIRA hierarchy. **This skill plans structure only — every individual ticket write is delegated to `lisa:jira-write-ticket`.** Do not call `mcp__atlassian__createJiraIssue` from this skill; the necessary write tools are intentionally not in `allowed-tools`.
10
+
11
+ ## Process
12
+
13
+ 1. **Analyze**: Read $ARGUMENTS to understand scope.
14
+ 2. **Extract source artifacts**: invoke the `lisa:tracker-source-artifacts` skill, then enumerate every external URL, embed, attachment, or example payload and classify each by domain per its rules. Build the `artifacts` map. See "Source Artifacts" below.
15
+ 3. **Walk the live product** (when applicable): if the work touches existing user-facing surfaces, invoke the `lisa:product-walkthrough` skill to capture current behavior, design-vs-product divergence, and reuse candidates. Especially load-bearing for Expo/React Native — a UI ticket without a current-product walkthrough is missing context the implementer needs. Skip only when the work is purely backend or affects a screen that does not yet exist. See "Live Product Walkthrough" below.
16
+ 4. **Determine structure**:
17
+ - Epic needed if: multiple features, major changes, >3 related files
18
+ - Direct tasks if: bug fix, single file, minor change
19
+ 5. **Plan hierarchy**:
20
+ ```text
21
+ Epic → User Story → Tasks (test, implement, document, cleanup)
22
+ ```
23
+ 6. **Delegate every write to `lisa:jira-write-ticket`** in dependency order (epic first, then stories with the epic as parent, then sub-tasks with their story as parent). Pass the artifacts (filtered by domain per `lisa:tracker-source-artifacts` inheritance rules), the walkthrough findings (under `## Current Product`), and — for UI tickets — the Validation Journey draft with `[SCREENSHOT: ...]` markers. See "Delegation to jira-write-ticket" below.
24
+ 7. **Run the artifact preservation gate** (`lisa:tracker-source-artifacts` §8): after all writes complete, build the preservation matrix and verify every extracted artifact is reachable from the created tickets. Fail loudly if anything was dropped.
25
+
26
+ ## Mandatory for Every Code Issue
27
+
28
+ **Test-First**: Write tests before implementation
29
+ **Quality Gates**: All tests/checks must pass, no SonarCloud violations
30
+ **Documentation**: Check existing, update/create new, remove obsolete
31
+ **Feature Flags**: All features behind flags with lifecycle plan
32
+ **Cleanup**: Remove temporary code, scripts, dev configs
33
+ **Validation Journey**: Every ticket that touches UI must include a Validation Journey section (see below)
34
+
35
+ ## Validation Journey (Frontend Tickets)
36
+
37
+ Every ticket that changes, adds, or fixes UI must include a `Validation Journey` section in the description. This section is consumed by the `lisa:jira-journey` skill to automate visual verification via Playwright.
38
+
39
+ ### When to Include
40
+
41
+ Include a Validation Journey when the ticket involves:
42
+ - New UI components or screens
43
+ - Layout or styling changes (responsive, spacing, colors)
44
+ - Modal, drawer, or popover behavior
45
+ - Form validation or user input flows
46
+ - Bug fixes that are visually verifiable
47
+
48
+ Skip the Validation Journey only for:
49
+ - Pure backend/API changes with no UI surface
50
+ - Config-only changes (env vars, feature flags)
51
+ - Test-only or documentation-only changes
52
+
53
+ ### How to Write
54
+
55
+ Design the journey from the **end user's perspective**. Walk through the exact steps a human would take to verify the change. Place `[SCREENSHOT: name]` markers at the key visual checkpoints.
56
+
57
+ Add this section to the ticket description:
58
+
59
+ ```text
60
+ h2. Validation Journey
61
+
62
+ h3. Prerequisites
63
+ - App running locally or on dev
64
+ - Authenticated as test user
65
+ - Any required feature flags enabled
66
+
67
+ h3. Steps
68
+ 1. Navigate to the relevant page
69
+ 2. Perform the first action
70
+ 3. Verify the expected state [SCREENSHOT: state-name]
71
+ 4. Perform the next action
72
+ 5. Verify the final state [SCREENSHOT: final-state]
73
+
74
+ h3. Viewports
75
+ ||Name||Width||Height||
76
+ |Desktop|1512|768|
77
+ |Mobile|375|812|
78
+
79
+ h3. Assertions
80
+ - Describe what must be visually true at each viewport
81
+ - Each assertion is verified against the captured screenshots
82
+ ```
83
+
84
+ ### Guidelines
85
+
86
+ 1. **Steps must be concrete and executable** — "Navigate to Players page" not "Go to the relevant section"
87
+ 2. **Screenshot markers at visual checkpoints** — Place `[SCREENSHOT: name]` at states that prove the change works. Use descriptive kebab-case names (e.g., `modal-open`, `button-disabled`, `form-error`)
88
+ 3. **Include 3-7 screenshot markers** — Enough to prove the feature works, not so many that execution is slow
89
+ 4. **Viewports match the change scope** — Always include Desktop (1512x768). Add Mobile (375x812) for responsive changes. Add Tablet (768x1024) only if relevant.
90
+ 5. **Assertions are testable statements** — "Buttons stacked vertically on mobile" not "Layout looks good"
91
+ 6. **Prerequisites include feature flags** — If the feature is behind a PostHog flag, name it explicitly
92
+ 7. **Auth steps included when needed** — If the journey requires login, include the test credentials in Prerequisites
93
+
94
+ ## Source Artifacts
95
+
96
+ If $ARGUMENTS includes (or references) any external artifact — PRD, design doc, Figma URL, Lovable prototype, Loom walkthrough, screenshot, example payload — those references MUST be preserved as remote links on the created tickets. Silent artifact loss is the single most common quality failure in this pipeline.
97
+
98
+ **Invoke the `lisa:tracker-source-artifacts` skill** for the canonical rules: domains, per-tool classification (Figma `/proto/` vs design, Lovable, Loom, screenshots), source precedence, conflict handling under `## Open Questions`, inheritance from epic → story → sub-task, and the existing-component reuse expectation. Do not restate the rules here.
99
+
100
+ Expo-specific note: the existing-component reuse rule is especially load-bearing for React Native — the project has an established component library; pixel-matching a mock instead of reusing components is the most common drift mode.
101
+
102
+ When delegating writes to `lisa:jira-write-ticket`, pass the extracted artifact list so its Phase 4c step can attach them.
103
+
104
+ ## Live Product Walkthrough
105
+
106
+ When the work touches existing user-facing surfaces, invoke the `lisa:product-walkthrough` skill before drafting tickets. Findings (current behavior, design-vs-product divergence, reuse candidates, behavioral surprises) become inputs to the ticket plan and surface under `## Current Product` on the resulting tickets, complementing the Validation Journey (which describes how to verify the *new* behavior, not what exists today). Skip only when the work is purely backend or affects a screen that does not yet exist.
107
+
108
+ ## Issue Requirements
109
+
110
+ Each issue must clearly communicate to:
111
+
112
+ - **Coding Assistants**: Implementation requirements
113
+ - **Developers**: Technical approach
114
+ - **Stakeholders**: Business value
115
+
116
+ Default project: from jira-cli config (override via arguments)
117
+ Exclude unless requested: migration plans, performance tests
118
+
119
+ ## Delegation to jira-write-ticket
120
+
121
+ **Mandatory.** Every ticket created by this skill MUST go through `lisa:jira-write-ticket`. This skill never calls `mcp__atlassian__createJiraIssue` itself — that tool is intentionally excluded from `allowed-tools` so the gate cannot be bypassed.
122
+
123
+ `lisa:jira-write-ticket` enforces things this skill does not, and which determine ticket quality:
124
+ - 3-audience description (Context / Technical Approach / Acceptance Criteria)
125
+ - Gherkin acceptance criteria
126
+ - Epic parent validation (non-bug, non-epic types)
127
+ - Explicit link discovery (`blocks` / `is blocked by` / `relates to` / `duplicates` / `clones`)
128
+ - Remote links (PRs, Confluence, dashboards)
129
+ - Single-repo scope check for Bug / Task / Sub-task
130
+ - Sign-in account and target environment recorded in description
131
+ - Post-create verification
132
+
133
+ ### Invocation order
134
+
135
+ Tickets must be created in parent-before-child order so each child can be passed its parent key:
136
+
137
+ 1. Invoke `lisa:jira-write-ticket` for the epic. Capture the returned key.
138
+ 2. For each story, invoke `lisa:jira-write-ticket` with the epic key as the epic parent. Capture each story key.
139
+ 3. For each sub-task, invoke `lisa:jira-write-ticket` with the parent story key.
140
+
141
+ ### What to pass to each invocation
142
+
143
+ For every delegated write, pass:
144
+ - The summary, issue type, project key, and priority you decided
145
+ - The 3-section description body you drafted (Context / Technical Approach / Acceptance Criteria)
146
+ - Gherkin acceptance criteria
147
+ - Parent key (epic key for stories; story key for sub-tasks)
148
+ - The artifact list extracted in "Source Artifacts", filtered by domain per the inheritance rules — `lisa:jira-write-ticket` Phase 4c attaches them as remote links
149
+ - For UI-touching tickets: the Validation Journey draft (with `[SCREENSHOT: ...]` markers, viewports, and feature-flag prerequisites). If the journey is missing, instruct it to call `lisa:jira-add-journey` after create.
150
+
151
+ ### What this skill is responsible for
152
+
153
+ This skill owns:
154
+ - Deciding the *shape* of the hierarchy (what's an epic vs. story vs. sub-task)
155
+ - Drafting the description body and acceptance criteria from the input
156
+ - Extracting and classifying source artifacts
157
+ - Threading parent keys through subsequent writes
158
+ - Drafting the Validation Journey for UI tickets (this is Expo-specific guidance the base skill doesn't have)
159
+ - Running the artifact preservation check after all writes complete
160
+
161
+ It does not own the actual JIRA write — that's `lisa:jira-write-ticket`'s job.
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: jira-evidence
3
+ description: "Upload screenshots to GitHub pr-assets release, update PR description with evidence, upload attachments to JIRA, post wiki markup comment, and move ticket to Code Review. Reusable by any skill that captures screenshots and generates evidence/comment.txt + evidence/comment.md."
4
+ ---
5
+
6
+ # JIRA Evidence Posting
7
+
8
+ Upload captured screenshots and generated templates to GitHub PR description and JIRA ticket. This skill is the posting step — it assumes screenshots and comment templates already exist in the evidence directory.
9
+
10
+ ## Arguments
11
+
12
+ `$ARGUMENTS`: `<TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>`
13
+
14
+ - `TICKET_ID` (required): JIRA ticket key (e.g., `PROJ-123`)
15
+ - `EVIDENCE_DIR` (required): Directory containing screenshots and templates (e.g., `./evidence`)
16
+ - `PR_NUMBER` (required): 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`) — server and login are read from there
22
+ - `gh` CLI authenticated
23
+ - Evidence directory containing:
24
+ - `NN-name-viewport.png` screenshots (numbered, e.g., `01-search-step-desktop.png`)
25
+ - `comment.txt` — JIRA wiki markup (generated by `generate-templates.py`)
26
+ - `comment.md` — GitHub markdown (generated by `generate-templates.py`)
27
+
28
+ ## Usage
29
+
30
+ ```bash
31
+ bash .claude/skills/jira-evidence/scripts/post-evidence.sh <TICKET_ID> <EVIDENCE_DIR> <PR_NUMBER>
32
+ ```
33
+
34
+ ### Example
35
+
36
+ ```bash
37
+ bash .claude/skills/jira-evidence/scripts/post-evidence.sh PROJ-123 ./evidence 42
38
+ ```
39
+
40
+ ## What It Does
41
+
42
+ 1. **Read JIRA config** — Reads `~/.config/.jira/.config.yml` to obtain `server` and `login` dynamically (no hardcoded values)
43
+ 2. **Upload to GitHub `pr-assets` release** — Uploads `NN-name-viewport.png` screenshots via `gh release upload --clobber`, creating CDN URLs that render in GitHub markdown
44
+ 3. **Update PR description** — Replaces or appends the `## Evidence` section in the PR body using `gh pr edit`
45
+ 4. **Upload JIRA attachments** — Uploads screenshots via REST API v3 so `!filename.png!` wiki markup renders inline
46
+ 5. **Post JIRA comment** — Posts `comment.txt` as a new comment via REST API v2 (wiki markup with embedded images)
47
+ 6. **Move ticket to Code Review** — Transitions the JIRA ticket via `jira issue move`
48
+
49
+ ## Screenshot Naming Convention
50
+
51
+ Only files matching `NN-*.png` (two-digit prefix) are uploaded. Other files in the evidence directory are ignored.
52
+
53
+ ```text
54
+ evidence/
55
+ 01-search-step-desktop.png ✓ uploaded
56
+ 02-confirm-step-desktop.png ✓ uploaded
57
+ 03-search-step-mobile.png ✓ uploaded
58
+ comment.txt used for JIRA comment
59
+ comment.md used for PR description
60
+ ```
61
+
62
+ ## Troubleshooting
63
+
64
+ ### Images not rendering in GitHub PR
65
+
66
+ Images must be in the `pr-assets` GitHub release (not committed to git). The script handles this via `gh release upload`. If the release does not exist, create it first:
67
+
68
+ ```bash
69
+ gh release create pr-assets --title "PR Assets" --notes "CDN for PR evidence screenshots"
70
+ ```
71
+
72
+ ### JIRA comment shows `!filename.png!` as text (not image)
73
+
74
+ The screenshot must be uploaded as a JIRA attachment before posting the comment. The script uploads attachments first then posts the comment — always in that order.
75
+
76
+ ### JIRA API returns 403 on attachment upload
77
+
78
+ Ensure `JIRA_API_TOKEN` is set and `login` in `~/.config/.jira/.config.yml` matches your Atlassian account email.
@@ -0,0 +1,163 @@
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"