@codyswann/lisa 2.121.1 → 2.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (846) hide show
  1. package/.claude-plugin/marketplace.json +144 -0
  2. package/dist/agy/agents-md-installer.d.ts +6 -3
  3. package/dist/agy/agents-md-installer.d.ts.map +1 -1
  4. package/dist/agy/agents-md-installer.js +9 -4
  5. package/dist/agy/agents-md-installer.js.map +1 -1
  6. package/dist/agy/plugin-installer.d.ts +6 -4
  7. package/dist/agy/plugin-installer.d.ts.map +1 -1
  8. package/dist/agy/plugin-installer.js +7 -5
  9. package/dist/agy/plugin-installer.js.map +1 -1
  10. package/dist/copilot/plugin-installer.d.ts +6 -3
  11. package/dist/copilot/plugin-installer.d.ts.map +1 -1
  12. package/dist/copilot/plugin-installer.js +7 -4
  13. package/dist/copilot/plugin-installer.js.map +1 -1
  14. package/dist/core/lisa.d.ts +16 -0
  15. package/dist/core/lisa.d.ts.map +1 -1
  16. package/dist/core/lisa.js +61 -18
  17. package/dist/core/lisa.js.map +1 -1
  18. package/package.json +1 -1
  19. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-agy/plugin.json +1 -1
  22. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cdk-agy/plugin.json +11 -0
  25. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +11 -0
  26. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +11 -0
  27. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo-agy/.mcp.json +8 -0
  32. package/plugins/lisa-expo-agy/THIRD-PARTY-NOTICES.md +57 -0
  33. package/plugins/lisa-expo-agy/agents/ops-specialist.md +124 -0
  34. package/plugins/lisa-expo-agy/commands/e2e-coverage-gaps.md +7 -0
  35. package/plugins/lisa-expo-agy/commands/exploratory-qa.md +7 -0
  36. package/plugins/lisa-expo-agy/plugin.json +11 -0
  37. package/plugins/lisa-expo-agy/skills/add-app-clip/SKILL.md +280 -0
  38. package/plugins/lisa-expo-agy/skills/add-app-clip/references/native-module.md +96 -0
  39. package/plugins/lisa-expo-agy/skills/apollo-client/SKILL.md +238 -0
  40. package/plugins/lisa-expo-agy/skills/apollo-client/references/mutation-patterns.md +360 -0
  41. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/SKILL.md +360 -0
  42. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  43. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  44. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  45. package/plugins/lisa-expo-agy/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  46. package/plugins/lisa-expo-agy/skills/building-native-ui/SKILL.md +321 -0
  47. package/plugins/lisa-expo-agy/skills/building-native-ui/references/animations.md +220 -0
  48. package/plugins/lisa-expo-agy/skills/building-native-ui/references/controls.md +272 -0
  49. package/plugins/lisa-expo-agy/skills/building-native-ui/references/form-sheet.md +253 -0
  50. package/plugins/lisa-expo-agy/skills/building-native-ui/references/gradients.md +106 -0
  51. package/plugins/lisa-expo-agy/skills/building-native-ui/references/icons.md +213 -0
  52. package/plugins/lisa-expo-agy/skills/building-native-ui/references/media.md +198 -0
  53. package/plugins/lisa-expo-agy/skills/building-native-ui/references/route-structure.md +229 -0
  54. package/plugins/lisa-expo-agy/skills/building-native-ui/references/search.md +248 -0
  55. package/plugins/lisa-expo-agy/skills/building-native-ui/references/storage.md +121 -0
  56. package/plugins/lisa-expo-agy/skills/building-native-ui/references/tabs.md +433 -0
  57. package/plugins/lisa-expo-agy/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  58. package/plugins/lisa-expo-agy/skills/building-native-ui/references/visual-effects.md +197 -0
  59. package/plugins/lisa-expo-agy/skills/building-native-ui/references/webgpu-three.md +605 -0
  60. package/plugins/lisa-expo-agy/skills/building-native-ui/references/zoom-transitions.md +158 -0
  61. package/plugins/lisa-expo-agy/skills/container-view-pattern/SKILL.md +299 -0
  62. package/plugins/lisa-expo-agy/skills/container-view-pattern/references/examples.md +749 -0
  63. package/plugins/lisa-expo-agy/skills/container-view-pattern/references/patterns.md +318 -0
  64. package/plugins/lisa-expo-agy/skills/container-view-pattern/scripts/create_component.py +200 -0
  65. package/plugins/lisa-expo-agy/skills/container-view-pattern/scripts/validate_component.py +209 -0
  66. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/SKILL.md +268 -0
  67. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  68. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  69. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  70. package/plugins/lisa-expo-agy/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  71. package/plugins/lisa-expo-agy/skills/directory-structure/SKILL.md +202 -0
  72. package/plugins/lisa-expo-agy/skills/directory-structure/scripts/validate_structure.py +445 -0
  73. package/plugins/lisa-expo-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
  74. package/plugins/lisa-expo-agy/skills/eas-update-insights/SKILL.md +228 -0
  75. package/plugins/lisa-expo-agy/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  76. package/plugins/lisa-expo-agy/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  77. package/plugins/lisa-expo-agy/skills/exploratory-qa/SKILL.md +145 -0
  78. package/plugins/lisa-expo-agy/skills/expo-api-routes/SKILL.md +369 -0
  79. package/plugins/lisa-expo-agy/skills/expo-brownfield/SKILL.md +54 -0
  80. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  81. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  82. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/comparison.md +63 -0
  83. package/plugins/lisa-expo-agy/skills/expo-brownfield/references/troubleshooting.md +88 -0
  84. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/SKILL.md +92 -0
  85. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  86. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/package.json +11 -0
  87. package/plugins/lisa-expo-agy/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  88. package/plugins/lisa-expo-agy/skills/expo-deployment/SKILL.md +190 -0
  89. package/plugins/lisa-expo-agy/skills/expo-deployment/references/app-store-metadata.md +479 -0
  90. package/plugins/lisa-expo-agy/skills/expo-deployment/references/ios-app-store.md +355 -0
  91. package/plugins/lisa-expo-agy/skills/expo-deployment/references/play-store.md +246 -0
  92. package/plugins/lisa-expo-agy/skills/expo-deployment/references/testflight.md +58 -0
  93. package/plugins/lisa-expo-agy/skills/expo-deployment/references/workflows.md +200 -0
  94. package/plugins/lisa-expo-agy/skills/expo-dev-client/SKILL.md +164 -0
  95. package/plugins/lisa-expo-agy/skills/expo-env-config/SKILL.md +309 -0
  96. package/plugins/lisa-expo-agy/skills/expo-env-config/references/validation-patterns.md +417 -0
  97. package/plugins/lisa-expo-agy/skills/expo-module/SKILL.md +141 -0
  98. package/plugins/lisa-expo-agy/skills/expo-module/references/config-plugin.md +90 -0
  99. package/plugins/lisa-expo-agy/skills/expo-module/references/create-expo-module.md +206 -0
  100. package/plugins/lisa-expo-agy/skills/expo-module/references/lifecycle.md +127 -0
  101. package/plugins/lisa-expo-agy/skills/expo-module/references/module-config.md +48 -0
  102. package/plugins/lisa-expo-agy/skills/expo-module/references/native-module.md +286 -0
  103. package/plugins/lisa-expo-agy/skills/expo-module/references/native-view.md +171 -0
  104. package/plugins/lisa-expo-agy/skills/expo-router-best-practices/SKILL.md +431 -0
  105. package/plugins/lisa-expo-agy/skills/expo-router-best-practices/references/official-docs.md +290 -0
  106. package/plugins/lisa-expo-agy/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  107. package/plugins/lisa-expo-agy/skills/expo-tailwind-setup/SKILL.md +480 -0
  108. package/plugins/lisa-expo-agy/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  109. package/plugins/lisa-expo-agy/skills/expo-ui-swift-ui/SKILL.md +39 -0
  110. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/SKILL.md +411 -0
  111. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  112. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  113. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  114. package/plugins/lisa-expo-agy/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  115. package/plugins/lisa-expo-agy/skills/jira-add-journey/SKILL.md +126 -0
  116. package/plugins/lisa-expo-agy/skills/jira-create/SKILL.md +161 -0
  117. package/plugins/lisa-expo-agy/skills/jira-evidence/SKILL.md +78 -0
  118. package/plugins/lisa-expo-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  119. package/plugins/lisa-expo-agy/skills/jira-journey/SKILL.md +190 -0
  120. package/plugins/lisa-expo-agy/skills/jira-journey/scripts/generate-templates.py +281 -0
  121. package/plugins/lisa-expo-agy/skills/jira-journey/scripts/parse-plan.py +368 -0
  122. package/plugins/lisa-expo-agy/skills/jira-verify/SKILL.md +27 -0
  123. package/plugins/lisa-expo-agy/skills/local-state/SKILL.md +362 -0
  124. package/plugins/lisa-expo-agy/skills/local-state/references/async-storage.md +505 -0
  125. package/plugins/lisa-expo-agy/skills/local-state/references/persistence-patterns.md +711 -0
  126. package/plugins/lisa-expo-agy/skills/local-state/references/reactive-variables.md +446 -0
  127. package/plugins/lisa-expo-agy/skills/native-data-fetching/SKILL.md +507 -0
  128. package/plugins/lisa-expo-agy/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  129. package/plugins/lisa-expo-agy/skills/ops-browser-uat/SKILL.md +124 -0
  130. package/plugins/lisa-expo-agy/skills/ops-check-logs/SKILL.md +211 -0
  131. package/plugins/lisa-expo-agy/skills/ops-db-ops/SKILL.md +119 -0
  132. package/plugins/lisa-expo-agy/skills/ops-deploy/SKILL.md +119 -0
  133. package/plugins/lisa-expo-agy/skills/ops-monitor-errors/SKILL.md +99 -0
  134. package/plugins/lisa-expo-agy/skills/ops-performance/SKILL.md +165 -0
  135. package/plugins/lisa-expo-agy/skills/ops-run-local/SKILL.md +166 -0
  136. package/plugins/lisa-expo-agy/skills/ops-verify-health/SKILL.md +101 -0
  137. package/plugins/lisa-expo-agy/skills/owasp-zap/SKILL.md +56 -0
  138. package/plugins/lisa-expo-agy/skills/playwright-ci-debugging/SKILL.md +140 -0
  139. package/plugins/lisa-expo-agy/skills/playwright-selectors/SKILL.md +455 -0
  140. package/plugins/lisa-expo-agy/skills/reduce-complexity/SKILL.md +251 -0
  141. package/plugins/lisa-expo-agy/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  142. package/plugins/lisa-expo-agy/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  143. package/plugins/lisa-expo-agy/skills/testing-library/SKILL.md +314 -0
  144. package/plugins/lisa-expo-agy/skills/testing-library/references/async-patterns.md +420 -0
  145. package/plugins/lisa-expo-agy/skills/testing-library/references/expo-router-testing.md +556 -0
  146. package/plugins/lisa-expo-agy/skills/testing-library/references/mocking-patterns.md +590 -0
  147. package/plugins/lisa-expo-agy/skills/testing-library/references/query-priority.md +291 -0
  148. package/plugins/lisa-expo-agy/skills/upgrading-expo/SKILL.md +134 -0
  149. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  150. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  151. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/native-tabs.md +124 -0
  152. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/new-architecture.md +79 -0
  153. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-19.md +79 -0
  154. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-compiler.md +59 -0
  155. package/plugins/lisa-expo-agy/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  156. package/plugins/lisa-expo-agy/skills/use-dom/SKILL.md +417 -0
  157. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +11 -0
  158. package/plugins/lisa-expo-copilot/.mcp.json +8 -0
  159. package/plugins/lisa-expo-copilot/THIRD-PARTY-NOTICES.md +57 -0
  160. package/plugins/lisa-expo-copilot/agents/ops-specialist.agent.md +124 -0
  161. package/plugins/lisa-expo-copilot/commands/e2e-coverage-gaps.md +7 -0
  162. package/plugins/lisa-expo-copilot/commands/exploratory-qa.md +7 -0
  163. package/plugins/lisa-expo-copilot/skills/add-app-clip/SKILL.md +280 -0
  164. package/plugins/lisa-expo-copilot/skills/add-app-clip/references/native-module.md +96 -0
  165. package/plugins/lisa-expo-copilot/skills/apollo-client/SKILL.md +238 -0
  166. package/plugins/lisa-expo-copilot/skills/apollo-client/references/mutation-patterns.md +360 -0
  167. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/SKILL.md +360 -0
  168. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  169. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  170. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  171. package/plugins/lisa-expo-copilot/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  172. package/plugins/lisa-expo-copilot/skills/building-native-ui/SKILL.md +321 -0
  173. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/animations.md +220 -0
  174. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/controls.md +272 -0
  175. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/form-sheet.md +253 -0
  176. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/gradients.md +106 -0
  177. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/icons.md +213 -0
  178. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/media.md +198 -0
  179. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/route-structure.md +229 -0
  180. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/search.md +248 -0
  181. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/storage.md +121 -0
  182. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/tabs.md +433 -0
  183. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  184. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/visual-effects.md +197 -0
  185. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/webgpu-three.md +605 -0
  186. package/plugins/lisa-expo-copilot/skills/building-native-ui/references/zoom-transitions.md +158 -0
  187. package/plugins/lisa-expo-copilot/skills/container-view-pattern/SKILL.md +299 -0
  188. package/plugins/lisa-expo-copilot/skills/container-view-pattern/references/examples.md +749 -0
  189. package/plugins/lisa-expo-copilot/skills/container-view-pattern/references/patterns.md +318 -0
  190. package/plugins/lisa-expo-copilot/skills/container-view-pattern/scripts/create_component.py +200 -0
  191. package/plugins/lisa-expo-copilot/skills/container-view-pattern/scripts/validate_component.py +209 -0
  192. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/SKILL.md +268 -0
  193. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  194. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  195. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  196. package/plugins/lisa-expo-copilot/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  197. package/plugins/lisa-expo-copilot/skills/directory-structure/SKILL.md +202 -0
  198. package/plugins/lisa-expo-copilot/skills/directory-structure/scripts/validate_structure.py +445 -0
  199. package/plugins/lisa-expo-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
  200. package/plugins/lisa-expo-copilot/skills/eas-update-insights/SKILL.md +228 -0
  201. package/plugins/lisa-expo-copilot/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  202. package/plugins/lisa-expo-copilot/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  203. package/plugins/lisa-expo-copilot/skills/exploratory-qa/SKILL.md +145 -0
  204. package/plugins/lisa-expo-copilot/skills/expo-api-routes/SKILL.md +369 -0
  205. package/plugins/lisa-expo-copilot/skills/expo-brownfield/SKILL.md +54 -0
  206. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  207. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  208. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/comparison.md +63 -0
  209. package/plugins/lisa-expo-copilot/skills/expo-brownfield/references/troubleshooting.md +88 -0
  210. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/SKILL.md +92 -0
  211. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  212. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/package.json +11 -0
  213. package/plugins/lisa-expo-copilot/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  214. package/plugins/lisa-expo-copilot/skills/expo-deployment/SKILL.md +190 -0
  215. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/app-store-metadata.md +479 -0
  216. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/ios-app-store.md +355 -0
  217. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/play-store.md +246 -0
  218. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/testflight.md +58 -0
  219. package/plugins/lisa-expo-copilot/skills/expo-deployment/references/workflows.md +200 -0
  220. package/plugins/lisa-expo-copilot/skills/expo-dev-client/SKILL.md +164 -0
  221. package/plugins/lisa-expo-copilot/skills/expo-env-config/SKILL.md +309 -0
  222. package/plugins/lisa-expo-copilot/skills/expo-env-config/references/validation-patterns.md +417 -0
  223. package/plugins/lisa-expo-copilot/skills/expo-module/SKILL.md +141 -0
  224. package/plugins/lisa-expo-copilot/skills/expo-module/references/config-plugin.md +90 -0
  225. package/plugins/lisa-expo-copilot/skills/expo-module/references/create-expo-module.md +206 -0
  226. package/plugins/lisa-expo-copilot/skills/expo-module/references/lifecycle.md +127 -0
  227. package/plugins/lisa-expo-copilot/skills/expo-module/references/module-config.md +48 -0
  228. package/plugins/lisa-expo-copilot/skills/expo-module/references/native-module.md +286 -0
  229. package/plugins/lisa-expo-copilot/skills/expo-module/references/native-view.md +171 -0
  230. package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/SKILL.md +431 -0
  231. package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/references/official-docs.md +290 -0
  232. package/plugins/lisa-expo-copilot/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  233. package/plugins/lisa-expo-copilot/skills/expo-tailwind-setup/SKILL.md +480 -0
  234. package/plugins/lisa-expo-copilot/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  235. package/plugins/lisa-expo-copilot/skills/expo-ui-swift-ui/SKILL.md +39 -0
  236. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/SKILL.md +411 -0
  237. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  238. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  239. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  240. package/plugins/lisa-expo-copilot/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  241. package/plugins/lisa-expo-copilot/skills/jira-add-journey/SKILL.md +126 -0
  242. package/plugins/lisa-expo-copilot/skills/jira-create/SKILL.md +161 -0
  243. package/plugins/lisa-expo-copilot/skills/jira-evidence/SKILL.md +78 -0
  244. package/plugins/lisa-expo-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  245. package/plugins/lisa-expo-copilot/skills/jira-journey/SKILL.md +190 -0
  246. package/plugins/lisa-expo-copilot/skills/jira-journey/scripts/generate-templates.py +281 -0
  247. package/plugins/lisa-expo-copilot/skills/jira-journey/scripts/parse-plan.py +368 -0
  248. package/plugins/lisa-expo-copilot/skills/jira-verify/SKILL.md +27 -0
  249. package/plugins/lisa-expo-copilot/skills/local-state/SKILL.md +362 -0
  250. package/plugins/lisa-expo-copilot/skills/local-state/references/async-storage.md +505 -0
  251. package/plugins/lisa-expo-copilot/skills/local-state/references/persistence-patterns.md +711 -0
  252. package/plugins/lisa-expo-copilot/skills/local-state/references/reactive-variables.md +446 -0
  253. package/plugins/lisa-expo-copilot/skills/native-data-fetching/SKILL.md +507 -0
  254. package/plugins/lisa-expo-copilot/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  255. package/plugins/lisa-expo-copilot/skills/ops-browser-uat/SKILL.md +124 -0
  256. package/plugins/lisa-expo-copilot/skills/ops-check-logs/SKILL.md +211 -0
  257. package/plugins/lisa-expo-copilot/skills/ops-db-ops/SKILL.md +119 -0
  258. package/plugins/lisa-expo-copilot/skills/ops-deploy/SKILL.md +119 -0
  259. package/plugins/lisa-expo-copilot/skills/ops-monitor-errors/SKILL.md +99 -0
  260. package/plugins/lisa-expo-copilot/skills/ops-performance/SKILL.md +165 -0
  261. package/plugins/lisa-expo-copilot/skills/ops-run-local/SKILL.md +166 -0
  262. package/plugins/lisa-expo-copilot/skills/ops-verify-health/SKILL.md +101 -0
  263. package/plugins/lisa-expo-copilot/skills/owasp-zap/SKILL.md +56 -0
  264. package/plugins/lisa-expo-copilot/skills/playwright-ci-debugging/SKILL.md +140 -0
  265. package/plugins/lisa-expo-copilot/skills/playwright-selectors/SKILL.md +455 -0
  266. package/plugins/lisa-expo-copilot/skills/reduce-complexity/SKILL.md +251 -0
  267. package/plugins/lisa-expo-copilot/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  268. package/plugins/lisa-expo-copilot/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  269. package/plugins/lisa-expo-copilot/skills/testing-library/SKILL.md +314 -0
  270. package/plugins/lisa-expo-copilot/skills/testing-library/references/async-patterns.md +420 -0
  271. package/plugins/lisa-expo-copilot/skills/testing-library/references/expo-router-testing.md +556 -0
  272. package/plugins/lisa-expo-copilot/skills/testing-library/references/mocking-patterns.md +590 -0
  273. package/plugins/lisa-expo-copilot/skills/testing-library/references/query-priority.md +291 -0
  274. package/plugins/lisa-expo-copilot/skills/upgrading-expo/SKILL.md +134 -0
  275. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  276. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  277. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/native-tabs.md +124 -0
  278. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/new-architecture.md +79 -0
  279. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-19.md +79 -0
  280. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-compiler.md +59 -0
  281. package/plugins/lisa-expo-copilot/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  282. package/plugins/lisa-expo-copilot/skills/use-dom/SKILL.md +417 -0
  283. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +11 -0
  284. package/plugins/lisa-expo-cursor/.mcp.json +8 -0
  285. package/plugins/lisa-expo-cursor/THIRD-PARTY-NOTICES.md +57 -0
  286. package/plugins/lisa-expo-cursor/agents/ops-specialist.md +124 -0
  287. package/plugins/lisa-expo-cursor/commands/e2e-coverage-gaps.md +7 -0
  288. package/plugins/lisa-expo-cursor/commands/exploratory-qa.md +7 -0
  289. package/plugins/lisa-expo-cursor/skills/add-app-clip/SKILL.md +280 -0
  290. package/plugins/lisa-expo-cursor/skills/add-app-clip/references/native-module.md +96 -0
  291. package/plugins/lisa-expo-cursor/skills/apollo-client/SKILL.md +238 -0
  292. package/plugins/lisa-expo-cursor/skills/apollo-client/references/mutation-patterns.md +360 -0
  293. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/SKILL.md +360 -0
  294. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  295. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  296. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  297. package/plugins/lisa-expo-cursor/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +329 -0
  298. package/plugins/lisa-expo-cursor/skills/building-native-ui/SKILL.md +321 -0
  299. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/animations.md +220 -0
  300. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/controls.md +272 -0
  301. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/form-sheet.md +253 -0
  302. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/gradients.md +106 -0
  303. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/icons.md +213 -0
  304. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/media.md +198 -0
  305. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/route-structure.md +229 -0
  306. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/search.md +248 -0
  307. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/storage.md +121 -0
  308. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/tabs.md +433 -0
  309. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  310. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/visual-effects.md +197 -0
  311. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/webgpu-three.md +605 -0
  312. package/plugins/lisa-expo-cursor/skills/building-native-ui/references/zoom-transitions.md +158 -0
  313. package/plugins/lisa-expo-cursor/skills/container-view-pattern/SKILL.md +299 -0
  314. package/plugins/lisa-expo-cursor/skills/container-view-pattern/references/examples.md +749 -0
  315. package/plugins/lisa-expo-cursor/skills/container-view-pattern/references/patterns.md +318 -0
  316. package/plugins/lisa-expo-cursor/skills/container-view-pattern/scripts/create_component.py +200 -0
  317. package/plugins/lisa-expo-cursor/skills/container-view-pattern/scripts/validate_component.py +209 -0
  318. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/SKILL.md +268 -0
  319. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  320. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  321. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  322. package/plugins/lisa-expo-cursor/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  323. package/plugins/lisa-expo-cursor/skills/directory-structure/SKILL.md +202 -0
  324. package/plugins/lisa-expo-cursor/skills/directory-structure/scripts/validate_structure.py +445 -0
  325. package/plugins/lisa-expo-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
  326. package/plugins/lisa-expo-cursor/skills/eas-update-insights/SKILL.md +228 -0
  327. package/plugins/lisa-expo-cursor/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  328. package/plugins/lisa-expo-cursor/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  329. package/plugins/lisa-expo-cursor/skills/exploratory-qa/SKILL.md +145 -0
  330. package/plugins/lisa-expo-cursor/skills/expo-api-routes/SKILL.md +369 -0
  331. package/plugins/lisa-expo-cursor/skills/expo-brownfield/SKILL.md +54 -0
  332. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  333. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  334. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/comparison.md +63 -0
  335. package/plugins/lisa-expo-cursor/skills/expo-brownfield/references/troubleshooting.md +88 -0
  336. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/SKILL.md +92 -0
  337. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  338. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/package.json +11 -0
  339. package/plugins/lisa-expo-cursor/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  340. package/plugins/lisa-expo-cursor/skills/expo-deployment/SKILL.md +190 -0
  341. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/app-store-metadata.md +479 -0
  342. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/ios-app-store.md +355 -0
  343. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/play-store.md +246 -0
  344. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/testflight.md +58 -0
  345. package/plugins/lisa-expo-cursor/skills/expo-deployment/references/workflows.md +200 -0
  346. package/plugins/lisa-expo-cursor/skills/expo-dev-client/SKILL.md +164 -0
  347. package/plugins/lisa-expo-cursor/skills/expo-env-config/SKILL.md +309 -0
  348. package/plugins/lisa-expo-cursor/skills/expo-env-config/references/validation-patterns.md +417 -0
  349. package/plugins/lisa-expo-cursor/skills/expo-module/SKILL.md +141 -0
  350. package/plugins/lisa-expo-cursor/skills/expo-module/references/config-plugin.md +90 -0
  351. package/plugins/lisa-expo-cursor/skills/expo-module/references/create-expo-module.md +206 -0
  352. package/plugins/lisa-expo-cursor/skills/expo-module/references/lifecycle.md +127 -0
  353. package/plugins/lisa-expo-cursor/skills/expo-module/references/module-config.md +48 -0
  354. package/plugins/lisa-expo-cursor/skills/expo-module/references/native-module.md +286 -0
  355. package/plugins/lisa-expo-cursor/skills/expo-module/references/native-view.md +171 -0
  356. package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/SKILL.md +431 -0
  357. package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/references/official-docs.md +290 -0
  358. package/plugins/lisa-expo-cursor/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  359. package/plugins/lisa-expo-cursor/skills/expo-tailwind-setup/SKILL.md +480 -0
  360. package/plugins/lisa-expo-cursor/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  361. package/plugins/lisa-expo-cursor/skills/expo-ui-swift-ui/SKILL.md +39 -0
  362. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/SKILL.md +411 -0
  363. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  364. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  365. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  366. package/plugins/lisa-expo-cursor/skills/gluestack-nativewind/scripts/validate_styling.py +315 -0
  367. package/plugins/lisa-expo-cursor/skills/jira-add-journey/SKILL.md +126 -0
  368. package/plugins/lisa-expo-cursor/skills/jira-create/SKILL.md +161 -0
  369. package/plugins/lisa-expo-cursor/skills/jira-evidence/SKILL.md +78 -0
  370. package/plugins/lisa-expo-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  371. package/plugins/lisa-expo-cursor/skills/jira-journey/SKILL.md +190 -0
  372. package/plugins/lisa-expo-cursor/skills/jira-journey/scripts/generate-templates.py +281 -0
  373. package/plugins/lisa-expo-cursor/skills/jira-journey/scripts/parse-plan.py +368 -0
  374. package/plugins/lisa-expo-cursor/skills/jira-verify/SKILL.md +27 -0
  375. package/plugins/lisa-expo-cursor/skills/local-state/SKILL.md +362 -0
  376. package/plugins/lisa-expo-cursor/skills/local-state/references/async-storage.md +505 -0
  377. package/plugins/lisa-expo-cursor/skills/local-state/references/persistence-patterns.md +711 -0
  378. package/plugins/lisa-expo-cursor/skills/local-state/references/reactive-variables.md +446 -0
  379. package/plugins/lisa-expo-cursor/skills/native-data-fetching/SKILL.md +507 -0
  380. package/plugins/lisa-expo-cursor/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  381. package/plugins/lisa-expo-cursor/skills/ops-browser-uat/SKILL.md +124 -0
  382. package/plugins/lisa-expo-cursor/skills/ops-check-logs/SKILL.md +211 -0
  383. package/plugins/lisa-expo-cursor/skills/ops-db-ops/SKILL.md +119 -0
  384. package/plugins/lisa-expo-cursor/skills/ops-deploy/SKILL.md +119 -0
  385. package/plugins/lisa-expo-cursor/skills/ops-monitor-errors/SKILL.md +99 -0
  386. package/plugins/lisa-expo-cursor/skills/ops-performance/SKILL.md +165 -0
  387. package/plugins/lisa-expo-cursor/skills/ops-run-local/SKILL.md +166 -0
  388. package/plugins/lisa-expo-cursor/skills/ops-verify-health/SKILL.md +101 -0
  389. package/plugins/lisa-expo-cursor/skills/owasp-zap/SKILL.md +56 -0
  390. package/plugins/lisa-expo-cursor/skills/playwright-ci-debugging/SKILL.md +140 -0
  391. package/plugins/lisa-expo-cursor/skills/playwright-selectors/SKILL.md +455 -0
  392. package/plugins/lisa-expo-cursor/skills/reduce-complexity/SKILL.md +251 -0
  393. package/plugins/lisa-expo-cursor/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  394. package/plugins/lisa-expo-cursor/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  395. package/plugins/lisa-expo-cursor/skills/testing-library/SKILL.md +314 -0
  396. package/plugins/lisa-expo-cursor/skills/testing-library/references/async-patterns.md +420 -0
  397. package/plugins/lisa-expo-cursor/skills/testing-library/references/expo-router-testing.md +556 -0
  398. package/plugins/lisa-expo-cursor/skills/testing-library/references/mocking-patterns.md +590 -0
  399. package/plugins/lisa-expo-cursor/skills/testing-library/references/query-priority.md +291 -0
  400. package/plugins/lisa-expo-cursor/skills/upgrading-expo/SKILL.md +134 -0
  401. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  402. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  403. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/native-tabs.md +124 -0
  404. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/new-architecture.md +79 -0
  405. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-19.md +79 -0
  406. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-compiler.md +59 -0
  407. package/plugins/lisa-expo-cursor/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  408. package/plugins/lisa-expo-cursor/skills/use-dom/SKILL.md +417 -0
  409. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  410. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  411. package/plugins/lisa-harper-fabric-agy/commands/e2e-coverage-gaps.md +7 -0
  412. package/plugins/lisa-harper-fabric-agy/commands/exploratory-qa.md +7 -0
  413. package/plugins/lisa-harper-fabric-agy/plugin.json +11 -0
  414. package/plugins/lisa-harper-fabric-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
  415. package/plugins/lisa-harper-fabric-agy/skills/exploratory-qa/SKILL.md +145 -0
  416. package/plugins/lisa-harper-fabric-agy/skills/harper-build-and-deploy/SKILL.md +101 -0
  417. package/plugins/lisa-harper-fabric-agy/skills/harper-component-model/SKILL.md +87 -0
  418. package/plugins/lisa-harper-fabric-agy/skills/harper-config-yaml/SKILL.md +107 -0
  419. package/plugins/lisa-harper-fabric-agy/skills/harper-resources/SKILL.md +106 -0
  420. package/plugins/lisa-harper-fabric-agy/skills/harper-schema-graphql/SKILL.md +72 -0
  421. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +35 -0
  422. package/plugins/lisa-harper-fabric-copilot/commands/e2e-coverage-gaps.md +7 -0
  423. package/plugins/lisa-harper-fabric-copilot/commands/exploratory-qa.md +7 -0
  424. package/plugins/lisa-harper-fabric-copilot/hooks/inject-rules.sh +16 -0
  425. package/plugins/lisa-harper-fabric-copilot/rules/harper-fabric.md +51 -0
  426. package/plugins/lisa-harper-fabric-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
  427. package/plugins/lisa-harper-fabric-copilot/skills/exploratory-qa/SKILL.md +145 -0
  428. package/plugins/lisa-harper-fabric-copilot/skills/harper-build-and-deploy/SKILL.md +101 -0
  429. package/plugins/lisa-harper-fabric-copilot/skills/harper-component-model/SKILL.md +87 -0
  430. package/plugins/lisa-harper-fabric-copilot/skills/harper-config-yaml/SKILL.md +107 -0
  431. package/plugins/lisa-harper-fabric-copilot/skills/harper-resources/SKILL.md +106 -0
  432. package/plugins/lisa-harper-fabric-copilot/skills/harper-schema-graphql/SKILL.md +72 -0
  433. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +11 -0
  434. package/plugins/lisa-harper-fabric-cursor/commands/e2e-coverage-gaps.md +7 -0
  435. package/plugins/lisa-harper-fabric-cursor/commands/exploratory-qa.md +7 -0
  436. package/plugins/lisa-harper-fabric-cursor/rules/harper-fabric.md +51 -0
  437. package/plugins/lisa-harper-fabric-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
  438. package/plugins/lisa-harper-fabric-cursor/skills/exploratory-qa/SKILL.md +145 -0
  439. package/plugins/lisa-harper-fabric-cursor/skills/harper-build-and-deploy/SKILL.md +101 -0
  440. package/plugins/lisa-harper-fabric-cursor/skills/harper-component-model/SKILL.md +87 -0
  441. package/plugins/lisa-harper-fabric-cursor/skills/harper-config-yaml/SKILL.md +107 -0
  442. package/plugins/lisa-harper-fabric-cursor/skills/harper-resources/SKILL.md +106 -0
  443. package/plugins/lisa-harper-fabric-cursor/skills/harper-schema-graphql/SKILL.md +72 -0
  444. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  445. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  446. package/plugins/lisa-nestjs-agy/plugin.json +11 -0
  447. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/SKILL.md +176 -0
  448. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/advanced-features.md +527 -0
  449. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/project-patterns.md +531 -0
  450. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/quick-start.md +257 -0
  451. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  452. package/plugins/lisa-nestjs-agy/skills/nestjs-graphql/references/types-scalars.md +513 -0
  453. package/plugins/lisa-nestjs-agy/skills/nestjs-rules/SKILL.md +565 -0
  454. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/SKILL.md +275 -0
  455. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  456. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  457. package/plugins/lisa-nestjs-agy/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  458. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +24 -0
  459. package/plugins/lisa-nestjs-copilot/hooks/block-migration-edits.sh +60 -0
  460. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/SKILL.md +176 -0
  461. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/advanced-features.md +527 -0
  462. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/project-patterns.md +531 -0
  463. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/quick-start.md +257 -0
  464. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  465. package/plugins/lisa-nestjs-copilot/skills/nestjs-graphql/references/types-scalars.md +513 -0
  466. package/plugins/lisa-nestjs-copilot/skills/nestjs-rules/SKILL.md +565 -0
  467. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/SKILL.md +275 -0
  468. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  469. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  470. package/plugins/lisa-nestjs-copilot/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  471. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +24 -0
  472. package/plugins/lisa-nestjs-cursor/hooks/block-migration-edits.sh +60 -0
  473. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/SKILL.md +176 -0
  474. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/advanced-features.md +527 -0
  475. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/project-patterns.md +531 -0
  476. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/quick-start.md +257 -0
  477. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  478. package/plugins/lisa-nestjs-cursor/skills/nestjs-graphql/references/types-scalars.md +513 -0
  479. package/plugins/lisa-nestjs-cursor/skills/nestjs-rules/SKILL.md +565 -0
  480. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/SKILL.md +275 -0
  481. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  482. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  483. package/plugins/lisa-nestjs-cursor/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  484. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  485. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  486. package/plugins/lisa-openclaw-agy/commands/connect-repo-topic.md +7 -0
  487. package/plugins/lisa-openclaw-agy/commands/connect-staff-slack.md +7 -0
  488. package/plugins/lisa-openclaw-agy/commands/connect-staff-telegram.md +7 -0
  489. package/plugins/lisa-openclaw-agy/commands/setup-openclaw.md +7 -0
  490. package/plugins/lisa-openclaw-agy/plugin.json +8 -0
  491. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  492. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  493. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  494. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  495. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  496. package/plugins/lisa-openclaw-agy/skills/lisa-openclaw-setup/SKILL.md +138 -0
  497. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +8 -0
  498. package/plugins/lisa-openclaw-copilot/commands/connect-repo-topic.md +7 -0
  499. package/plugins/lisa-openclaw-copilot/commands/connect-staff-slack.md +7 -0
  500. package/plugins/lisa-openclaw-copilot/commands/connect-staff-telegram.md +7 -0
  501. package/plugins/lisa-openclaw-copilot/commands/setup-openclaw.md +7 -0
  502. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  503. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  504. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  505. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  506. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  507. package/plugins/lisa-openclaw-copilot/skills/lisa-openclaw-setup/SKILL.md +138 -0
  508. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +8 -0
  509. package/plugins/lisa-openclaw-cursor/commands/connect-repo-topic.md +7 -0
  510. package/plugins/lisa-openclaw-cursor/commands/connect-staff-slack.md +7 -0
  511. package/plugins/lisa-openclaw-cursor/commands/connect-staff-telegram.md +7 -0
  512. package/plugins/lisa-openclaw-cursor/commands/setup-openclaw.md +7 -0
  513. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  514. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  515. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  516. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  517. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  518. package/plugins/lisa-openclaw-cursor/skills/lisa-openclaw-setup/SKILL.md +138 -0
  519. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  520. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  521. package/plugins/lisa-rails-agy/agents/ops-specialist.md +226 -0
  522. package/plugins/lisa-rails-agy/commands/e2e-coverage-gaps.md +7 -0
  523. package/plugins/lisa-rails-agy/commands/exploratory-qa.md +7 -0
  524. package/plugins/lisa-rails-agy/commands/fix/linter-error.md +7 -0
  525. package/plugins/lisa-rails-agy/commands/improve/code-complexity.md +6 -0
  526. package/plugins/lisa-rails-agy/commands/improve/max-lines-per-function.md +7 -0
  527. package/plugins/lisa-rails-agy/commands/improve/max-lines.md +7 -0
  528. package/plugins/lisa-rails-agy/commands/improve/test-coverage.md +7 -0
  529. package/plugins/lisa-rails-agy/plugin.json +11 -0
  530. package/plugins/lisa-rails-agy/skills/action-controller-best-practices/SKILL.md +374 -0
  531. package/plugins/lisa-rails-agy/skills/action-view-best-practices/SKILL.md +335 -0
  532. package/plugins/lisa-rails-agy/skills/active-record-model-best-practices/SKILL.md +166 -0
  533. package/plugins/lisa-rails-agy/skills/e2e-coverage-gaps/SKILL.md +105 -0
  534. package/plugins/lisa-rails-agy/skills/exploratory-qa/SKILL.md +145 -0
  535. package/plugins/lisa-rails-agy/skills/fix-linter-error/SKILL.md +45 -0
  536. package/plugins/lisa-rails-agy/skills/improve-code-complexity/SKILL.md +48 -0
  537. package/plugins/lisa-rails-agy/skills/improve-max-lines/SKILL.md +46 -0
  538. package/plugins/lisa-rails-agy/skills/improve-max-lines-per-function/SKILL.md +46 -0
  539. package/plugins/lisa-rails-agy/skills/improve-test-coverage/SKILL.md +45 -0
  540. package/plugins/lisa-rails-agy/skills/jira-add-journey/SKILL.md +65 -0
  541. package/plugins/lisa-rails-agy/skills/jira-create/SKILL.md +100 -0
  542. package/plugins/lisa-rails-agy/skills/jira-evidence/SKILL.md +70 -0
  543. package/plugins/lisa-rails-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  544. package/plugins/lisa-rails-agy/skills/jira-journey/SKILL.md +64 -0
  545. package/plugins/lisa-rails-agy/skills/jira-verify/SKILL.md +26 -0
  546. package/plugins/lisa-rails-agy/skills/ops-check-logs/SKILL.md +191 -0
  547. package/plugins/lisa-rails-agy/skills/ops-deploy/SKILL.md +153 -0
  548. package/plugins/lisa-rails-agy/skills/ops-run-local/SKILL.md +169 -0
  549. package/plugins/lisa-rails-agy/skills/ops-verify-jobs/SKILL.md +157 -0
  550. package/plugins/lisa-rails-agy/skills/ops-verify-telemetry/SKILL.md +197 -0
  551. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +50 -0
  552. package/plugins/lisa-rails-copilot/agents/ops-specialist.agent.md +226 -0
  553. package/plugins/lisa-rails-copilot/commands/e2e-coverage-gaps.md +7 -0
  554. package/plugins/lisa-rails-copilot/commands/exploratory-qa.md +7 -0
  555. package/plugins/lisa-rails-copilot/commands/fix/linter-error.md +7 -0
  556. package/plugins/lisa-rails-copilot/commands/improve/code-complexity.md +6 -0
  557. package/plugins/lisa-rails-copilot/commands/improve/max-lines-per-function.md +7 -0
  558. package/plugins/lisa-rails-copilot/commands/improve/max-lines.md +7 -0
  559. package/plugins/lisa-rails-copilot/commands/improve/test-coverage.md +7 -0
  560. package/plugins/lisa-rails-copilot/hooks/inject-rules.sh +22 -0
  561. package/plugins/lisa-rails-copilot/hooks/rubocop-on-edit.sh +78 -0
  562. package/plugins/lisa-rails-copilot/hooks/sg-scan-on-edit.sh +74 -0
  563. package/plugins/lisa-rails-copilot/rules/rails-conventions.md +176 -0
  564. package/plugins/lisa-rails-copilot/skills/action-controller-best-practices/SKILL.md +374 -0
  565. package/plugins/lisa-rails-copilot/skills/action-view-best-practices/SKILL.md +335 -0
  566. package/plugins/lisa-rails-copilot/skills/active-record-model-best-practices/SKILL.md +166 -0
  567. package/plugins/lisa-rails-copilot/skills/e2e-coverage-gaps/SKILL.md +105 -0
  568. package/plugins/lisa-rails-copilot/skills/exploratory-qa/SKILL.md +145 -0
  569. package/plugins/lisa-rails-copilot/skills/fix-linter-error/SKILL.md +45 -0
  570. package/plugins/lisa-rails-copilot/skills/improve-code-complexity/SKILL.md +48 -0
  571. package/plugins/lisa-rails-copilot/skills/improve-max-lines/SKILL.md +46 -0
  572. package/plugins/lisa-rails-copilot/skills/improve-max-lines-per-function/SKILL.md +46 -0
  573. package/plugins/lisa-rails-copilot/skills/improve-test-coverage/SKILL.md +45 -0
  574. package/plugins/lisa-rails-copilot/skills/jira-add-journey/SKILL.md +65 -0
  575. package/plugins/lisa-rails-copilot/skills/jira-create/SKILL.md +100 -0
  576. package/plugins/lisa-rails-copilot/skills/jira-evidence/SKILL.md +70 -0
  577. package/plugins/lisa-rails-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  578. package/plugins/lisa-rails-copilot/skills/jira-journey/SKILL.md +64 -0
  579. package/plugins/lisa-rails-copilot/skills/jira-verify/SKILL.md +26 -0
  580. package/plugins/lisa-rails-copilot/skills/ops-check-logs/SKILL.md +191 -0
  581. package/plugins/lisa-rails-copilot/skills/ops-deploy/SKILL.md +153 -0
  582. package/plugins/lisa-rails-copilot/skills/ops-run-local/SKILL.md +169 -0
  583. package/plugins/lisa-rails-copilot/skills/ops-verify-jobs/SKILL.md +157 -0
  584. package/plugins/lisa-rails-copilot/skills/ops-verify-telemetry/SKILL.md +197 -0
  585. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +28 -0
  586. package/plugins/lisa-rails-cursor/agents/ops-specialist.md +226 -0
  587. package/plugins/lisa-rails-cursor/commands/e2e-coverage-gaps.md +7 -0
  588. package/plugins/lisa-rails-cursor/commands/exploratory-qa.md +7 -0
  589. package/plugins/lisa-rails-cursor/commands/fix/linter-error.md +7 -0
  590. package/plugins/lisa-rails-cursor/commands/improve/code-complexity.md +6 -0
  591. package/plugins/lisa-rails-cursor/commands/improve/max-lines-per-function.md +7 -0
  592. package/plugins/lisa-rails-cursor/commands/improve/max-lines.md +7 -0
  593. package/plugins/lisa-rails-cursor/commands/improve/test-coverage.md +7 -0
  594. package/plugins/lisa-rails-cursor/hooks/rubocop-on-edit.sh +78 -0
  595. package/plugins/lisa-rails-cursor/hooks/sg-scan-on-edit.sh +74 -0
  596. package/plugins/lisa-rails-cursor/rules/rails-conventions.md +176 -0
  597. package/plugins/lisa-rails-cursor/skills/action-controller-best-practices/SKILL.md +374 -0
  598. package/plugins/lisa-rails-cursor/skills/action-view-best-practices/SKILL.md +335 -0
  599. package/plugins/lisa-rails-cursor/skills/active-record-model-best-practices/SKILL.md +166 -0
  600. package/plugins/lisa-rails-cursor/skills/e2e-coverage-gaps/SKILL.md +105 -0
  601. package/plugins/lisa-rails-cursor/skills/exploratory-qa/SKILL.md +145 -0
  602. package/plugins/lisa-rails-cursor/skills/fix-linter-error/SKILL.md +45 -0
  603. package/plugins/lisa-rails-cursor/skills/improve-code-complexity/SKILL.md +48 -0
  604. package/plugins/lisa-rails-cursor/skills/improve-max-lines/SKILL.md +46 -0
  605. package/plugins/lisa-rails-cursor/skills/improve-max-lines-per-function/SKILL.md +46 -0
  606. package/plugins/lisa-rails-cursor/skills/improve-test-coverage/SKILL.md +45 -0
  607. package/plugins/lisa-rails-cursor/skills/jira-add-journey/SKILL.md +65 -0
  608. package/plugins/lisa-rails-cursor/skills/jira-create/SKILL.md +100 -0
  609. package/plugins/lisa-rails-cursor/skills/jira-evidence/SKILL.md +70 -0
  610. package/plugins/lisa-rails-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  611. package/plugins/lisa-rails-cursor/skills/jira-journey/SKILL.md +64 -0
  612. package/plugins/lisa-rails-cursor/skills/jira-verify/SKILL.md +26 -0
  613. package/plugins/lisa-rails-cursor/skills/ops-check-logs/SKILL.md +191 -0
  614. package/plugins/lisa-rails-cursor/skills/ops-deploy/SKILL.md +153 -0
  615. package/plugins/lisa-rails-cursor/skills/ops-run-local/SKILL.md +169 -0
  616. package/plugins/lisa-rails-cursor/skills/ops-verify-jobs/SKILL.md +157 -0
  617. package/plugins/lisa-rails-cursor/skills/ops-verify-telemetry/SKILL.md +197 -0
  618. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  619. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  620. package/plugins/lisa-typescript-agy/plugin.json +11 -0
  621. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +43 -0
  622. package/plugins/lisa-typescript-copilot/hooks/block-suppress-directives.sh +73 -0
  623. package/plugins/lisa-typescript-copilot/hooks/format-on-edit.sh +79 -0
  624. package/plugins/lisa-typescript-copilot/hooks/lint-on-edit.sh +134 -0
  625. package/plugins/lisa-typescript-copilot/hooks/sg-scan-on-edit.sh +71 -0
  626. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +43 -0
  627. package/plugins/lisa-typescript-cursor/hooks/block-suppress-directives.sh +73 -0
  628. package/plugins/lisa-typescript-cursor/hooks/format-on-edit.sh +79 -0
  629. package/plugins/lisa-typescript-cursor/hooks/lint-on-edit.sh +134 -0
  630. package/plugins/lisa-typescript-cursor/hooks/sg-scan-on-edit.sh +71 -0
  631. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  632. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  633. package/plugins/lisa-wiki-agy/ci/lisa-wiki-validate.yml +33 -0
  634. package/plugins/lisa-wiki-agy/commands/add-ingest.md +6 -0
  635. package/plugins/lisa-wiki-agy/commands/add-role.md +6 -0
  636. package/plugins/lisa-wiki-agy/commands/doctor.md +6 -0
  637. package/plugins/lisa-wiki-agy/commands/ingest.md +6 -0
  638. package/plugins/lisa-wiki-agy/commands/lint.md +6 -0
  639. package/plugins/lisa-wiki-agy/commands/migrate.md +6 -0
  640. package/plugins/lisa-wiki-agy/commands/onboard-me.md +6 -0
  641. package/plugins/lisa-wiki-agy/commands/query.md +6 -0
  642. package/plugins/lisa-wiki-agy/commands/setup/wiki.md +6 -0
  643. package/plugins/lisa-wiki-agy/commands/setup-automations.md +6 -0
  644. package/plugins/lisa-wiki-agy/commands/setup.md +6 -0
  645. package/plugins/lisa-wiki-agy/commands/status.md +6 -0
  646. package/plugins/lisa-wiki-agy/commands/tear-down-automations.md +6 -0
  647. package/plugins/lisa-wiki-agy/plugin.json +8 -0
  648. package/plugins/lisa-wiki-agy/schema/lisa-wiki-config.schema.json +118 -0
  649. package/plugins/lisa-wiki-agy/schema/wiki-structure.schema.json +51 -0
  650. package/plugins/lisa-wiki-agy/scripts/_wiki-lib.mjs +185 -0
  651. package/plugins/lisa-wiki-agy/scripts/diff-guard.mjs +116 -0
  652. package/plugins/lisa-wiki-agy/scripts/ensure-gitignore.mjs +131 -0
  653. package/plugins/lisa-wiki-agy/scripts/ingest-git.mjs +189 -0
  654. package/plugins/lisa-wiki-agy/scripts/ingest-memory.mjs +130 -0
  655. package/plugins/lisa-wiki-agy/scripts/ingest-roles.mjs +85 -0
  656. package/plugins/lisa-wiki-agy/scripts/ingest_slack_channel.py +329 -0
  657. package/plugins/lisa-wiki-agy/scripts/lint-wiki.mjs +324 -0
  658. package/plugins/lisa-wiki-agy/scripts/mcp-doctor.mjs +72 -0
  659. package/plugins/lisa-wiki-agy/scripts/render-contract.mjs +107 -0
  660. package/plugins/lisa-wiki-agy/scripts/rewrite-refs.mjs +144 -0
  661. package/plugins/lisa-wiki-agy/scripts/slack_oauth_user.py +179 -0
  662. package/plugins/lisa-wiki-agy/scripts/validate-config.mjs +232 -0
  663. package/plugins/lisa-wiki-agy/scripts/verify-migration.mjs +199 -0
  664. package/plugins/lisa-wiki-agy/scripts/wiki-status.mjs +345 -0
  665. package/plugins/lisa-wiki-agy/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  666. package/plugins/lisa-wiki-agy/skills/lisa-wiki-add-role/SKILL.md +30 -0
  667. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  668. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  669. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  670. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  671. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  672. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  673. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  674. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  675. package/plugins/lisa-wiki-agy/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  676. package/plugins/lisa-wiki-agy/skills/lisa-wiki-doctor/SKILL.md +47 -0
  677. package/plugins/lisa-wiki-agy/skills/lisa-wiki-ingest/SKILL.md +72 -0
  678. package/plugins/lisa-wiki-agy/skills/lisa-wiki-lint/SKILL.md +32 -0
  679. package/plugins/lisa-wiki-agy/skills/lisa-wiki-migrate/SKILL.md +43 -0
  680. package/plugins/lisa-wiki-agy/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  681. package/plugins/lisa-wiki-agy/skills/lisa-wiki-query/SKILL.md +30 -0
  682. package/plugins/lisa-wiki-agy/skills/lisa-wiki-setup/SKILL.md +75 -0
  683. package/plugins/lisa-wiki-agy/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
  684. package/plugins/lisa-wiki-agy/skills/lisa-wiki-status/SKILL.md +47 -0
  685. package/plugins/lisa-wiki-agy/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  686. package/plugins/lisa-wiki-agy/skills/lisa-wiki-usage/SKILL.md +50 -0
  687. package/plugins/lisa-wiki-agy/templates/agents/role-agent.claude.md +16 -0
  688. package/plugins/lisa-wiki-agy/templates/agents/role-agent.codex.toml +15 -0
  689. package/plugins/lisa-wiki-agy/templates/index.md +17 -0
  690. package/plugins/lisa-wiki-agy/templates/llm-wiki-contract.md +72 -0
  691. package/plugins/lisa-wiki-agy/templates/log.md +8 -0
  692. package/plugins/lisa-wiki-agy/templates/page-types/architecture.md +18 -0
  693. package/plugins/lisa-wiki-agy/templates/page-types/concept.md +18 -0
  694. package/plugins/lisa-wiki-agy/templates/page-types/decision.md +18 -0
  695. package/plugins/lisa-wiki-agy/templates/page-types/entity.md +19 -0
  696. package/plugins/lisa-wiki-agy/templates/page-types/open-question.md +18 -0
  697. package/plugins/lisa-wiki-agy/templates/page-types/playbook.md +18 -0
  698. package/plugins/lisa-wiki-agy/templates/page-types/project.md +19 -0
  699. package/plugins/lisa-wiki-agy/templates/page-types/requirement.md +19 -0
  700. package/plugins/lisa-wiki-agy/templates/page-types/staff.md +26 -0
  701. package/plugins/lisa-wiki-agy/templates/start-here.md +24 -0
  702. package/plugins/lisa-wiki-agy/templates/state-readme.md +20 -0
  703. package/plugins/lisa-wiki-agy/templates/wrapper-gitignore.txt +19 -0
  704. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +8 -0
  705. package/plugins/lisa-wiki-copilot/ci/lisa-wiki-validate.yml +33 -0
  706. package/plugins/lisa-wiki-copilot/commands/add-ingest.md +6 -0
  707. package/plugins/lisa-wiki-copilot/commands/add-role.md +6 -0
  708. package/plugins/lisa-wiki-copilot/commands/doctor.md +6 -0
  709. package/plugins/lisa-wiki-copilot/commands/ingest.md +6 -0
  710. package/plugins/lisa-wiki-copilot/commands/lint.md +6 -0
  711. package/plugins/lisa-wiki-copilot/commands/migrate.md +6 -0
  712. package/plugins/lisa-wiki-copilot/commands/onboard-me.md +6 -0
  713. package/plugins/lisa-wiki-copilot/commands/query.md +6 -0
  714. package/plugins/lisa-wiki-copilot/commands/setup/wiki.md +6 -0
  715. package/plugins/lisa-wiki-copilot/commands/setup-automations.md +6 -0
  716. package/plugins/lisa-wiki-copilot/commands/setup.md +6 -0
  717. package/plugins/lisa-wiki-copilot/commands/status.md +6 -0
  718. package/plugins/lisa-wiki-copilot/commands/tear-down-automations.md +6 -0
  719. package/plugins/lisa-wiki-copilot/schema/lisa-wiki-config.schema.json +118 -0
  720. package/plugins/lisa-wiki-copilot/schema/wiki-structure.schema.json +51 -0
  721. package/plugins/lisa-wiki-copilot/scripts/_wiki-lib.mjs +185 -0
  722. package/plugins/lisa-wiki-copilot/scripts/diff-guard.mjs +116 -0
  723. package/plugins/lisa-wiki-copilot/scripts/ensure-gitignore.mjs +131 -0
  724. package/plugins/lisa-wiki-copilot/scripts/ingest-git.mjs +189 -0
  725. package/plugins/lisa-wiki-copilot/scripts/ingest-memory.mjs +130 -0
  726. package/plugins/lisa-wiki-copilot/scripts/ingest-roles.mjs +85 -0
  727. package/plugins/lisa-wiki-copilot/scripts/ingest_slack_channel.py +329 -0
  728. package/plugins/lisa-wiki-copilot/scripts/lint-wiki.mjs +324 -0
  729. package/plugins/lisa-wiki-copilot/scripts/mcp-doctor.mjs +72 -0
  730. package/plugins/lisa-wiki-copilot/scripts/render-contract.mjs +107 -0
  731. package/plugins/lisa-wiki-copilot/scripts/rewrite-refs.mjs +144 -0
  732. package/plugins/lisa-wiki-copilot/scripts/slack_oauth_user.py +179 -0
  733. package/plugins/lisa-wiki-copilot/scripts/validate-config.mjs +232 -0
  734. package/plugins/lisa-wiki-copilot/scripts/verify-migration.mjs +199 -0
  735. package/plugins/lisa-wiki-copilot/scripts/wiki-status.mjs +345 -0
  736. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  737. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-add-role/SKILL.md +30 -0
  738. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  739. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  740. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  741. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  742. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  743. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  744. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  745. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  746. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  747. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-doctor/SKILL.md +47 -0
  748. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-ingest/SKILL.md +72 -0
  749. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-lint/SKILL.md +32 -0
  750. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-migrate/SKILL.md +43 -0
  751. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  752. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-query/SKILL.md +30 -0
  753. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-setup/SKILL.md +75 -0
  754. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
  755. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-status/SKILL.md +47 -0
  756. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  757. package/plugins/lisa-wiki-copilot/skills/lisa-wiki-usage/SKILL.md +50 -0
  758. package/plugins/lisa-wiki-copilot/templates/agents/role-agent.claude.md +16 -0
  759. package/plugins/lisa-wiki-copilot/templates/agents/role-agent.codex.toml +15 -0
  760. package/plugins/lisa-wiki-copilot/templates/index.md +17 -0
  761. package/plugins/lisa-wiki-copilot/templates/llm-wiki-contract.md +72 -0
  762. package/plugins/lisa-wiki-copilot/templates/log.md +8 -0
  763. package/plugins/lisa-wiki-copilot/templates/page-types/architecture.md +18 -0
  764. package/plugins/lisa-wiki-copilot/templates/page-types/concept.md +18 -0
  765. package/plugins/lisa-wiki-copilot/templates/page-types/decision.md +18 -0
  766. package/plugins/lisa-wiki-copilot/templates/page-types/entity.md +19 -0
  767. package/plugins/lisa-wiki-copilot/templates/page-types/open-question.md +18 -0
  768. package/plugins/lisa-wiki-copilot/templates/page-types/playbook.md +18 -0
  769. package/plugins/lisa-wiki-copilot/templates/page-types/project.md +19 -0
  770. package/plugins/lisa-wiki-copilot/templates/page-types/requirement.md +19 -0
  771. package/plugins/lisa-wiki-copilot/templates/page-types/staff.md +26 -0
  772. package/plugins/lisa-wiki-copilot/templates/start-here.md +24 -0
  773. package/plugins/lisa-wiki-copilot/templates/state-readme.md +20 -0
  774. package/plugins/lisa-wiki-copilot/templates/wrapper-gitignore.txt +19 -0
  775. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +8 -0
  776. package/plugins/lisa-wiki-cursor/ci/lisa-wiki-validate.yml +33 -0
  777. package/plugins/lisa-wiki-cursor/commands/add-ingest.md +6 -0
  778. package/plugins/lisa-wiki-cursor/commands/add-role.md +6 -0
  779. package/plugins/lisa-wiki-cursor/commands/doctor.md +6 -0
  780. package/plugins/lisa-wiki-cursor/commands/ingest.md +6 -0
  781. package/plugins/lisa-wiki-cursor/commands/lint.md +6 -0
  782. package/plugins/lisa-wiki-cursor/commands/migrate.md +6 -0
  783. package/plugins/lisa-wiki-cursor/commands/onboard-me.md +6 -0
  784. package/plugins/lisa-wiki-cursor/commands/query.md +6 -0
  785. package/plugins/lisa-wiki-cursor/commands/setup/wiki.md +6 -0
  786. package/plugins/lisa-wiki-cursor/commands/setup-automations.md +6 -0
  787. package/plugins/lisa-wiki-cursor/commands/setup.md +6 -0
  788. package/plugins/lisa-wiki-cursor/commands/status.md +6 -0
  789. package/plugins/lisa-wiki-cursor/commands/tear-down-automations.md +6 -0
  790. package/plugins/lisa-wiki-cursor/schema/lisa-wiki-config.schema.json +118 -0
  791. package/plugins/lisa-wiki-cursor/schema/wiki-structure.schema.json +51 -0
  792. package/plugins/lisa-wiki-cursor/scripts/_wiki-lib.mjs +185 -0
  793. package/plugins/lisa-wiki-cursor/scripts/diff-guard.mjs +116 -0
  794. package/plugins/lisa-wiki-cursor/scripts/ensure-gitignore.mjs +131 -0
  795. package/plugins/lisa-wiki-cursor/scripts/ingest-git.mjs +189 -0
  796. package/plugins/lisa-wiki-cursor/scripts/ingest-memory.mjs +130 -0
  797. package/plugins/lisa-wiki-cursor/scripts/ingest-roles.mjs +85 -0
  798. package/plugins/lisa-wiki-cursor/scripts/ingest_slack_channel.py +329 -0
  799. package/plugins/lisa-wiki-cursor/scripts/lint-wiki.mjs +324 -0
  800. package/plugins/lisa-wiki-cursor/scripts/mcp-doctor.mjs +72 -0
  801. package/plugins/lisa-wiki-cursor/scripts/render-contract.mjs +107 -0
  802. package/plugins/lisa-wiki-cursor/scripts/rewrite-refs.mjs +144 -0
  803. package/plugins/lisa-wiki-cursor/scripts/slack_oauth_user.py +179 -0
  804. package/plugins/lisa-wiki-cursor/scripts/validate-config.mjs +232 -0
  805. package/plugins/lisa-wiki-cursor/scripts/verify-migration.mjs +199 -0
  806. package/plugins/lisa-wiki-cursor/scripts/wiki-status.mjs +345 -0
  807. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  808. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-add-role/SKILL.md +30 -0
  809. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  810. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  811. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  812. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  813. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  814. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  815. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  816. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  817. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  818. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-doctor/SKILL.md +47 -0
  819. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-ingest/SKILL.md +72 -0
  820. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-lint/SKILL.md +32 -0
  821. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-migrate/SKILL.md +43 -0
  822. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  823. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-query/SKILL.md +30 -0
  824. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-setup/SKILL.md +75 -0
  825. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-setup-automations/SKILL.md +80 -0
  826. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-status/SKILL.md +47 -0
  827. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  828. package/plugins/lisa-wiki-cursor/skills/lisa-wiki-usage/SKILL.md +50 -0
  829. package/plugins/lisa-wiki-cursor/templates/agents/role-agent.claude.md +16 -0
  830. package/plugins/lisa-wiki-cursor/templates/agents/role-agent.codex.toml +15 -0
  831. package/plugins/lisa-wiki-cursor/templates/index.md +17 -0
  832. package/plugins/lisa-wiki-cursor/templates/llm-wiki-contract.md +72 -0
  833. package/plugins/lisa-wiki-cursor/templates/log.md +8 -0
  834. package/plugins/lisa-wiki-cursor/templates/page-types/architecture.md +18 -0
  835. package/plugins/lisa-wiki-cursor/templates/page-types/concept.md +18 -0
  836. package/plugins/lisa-wiki-cursor/templates/page-types/decision.md +18 -0
  837. package/plugins/lisa-wiki-cursor/templates/page-types/entity.md +19 -0
  838. package/plugins/lisa-wiki-cursor/templates/page-types/open-question.md +18 -0
  839. package/plugins/lisa-wiki-cursor/templates/page-types/playbook.md +18 -0
  840. package/plugins/lisa-wiki-cursor/templates/page-types/project.md +19 -0
  841. package/plugins/lisa-wiki-cursor/templates/page-types/requirement.md +19 -0
  842. package/plugins/lisa-wiki-cursor/templates/page-types/staff.md +26 -0
  843. package/plugins/lisa-wiki-cursor/templates/start-here.md +24 -0
  844. package/plugins/lisa-wiki-cursor/templates/state-readme.md +20 -0
  845. package/plugins/lisa-wiki-cursor/templates/wrapper-gitignore.txt +19 -0
  846. package/scripts/build-plugins.sh +28 -11
@@ -0,0 +1,7 @@
1
+ ---
2
+ description: "Run a first-time-user exploratory QA walkthrough: experience the app like a brand-new human user, clicking through to find anything confusing, broken, or hard to understand (machine-style labels, slow or unclear loads, cramped or cut-off UI, inconsistent UX, awkward scroll behavior) across all breakpoints, and file each finding (bug or usability issue) as a tracked work item via lisa:tracker-write. The optional ready flag marks tickets build-ready (auto-picked-up by lisa:intake) or leaves them in the backlog for human triage (default). For gaps in the automated Playwright suite, use e2e-coverage-gaps instead."
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "[target-url | env] [ready=true|false]"
5
+ ---
6
+
7
+ Use the /lisa-harper-fabric:exploratory-qa skill to experience the app like a brand-new first-time user — landing cold on the home page and clicking through to find anything confusing, broken, or hard to understand across all breakpoints — and file each finding (bugs, usability/clarity issues) as a tracked work item via lisa:tracker-write, build-ready or in triage per the ready flag (default: triage). For automated Playwright coverage gaps, use /lisa-harper-fabric:e2e-coverage-gaps. $ARGUMENTS
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ # Reads all .md files from the plugin's rules/ directory and injects them
3
+ # into Claude context at session/subagent start.
4
+ set -euo pipefail
5
+
6
+ ROOT="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}}"
7
+ RULES_DIR="$ROOT/rules"
8
+
9
+ [ -d "$RULES_DIR" ] || exit 0
10
+
11
+ for rule in "$RULES_DIR"/*.md; do
12
+ [ -f "$rule" ] || continue
13
+ printf '\n<lisa-harper-fabric-rule path="%s">\n' "$rule"
14
+ cat "$rule"
15
+ printf '\n</lisa-harper-fabric-rule>\n'
16
+ done
@@ -0,0 +1,51 @@
1
+ # Harper/Fabric Project Rules
2
+
3
+ These rules apply to Harper/Fabric component apps managed by Lisa.
4
+
5
+ ## Build The Real Thing
6
+
7
+ - Do not ship client-side workarounds for missing backend behavior. If a change needs a Harper resource, schema update, seed path, or deploy script change, make that change.
8
+ - Do not silently downgrade a feature to a stub, mock, or partial path. Only use a stop-gap when the user explicitly asks for one.
9
+ - Treat deployed Fabric behavior as part of the product. A change is unfinished until the local build and the relevant deployed or smoke path agree.
10
+
11
+ ## TypeScript Is Source
12
+
13
+ - TypeScript under `src/` is the source of truth for Harper resources, browser modules, shared libraries, and operational scripts.
14
+ - `harper-app/config.yaml`, `harper-app/schema.graphql`, HTML, CSS, docs, and research fixtures are source assets.
15
+ - `harper-app/resources.js` and `harper-app/web/**/*.js` are generated deploy artifacts. Never edit them directly; change the matching TypeScript and run `bun run build`.
16
+ - Deployment, bootstrap, smoke, seed, verify, preview, token, crawl, ingest, and extraction commands must run from compiled JavaScript or generated Harper assets, not stale checked-in JavaScript.
17
+
18
+ ## Harper/Fabric Deploy Surface
19
+
20
+ - A deployable Harper app must keep `config.yaml`, `schema.graphql`, `resources.js`, and `web/**` at the component root that Fabric packages.
21
+ - Build before symlinking, packaging, or deploying `harper-app/`.
22
+ - Keep runtime secrets out of tracked files. Prefer environment variables or OS keychain helpers; document secret locations without recording secret values.
23
+ - When discovering a Harper/Fabric limitation or workaround, document the symptom, root cause, fix, and tempting broken alternatives in the project runbook.
24
+
25
+ ## Documentation Sync
26
+
27
+ - Project docs are operational contracts. When commands, schema, deploy shape, data model, seeded-data summary, crawler behavior, credential handling, or UI components change, update the matching project doc in the same change.
28
+ - Harper schema changes must update the conceptual schema docs and any verify paths that assert joins or row counts.
29
+ - Deploy topology, credential rotation, generated-artifact layout, and Fabric workarounds belong in the Fabric runbook.
30
+ - UI component, token, variant, or design-system changes must update the design-system catalog.
31
+
32
+ ## UI Work
33
+
34
+ - Browser UI must be composed from the project design system. Search the existing design-system catalog and components before adding markup.
35
+ - Add or extend the design-system component first, then consume it from pages.
36
+ - Pages should import UI components through the design-system barrel, not deep component paths.
37
+ - Do not introduce raw colors or ad hoc spacing in UI styles. Use design tokens and update the token docs when adding tokens.
38
+ - Every UI change needs Playwright verification that checks DOM behavior and captures screenshots. Type checks and unit tests are not enough for visual changes.
39
+
40
+ ## Immutable Code
41
+
42
+ - Prefer immutable data flow: `readonly` types, pure transformations, object/array copies, and explicit returned values.
43
+ - Do not mutate parameters, imported singletons, fixture objects, records, arrays, DOM-derived state, or config objects unless an API requires mutation and the exception is documented locally.
44
+ - Avoid `let`; use `const` and small pure helper functions instead.
45
+ - Avoid `any`, broad casts, and `ts-ignore`. If an external API forces an escape hatch, isolate it behind a typed adapter.
46
+
47
+ ## Verification
48
+
49
+ - Run `bun run build`, `bun run typecheck`, and the smallest relevant test command before reporting completion.
50
+ - For deploy-affecting changes, also run the project smoke command against the local or deployed Harper endpoint.
51
+ - If a verification command cannot run, report the exact command and blocker.
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: e2e-coverage-gaps
3
+ description: Playwright/e2e coverage-gap explorer that FEEDS THE LIFECYCLE. Use when asked to find paths the automated end-to-end suite does NOT cover — routes with no test at all, or flows that are only happy-path tested (missing error, validation, permission, empty, loading, and edge states). It inventories the app's routes and the existing Playwright tests, explores the running app to confirm each uncovered or under-covered path is real and reachable, and files one build-ready missing-test ticket per gap via lisa:tracker-write. For human usability/experience issues (confusing, cramped, or broken UI), use the exploratory-qa skill instead.
4
+ ---
5
+
6
+ # E2E Coverage Gaps
7
+
8
+ ## Overview
9
+
10
+ Find where the automated end-to-end (Playwright) suite is **blind**: routes with no test at all, and
11
+ flows that only assert the **happy path** while ignoring error, permission, empty, loading, and edge
12
+ cases. Inventory the app's routes and the existing tests, explore the running app to confirm each gap
13
+ is real and reachable, then file each gap as a **build-ready missing-test work item** so it enters the
14
+ Lisa lifecycle.
15
+
16
+ This skill is purely about **automated-coverage gaps**. It does not judge whether the UI is confusing
17
+ or pretty — for human usability findings, use the `exploratory-qa` skill.
18
+
19
+ ## Parameters
20
+
21
+ - **`target-url | env`** (first positional) — the app to inventory and explore.
22
+ - **`ready=true|false`** — build-ready state for the missing-test tickets (**default `true`**). Adding
23
+ missing coverage is safe to queue, so these default to build-ready; pass `ready=false` to leave them
24
+ in the backlog for human triage.
25
+
26
+ ## Core Workflow
27
+
28
+ ### 1. Establish Scope
29
+
30
+ - Identify the target environment, account type, and browser requirement, and read the `ready` flag
31
+ (default `true`).
32
+ - **Confirm the tracker is configured.** Gaps are filed as tickets, so read `tracker` from
33
+ `.lisa.config.json` (local overrides global). If it is unset, stop and report that the tracker must
34
+ be configured (via `/lisa:setup:jira` / `:github` / `:linear`) before gaps can be filed.
35
+
36
+ ### 2. Inventory App Routes
37
+
38
+ - Enumerate every route/screen from the project's routing source — filesystem routes, the router
39
+ config, navigation definitions, or a generated sitemap.
40
+ - For each route capture: its path + params, the auth/role it requires, and the primary user actions
41
+ reachable from it (forms, mutations, filters, flows).
42
+
43
+ ### 3. Inventory Existing Playwright Coverage
44
+
45
+ - Inspect the Playwright config, auth/setup projects, fixtures, constants, selectors, spec directories,
46
+ skipped/TODO/flaky tests, retries, and viewport/device projects.
47
+ - For each spec, record which route(s)/flow(s) it exercises and whether it asserts **behavior** or just
48
+ **presence**.
49
+ - Use existing test helpers/selectors when exploring — they reveal intended flows and stable hooks.
50
+
51
+ ### 4. Compute the Gap Matrix
52
+
53
+ Map routes/flows against existing coverage and classify each gap:
54
+
55
+ - **Uncovered route/flow:** no test touches it at all.
56
+ - **Happy-path-only:** the success case is tested but the non-happy paths are not — missing
57
+ error/validation, permission/denied, empty/zero-state, loading/slow, and boundary/edge scenarios.
58
+ - **Assertion-thin:** a test exists but asserts presence rather than behavior/outcome.
59
+ - **Skipped/TODO/flaky:** coverage exists but is disabled or unreliable.
60
+ - **Breakpoint gap:** a flow is only tested at a single viewport when behavior changes across
61
+ breakpoints.
62
+
63
+ ### 5. Explore to Confirm
64
+
65
+ - Navigate each candidate gap in the running app to confirm it is real, reachable, and worth a test.
66
+ Discard gaps that aren't actually reachable or are intentionally out of scope.
67
+
68
+ ### 6. File One Ticket Per Gap
69
+
70
+ Each confirmed gap becomes a leaf **missing-test** work item created via `lisa:tracker-write` (the
71
+ vendor-neutral writer — it dispatches to the configured tracker and runs the validation gate; never
72
+ call a vendor `*-write-*` skill directly), `issue_type: Task`, **build-ready per the `ready` flag
73
+ (default `true`)**. Pass `build_ready` explicitly on every create. Each ticket MUST specify:
74
+
75
+ - The **route/flow** and the exact **user behavior the test must assert**.
76
+ - **Which scenario is missing** (uncovered vs which non-happy path: error / validation / permission /
77
+ empty / loading / edge / breakpoint).
78
+ - The **stable selector / fixture / flow** to use — concrete and automatable.
79
+ - **Three-audience description** + **Gherkin acceptance criteria** describing the test to add.
80
+
81
+ ### Idempotency — don't spam duplicates
82
+
83
+ Before creating a ticket, search the tracker for an **open** ticket carrying a stable marker
84
+ `[lisa-e2e-coverage-gaps] <gap-key>` in its body (the `<gap-key>` is a stable slug of route + missing
85
+ scenario, e.g. `checkout/payment-declined` or `dashboard/empty-state@mobile`). If one exists, reference
86
+ it instead of duplicating. **Match by the marker, never by title.** A *closed* prior ticket does not
87
+ suppress a genuine new gap.
88
+
89
+ ## Output
90
+
91
+ No report file. Emit a concise in-session summary:
92
+
93
+ - **Route inventory:** count of routes/screens discovered.
94
+ - **Existing coverage:** strengths and thin areas (skipped/flaky, assertion-thin, single-viewport).
95
+ - **Gap matrix:** uncovered vs happy-path-only vs breakpoint gaps.
96
+ - **Tickets filed:** each gap with its created/referenced ticket ref and build-ready state.
97
+
98
+ ## Quality Bar
99
+
100
+ - Distinguish **no coverage** from **happy-path-only** — both are gaps, but the ticket must say which.
101
+ - Every ticket must stand alone for an implementer who was not in the session and must be concretely
102
+ automatable (named route, behavior, and stable hook).
103
+ - Do not refile gaps already covered or already ticketed (marker check).
104
+ - This skill is about automated coverage only — route human usability issues to `exploratory-qa`.
105
+ - Preserve unrelated repo changes.
@@ -0,0 +1,145 @@
1
+ ---
2
+ name: exploratory-qa
3
+ description: First-time-user exploratory QA walkthrough for web apps that FEEDS THE LIFECYCLE. Use when asked to experience an app the way a brand-new human user would — landing cold on the home page and clicking through to find anything confusing, broken, or hard to understand (machine-style labels, slow or unclear loads, cramped or cut-off UI, inconsistent/non-standard UX, awkward scroll behavior, unclear affordances) across all breakpoints. Instead of writing a report file, it files every finding as a tracked work item via lisa:tracker-write (bugs and usability/UX issues). A `ready` parameter controls whether those tickets are created build-ready (auto-picked-up by lisa:intake) or left in the backlog for human triage (default). For gaps in the automated Playwright test suite, use the e2e-coverage-gaps skill instead.
4
+ ---
5
+
6
+ # Exploratory QA
7
+
8
+ ## Overview
9
+
10
+ Experience the app the way a **brand-new human user** would: land cold on the home page with no prior
11
+ knowledge, then click through and actually try to use it — just like a real person. The goal is to
12
+ surface anything **confusing, broken, or hard to understand**, and to do so at **every breakpoint**.
13
+
14
+ This is a usability/experience pass, **not** a test-coverage audit. It does not look at the Playwright
15
+ suite or hunt for coverage gaps — for that, use the `e2e-coverage-gaps` skill. Here, every finding is
16
+ filed as a tracked work item so it enters the Lisa lifecycle — no static report file.
17
+
18
+ ## Parameters
19
+
20
+ - **`target-url | env`** (first positional) — what to explore.
21
+ - **`ready=true|false`** — the build-ready state for the tickets this pass creates.
22
+ - `ready=true` → created build-ready, so `lisa:intake` / the build-intake scanner auto-picks them up.
23
+ - `ready=false` (**default**) → created in the backlog (not build-ready) for a human to review and
24
+ promote into the queue.
25
+
26
+ ## Core Workflow
27
+
28
+ ### 1. Establish Scope
29
+
30
+ - Identify the target environment, account type, and browser requirement, and read the `ready` flag
31
+ (default `false`).
32
+ - **Confirm the tracker is configured.** Findings are filed as tickets, so read `tracker` from
33
+ `.lisa.config.json` (local overrides global). If it is unset, stop and report that the tracker must
34
+ be configured (via `/lisa:setup:jira` / `:github` / `:linear`) before exploratory QA can file
35
+ findings — do not silently fall back to a report file.
36
+ - If credentials, tenant, or seed data are missing and cannot be discovered safely, ask one concise
37
+ clarifying question.
38
+ - Treat production-like environments conservatively. Do not mutate production data unless the user
39
+ explicitly approves it. Prefer a test user, dev/staging environment, or isolated seeded account.
40
+
41
+ ### 2. Arrive Cold
42
+
43
+ - Start at the home/landing page with **no prior knowledge of the app**. Do **not** pre-read the
44
+ codebase to learn the intended flows — discover them the way a user would, by looking and clicking.
45
+ - Form a first impression: is it obvious what this app is, what to do first, and where to go next?
46
+
47
+ ### 3. Use It Like a Human
48
+
49
+ Click through the visible paths and actually attempt real tasks — a first-time user explores, makes
50
+ mistakes, and tries the obvious thing. Cover at least these dimensions unless the user narrows scope:
51
+
52
+ - **Comprehension & labeling:** machine-style or developer labels shown to users (raw IDs, enum keys,
53
+ `snake_case`, `null`/`undefined`, untranslated i18n keys), jargon, unclear button/menu names, icons
54
+ with no discernible meaning.
55
+ - **Navigation clarity:** is it obvious how to get somewhere and back? Dead ends, hidden entry points,
56
+ surprising redirects, broken links, no clear "home".
57
+ - **Visual/layout quality:** cut-off or truncated text, overlap, cramped/crowded density, offscreen or
58
+ unreachable controls, accidental horizontal scroll, awkward empty space.
59
+ - **Consistency / standard UX:** components, spacing, button styles, terminology, and interaction
60
+ patterns should be consistent across the app and follow common conventions. Flag anything
61
+ non-standard or that differs screen-to-screen.
62
+ - **Load & responsiveness:** long or unclear load times, blank screens, spinners / `Loading...` /
63
+ `Connecting...` with no progress, anything that feels slow or janky.
64
+ - **Scroll behavior:** unexpected scroll position, scroll jumps, nested or locked scroll, sticky
65
+ elements that cover content, content that cannot be reached.
66
+ - **Behavior correctness:** does the obvious action do what a user expects? Confusing errors, silent
67
+ failures, disabled controls with no explanation, state that does not persist.
68
+ - **Affordance clarity:** can the user tell what is clickable, required, in-progress, or complete?
69
+
70
+ ### 4. Cover All Breakpoints
71
+
72
+ - Discover breakpoints from the app (design tokens, CSS, responsive layout changes) when possible; if
73
+ unknown, use a practical baseline: phone, tablet/narrow, desktop, plus any app-specific cutoff.
74
+ - At each breakpoint, walk the key paths again and confirm the experience holds: expected
75
+ shell/navigation variant, critical controls visible and reachable, no unintended horizontal
76
+ overflow, intentional scroll containers still usable, nothing cut off or crowded.
77
+
78
+ ### 5. Watch Load & Latency
79
+
80
+ - Notice time to first meaningful content and time spent in blank/loading/spinner/connecting states.
81
+ - A page can be technically interactive but still visually incomplete — note that.
82
+ - Treat long waits without clear progress, error, retry, or cancellation as findings. Use practical
83
+ labels (noticeable, slow, unacceptable) and include observed durations when available.
84
+
85
+ ## Mutation Discipline
86
+
87
+ A real first-time user creates, edits, and deletes things — exercise those flows when the environment
88
+ is safe.
89
+
90
+ - Use unique names with a clear prefix such as `qa-` or `codex-`.
91
+ - Before mutating, identify the cleanup path. After mutating, make a best effort to clean up through
92
+ the UI, then verify cleanup. If UI cleanup is unavailable, that itself is a usability finding.
93
+ - Avoid destructive bulk actions unless the user explicitly asks or the account is clearly disposable.
94
+ - Record all mutations performed, cleanup attempts, and any residue left behind.
95
+
96
+ ## Filing findings as tracked work
97
+
98
+ This skill does **not** write a report file. Every finding becomes a **leaf work item** created via
99
+ `lisa:tracker-write` (the vendor-neutral writer — it dispatches to the configured tracker and runs the
100
+ validation gate; never call a vendor `*-write-*` skill directly). Map each finding to a type:
101
+
102
+ | Finding | `issue_type` | `build_ready` |
103
+ |---------|--------------|---------------|
104
+ | User-visible **bug** (broken behavior) | `Bug` | the `ready` flag (default `false`) |
105
+ | **Usability / UX / clarity issue** | `Improvement` | the `ready` flag (default `false`) |
106
+
107
+ Each finding is a flat leaf (no children), so `build_ready` applies directly — pass it explicitly on
108
+ every create. Each ticket MUST be a complete spec (the validator rejects thin tickets):
109
+
110
+ - **Three-audience description** (context / business value, technical approach, stakeholder impact).
111
+ - **For a bug:** exact reproduction steps, observed-vs-expected, the env / account / breakpoint it
112
+ occurred at, and console/network evidence.
113
+ - **For a usability issue:** the observed friction (what was confusing, cramped, inconsistent, or hard
114
+ to understand), who it affects, **where** (route + breakpoint), and the proposed improvement.
115
+ - **Gherkin acceptance criteria** describing the fixed behavior.
116
+
117
+ ### Idempotency — don't spam duplicates
118
+
119
+ Re-running a pass must not refile the same finding. Before creating a ticket, search the tracker for an
120
+ **open** ticket carrying a stable marker `[lisa-exploratory-qa] <finding-key>` in its body (the
121
+ `<finding-key>` is a stable slug of surface + symptom, e.g. `settings-modal/horizontal-overflow@tablet`).
122
+ If one exists, reference/update it instead of creating a duplicate; only create when none exists.
123
+ **Match by the marker, never by title** (titles get edited). A *closed* prior ticket does not suppress a
124
+ new one — a recurrence after a fix is a genuine regression.
125
+
126
+ ## Output
127
+
128
+ No report file. Emit a concise in-session summary:
129
+
130
+ - **Scope:** target URL/env, browser/tool, account type, build/version if visible, date.
131
+ - **First impression:** could a new user tell what the app is and what to do first?
132
+ - **Findings filed**, bucketed by type — bugs, usability/clarity issues — each with its **created or
133
+ referenced ticket ref** and its **build-ready state** (`ready` vs `triage/backlog`).
134
+ - **Observed but not filed:** anything noticed but intentionally not ticketed, with why.
135
+
136
+ ## Quality Bar
137
+
138
+ - Explore as a true first-time user — judge clarity, not whether you (who can read the code) can figure
139
+ it out.
140
+ - Prefer concrete, reproducible findings. Every ticket must stand alone for an implementer who was not
141
+ in the session.
142
+ - Do not claim cleanup succeeded unless verified.
143
+ - File tickets per the `ready` flag (default: backlog for human triage).
144
+ - This skill is about the human experience only — route automated-coverage gaps to `e2e-coverage-gaps`.
145
+ - Preserve unrelated repo changes.
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: harper-build-and-deploy
3
+ description: This skill should be used when building, running locally, or deploying a Harper (HarperDB/Fabric) component — running harper dev/run, producing the generated resources.js and web/** from TypeScript via the project build, packaging the harper-app component, deploying to Harper Fabric, or handling deploy-time secrets. Use it for any change that affects the deployable surface or the dev loop. Pairs with harper-component-model, harper-config-yaml, and harper-resources.
4
+ ---
5
+
6
+ # Harper Build and Deploy
7
+
8
+ ## Overview
9
+
10
+ The Harper lifecycle is: **develop locally → build TypeScript into the deployable
11
+ component → run/iterate → deploy to Fabric**. This skill covers the CLI, the
12
+ project's build step, and the deploy surface so a change is provably finished, not
13
+ just compiling.
14
+
15
+ ## Local dev and run (the CLI)
16
+
17
+ The CLI binary is `harper` (v5; older installs use `harperdb`). Key commands:
18
+
19
+ | Command | What it does |
20
+ | --- | --- |
21
+ | `harper dev <path/to/app>` | Dev mode: **watches files, single-threaded, auto-restarts worker threads** on change, with console logging. The fast iteration loop. Does **not** restart the main thread. |
22
+ | `harper run <path/to/app>` | Run an app from any directory. Use when you need the main thread to (re)start; manage start/stop yourself. |
23
+ | `harper start` / `stop` / `restart` | Background (daemon) lifecycle. |
24
+ | `harper status` | Harper and clustering status. |
25
+ | `harper get_components` | List installed components. |
26
+
27
+ In this project, dev typically runs against the component dir, e.g.
28
+ `harper dev harper-app` (use the project's documented run command if it wraps this).
29
+
30
+ ## The build step (TypeScript → generated artifacts)
31
+
32
+ Harper loads JavaScript (`resources.js`) and serves static files (`web/**`). In this
33
+ project those are **generated**, not authored:
34
+
35
+ - **TypeScript under `src/` is source.** `bun run build` compiles it into
36
+ `harper-app/resources.js` and `harper-app/web/**`.
37
+ - **Never edit `resources.js` or `web/**` directly** — change the TypeScript and
38
+ rebuild. See [[harper-resources]] and [[harper-component-model]].
39
+ - **Build before symlinking, packaging, or deploying `harper-app/`.** Deploying
40
+ stale artifacts ships code that does not match `src/`.
41
+
42
+ ## The deployable surface
43
+
44
+ A deployable Harper component must keep these at the component root Fabric packages:
45
+
46
+ - `config.yaml` — active extensions ([[harper-config-yaml]])
47
+ - `schema.graphql` — data model ([[harper-schema-graphql]])
48
+ - `resources.js` — generated custom logic
49
+ - `web/**` — generated static assets
50
+
51
+ If a change touches this surface, it is not done until the local build and the
52
+ relevant deployed or smoke path agree.
53
+
54
+ ## Deploying to Fabric
55
+
56
+ Fabric is Harper's distributed deploy network. Deploy packages the component and
57
+ sends it to a target instance:
58
+
59
+ ```bash
60
+ harper deploy_component \
61
+ project=<app-name> \
62
+ package=<path-or-git-url> \
63
+ target=https://<instance>:9925 \
64
+ username=<user> \
65
+ password=<pass> \
66
+ restart=true \
67
+ replicated=true
68
+ ```
69
+
70
+ - Omitting `package` deploys the current directory.
71
+ - `restart=true` restarts threads after deploy so new code loads.
72
+ - `replicated=true` replicates the deploy across all nodes in a cluster — include it
73
+ when targeting Fabric/a cluster.
74
+ - Credentials can come from `CLI_TARGET_USERNAME` / `CLI_TARGET_PASSWORD` instead of
75
+ inline flags — prefer that so secrets never land in shell history or tracked files.
76
+
77
+ ## Secrets
78
+
79
+ Keep runtime secrets out of tracked files. Use environment variables, the
80
+ `loadEnv` extension, or an OS keychain helper. Document *where* secrets live (which
81
+ env var, which store) without recording their values.
82
+
83
+ ## Verification (required before reporting done)
84
+
85
+ 1. `bun run build` — produces fresh `resources.js` / `web/**`.
86
+ 2. `bun run typecheck`.
87
+ 3. The smallest relevant test command.
88
+ 4. For deploy-affecting changes, the project **smoke command** against the local or
89
+ deployed Harper endpoint.
90
+
91
+ If a verification command cannot run, report the exact command and the blocker —
92
+ do not claim completion. When you hit a Harper/Fabric limitation or workaround,
93
+ record the symptom, root cause, fix, and the tempting-but-broken alternatives in
94
+ the project's Fabric runbook.
95
+
96
+ ## Sources
97
+
98
+ - [Harper CLI overview](https://docs.harperdb.io/reference/v4/cli/overview)
99
+ - [Harper CLI](https://docs.harperdb.io/docs/deployments/harper-cli)
100
+ - [Plugin API](https://docs.harperdb.io/reference/v5/components/plugin-api)
101
+ - [Harper Fabric](https://www.harper.fast/)
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: harper-component-model
3
+ description: This skill should be used when reasoning about how a Harper (formerly HarperDB) Fabric application is structured — what a component, application, extension, or plugin is, where code and assets belong, and how the pieces depend on each other. Use it before adding a new capability, wiring an extension, deciding where a file should live, or explaining the runtime to someone. Pairs with harper-config-yaml, harper-resources, harper-schema-graphql, and harper-build-and-deploy.
4
+ ---
5
+
6
+ # Harper Component Model
7
+
8
+ ## Overview
9
+
10
+ Harper (formerly HarperDB; the product and company now at harper.fast) is an
11
+ open-source Node.js platform that fuses **database, cache, application logic, and
12
+ messaging into a single in-memory process**. **Fabric** is Harper's distributed
13
+ deploy network: you develop locally, then deploy the same component to Fabric.
14
+
15
+ Everything you build is a **component**. Understanding the component hierarchy is
16
+ the prerequisite for every other Harper decision — config, resources, schema, and
17
+ deploy all hang off it.
18
+
19
+ ## The three tiers
20
+
21
+ Harper organizes functionality into three tiers, top to bottom:
22
+
23
+ 1. **Applications** — the user-facing product. An application *is* a type of
24
+ component. It implements business logic (REST/GraphQL endpoints, web UI,
25
+ real-time) by depending on extensions/plugins. This is what this project is.
26
+ 2. **Plugins** (v5) / **Extensions** (deprecated) — the building blocks an
27
+ application depends on. A plugin exports a single `handleApplication(scope)`
28
+ method and always runs on worker threads. The deprecated Extension API used
29
+ `start`, `handleFile`, `handleDirectory`, and `setupDirectory` instead.
30
+ `handleApplication()` cannot coexist with Extension API methods — defining
31
+ both throws. Prefer the Plugin API for any custom building block.
32
+ 3. **Core services** — the high-performance database, networking middleware, and
33
+ the component manager. You configure these; you don't reimplement them.
34
+
35
+ > An *application* is the component you ship. *Extensions/plugins* are the
36
+ > capabilities it consumes. Built-in extensions (`graphqlSchema`, `jsResource`,
37
+ > `rest`, `static`, …) are provided by core; you only *enable* them in
38
+ > `config.yaml`. See [[harper-config-yaml]].
39
+
40
+ ## Built-in extensions an application typically uses
41
+
42
+ These ship with Harper and are enabled (not installed) via `config.yaml`:
43
+
44
+ - `graphqlSchema` — define database tables/types from GraphQL schema files. See [[harper-schema-graphql]].
45
+ - `jsResource` — load custom JavaScript resources (`resources.js`). See [[harper-resources]].
46
+ - `rest` — auto-generate REST endpoints for exported resources/tables.
47
+ - `static` — serve static files (the `web/**` directory) over HTTP.
48
+ - `roles` — role-based access control from `roles.yaml`.
49
+ - `loadEnv` — load environment variables from `.env`.
50
+ - `dataLoader` — seed Harper tables from JSON/YAML.
51
+ - `fastifyRoutes` — custom Fastify route handlers.
52
+
53
+ ## Where things live in this project
54
+
55
+ This project wraps Harper's native model with a fixed layout under `harper-app/`:
56
+
57
+ | Path | Role | Source or generated |
58
+ | --- | --- | --- |
59
+ | `harper-app/config.yaml` | Component config — which extensions are active | **Source** |
60
+ | `harper-app/schema.graphql` | Table/type definitions | **Source** |
61
+ | `src/**` (TypeScript) | Resources, browser modules, shared libs, scripts | **Source** |
62
+ | `harper-app/resources.js` | Loaded by `jsResource` | **Generated** — never edit; build from TS |
63
+ | `harper-app/web/**` | Served by `static` | **Generated** — never edit; build from TS |
64
+
65
+ The TypeScript under `src/` is the source of truth. `resources.js` and `web/**`
66
+ are deploy artifacts produced by `bun run build`. Never hand-edit them — change
67
+ the matching TypeScript and rebuild. See [[harper-build-and-deploy]].
68
+
69
+ ## Decision guide
70
+
71
+ - **Adding a backend behavior?** It's almost always a *resource* (custom logic) or
72
+ a *schema* change (new table/field), enabled through `config.yaml`. Don't ship a
73
+ client-side workaround for missing backend behavior — make the Harper change.
74
+ - **Adding a reusable building block / npm-publishable capability?** That's a
75
+ *plugin* (`pluginModule`), not application code.
76
+ - **Adding static UI?** It belongs in `web/**` (generated from `src/` UI code), served
77
+ by the `static` extension.
78
+ - **Not sure if it deploys?** A deployable Harper app must keep `config.yaml`,
79
+ `schema.graphql`, `resources.js`, and `web/**` at the component root that Fabric
80
+ packages. If your change touches that surface, build before packaging.
81
+
82
+ ## Sources
83
+
84
+ - [Components overview](https://docs.harperdb.io/reference/v5/components/overview)
85
+ - [Plugin API](https://docs.harperdb.io/reference/v5/components/plugin-api)
86
+ - [Applications](https://docs.harperdb.io/docs/developers/applications)
87
+ - [Harper platform](https://www.harper.fast/)
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: harper-config-yaml
3
+ description: This skill should be used when creating or editing a Harper (HarperDB/Fabric) component's config.yaml — enabling a built-in extension (graphqlSchema, jsResource, rest, static, roles, loadEnv, dataLoader, fastifyRoutes), wiring an external component, or troubleshooting why an extension is not loading. Critical: it documents the no-merge footgun where a custom config.yaml replaces Harper's default config entirely. Pairs with harper-component-model, harper-resources, and harper-schema-graphql.
4
+ ---
5
+
6
+ # Harper config.yaml
7
+
8
+ ## Overview
9
+
10
+ A Harper component is configured by a single `config.yaml` at the component root
11
+ (`harper-app/config.yaml` in this project). It declares **which extensions are
12
+ active** and which files each extension reads. Extensions are *enabled* here, not
13
+ installed — the built-ins ship with Harper.
14
+
15
+ The structure is a map of extension name to its options:
16
+
17
+ ```yaml
18
+ extensionName:
19
+ option-1: value
20
+ option-2: value
21
+ ```
22
+
23
+ ## ⚠️ The no-merge footgun
24
+
25
+ If a component has **no** `config.yaml`, Harper applies this default automatically:
26
+
27
+ ```yaml
28
+ rest: true
29
+ graphqlSchema:
30
+ files: '*.graphql'
31
+ roles:
32
+ files: 'roles.yaml'
33
+ jsResource:
34
+ files: 'resources.js'
35
+ fastifyRoutes:
36
+ files: 'routes/*.js'
37
+ urlPath: '.'
38
+ static:
39
+ files: 'web/**'
40
+ ```
41
+
42
+ The moment you add a **custom `config.yaml`, it replaces this default entirely —
43
+ Harper does not merge your file with the defaults.** If you write a `config.yaml`
44
+ that only enables `static`, you have silently turned off `rest`, `graphqlSchema`,
45
+ `jsResource`, and `roles`. This is the most common Harper config mistake.
46
+
47
+ **Rule:** when you add or edit `config.yaml`, re-declare every extension the app
48
+ actually needs — start from the default block above and add to it. Do not assume
49
+ unmentioned extensions stay on.
50
+
51
+ ## Built-in extensions
52
+
53
+ | Key | Purpose | Common options |
54
+ | --- | --- | --- |
55
+ | `rest` | Auto REST endpoints for exported resources/tables | `true`, or an object with options |
56
+ | `graphqlSchema` | Define tables/types from GraphQL files | `files: '*.graphql'` — see [[harper-schema-graphql]] |
57
+ | `jsResource` | Load custom JS resources | `files: 'resources.js'` — see [[harper-resources]] |
58
+ | `static` | Serve static files over HTTP | `files: 'web/**'`, `urlPath` |
59
+ | `roles` | Role-based access control | `files: 'roles.yaml'` |
60
+ | `loadEnv` | Load env vars from `.env` | `files` |
61
+ | `dataLoader` | Seed tables from JSON/YAML | `files` |
62
+ | `fastifyRoutes` | Custom Fastify routes | `files: 'routes/*.js'`, `urlPath` |
63
+
64
+ ## External components and custom plugins
65
+
66
+ A component you depend on from npm needs a `package:` directive matching a
67
+ `package.json` dependency:
68
+
69
+ ```yaml
70
+ '@harperdb/nextjs':
71
+ package: '@harperdb/nextjs'
72
+ files: './'
73
+ ```
74
+
75
+ A custom plugin you author is wired with `pluginModule` (point at the built JS, not
76
+ TypeScript source):
77
+
78
+ ```yaml
79
+ pluginModule: ./dist/index.js
80
+ ```
81
+
82
+ The deprecated Extension API used `extensionModule` instead. Prefer `pluginModule`.
83
+ See [[harper-component-model]] for the plugin-vs-extension distinction.
84
+
85
+ ## Project conventions
86
+
87
+ - `config.yaml` is **source** and lives at `harper-app/config.yaml`. It is part of
88
+ the deployable surface Fabric packages — keep it at the component root.
89
+ - The files `config.yaml` points to (`resources.js`, `web/**`) are **generated** by
90
+ `bun run build` from TypeScript under `src/`. Editing `config.yaml` to point at a
91
+ new file means the build must produce that file. See [[harper-build-and-deploy]].
92
+ - A `config.yaml` change is a deploy-shape change: update the matching project doc
93
+ (the Fabric runbook) in the same change, and re-run the smoke command.
94
+ - Keep secrets out of `config.yaml`. Use `loadEnv` / environment variables and
95
+ document *where* secrets live without recording their values.
96
+
97
+ ## Verification
98
+
99
+ After editing `config.yaml`, confirm the app still boots and the expected surface
100
+ is live: run `harper dev harper-app` (or the project's run command) and check that
101
+ the REST/GraphQL/static endpoints you rely on respond. A config that silently
102
+ dropped an extension often fails only at runtime, not at build time.
103
+
104
+ ## Sources
105
+
106
+ - [Components overview](https://docs.harperdb.io/reference/v5/components/overview)
107
+ - [Built-in extensions](https://docs.harperdb.io/docs/reference/components/built-in-extensions)