accessibility-gate
Use as a pass/fail gate on any diff with a user-facing surface — by code-reviewer during review, by qa-engineer during the test pass, and by any IC before…
Use when writing or reviewing any string a user reads — labels, buttons, empty states, errors, permission prompts, onboarding, notifications. Invoked by ux-architect and product-designer while specifying screens, and by product-manager when a clarification turns out to be a copy
$ npx -y skills add vmobifystudio/app-dev-team --skill content-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/content-designContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when writing or reviewing any string a user reads — labels, buttons, empty states, errors, permission prompts, onboarding, notifications. Invoked by ux-architect and product-designer while specifying screens, and by product-manager when a clarification turns out to be a copy
name: content-design description: Use when writing or reviewing any string a user reads — labels, buttons, empty states, errors, permission prompts, onboarding, notifications. Invoked by ux-architect and product-designer while specifying screens, and by product-manager when a clarification turns out to be a copy decision. Triggers the moment a placeholder string would ship.
The interface is mostly words. Words written last, by whoever was implementing, are the ones users actually read.
`Confirm`.
belongs in the dialog, not in the button.
1. **What happened**, in the user's terms, not the system's. 2. **Whether their data is safe.** This is the question they are actually asking. 3. **What to do next**, as an action they can take right now.
`Something went wrong` fails all three. `Couldn't save — your note is still here. Retry when you're back online.` passes all three in one line. **Never show an error code without also showing prose**, and never show raw exception text.
An empty state is not a blank screen with an apology. It says what belongs here, why it is empty (new, filtered, or failed — three different states, three different messages), and the one action that fills it.
Ask *at the moment of need*, never at launch. The prompt says what the user gets, not what the app wants. The system string (`NSCameraUsageDescription` etc.) is written by you, not by an engineer at build time — and a denied permission needs a working path, not a dead end.
Retrofitting is far more expensive and is where hardcoded strings survive to ship (`localisation`).
and a review failure at once.
the list in `docs/14-components.md`.
string concatenation.
Copy lives with the screen that shows it, in `docs/12-flows.md` and `docs/14-components.md`. A state in the inventory with no copy is not specified.
Describe your app idea in one line. Get a shipped iOS & Android app. AI App Studio is a team of 30 AI specialists — a CEO, product manager, designers, iOS/Android engineers, a code reviewer, QA, and a release manager — that works like a real software studio.
Repo: vmobifystudio/app-dev-team
Use as a pass/fail gate on any diff with a user-facing surface — by code-reviewer during review, by qa-engineer during the test pass, and by any IC before…
Use before spawning any agent that writes files, and by every developer/fixer agent as its first and last action. Gives each agent its own git worktree,…
Use to produce the technical architecture doc and engineering principles for a mobile app. Used primarily by the CTO agent. Triggers on "design the…
Use to validate docs/31-board.md before spawning any agent, and to verify a developer's "DONE" claim before moving a row to review. Triggers as step 0 of…
Use when pointing the team at an EXISTING, already-built app instead of a blank project — detects the stack, reverse-engineers the as-built architecture, and…
Use when deciding or revisiting how the product makes money — pricing, tiers, trial shape, ad load, unit economics — by ceo when setting the model, by cpo when…