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 you write any words a user reads in a mockup or a hand-off - content language and voice, buttons, labels, errors, empty states, confirmations, numbers and dates, and the longest-string check
インストールする前に、エージェントに与えられる指示の中身を確認できます。
The words are part of the design: a button label decides whether the user knows what happens next, an error decides whether they can recover. Copy written as an afterthought — "Submit", "Error occurred", "No data" — is how a well-drawn screen still fails.
Core principle: Say what happens, in the user's words, in the product's language — and write the longest version you will ever see.
locales/*.json, Localizable.strings, res/values/strings.xml, lib/l10n/*.arb) and reuse its terms exactly: if the app says "Workspace", a new screen does not say "Project". Match its voice — formal or casual, "you" or impersonal.#notes as draft copy.| Element | Write | Not |
|---|---|---|
| Button | verb + object, sentence case: "Send invoice" | "Submit", "OK", "Click here" |
| Destructive button | names the thing: "Delete invoice" | "Delete", "Yes" |
| Field label | a noun above the field: "Customer email" | the placeholder as the only label |
| Placeholder | an example: "name@company.com" | the label repeated |
| Helper text | the constraint, before the user hits it: "At least 8 characters" | a tooltip-only hint |
| Error | what happened + how to fix, no blame, no apology: "Enter an email address like name@company.com" | "Invalid input", "Oops! Something went wrong" |
| System error | what failed + what to do: "Invoices couldn't load. Check your connection and try again." + "Retry" | an error code alone |
| Empty, first use | why it is empty + the one next action: "No invoices yet — create your first one in under a minute." + "New invoice" | "No data" |
| Empty, no results | the query + the way out: "No invoices match "Ortiz"" + "Clear search" | the first-use empty state |
| Success | the outcome with the object: "Invoice INV-204 sent to Dana Ortiz" | "Success!" |
| Confirmation dialog | title asks with the object ("Delete invoice INV-204?"), body states the consequence ("This can't be undone."), buttons are the verb and "Cancel" | "Are you sure?" with Yes / No |
| Link | where it goes: "View invoice" | "Click here", "More" |
| Icon-only control | its accessible name, written in the spec: "Filter invoices" | nothing |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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
日本語の概要は準備中です。原文の説明を表示しています。