Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
日本語の概要は準備中です。原文の説明を表示しています。
Use when a feature needs camera, location, photos, notifications, contacts, microphone, Bluetooth, or local network - the per-platform request flow, every denial state, and how to actually test the denied path when the shared test device auto-grants permissions.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
A permission request handled only for the happy path (granted) crashes or dead-ends for a meaningful share of real users. Every state needs a designed response, and the denied path is the one app reviewers and store checks hit first.
NS*UsageDescription string in Info.plist before the request is made — a missing one terminates the app immediately when the request fires, not a graceful denial.UIApplication.openSettingsURLString and explain why, rather than repeatedly calling the request API hoping for a different answer.shouldShowRequestPermissionRationale to decide whether to show an explanation before requesting, or whether the user already chose "don't ask again" (in which case rationale won't show and you go straight to a Settings deep-link).POST_NOTIFICATIONS is a runtime permission since API 33 — request it like any other dangerous permission, not assumed granted.READ_MEDIA_IMAGES/READ_MEDIA_VIDEO when the feature only needs the user to pick specific media — it needs no permission at all.permission_handler: check .isPermanentlyDenied to distinguish "ask again" from "must deep-link to settings" (openAppSettings()).granted · denied (show rationale, allow retry) · restricted (parental controls/MDM — no retry is possible, say so) · permanently denied (deep-link to Settings) — the feature degrades gracefully without the permission in every case; a denial never crashes or silently dead-ends the flow.
The shared Android test device auto-grants permissions (appium:autoGrantPermissions: true), so the denied/restricted/permanently-denied paths cannot be exercised by requesting on that device — a manual test there will always show "granted" regardless of what you're verifying. Test those paths with a fake permission service injected in a widget/unit test instead (stub it to return denied/restricted/permanently-denied and assert the UI responds correctly), and say explicitly in the closing message that the denied path was verified via a fake, not on-device.
NS*UsageDescription for a permission the code requests.READ_MEDIA_IMAGES for a simple "pick one photo" feature instead of the Photo Picker.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
日本語の概要は準備中です。原文の説明を表示しています。
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
日本語の概要は準備中です。原文の説明を表示しています。
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
日本語の概要は準備中です。原文の説明を表示しています。
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
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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
日本語の概要は準備中です。原文の説明を表示しています。