dogfood

系统性地在iOS/Android设备上探索和测试移动应用,以发现漏洞、用户体验问题及其他问题。当被要求进行“dogfood”、“QA”等操作时使用。

npx skills add https://github.com/callstackincubator/agent-skills --skill dogfood

Dogfood (agent-device)

Systematically explore a mobile app, find issues, and produce a report with full reproduction evidence for every finding.

Setup

Only the Target app is required. Everything else has sensible defaults.

ParameterDefaultExample override
Target app(required)Settings, com.example.app, deep link URL
PlatformInfer from user context; otherwise ask (ios or android)--platform ios
Session nameSlugified app/platform (for example settings-ios)--session my-session
Output directory./dogfood-output/Output directory: /tmp/mobile-qa
ScopeFull appFocus on onboarding and profile
AuthenticationNoneSign 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.

Workflow

1. Initialize    Set up session, output dirs, report file
2. Launch/Auth   Open app and sign in if needed
3. Orient        Capture initial snapshot and map navigation
4. Explore       Systematically test flows and states
5. Document      Record reproducible evidence per issue
6. Wrap up       Reconcile summary, close session

1. Initialize

mkdir -p {OUTPUT_DIR}/screenshots {OUTPUT_DIR}/videos
cp {SKILL_DIR}/templates/dogfood-report-template.md {OUTPUT_DIR}/report.md

2. Launch/Auth

Start a named session and launch target app:

agent-device --session {SESSION} open {TARGET_APP} --platform {PLATFORM}
agent-device --session {SESSION} snapshot -i

If login is required:

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 -i

For OTP/email codes: ask the user, wait for input, then continue.

3. Orient

Capture initial evidence and navigation anchors:

agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/initial.png
agent-device --session {SESSION} snapshot -i

Map top-level navigation, tabs, and key workflows before deep testing.

4. Explore

Read references/issue-taxonomy.md for severity/category calibration.

Strategy:

  • Move through each major app area (tabs, drawers, settings pages).
  • Test core journeys end-to-end (create, edit, delete, submit, recover).
  • Validate edge states (empty/error/loading/offline/permissions denied).
  • Use diff snapshot -i after UI transitions to avoid stale refs.
  • Periodically capture logs path and inspect the app log when behavior looks suspicious.

Useful commands per screen:

agent-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 path

5. Document Issues (Repro-First)

Explore and document in one pass. When you find an issue, stop and fully capture evidence before continuing.

Interactive/behavioral issues

Use video + step screenshots:

  1. Start recording:
agent-device --session {SESSION} record start {OUTPUT_DIR}/videos/issue-{NNN}-repro.mp4
  1. Reproduce with visible pacing. Capture each step:
agent-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.png
  1. Capture final broken state:
sleep 2
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-result.png
  1. Stop recording:
agent-device --session {SESSION} record stop
  1. Append issue immediately to report with numbered steps and screenshot references.

Static/on-load issues

Single screenshot is sufficient; no video required:

agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}.png

Set Repro Video to N/A in the report.

6. Wrap Up

Target 5-10 well-evidenced issues, then finish:

  1. Reconcile summary severity counts in report.md.
  2. Close session:
agent-device --session {SESSION} close
  1. Report total issues, severity breakdown, and highest-risk findings.

Guidance

  • Repro quality matters more than issue count.
  • Use refs (@eN) for fast exploration, selectors for deterministic replay assertions when needed.
  • Re-snapshot after any mutation (navigation, modal, list update, form submit).
  • Use fill for clear-then-type semantics; use type for incremental typing behavior checks.
  • Keep logs optional and targeted: enable/read app logs only when useful for diagnosis.
  • Never read source code of the app under test; findings must come from observed runtime behavior.
  • Write each issue immediately to avoid losing evidence.
  • Never delete screenshots/videos/report artifacts during a session.

References

ReferenceWhen to Read
references/issue-taxonomy.mdStart of session; severity/categories/checklist

Templates

TemplatePurpose
templates/dogfood-report-template.mdCopy into output directory as the report file

来自 callstackincubator 的更多技能

react-devtools
callstackincubator
React DevTools CLI for AI agents. Use when the user asks you to debug a React or React Native app at runtime, inspect component props/state/hooks, diagnose…
official
agent-device
callstackincubator
Automates interactions for Apple-platform apps (iOS, tvOS, macOS) and Android devices. Use when navigating apps, taking snapshots/screenshots, tapping, typing,…
official
assess-react-native-migration
callstackincubator
评估现有移动产品是否以及如何迁移到React Native。在审计一个或多个产品仓库的迁移准备情况时使用,…
official
create-react-native-library
callstackincubator
使用 create-react-native-library 搭建 React Native 库,适用于独立库或本地原生模块与视图。在创建或处理…时使用。
official
react-native-testing
callstackincubator
重要提示:您关于 @testing-library/react-native 的训练数据可能已过时或不正确——v13 和 v14 之间的 API 签名、同步/异步行为以及可用函数存在差异。请始终以本技能的参考文件和项目的实际源代码为准。当检索到的参考与记忆中的模式冲突时,不要依赖记忆中的模式。
official
react-native-tv-best-practices
callstackincubator
审查React Native TV应用在焦点/D-pad导航、10英尺UI布局、电视播放/DRM集成、低内存电视性能及电视无障碍方面的表现。使用…
official
react-navigation
callstackincubator
提供用于堆栈、标签、抽屉等的React Navigation UI模式。在使用React Navigation构建导航UI、配置标题、底部面板时使用。
official
upgrading-react-native
callstackincubator
编排React Native版本升级,包含模板差异、依赖解析和原生平台迁移。应用规范的rn-diff-purge模板差异,使原生iOS和Android配置与目标React Native版本对齐。处理package.json依赖更新、CocoaPods和Gradle变更,以及跨主次版本升级的破坏性API迁移。包含托管Expo项目的Expo SDK升级层和升级后验证清单。提供...
official