You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude-plugin/marketplace.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
{
10
10
"name": "rn-dev-agent",
11
11
"description": "AI agent that fully tests React Native features on simulator/emulator — navigates the app, verifies UI, walks user flows, and confirms internal state.",
Copy file name to clipboardExpand all lines: .claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "rn-dev-agent",
3
-
"version": "0.21.0",
3
+
"version": "0.21.1",
4
4
"description": "AI agent that fully tests React Native features on simulator/emulator — navigates the app, verifies UI, walks user flows, and confirms internal state.",
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -150,6 +150,7 @@ Claude Code
150
150
| Zustand store error | Add `global.__ZUSTAND_STORES__` ([setup](https://lykhoyda.github.io/rn-dev-agent/getting-started/#zustand-stores-one-line)) |
151
151
| Plugin not detected |`/plugin install rn-dev-agent@Lykhoyda-rn-dev-agent` then `/reload-plugins`|
152
152
| Tools fail after upgrade | Restart Claude Code ([why](https://lykhoyda.github.io/rn-dev-agent/troubleshooting/)) |
153
+
| Spawned subagent says "MCP tools unavailable" | Never spawn `rn-tester` / `rn-debugger` via Task tool — MCP stdio doesn't propagate to subprocesses (GH #31). Use `/rn-dev-agent:test-feature` or `/rn-dev-agent:debug-screen` instead; protocols run inline in the parent session. |
> **Important (GH #31):** Do NOT spawn the `rn-tester` agent via the Task tool.
13
+
> MCP tools (`cdp_*`, `device_*`) are not available in spawned subagents.
14
+
> Execute the build + test protocol directly in this parent session.
15
+
16
+
Phase A — Build pre-flight (run in this session):
17
+
18
+
1.**Detect platform** — check booted devices via `device_list` or `xcrun simctl
19
+
list devices booted` / `adb devices`. Record the result as `<platform>` =
20
+
`ios` or `android` — every script below needs it as argument 1.
21
+
2.**Check if app is already running** — call `cdp_status`. If `cdp.connected
22
+
== true` AND `app.dev == true`, skip to Phase B.
23
+
3.**Build / install** (substitute `<platform>` with `ios` or `android`):
24
+
-**No `--eas` flag:** run `bash $CLAUDE_PLUGIN_ROOT/scripts/expo_ensure_running.sh <platform>`
25
+
which triggers `npx expo run:ios` or `npx expo run:android` (local build).
26
+
-**With `--eas` flag:** run `bash $CLAUDE_PLUGIN_ROOT/scripts/eas_resolve_artifact.sh <platform> <profile>`
27
+
to find the artifact, then `bash $CLAUDE_PLUGIN_ROOT/scripts/expo_ensure_running.sh <platform> --artifact <path>`
28
+
to install.
29
+
4.**Start Metro** if not running (`npx expo start` in background, or instruct
30
+
user to start it).
31
+
5.**Confirm CDP** — call `cdp_status` again, must return `ok:true`.
32
+
33
+
Phase B — Run the rn-tester 7-step protocol (load `rn-testing` skill):
34
+
35
+
Follow the same protocol as `/rn-dev-agent:test-feature` — environment check,
36
+
understand the feature, plan, navigate, execute+verify, edge cases, generate
37
+
persistent test.
38
+
39
+
## Verification (mandatory before declaring complete)
40
+
41
+
-[ ]`cdp_status` returns `ok:true` with `cdp.connected: true` after Phase A
42
+
-[ ] Every test assertion has concrete Evidence
43
+
-[ ] At least one `device_screenshot` saved
44
+
-[ ]`flows/<feature-name>.yaml` written
45
+
-[ ]`cdp_error_log` shows 0 new errors at end
17
46
18
47
## Examples
19
48
@@ -23,18 +52,6 @@ Build the app and test this feature: $ARGUMENTS
23
52
/rn-dev-agent:build-and-test --eas preview payment flow -- test a specific EAS profile
24
53
```
25
54
26
-
## What This Does
27
-
28
-
Extends the standard `rn-tester` 7-step protocol with a build pre-flight:
29
-
30
-
1.**Detect platform** — checks for booted iOS simulator or Android emulator
31
-
2.**Check if app is running** — calls `cdp_status` to see if Metro + Hermes are connected
32
-
3.**Build/install if needed**:
33
-
-**No `--eas` flag**: runs `expo_ensure_running.sh` which triggers `npx expo run:ios` or `npx expo run:android` (local build, blocks until done)
34
-
-**With `--eas` flag**: runs `eas_resolve_artifact.sh` to find the artifact (cache → EAS servers), then `expo_ensure_running.sh --artifact <path>` to install
35
-
4.**Start Metro** if not already running
36
-
5.**Run the standard 7-step test protocol** (environment check, understand feature, plan test, navigate, execute+verify, edge cases, generate test file)
Copy file name to clipboardExpand all lines: commands/debug-screen.md
+35-20Lines changed: 35 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,27 +2,42 @@
2
2
command: debug-screen
3
3
description: Diagnose why the current screen is broken, showing unexpected content, or crashing. Gathers parallel evidence from all layers and applies a targeted fix.
Copy file name to clipboardExpand all lines: commands/test-feature.md
+33-19Lines changed: 33 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,16 +3,42 @@ command: test-feature
3
3
description: Test a React Native feature on the running simulator/emulator. Verifies UI, user flows, and internal state. Generates a persistent Maestro test file.
- Verify data (`cdp_store_state(path=...)` + `cdp_network_log`)
31
+
6.**Edge cases** — test empty state, error state, back navigation, rapid taps.
32
+
7.**Generate persistent test** — write `flows/<feature-name>.yaml` for CI.
33
+
34
+
## Verification (mandatory before declaring "tested")
35
+
36
+
-[ ]`cdp_status` returned `ok:true` with `cdp.connected: true`
37
+
-[ ] Every assertion has concrete Evidence (not "looks fine")
38
+
-[ ] At least one `device_screenshot` saved
39
+
-[ ]`flows/<feature-name>.yaml` written
40
+
-[ ]`cdp_error_log` shows 0 new errors at end of flow
41
+
-[ ] Cross-platform check via `cross_platform_verify` (or single-platform noted)
16
42
17
43
## Examples
18
44
@@ -22,23 +48,11 @@ Test this React Native feature: $ARGUMENTS
22
48
/rn-dev-agent:test-feature profile screen -- edit name, upload photo, save
23
49
```
24
50
25
-
## What This Does
26
-
27
-
Invokes the `rn-tester` agent, which runs a 7-step verification protocol:
28
-
29
-
1.**Environment check** -- confirms Metro running, CDP connected, no RedBox
30
-
2.**Understand the feature** -- reads implementation files, finds testIDs, routes, store slices
31
-
3.**Plan the test** -- writes test steps and expected outcomes before executing
32
-
4.**Navigate to start** -- uses deep links or Maestro to reach the starting screen
33
-
5.**Execute and verify** -- for each step: act (Maestro), wait (assertVisible), verify UI (cdp_component_tree), verify data (cdp_store_state + cdp_network_log)
These agents' protocols require `cdp_*` / `device_*` MCP tools. **Do NOT spawn them via the Task tool** — MCP stdio connections don't propagate across subprocess boundaries (see [GitHub #31](https://github.com/Lykhoyda/rn-dev-agent/issues/31)). The agent files are **protocol playbooks** the parent session reads and executes inline.
0 commit comments