
Writing User-Facing Copy
FreeEnsure clarity and consistency in user-facing text.
Free · Opens the source repo
What Writing User-Facing Copy does
The Writing User-Facing Copy skill provides a structured approach to creating and editing text that users encounter in PostHog products. This skill is essential for developers and designers who want to maintain a humane and neutral tone in their user-facing communications. It sets clear guidelines for writing UI labels, buttons, tooltips, error messages, onboarding instructions, and more, ensuring that all text is straightforward and user-friendly.
By using this skill, you can standardize the language used across various user interactions, promoting clarity and reducing confusion. The guidelines emphasize the importance of sentence case, direct language, and the avoidance of jargon, which helps in crafting messages that are easily understood by users. The skill also enforces specific rules, such as avoiding em-dashes and clever phrasing, which can detract from the clarity of the message.
This skill is particularly useful for teams working on user interfaces and documentation, as it provides a consistent framework that can be applied whenever new text is introduced or existing text is modified. It ensures that all user-facing copy adheres to the same standards, which can enhance the overall user experience and reduce the likelihood of miscommunication.
In addition, the skill includes specific instructions on how to refer to features like the "Wizard," guiding writers to use proper terminology that aligns with user expectations. This attention to detail in language not only improves the quality of the text but also helps in building user trust and satisfaction with the product.
When to use it
Use this skill whenever writing or editing text that users will see in PostHog, especially after code changes that affect visible strings.
When not to use it
This skill is not applicable for internal documentation, code comments, or any text meant solely for developers.
What you can build with it
Creating UI Labels
When designing user interfaces, use this skill to ensure all labels are clear and follow the established guidelines.
Editing Error Messages
Before finalizing error messages, apply this skill to ensure they provide clear next steps for users.
Drafting Onboarding Instructions
Utilize this skill when writing onboarding text to maintain a friendly and neutral tone that guides users effectively.
How to install Writing User-Facing Copy
View source1. Install with the skills CLI
npx skills add posthog/posthog/writing-user-facing-copy --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by posthogWriting user-facing copy
This is the operational gate for anything a person reads in the product or around it. Run it before writing or editing user-facing text, and whenever a code change introduces or changes a visible string.
Applies to: UI labels, buttons, form fields, tooltips, empty states, error and success messages, toasts and notifications, onboarding flows, emails, docs, and support replies. Does not apply to: code comments, commit messages, log lines, variable/function names, or other developer-only text.
Voice
Write the way a person would. Neutral and humane.
- Sentence case. Capitalize only the first word and proper nouns. "Save as view", not "Save As View". "Product analytics", not "Product Analytics".
- Be direct and friendly. Say what happened and what to do next.
- Plain language, no jargon. Use the label the user sees, not the internal name.
surveyPopupDelaySecondsbecomes "Delay the survey popup". - Don't editorialize. State what is, not how exciting it is. Cut "powerful", "seamless", "effortless", "simply", "just", "easily", "supercharge", "unlock".
- No sales-y or edgy copy. No marketing hooks, no clever one-liners, no hype.
- American English spelling. "color", "analyze", "canceled".
Specific rules
No em-dashes
Do not use em-dashes (—) anywhere in user-facing copy. Do not substitute an en-dash either.
Prefer rewriting the sentence so the dash isn't needed. If a connector is unavoidable, use a hyphen with spaces, a comma, a colon, or split into two sentences.
- ❌ "Save this view — you can reuse it later."
- ✅ "Save this view. You can reuse it later."
- ✅ "Save this view to reuse it later."
Also avoid the sentence shapes that lean on that dash, because they read as machine-written:
- ❌ "This isn't just a filter, it's a saved view." (the "not just X, but Y" construction)
- ❌ "It's fast, it's simple, it's yours." (rule-of-three padding)
- ❌ Hedging preambles like "It's worth noting that…", "Keep in mind that…".
Write the plain version instead.
No punchy or clever phrasing
This is the failure mode that slips through even when you know the rule, so check for it specifically. It applies to every string, including headings, section titles, and button labels, not just body text.
The tells:
- Antithesis ("X, not Y" / "X, they don't Y") used for effect. ❌ "Errors guide, they don't dead-end." → ✅ "Errors point to a next step."
- A heading written to sound weighty. ❌ "The rules that are easy to break" → ✅ "Common mistakes".
- A clever or dramatic closing line. ❌ "Never leave the user staring at a failure." → ✅ "Say what happened and what to do next."
- Filler that sounds like a principle but adds nothing. ❌ "This is a tool people use to get work done." → cut it.
- Emphasis the sentence doesn't need. ❌ "This will completely transform how you work." → ✅ "This changes how X works."
After drafting, re-read and cut anything that's there to sound good rather than to inform. If a line would feel out of place said plainly out loud to a colleague, rewrite it.
Errors and empty states point to a next step
Say what happened and give the next action. Don't stop at reporting that something failed.
- ❌ "Something went wrong."
- ✅ "Couldn't load your insights. Refresh the page, and if it keeps happening contact support."
How to talk about features
Use the names users see, and stay consistent across every surface.
Wizard
The setup tool is named Wizard. It confuses users as a description, because "wizard" reads like an old-style step-by-step form, not an AI. Users already have a mental model for AI agents.
- Use "Wizard" only as the feature's proper name (the thing you're pointing at).
- To explain what it does, always call it "the setup agent" or "the agent".
Examples:
- ✅ "Wizard sets up PostHog for you. The setup agent installs the SDK and wires up your first events."
- ✅ "Ask the agent to add error tracking."
- ❌ "Use the wizard to walk through setup." (using "wizard" as a description)
- ❌ "The wizard will guide you through each step." (reinforces the wrong mental model)
For any other feature, use its product-facing name exactly as it appears in the UI, and describe it in the terms users already understand.
When unsure
If you can't tell whether copy reads well, or whether a term is the right user-facing name, ask a human before shipping it.
Frequently asked questions about Writing User-Facing Copy
Similar skills
LinkedIn Post Formatter
Create engaging LinkedIn posts with Unicode styling.
Brand Voice Enforcement
Ensure all content aligns with your brand's voice.
Answer Engine Optimization
Optimize your content for AI citation.
Copywriting
Craft clear, compelling marketing copy that drives action.
Ad Creative
Generate and iterate ad copy for performance marketing.
X/Twitter运营导师
Optimize your Twitter strategy with expert guidance.
