@codyswann/lisa 2.195.4 → 2.195.7

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 (809) hide show
  1. package/README.md +17 -3
  2. package/all/copy-contents/gitignore +10 -4
  3. package/dist/cli/print-update-warning.d.ts +1 -1
  4. package/dist/cli/print-update-warning.js +2 -2
  5. package/dist/cli/print-update-warning.js.map +1 -1
  6. package/dist/cli/update-check.d.ts +6 -0
  7. package/dist/cli/update-check.d.ts.map +1 -1
  8. package/dist/cli/update-check.js +3 -3
  9. package/dist/cli/update-check.js.map +1 -1
  10. package/dist/cli/update-cmd.d.ts +1 -1
  11. package/dist/cli/update-cmd.d.ts.map +1 -1
  12. package/dist/cli/update-cmd.js +8 -7
  13. package/dist/cli/update-cmd.js.map +1 -1
  14. package/dist/codex/hooks-installer.d.ts +4 -1
  15. package/dist/codex/hooks-installer.d.ts.map +1 -1
  16. package/dist/codex/hooks-installer.js +109 -30
  17. package/dist/codex/hooks-installer.js.map +1 -1
  18. package/dist/codex/mcp-installer.d.ts +22 -0
  19. package/dist/codex/mcp-installer.d.ts.map +1 -0
  20. package/dist/codex/mcp-installer.js +135 -0
  21. package/dist/codex/mcp-installer.js.map +1 -0
  22. package/dist/codex/plugin-marketplace-installer.d.ts +19 -13
  23. package/dist/codex/plugin-marketplace-installer.d.ts.map +1 -1
  24. package/dist/codex/plugin-marketplace-installer.js +69 -72
  25. package/dist/codex/plugin-marketplace-installer.js.map +1 -1
  26. package/dist/codex/project-hooks-cleanup.d.ts +12 -0
  27. package/dist/codex/project-hooks-cleanup.d.ts.map +1 -0
  28. package/dist/codex/project-hooks-cleanup.js +31 -0
  29. package/dist/codex/project-hooks-cleanup.js.map +1 -0
  30. package/dist/codex/project-overlay.d.ts +23 -0
  31. package/dist/codex/project-overlay.d.ts.map +1 -0
  32. package/dist/codex/project-overlay.js +64 -0
  33. package/dist/codex/project-overlay.js.map +1 -0
  34. package/dist/codex/scripts/inject-rules.sh +4 -0
  35. package/dist/codex/scripts/install-pkgs.sh +4 -0
  36. package/dist/codex/scripts/setup-jira-cli.sh +5 -1
  37. package/dist/codex/settings-installer.d.ts.map +1 -1
  38. package/dist/codex/settings-installer.js +16 -3
  39. package/dist/codex/settings-installer.js.map +1 -1
  40. package/dist/codex/skills-installer.d.ts +15 -19
  41. package/dist/codex/skills-installer.d.ts.map +1 -1
  42. package/dist/codex/skills-installer.js +47 -140
  43. package/dist/codex/skills-installer.js.map +1 -1
  44. package/dist/core/lisa-plugin-selection.d.ts +16 -0
  45. package/dist/core/lisa-plugin-selection.d.ts.map +1 -0
  46. package/dist/core/lisa-plugin-selection.js +59 -0
  47. package/dist/core/lisa-plugin-selection.js.map +1 -0
  48. package/dist/core/lisa-rules-mirror.d.ts +2 -1
  49. package/dist/core/lisa-rules-mirror.d.ts.map +1 -1
  50. package/dist/core/lisa-rules-mirror.js +19 -3
  51. package/dist/core/lisa-rules-mirror.js.map +1 -1
  52. package/dist/core/lisa-skill-sources.d.ts.map +1 -1
  53. package/dist/core/lisa-skill-sources.js +16 -1
  54. package/dist/core/lisa-skill-sources.js.map +1 -1
  55. package/dist/core/lisa.d.ts +4 -6
  56. package/dist/core/lisa.d.ts.map +1 -1
  57. package/dist/core/lisa.js +12 -38
  58. package/dist/core/lisa.js.map +1 -1
  59. package/dist/migrations/ensure-lisa-postinstall.d.ts.map +1 -1
  60. package/dist/migrations/ensure-lisa-postinstall.js +4 -3
  61. package/dist/migrations/ensure-lisa-postinstall.js.map +1 -1
  62. package/dist/opencode/plugin-templates/lisa-session-bootstrap.ts +2 -3
  63. package/expo/create-only/.github/workflows/deploy.yml +6 -6
  64. package/npm-package/create-only/.github/workflows/publish-to-npm.yml +2 -1
  65. package/package.json +2 -3
  66. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa/.codex-plugin/plugin.json +2 -2
  68. package/plugins/lisa/.codex-plugin/skills/lisa-acceptance-criteria/SKILL.md +71 -0
  69. package/plugins/lisa/.codex-plugin/skills/lisa-acceptance-criteria/agents/openai.yaml +4 -0
  70. package/plugins/lisa/.codex-plugin/skills/lisa-agent-design-best-practices/SKILL.md +219 -0
  71. package/plugins/lisa/.codex-plugin/skills/lisa-agent-design-best-practices/agents/openai.yaml +4 -0
  72. package/plugins/lisa/.codex-plugin/skills/lisa-analyze-claude-remote/SKILL.md +429 -0
  73. package/plugins/lisa/.codex-plugin/skills/lisa-analyze-claude-remote/agents/openai.yaml +4 -0
  74. package/plugins/lisa/.codex-plugin/skills/lisa-atlassian-access/SKILL.md +361 -0
  75. package/plugins/lisa/.codex-plugin/skills/lisa-atlassian-access/agents/openai.yaml +4 -0
  76. package/plugins/lisa/.codex-plugin/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +214 -0
  77. package/plugins/lisa/.codex-plugin/skills/lisa-automation-status/SKILL.md +111 -0
  78. package/plugins/lisa/.codex-plugin/skills/lisa-automation-status/agents/openai.yaml +4 -0
  79. package/plugins/lisa/.codex-plugin/skills/lisa-bug-triage/SKILL.md +23 -0
  80. package/plugins/lisa/.codex-plugin/skills/lisa-bug-triage/agents/openai.yaml +4 -0
  81. package/plugins/lisa/.codex-plugin/skills/lisa-codebase-research/SKILL.md +87 -0
  82. package/plugins/lisa/.codex-plugin/skills/lisa-codebase-research/agents/openai.yaml +4 -0
  83. package/plugins/lisa/.codex-plugin/skills/lisa-codify-verification/SKILL.md +162 -0
  84. package/plugins/lisa/.codex-plugin/skills/lisa-codify-verification/agents/openai.yaml +4 -0
  85. package/plugins/lisa/.codex-plugin/skills/lisa-confluence-prd-intake/SKILL.md +417 -0
  86. package/plugins/lisa/.codex-plugin/skills/lisa-confluence-prd-intake/agents/openai.yaml +4 -0
  87. package/plugins/lisa/.codex-plugin/skills/lisa-confluence-to-tracker/SKILL.md +356 -0
  88. package/plugins/lisa/.codex-plugin/skills/lisa-confluence-to-tracker/agents/openai.yaml +4 -0
  89. package/plugins/lisa/.codex-plugin/skills/lisa-confluence-write-prd/SKILL.md +109 -0
  90. package/plugins/lisa/.codex-plugin/skills/lisa-confluence-write-prd/agents/openai.yaml +4 -0
  91. package/plugins/lisa/.codex-plugin/skills/lisa-cross-pollinate/SKILL.md +175 -0
  92. package/plugins/lisa/.codex-plugin/skills/lisa-cross-pollinate/agents/openai.yaml +4 -0
  93. package/plugins/lisa/.codex-plugin/skills/lisa-debrief/SKILL.md +94 -0
  94. package/plugins/lisa/.codex-plugin/skills/lisa-debrief/agents/openai.yaml +4 -0
  95. package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/SKILL.md +63 -0
  96. package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/agents/openai.yaml +4 -0
  97. package/plugins/lisa/.codex-plugin/skills/lisa-doctor/SKILL.md +336 -0
  98. package/plugins/lisa/.codex-plugin/skills/lisa-doctor/agents/openai.yaml +4 -0
  99. package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +179 -0
  100. package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/agents/openai.yaml +4 -0
  101. package/plugins/lisa/.codex-plugin/skills/lisa-epic-triage/SKILL.md +28 -0
  102. package/plugins/lisa/.codex-plugin/skills/lisa-epic-triage/agents/openai.yaml +4 -0
  103. package/plugins/lisa/.codex-plugin/skills/lisa-exploratory-qa/SKILL.md +91 -0
  104. package/plugins/lisa/.codex-plugin/skills/lisa-exploratory-qa/agents/openai.yaml +4 -0
  105. package/plugins/lisa/.codex-plugin/skills/lisa-fix-linter-error/SKILL.md +45 -0
  106. package/plugins/lisa/.codex-plugin/skills/lisa-fix-linter-error/agents/openai.yaml +4 -0
  107. package/plugins/lisa/.codex-plugin/skills/lisa-generate-claude-remote-build-script/SKILL.md +224 -0
  108. package/plugins/lisa/.codex-plugin/skills/lisa-generate-claude-remote-build-script/agents/openai.yaml +4 -0
  109. package/plugins/lisa/.codex-plugin/skills/lisa-git-commit/SKILL.md +48 -0
  110. package/plugins/lisa/.codex-plugin/skills/lisa-git-commit/agents/openai.yaml +4 -0
  111. package/plugins/lisa/.codex-plugin/skills/lisa-git-prune/SKILL.md +35 -0
  112. package/plugins/lisa/.codex-plugin/skills/lisa-git-prune/agents/openai.yaml +4 -0
  113. package/plugins/lisa/.codex-plugin/skills/lisa-git-submit-pr/SKILL.md +113 -0
  114. package/plugins/lisa/.codex-plugin/skills/lisa-git-submit-pr/agents/openai.yaml +4 -0
  115. package/plugins/lisa/.codex-plugin/skills/lisa-github-add-journey/SKILL.md +115 -0
  116. package/plugins/lisa/.codex-plugin/skills/lisa-github-add-journey/agents/openai.yaml +4 -0
  117. package/plugins/lisa/.codex-plugin/skills/lisa-github-build-intake/SKILL.md +446 -0
  118. package/plugins/lisa/.codex-plugin/skills/lisa-github-build-intake/agents/openai.yaml +4 -0
  119. package/plugins/lisa/.codex-plugin/skills/lisa-github-create/SKILL.md +101 -0
  120. package/plugins/lisa/.codex-plugin/skills/lisa-github-create/agents/openai.yaml +4 -0
  121. package/plugins/lisa/.codex-plugin/skills/lisa-github-evidence/SKILL.md +110 -0
  122. package/plugins/lisa/.codex-plugin/skills/lisa-github-evidence/agents/openai.yaml +4 -0
  123. package/plugins/lisa/.codex-plugin/skills/lisa-github-journey/SKILL.md +121 -0
  124. package/plugins/lisa/.codex-plugin/skills/lisa-github-journey/agents/openai.yaml +4 -0
  125. package/plugins/lisa/.codex-plugin/skills/lisa-github-prd-intake/SKILL.md +432 -0
  126. package/plugins/lisa/.codex-plugin/skills/lisa-github-prd-intake/agents/openai.yaml +4 -0
  127. package/plugins/lisa/.codex-plugin/skills/lisa-github-project-v2/SKILL.md +227 -0
  128. package/plugins/lisa/.codex-plugin/skills/lisa-github-project-v2/agents/openai.yaml +4 -0
  129. package/plugins/lisa/.codex-plugin/skills/lisa-github-read-issue/SKILL.md +248 -0
  130. package/plugins/lisa/.codex-plugin/skills/lisa-github-read-issue/agents/openai.yaml +4 -0
  131. package/plugins/lisa/.codex-plugin/skills/lisa-github-sync/SKILL.md +132 -0
  132. package/plugins/lisa/.codex-plugin/skills/lisa-github-sync/agents/openai.yaml +4 -0
  133. package/plugins/lisa/.codex-plugin/skills/lisa-github-to-tracker/SKILL.md +339 -0
  134. package/plugins/lisa/.codex-plugin/skills/lisa-github-to-tracker/agents/openai.yaml +4 -0
  135. package/plugins/lisa/.codex-plugin/skills/lisa-github-validate-issue/SKILL.md +330 -0
  136. package/plugins/lisa/.codex-plugin/skills/lisa-github-validate-issue/agents/openai.yaml +4 -0
  137. package/plugins/lisa/.codex-plugin/skills/lisa-github-verify/SKILL.md +29 -0
  138. package/plugins/lisa/.codex-plugin/skills/lisa-github-verify/agents/openai.yaml +4 -0
  139. package/plugins/lisa/.codex-plugin/skills/lisa-github-write-issue/SKILL.md +339 -0
  140. package/plugins/lisa/.codex-plugin/skills/lisa-github-write-issue/agents/openai.yaml +4 -0
  141. package/plugins/lisa/.codex-plugin/skills/lisa-github-write-prd/SKILL.md +157 -0
  142. package/plugins/lisa/.codex-plugin/skills/lisa-github-write-prd/agents/openai.yaml +4 -0
  143. package/plugins/lisa/.codex-plugin/skills/lisa-implement/SKILL.md +202 -0
  144. package/plugins/lisa/.codex-plugin/skills/lisa-implement/agents/openai.yaml +4 -0
  145. package/plugins/lisa/.codex-plugin/skills/lisa-improve-code-complexity/SKILL.md +44 -0
  146. package/plugins/lisa/.codex-plugin/skills/lisa-improve-code-complexity/agents/openai.yaml +4 -0
  147. package/plugins/lisa/.codex-plugin/skills/lisa-improve-max-lines/SKILL.md +45 -0
  148. package/plugins/lisa/.codex-plugin/skills/lisa-improve-max-lines/agents/openai.yaml +4 -0
  149. package/plugins/lisa/.codex-plugin/skills/lisa-improve-max-lines-per-function/SKILL.md +46 -0
  150. package/plugins/lisa/.codex-plugin/skills/lisa-improve-max-lines-per-function/agents/openai.yaml +4 -0
  151. package/plugins/lisa/.codex-plugin/skills/lisa-improve-test-coverage/SKILL.md +44 -0
  152. package/plugins/lisa/.codex-plugin/skills/lisa-improve-test-coverage/agents/openai.yaml +4 -0
  153. package/plugins/lisa/.codex-plugin/skills/lisa-improve-tests/SKILL.md +47 -0
  154. package/plugins/lisa/.codex-plugin/skills/lisa-improve-tests/agents/openai.yaml +4 -0
  155. package/plugins/lisa/.codex-plugin/skills/lisa-intake/SKILL.md +133 -0
  156. package/plugins/lisa/.codex-plugin/skills/lisa-intake/agents/openai.yaml +4 -0
  157. package/plugins/lisa/.codex-plugin/skills/lisa-intake-explain/SKILL.md +279 -0
  158. package/plugins/lisa/.codex-plugin/skills/lisa-intake-explain/agents/openai.yaml +4 -0
  159. package/plugins/lisa/.codex-plugin/skills/lisa-jam-access/SKILL.md +52 -0
  160. package/plugins/lisa/.codex-plugin/skills/lisa-jam-access/agents/openai.yaml +4 -0
  161. package/plugins/lisa/.codex-plugin/skills/lisa-jira-add-journey/SKILL.md +121 -0
  162. package/plugins/lisa/.codex-plugin/skills/lisa-jira-add-journey/agents/openai.yaml +4 -0
  163. package/plugins/lisa/.codex-plugin/skills/lisa-jira-build-intake/SKILL.md +368 -0
  164. package/plugins/lisa/.codex-plugin/skills/lisa-jira-build-intake/agents/openai.yaml +4 -0
  165. package/plugins/lisa/.codex-plugin/skills/lisa-jira-create/SKILL.md +154 -0
  166. package/plugins/lisa/.codex-plugin/skills/lisa-jira-create/agents/openai.yaml +4 -0
  167. package/plugins/lisa/.codex-plugin/skills/lisa-jira-evidence/SKILL.md +90 -0
  168. package/plugins/lisa/.codex-plugin/skills/lisa-jira-evidence/agents/openai.yaml +4 -0
  169. package/plugins/lisa/.codex-plugin/skills/lisa-jira-evidence/scripts/post-evidence.sh +180 -0
  170. package/plugins/lisa/.codex-plugin/skills/lisa-jira-journey/SKILL.md +127 -0
  171. package/plugins/lisa/.codex-plugin/skills/lisa-jira-journey/agents/openai.yaml +4 -0
  172. package/plugins/lisa/.codex-plugin/skills/lisa-jira-journey/scripts/generate-templates.py +233 -0
  173. package/plugins/lisa/.codex-plugin/skills/lisa-jira-journey/scripts/parse-plan.py +368 -0
  174. package/plugins/lisa/.codex-plugin/skills/lisa-jira-read-ticket/SKILL.md +198 -0
  175. package/plugins/lisa/.codex-plugin/skills/lisa-jira-read-ticket/agents/openai.yaml +4 -0
  176. package/plugins/lisa/.codex-plugin/skills/lisa-jira-read-ticket/scripts/download-attachment.sh +110 -0
  177. package/plugins/lisa/.codex-plugin/skills/lisa-jira-sync/SKILL.md +108 -0
  178. package/plugins/lisa/.codex-plugin/skills/lisa-jira-sync/agents/openai.yaml +4 -0
  179. package/plugins/lisa/.codex-plugin/skills/lisa-jira-validate-ticket/SKILL.md +317 -0
  180. package/plugins/lisa/.codex-plugin/skills/lisa-jira-validate-ticket/agents/openai.yaml +4 -0
  181. package/plugins/lisa/.codex-plugin/skills/lisa-jira-verify/SKILL.md +30 -0
  182. package/plugins/lisa/.codex-plugin/skills/lisa-jira-verify/agents/openai.yaml +4 -0
  183. package/plugins/lisa/.codex-plugin/skills/lisa-jira-write-ticket/SKILL.md +267 -0
  184. package/plugins/lisa/.codex-plugin/skills/lisa-jira-write-ticket/agents/openai.yaml +4 -0
  185. package/plugins/lisa/.codex-plugin/skills/lisa-jsdoc-best-practices/SKILL.md +432 -0
  186. package/plugins/lisa/.codex-plugin/skills/lisa-jsdoc-best-practices/agents/openai.yaml +4 -0
  187. package/plugins/lisa/.codex-plugin/skills/lisa-linear-access/SKILL.md +90 -0
  188. package/plugins/lisa/.codex-plugin/skills/lisa-linear-access/agents/openai.yaml +4 -0
  189. package/plugins/lisa/.codex-plugin/skills/lisa-linear-add-journey/SKILL.md +105 -0
  190. package/plugins/lisa/.codex-plugin/skills/lisa-linear-add-journey/agents/openai.yaml +4 -0
  191. package/plugins/lisa/.codex-plugin/skills/lisa-linear-build-intake/SKILL.md +346 -0
  192. package/plugins/lisa/.codex-plugin/skills/lisa-linear-build-intake/agents/openai.yaml +4 -0
  193. package/plugins/lisa/.codex-plugin/skills/lisa-linear-create/SKILL.md +146 -0
  194. package/plugins/lisa/.codex-plugin/skills/lisa-linear-create/agents/openai.yaml +4 -0
  195. package/plugins/lisa/.codex-plugin/skills/lisa-linear-evidence/SKILL.md +103 -0
  196. package/plugins/lisa/.codex-plugin/skills/lisa-linear-evidence/agents/openai.yaml +4 -0
  197. package/plugins/lisa/.codex-plugin/skills/lisa-linear-journey/SKILL.md +134 -0
  198. package/plugins/lisa/.codex-plugin/skills/lisa-linear-journey/agents/openai.yaml +4 -0
  199. package/plugins/lisa/.codex-plugin/skills/lisa-linear-prd-intake/SKILL.md +383 -0
  200. package/plugins/lisa/.codex-plugin/skills/lisa-linear-prd-intake/agents/openai.yaml +4 -0
  201. package/plugins/lisa/.codex-plugin/skills/lisa-linear-read-issue/SKILL.md +200 -0
  202. package/plugins/lisa/.codex-plugin/skills/lisa-linear-read-issue/agents/openai.yaml +4 -0
  203. package/plugins/lisa/.codex-plugin/skills/lisa-linear-sync/SKILL.md +127 -0
  204. package/plugins/lisa/.codex-plugin/skills/lisa-linear-sync/agents/openai.yaml +4 -0
  205. package/plugins/lisa/.codex-plugin/skills/lisa-linear-to-tracker/SKILL.md +339 -0
  206. package/plugins/lisa/.codex-plugin/skills/lisa-linear-to-tracker/agents/openai.yaml +4 -0
  207. package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/SKILL.md +314 -0
  208. package/plugins/lisa/.codex-plugin/skills/lisa-linear-validate-issue/agents/openai.yaml +4 -0
  209. package/plugins/lisa/.codex-plugin/skills/lisa-linear-verify/SKILL.md +51 -0
  210. package/plugins/lisa/.codex-plugin/skills/lisa-linear-verify/agents/openai.yaml +4 -0
  211. package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-issue/SKILL.md +292 -0
  212. package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-issue/agents/openai.yaml +4 -0
  213. package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-prd/SKILL.md +96 -0
  214. package/plugins/lisa/.codex-plugin/skills/lisa-linear-write-prd/agents/openai.yaml +4 -0
  215. package/plugins/lisa/.codex-plugin/skills/lisa-monitor/SKILL.md +69 -0
  216. package/plugins/lisa/.codex-plugin/skills/lisa-monitor/agents/openai.yaml +4 -0
  217. package/plugins/lisa/.codex-plugin/skills/lisa-nightly-add-test-coverage/SKILL.md +40 -0
  218. package/plugins/lisa/.codex-plugin/skills/lisa-nightly-add-test-coverage/agents/openai.yaml +4 -0
  219. package/plugins/lisa/.codex-plugin/skills/lisa-nightly-improve-tests/SKILL.md +29 -0
  220. package/plugins/lisa/.codex-plugin/skills/lisa-nightly-improve-tests/agents/openai.yaml +4 -0
  221. package/plugins/lisa/.codex-plugin/skills/lisa-nightly-lower-code-complexity/SKILL.md +28 -0
  222. package/plugins/lisa/.codex-plugin/skills/lisa-nightly-lower-code-complexity/agents/openai.yaml +4 -0
  223. package/plugins/lisa/.codex-plugin/skills/lisa-notion-access/SKILL.md +226 -0
  224. package/plugins/lisa/.codex-plugin/skills/lisa-notion-access/agents/openai.yaml +4 -0
  225. package/plugins/lisa/.codex-plugin/skills/lisa-notion-prd-intake/SKILL.md +360 -0
  226. package/plugins/lisa/.codex-plugin/skills/lisa-notion-prd-intake/agents/openai.yaml +4 -0
  227. package/plugins/lisa/.codex-plugin/skills/lisa-notion-to-tracker/SKILL.md +353 -0
  228. package/plugins/lisa/.codex-plugin/skills/lisa-notion-to-tracker/agents/openai.yaml +4 -0
  229. package/plugins/lisa/.codex-plugin/skills/lisa-notion-write-prd/SKILL.md +109 -0
  230. package/plugins/lisa/.codex-plugin/skills/lisa-notion-write-prd/agents/openai.yaml +4 -0
  231. package/plugins/lisa/.codex-plugin/skills/lisa-parity-code-review/SKILL.md +83 -0
  232. package/plugins/lisa/.codex-plugin/skills/lisa-parity-code-review/agents/openai.yaml +4 -0
  233. package/plugins/lisa/.codex-plugin/skills/lisa-parity-code-simplifier/SKILL.md +76 -0
  234. package/plugins/lisa/.codex-plugin/skills/lisa-parity-code-simplifier/agents/openai.yaml +4 -0
  235. package/plugins/lisa/.codex-plugin/skills/lisa-parity-coderabbit/SKILL.md +77 -0
  236. package/plugins/lisa/.codex-plugin/skills/lisa-parity-coderabbit/agents/openai.yaml +4 -0
  237. package/plugins/lisa/.codex-plugin/skills/lisa-parity-safety-net-rules/SKILL.md +144 -0
  238. package/plugins/lisa/.codex-plugin/skills/lisa-parity-safety-net-rules/agents/openai.yaml +4 -0
  239. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-sdk-setup/SKILL.md +211 -0
  240. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-sdk-setup/agents/openai.yaml +4 -0
  241. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-seer/SKILL.md +135 -0
  242. package/plugins/lisa/.codex-plugin/skills/lisa-parity-sentry-seer/agents/openai.yaml +4 -0
  243. package/plugins/lisa/.codex-plugin/skills/lisa-parity-skill-creator/SKILL.md +151 -0
  244. package/plugins/lisa/.codex-plugin/skills/lisa-parity-skill-creator/agents/openai.yaml +4 -0
  245. package/plugins/lisa/.codex-plugin/skills/lisa-performance-review/SKILL.md +94 -0
  246. package/plugins/lisa/.codex-plugin/skills/lisa-performance-review/agents/openai.yaml +4 -0
  247. package/plugins/lisa/.codex-plugin/skills/lisa-plan/SKILL.md +60 -0
  248. package/plugins/lisa/.codex-plugin/skills/lisa-plan/agents/openai.yaml +4 -0
  249. package/plugins/lisa/.codex-plugin/skills/lisa-plugin-sync-explain/SKILL.md +53 -0
  250. package/plugins/lisa/.codex-plugin/skills/lisa-plugin-sync-explain/agents/openai.yaml +4 -0
  251. package/plugins/lisa/.codex-plugin/skills/lisa-posthog-access/SKILL.md +60 -0
  252. package/plugins/lisa/.codex-plugin/skills/lisa-posthog-access/agents/openai.yaml +4 -0
  253. package/plugins/lisa/.codex-plugin/skills/lisa-prd-backlink/SKILL.md +265 -0
  254. package/plugins/lisa/.codex-plugin/skills/lisa-prd-backlink/agents/openai.yaml +4 -0
  255. package/plugins/lisa/.codex-plugin/skills/lisa-prd-source-write/SKILL.md +101 -0
  256. package/plugins/lisa/.codex-plugin/skills/lisa-prd-source-write/agents/openai.yaml +4 -0
  257. package/plugins/lisa/.codex-plugin/skills/lisa-prd-ticket-coverage/SKILL.md +170 -0
  258. package/plugins/lisa/.codex-plugin/skills/lisa-prd-ticket-coverage/agents/openai.yaml +4 -0
  259. package/plugins/lisa/.codex-plugin/skills/lisa-product-walkthrough/SKILL.md +104 -0
  260. package/plugins/lisa/.codex-plugin/skills/lisa-product-walkthrough/agents/openai.yaml +4 -0
  261. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/SKILL.md +315 -0
  262. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/agents/openai.yaml +4 -0
  263. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/examples/evidence-card-format.md +21 -0
  264. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/examples/host-project-only.md +22 -0
  265. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/examples/idempotency-verification-harness.md +57 -0
  266. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/examples/public-external-inspiration.md +22 -0
  267. package/plugins/lisa/.codex-plugin/skills/lisa-project-ideation/examples/unavailable-data-rejection.md +22 -0
  268. package/plugins/lisa/.codex-plugin/skills/lisa-pull-request-review/SKILL.md +84 -0
  269. package/plugins/lisa/.codex-plugin/skills/lisa-pull-request-review/agents/openai.yaml +4 -0
  270. package/plugins/lisa/.codex-plugin/skills/lisa-quality-review/SKILL.md +54 -0
  271. package/plugins/lisa/.codex-plugin/skills/lisa-quality-review/agents/openai.yaml +4 -0
  272. package/plugins/lisa/.codex-plugin/skills/lisa-queue-status/SKILL.md +133 -0
  273. package/plugins/lisa/.codex-plugin/skills/lisa-queue-status/agents/openai.yaml +4 -0
  274. package/plugins/lisa/.codex-plugin/skills/lisa-repair-intake/SKILL.md +1030 -0
  275. package/plugins/lisa/.codex-plugin/skills/lisa-repair-intake/agents/openai.yaml +4 -0
  276. package/plugins/lisa/.codex-plugin/skills/lisa-reproduce-bug/SKILL.md +96 -0
  277. package/plugins/lisa/.codex-plugin/skills/lisa-reproduce-bug/agents/openai.yaml +4 -0
  278. package/plugins/lisa/.codex-plugin/skills/lisa-research/SKILL.md +68 -0
  279. package/plugins/lisa/.codex-plugin/skills/lisa-research/agents/openai.yaml +4 -0
  280. package/plugins/lisa/.codex-plugin/skills/lisa-review-implementation/SKILL.md +209 -0
  281. package/plugins/lisa/.codex-plugin/skills/lisa-review-implementation/agents/openai.yaml +4 -0
  282. package/plugins/lisa/.codex-plugin/skills/lisa-review-local/SKILL.md +88 -0
  283. package/plugins/lisa/.codex-plugin/skills/lisa-review-local/agents/openai.yaml +4 -0
  284. package/plugins/lisa/.codex-plugin/skills/lisa-root-cause-analysis/SKILL.md +155 -0
  285. package/plugins/lisa/.codex-plugin/skills/lisa-root-cause-analysis/agents/openai.yaml +4 -0
  286. package/plugins/lisa/.codex-plugin/skills/lisa-security-review/SKILL.md +57 -0
  287. package/plugins/lisa/.codex-plugin/skills/lisa-security-review/agents/openai.yaml +4 -0
  288. package/plugins/lisa/.codex-plugin/skills/lisa-security-zap-scan/SKILL.md +33 -0
  289. package/plugins/lisa/.codex-plugin/skills/lisa-security-zap-scan/agents/openai.yaml +4 -0
  290. package/plugins/lisa/.codex-plugin/skills/lisa-sentry-access/SKILL.md +56 -0
  291. package/plugins/lisa/.codex-plugin/skills/lisa-sentry-access/agents/openai.yaml +4 -0
  292. package/plugins/lisa/.codex-plugin/skills/lisa-setup-atlassian/SKILL.md +347 -0
  293. package/plugins/lisa/.codex-plugin/skills/lisa-setup-atlassian/agents/openai.yaml +4 -0
  294. package/plugins/lisa/.codex-plugin/skills/lisa-setup-automations/SKILL.md +103 -0
  295. package/plugins/lisa/.codex-plugin/skills/lisa-setup-automations/agents/openai.yaml +4 -0
  296. package/plugins/lisa/.codex-plugin/skills/lisa-setup-confluence/SKILL.md +254 -0
  297. package/plugins/lisa/.codex-plugin/skills/lisa-setup-confluence/agents/openai.yaml +4 -0
  298. package/plugins/lisa/.codex-plugin/skills/lisa-setup-github/SKILL.md +268 -0
  299. package/plugins/lisa/.codex-plugin/skills/lisa-setup-github/agents/openai.yaml +4 -0
  300. package/plugins/lisa/.codex-plugin/skills/lisa-setup-jira/SKILL.md +198 -0
  301. package/plugins/lisa/.codex-plugin/skills/lisa-setup-jira/agents/openai.yaml +4 -0
  302. package/plugins/lisa/.codex-plugin/skills/lisa-setup-linear/SKILL.md +251 -0
  303. package/plugins/lisa/.codex-plugin/skills/lisa-setup-linear/agents/openai.yaml +4 -0
  304. package/plugins/lisa/.codex-plugin/skills/lisa-setup-notion/SKILL.md +316 -0
  305. package/plugins/lisa/.codex-plugin/skills/lisa-setup-notion/agents/openai.yaml +4 -0
  306. package/plugins/lisa/.codex-plugin/skills/lisa-sonarcloud-access/SKILL.md +71 -0
  307. package/plugins/lisa/.codex-plugin/skills/lisa-sonarcloud-access/agents/openai.yaml +4 -0
  308. package/plugins/lisa/.codex-plugin/skills/lisa-spec-conformance/SKILL.md +159 -0
  309. package/plugins/lisa/.codex-plugin/skills/lisa-spec-conformance/agents/openai.yaml +4 -0
  310. package/plugins/lisa/.codex-plugin/skills/lisa-sync-down/SKILL.md +171 -0
  311. package/plugins/lisa/.codex-plugin/skills/lisa-sync-down/agents/openai.yaml +4 -0
  312. package/plugins/lisa/.codex-plugin/skills/lisa-task-decomposition/SKILL.md +127 -0
  313. package/plugins/lisa/.codex-plugin/skills/lisa-task-decomposition/agents/openai.yaml +4 -0
  314. package/plugins/lisa/.codex-plugin/skills/lisa-task-triage/SKILL.md +23 -0
  315. package/plugins/lisa/.codex-plugin/skills/lisa-task-triage/agents/openai.yaml +4 -0
  316. package/plugins/lisa/.codex-plugin/skills/lisa-tdd-implementation/SKILL.md +86 -0
  317. package/plugins/lisa/.codex-plugin/skills/lisa-tdd-implementation/agents/openai.yaml +4 -0
  318. package/plugins/lisa/.codex-plugin/skills/lisa-tear-down-automations/SKILL.md +34 -0
  319. package/plugins/lisa/.codex-plugin/skills/lisa-tear-down-automations/agents/openai.yaml +4 -0
  320. package/plugins/lisa/.codex-plugin/skills/lisa-test-strategy/SKILL.md +63 -0
  321. package/plugins/lisa/.codex-plugin/skills/lisa-test-strategy/agents/openai.yaml +4 -0
  322. package/plugins/lisa/.codex-plugin/skills/lisa-ticket-triage/SKILL.md +186 -0
  323. package/plugins/lisa/.codex-plugin/skills/lisa-ticket-triage/agents/openai.yaml +4 -0
  324. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-add-journey/SKILL.md +27 -0
  325. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-add-journey/agents/openai.yaml +4 -0
  326. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-build-intake/SKILL.md +86 -0
  327. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-build-intake/agents/openai.yaml +4 -0
  328. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-create/SKILL.md +27 -0
  329. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-create/agents/openai.yaml +4 -0
  330. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-evidence/SKILL.md +53 -0
  331. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-evidence/agents/openai.yaml +4 -0
  332. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-journey/SKILL.md +27 -0
  333. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-journey/agents/openai.yaml +4 -0
  334. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-read/SKILL.md +28 -0
  335. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-read/agents/openai.yaml +4 -0
  336. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-source-artifacts/SKILL.md +107 -0
  337. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-source-artifacts/agents/openai.yaml +4 -0
  338. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-sync/SKILL.md +65 -0
  339. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-sync/agents/openai.yaml +4 -0
  340. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-validate/SKILL.md +37 -0
  341. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-validate/agents/openai.yaml +4 -0
  342. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-verify/SKILL.md +29 -0
  343. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-verify/agents/openai.yaml +4 -0
  344. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-write/SKILL.md +54 -0
  345. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-write/agents/openai.yaml +4 -0
  346. package/plugins/lisa/.codex-plugin/skills/lisa-usage-accounting/SKILL.md +170 -0
  347. package/plugins/lisa/.codex-plugin/skills/lisa-usage-accounting/agents/openai.yaml +4 -0
  348. package/plugins/lisa/.codex-plugin/skills/lisa-use-the-product/SKILL.md +86 -0
  349. package/plugins/lisa/.codex-plugin/skills/lisa-use-the-product/agents/openai.yaml +4 -0
  350. package/plugins/lisa/.codex-plugin/skills/lisa-validate-tracker-mapping/SKILL.md +195 -0
  351. package/plugins/lisa/.codex-plugin/skills/lisa-validate-tracker-mapping/agents/openai.yaml +4 -0
  352. package/plugins/lisa/.codex-plugin/skills/lisa-verification-lifecycle/SKILL.md +365 -0
  353. package/plugins/lisa/.codex-plugin/skills/lisa-verification-lifecycle/agents/openai.yaml +4 -0
  354. package/plugins/lisa/.codex-plugin/skills/lisa-verify/SKILL.md +52 -0
  355. package/plugins/lisa/.codex-plugin/skills/lisa-verify/agents/openai.yaml +4 -0
  356. package/plugins/lisa/.codex-plugin/skills/lisa-verify-prd/SKILL.md +392 -0
  357. package/plugins/lisa/.codex-plugin/skills/lisa-verify-prd/agents/openai.yaml +4 -0
  358. package/plugins/lisa/.codex-plugin/skills/lisa-wiki-install/SKILL.md +101 -0
  359. package/plugins/lisa/.codex-plugin/skills/lisa-wiki-install/agents/openai.yaml +4 -0
  360. package/plugins/lisa/hooks/inject-rules.sh +3 -2
  361. package/plugins/lisa/hooks/install-pkgs.sh +4 -45
  362. package/plugins/lisa/hooks/setup-jira-cli.sh +4 -12
  363. package/plugins/lisa/skills/lisa-setup-linear/SKILL.md +1 -1
  364. package/plugins/lisa-agy/plugin.json +1 -1
  365. package/plugins/lisa-agy/skills/lisa-setup-linear/SKILL.md +1 -1
  366. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  367. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  368. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  369. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  370. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  371. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  372. package/plugins/lisa-copilot/hooks/inject-rules.sh +3 -2
  373. package/plugins/lisa-copilot/hooks/install-pkgs.sh +4 -45
  374. package/plugins/lisa-copilot/hooks/setup-jira-cli.sh +4 -12
  375. package/plugins/lisa-copilot/skills/lisa-setup-linear/SKILL.md +1 -1
  376. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  377. package/plugins/lisa-cursor/hooks/install-pkgs.sh +4 -45
  378. package/plugins/lisa-cursor/hooks/setup-jira-cli.sh +4 -12
  379. package/plugins/lisa-cursor/skills/lisa-setup-linear/SKILL.md +1 -1
  380. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  381. package/plugins/lisa-expo/.codex-plugin/plugin.json +2 -2
  382. package/plugins/lisa-expo/.codex-plugin/skills/add-app-clip/SKILL.md +280 -0
  383. package/plugins/lisa-expo/.codex-plugin/skills/add-app-clip/agents/openai.yaml +4 -0
  384. package/plugins/lisa-expo/.codex-plugin/skills/add-app-clip/references/native-module.md +96 -0
  385. package/plugins/lisa-expo/.codex-plugin/skills/apollo-client/SKILL.md +238 -0
  386. package/plugins/lisa-expo/.codex-plugin/skills/apollo-client/agents/openai.yaml +4 -0
  387. package/plugins/lisa-expo/.codex-plugin/skills/apollo-client/references/mutation-patterns.md +360 -0
  388. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/SKILL.md +367 -0
  389. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/agents/openai.yaml +4 -0
  390. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  391. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  392. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  393. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/scripts/test_validate_atomic_structure.py +240 -0
  394. package/plugins/lisa-expo/.codex-plugin/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +438 -0
  395. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/SKILL.md +321 -0
  396. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/agents/openai.yaml +4 -0
  397. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/animations.md +220 -0
  398. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/controls.md +272 -0
  399. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/form-sheet.md +253 -0
  400. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/gradients.md +106 -0
  401. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/icons.md +213 -0
  402. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/media.md +198 -0
  403. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/route-structure.md +229 -0
  404. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/search.md +248 -0
  405. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/storage.md +121 -0
  406. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/tabs.md +433 -0
  407. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  408. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/visual-effects.md +197 -0
  409. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/webgpu-three.md +605 -0
  410. package/plugins/lisa-expo/.codex-plugin/skills/building-native-ui/references/zoom-transitions.md +158 -0
  411. package/plugins/lisa-expo/.codex-plugin/skills/container-view-pattern/SKILL.md +299 -0
  412. package/plugins/lisa-expo/.codex-plugin/skills/container-view-pattern/agents/openai.yaml +4 -0
  413. package/plugins/lisa-expo/.codex-plugin/skills/container-view-pattern/references/examples.md +749 -0
  414. package/plugins/lisa-expo/.codex-plugin/skills/container-view-pattern/references/patterns.md +318 -0
  415. package/plugins/lisa-expo/.codex-plugin/skills/container-view-pattern/scripts/create_component.py +200 -0
  416. package/plugins/lisa-expo/.codex-plugin/skills/container-view-pattern/scripts/validate_component.py +209 -0
  417. package/plugins/lisa-expo/.codex-plugin/skills/cross-platform-compatibility/SKILL.md +268 -0
  418. package/plugins/lisa-expo/.codex-plugin/skills/cross-platform-compatibility/agents/openai.yaml +4 -0
  419. package/plugins/lisa-expo/.codex-plugin/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  420. package/plugins/lisa-expo/.codex-plugin/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  421. package/plugins/lisa-expo/.codex-plugin/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  422. package/plugins/lisa-expo/.codex-plugin/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  423. package/plugins/lisa-expo/.codex-plugin/skills/directory-structure/SKILL.md +214 -0
  424. package/plugins/lisa-expo/.codex-plugin/skills/directory-structure/agents/openai.yaml +4 -0
  425. package/plugins/lisa-expo/.codex-plugin/skills/directory-structure/scripts/validate_structure.py +454 -0
  426. package/plugins/lisa-expo/.codex-plugin/skills/e2e-coverage-gaps/SKILL.md +105 -0
  427. package/plugins/lisa-expo/.codex-plugin/skills/e2e-coverage-gaps/agents/openai.yaml +4 -0
  428. package/plugins/lisa-expo/.codex-plugin/skills/eas-update-insights/SKILL.md +228 -0
  429. package/plugins/lisa-expo/.codex-plugin/skills/eas-update-insights/agents/openai.yaml +4 -0
  430. package/plugins/lisa-expo/.codex-plugin/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  431. package/plugins/lisa-expo/.codex-plugin/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  432. package/plugins/lisa-expo/.codex-plugin/skills/expo-api-routes/SKILL.md +369 -0
  433. package/plugins/lisa-expo/.codex-plugin/skills/expo-api-routes/agents/openai.yaml +4 -0
  434. package/plugins/lisa-expo/.codex-plugin/skills/expo-brownfield/SKILL.md +54 -0
  435. package/plugins/lisa-expo/.codex-plugin/skills/expo-brownfield/agents/openai.yaml +4 -0
  436. package/plugins/lisa-expo/.codex-plugin/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  437. package/plugins/lisa-expo/.codex-plugin/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  438. package/plugins/lisa-expo/.codex-plugin/skills/expo-brownfield/references/comparison.md +63 -0
  439. package/plugins/lisa-expo/.codex-plugin/skills/expo-brownfield/references/troubleshooting.md +88 -0
  440. package/plugins/lisa-expo/.codex-plugin/skills/expo-cicd-workflows/SKILL.md +92 -0
  441. package/plugins/lisa-expo/.codex-plugin/skills/expo-cicd-workflows/agents/openai.yaml +4 -0
  442. package/plugins/lisa-expo/.codex-plugin/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  443. package/plugins/lisa-expo/.codex-plugin/skills/expo-cicd-workflows/scripts/package.json +11 -0
  444. package/plugins/lisa-expo/.codex-plugin/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  445. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/SKILL.md +193 -0
  446. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/agents/openai.yaml +4 -0
  447. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/references/app-store-metadata.md +479 -0
  448. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/references/ios-app-store.md +355 -0
  449. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/references/play-store.md +264 -0
  450. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/references/testflight.md +58 -0
  451. package/plugins/lisa-expo/.codex-plugin/skills/expo-deployment/references/workflows.md +200 -0
  452. package/plugins/lisa-expo/.codex-plugin/skills/expo-dev-client/SKILL.md +164 -0
  453. package/plugins/lisa-expo/.codex-plugin/skills/expo-dev-client/agents/openai.yaml +4 -0
  454. package/plugins/lisa-expo/.codex-plugin/skills/expo-env-config/SKILL.md +309 -0
  455. package/plugins/lisa-expo/.codex-plugin/skills/expo-env-config/agents/openai.yaml +4 -0
  456. package/plugins/lisa-expo/.codex-plugin/skills/expo-env-config/references/validation-patterns.md +417 -0
  457. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/SKILL.md +141 -0
  458. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/agents/openai.yaml +4 -0
  459. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/references/config-plugin.md +90 -0
  460. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/references/create-expo-module.md +206 -0
  461. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/references/lifecycle.md +127 -0
  462. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/references/module-config.md +48 -0
  463. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/references/native-module.md +286 -0
  464. package/plugins/lisa-expo/.codex-plugin/skills/expo-module/references/native-view.md +171 -0
  465. package/plugins/lisa-expo/.codex-plugin/skills/expo-router-best-practices/SKILL.md +431 -0
  466. package/plugins/lisa-expo/.codex-plugin/skills/expo-router-best-practices/agents/openai.yaml +4 -0
  467. package/plugins/lisa-expo/.codex-plugin/skills/expo-router-best-practices/references/official-docs.md +290 -0
  468. package/plugins/lisa-expo/.codex-plugin/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  469. package/plugins/lisa-expo/.codex-plugin/skills/expo-tailwind-setup/SKILL.md +480 -0
  470. package/plugins/lisa-expo/.codex-plugin/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
  471. package/plugins/lisa-expo/.codex-plugin/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  472. package/plugins/lisa-expo/.codex-plugin/skills/expo-ui-jetpack-compose/agents/openai.yaml +4 -0
  473. package/plugins/lisa-expo/.codex-plugin/skills/expo-ui-swift-ui/SKILL.md +39 -0
  474. package/plugins/lisa-expo/.codex-plugin/skills/expo-ui-swift-ui/agents/openai.yaml +4 -0
  475. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/SKILL.md +419 -0
  476. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/agents/openai.yaml +4 -0
  477. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  478. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  479. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  480. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/scripts/test_validate_styling.py +240 -0
  481. package/plugins/lisa-expo/.codex-plugin/skills/gluestack-nativewind/scripts/validate_styling.py +424 -0
  482. package/plugins/lisa-expo/.codex-plugin/skills/jira-add-journey/SKILL.md +126 -0
  483. package/plugins/lisa-expo/.codex-plugin/skills/jira-add-journey/agents/openai.yaml +4 -0
  484. package/plugins/lisa-expo/.codex-plugin/skills/jira-create/SKILL.md +161 -0
  485. package/plugins/lisa-expo/.codex-plugin/skills/jira-create/agents/openai.yaml +4 -0
  486. package/plugins/lisa-expo/.codex-plugin/skills/jira-evidence/SKILL.md +78 -0
  487. package/plugins/lisa-expo/.codex-plugin/skills/jira-evidence/agents/openai.yaml +4 -0
  488. package/plugins/lisa-expo/.codex-plugin/skills/jira-evidence/scripts/post-evidence.sh +180 -0
  489. package/plugins/lisa-expo/.codex-plugin/skills/jira-journey/SKILL.md +190 -0
  490. package/plugins/lisa-expo/.codex-plugin/skills/jira-journey/agents/openai.yaml +4 -0
  491. package/plugins/lisa-expo/.codex-plugin/skills/jira-journey/scripts/generate-templates.py +281 -0
  492. package/plugins/lisa-expo/.codex-plugin/skills/jira-journey/scripts/parse-plan.py +368 -0
  493. package/plugins/lisa-expo/.codex-plugin/skills/jira-verify/SKILL.md +27 -0
  494. package/plugins/lisa-expo/.codex-plugin/skills/jira-verify/agents/openai.yaml +4 -0
  495. package/plugins/lisa-expo/.codex-plugin/skills/lisa-e2e-coverage-gaps/SKILL.md +13 -0
  496. package/plugins/lisa-expo/.codex-plugin/skills/lisa-e2e-coverage-gaps/agents/openai.yaml +4 -0
  497. package/plugins/lisa-expo/.codex-plugin/skills/local-state/SKILL.md +362 -0
  498. package/plugins/lisa-expo/.codex-plugin/skills/local-state/agents/openai.yaml +4 -0
  499. package/plugins/lisa-expo/.codex-plugin/skills/local-state/references/async-storage.md +505 -0
  500. package/plugins/lisa-expo/.codex-plugin/skills/local-state/references/persistence-patterns.md +711 -0
  501. package/plugins/lisa-expo/.codex-plugin/skills/local-state/references/reactive-variables.md +446 -0
  502. package/plugins/lisa-expo/.codex-plugin/skills/native-data-fetching/SKILL.md +507 -0
  503. package/plugins/lisa-expo/.codex-plugin/skills/native-data-fetching/agents/openai.yaml +4 -0
  504. package/plugins/lisa-expo/.codex-plugin/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  505. package/plugins/lisa-expo/.codex-plugin/skills/ops-browser-uat/SKILL.md +124 -0
  506. package/plugins/lisa-expo/.codex-plugin/skills/ops-browser-uat/agents/openai.yaml +4 -0
  507. package/plugins/lisa-expo/.codex-plugin/skills/ops-check-logs/SKILL.md +217 -0
  508. package/plugins/lisa-expo/.codex-plugin/skills/ops-check-logs/agents/openai.yaml +4 -0
  509. package/plugins/lisa-expo/.codex-plugin/skills/ops-db-ops/SKILL.md +123 -0
  510. package/plugins/lisa-expo/.codex-plugin/skills/ops-db-ops/agents/openai.yaml +4 -0
  511. package/plugins/lisa-expo/.codex-plugin/skills/ops-deploy/SKILL.md +123 -0
  512. package/plugins/lisa-expo/.codex-plugin/skills/ops-deploy/agents/openai.yaml +4 -0
  513. package/plugins/lisa-expo/.codex-plugin/skills/ops-monitor-errors/SKILL.md +99 -0
  514. package/plugins/lisa-expo/.codex-plugin/skills/ops-monitor-errors/agents/openai.yaml +4 -0
  515. package/plugins/lisa-expo/.codex-plugin/skills/ops-performance/SKILL.md +165 -0
  516. package/plugins/lisa-expo/.codex-plugin/skills/ops-performance/agents/openai.yaml +4 -0
  517. package/plugins/lisa-expo/.codex-plugin/skills/ops-run-local/SKILL.md +169 -0
  518. package/plugins/lisa-expo/.codex-plugin/skills/ops-run-local/agents/openai.yaml +4 -0
  519. package/plugins/lisa-expo/.codex-plugin/skills/ops-verify-health/SKILL.md +101 -0
  520. package/plugins/lisa-expo/.codex-plugin/skills/ops-verify-health/agents/openai.yaml +4 -0
  521. package/plugins/lisa-expo/.codex-plugin/skills/owasp-zap/SKILL.md +61 -0
  522. package/plugins/lisa-expo/.codex-plugin/skills/owasp-zap/agents/openai.yaml +4 -0
  523. package/plugins/lisa-expo/.codex-plugin/skills/play-store-access/SKILL.md +226 -0
  524. package/plugins/lisa-expo/.codex-plugin/skills/play-store-access/agents/openai.yaml +4 -0
  525. package/plugins/lisa-expo/.codex-plugin/skills/playwright-ci-debugging/SKILL.md +140 -0
  526. package/plugins/lisa-expo/.codex-plugin/skills/playwright-ci-debugging/agents/openai.yaml +4 -0
  527. package/plugins/lisa-expo/.codex-plugin/skills/playwright-selectors/SKILL.md +455 -0
  528. package/plugins/lisa-expo/.codex-plugin/skills/playwright-selectors/agents/openai.yaml +4 -0
  529. package/plugins/lisa-expo/.codex-plugin/skills/reduce-complexity/SKILL.md +251 -0
  530. package/plugins/lisa-expo/.codex-plugin/skills/reduce-complexity/agents/openai.yaml +4 -0
  531. package/plugins/lisa-expo/.codex-plugin/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  532. package/plugins/lisa-expo/.codex-plugin/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  533. package/plugins/lisa-expo/.codex-plugin/skills/testing-library/SKILL.md +314 -0
  534. package/plugins/lisa-expo/.codex-plugin/skills/testing-library/agents/openai.yaml +4 -0
  535. package/plugins/lisa-expo/.codex-plugin/skills/testing-library/references/async-patterns.md +420 -0
  536. package/plugins/lisa-expo/.codex-plugin/skills/testing-library/references/expo-router-testing.md +556 -0
  537. package/plugins/lisa-expo/.codex-plugin/skills/testing-library/references/mocking-patterns.md +590 -0
  538. package/plugins/lisa-expo/.codex-plugin/skills/testing-library/references/query-priority.md +291 -0
  539. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/SKILL.md +134 -0
  540. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/agents/openai.yaml +4 -0
  541. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  542. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  543. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/native-tabs.md +124 -0
  544. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/new-architecture.md +79 -0
  545. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/react-19.md +79 -0
  546. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/react-compiler.md +59 -0
  547. package/plugins/lisa-expo/.codex-plugin/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  548. package/plugins/lisa-expo/.codex-plugin/skills/use-dom/SKILL.md +417 -0
  549. package/plugins/lisa-expo/.codex-plugin/skills/use-dom/agents/openai.yaml +4 -0
  550. package/plugins/lisa-expo/skills/building-native-ui/SKILL.md +1 -1
  551. package/plugins/lisa-expo-agy/plugin.json +1 -1
  552. package/plugins/lisa-expo-agy/skills/building-native-ui/SKILL.md +1 -1
  553. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  554. package/plugins/lisa-expo-copilot/skills/building-native-ui/SKILL.md +1 -1
  555. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  556. package/plugins/lisa-expo-cursor/skills/building-native-ui/SKILL.md +1 -1
  557. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  558. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +2 -2
  559. package/plugins/lisa-harper-fabric/.codex-plugin/skills/e2e-coverage-gaps/SKILL.md +105 -0
  560. package/plugins/lisa-harper-fabric/.codex-plugin/skills/e2e-coverage-gaps/agents/openai.yaml +4 -0
  561. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-auth/SKILL.md +368 -0
  562. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-auth/agents/openai.yaml +4 -0
  563. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-build-and-deploy/SKILL.md +198 -0
  564. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-build-and-deploy/agents/openai.yaml +4 -0
  565. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-caching/SKILL.md +265 -0
  566. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-caching/agents/openai.yaml +4 -0
  567. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-component-model/SKILL.md +87 -0
  568. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-component-model/agents/openai.yaml +4 -0
  569. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-config-yaml/SKILL.md +283 -0
  570. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-config-yaml/agents/openai.yaml +4 -0
  571. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-operations/SKILL.md +239 -0
  572. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-operations/agents/openai.yaml +4 -0
  573. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-realtime/SKILL.md +187 -0
  574. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-realtime/agents/openai.yaml +4 -0
  575. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-resources/SKILL.md +142 -0
  576. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-resources/agents/openai.yaml +4 -0
  577. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-rest-queries/SKILL.md +403 -0
  578. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-rest-queries/agents/openai.yaml +4 -0
  579. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-schema-graphql/SKILL.md +123 -0
  580. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-schema-graphql/agents/openai.yaml +4 -0
  581. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-testing/SKILL.md +254 -0
  582. package/plugins/lisa-harper-fabric/.codex-plugin/skills/harper-testing/agents/openai.yaml +4 -0
  583. package/plugins/lisa-harper-fabric/.codex-plugin/skills/lisa-e2e-coverage-gaps/SKILL.md +13 -0
  584. package/plugins/lisa-harper-fabric/.codex-plugin/skills/lisa-e2e-coverage-gaps/agents/openai.yaml +4 -0
  585. package/plugins/lisa-harper-fabric/hooks/block-generated-artifact-edits.sh +42 -24
  586. package/plugins/lisa-harper-fabric/hooks/enforce-config-extensions.mjs +12 -14
  587. package/plugins/lisa-harper-fabric/hooks/enforce-config-extensions.sh +30 -3
  588. package/plugins/lisa-harper-fabric/hooks/inject-rules.sh +1 -1
  589. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  590. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  591. package/plugins/lisa-harper-fabric-copilot/hooks/block-generated-artifact-edits.sh +42 -24
  592. package/plugins/lisa-harper-fabric-copilot/hooks/enforce-config-extensions.mjs +12 -14
  593. package/plugins/lisa-harper-fabric-copilot/hooks/enforce-config-extensions.sh +30 -3
  594. package/plugins/lisa-harper-fabric-copilot/hooks/inject-rules.sh +1 -1
  595. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  596. package/plugins/lisa-harper-fabric-cursor/hooks/block-generated-artifact-edits.sh +42 -24
  597. package/plugins/lisa-harper-fabric-cursor/hooks/enforce-config-extensions.mjs +12 -14
  598. package/plugins/lisa-harper-fabric-cursor/hooks/enforce-config-extensions.sh +30 -3
  599. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  600. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +2 -2
  601. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/SKILL.md +176 -0
  602. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/agents/openai.yaml +4 -0
  603. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/references/advanced-features.md +527 -0
  604. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/references/project-patterns.md +531 -0
  605. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/references/quick-start.md +257 -0
  606. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  607. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-graphql/references/types-scalars.md +513 -0
  608. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-rules/SKILL.md +565 -0
  609. package/plugins/lisa-nestjs/.codex-plugin/skills/nestjs-rules/agents/openai.yaml +4 -0
  610. package/plugins/lisa-nestjs/.codex-plugin/skills/typeorm-patterns/SKILL.md +275 -0
  611. package/plugins/lisa-nestjs/.codex-plugin/skills/typeorm-patterns/agents/openai.yaml +4 -0
  612. package/plugins/lisa-nestjs/.codex-plugin/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  613. package/plugins/lisa-nestjs/.codex-plugin/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  614. package/plugins/lisa-nestjs/.codex-plugin/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  615. package/plugins/lisa-nestjs/skills/typeorm-patterns/references/configuration-patterns.md +5 -5
  616. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  617. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/configuration-patterns.md +5 -5
  618. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  619. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/configuration-patterns.md +5 -5
  620. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  621. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/configuration-patterns.md +5 -5
  622. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  623. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +2 -2
  624. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-connect-repo-topic/SKILL.md +13 -0
  625. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-connect-repo-topic/agents/openai.yaml +4 -0
  626. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-connect-staff-slack/SKILL.md +13 -0
  627. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-connect-staff-slack/agents/openai.yaml +4 -0
  628. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-connect-staff-telegram/SKILL.md +13 -0
  629. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-connect-staff-telegram/agents/openai.yaml +4 -0
  630. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-repo-topic/SKILL.md +163 -0
  631. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-repo-topic/agents/openai.yaml +4 -0
  632. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +185 -0
  633. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  634. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-staff/agents/openai.yaml +4 -0
  635. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-staff/references/platform-routing.md +123 -0
  636. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  637. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-setup/SKILL.md +141 -0
  638. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-openclaw-setup/agents/openai.yaml +4 -0
  639. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-setup-openclaw/SKILL.md +13 -0
  640. package/plugins/lisa-openclaw/.codex-plugin/skills/lisa-setup-openclaw/agents/openai.yaml +4 -0
  641. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  642. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  643. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  644. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  645. package/plugins/lisa-phaser/.codex-plugin/plugin.json +2 -2
  646. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-accessibility/SKILL.md +135 -0
  647. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-accessibility/agents/openai.yaml +4 -0
  648. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-asset-pipeline/SKILL.md +222 -0
  649. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-asset-pipeline/agents/openai.yaml +4 -0
  650. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-asset-sourcing/SKILL.md +151 -0
  651. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-asset-sourcing/agents/openai.yaml +4 -0
  652. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-build-deploy/SKILL.md +153 -0
  653. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-build-deploy/agents/openai.yaml +4 -0
  654. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-i18n/SKILL.md +122 -0
  655. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-i18n/agents/openai.yaml +4 -0
  656. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-project-structure/SKILL.md +89 -0
  657. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-project-structure/agents/openai.yaml +4 -0
  658. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-services/SKILL.md +208 -0
  659. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-services/agents/openai.yaml +4 -0
  660. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-testing/SKILL.md +192 -0
  661. package/plugins/lisa-phaser/.codex-plugin/skills/phaser-testing/agents/openai.yaml +4 -0
  662. package/plugins/lisa-phaser/hooks/inject-rules.sh +1 -1
  663. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  664. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  665. package/plugins/lisa-phaser-copilot/hooks/inject-rules.sh +1 -1
  666. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  667. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  668. package/plugins/lisa-rails/.codex-plugin/plugin.json +2 -2
  669. package/plugins/lisa-rails/.codex-plugin/skills/action-controller-best-practices/SKILL.md +374 -0
  670. package/plugins/lisa-rails/.codex-plugin/skills/action-controller-best-practices/agents/openai.yaml +4 -0
  671. package/plugins/lisa-rails/.codex-plugin/skills/action-view-best-practices/SKILL.md +335 -0
  672. package/plugins/lisa-rails/.codex-plugin/skills/action-view-best-practices/agents/openai.yaml +4 -0
  673. package/plugins/lisa-rails/.codex-plugin/skills/active-record-model-best-practices/SKILL.md +166 -0
  674. package/plugins/lisa-rails/.codex-plugin/skills/active-record-model-best-practices/agents/openai.yaml +4 -0
  675. package/plugins/lisa-rails/.codex-plugin/skills/e2e-coverage-gaps/SKILL.md +105 -0
  676. package/plugins/lisa-rails/.codex-plugin/skills/e2e-coverage-gaps/agents/openai.yaml +4 -0
  677. package/plugins/lisa-rails/.codex-plugin/skills/fix-linter-error/SKILL.md +45 -0
  678. package/plugins/lisa-rails/.codex-plugin/skills/fix-linter-error/agents/openai.yaml +4 -0
  679. package/plugins/lisa-rails/.codex-plugin/skills/improve-code-complexity/SKILL.md +48 -0
  680. package/plugins/lisa-rails/.codex-plugin/skills/improve-code-complexity/agents/openai.yaml +4 -0
  681. package/plugins/lisa-rails/.codex-plugin/skills/improve-max-lines/SKILL.md +46 -0
  682. package/plugins/lisa-rails/.codex-plugin/skills/improve-max-lines/agents/openai.yaml +4 -0
  683. package/plugins/lisa-rails/.codex-plugin/skills/improve-max-lines-per-function/SKILL.md +46 -0
  684. package/plugins/lisa-rails/.codex-plugin/skills/improve-max-lines-per-function/agents/openai.yaml +4 -0
  685. package/plugins/lisa-rails/.codex-plugin/skills/improve-test-coverage/SKILL.md +45 -0
  686. package/plugins/lisa-rails/.codex-plugin/skills/improve-test-coverage/agents/openai.yaml +4 -0
  687. package/plugins/lisa-rails/.codex-plugin/skills/jira-add-journey/SKILL.md +65 -0
  688. package/plugins/lisa-rails/.codex-plugin/skills/jira-add-journey/agents/openai.yaml +4 -0
  689. package/plugins/lisa-rails/.codex-plugin/skills/jira-create/SKILL.md +100 -0
  690. package/plugins/lisa-rails/.codex-plugin/skills/jira-create/agents/openai.yaml +4 -0
  691. package/plugins/lisa-rails/.codex-plugin/skills/jira-evidence/SKILL.md +70 -0
  692. package/plugins/lisa-rails/.codex-plugin/skills/jira-evidence/agents/openai.yaml +4 -0
  693. package/plugins/lisa-rails/.codex-plugin/skills/jira-evidence/scripts/post-evidence.sh +180 -0
  694. package/plugins/lisa-rails/.codex-plugin/skills/jira-journey/SKILL.md +64 -0
  695. package/plugins/lisa-rails/.codex-plugin/skills/jira-journey/agents/openai.yaml +4 -0
  696. package/plugins/lisa-rails/.codex-plugin/skills/jira-verify/SKILL.md +26 -0
  697. package/plugins/lisa-rails/.codex-plugin/skills/jira-verify/agents/openai.yaml +4 -0
  698. package/plugins/lisa-rails/.codex-plugin/skills/lisa-e2e-coverage-gaps/SKILL.md +13 -0
  699. package/plugins/lisa-rails/.codex-plugin/skills/lisa-e2e-coverage-gaps/agents/openai.yaml +4 -0
  700. package/plugins/lisa-rails/.codex-plugin/skills/ops-check-logs/SKILL.md +191 -0
  701. package/plugins/lisa-rails/.codex-plugin/skills/ops-check-logs/agents/openai.yaml +4 -0
  702. package/plugins/lisa-rails/.codex-plugin/skills/ops-deploy/SKILL.md +153 -0
  703. package/plugins/lisa-rails/.codex-plugin/skills/ops-deploy/agents/openai.yaml +4 -0
  704. package/plugins/lisa-rails/.codex-plugin/skills/ops-run-local/SKILL.md +169 -0
  705. package/plugins/lisa-rails/.codex-plugin/skills/ops-run-local/agents/openai.yaml +4 -0
  706. package/plugins/lisa-rails/.codex-plugin/skills/ops-verify-jobs/SKILL.md +157 -0
  707. package/plugins/lisa-rails/.codex-plugin/skills/ops-verify-jobs/agents/openai.yaml +4 -0
  708. package/plugins/lisa-rails/.codex-plugin/skills/ops-verify-telemetry/SKILL.md +197 -0
  709. package/plugins/lisa-rails/.codex-plugin/skills/ops-verify-telemetry/agents/openai.yaml +4 -0
  710. package/plugins/lisa-rails/hooks/inject-rules.sh +2 -1
  711. package/plugins/lisa-rails-agy/plugin.json +1 -1
  712. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  713. package/plugins/lisa-rails-copilot/hooks/inject-rules.sh +2 -1
  714. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  715. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  716. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  717. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  718. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  719. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  720. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  721. package/plugins/lisa-wiki/.codex-plugin/plugin.json +2 -2
  722. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-add-ingest/SKILL.md +12 -0
  723. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-add-ingest/agents/openai.yaml +4 -0
  724. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-add-role/SKILL.md +12 -0
  725. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-add-role/agents/openai.yaml +4 -0
  726. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-ingest/SKILL.md +12 -0
  727. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-ingest/agents/openai.yaml +4 -0
  728. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-lint/SKILL.md +11 -0
  729. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-lint/agents/openai.yaml +4 -0
  730. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-migrate/SKILL.md +12 -0
  731. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-migrate/agents/openai.yaml +4 -0
  732. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-onboard-me/SKILL.md +12 -0
  733. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-onboard-me/agents/openai.yaml +4 -0
  734. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-query/SKILL.md +12 -0
  735. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-query/agents/openai.yaml +4 -0
  736. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-setup/SKILL.md +12 -0
  737. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-setup/agents/openai.yaml +4 -0
  738. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-setup-wiki/SKILL.md +12 -0
  739. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-setup-wiki/agents/openai.yaml +4 -0
  740. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-status/SKILL.md +12 -0
  741. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-status/agents/openai.yaml +4 -0
  742. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  743. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-add-ingest/agents/openai.yaml +4 -0
  744. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-add-role/SKILL.md +30 -0
  745. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-add-role/agents/openai.yaml +4 -0
  746. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  747. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-confluence/agents/openai.yaml +4 -0
  748. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  749. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-docs/agents/openai.yaml +4 -0
  750. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  751. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-git/agents/openai.yaml +4 -0
  752. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  753. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-jira/agents/openai.yaml +4 -0
  754. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  755. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-memory/agents/openai.yaml +4 -0
  756. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  757. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-notion/agents/openai.yaml +4 -0
  758. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  759. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-roles/agents/openai.yaml +4 -0
  760. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  761. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-slack/agents/openai.yaml +4 -0
  762. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  763. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-connector-web/agents/openai.yaml +4 -0
  764. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-doctor/SKILL.md +47 -0
  765. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-doctor/agents/openai.yaml +4 -0
  766. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-ingest/SKILL.md +99 -0
  767. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-ingest/agents/openai.yaml +4 -0
  768. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-lint/SKILL.md +32 -0
  769. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-lint/agents/openai.yaml +4 -0
  770. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-migrate/SKILL.md +43 -0
  771. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-migrate/agents/openai.yaml +4 -0
  772. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  773. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-onboard-me/agents/openai.yaml +4 -0
  774. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-query/SKILL.md +36 -0
  775. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-query/agents/openai.yaml +4 -0
  776. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-setup/SKILL.md +75 -0
  777. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-setup/agents/openai.yaml +4 -0
  778. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-setup-automations/SKILL.md +83 -0
  779. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-setup-automations/agents/openai.yaml +4 -0
  780. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-status/SKILL.md +47 -0
  781. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-status/agents/openai.yaml +4 -0
  782. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  783. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-tear-down-automations/agents/openai.yaml +4 -0
  784. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-usage/SKILL.md +50 -0
  785. package/plugins/lisa-wiki/.codex-plugin/skills/lisa-wiki-usage/agents/openai.yaml +4 -0
  786. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  787. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  788. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  789. package/plugins/src/base/hooks/inject-rules.sh +3 -2
  790. package/plugins/src/base/hooks/install-pkgs.sh +4 -45
  791. package/plugins/src/base/hooks/setup-jira-cli.sh +4 -12
  792. package/plugins/src/base/skills/lisa-setup-linear/SKILL.md +1 -1
  793. package/plugins/src/expo/skills/building-native-ui/SKILL.md +1 -1
  794. package/plugins/src/harper-fabric/hooks/block-generated-artifact-edits.sh +42 -24
  795. package/plugins/src/harper-fabric/hooks/enforce-config-extensions.mjs +12 -14
  796. package/plugins/src/harper-fabric/hooks/enforce-config-extensions.sh +30 -3
  797. package/plugins/src/harper-fabric/hooks/inject-rules.sh +1 -1
  798. package/plugins/src/nestjs/skills/typeorm-patterns/references/configuration-patterns.md +5 -5
  799. package/plugins/src/phaser/hooks/inject-rules.sh +1 -1
  800. package/plugins/src/rails/hooks/inject-rules.sh +2 -1
  801. package/scripts/clean-dist.mjs +7 -0
  802. package/scripts/generate-codex-plugin-artifacts.mjs +311 -20
  803. package/scripts/install-claude-plugins.sh +53 -40
  804. package/typescript/package-lisa/package.lisa.json +1 -1
  805. package/.agents/plugins/marketplace.json +0 -128
  806. package/dist/codex/lisa-plugin-detection.d.ts +0 -68
  807. package/dist/codex/lisa-plugin-detection.d.ts.map +0 -1
  808. package/dist/codex/lisa-plugin-detection.js +0 -139
  809. package/dist/codex/lisa-plugin-detection.js.map +0 -1
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: ops-verify-health
3
+ description: "Health check all services…"
4
+ allowed-tools:
5
+ - Bash
6
+ - Read
7
+ ---
8
+
9
+ # Ops: Verify Health
10
+
11
+ Health check all services across environments.
12
+
13
+ **Argument**: `$ARGUMENTS` — environment(s) to check (default: `all`). Options: `local`, `dev`, `staging`, `production`, `all`
14
+
15
+ ## Discovery
16
+
17
+ Read these files to build the environment URL table:
18
+
19
+ 1. `e2e/constants.ts` — frontend URLs per environment
20
+ 2. `.env.localhost`, `.env.development`, `.env.staging`, `.env.production` — `EXPO_PUBLIC_GRAPHQL_BASE_URL` for backend GraphQL URLs
21
+
22
+ ## Health Checks
23
+
24
+ For each environment, run these checks:
25
+
26
+ ### Frontend Check
27
+
28
+ ```bash
29
+ curl -sf -o /dev/null -w "HTTP %{http_code} in %{time_total}s" {frontend_url}
30
+ ```
31
+
32
+ Verify the response contains Expo/React markers:
33
+ ```bash
34
+ curl -sf {frontend_url} | head -20
35
+ ```
36
+
37
+ ### Backend GraphQL Check
38
+
39
+ ```bash
40
+ curl -sf {graphql_url} -X POST \
41
+ -H "Content-Type: application/json" \
42
+ -d '{"query":"{ __typename }"}' \
43
+ -w "\nHTTP %{http_code} in %{time_total}s\n"
44
+ ```
45
+
46
+ ### GraphQL Introspection (detailed check)
47
+
48
+ ```bash
49
+ curl -sf {graphql_url} -X POST \
50
+ -H "Content-Type: application/json" \
51
+ -d '{"query":"{ __schema { queryType { name } } }"}' \
52
+ -w "\nHTTP %{http_code} in %{time_total}s\n"
53
+ ```
54
+
55
+ ## Full Health Check Script
56
+
57
+ Run all checks for the specified environment(s):
58
+
59
+ ```bash
60
+ check_env() {
61
+ local ENV=$1
62
+ local FE_URL=$2
63
+ local BE_URL=$3
64
+
65
+ echo "=== $ENV ==="
66
+
67
+ # Frontend
68
+ FE_STATUS=$(curl -sf -o /dev/null -w "%{http_code}" --max-time 10 "$FE_URL" 2>/dev/null || echo "000")
69
+ FE_TIME=$(curl -sf -o /dev/null -w "%{time_total}" --max-time 10 "$FE_URL" 2>/dev/null || echo "timeout")
70
+ echo "Frontend: HTTP $FE_STATUS ($FE_TIME s)"
71
+
72
+ # Backend
73
+ BE_RESULT=$(curl -sf --max-time 10 "$BE_URL" -X POST \
74
+ -H "Content-Type: application/json" \
75
+ -d '{"query":"{ __typename }"}' \
76
+ -w "\n%{http_code} %{time_total}" 2>/dev/null || echo -e "\n000 timeout")
77
+ BE_STATUS=$(echo "$BE_RESULT" | tail -1 | awk '{print $1}')
78
+ BE_TIME=$(echo "$BE_RESULT" | tail -1 | awk '{print $2}')
79
+ echo "Backend: HTTP $BE_STATUS ($BE_TIME s)"
80
+ echo ""
81
+ }
82
+ ```
83
+
84
+ ## EAS Update Status
85
+
86
+ Check the latest OTA updates deployed to each branch:
87
+
88
+ ```bash
89
+ eas update:list --branch {env} --limit 3
90
+ ```
91
+
92
+ ## Output Format
93
+
94
+ Report results as a table:
95
+
96
+ | Service | Environment | Status | Response Time | Details |
97
+ |---------|-------------|--------|---------------|---------|
98
+ | Frontend | dev | UP (200) | 0.45s | HTML contains React root |
99
+ | Backend | dev | UP (200) | 0.32s | GraphQL responds `__typename` |
100
+
101
+ Flag any service with status != 200 or response time > 5s as a concern.
@@ -0,0 +1,4 @@
1
+ display_name: "Ops Verify Health"
2
+ short_description: "Health check all services…"
3
+ default_prompt:
4
+ - "Use $ops-verify-health: Health check all services…."
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: owasp-zap
3
+ description: "running or interpreting an…"
4
+ ---
5
+
6
+ # OWASP ZAP Baseline Scanning
7
+
8
+ OWASP ZAP (Zed Attack Proxy) performs DAST (Dynamic Application Security Testing) by scanning a running application for common security vulnerabilities from the OWASP Top 10.
9
+
10
+ ## When to Use
11
+
12
+ - After making changes to HTTP headers, authentication, or security middleware
13
+ - Before deploying to staging or production
14
+ - When reviewing security scan results from CI
15
+ - When triaging ZAP findings from pull request checks
16
+
17
+ ## Running Locally
18
+
19
+ ```bash
20
+ # Requires Docker to be installed and running
21
+ bash scripts/zap-baseline.sh
22
+ ```
23
+
24
+ The scan builds the Expo web export, serves it locally, and runs ZAP against it. Reports are saved to `zap-report.html`, `zap-report.json`, and `zap-report.md`.
25
+
26
+ ## Interpreting Results
27
+
28
+ ZAP findings are categorized by risk level:
29
+
30
+ | Risk | Action |
31
+ |------|--------|
32
+ | **High** | Fix immediately — indicates exploitable vulnerability |
33
+ | **Medium** | Fix before deployment — security best practice violation |
34
+ | **Low** | Fix when convenient — minor security improvement |
35
+ | **Informational** | Review — may be false positive or acceptable risk |
36
+
37
+ ## Common Findings and Fixes
38
+
39
+ ### Infrastructure-Level (fix at CDN/hosting, not in code)
40
+
41
+ - **CSP Header Not Set**: Configure Content-Security-Policy at CDN or hosting platform. Expo web exports need `script-src 'self' 'unsafe-inline'` for hydration.
42
+ - **HSTS Not Set**: Configure Strict-Transport-Security at CDN/load balancer.
43
+ - **X-Frame-Options**: Use `frame-ancestors` in CSP at CDN level.
44
+
45
+ ### Application-Level (fix in code)
46
+
47
+ - **Cookie flags missing**: Ensure all cookies set `HttpOnly`, `Secure`, and `SameSite` attributes.
48
+ - **Debug error messages**: Ensure error boundaries don't leak stack traces in production.
49
+ - **Server version disclosure**: Remove or mask the `Server` response header.
50
+
51
+ ## Configuration
52
+
53
+ ZAP scan rules are configured in `.zap/baseline.conf`. Each line controls how ZAP treats a specific rule:
54
+
55
+ - `IGNORE`: Skip the rule entirely
56
+ - `WARN`: Report finding but don't fail the build
57
+ - `FAIL`: Fail the build if this finding is detected
58
+
59
+ ## CI Integration
60
+
61
+ ZAP runs automatically in CI via the `zap-baseline.yml` workflow. Results are uploaded as artifacts and the build fails on medium+ severity findings.
@@ -0,0 +1,4 @@
1
+ display_name: "OWASP ZAP"
2
+ short_description: "running or interpreting an…"
3
+ default_prompt:
4
+ - "Use $owasp-zap: running or interpreting an…."
@@ -0,0 +1,226 @@
1
+ ---
2
+ name: play-store-access
3
+ description: "Read-only Google Play Console…"
4
+ version: 1.0.0
5
+ license: MIT
6
+ allowed-tools:
7
+ - Bash
8
+ - Read
9
+ ---
10
+
11
+ # Play Store Access: $ARGUMENTS
12
+
13
+ Read-only access layer for Google Play release state in Expo projects. Use it to
14
+ answer whether the Android app is live, halted, draft, or in staged rollout on a
15
+ Play track after EAS submission.
16
+
17
+ This skill MUST NOT promote tracks, change rollout percentages, create releases,
18
+ or submit builds. EAS remains the submission path.
19
+
20
+ ## Invocation Contract
21
+
22
+ ```text
23
+ operation: setup
24
+ operation: production-status [track:production] [package:<android.package>]
25
+ operation: track-status track:<track> [package:<android.package>]
26
+ operation: resolve-package
27
+ ```
28
+
29
+ Return a concise result with the package name, track, release `name` /
30
+ `versionCodes`, `status`, `userFraction` when present, and any `countryTargeting`
31
+ or in-app update priority fields present in the API response.
32
+
33
+ ## Configuration
34
+
35
+ Project-safe config can live in `.lisa.config.json`:
36
+
37
+ ```json
38
+ {
39
+ "playStore": {
40
+ "packageName": "com.example.app",
41
+ "track": "production"
42
+ }
43
+ }
44
+ ```
45
+
46
+ Local credential config belongs in `.lisa.config.local.json`, which must stay
47
+ gitignored:
48
+
49
+ ```json
50
+ {
51
+ "playStore": {
52
+ "serviceAccountKeyPath": "./google-play-service-account.json"
53
+ }
54
+ }
55
+ ```
56
+
57
+ Supported credential locations, in resolution order:
58
+
59
+ 1. `GOOGLE_PLAY_SERVICE_ACCOUNT_JSON` containing the raw service-account JSON.
60
+ 2. `GOOGLE_PLAY_SERVICE_ACCOUNT_KEY_BASE64` containing base64 JSON.
61
+ 3. `.lisa.config.local.json` `playStore.serviceAccountKeyPath`.
62
+ 4. Darwin keychain item `lisa-google-play` account `<packageName>`.
63
+
64
+ Fail closed if no credential is available. Never prompt indefinitely and never
65
+ fall back to Play Console UI scraping.
66
+
67
+ ## One-Time Setup Flow
68
+
69
+ For `operation: setup`:
70
+
71
+ 1. Confirm the project is an Expo app by checking for `app.json`,
72
+ `app.config.json`, `app.config.js`, or `app.config.ts`.
73
+ 2. Resolve or ask the operator to provide the Android package name. Prefer
74
+ `.lisa.config.json` `playStore.packageName`, then `expo.android.package` from
75
+ app config.
76
+ 3. In Google Cloud Console, create a service account dedicated to read-only Play
77
+ release visibility and create a JSON key for it.
78
+ 4. In Play Console, open **Setup -> API access**, link the Google Cloud project if
79
+ needed, then grant the service-account email app access with read-level
80
+ release visibility. Do not grant release-management write permissions for v1.
81
+ 5. Store the key locally using one of the credential locations above. If using a
82
+ path, add the path to `.gitignore` and record only the path in
83
+ `.lisa.config.local.json`.
84
+ 6. Record non-secret defaults in `.lisa.config.json`:
85
+
86
+ ```bash
87
+ jq '.playStore.packageName = "com.example.app" | .playStore.track = "production"' \
88
+ .lisa.config.json > /tmp/lisa-config.json && mv /tmp/lisa-config.json .lisa.config.json
89
+ ```
90
+
91
+ The key material itself must never be committed.
92
+
93
+ ## Resolve Package Name
94
+
95
+ Resolution order:
96
+
97
+ 1. Explicit `package:<value>` argument.
98
+ 2. `.lisa.config.json` `playStore.packageName`.
99
+ 3. `app.json` / `app.config.json` `expo.android.package`.
100
+ 4. `app.config.ts` / `app.config.js` by running Expo config export:
101
+
102
+ ```bash
103
+ npx expo config --json | jq -r '.android.package // empty'
104
+ ```
105
+
106
+ If the package still cannot be resolved, fail with:
107
+
108
+ ```text
109
+ Error: Google Play package name is not configured. Set playStore.packageName in .lisa.config.json or pass package:<name>.
110
+ ```
111
+
112
+ ## Read Track State
113
+
114
+ The androidpublisher API requires an edit even for track reads. Create the edit,
115
+ list the track, then delete the edit. Do not commit the edit.
116
+
117
+ ```bash
118
+ PACKAGE_NAME="${PACKAGE_NAME:-$(jq -r '.playStore.packageName // empty' .lisa.config.json)}"
119
+ TRACK="${TRACK:-$(jq -r '.playStore.track // "production"' .lisa.config.json)}"
120
+ KEY_PATH="$(jq -r '.playStore.serviceAccountKeyPath // empty' .lisa.config.local.json 2>/dev/null)"
121
+
122
+ read_service_account_json() {
123
+ if [ -n "${GOOGLE_PLAY_SERVICE_ACCOUNT_JSON:-}" ]; then
124
+ printf '%s' "$GOOGLE_PLAY_SERVICE_ACCOUNT_JSON"
125
+ return
126
+ fi
127
+ if [ -n "${GOOGLE_PLAY_SERVICE_ACCOUNT_KEY_BASE64:-}" ]; then
128
+ printf '%s' "$GOOGLE_PLAY_SERVICE_ACCOUNT_KEY_BASE64" | base64 --decode 2>/dev/null ||
129
+ printf '%s' "$GOOGLE_PLAY_SERVICE_ACCOUNT_KEY_BASE64" | base64 -D
130
+ return
131
+ fi
132
+ if [ -n "$KEY_PATH" ] && [ -f "$KEY_PATH" ]; then
133
+ cat "$KEY_PATH"
134
+ return
135
+ fi
136
+ if [ "$(uname -s)" = "Darwin" ] && [ -n "$PACKAGE_NAME" ]; then
137
+ security find-generic-password -s lisa-google-play -a "$PACKAGE_NAME" -w 2>/dev/null
138
+ return
139
+ fi
140
+ }
141
+
142
+ SERVICE_ACCOUNT_JSON="$(read_service_account_json)"
143
+ [ -n "$SERVICE_ACCOUNT_JSON" ] || {
144
+ echo "Error: no Google Play service-account key found. Run play-store-access operation: setup." >&2
145
+ exit 1
146
+ }
147
+ [ -n "$PACKAGE_NAME" ] || {
148
+ echo "Error: Google Play package name is not configured. Set playStore.packageName or pass package:<name>." >&2
149
+ exit 1
150
+ }
151
+
152
+ ACCESS_TOKEN="$(
153
+ SERVICE_ACCOUNT_JSON="$SERVICE_ACCOUNT_JSON" node <<'NODE'
154
+ const crypto = require("crypto");
155
+
156
+ const account = JSON.parse(process.env.SERVICE_ACCOUNT_JSON);
157
+ const now = Math.floor(Date.now() / 1000);
158
+ const encode = (value) =>
159
+ Buffer.from(JSON.stringify(value)).toString("base64url");
160
+ const unsigned = `${encode({ alg: "RS256", typ: "JWT" })}.${encode({
161
+ iss: account.client_email,
162
+ scope: "https://www.googleapis.com/auth/androidpublisher",
163
+ aud: "https://oauth2.googleapis.com/token",
164
+ iat: now,
165
+ exp: now + 3600,
166
+ })}`;
167
+ const signature = crypto
168
+ .createSign("RSA-SHA256")
169
+ .update(unsigned)
170
+ .sign(account.private_key, "base64url");
171
+
172
+ fetch("https://oauth2.googleapis.com/token", {
173
+ method: "POST",
174
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
175
+ body: new URLSearchParams({
176
+ grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
177
+ assertion: `${unsigned}.${signature}`,
178
+ }),
179
+ })
180
+ .then(async (response) => {
181
+ const body = await response.json();
182
+ if (!response.ok) {
183
+ throw new Error(JSON.stringify(body));
184
+ }
185
+ process.stdout.write(body.access_token);
186
+ })
187
+ .catch((error) => {
188
+ console.error(`Error: failed to obtain Google Play access token: ${error.message}`);
189
+ process.exit(1);
190
+ });
191
+ NODE
192
+ )"
193
+
194
+ BASE="https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${PACKAGE_NAME}"
195
+ EDIT_ID="$(curl -fsS -X POST "${BASE}/edits" -H "Authorization: Bearer ${ACCESS_TOKEN}" | jq -r '.id')"
196
+ trap 'curl -fsS -X DELETE "${BASE}/edits/${EDIT_ID}" -H "Authorization: Bearer ${ACCESS_TOKEN}" >/dev/null 2>&1 || true' EXIT
197
+
198
+ curl -fsS "${BASE}/edits/${EDIT_ID}/tracks/${TRACK}" \
199
+ -H "Authorization: Bearer ${ACCESS_TOKEN}" |
200
+ jq --arg packageName "$PACKAGE_NAME" \
201
+ '{packageName: $packageName, track: .track, releases: (.releases // [])}'
202
+ ```
203
+
204
+ Interpretation:
205
+
206
+ - `status: completed` means the release is live on that track.
207
+ - `status: inProgress` means staged rollout; inspect `userFraction`.
208
+ - `status: halted` means rollout was stopped.
209
+ - `status: draft` means it is not live.
210
+ - Absence of a production release means the app has no watchable production-track
211
+ release through the API.
212
+
213
+ Known limitation: androidpublisher exposes track/release state well, but
214
+ pre-publication review state is coarse. The reliable watchable signal is whether
215
+ the target version is live on the production track.
216
+
217
+ ## Error Handling
218
+
219
+ - `401` / token exchange failure: service-account key is invalid or expired.
220
+ - `403`: service account is not invited to the Play Console app or lacks read
221
+ access to releases.
222
+ - `404`: package name is wrong, the app is not created in Play Console, or the
223
+ service account has no access to that app.
224
+
225
+ In all cases, report the package name and credential source used, but never print
226
+ private key material or the access token.
@@ -0,0 +1,4 @@
1
+ display_name: "Play Store Access"
2
+ short_description: "Read-only Google Play Console…"
3
+ default_prompt:
4
+ - "Use $play-store-access: Read-only Google Play Console…."
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: playwright-ci-debugging
3
+ description: "Debug Playwright E2E tests that…"
4
+ ---
5
+
6
+ # Debugging Playwright E2E Failures in CI
7
+
8
+ The authoring-side rules (selectors, testID forwarding, naming) are in the `playwright-selectors` skill. This skill is for the other half of the job: when a test fails in CI and you need to find out why.
9
+
10
+ ## Debugging Order
11
+
12
+ When a Playwright E2E test fails in CI, follow this exact order.
13
+
14
+ ### 1. Reproduce locally first — before anything else
15
+
16
+ Start the project's dev server, then run the failing test in isolation:
17
+
18
+ ```bash
19
+ # Start the dev server (discover the script from package.json — commonly `start`, `dev`, `start:dev`, or `web`)
20
+ <pkg-manager> run <dev-script>
21
+
22
+ # In another terminal, run the exact failing test with no retries
23
+ BASE_URL=http://localhost:8081/ npx playwright test <file> --grep "<test name>" --retries=0
24
+ ```
25
+
26
+ `--retries=0` is critical — retries mask flake. `--grep` isolates the single failing test so you're not waiting on a full suite.
27
+
28
+ **Do NOT read source code, CI logs, or theorize until you can reproduce locally.** Most CI failures reproduce locally if you run the same test against the same served build. Guessing from logs is slow and usually wrong.
29
+
30
+ ### 2. Intercept the network request
31
+
32
+ When a test involves an API call, set up a Playwright response listener and inspect the status code and response body. A 400/500 response tells you everything.
33
+
34
+ ```typescript
35
+ page.on("response", async (response) => {
36
+ if (response.url().includes("/api/")) {
37
+ console.log(response.status(), response.url(), await response.text());
38
+ }
39
+ });
40
+ ```
41
+
42
+ UI failures are often downstream of a failed API call. The network log is cheaper evidence than the DOM.
43
+
44
+ ### 3. If it doesn't reproduce locally, understand the CI environment first
45
+
46
+ CI runs against a different environment than your laptop. Before changing anything:
47
+
48
+ - Find the CI job that runs Playwright (usually `.github/workflows/*.yml`).
49
+ - Identify which `.env.*` file it loads — this varies by target branch (e.g., dev → `.env.development`, staging → `.env.staging`).
50
+ - Note that CI typically builds a static web bundle (`expo export --platform web`) then serves it on `localhost:8081` via `serve dist`. It is NOT hitting your dev server. Timing, bundling, and env vars all differ.
51
+ - Reproduce the CI setup locally: build the static bundle, serve it the same way, then run the test. If it now fails locally, you've isolated an env/build difference.
52
+
53
+ ### 4. Verify commit SHA before trusting CI results
54
+
55
+ After pushing, confirm the CI run's `headSha` matches your latest commit:
56
+
57
+ ```bash
58
+ gh run list --branch "$(git branch --show-current)" --limit 1 --json headSha,status,conclusion
59
+ git rev-parse HEAD
60
+ ```
61
+
62
+ Bots (review-response, auto-update, dependabot) can push commits between your push and the CI run, overwriting your changes. A green check on a stale SHA tells you nothing about your fix.
63
+
64
+ ## Patterns That Eliminate Flake
65
+
66
+ ### Never use fixed waits before interactions
67
+
68
+ `waitForTimeout()` as the sole wait before a click is a silent failure waiting to happen — animations and rendering take variable time, especially on slower CI runners. Poll for the expected state, then act.
69
+
70
+ ```typescript
71
+ // BAD — fixed wait; click silently fails if element not yet visible
72
+ await clickVisibleText(page, "Translate");
73
+ await page.waitForTimeout(1000);
74
+ await clickVisibleText(page, "Spanish");
75
+
76
+ // GOOD — poll for visibility, then click
77
+ await clickVisibleText(page, "Translate");
78
+ await expect
79
+ .poll(() => hasVisibleText(page, "Spanish"), { timeout: TIMEOUT.expect })
80
+ .toBe(true);
81
+ await clickVisibleText(page, "Spanish");
82
+ ```
83
+
84
+ ### Never silently swallow click return values
85
+
86
+ Any helper that can return `false` on a missed click (e.g., `clickVisibleText`) should either have its return value asserted or be preceded by a visibility poll. A click that silently returns `false` is a hidden test bug — the test proceeds as if the click happened and fails downstream with a confusing error.
87
+
88
+ ```typescript
89
+ // BAD — return value ignored; test continues on failed click
90
+ await clickVisibleText(page, "Submit");
91
+
92
+ // GOOD — assert the click happened
93
+ expect(await clickVisibleText(page, "Submit")).toBe(true);
94
+
95
+ // GOOD — precede with visibility poll
96
+ await expect
97
+ .poll(() => hasVisibleText(page, "Submit"), { timeout: TIMEOUT.expect })
98
+ .toBe(true);
99
+ await clickVisibleText(page, "Submit");
100
+ ```
101
+
102
+ ### E2E tests must not depend on external API success
103
+
104
+ Any test that calls an external service (AWS Bedrock, third-party APIs, rate-limited providers) must handle the failure case. Tests should verify UI behavior, not external service uptime. If an external call might fail, the test must accept both outcomes or skip the dependent assertion.
105
+
106
+ ```typescript
107
+ // BAD — assumes translation always succeeds
108
+ await expect
109
+ .poll(() => hasVisibleText(page, "Show Original"), { timeout: TIMEOUT.expect })
110
+ .toBe(true);
111
+
112
+ // GOOD — handle both success and failure
113
+ await expect
114
+ .poll(
115
+ async () =>
116
+ (await hasVisibleText(page, "Show Original")) ||
117
+ (await hasVisibleText(page, "Translate")),
118
+ { timeout: TIMEOUT.expect }
119
+ )
120
+ .toBe(true);
121
+
122
+ const translated = await hasVisibleText(page, "Show Original");
123
+ if (!translated) return; // External API failed; skip downstream assertions
124
+ ```
125
+
126
+ The alternative — mocking the external call — is a valid approach when the goal is to test the UI's handling of a successful response. Pick one strategy per test and commit to it.
127
+
128
+ ### E2E assertions must not depend on specific test data
129
+
130
+ Do not assert specific text (e.g., "No lists detected") when the test user's data state varies across environments. If a zero-row state could have different empty-state messages depending on the user's data, either check for multiple possible states or skip the assertion entirely.
131
+
132
+ See the `playwright-selectors` skill's "Data independence" section for authoring patterns that avoid this class of bug in the first place.
133
+
134
+ ## Escalation
135
+
136
+ If you've worked through steps 1–4 and still cannot explain the failure:
137
+
138
+ - Do NOT disable, skip, or `.fixme` the test to unblock the PR.
139
+ - Do NOT use `--admin` or force-merge to bypass the check.
140
+ - Escalate to a human with: the failing test name, your local reproduction attempt, the network trace, and the commit SHA verification. A real flake that cannot be root-caused is a legitimate reason to pause; it is never a reason to merge red.
@@ -0,0 +1,4 @@
1
+ display_name: "Playwright CI Debugging"
2
+ short_description: "Debug Playwright E2E tests that…"
3
+ default_prompt:
4
+ - "Use $playwright-ci-debugging: Debug Playwright E2E tests that…."