npx skills add ...
npx skills add callstackincubator/agent-skills --skill dogfood
npx skills add callstackincubator/agent-skills --skill dogfood
Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", or "test this app" on mobile. Produces a structured report with reproducible evidence: screenshots, optional repro videos, and detailed steps for every issue.
Systematically explore a mobile app, find issues, and produce a report with full reproduction evidence for every finding.
Only the Target app is required. Everything else has sensible defaults.
| Parameter | Default | Example override |
|---|---|---|
| Target app | (required) | Settings, com.example.app, deep link URL |
| Platform | Infer from user context; otherwise ask (ios or android) | --platform ios |
| Session name | Slugified app/platform (for example settings-ios) | --session my-session |
| Output directory | ./dogfood-output/ | Output directory: /tmp/mobile-qa |
| Scope | Full app | Focus on onboarding and profile |
| Authentication | None | Sign in to user@example.com |
If the user gives enough context to start, begin immediately with defaults. Ask follow-up only when a required detail is missing (for example platform or credentials).
Prefer direct agent-device binary when available.
Start a named session and launch target app:
If login is required:
For OTP/email codes: ask the user, wait for input, then continue.
Capture initial evidence and navigation anchors:
Map top-level navigation, tabs, and key workflows before deep testing.
Read references/issue-taxonomy.md for severity/category calibration.
Strategy:
diff snapshot -i after UI transitions to avoid stale refs.logs path and inspect the app log when behavior looks suspicious.Useful commands per screen:
Explore and document in one pass. When you find an issue, stop and fully capture evidence before continuing.
Use video + step screenshots:
Single screenshot is sufficient; no video required:
Set Repro Video to N/A in the report.
Target 5-10 well-evidenced issues, then finish:
report.md.@eN) for fast exploration, selectors for deterministic replay assertions when needed.fill for clear-then-type semantics; use type for incremental typing behavior checks.| Reference | When to Read |
|---|---|
| references/issue-taxonomy.md | Start of session; severity/categories/checklist |
| Template | Purpose |
|---|---|
| templates/dogfood-report-template.md | Copy into output directory as the report file |
agent-device --session {SESSION} snapshot -i
agent-device --session {SESSION} fill @e1 "{EMAIL}"
agent-device --session {SESSION} fill @e2 "{PASSWORD}"
agent-device --session {SESSION} press @e3
agent-device --session {SESSION} wait 1000
agent-device --session {SESSION} snapshot -iagent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/initial.png
agent-device --session {SESSION} snapshot -iagent-device --session {SESSION} snapshot -i
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/{screen-name}.png
agent-device --session {SESSION} appstate
agent-device --session {SESSION} logs pathagent-device --session {SESSION} record start {OUTPUT_DIR}/videos/issue-{NNN}-repro.mp4agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-1.png
sleep 1
# perform action
sleep 1
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-2.pngsleep 2
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-result.pngagent-device --session {SESSION} record stopagent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}.pngagent-device --session {SESSION} close