executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
ux-copyWrite UX copy for screens, flows, components, and micro-interactions. TRIGGER when: user says "UX copy", "microcopy", "write copy for", "button text", "error message", "empty state", "onboarding copy", or needs interface text.
Independent GitHub snapshot · Automated classification · Original documentation governs
Write clear, concise, and human interface text. Every word in a UI earns its place — guide users, reduce friction, and reflect the product's voice.
| Instead of | Write |
|---|---|
| Settings | Account settings |
| Error | Something went wrong |
| Success | Payment confirmed |
| Dashboard | Your projects |
| Context | Weak | Strong |
|---|---|---|
| Sign-up form | Submit | Create account |
| File upload | OK | Upload file |
| Destructive action | Yes | Delete permanently |
| Save form | Done | Save changes |
| Newsletter | Submit | Subscribe |
Structure: What happened + Why (if not obvious) + What to do next.
{What happened}. {What to do}.
| Instead of | Write |
|---|---|
| Invalid input | Enter an email address like name@example.com |
| Error 403 | You don't have access to this page. Ask your admin for permission. |
| Something went wrong | We couldn't save your changes. Check your connection and try again. |
| Required field | Enter your name to continue |
| Password error | Password must be at least 8 characters with one number |
Rules:
Structure: What this space is for + How to fill it (with a CTA).
## {Feature name}
{Explain what goes here in 1 sentence}.
{How to get started — with a clear CTA}.
[CTA Button]
Examples:
| Duration | Pattern |
|---|---|
| < 1s | No indicator needed |
| 1-3s | Skeleton / spinner |
| 3-10s | Spinner + "Loading..." |
| 10s+ | Progress bar + time estimate |
| Field | Help text |
|---|---|
| Username | Letters, numbers, and hyphens. 3-20 characters. |
| API key | Find this in Settings > API. Starts with "sk_". |
| Date range | Select up to 90 days. Longer ranges are available in exports. |
Adapt tone to context while keeping voice consistent:
| Context | Tone | Example |
|---|---|---|
| Onboarding | Warm, encouraging | "Welcome! Let's set up your workspace." |
| Success | Confident, brief | "Changes saved." |
| Error | Calm, helpful | "That email is already in use. Try another or sign in." |
| Destructive action | Serious, clear | "This will permanently delete all project data. This can't be undone." |
| Empty state | Friendly, guiding | "No reports yet. Create one to start tracking your metrics." |
| Loading/waiting | Reassuring | "Importing your data. This usually takes about a minute." |
When writing copy, output a structured spec:
## UX Copy — {screen/flow name}
### Screen: {name}
| Element | Copy | Notes |
|---|---|---|
| Page title | {text} | Sentence case |
| Subtitle | {text} | Optional — only if title needs context |
| Primary CTA | {text} | Verb-first, 2-4 words |
| Secondary CTA | {text} | |
| Field: Email | Label: "Email address" / Placeholder: "name@company.com" / Error: "Enter a valid email address" | |
| Field: Password | Label: "Password" / Help: "At least 8 characters" / Error: "Password is too short" | |
| Empty state | {text + CTA} | |
| Success toast | {text} | Auto-dismiss after 5s |
| Error banner | {text} | Persistent until resolved |
### Content Guidelines for This Screen
- Max heading length: {N} characters
- Max body text: {N} lines
- Truncation behavior: {ellipsis at N chars / expand on click}
Before delivering copy: