@codyswann/lisa 1.67.2 → 1.68.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 (128) hide show
  1. package/all/copy-overwrite/.claude/rules/base-rules.md +0 -50
  2. package/all/copy-overwrite/.claude/rules/intent-routing.md +115 -0
  3. package/all/copy-overwrite/.claude/rules/verification.md +27 -538
  4. package/package.json +1 -1
  5. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  6. package/plugins/lisa/agents/architecture-specialist.md +4 -9
  7. package/plugins/lisa/agents/bug-fixer.md +40 -0
  8. package/plugins/lisa/agents/builder.md +41 -0
  9. package/plugins/lisa/agents/debug-specialist.md +4 -93
  10. package/plugins/lisa/agents/jira-agent.md +85 -0
  11. package/plugins/lisa/agents/performance-specialist.md +2 -11
  12. package/plugins/lisa/agents/product-specialist.md +2 -10
  13. package/plugins/lisa/agents/quality-specialist.md +2 -0
  14. package/plugins/lisa/agents/security-specialist.md +3 -9
  15. package/plugins/lisa/agents/test-specialist.md +2 -16
  16. package/plugins/lisa/agents/verification-specialist.md +38 -103
  17. package/plugins/lisa/commands/build.md +10 -0
  18. package/plugins/lisa/commands/fix.md +10 -0
  19. package/plugins/lisa/commands/improve.md +15 -0
  20. package/plugins/lisa/commands/investigate.md +10 -0
  21. package/plugins/lisa/commands/monitor.md +10 -0
  22. package/plugins/lisa/commands/plan/create.md +1 -1
  23. package/plugins/lisa/commands/plan/execute.md +1 -2
  24. package/plugins/lisa/commands/plan.md +10 -0
  25. package/plugins/lisa/commands/review.md +10 -0
  26. package/plugins/lisa/commands/ship.md +10 -0
  27. package/plugins/lisa/skills/acceptance-criteria/SKILL.md +71 -0
  28. package/plugins/lisa/skills/bug-triage/SKILL.md +23 -0
  29. package/plugins/lisa/skills/codebase-research/SKILL.md +87 -0
  30. package/plugins/lisa/skills/epic-triage/SKILL.md +28 -0
  31. package/plugins/lisa/skills/performance-review/SKILL.md +94 -0
  32. package/plugins/lisa/skills/quality-review/SKILL.md +54 -0
  33. package/plugins/lisa/skills/reproduce-bug/SKILL.md +96 -0
  34. package/plugins/lisa/skills/root-cause-analysis/SKILL.md +155 -0
  35. package/plugins/lisa/skills/security-review/SKILL.md +57 -0
  36. package/plugins/lisa/skills/task-decomposition/SKILL.md +95 -0
  37. package/plugins/lisa/skills/task-triage/SKILL.md +23 -0
  38. package/plugins/lisa/skills/tdd-implementation/SKILL.md +83 -0
  39. package/plugins/lisa/skills/test-strategy/SKILL.md +63 -0
  40. package/plugins/lisa/skills/verification-lifecycle/SKILL.md +292 -0
  41. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  46. package/plugins/src/base/agents/architecture-specialist.md +4 -9
  47. package/plugins/src/base/agents/bug-fixer.md +40 -0
  48. package/plugins/src/base/agents/builder.md +41 -0
  49. package/plugins/src/base/agents/debug-specialist.md +4 -93
  50. package/plugins/src/base/agents/jira-agent.md +85 -0
  51. package/plugins/src/base/agents/performance-specialist.md +2 -11
  52. package/plugins/src/base/agents/product-specialist.md +2 -10
  53. package/plugins/src/base/agents/quality-specialist.md +2 -0
  54. package/plugins/src/base/agents/security-specialist.md +3 -9
  55. package/plugins/src/base/agents/test-specialist.md +2 -16
  56. package/plugins/src/base/agents/verification-specialist.md +38 -103
  57. package/plugins/src/base/commands/build.md +10 -0
  58. package/plugins/src/base/commands/fix.md +10 -0
  59. package/plugins/src/base/commands/improve.md +15 -0
  60. package/plugins/src/base/commands/investigate.md +10 -0
  61. package/plugins/src/base/commands/monitor.md +10 -0
  62. package/plugins/src/base/commands/plan/create.md +1 -1
  63. package/plugins/src/base/commands/plan/execute.md +1 -2
  64. package/plugins/src/base/commands/plan.md +10 -0
  65. package/plugins/src/base/commands/review.md +10 -0
  66. package/plugins/src/base/commands/ship.md +10 -0
  67. package/plugins/src/base/skills/acceptance-criteria/SKILL.md +71 -0
  68. package/plugins/src/base/skills/bug-triage/SKILL.md +23 -0
  69. package/plugins/src/base/skills/codebase-research/SKILL.md +87 -0
  70. package/plugins/src/base/skills/epic-triage/SKILL.md +28 -0
  71. package/plugins/src/base/skills/performance-review/SKILL.md +94 -0
  72. package/plugins/src/base/skills/quality-review/SKILL.md +54 -0
  73. package/plugins/src/base/skills/reproduce-bug/SKILL.md +96 -0
  74. package/plugins/src/base/skills/root-cause-analysis/SKILL.md +155 -0
  75. package/plugins/src/base/skills/security-review/SKILL.md +57 -0
  76. package/plugins/src/base/skills/task-decomposition/SKILL.md +95 -0
  77. package/plugins/src/base/skills/task-triage/SKILL.md +23 -0
  78. package/plugins/src/base/skills/tdd-implementation/SKILL.md +83 -0
  79. package/plugins/src/base/skills/test-strategy/SKILL.md +63 -0
  80. package/plugins/src/base/skills/verification-lifecycle/SKILL.md +292 -0
  81. package/typescript/copy-overwrite/eslint.ignore.config.json +1 -0
  82. package/expo/copy-overwrite/.claude/rules/expo-verification.md +0 -261
  83. package/plugins/lisa/agents/agent-architect.md +0 -310
  84. package/plugins/lisa/agents/hooks-expert.md +0 -74
  85. package/plugins/lisa/agents/implementer.md +0 -54
  86. package/plugins/lisa/agents/slash-command-architect.md +0 -87
  87. package/plugins/lisa/agents/web-search-researcher.md +0 -112
  88. package/plugins/lisa/commands/git/commit-and-submit-pr.md +0 -7
  89. package/plugins/lisa/commands/git/commit-submit-pr-and-verify.md +0 -7
  90. package/plugins/lisa/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  91. package/plugins/lisa/commands/jira/fix.md +0 -7
  92. package/plugins/lisa/commands/jira/implement.md +0 -7
  93. package/plugins/lisa/commands/sonarqube/check.md +0 -6
  94. package/plugins/lisa/commands/sonarqube/fix.md +0 -6
  95. package/plugins/lisa/commands/tasks/load.md +0 -7
  96. package/plugins/lisa/commands/tasks/sync.md +0 -7
  97. package/plugins/lisa/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  98. package/plugins/lisa/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  99. package/plugins/lisa/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  100. package/plugins/lisa/skills/jira-fix/SKILL.md +0 -16
  101. package/plugins/lisa/skills/jira-implement/SKILL.md +0 -18
  102. package/plugins/lisa/skills/sonarqube-check/SKILL.md +0 -11
  103. package/plugins/lisa/skills/sonarqube-fix/SKILL.md +0 -8
  104. package/plugins/lisa/skills/tasks-load/SKILL.md +0 -88
  105. package/plugins/lisa/skills/tasks-sync/SKILL.md +0 -108
  106. package/plugins/src/base/agents/agent-architect.md +0 -310
  107. package/plugins/src/base/agents/hooks-expert.md +0 -74
  108. package/plugins/src/base/agents/implementer.md +0 -54
  109. package/plugins/src/base/agents/slash-command-architect.md +0 -87
  110. package/plugins/src/base/agents/web-search-researcher.md +0 -112
  111. package/plugins/src/base/commands/git/commit-and-submit-pr.md +0 -7
  112. package/plugins/src/base/commands/git/commit-submit-pr-and-verify.md +0 -7
  113. package/plugins/src/base/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  114. package/plugins/src/base/commands/jira/fix.md +0 -7
  115. package/plugins/src/base/commands/jira/implement.md +0 -7
  116. package/plugins/src/base/commands/sonarqube/check.md +0 -6
  117. package/plugins/src/base/commands/sonarqube/fix.md +0 -6
  118. package/plugins/src/base/commands/tasks/load.md +0 -7
  119. package/plugins/src/base/commands/tasks/sync.md +0 -7
  120. package/plugins/src/base/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  121. package/plugins/src/base/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  122. package/plugins/src/base/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  123. package/plugins/src/base/skills/jira-fix/SKILL.md +0 -16
  124. package/plugins/src/base/skills/jira-implement/SKILL.md +0 -18
  125. package/plugins/src/base/skills/sonarqube-check/SKILL.md +0 -11
  126. package/plugins/src/base/skills/sonarqube-fix/SKILL.md +0 -8
  127. package/plugins/src/base/skills/tasks-load/SKILL.md +0 -88
  128. package/plugins/src/base/skills/tasks-sync/SKILL.md +0 -108
@@ -0,0 +1,292 @@
1
+ ---
2
+ name: verification-lifecycle
3
+ description: "Verification lifecycle: classify types, discover tools, fail fast, plan, execute, loop. Includes verification surfaces, proof artifacts, self-correction loop, escalation protocol, and definition of done."
4
+ ---
5
+
6
+ # Verification Lifecycle
7
+
8
+ This skill defines the complete verification lifecycle that agents must follow for every change: classify, check tooling, fail fast, plan, execute, and loop.
9
+
10
+ ## Verification Lifecycle
11
+
12
+ Agents must follow this mandatory sequence for every change:
13
+
14
+ ### 1. Classify
15
+
16
+ Determine which verification types apply based on the change. Start with the three always-required types (Test, Type Safety, Lint/Format), then check each conditional type against the change scope.
17
+
18
+ ### 2. Check Tooling
19
+
20
+ For each required verification type, discover what tools are available in the project. Use the Tool Discovery Process below.
21
+
22
+ Report what is available for each required type. If a required type has no available tool, proceed to step 3.
23
+
24
+ ### 3. Fail Fast
25
+
26
+ If a required verification type has no available tool and no reasonable alternative, escalate immediately using the Escalation Protocol. Do not begin implementation without a verification plan for every required type.
27
+
28
+ ### 4. Plan
29
+
30
+ For each verification type, state:
31
+ - The specific tool or command that will be used
32
+ - The expected outcome that constitutes a pass
33
+ - Any prerequisites (running server, seeded database, auth token)
34
+
35
+ ### 5. Execute
36
+
37
+ After implementation, run the verification plan. Execute each verification type in order.
38
+
39
+ ### 6. Loop
40
+
41
+ If any verification fails, fix the issue and re-verify. Do not declare done until all required types pass. If a verification is stuck after 3 attempts, escalate.
42
+
43
+ ---
44
+
45
+ ## Tool Discovery Process
46
+
47
+ Agents must discover available tools at runtime rather than assuming what exists. Check these locations in order:
48
+
49
+ 1. **Project manifest** — Read the project manifest file for available scripts (build, test, lint, deploy, start, etc.) and their variants
50
+ 2. **Script directories** — Search for shell scripts, automation files, and task runners in common locations (`scripts/`, `bin/`, project root)
51
+ 3. **Configuration files** — Look for test framework configs, linter configs, formatter configs, deployment configs, and infrastructure-as-code definitions
52
+ 4. **MCP tools** — Check available MCP server tools for browser automation, observability, issue tracking, and other capabilities
53
+ 5. **CLI tools** — Check for available command-line tools relevant to the verification type (database clients, HTTP clients, cloud CLIs, container runtimes)
54
+ 6. **Environment files** — Read environment configuration for service URLs, connection strings, and feature flags that indicate available services
55
+ 7. **Documentation** — Check project README, CLAUDE.md, and rules files for documented verification procedures
56
+
57
+ If a tool is expected but not found, report the gap rather than assuming it doesn't exist — it may need to be installed or configured.
58
+
59
+ ---
60
+
61
+ ## Verification Surfaces
62
+
63
+ Agents may only self-verify when the required verification surfaces are available.
64
+
65
+ Verification surfaces include:
66
+
67
+ ### Action Surfaces
68
+
69
+ - Build and test execution
70
+ - Deployment and rollback
71
+ - Infrastructure apply and drift detection
72
+ - Feature flag toggling
73
+ - Data seeding and state reset
74
+ - Load generation and fault injection
75
+
76
+ ### Observation Surfaces
77
+
78
+ - Application logs (local and remote)
79
+ - Metrics (latency, errors, saturation, scaling)
80
+ - Traces and correlation IDs
81
+ - Database queries and schema inspection
82
+ - Browser and device automation
83
+ - Queue depth and consumer execution visibility
84
+ - CDN headers and edge behavior
85
+ - Artifact capture (video, screenshots, traces, diffs)
86
+
87
+ If a required surface is unavailable, agents must follow the Escalation Protocol.
88
+
89
+ ---
90
+
91
+ ## Tooling Surfaces
92
+
93
+ Many verification steps require tools that may not be available by default.
94
+
95
+ Tooling surfaces include:
96
+
97
+ - Required CLIs (cloud, DB, deployment, observability)
98
+ - Required MCP servers and their capabilities
99
+ - Required internal APIs (feature flags, auth, metrics, logs, CI)
100
+ - Required credentials and scopes for those tools
101
+
102
+ If required tooling is missing, misconfigured, blocked, undocumented, or inaccessible, agents must treat this as a verification blocker and escalate before proceeding.
103
+
104
+ ---
105
+
106
+ ## Proof Artifacts Requirements
107
+
108
+ Every completed task must include proof artifacts stored in the PR description or linked output location.
109
+
110
+ Proof artifacts must be specific and re-checkable. A proof artifact should contain enough detail that another agent or human can reproduce the verification independently.
111
+
112
+ Acceptable proof includes:
113
+ - Automated session recordings and screenshots for UI work
114
+ - Request/response captures for API work
115
+ - Before/after query outputs for data work
116
+ - Metrics snapshots for performance and scaling work
117
+ - Log excerpts with correlation IDs for behavior validation
118
+ - Benchmark results with methodology for performance work
119
+
120
+ Statements like "works" or "should work" are not acceptable.
121
+
122
+ ---
123
+
124
+ ## Self-Correction Loop
125
+
126
+ Verification is not a one-shot activity. Agents operate within a three-layer self-correction architecture that catches errors at increasing scope. Each layer is enforced automatically — agents do not need to invoke them manually.
127
+
128
+ ### Layer 1 — Inline Correction
129
+
130
+ **Trigger:** Every file write or edit.
131
+
132
+ Hooks run formatting, structural analysis, and linting on the single file just written. Errors are reported immediately so the agent can fix them before writing more files. This prevents error accumulation across multiple files.
133
+
134
+ **Agent responsibility:** When a hook blocks, fix the reported errors in the same file before proceeding to other files. Do not accumulate errors.
135
+
136
+ ### Layer 2 — Commit-Time Enforcement
137
+
138
+ **Trigger:** Every commit.
139
+
140
+ Checks run on staged files: linting, formatting, secret detection, commit message validation, and branch protection. This layer catches errors that span multiple files or involve staged-but-not-yet-checked changes.
141
+
142
+ Commit-time checks cannot be bypassed. Agents must discover what specific checks are enforced by reading the project's hook configuration.
143
+
144
+ ### Layer 3 — Push-Time Enforcement
145
+
146
+ **Trigger:** Every push.
147
+
148
+ The full project quality gate runs: test suites with coverage thresholds, type checking, security audits, unused export detection, and integration tests. This is the last automated checkpoint before code reaches the remote.
149
+
150
+ **Handling failures:** When a push fails, read the error output to determine which check failed. Fix the root cause rather than working around it. Agents must discover what specific checks are enforced by reading the project's hook configuration.
151
+
152
+ ### Regeneration Over Patching
153
+
154
+ When the root cause of errors is architectural (wrong abstraction, incorrect data flow, fundamentally broken approach), delete and regenerate rather than incrementally patching. Incremental patches on a broken foundation accumulate tech debt faster than the self-correction loop can catch it.
155
+
156
+ Signs that regeneration is needed:
157
+ - The same file has been edited 3+ times in the same loop without converging
158
+ - Fixing one error introduces another in the same file
159
+ - The fix requires disabling a lint rule or adding a type assertion
160
+
161
+ ---
162
+
163
+ ## Standard Workflow
164
+
165
+ Agents must follow this sequence unless explicitly instructed otherwise:
166
+
167
+ 1. Restate goal in one sentence.
168
+ 2. Identify the end user of the change.
169
+ 3. Classify verification types that apply to the change.
170
+ 4. Discover available tools for each verification type.
171
+ 5. Confirm required surfaces are available, escalate if not.
172
+ 6. Plan verification: state tool, command, and expected outcome for each type.
173
+ 7. Implement the change.
174
+ 8. Execute verification plan.
175
+ 9. Collect proof artifacts.
176
+ 10. Summarize what changed, what was verified, and remaining risk.
177
+ 11. Label the result with a verification level.
178
+
179
+ ---
180
+
181
+ ## Task Completion Rules
182
+
183
+ 1. **Run the proof command** before marking any task complete
184
+ 2. **Compare output** to expected result
185
+ 3. **If verification fails**: Fix and re-run, don't mark complete
186
+ 4. **If verification blocked** (missing tools, services, etc.): Mark as blocked, not complete
187
+ 5. **Must not be dependent on CI/CD** if necessary, you may use local deploy methods found in the project manifest, but the verification methods must be listed in the pull request and therefore cannot be dependent on CI/CD completing
188
+
189
+ ---
190
+
191
+ ## Escalation Protocol
192
+
193
+ Agents must escalate when verification is blocked, ambiguous, or requires tools that are missing or inaccessible.
194
+
195
+ Common blockers:
196
+
197
+ - VPN required
198
+ - MFA, OTP, SMS codes
199
+ - Hardware token requirement
200
+ - Missing CLI, MCP server, or internal API required for verification
201
+ - Missing documentation on how to access required tooling
202
+ - Production-only access gates
203
+ - Compliance restrictions
204
+
205
+ When blocked, agents must do the following:
206
+
207
+ 1. Identify the exact boundary preventing verification.
208
+ 2. Identify which verification surfaces and tooling surfaces are missing.
209
+ 3. Attempt safe fallback verification (local, staging, mocks) and label it clearly.
210
+ 4. Declare verification level as PARTIALLY VERIFIED or UNVERIFIED.
211
+ 5. Produce a Human Action Packet.
212
+ 6. Pause until explicit human confirmation or tooling is provided.
213
+
214
+ Agents must never proceed past an unverified boundary without surfacing it to the human overseer.
215
+
216
+ ### Human Action Packet Format
217
+
218
+ Agents must provide:
219
+
220
+ - What is blocked and why
221
+ - What tool or access is missing
222
+ - Exactly what the human must do
223
+ - How to confirm completion
224
+ - What the agent will do immediately after
225
+ - What artifacts the agent will produce after access is restored
226
+
227
+ Example:
228
+
229
+ - Blocked: Cannot reach DB, VPN required.
230
+ - Missing: Database client access to `db.host` and internal logs viewer.
231
+ - Human steps: Connect VPN "CorpVPN", confirm access by running connectivity check to `db.host`, provide credentials or endpoint.
232
+ - Confirmation: Reply "VPN ACTIVE" and "ACCESS READY".
233
+ - Next: Agent runs migration verification script and captures schema diff and query outputs.
234
+
235
+ Agents must pause until explicit human confirmation.
236
+
237
+ Agents must never bypass security controls to proceed.
238
+
239
+ ---
240
+
241
+ ## Environments and Safety Rules
242
+
243
+ ### Allowed Environments
244
+
245
+ - Local development
246
+ - Preview environments
247
+ - Staging
248
+ - Production read-only, only if explicitly approved and configured for safe access
249
+
250
+ ### Prohibited Actions Without Human Approval
251
+
252
+ - Writing to production data stores
253
+ - Disabling MFA or security policies
254
+ - Modifying IAM roles or firewall rules beyond scoped change requests
255
+ - Running destructive migrations
256
+ - Triggering external billing or payment flows
257
+
258
+ If an operation is irreversible or risky, escalate first.
259
+
260
+ ---
261
+
262
+ ## Artifact Storage and PR Requirements
263
+
264
+ Every PR must include:
265
+
266
+ - Goal summary
267
+ - Verification level
268
+ - Proof artifacts links or embedded outputs
269
+ - How to reproduce verification locally
270
+ - Known limitations and follow-up items
271
+
272
+ Preferred artifact locations:
273
+
274
+ - PR description
275
+ - Repo-local scripts under `scripts/verification/`
276
+ - CI artifacts linked from the build
277
+
278
+ ---
279
+
280
+ ## Definition of Done
281
+
282
+ A task is done only when:
283
+
284
+ - End user is identified
285
+ - All applicable verification types are classified and executed
286
+ - Verification lifecycle is completed (classify, check tooling, plan, execute, loop)
287
+ - Required verification surfaces and tooling surfaces are used or explicitly unavailable
288
+ - Proof artifacts are captured
289
+ - Verification level is declared
290
+ - Risks and gaps are documented
291
+
292
+ If any of these are missing, the work is not complete.
@@ -33,6 +33,7 @@
33
33
  ".claude-active-project/**",
34
34
  ".claude-active-plan/**",
35
35
  "coverage/**",
36
+ "**/coverage/**",
36
37
  "**/*spec.ts",
37
38
  "resolver-test.setup.ts",
38
39
  "**/*.factory.ts",
@@ -1,261 +0,0 @@
1
- # Expo Verification Capabilities
2
-
3
- This rule documents the native and web verification surfaces available in Expo projects. Agents must use these tools when verifying UI changes, features, and bugs.
4
-
5
- ---
6
-
7
- ## Environment Strategy
8
-
9
- Frontend changes are typically verified against the **remote dev backend**, not a local backend. The backend is generally deployed before the frontend, so the dev environment is the default target for verification.
10
-
11
- Use `:local` variants only when explicitly running the companion backend repo locally. Use `:dev` for most verification work.
12
-
13
- ---
14
-
15
- ## Native Simulator Testing
16
-
17
- Expo manages simulator and emulator lifecycle directly. Never use `xcrun simctl` or manual emulator commands.
18
-
19
- ### Start Dev Server with Simulator
20
-
21
- These commands copy the target environment file, launch the Expo dev server, and open the app in the simulator automatically:
22
-
23
- ```bash
24
- # iOS Simulator
25
- bun run start:simulator:ios:local # Against local backend
26
- bun run start:simulator:ios:dev # Against dev backend (default for verification)
27
- bun run start:simulator:ios:staging # Against staging backend
28
- bun run start:simulator:ios:production # Against production backend
29
-
30
- # Android Emulator
31
- bun run start:simulator:android:local # Against local backend
32
- bun run start:simulator:android:dev # Against dev backend (default for verification)
33
- bun run start:simulator:android:staging # Against staging backend
34
- bun run start:simulator:android:production # Against production backend
35
- ```
36
-
37
- ### Build Native Binary and Run on Simulator
38
-
39
- These commands compile a full native binary and install it on the simulator. Slower than dev server but closer to production:
40
-
41
- ```bash
42
- # iOS Simulator
43
- bun run build-and-run:simulator:ios:local # Against local backend
44
- bun run build-and-run:simulator:ios:dev # Against dev backend
45
- bun run build-and-run:simulator:ios:staging # Against staging backend
46
- bun run build-and-run:simulator:ios:production # Against production backend
47
-
48
- # Android Emulator
49
- bun run build-and-run:simulator:android:local # Against local backend
50
- bun run build-and-run:simulator:android:dev # Against dev backend
51
- bun run build-and-run:simulator:android:staging # Against staging backend
52
- bun run build-and-run:simulator:android:production # Against production backend
53
- ```
54
-
55
- Use `build-and-run` when testing native modules, push notifications, deep linking, or any feature that requires a full native build.
56
-
57
- ### Dev Server Only (Manual Simulator Selection)
58
-
59
- ```bash
60
- bun run start:local # Start dev server, then press 'i' for iOS or 'a' for Android
61
- ```
62
-
63
- ---
64
-
65
- ## Native E2E Testing with Maestro
66
-
67
- Maestro provides automated native UI testing on simulators and emulators.
68
-
69
- ### Run All Flows
70
-
71
- ```bash
72
- bun run maestro:test
73
- ```
74
-
75
- ### Run Smoke Tests Only
76
-
77
- ```bash
78
- bun run maestro:test:smoke
79
- ```
80
-
81
- ### Interactive Flow Development
82
-
83
- ```bash
84
- bun run maestro:studio
85
- ```
86
-
87
- Maestro flows live in `.maestro/flows/`. Tag flows with `smoke` for the smoke test subset.
88
-
89
- ---
90
-
91
- ## Web Testing with Playwright
92
-
93
- ### Run Playwright Tests
94
-
95
- ```bash
96
- bun run playwright:test # Build and run all tests
97
- bun run playwright:test:ui # Build and run with interactive UI
98
- ```
99
-
100
- ### Ad-Hoc Browser Verification
101
-
102
- Use the Playwright MCP tools (`browser_snapshot`, `browser_click`, `browser_take_screenshot`, `browser_navigate`, `browser_console_messages`, `browser_network_requests`) for interactive browser verification without writing test files.
103
-
104
- ---
105
-
106
- ## Cross-Repo Log Correlation
107
-
108
- When debugging frontend issues, errors often originate on the server side. Agents must check both client and server logs to diagnose problems.
109
-
110
- ### Client-Side Logs
111
-
112
- Use the Playwright MCP tools to capture browser logs during verification:
113
-
114
- - `browser_console_messages` — Console output (errors, warnings, info, debug)
115
- - `browser_network_requests` — Failed API calls, status codes, response payloads
116
-
117
- For native simulators, check the Expo dev server terminal output for Metro bundler errors and React Native logs.
118
-
119
- ### Server-Side Logs
120
-
121
- When the frontend is configured as an additional working directory alongside a companion backend repo (or vice versa), agents have access to both codebases. Use this to:
122
-
123
- 1. **Read the backend's CLAUDE.md and verification rules** to understand how to check server logs
124
- 2. **Check backend logs locally** if the backend is running via `bun run start:local` in the companion repo
125
- 3. **Check remote logs** using whatever observability tools the backend documents (CloudWatch, Sentry, etc.)
126
-
127
- ### Debugging Workflow
128
-
129
- When a frontend action produces an error:
130
-
131
- 1. **Capture the client error** — Use `browser_console_messages` and `browser_network_requests` to identify the failing request (URL, status code, error body)
132
- 2. **Correlate with server logs** — Use the companion backend repo's documented log-checking tools to find the corresponding server-side error
133
- 3. **Identify the root cause** — Determine whether the issue is a frontend bug (bad request, missing field, wrong query) or a backend bug (server error, schema mismatch, auth failure)
134
- 4. **Document both sides** — Include client and server log excerpts in proof artifacts
135
-
136
- This cross-repo correlation is especially valuable for:
137
-
138
- - GraphQL query errors (client sends bad query vs. server resolver failure)
139
- - Authentication failures (expired token vs. misconfigured auth)
140
- - Data inconsistencies (frontend cache staleness vs. backend data issue)
141
- - Network errors (frontend timeout vs. backend performance)
142
-
143
- ---
144
-
145
- ## Deployment
146
-
147
- ### Authentication
148
-
149
- Before deploying, ensure you are logged into EAS:
150
-
151
- ```bash
152
- bun run eas:whoami # Check current login status
153
- bun run eas:login # Log in to Expo account (interactive)
154
- ```
155
-
156
- ### EAS Build (Full Native Deploy)
157
-
158
- `eas:deploy` triggers a full native build in the EAS cloud. Use this when native code has changed (new native modules, SDK upgrades, native config changes). Builds take several minutes.
159
-
160
- ```bash
161
- bun run eas:deploy:dev # Build for dev environment
162
- bun run eas:deploy:staging # Build for staging environment
163
- bun run eas:deploy:production # Build for production environment
164
- ```
165
-
166
- Build profiles are defined in `eas.json`. Each profile specifies its channel, environment variables, and distribution settings.
167
-
168
- ### EAS Update (OTA Publish)
169
-
170
- `eas:publish` pushes an over-the-air JavaScript bundle update. Use this for JS-only changes (bug fixes, UI tweaks, logic changes) that don't require a new native build. Updates are fast (seconds, not minutes).
171
-
172
- ```bash
173
- bun run eas:publish:dev # Publish OTA update to dev channel
174
- bun run eas:publish:staging # Publish OTA update to staging channel
175
- bun run eas:publish:production # Publish OTA update to production channel
176
- ```
177
-
178
- ### When to Use Build vs Update
179
-
180
- | Scenario | Command |
181
- |----------|---------|
182
- | New native module added | `eas:deploy` (full build required) |
183
- | SDK version upgrade | `eas:deploy` (full build required) |
184
- | Native config change (`app.json`, `eas.json`) | `eas:deploy` (full build required) |
185
- | JS bug fix | `eas:publish` (OTA update) |
186
- | UI change (styles, layout, text) | `eas:publish` (OTA update) |
187
- | New screen or feature (JS-only) | `eas:publish` (OTA update) |
188
-
189
- ### Deployment Verification
190
-
191
- After deploying, verify the deployment landed:
192
-
193
- 1. **For OTA updates**: Check the EAS dashboard or run `eas update:list` to confirm the update was published to the correct channel
194
- 2. **For full builds**: Check the EAS dashboard or run `eas build:list` to confirm the build completed successfully
195
- 3. **End-to-end**: Open the app on a device/simulator pointed at the target environment and verify the changes are present
196
-
197
- ---
198
-
199
- ## Verification Quick Reference
200
-
201
- | Change Type | Verification Method | Command |
202
- |-------------|-------------------|---------|
203
- | UI feature (web) | Playwright MCP tools or tests | `bun run playwright:test` |
204
- | UI feature (native) | Maestro flows | `bun run maestro:test` |
205
- | Unit/integration logic | Jest | `bun run test -- path/to/file` |
206
- | Type safety | TypeScript compiler | `bun run typecheck` |
207
- | Code quality | ESLint | `bun run lint` |
208
- | Native module integration | Build and run on simulator | `bun run build-and-run:simulator:ios:dev` |
209
- | Full native E2E | Maestro smoke suite | `bun run maestro:test:smoke` |
210
- | Client-side errors | Playwright browser logs | `browser_console_messages` MCP tool |
211
- | Server-side errors | Companion backend repo logs | Check backend CLAUDE.md for log commands |
212
- | Deploy (native change) | EAS Build | `bun run eas:deploy:dev` |
213
- | Deploy (JS-only change) | EAS Update (OTA) | `bun run eas:publish:dev` |
214
- | Check EAS auth | EAS CLI | `bun run eas:whoami` |
215
-
216
- ---
217
-
218
- ## Verification Patterns for Native Changes
219
-
220
- ### UI Feature on Native
221
-
222
- End user: human on iOS or Android device.
223
-
224
- Required proof:
225
-
226
- - Maestro flow recording or screenshots from simulator
227
- - Console output showing flow passed
228
-
229
- ```bash
230
- # Start the app on iOS simulator against dev backend
231
- bun run start:simulator:ios:dev
232
-
233
- # Run Maestro verification
234
- bun run maestro:test
235
- ```
236
-
237
- ### Native Module or Platform-Specific Code
238
-
239
- End user: application on device.
240
-
241
- Required proof:
242
-
243
- - Successful native build (no build errors)
244
- - App launches and target feature is functional
245
-
246
- ```bash
247
- # Build and install native binary against dev backend
248
- bun run build-and-run:simulator:ios:dev
249
-
250
- # Verify with Maestro
251
- bun run maestro:test:smoke
252
- ```
253
-
254
- ### Cross-Platform Verification
255
-
256
- For changes that affect both web and native, agents must verify on both surfaces:
257
-
258
- 1. **Web**: Playwright MCP tools or `bun run playwright:test`
259
- 2. **Native**: `bun run start:simulator:ios:dev` + `bun run maestro:test`
260
-
261
- If only one surface is available, label the result as **PARTIALLY VERIFIED** with explicit gap documentation.