clean-copy
Cut interface copy that shouldn't exist — captions that restate a label, hints that pre-empt a worry the user never had, warnings that are scar tissue from a…
Skill by nikhil-vytla
Chalk Labs
Need help deploying clean-copy?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nikhil-vytla-clean-copy
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/clean-copy
What's inside
- Skill name
clean-copy- Description
- Cut interface copy that shouldn't exist — captions that restate a label, hints that pre-empt a worry the user never had, warnings that are scar tissue from a fixed bug. Use when writing or reviewing any user-facing string (labels, hints, empty states, toasts, confirmations, button text), or when asked to clean up / tighten copy.
- License
- MIT
- Metadata
- source: https://paste.rachel.systems/ukogokijaz.md
- Instructions
- 68 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Cleaning copy Most bad copy isn't badly written. It's copy that shouldn't be on the screen. Editing it for tone just makes the wrong thing read better. So the first question is never "how should this be phrased" — it's **should this exist**. ## The ladder Walk a string down these in order. Stop at the first one that fires and delete. **1. Does this need to surface at all?** Is the thing being described something the user would ever have wondered about, unprompted? If they'd never have thought to ask, you're not answering a question — you're planting one. Nobody opens an avatar cropper wondering whether the circle is a true circle. A caption reading "the preview is rendered at the exact size used on your profile" makes them wonder whether it might not be. **2. Does the label need to exist?** A caption earns its place only when the value is meaningless without it. If the label, the field, or the value beside it already says the thing, the caption is noise. A field labelled "Retry limit" does not need "how many times we retry" beneath it. A bare "30" does need "seconds" beside it — that one stays. **3. Is it pre-empting something the user would never have had to consider?** The tell: copy that rules out a failure rather than describing a behaviour. > Cancel upload > *Always keeps the files already transferred — never wipes the folder like the old cancel did.* That second clause exists because of a bug. The user doesn't know about the bug, doesn't share your memory of fixing it, and now has a worry they arrived without. **The fix for a fixed bug is the fix. Not a caption about the fix.** Same for copy defending a design decision, or hedging about something that simply works: "this may look slow but it is not", "don't worry if the count seems off for a moment". **4. Rewrite to remove the offending part. If nothing is left, delete the element.** Don't preserve a hint just because there was a hint there. An empty `hint` prop comes off the component; an explanatory `<p>` gets deleted, not shortened to a stub. ## What survives Copy stays when the user genuinely cannot act without it: - A real consequence at the moment of choosing. Under a destructive button: *"Anything not yet synced is lost."* They need it before they click, and they can't infer it. - A compatibility or scope fact they can't see. *"Works with keys issued after March; older keys need rotating first."* The checkbox alone doesn't tell them whether it applies to them. - What a blank state means and what to do next. *"No projects yet. Create one and it will appear here."* - Units, scale, or format on a bare value. Note the first example is one sentence. Had it continued *"— only use this when a sync is stuck"*, that half would go: it instructs the user on when they're allowed to press a button they can already see. Keep the consequence, cut the permission slip. ## Working style - Read the string next to what's actually on screen around it — the label, the value, the button. Redundancy is invisible when you read the string alone. - Cut whole clauses, not words. Tightening "Leave this blank to use the default setting for your account" into "Leave blank for the default" is a smaller win than noticing which half of a two-sentence hint is doing no work. - When reviewing a batch, report as `file:line` with the current string and either the rewrite or `cut` — and say in a few words which rung it failed. Don't rewrite copy that passes. - If a string is load-bearing but only in a rare state, consider whether it belongs in that state rather than permanently on the page.
From nikhil-vytla/skills, MIT.
More from nikhil-vytla/skills
- 0.562score
tdd
nikhil-vytla
Test-driven development.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
codebase-design
nikhil-vytla
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
domain-modeling
nikhil-vytla
Build and sharpen a project's domain model.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
code-review
nikhil-vytla
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding…
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
triage
nikhil-vytla
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
improve-codebase-architecture
nikhil-vytla
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
SkillAFreshness: A★ 1Claude Code +9 - 0.553score
retro
nikhil-vytla
Conduct a retrospective on a coding session.
SkillAFreshness: A★ 1Claude Code +9 - 0.553score
implement-spec
nikhil-vytla
Implement the result of /to-spec and /to-tickets in code.
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
papercuts
nikhil-vytla
Log small frictions the moment they happen, using the papercut CLI bundled with this skill.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
pr-descriptions
nikhil-vytla
Write high-signal pull request descriptions with mermaid diagrams, real code snippets, and PR-train conventions.
SkillBFreshness: B★ 1Claude Code +9 - 0.522score
prototype
nikhil-vytla
Build a throwaway prototype to answer a design question.
SkillBFreshness: B★ 1Claude Code +9 - 0.519score
to-spec
nikhil-vytla
Turn the current conversation into a spec and publish it to the project issue tracker: no interview, just synthesis of what you've already discussed.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 21, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/nikhil-vytla/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from nikhil-vytla
- 0.562score
domain-modeling
nikhil-vytla
Build and sharpen a project's domain model.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
tdd
nikhil-vytla
Test-driven development.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
codebase-design
nikhil-vytla
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
code-review
nikhil-vytla
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding…
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
improve-codebase-architecture
nikhil-vytla
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
triage
nikhil-vytla
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get clean-copy running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
clean-copy skill. Agent Mart. https://agentmart.dev/skills/nikhil-vytla-clean-copy (last updated 2026-10-24)