本文へ移動
cccskills
無料GitHub で公開

mobile-manual-testing

Use when the task touches a mobile app - the device flow with the mobile_* tools, confirming the installed build is the task's, and what to report when no device is attached

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Mobile Manual Testing

Overview

A mobile task is verified from the outside like any other: you run something and observe what it does. The mobile_* tools are registered only when a device is actually attached. With them, the device flow below is mandatory. Without them, use the build+API ceiling further down — and be exact in your report about what sits above that ceiling.

Never approve a criterion because the code looks right. An untestable criterion is reported, not passed.

1. Is a device here?

Check your tool list for mobile_launch_app. If it's there, a real device is attached and the device flow is not optional.

2. Confirm the build is the task's

mobile_launch_app installs the deploy target's registered app_url (default env=stage) — not automatically this task's branch. Before launching, check list_deployments / get_pipeline_status shows the stage build was produced from this task's PR head (the stage deploy triggers asynchronously when the task enters ready_for_qa). If it doesn't match yet, wait for it rather than testing the previous build; if it never arrives, report that instead of guessing.

3. Device flow

mobile_launch_app (installs the confirmed build and takes the device) → mobile_wait_for → mobile_tap/mobile_type_text/mobile_swipe → mobile_read_ui for state a picture cannot show → mobile_screenshot per criterion. For every UI criterion, capture the device matrix: mobile_screenshot portrait plus mobile_rotate then mobile_screenshot landscape at minimum, and font-scale/dark variants too where the host exposes them — the same standard as the web four-width check, adapted to what a device can actually set. Evidence is one line per screen (bug-report-writing's format): what it shows, no invented file path.

mobile_release_device is your last mobile step, always — a task left holding the device blocks whoever's next in the queue.

If a mobile_* call reports the device is in use: stop. Your task is parked and resumes by itself when the phone frees up; do not retry and do not fall back to guessing.

4. Without a device

  1. Build the app from the task branch — flutter build apk --debug, ./gradlew assembleDebug, or on macOS xcodebuild -scheme … -sdk iphonesimulator build when the Xcode CLT preflight found it. A build failure is a need_revision finding on its own, with the compiler output quoted.
  2. Run the repo's own checks: flutter analyze, ./gradlew lint, swiftlint, flutter test, ./gradlew testDebugUnitTest — only what the repo already defines; this is running the developer's suite, not authoring a new one.
  3. The API side of every flow. Most mobile criteria are "the app shows X after calling Y": call Y yourself with curl against the task branch's backend or the stage target, and verify the payload the app would render.
  4. A Flutter-web render where the repo supports it (flutter build web / flutter run -d web-server) driven with the browser tools, labelled explicitly "web-rendered, not native proof" — useful for layout/copy, never for touch, permissions, or platform look and feel.

5. Reporting

Criteria you could not run on a device are rejected via review_criterion with "not verified: no device attached; needs: …" — never approved silently. A device-unavailability blocker is a human blocker, not the developer's defect: route it through the blocker triage (qa-verify-before-verdict) with ask_user, not a need_revision the developer cannot act on.

Red Flags

  • Approving a touch/permission/push criterion from the API side alone.
  • Testing an APK/build whose commit you never checked against the PR head.
  • Forgetting mobile_release_device and leaving the next task in the queue parked.
  • A web-rendered screenshot presented as proof of native behaviour.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases

日本語の概要は準備中です。原文の説明を表示しています。

makifbaysal/tasktrooper1122026年10月11日 更新

Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping

日本語の概要は準備中です。原文の説明を表示しています。

makifbaysal/tasktrooper1122026年10月11日 更新

Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal

日本語の概要は準備中です。原文の説明を表示しています。

makifbaysal/tasktrooper1122026年10月11日 更新

Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task

日本語の概要は準備中です。原文の説明を表示しています。

makifbaysal/tasktrooper1122026年10月11日 更新

How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.

日本語の概要は準備中です。原文の説明を表示しています。

makifbaysal/tasktrooper1122026年10月11日 更新

Use when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation

日本語の概要は準備中です。原文の説明を表示しています。

makifbaysal/tasktrooper1122026年10月11日 更新

makifbaysal のスキルをすべて見る

このスキルの問題を報告する