Skip to content

Reference

rn-pr-qa

The PR QA agent takes a GitHub pull request, pins that head in an isolated copy, installs through rn-dev-agent, exercises the change on real targets, and reports a per-target pass/fail with screenshots and repro steps.

PropertyValue
ModelOpus
ColorOrange
Skillsrn-workflow, rn-device-control, rn-testing, rn-debugging
ToolsBash, Read, Write, Edit, Glob, Grep, all MCP session/CDP/device tools
  • “QA this PR”
  • “test this pull request on the simulator”
  • “verify PR 812 on Android”
  • “run the PR on a physical device”
  • /rn-dev-agent:qa-pr (Claude) or $rn-dev-agent:qa-pr (Codex)

Like rn-tester, this protocol needs MCP tools. Do not spawn it via the Task tool (GH #31). Run /rn-dev-agent:qa-pr so the parent session executes the steps.

  1. Resolve the PR with gh pr view (URL, owner/repo#n, or number).
  2. Classify the changed files. Docs-only PRs skip the device. Plugin MCP/device changes run against the workspace test-app (or the declared candidate app), never against the plugin checkout as Metro’s serving root.
  3. Pin the head in a disposable git worktree. Never mutate the primary checkout.
  4. Inventory through rn-workflow steps 0–2, then rn_session(action="status"). device_list diagnoses; it does not choose.
  5. Per selected target (ios, android, device, or all): exact bind_device → reversible integration → managed <pm> run ios|android from the app root → pin_dev_client → artifact-first exercise (cdp_run_action, cdp_login_prologue for auth).
  6. Cleanup in reverse: runner close → stop_metrorestore_integrationrelease.
  7. Report a per-target table. Missing hardware is SKIP with the exact remaining setup, not FAIL. Host screenshots and videos with gh pr comment --attach, then rewrite screenshots to <img … width="720">.

After 3 failures of the same category on one target, that target stops. Do not switch devices mid-target.

  • No clearState: true against Expo Dev Client
  • No simulator erase / pm clear
  • Never steal a live device claim
  • Never use raw xcrun simctl / adb for taps or screenshots