|
| 1 | +--- |
| 2 | +name: dogfood |
| 3 | +description: 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. |
| 4 | +allowed-tools: Bash(agent-device:*), Bash(npx agent-device:*) |
| 5 | +--- |
| 6 | + |
| 7 | +# Dogfood (agent-device) |
| 8 | + |
| 9 | +Systematically explore a mobile app, find issues, and produce a report with full reproduction evidence for every finding. |
| 10 | + |
| 11 | +## Setup |
| 12 | + |
| 13 | +Only the **Target app** is required. Everything else has sensible defaults. |
| 14 | + |
| 15 | +| Parameter | Default | Example override | |
| 16 | +|-----------|---------|-----------------| |
| 17 | +| **Target app** | _(required)_ | `Settings`, `com.example.app`, deep link URL | |
| 18 | +| **Platform** | Infer from user context; otherwise ask (`ios` or `android`) | `--platform ios` | |
| 19 | +| **Session name** | Slugified app/platform (for example `settings-ios`) | `--session my-session` | |
| 20 | +| **Output directory** | `./dogfood-output/` | `Output directory: /tmp/mobile-qa` | |
| 21 | +| **Scope** | Full app | `Focus on onboarding and profile` | |
| 22 | +| **Authentication** | None | `Sign in to user@example.com` | |
| 23 | + |
| 24 | +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). |
| 25 | + |
| 26 | +Prefer direct `agent-device` binary when available. |
| 27 | + |
| 28 | +## Workflow |
| 29 | + |
| 30 | +``` |
| 31 | +1. Initialize Set up session, output dirs, report file |
| 32 | +2. Launch/Auth Open app and sign in if needed |
| 33 | +3. Orient Capture initial snapshot and map navigation |
| 34 | +4. Explore Systematically test flows and states |
| 35 | +5. Document Record reproducible evidence per issue |
| 36 | +6. Wrap up Reconcile summary, close session |
| 37 | +``` |
| 38 | + |
| 39 | +### 1. Initialize |
| 40 | + |
| 41 | +```bash |
| 42 | +mkdir -p {OUTPUT_DIR}/screenshots {OUTPUT_DIR}/videos |
| 43 | +cp {SKILL_DIR}/templates/dogfood-report-template.md {OUTPUT_DIR}/report.md |
| 44 | +``` |
| 45 | + |
| 46 | +### 2. Launch/Auth |
| 47 | + |
| 48 | +Start a named session and launch target app: |
| 49 | + |
| 50 | +```bash |
| 51 | +agent-device --session {SESSION} open {TARGET_APP} --platform {PLATFORM} |
| 52 | +agent-device --session {SESSION} snapshot -i |
| 53 | +``` |
| 54 | + |
| 55 | +If login is required: |
| 56 | + |
| 57 | +```bash |
| 58 | +agent-device --session {SESSION} snapshot -i |
| 59 | +agent-device --session {SESSION} fill @e1 "{EMAIL}" |
| 60 | +agent-device --session {SESSION} fill @e2 "{PASSWORD}" |
| 61 | +agent-device --session {SESSION} press @e3 |
| 62 | +agent-device --session {SESSION} wait 1000 |
| 63 | +agent-device --session {SESSION} snapshot -i |
| 64 | +``` |
| 65 | + |
| 66 | +For OTP/email codes: ask the user, wait for input, then continue. |
| 67 | + |
| 68 | +### 3. Orient |
| 69 | + |
| 70 | +Capture initial evidence and navigation anchors: |
| 71 | + |
| 72 | +```bash |
| 73 | +agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/initial.png |
| 74 | +agent-device --session {SESSION} snapshot -i |
| 75 | +``` |
| 76 | + |
| 77 | +Map top-level navigation, tabs, and key workflows before deep testing. |
| 78 | + |
| 79 | +### 4. Explore |
| 80 | + |
| 81 | +Read [references/issue-taxonomy.md](references/issue-taxonomy.md) for severity/category calibration. |
| 82 | + |
| 83 | +Strategy: |
| 84 | + |
| 85 | +- Move through each major app area (tabs, drawers, settings pages). |
| 86 | +- Test core journeys end-to-end (create, edit, delete, submit, recover). |
| 87 | +- Validate edge states (empty/error/loading/offline/permissions denied). |
| 88 | +- Use `snapshot -i` after UI transitions to avoid stale refs. |
| 89 | +- Periodically capture `logs path` and inspect the app log when behavior looks suspicious. |
| 90 | + |
| 91 | +Useful commands per screen: |
| 92 | + |
| 93 | +```bash |
| 94 | +agent-device --session {SESSION} snapshot -i |
| 95 | +agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/{screen-name}.png |
| 96 | +agent-device --session {SESSION} appstate |
| 97 | +agent-device --session {SESSION} logs path |
| 98 | +``` |
| 99 | + |
| 100 | +### 5. Document Issues (Repro-First) |
| 101 | + |
| 102 | +Explore and document in one pass. When you find an issue, stop and fully capture evidence before continuing. |
| 103 | + |
| 104 | +#### Interactive/behavioral issues |
| 105 | + |
| 106 | +Use video + step screenshots: |
| 107 | + |
| 108 | +1. Start recording: |
| 109 | + |
| 110 | +```bash |
| 111 | +agent-device --session {SESSION} record start {OUTPUT_DIR}/videos/issue-{NNN}-repro.mp4 |
| 112 | +``` |
| 113 | + |
| 114 | +2. Reproduce with visible pacing. Capture each step: |
| 115 | + |
| 116 | +```bash |
| 117 | +agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-1.png |
| 118 | +sleep 1 |
| 119 | +# perform action |
| 120 | +sleep 1 |
| 121 | +agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-2.png |
| 122 | +``` |
| 123 | + |
| 124 | +3. Capture final broken state: |
| 125 | + |
| 126 | +```bash |
| 127 | +sleep 2 |
| 128 | +agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-result.png |
| 129 | +``` |
| 130 | + |
| 131 | +4. Stop recording: |
| 132 | + |
| 133 | +```bash |
| 134 | +agent-device --session {SESSION} record stop |
| 135 | +``` |
| 136 | + |
| 137 | +5. Append issue immediately to report with numbered steps and screenshot references. |
| 138 | + |
| 139 | +#### Static/on-load issues |
| 140 | + |
| 141 | +Single screenshot is sufficient; no video required: |
| 142 | + |
| 143 | +```bash |
| 144 | +agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}.png |
| 145 | +``` |
| 146 | + |
| 147 | +Set **Repro Video** to `N/A` in the report. |
| 148 | + |
| 149 | +### 6. Wrap Up |
| 150 | + |
| 151 | +Target 5-10 well-evidenced issues, then finish: |
| 152 | + |
| 153 | +1. Reconcile summary severity counts in `report.md`. |
| 154 | +2. Close session: |
| 155 | + |
| 156 | +```bash |
| 157 | +agent-device --session {SESSION} close |
| 158 | +``` |
| 159 | + |
| 160 | +3. Report total issues, severity breakdown, and highest-risk findings. |
| 161 | + |
| 162 | +## Guidance |
| 163 | + |
| 164 | +- Repro quality matters more than issue count. |
| 165 | +- Use refs (`@eN`) for fast exploration, selectors for deterministic replay assertions when needed. |
| 166 | +- Re-snapshot after any mutation (navigation, modal, list update, form submit). |
| 167 | +- Use `fill` for clear-then-type semantics; use `type` for incremental typing behavior checks. |
| 168 | +- Keep logs optional and targeted: enable/read app logs only when useful for diagnosis. |
| 169 | +- Never read source code of the app under test; findings must come from observed runtime behavior. |
| 170 | +- Write each issue immediately to avoid losing evidence. |
| 171 | +- Never delete screenshots/videos/report artifacts during a session. |
| 172 | + |
| 173 | +## References |
| 174 | + |
| 175 | +| Reference | When to Read | |
| 176 | +|-----------|--------------| |
| 177 | +| [references/issue-taxonomy.md](references/issue-taxonomy.md) | Start of session; severity/categories/checklist | |
| 178 | + |
| 179 | +## Templates |
| 180 | + |
| 181 | +| Template | Purpose | |
| 182 | +|----------|---------| |
| 183 | +| [templates/dogfood-report-template.md](templates/dogfood-report-template.md) | Copy into output directory as the report file | |
0 commit comments