clarify-skill
Skill1 starsChanged 11 days agoMITView on GitHub
Rewrite confusing UX copy so interfaces explain themselves: labels, buttons, errors, empty states, tooltips. Use when users don't understand fields. Do NOT use for marketing copy.
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Words are design material, not decoration: Every word exists to make the interface easier to understand.
- Distinctive: line 25
Write from the end user's side: name things by what people control, not how the system is built
- Distinctive: line 30
Keep the register conversational but tuned: match tone to audience
- Distinctive: line 45
Use consistent error message format across the application
- Very specific: line 81
Read PRODUCT.md for audience and tone if available.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Clarify Skill
Rewrite UX copy so interfaces explain themselves.
Functional text only — labels, errors, instructions, confirmations. Not marketing copy.
Writing Philosophy
Words are design material, not decoration. Every word exists to make the interface easier to understand.
- Write from the end user's side: name things by what people control, not how the system is built
- Describe what something does in plain terms: "Save changes" not "Submit"
- Active voice by default: same name through the whole flow
- Errors explain what happened and how to fix it: never apologize, never blame
- Empty states are invitations to act: "Your first message will appear here after you invite a teammate"
- Keep the register conversational but tuned: match tone to audience
Output Contract
| Artifact | Format | Location | Quality Criteria |
| Rewritten UX copy | Text strings | Component source files | Clear, concise, consistent, accessible, audience-tuned, security-safe |
Security Considerations for Error Messages
Error messages must balance UX clarity with security (OWASP Error Handling Cheat Sheet):
DO:
- Tell the user WHAT went wrong in user-friendly terms
- Tell the user HOW to fix it (actionable steps)
- Use consistent error message format across the application
DON'T:
- Reveal technical details (stack traces, SQL queries, file paths, server versions)
- Reveal whether a username/email exists (use "Invalid username or password" not "User not found")
- Include database table names, column names, or query syntax
- Expose internal error codes or system architecture
Examples:
- ❌ "SQL syntax error at line 42 in query SELECT * FROM users WHERE..."
- ✅ "Invalid input. Please check your entry and try again."
- ❌ "User 'admin' not found in database"
- ✅ "Invalid username or password"
- ❌ "File not found: /var/www/app/config.json"
- ✅ "Something went wrong. Please try again or contact support."
Log technical details server-side for debugging, but return generic messages to users.
When to Use
- Writing feels templated or generic — no deliberate voice
- Users don't understand a field or flow
- Error messages blame the user or don't explain the fix
- Button copy is ambiguous ("Submit", "OK", "Click here")
- Empty states say "No items" with no context
- Tooltips restate the label
- Confirmation dialogs don't name consequences
When NOT to Use
- Marketing or landing page copy (needs a writer)
- Voice/personality upgrades (use
delight) - Content strategy or information architecture
Process Summary
Read PRODUCT.md for audience and tone if available. Otherwise detect audience from context.
| Category | Key rule | See examples |
| Labels & Field Hints | Direct, specific, show constraints upfront | → See guides/EXAMPLES.md §1 |
| Button Copy | Verb-first, describe outcome, never "Submit" alone | → See guides/EXAMPLES.md §2 |
| Error Messages | Explain what + why + fix, never blame | → See guides/EXAMPLES.md §3 |
| Empty States | Explain why empty, set expectation, offer action | → See guides/EXAMPLES.md §4 |
| Tooltips | Must add info the label can't carry or remove | → See guides/EXAMPLES.md §5 |
| Confirmation Dialogs | Name object + consequence, button matches action | → See guides/EXAMPLES.md §6 |
Voice Tuning
→ See guides/VOICE-TUNING.md for full audience profiles.
Adjust based on audience: technical (precise), consumer (plain language), rushed (short), anxious (reassuring), regulated (formal).
Pitfalls
- Writing cleverer, not clearer — If copy is already clear, don't change it
- Skipping audience detection — Without knowing who reads, rewrites will be generic
- Running on marketing copy — Clarify is for functional UX text only
Related Commands
| Need | Skill |
| Personality + microcopy | delight |
| First-run experiences | onboard |
| Simplify overloaded UI | distill |
| Final polish pass | polish |
QA Gates
- Writing Philosophy respected — active voice, end-user side, plain terms
- All labels are specific, not generic
- No button says "Submit" or "OK" alone
- Error messages explain what, why, and fix
- Empty states explain why and what next
- Tooltips add information (don't restate labels)
- Confirmation dialogs name object + consequence
- Voice tuned to audience
- No "you" blaming in error messages
- Error messages don't reveal technical details (OWASP compliance)
- Error messages don't reveal whether username/email exists
- Technical details logged server-side, not shown to users
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/CLAUDE.mdCLAUDE.md
- adapt-skillSkill
- api-and-interface-designSkill
- architecture-analysisSkill
- audit-skillSkill
- backend-api-masterySkill
- browser-testing-with-devtoolsSkill
- ci-cd-and-automationSkill
- cli-toolsSkill
- code-review-and-qualitySkill
- code-simplificationSkill
- context-engineeringSkill
- critique-skillSkill
- customize-opencodeSkill
- debugging-and-error-recoverySkill
- debugging-three-strikesSkill
- delight-skillSkill
- deprecation-and-migrationSkill
- dev-environment-auditSkill
- documentation-and-adrsSkill
- doubt-driven-developmentSkill
- engineering-fundamentalsSkill
- frontend-desktopSkill
- frontend-mobileSkill
- frontend-pwaSkill
- frontend-ui-engineeringSkill
- frontend-webSkill
- fullstack-shippingSkill
- gateSkill
- git-init-and-versioningSkill
- git-workflow-and-versioningSkill
- hard-skillSkill
- idea-refineSkill
- incremental-implementationSkill
- industrial-brutalist-uiSkill
- interview-meSkill
- minimalist-uiSkill
- multi-agent-orchestrationSkill
- observability-and-instrumentationSkill
- optimize-skillSkill
- output-skillSkill
- performance-optimizationSkill
- planning-and-task-breakdownSkill
- polish-skillSkill
- project-health-checkSkill
- project-metricsSkill
- redesign-skillSkill
- security-and-hardeningSkill
- self-improvementSkill
- shipping-and-launchSkill
- skill-creatorSkill
- skill-improverSkill
- soft-premium-uiSkill
- source-driven-developmentSkill
- spec-driven-developmentSkill
- test-driven-developmentSkill
- typeset-skillSkill
- user-onboardingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

