stop-describing-ui — Claude Code skill: strip UI explanations
A skill that removes explanatory copy from interfaces: headings, empty states, button labels, helper text and onboarding. Useful when a screen explains itself instead of showing an action.
npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a claude-codeWhat stop-describing-ui does
The rule is short: an interface shows what the user can do and does not explain itself. Every sentence is something a person has to read before acting, so a sentence stays only when the user would make a real mistake without it.
The skill runs in two modes. While you write UI text, it applies the rules as you go. When you review an existing screen, it walks every string and returns the result as before and after. Nine rules cover the ground: name the action instead of describing the feature; pick a precise verb over New, Create, Manage, Set up, Configure; keep only the most critical consequence; drop storage, logging and background details; skip undo instructions when the same control undoes it; don't repeat what the page title already says; don't state what doesn't exist; put the button or toggle on screen instead of writing how to enable something; split prose into icon-led lines and never use ->, >, |, → or : as separators.
Irreversible effects stay — deleting data, charging money, notifying customers. A restriction the user would otherwise try and fail at also stays, as one short line with an icon. If the checklist leaves nothing, that is the correct outcome: an empty helper text slot beats a filler sentence.
What it helps with
- clear explanatory copy from empty states
- replace vague button labels with precise verbs
- cut a settings description down to one consequence
- turn an enable-this instruction into a button or toggle
- split a helper paragraph into icon-led lines
Example prompts for the agent
- review the copy on this screen with stop-describing-ui and show before and after
- rewrite the button and toggle labels in settings, drop the feature descriptions
- clean the onboarding flow of explanations, keep only actions
How to install stop-describing-ui
1Skills CLI (Vercel)
npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a claude-code2Manually: put the files in place
~/.claude/skills/stop-describing-ui/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/stop-describing-ui/
1Skills CLI (Vercel)
npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a codex2Manually: put the files in place
.agents/skills/stop-describing-ui/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a cursor2Manually: put the files in place
.cursor/skills/stop-describing-ui/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install artouc/stop-describing-ui stop-describing-ui2Manually: put the files in place
.github/skills/stop-describing-ui/SKILL.md1Skills CLI (Vercel)
npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a gemini-cli2Platform CLI
gemini skills install https://github.com/artouc/stop-describing-ui --path skills/stop-describing-uiManually: put the files in place
.devin/skills/stop-describing-ui/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about stop-describing-ui
How do I install stop-describing-ui in Claude?
Run npx skills add artouc/stop-describing-ui --skill stop-describing-ui -a claude-code. The skill lands in ~/.claude/skills/stop-describing-ui/SKILL.md.
What does stop-describing-ui do?
It strips sentences that describe a feature, its side effects, backend behavior or missing capabilities. What remains is specific verbs, controls, icons and spacing.
What does the skill keep in an interface?
Irreversible effects such as deleting data or charging money, plus restrictions the user would otherwise try and fail at. Everything else goes.
Source text
SKILL.md · MIT
--- name: stop-describing-ui description: Strip explanatory copy out of user interfaces. Use when writing, editing, or reviewing any UI text, including headings, empty states, button labels, toggle and setting descriptions, helper text, dialogs, banners, permission notices, and onboarding, and whenever a screen leans on sentences to explain what it does. Replaces descriptions of features, side effects, backend behavior, and missing capabilities with specific verbs, controls, icons, and spacing. --- # Stop describing UI An interface shows what the user can do. It does not explain itself. Every sentence is something the user has to read before acting, so keep a sentence only when the user would make a real mistake without it. When writing UI, apply the rules below as you write. When reviewing UI, go through every string, apply each rule, and present the result as before and after. ## Rules ### 1. Don't describe the feature Name the action instead. A heading, a control, and its label already say what the screen is for. Before ``` # Projects ## No projects yet. ### Choose a GitHub repository and we'll deploy on every push. + New ``` After ``` # Projects + Connect repository ``` ### 2. Use specific verbs Pick the verb that names what actually happens, and give it the object it acts on. Avoid generic verbs such as New, Create, Manage, Set up, Configure, Go, or OK when a more precise one exists. In the example above, "New" becomes "Connect repository". ### 3. Keep only the most critical consequence When an action has several effects, state the one that matters most and drop the rest. Effects that follow from it are implied. In a booking service that takes reservations through AI auto-replies, turning off auto-replies obviously stops reservations too. Before ``` Turning this off stops AI auto-replies and web reservations. Customer messages are saved only to the conversation log. You can turn it back on anytime from "Replies off" in the header. ``` After ``` Temporarily turns off AI auto-replies. ``` Irreversible or destructive effects, such as deleting data, charging money, or notifying customers, are the critical consequence and always stay. ### 4. Don't describe backend behavior Where data is stored, what gets logged, what syncs, and what runs in the background are not the user's concern. In the example above, "Customer messages are saved only to the conversation log" goes. ### 5. Don't explain undo when the same control undoes it A toggle that turns something off also turns it back on. Explain how to undo only when undoing needs a different control or place. ### 6. Don't explain what the page already tells The page title, navigation, and section structure carry meaning. On an Options page, the user already knows they are looking at options. Before ``` # Other options ### Options that become available with a contract. They cannot be toggled on or off. ``` After ``` # Other ``` ### 7. Don't state what doesn't exist Don't say there are no items yet, that something can't be toggled, or that a feature isn't available, when the screen already shows it. An empty list with a clear action says "nothing here yet". A row without a toggle says "can't be toggled". The exception is a restriction the user would otherwise try and fail at, such as an action their role can't perform. Keep it, in one short line with an icon, as in rule 9. ### 8. Show how to enable, don't write it If something becomes available by subscribing, upgrading, connecting, or turning on a setting, put the button or toggle that does it on the screen. Don't write a sentence telling the user where to go or what to do. Before ``` Sign up for the Pro plan to use this option. ``` After ``` [Upgrade to Pro] ``` ### 9. Don't rely on text alone Break prose into short lines, each led by an icon. Use spacing and grouping for structure. Never use `->`, `>`, `|`, `✔️`, `!`, `→`, or `:` as separators, arrows, bullets, or emphasis. Use an icon or spacing instead. Before ``` Searches across all stores and shows the results. Stores you don't belong to are shown as Operator, and every action records who did what in which store. You can't change applications, payment methods, or plans, or send messages to customers (replies, approving or declining tentative reservations). ``` After ``` (icon) Every action is recorded (icon) You can't change applications, payment methods, or plans, or send messages to customers ``` Here "Searches across all stores and shows the results" goes by rule 1, "shown as Operator" by rule 6 because the UI already labels them, and the detailed record format by rule 4. ## Checklist For each string, ask in order. 1. Does it explain what the feature is? Delete it, or turn it into a specific action label. 2. Is the verb generic? Replace it with one that names the real action and its object. 3. Does it list several consequences? Keep the most critical one. 4. Does it mention storage, logging, syncing, or other internals? Delete it. 5. Does it explain how to undo with the same control? Delete it. 6. Does the page title or navigation already say it? Delete it. 7. Does it say something is missing or unavailable? Delete it, unless the user would otherwise try and fail. 8. Does it tell the user how to enable something? Replace it with the button or toggle. 9. Is it a paragraph, or does it use symbols as separators? Split it into icon-led lines and use spacing. If nothing is left after the checklist, leave nothing. An empty helper text slot is better than a filler sentence.
© artouc · MIT · artouc/stop-describing-ui