@codyswann/lisa 1.47.0 → 1.48.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 (216) hide show
  1. package/all/copy-overwrite/.claude/rules/lisa.md +23 -10
  2. package/all/copy-overwrite/.claude/settings.json +10 -230
  3. package/all/deletions.json +67 -1
  4. package/cdk/copy-overwrite/.claude/settings.json +80 -0
  5. package/cdk/create-only/.github/workflows/ci.yml +1 -1
  6. package/cdk/create-only/.github/workflows/deploy.yml +1 -1
  7. package/dist/core/lisa.d.ts +14 -0
  8. package/dist/core/lisa.d.ts.map +1 -1
  9. package/dist/core/lisa.js +47 -0
  10. package/dist/core/lisa.js.map +1 -1
  11. package/expo/copy-overwrite/.claude/settings.json +80 -0
  12. package/expo/copy-overwrite/eslint.expo.ts +2 -2
  13. package/expo/create-only/.github/workflows/ci.yml +1 -1
  14. package/expo/create-only/.github/workflows/deploy.yml +1 -1
  15. package/expo/deletions.json +33 -0
  16. package/expo/package-lisa/package.lisa.json +2 -2
  17. package/nestjs/copy-overwrite/.claude/settings.json +80 -0
  18. package/nestjs/create-only/.github/workflows/ci.yml +1 -1
  19. package/nestjs/create-only/.github/workflows/deploy.yml +1 -1
  20. package/nestjs/deletions.json +8 -0
  21. package/package.json +8 -4
  22. package/rails/copy-overwrite/.claude/settings.json +80 -0
  23. package/rails/create-only/.github/workflows/ci.yml +1 -1
  24. package/rails/deletions.json +11 -1
  25. package/typescript/copy-overwrite/.claude/settings.json +13 -231
  26. package/typescript/copy-overwrite/.github/workflows/claude-ci-auto-fix.yml +1 -0
  27. package/typescript/copy-overwrite/.github/workflows/claude-code-review-response.yml +11 -10
  28. package/typescript/copy-overwrite/.github/workflows/claude-deploy-auto-fix.yml +1 -0
  29. package/typescript/copy-overwrite/.github/workflows/claude-nightly-code-complexity.yml +1 -0
  30. package/typescript/copy-overwrite/.github/workflows/claude-nightly-test-coverage.yml +1 -0
  31. package/typescript/copy-overwrite/.github/workflows/claude-nightly-test-improvement.yml +2 -0
  32. package/typescript/copy-overwrite/.github/workflows/claude.yml +1 -0
  33. package/typescript/copy-overwrite/eslint.typescript.ts +1 -1
  34. package/typescript/create-only/.github/workflows/ci.yml +1 -1
  35. package/typescript/deletions.json +12 -1
  36. package/typescript/package-lisa/package.lisa.json +1 -1
  37. package/all/copy-overwrite/.claude/agents/agent-architect.md +0 -310
  38. package/all/copy-overwrite/.claude/agents/architecture-specialist.md +0 -53
  39. package/all/copy-overwrite/.claude/agents/debug-specialist.md +0 -204
  40. package/all/copy-overwrite/.claude/agents/git-history-analyzer.md +0 -183
  41. package/all/copy-overwrite/.claude/agents/hooks-expert.md +0 -74
  42. package/all/copy-overwrite/.claude/agents/implementer.md +0 -54
  43. package/all/copy-overwrite/.claude/agents/learner.md +0 -44
  44. package/all/copy-overwrite/.claude/agents/performance-specialist.md +0 -95
  45. package/all/copy-overwrite/.claude/agents/product-specialist.md +0 -72
  46. package/all/copy-overwrite/.claude/agents/quality-specialist.md +0 -55
  47. package/all/copy-overwrite/.claude/agents/security-specialist.md +0 -58
  48. package/all/copy-overwrite/.claude/agents/skill-evaluator.md +0 -246
  49. package/all/copy-overwrite/.claude/agents/slash-command-architect.md +0 -87
  50. package/all/copy-overwrite/.claude/agents/test-specialist.md +0 -64
  51. package/all/copy-overwrite/.claude/agents/verification-specialist.md +0 -189
  52. package/all/copy-overwrite/.claude/agents/web-search-researcher.md +0 -112
  53. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +0 -7
  54. package/all/copy-overwrite/.claude/commands/git/commit-submit-pr-and-verify.md +0 -7
  55. package/all/copy-overwrite/.claude/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  56. package/all/copy-overwrite/.claude/commands/git/commit.md +0 -7
  57. package/all/copy-overwrite/.claude/commands/git/prune.md +0 -6
  58. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +0 -7
  59. package/all/copy-overwrite/.claude/commands/jira/create.md +0 -7
  60. package/all/copy-overwrite/.claude/commands/jira/sync.md +0 -7
  61. package/all/copy-overwrite/.claude/commands/jira/verify.md +0 -7
  62. package/all/copy-overwrite/.claude/commands/lisa/review-implementation.md +0 -7
  63. package/all/copy-overwrite/.claude/commands/plan/add-test-coverage.md +0 -7
  64. package/all/copy-overwrite/.claude/commands/plan/create.md +0 -6
  65. package/all/copy-overwrite/.claude/commands/plan/execute.md +0 -7
  66. package/all/copy-overwrite/.claude/commands/plan/fix-linter-error.md +0 -7
  67. package/all/copy-overwrite/.claude/commands/plan/local-code-review.md +0 -6
  68. package/all/copy-overwrite/.claude/commands/plan/lower-code-complexity.md +0 -6
  69. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md +0 -7
  70. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md +0 -7
  71. package/all/copy-overwrite/.claude/commands/pull-request/review.md +0 -7
  72. package/all/copy-overwrite/.claude/commands/security/zap-scan.md +0 -6
  73. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +0 -6
  74. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +0 -6
  75. package/all/copy-overwrite/.claude/commands/tasks/load.md +0 -7
  76. package/all/copy-overwrite/.claude/commands/tasks/sync.md +0 -7
  77. package/all/copy-overwrite/.claude/hooks/check-tired-boss.sh +0 -61
  78. package/all/copy-overwrite/.claude/hooks/debug-hook.sh +0 -47
  79. package/all/copy-overwrite/.claude/hooks/enforce-plan-rules.sh +0 -15
  80. package/all/copy-overwrite/.claude/hooks/notify-ntfy.sh +0 -183
  81. package/all/copy-overwrite/.claude/hooks/setup-jira-cli.sh +0 -52
  82. package/all/copy-overwrite/.claude/hooks/sync-tasks.sh +0 -107
  83. package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +0 -23
  84. package/all/copy-overwrite/.claude/hooks/track-plan-sessions.sh +0 -164
  85. package/all/copy-overwrite/.claude/rules/coding-philosophy.md +0 -428
  86. package/all/copy-overwrite/.claude/rules/verfication.md +0 -541
  87. package/all/copy-overwrite/.claude/skills/agent-design-best-practices/SKILL.md +0 -219
  88. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +0 -48
  89. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  90. package/all/copy-overwrite/.claude/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  91. package/all/copy-overwrite/.claude/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  92. package/all/copy-overwrite/.claude/skills/git-prune/SKILL.md +0 -35
  93. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +0 -44
  94. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +0 -41
  95. package/all/copy-overwrite/.claude/skills/jira-sync/SKILL.md +0 -63
  96. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +0 -29
  97. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +0 -209
  98. package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +0 -44
  99. package/all/copy-overwrite/.claude/skills/plan-execute/SKILL.md +0 -89
  100. package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +0 -45
  101. package/all/copy-overwrite/.claude/skills/plan-local-code-review/SKILL.md +0 -88
  102. package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +0 -44
  103. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +0 -45
  104. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  105. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +0 -68
  106. package/all/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +0 -33
  107. package/all/copy-overwrite/.claude/skills/skill-creator/LICENSE.txt +0 -202
  108. package/all/copy-overwrite/.claude/skills/skill-creator/SKILL.md +0 -210
  109. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  110. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/init_skill.py +0 -305
  111. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/package_skill.py +0 -112
  112. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/quick_validate.py +0 -67
  113. package/all/copy-overwrite/.claude/skills/sonarqube-check/SKILL.md +0 -11
  114. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +0 -8
  115. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +0 -88
  116. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +0 -108
  117. package/eslint-plugin-code-organization/README.md +0 -149
  118. package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  119. package/eslint-plugin-code-organization/index.js +0 -28
  120. package/eslint-plugin-code-organization/package.json +0 -10
  121. package/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
  122. package/expo/copy-overwrite/.claude/agents/ops-specialist.md +0 -124
  123. package/expo/copy-overwrite/.claude/rules/expo-verification.md +0 -261
  124. package/expo/copy-overwrite/.claude/skills/apollo-client/SKILL.md +0 -238
  125. package/expo/copy-overwrite/.claude/skills/apollo-client/references/mutation-patterns.md +0 -360
  126. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/SKILL.md +0 -360
  127. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/atomic-levels.md +0 -417
  128. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/folder-structure.md +0 -257
  129. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/gluestack-mapping.md +0 -233
  130. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +0 -329
  131. package/expo/copy-overwrite/.claude/skills/container-view-pattern/SKILL.md +0 -299
  132. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/examples.md +0 -749
  133. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/patterns.md +0 -318
  134. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/create_component.py +0 -200
  135. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/validate_component.py +0 -209
  136. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/SKILL.md +0 -268
  137. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/common-issues.md +0 -619
  138. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/file-extensions.md +0 -340
  139. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/platform-api.md +0 -276
  140. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +0 -416
  141. package/expo/copy-overwrite/.claude/skills/directory-structure/SKILL.md +0 -202
  142. package/expo/copy-overwrite/.claude/skills/directory-structure/scripts/validate_structure.py +0 -445
  143. package/expo/copy-overwrite/.claude/skills/expo-env-config/SKILL.md +0 -309
  144. package/expo/copy-overwrite/.claude/skills/expo-env-config/references/validation-patterns.md +0 -417
  145. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/SKILL.md +0 -431
  146. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/references/official-docs.md +0 -290
  147. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/scripts/generate-route.py +0 -171
  148. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/SKILL.md +0 -411
  149. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/color-tokens.md +0 -343
  150. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/component-mapping.md +0 -307
  151. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/spacing-scale.md +0 -300
  152. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/scripts/validate_styling.py +0 -315
  153. package/expo/copy-overwrite/.claude/skills/local-state/SKILL.md +0 -362
  154. package/expo/copy-overwrite/.claude/skills/local-state/references/async-storage.md +0 -505
  155. package/expo/copy-overwrite/.claude/skills/local-state/references/persistence-patterns.md +0 -711
  156. package/expo/copy-overwrite/.claude/skills/local-state/references/reactive-variables.md +0 -446
  157. package/expo/copy-overwrite/.claude/skills/ops-browser-uat/SKILL.md +0 -124
  158. package/expo/copy-overwrite/.claude/skills/ops-check-logs/SKILL.md +0 -211
  159. package/expo/copy-overwrite/.claude/skills/ops-db-ops/SKILL.md +0 -119
  160. package/expo/copy-overwrite/.claude/skills/ops-deploy/SKILL.md +0 -119
  161. package/expo/copy-overwrite/.claude/skills/ops-monitor-errors/SKILL.md +0 -99
  162. package/expo/copy-overwrite/.claude/skills/ops-performance/SKILL.md +0 -165
  163. package/expo/copy-overwrite/.claude/skills/ops-run-local/SKILL.md +0 -166
  164. package/expo/copy-overwrite/.claude/skills/ops-verify-health/SKILL.md +0 -101
  165. package/expo/copy-overwrite/.claude/skills/owasp-zap/SKILL.md +0 -56
  166. package/expo/copy-overwrite/.claude/skills/playwright-selectors/SKILL.md +0 -223
  167. package/expo/copy-overwrite/.claude/skills/testing-library/SKILL.md +0 -314
  168. package/expo/copy-overwrite/.claude/skills/testing-library/references/async-patterns.md +0 -420
  169. package/expo/copy-overwrite/.claude/skills/testing-library/references/expo-router-testing.md +0 -556
  170. package/expo/copy-overwrite/.claude/skills/testing-library/references/mocking-patterns.md +0 -590
  171. package/expo/copy-overwrite/.claude/skills/testing-library/references/query-priority.md +0 -291
  172. package/expo/copy-overwrite/eslint-plugin-component-structure/README.md +0 -234
  173. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +0 -89
  174. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +0 -201
  175. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +0 -294
  176. package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +0 -37
  177. package/expo/copy-overwrite/eslint-plugin-component-structure/package.json +0 -10
  178. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +0 -235
  179. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +0 -96
  180. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +0 -183
  181. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +0 -243
  182. package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +0 -192
  183. package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +0 -31
  184. package/expo/copy-overwrite/eslint-plugin-ui-standards/package.json +0 -10
  185. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +0 -56
  186. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +0 -60
  187. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/SKILL.md +0 -176
  188. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/advanced-features.md +0 -527
  189. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/project-patterns.md +0 -483
  190. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/quick-start.md +0 -257
  191. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/resolvers-mutations.md +0 -413
  192. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/types-scalars.md +0 -513
  193. package/nestjs/copy-overwrite/.claude/skills/nestjs-rules/SKILL.md +0 -536
  194. package/nestjs/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +0 -33
  195. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/SKILL.md +0 -275
  196. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/configuration-patterns.md +0 -487
  197. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/entity-patterns.md +0 -450
  198. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/observability-patterns.md +0 -536
  199. package/rails/copy-overwrite/.claude/skills/action-controller-best-practices/SKILL.md +0 -374
  200. package/rails/copy-overwrite/.claude/skills/action-view-best-practices/SKILL.md +0 -335
  201. package/rails/copy-overwrite/.claude/skills/active-record-model-best-practices/SKILL.md +0 -166
  202. package/rails/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +0 -45
  203. package/rails/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +0 -45
  204. package/rails/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +0 -48
  205. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +0 -46
  206. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  207. package/typescript/copy-overwrite/.claude/hooks/format-on-edit.sh +0 -76
  208. package/typescript/copy-overwrite/.claude/hooks/install-pkgs.sh +0 -64
  209. package/typescript/copy-overwrite/.claude/hooks/lint-on-edit.sh +0 -105
  210. package/typescript/copy-overwrite/.claude/hooks/sg-scan-on-edit.sh +0 -68
  211. package/typescript/copy-overwrite/.claude/skills/jsdoc-best-practices/SKILL.md +0 -432
  212. package/typescript/copy-overwrite/eslint-plugin-code-organization/README.md +0 -149
  213. package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  214. package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +0 -28
  215. package/typescript/copy-overwrite/eslint-plugin-code-organization/package.json +0 -10
  216. package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
@@ -1,211 +0,0 @@
1
- ---
2
- name: ops-check-logs
3
- description: Check application logs from local processes, browser console, React Native device logs, or remote AWS CloudWatch. Supports log tailing, filtering, and error searching across all platforms.
4
- allowed-tools:
5
- - Bash
6
- - Read
7
- ---
8
-
9
- # Ops: Check Logs
10
-
11
- View and search logs across all platforms and environments.
12
-
13
- **Argument**: `$ARGUMENTS` — target and optional filter (e.g., `dev errors`, `staging api`, `local`, `browser`, `device ios`, `production {function}`)
14
-
15
- ## Path Convention
16
-
17
- - **Frontend**: Current project directory (`.`)
18
- - **Backend**: `${BACKEND_DIR:-../backend-v2}` — set `BACKEND_DIR` in `.claude/settings.local.json` if your backend is elsewhere
19
-
20
- ## Discovery
21
-
22
- 1. Read backend `package.json` to discover `logs:*`, `logs:watch:*`, and `aws:signin:*` scripts
23
- 2. Extract function names from `logs:{env}` scripts (typically set via `FUNCTION_NAME` env var)
24
- 3. Read `.env.{environment}` to find Sentry DSN for error correlation
25
-
26
- ## Local Process Logs
27
-
28
- Local services run in foreground processes. Their logs are captured in the terminal where they were started.
29
-
30
- - **Frontend**: stdout from `bun start:local` or `bun start:dev` (Metro bundler)
31
- - **Backend**: stdout from `IS_OFFLINE=true bun run start:local` (Serverless Offline)
32
-
33
- If services were started via the `ops-run-local` skill with `run_in_background`, check the background task output file.
34
-
35
- ## Browser Console Logs (Expo Web)
36
-
37
- For inspecting JavaScript errors, warnings, and `console.log` output in the browser at runtime.
38
-
39
- ### Via Playwright MCP Tools (automated)
40
-
41
- Use when you need to capture browser logs programmatically during UAT or debugging.
42
-
43
- 1. **Load Playwright tools** — use `ToolSearch` to search for `playwright browser`.
44
-
45
- 2. **Navigate to the app**:
46
- - `browser_navigate` to the target URL (discover from `e2e/constants.ts` or `.env.*` files)
47
-
48
- 3. **Capture console messages**:
49
- - `browser_console_messages` — returns all `console.log`, `console.warn`, `console.error` output
50
-
51
- 4. **Check for failed network requests**:
52
- - `browser_network_requests` — shows all HTTP requests including 4xx/5xx failures
53
-
54
- 5. **Run custom JS to inspect state**:
55
- - `browser_evaluate` with script: `JSON.stringify(performance.getEntriesByType('resource').filter(r => r.duration > 1000).map(r => ({name: r.name, duration: r.duration})))`
56
-
57
- ### Via Browser DevTools (manual)
58
-
59
- When a developer is debugging interactively:
60
-
61
- 1. Open the app in Chrome (`http://localhost:8081`)
62
- 2. Open Chrome DevTools: `Cmd+Option+I` (macOS) or `F12`
63
- 3. **Console tab** — JS errors, warnings, and log output
64
- 4. **Network tab** — failed API requests (filter by `4xx` or `5xx`)
65
- 5. **Performance tab** — runtime performance profiling
66
-
67
- ## React Native Device Logs
68
-
69
- For inspecting logs on iOS and Android devices/simulators when running the native app.
70
-
71
- ### React Native DevTools (primary — press `j`)
72
-
73
- The modern debugging tool for Expo apps (React Native 0.76+):
74
-
75
- 1. Start the app: `bun start:local` or `bun start:dev`
76
- 2. Press `j` in the Metro terminal to open React Native DevTools
77
- 3. Available tabs:
78
- - **Console** — interactive JS console connected to the app
79
- - **Sources** — set breakpoints, step through code
80
- - **Network** — inspect fetch requests and media loads
81
- - **Memory** — heap snapshots and memory profiling
82
-
83
- ### Expo Developer Menu (press `m`)
84
-
85
- Press `m` in the Metro terminal to open the Developer Menu on the connected device:
86
- - Toggle performance monitor (RAM, JS heap, Views, FPS)
87
- - Toggle element inspector
88
- - Open JS debugger
89
- - Reload app
90
-
91
- ### iOS Logs
92
-
93
- ```bash
94
- # Via Expo CLI (logs appear in Metro terminal automatically)
95
- # Just run the app — console.log output streams to the terminal
96
-
97
- # Via Xcode Console (native-level logs)
98
- # Open Xcode > Devices and Simulators (Shift+Cmd+2) > Open Console
99
-
100
- # Via macOS Console app (simulator logs)
101
- # Open Console.app > filter by process name
102
- ```
103
-
104
- ### Android Logs
105
-
106
- ```bash
107
- # Via Expo CLI (logs appear in Metro terminal automatically)
108
- # Just run the app — console.log output streams to the terminal
109
-
110
- # Via adb logcat (native-level logs, verbose)
111
- adb logcat *:E # Errors only
112
- adb logcat -s ReactNativeJS # React Native JS logs only
113
- adb logcat -s ReactNativeJS:V *:S # JS logs verbose, suppress everything else
114
-
115
- # Via Android Studio Logcat
116
- # Open Android Studio > View > Tool Windows > Logcat
117
- # Filter by package name or "ReactNativeJS"
118
- ```
119
-
120
- ### Production Crash Logs (Device)
121
-
122
- For production crash investigation on native platforms:
123
- - **iOS**: Xcode Crashes Organizer (TestFlight/App Store builds)
124
- - **Android**: Google Play Console > Crashes section
125
- - **Both**: Sentry captures JS-level crashes — use `ops-monitor-errors` skill
126
-
127
- ## Remote Logs (CloudWatch via Serverless Framework)
128
-
129
- Discover available log scripts from the backend `package.json` (matching `logs:*` and `logs:watch:*`).
130
-
131
- ### Prerequisites
132
-
133
- ```bash
134
- cd "${BACKEND_DIR:-../backend-v2}"
135
- bun run aws:signin:{env}
136
- ```
137
-
138
- ### View Recent Logs
139
-
140
- ```bash
141
- cd "${BACKEND_DIR:-../backend-v2}"
142
- FUNCTION_NAME={fn} bun run logs:{env}
143
- ```
144
-
145
- ### Tail Logs (follow mode)
146
-
147
- ```bash
148
- cd "${BACKEND_DIR:-../backend-v2}"
149
- FUNCTION_NAME={fn} bun run logs:watch:{env}
150
- ```
151
-
152
- ## Remote Logs (AWS CLI — Advanced Filtering)
153
-
154
- For more advanced filtering, use the AWS CLI directly. Discover the AWS profile from backend `package.json` `aws:signin:*` scripts.
155
-
156
- ### Discover Log Groups
157
-
158
- ```bash
159
- aws logs describe-log-groups \
160
- --profile {aws-profile} \
161
- --region us-east-1 \
162
- --query 'logGroups[].logGroupName' \
163
- --output text | tr '\t' '\n'
164
- ```
165
-
166
- ### Filter for Errors (last 30 minutes)
167
-
168
- ```bash
169
- aws logs filter-log-events \
170
- --profile {aws-profile} \
171
- --region us-east-1 \
172
- --log-group-name "{log-group}" \
173
- --start-time $(date -v-30M +%s000) \
174
- --filter-pattern "ERROR" \
175
- --query 'events[].message' \
176
- --output text
177
- ```
178
-
179
- ### Tail Live Logs
180
-
181
- ```bash
182
- aws logs tail "{log-group}" \
183
- --profile {aws-profile} \
184
- --region us-east-1 \
185
- --follow \
186
- --since 10m
187
- ```
188
-
189
- ## EAS Build Logs
190
-
191
- For frontend build issues:
192
-
193
- ```bash
194
- # List recent builds
195
- eas build:list --limit 5
196
-
197
- # View specific build details
198
- eas build:view {build-id}
199
- ```
200
-
201
- ## Output Format
202
-
203
- Report log findings as:
204
-
205
- | Source | Timestamp | Level | Context | Message |
206
- |--------|-----------|-------|---------|---------|
207
- | CloudWatch | 2024-01-15T10:30:00Z | ERROR | api | Connection timeout to RDS |
208
- | Browser | — | ERROR | console | TypeError: Cannot read property 'name' |
209
- | Device | — | WARN | ReactNativeJS | VirtualizedList: missing keys |
210
-
211
- Include a summary of findings: total errors, warnings, and any patterns observed.
@@ -1,119 +0,0 @@
1
- ---
2
- name: ops-db-ops
3
- description: Database migrations, reverts, schema generation, and GraphQL codegen for Expo + serverless backend projects. Operates on the backend (TypeORM) and frontend (GraphQL code generation).
4
- allowed-tools:
5
- - Bash
6
- - Read
7
- ---
8
-
9
- # Ops: Database Operations
10
-
11
- Manage database migrations, schema generation, and GraphQL code generation.
12
-
13
- **Argument**: `$ARGUMENTS` — operation (`migrate`, `revert`, `generate`, `schema`, `codegen`) and optional environment (default: `dev`)
14
-
15
- ## Path Convention
16
-
17
- - **Frontend**: Current project directory (`.`)
18
- - **Backend**: `${BACKEND_DIR:-../backend-v2}` — set `BACKEND_DIR` in `.claude/settings.local.json` if your backend is elsewhere
19
-
20
- ## Safety
21
-
22
- **CRITICAL**: Never run migrations or reverts against production without explicit human confirmation.
23
-
24
- ## Discovery
25
-
26
- Read the backend `package.json` to discover available migration and schema scripts:
27
- - `migration:run:*` — run pending migrations
28
- - `migration:revert:*` — revert last migration
29
- - `migration:generate:*` — generate new migration from entity changes
30
- - `migration:create` — create empty migration
31
- - `generate:sql-schema*` — regenerate SQL schema for MCP
32
- - `aws:signin:*` — AWS credential scripts
33
-
34
- Read the frontend `package.json` to discover codegen scripts:
35
- - `fetch:graphql:schema:*` — fetch GraphQL schema
36
- - `generate:types:*` — generate TypeScript types
37
-
38
- ## AWS Prerequisite
39
-
40
- All database operations (except `codegen`) require AWS credentials. Run the backend's AWS signin script first:
41
-
42
- ```bash
43
- cd "${BACKEND_DIR:-../backend-v2}"
44
- bun run aws:signin:{env}
45
- ```
46
-
47
- ## Operations
48
-
49
- ### migrate (run pending migrations)
50
-
51
- **Local database**:
52
- ```bash
53
- cd "${BACKEND_DIR:-../backend-v2}"
54
- STAGE={env} bun run migration:run:local
55
- ```
56
-
57
- **Remote database**:
58
- ```bash
59
- cd "${BACKEND_DIR:-../backend-v2}"
60
- STAGE={env} bun run migration:run:remote:local
61
- ```
62
-
63
- ### revert (undo last migration)
64
-
65
- **Local database**:
66
- ```bash
67
- cd "${BACKEND_DIR:-../backend-v2}"
68
- STAGE={env} bun run migration:revert:local
69
- ```
70
-
71
- **Remote database**:
72
- ```bash
73
- cd "${BACKEND_DIR:-../backend-v2}"
74
- STAGE={env} bun run migration:revert:remote:local
75
- ```
76
-
77
- ### generate (create new migration from entity changes)
78
-
79
- ```bash
80
- cd "${BACKEND_DIR:-../backend-v2}"
81
- NAME={migration_name} bun run migration:generate:{env}
82
- ```
83
-
84
- ### create (create empty migration)
85
-
86
- ```bash
87
- cd "${BACKEND_DIR:-../backend-v2}"
88
- NAME={migration_name} bun run migration:create
89
- ```
90
-
91
- ### schema (regenerate SQL schema for MCP)
92
-
93
- ```bash
94
- cd "${BACKEND_DIR:-../backend-v2}"
95
- STAGE={env} bun run generate:sql-schema
96
- ```
97
-
98
- ### codegen (regenerate GraphQL types in frontend)
99
-
100
- 1. **Fetch schema**:
101
- ```bash
102
- bun run fetch:graphql:schema:{env}
103
- ```
104
-
105
- 2. **Generate types**:
106
- ```bash
107
- bun run generate:types:{env}
108
- ```
109
-
110
- **Note**: The backend must be running (locally or deployed) for schema fetching to work.
111
-
112
- ## Output Format
113
-
114
- Report operation result:
115
-
116
- | Operation | Environment | Target | Status | Details |
117
- |-----------|-------------|--------|--------|---------|
118
- | migrate | dev | local DB | SUCCESS | 2 migrations applied |
119
- | codegen | dev | frontend | SUCCESS | Types regenerated |
@@ -1,119 +0,0 @@
1
- ---
2
- name: ops-deploy
3
- description: Deploy Expo frontend (EAS Update/Build) or serverless backend (Serverless Framework) to dev, staging, or production environments.
4
- allowed-tools:
5
- - Bash
6
- - Read
7
- ---
8
-
9
- # Ops: Deploy
10
-
11
- Deploy the application to remote environments.
12
-
13
- **Argument**: `$ARGUMENTS` — environment (`dev`, `staging`, `production`) and optional target (`frontend`, `backend`, `both`; default: `both`)
14
-
15
- ## Path Convention
16
-
17
- - **Frontend**: Current project directory (`.`)
18
- - **Backend**: `${BACKEND_DIR:-../backend-v2}` — set `BACKEND_DIR` in `.claude/settings.local.json` if your backend is elsewhere
19
-
20
- ## Safety
21
-
22
- **CRITICAL**: Production deployments require explicit human confirmation before proceeding. Always ask for confirmation when `$ARGUMENTS` contains `production`.
23
-
24
- ## Discovery
25
-
26
- 1. Read backend `package.json` to discover `deploy:*`, `aws:signin:*` scripts
27
- 2. Read frontend `package.json` to discover available scripts
28
- 3. Read `.env.{environment}` files to find GraphQL URLs for post-deploy verification
29
-
30
- ## CI/CD Path (Preferred)
31
-
32
- The standard deployment path is via CI/CD — pushing to environment branches triggers auto-deploy. Manual deployment instructions below are for when CI/CD is not suitable.
33
-
34
- ## Frontend Deployment
35
-
36
- ### EAS Update (OTA — over-the-air JavaScript update)
37
-
38
- Use for JS-only changes (no native module changes).
39
-
40
- 1. Verify EAS CLI:
41
- ```bash
42
- eas whoami
43
- ```
44
- If not authenticated: `eas login`
45
-
46
- 2. Copy environment file:
47
- ```bash
48
- cp .env.{environment} .env
49
- ```
50
-
51
- 3. Deploy OTA update:
52
- ```bash
53
- STAGE={env} NODE_OPTIONS="--max-old-space-size=8192" eas update --auto --channel={env} --message="Manual update"
54
- ```
55
-
56
- 4. Verify deployment:
57
- ```bash
58
- eas update:list --branch {env} --limit 3
59
- ```
60
-
61
- ### EAS Build (Native binary — only when `app.config.ts` or native modules change)
62
-
63
- 1. ```bash
64
- eas build --platform all --non-interactive --no-wait --profile={profile}
65
- ```
66
-
67
- 2. Check build status:
68
- ```bash
69
- eas build:list --limit 5
70
- ```
71
-
72
- ## Backend Deployment
73
-
74
- ### Full Deploy (Serverless Framework)
75
-
76
- 1. AWS signin (discover script name from backend `package.json`):
77
- ```bash
78
- cd "${BACKEND_DIR:-../backend-v2}"
79
- bun run aws:signin:{env}
80
- ```
81
-
82
- 2. Deploy all functions:
83
- ```bash
84
- cd "${BACKEND_DIR:-../backend-v2}"
85
- bun run deploy:{env}
86
- ```
87
-
88
- 3. Verify (use the GraphQL URL from `.env.{environment}`):
89
- ```bash
90
- curl -sf {graphql-url} -X POST \
91
- -H "Content-Type: application/json" \
92
- -d '{"query":"{ __typename }"}' \
93
- -w "\nHTTP %{http_code} in %{time_total}s\n"
94
- ```
95
-
96
- ### Single Function Deploy
97
-
98
- Discover available function names from backend `package.json` `deploy:function:*` scripts:
99
-
100
- ```bash
101
- cd "${BACKEND_DIR:-../backend-v2}"
102
- FUNCTION_NAME={fn} bun run deploy:function:{env}
103
- ```
104
-
105
- ## Post-Deploy Verification
106
-
107
- After any deployment:
108
-
109
- 1. **Health check** the deployed environment (use `ops-verify-health` skill)
110
- 2. **Check logs** for errors in the first 5 minutes (use `ops-check-logs` skill)
111
- 3. **Monitor Sentry** for new issues (use `ops-monitor-errors` skill)
112
- 4. **Run browser UAT smoke test** against the deployed environment (use `ops-browser-uat` skill)
113
-
114
- Report deployment result as a table:
115
-
116
- | Target | Environment | Method | Status | Verification |
117
- |--------|-------------|--------|--------|-------------|
118
- | Frontend | dev | EAS Update | SUCCESS/FAIL | URL responds |
119
- | Backend | dev | Serverless | SUCCESS/FAIL | GraphQL responds |
@@ -1,99 +0,0 @@
1
- ---
2
- name: ops-monitor-errors
3
- description: Monitor Sentry for unresolved errors in frontend and backend projects. Supports filtering by project, environment, and time range.
4
- allowed-tools:
5
- - Bash
6
- - Read
7
- ---
8
-
9
- # Ops: Monitor Errors
10
-
11
- Monitor Sentry for errors in the application.
12
-
13
- **Argument**: `$ARGUMENTS` — project (`frontend`, `backend`, `all`; default: `all`) and optional time range (default: `1h`)
14
-
15
- ## Discovery
16
-
17
- Discover Sentry configuration from:
18
- 1. `.sentryclirc` — org and project names
19
- 2. `.env.*` files — `EXPO_PUBLIC_SENTRY_DSN` for DSN
20
- 3. `package.json` — `@sentry/react-native` (frontend) or `@sentry/node` (backend) for project type
21
-
22
- ## Sentry CLI
23
-
24
- ### List Unresolved Issues
25
-
26
- ```bash
27
- sentry-cli issues list \
28
- --org {org} \
29
- --project {project}
30
- ```
31
-
32
- ### Filter by Environment
33
-
34
- ```bash
35
- sentry-cli issues list \
36
- --org {org} \
37
- --project {project} \
38
- --query "is:unresolved environment:{env}"
39
- ```
40
-
41
- ### Post-Deploy Check (new issues since deploy)
42
-
43
- ```bash
44
- sentry-cli issues list \
45
- --org {org} \
46
- --project {project} \
47
- --query "is:unresolved firstSeen:-{time}"
48
- ```
49
-
50
- Where `{time}` is a Sentry duration like `1h`, `30m`, `24h`.
51
-
52
- ## Sentry API (Fallback)
53
-
54
- If `sentry-cli` is not installed or not authenticated, use the API directly:
55
-
56
- ### List Unresolved Issues
57
-
58
- ```bash
59
- curl -sf "https://sentry.io/api/0/projects/{org}/{project}/issues/?query=is:unresolved&sort=date" \
60
- -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" | \
61
- jq '.[] | {id: .id, title: .title, count: .count, userCount: .userCount, firstSeen: .firstSeen, lastSeen: .lastSeen}'
62
- ```
63
-
64
- ### Filter by Environment
65
-
66
- ```bash
67
- curl -sf "https://sentry.io/api/0/projects/{org}/{project}/issues/?query=is:unresolved+environment:{env}&sort=date" \
68
- -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" | \
69
- jq '.[] | {id: .id, title: .title, count: .count, userCount: .userCount}'
70
- ```
71
-
72
- ## Post-Deploy Workflow
73
-
74
- After any deployment:
75
-
76
- 1. Wait 5 minutes for errors to surface
77
- 2. Check for new unresolved issues in the deployed environment
78
- 3. Assess severity: are these new regressions or pre-existing?
79
- 4. Report findings with severity assessment
80
-
81
- ## Output Format
82
-
83
- Report errors as a table:
84
-
85
- | Issue ID | Title | Events | Users | First Seen | Severity |
86
- |----------|-------|--------|-------|------------|----------|
87
- | 12345 | TypeError: Cannot read property 'name' | 42 | 15 | 5m ago | HIGH |
88
- | 12346 | Network request failed | 3 | 2 | 2h ago | MEDIUM |
89
-
90
- ### Severity Classification
91
-
92
- | Severity | Criteria |
93
- |----------|----------|
94
- | CRITICAL | > 100 events or > 50 users in last hour |
95
- | HIGH | > 10 events or > 5 users, appeared after deploy |
96
- | MEDIUM | Recurring issue, < 10 events |
97
- | LOW | < 3 events, no user impact |
98
-
99
- Include summary: total unresolved issues, new since last deploy, and recommendation (proceed / investigate / rollback).
@@ -1,165 +0,0 @@
1
- ---
2
- name: ops-performance
3
- description: Performance analysis for Expo + serverless backend projects. Runs Lighthouse audits, bundle size analysis, and k6 load tests.
4
- allowed-tools:
5
- - Bash
6
- - Read
7
- ---
8
-
9
- # Ops: Performance
10
-
11
- Analyze application performance.
12
-
13
- **Argument**: `$ARGUMENTS` — analysis type (`lighthouse`, `bundle`, `k6`, `all`; default: `all`) and optional target environment
14
-
15
- ## Path Convention
16
-
17
- - **Frontend**: Current project directory (`.`)
18
- - **Backend**: `${BACKEND_DIR:-../backend-v2}` — set `BACKEND_DIR` in `.claude/settings.local.json` if your backend is elsewhere
19
-
20
- ## Discovery
21
-
22
- 1. Read frontend `package.json` for `lighthouse:check`, `export:web`, `analyze:bundle` scripts
23
- 2. Read backend `package.json` for `k6:*` scripts
24
- 3. Read `e2e/constants.ts` or `.env.*` files for environment URLs
25
-
26
- ## Lighthouse Audit
27
-
28
- ### Against Local
29
-
30
- ```bash
31
- npx lighthouse http://localhost:8081 \
32
- --output=json \
33
- --output-path=./lighthouse-local.json \
34
- --chrome-flags='--headless --no-sandbox'
35
- ```
36
-
37
- ### Against Deployed Environment
38
-
39
- Discover frontend URLs from `e2e/constants.ts` or `.env.*` files:
40
-
41
- ```bash
42
- npx lighthouse https://{env_url} \
43
- --output=json \
44
- --output-path=./lighthouse-{env}.json \
45
- --chrome-flags='--headless --no-sandbox'
46
- ```
47
-
48
- ### LHCI (Lighthouse CI — uses project config)
49
-
50
- ```bash
51
- bun run lighthouse:check
52
- ```
53
-
54
- ### Parse Lighthouse Results
55
-
56
- ```bash
57
- cat lighthouse-{env}.json | jq '{
58
- performance: .categories.performance.score,
59
- accessibility: .categories.accessibility.score,
60
- bestPractices: .categories["best-practices"].score,
61
- seo: .categories.seo.score,
62
- fcp: .audits["first-contentful-paint"].displayValue,
63
- lcp: .audits["largest-contentful-paint"].displayValue,
64
- tbt: .audits["total-blocking-time"].displayValue,
65
- cls: .audits["cumulative-layout-shift"].displayValue,
66
- si: .audits["speed-index"].displayValue
67
- }'
68
- ```
69
-
70
- ## Bundle Analysis
71
-
72
- ### Full Analysis (export + source-map-explorer)
73
-
74
- ```bash
75
- bun run export:web && bun run analyze:bundle
76
- ```
77
-
78
- ### Quick Size Check
79
-
80
- ```bash
81
- bun run export:web
82
- echo "=== Total Bundle Size ==="
83
- du -sh dist/
84
- echo ""
85
- echo "=== Largest JS Files ==="
86
- find dist -name "*.js" -exec ls -lhS {} + 2>/dev/null | head -20
87
- ```
88
-
89
- ## k6 Load Tests
90
-
91
- Discover available k6 scripts from the backend `package.json` (matching `k6:*`).
92
-
93
- ### Smoke Test (minimal load, verify endpoints work)
94
-
95
- ```bash
96
- cd "${BACKEND_DIR:-../backend-v2}"
97
- bun run k6:smoke
98
- ```
99
-
100
- ### Load Test (normal traffic simulation)
101
-
102
- ```bash
103
- cd "${BACKEND_DIR:-../backend-v2}"
104
- bun run k6:load
105
- ```
106
-
107
- ### Stress Test (push beyond normal capacity)
108
-
109
- ```bash
110
- cd "${BACKEND_DIR:-../backend-v2}"
111
- bun run k6:stress
112
- ```
113
-
114
- ### Spike Test (sudden traffic burst)
115
-
116
- ```bash
117
- cd "${BACKEND_DIR:-../backend-v2}"
118
- bun run k6:spike
119
- ```
120
-
121
- ### Docker-based k6 (no local k6 install needed)
122
-
123
- ```bash
124
- cd "${BACKEND_DIR:-../backend-v2}"
125
- bun run k6:docker:smoke
126
- bun run k6:docker:load
127
- ```
128
-
129
- ## Output Format
130
-
131
- ### Lighthouse Scores
132
-
133
- | Metric | Score | Rating |
134
- |--------|-------|--------|
135
- | Performance | 0.85 | GOOD |
136
- | Accessibility | 0.92 | GOOD |
137
- | Best Practices | 0.88 | GOOD |
138
- | SEO | 0.95 | GOOD |
139
-
140
- ### Core Web Vitals
141
-
142
- | Metric | Value | Threshold | Status |
143
- |--------|-------|-----------|--------|
144
- | FCP (First Contentful Paint) | 1.2s | < 1.8s | PASS |
145
- | LCP (Largest Contentful Paint) | 2.1s | < 2.5s | PASS |
146
- | TBT (Total Blocking Time) | 150ms | < 200ms | PASS |
147
- | CLS (Cumulative Layout Shift) | 0.05 | < 0.1 | PASS |
148
-
149
- ### Bundle Size
150
-
151
- | Category | Size | Notes |
152
- |----------|------|-------|
153
- | Total dist/ | 4.2 MB | |
154
- | Largest chunk | 1.1 MB | vendor.js |
155
-
156
- ### k6 Results
157
-
158
- | Metric | Value |
159
- |--------|-------|
160
- | Requests/sec | 450 |
161
- | Avg response time | 120ms |
162
- | p95 response time | 350ms |
163
- | Error rate | 0.1% |
164
-
165
- Include recommendations for any metrics that fall below thresholds.