writing-error-messages
Use when writing, reviewing, or rewriting human-facing error messages, form validation errors, empty states, authentication failures, error notifications…
Skill by TheCheepeer
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/thecheepeer-writing-error-messages
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: backend, 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/writing-error-messages
What's inside
- Skill name
writing-error-messages- Description
- Use when writing, reviewing, or rewriting human-facing error messages, form validation errors, empty states, authentication failures, error notifications, support copy, and CLI or API errors. Produces specific, actionable, blameless, accessible, and privacy-safe error communications.
- License
- Apache-2.0
- Instructions
- 135 lines in SKILL.md · view on GitHub
Files (4)
- README.md
- SKILL.md
- rewrite-examples.md · references/
- source-backed-patterns.md · references/
SKILL.md (first lines)
# Writing Error Messages ## Quickstart Before drafting any error message, identify: 1. **Audience:** end user, administrator, developer, support agent, or infrastructure operator. 2. **Failure:** what action failed and what remained intact or safely preserved. 3. **Cause:** known, unknown, user-fixable, server-side, third-party dependency, or security-sensitive. 4. **Recovery:** what the reader can do right now, what the system will do next, and where to get help if it persists. Then, apply this structure: ```text [What happened] [Reassurance, if applicable]. [Why it happened, if known and safe to disclose]. [Specific corrective action]. [Fallback path if it continues failing]. ``` Example: ```text Could not connect your account Your changes were saved, but we could not connect the account due to server instability. Please try connecting again. If the issue persists, contact support. ``` ## Fundamental Rules | Rule | What to Do | What to Avoid | | --------------------------------- | --------------------------------------- | ------------------------------------------------- | | State what happened | "Could not save your file." | Generic "Something went wrong" with no context | | State what was unaffected | "Your draft remains saved." | Leaving user guessing whether data was lost | | Provide actionable next steps | "Check your card number and try again." | "OK" or "Close" as the only options | | Use plain language | "Could not connect to Google Drive." | "Fetch failed" or "status code 500" for end users | | Do not blame the user | "Organization name is required." | "You forgot to enter the organization name." | | Respect the situation's gravity | Calm, direct, professional tone | "Oops!", forced humor, or sarcastic phrasing | | Be specific when safe | "Enter a date in the past." | "Invalid input." | | Be generic when security requires | "Incorrect email or password." | "Email exists, but password was incorrect." | ## Message Anatomy Use only the elements demanded by the situation: | Element | Purpose | Pattern | | ------------------ | --------------------------- | --------------------------------------------------------------------------------- | | Title | Summarize the failed action | "Could not save changes" | | Body | Explain cause and outcome | "Your draft remains open, but could not be saved because the connection dropped." | | Primary action | Tell the reader what to do | "Try again", "Update billing", "Choose another file" | | Fallback action | Provide an escape hatch | "If this continues, contact support." | | Diagnostic details | Help developers or support | Error code, Request ID (`requestId`), logs | Keep UI body copy to 1 to 2 short sentences. Push diagnostic details into expandable panels or log outputs. ## Validation and Form Errors For field-level errors: - Position the error adjacent to the related input, and summarize at the top for long forms. - Mirror the exact label name of the field for easy identification. - Explain how to fix, not just that it failed. - Retain the user's previously entered input so they can adjust rather than retype. - Avoid premature validation before the user has finished typing. Good patterns: ```text Enter a valid email address Enter a date in the past Password must be at least 12 characters Select a file smaller than 10 MB ``` Avoid: ```text This field is required Invalid input Illegal value provided Validation error ``` ## Accessibility and Empty States - Place the error visually where the reader's focus already rests. - Never rely exclusively on color (red). Use explicit text, clear icons, and accessible attributes (`aria-describedby`, `aria-invalid`). - On page-level form submissions, move keyboard focus to the error summary block. - Do not mistake empty results for errors. If a search returns no records, render a helpful empty state: "No invoices found" paired with a "Create invoice" button. ## Security and Privacy Guardrails Specificity is not always desirable. Use deliberately generic messages when details could leak account existence, credentials, personal information, or fraud vectors. For authentication and password recovery: ```text Invalid email or password If an account is associated with this email, we have sent password reset instructions. ``` Never disclose: ```text This email is registered, but the password was incorrect This account was locked due to excessive failed attempts No account exists for the provided email ``` ## Developer-Facing and CLI Errors When the audience is technical and can act directly on the error, provide structured detail: ```text Could not read configuration file Expected TOML format in ./app.config.toml, but found invalid syntax at line 12: missing closing quote. Fix the syntax error and run `app deploy` again. ``` Actionable details: - Which command, file, environment variable, or resource failed.
From TheCheepeer/omni-agents, Apache-2.0.
More from TheCheepeer/omni-agents
- 0.570score
strategic-roadmap
TheCheepeer
Use when the user asks "what should I work on in this repository?", "what is worth doing next?", requests a repository audit, technical debt priorities…
SkillAFreshness: AClaude Code +9 - 0.570score
frontend-design-principles
TheCheepeer
Use when building or reviewing frontend user interfaces (UI) — dashboards, admin panels, landing pages, marketing sites, and web applications.
SkillAFreshness: AClaude Code +9 - 0.570score
html-artifacts
TheCheepeer
Use when asked to create, generate, visualize, or convert material into a standalone HTML artifact, single-file self-contained .html report, interactive…
SkillAFreshness: AClaude Code +9 - 0.570score
coding-standards
TheCheepeer
Use when reviewing code quality, evaluating whether a refactoring or design is sound, identifying code smells, or judging architectural trade-offs.
SkillAFreshness: AClaude Code +9 - 0.570score
reducing-entropy
TheCheepeer
Use when evaluating architectures, reviewing code, or planning refactorings — measures success by total code volume in the end state rather than immediate…
SkillAFreshness: AClaude Code +9 - 0.570score
researching-codebases
TheCheepeer
Use when answering complex questions about a codebase that require exploring multiple modules or tracing flow across components.
SkillAFreshness: AClaude Code +9 - 0.570score
improving-prompts
TheCheepeer
Use when optimizing GEMINI.md, AGENTS.md, system prompts, custom slash commands, or skill files.
SkillAFreshness: AClaude Code +9 - 0.570score
skill-authoring
TheCheepeer
Use when creating, authoring, refining, or debugging skills for AI agents.
SkillAFreshness: AClaude Code +9 - 0.570score
writing-cli-skills
TheCheepeer
Use when authoring an agent skill that wraps a command-line interface (CLI) tool or terminal binary.
SkillAFreshness: AClaude Code +9 - 0.570score
crafting-effective-readmes
TheCheepeer
Use when drafting, structuring, or improving README.md files.
SkillAFreshness: AClaude Code +9 - 0.570score
diataxis
TheCheepeer
Structure, classify, and author technical documentation using the Diátaxis framework.
SkillAFreshness: AClaude Code +9 - 0.570score
feature-planning-artifacts
TheCheepeer
Use when creating or iterating staged planning artifacts for complex features: design discussions, structure outlines, final execution plans, or exploratory…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 28, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/TheCheepeer/omni-agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from TheCheepeer
- 0.570score
frontend-design-principles
TheCheepeer
Use when building or reviewing frontend user interfaces (UI) — dashboards, admin panels, landing pages, marketing sites, and web applications.
SkillAFreshness: AClaude Code +9 - 0.570score
html-artifacts
TheCheepeer
Use when asked to create, generate, visualize, or convert material into a standalone HTML artifact, single-file self-contained .html report, interactive…
SkillAFreshness: AClaude Code +9 - 0.570score
coding-standards
TheCheepeer
Use when reviewing code quality, evaluating whether a refactoring or design is sound, identifying code smells, or judging architectural trade-offs.
SkillAFreshness: AClaude Code +9 - 0.570score
reducing-entropy
TheCheepeer
Use when evaluating architectures, reviewing code, or planning refactorings — measures success by total code volume in the end state rather than immediate…
SkillAFreshness: AClaude Code +9 - 0.570score
researching-codebases
TheCheepeer
Use when answering complex questions about a codebase that require exploring multiple modules or tracing flow across components.
SkillAFreshness: AClaude Code +9 - 0.570score
writing
TheCheepeer
Prose and writing guidelines for human-facing technical communication — clear, concrete, and free from prefabricated AI clichés.
SkillAFreshness: AClaude Code +9
Cite this page
writing-error-messages skill. Agent Mart. https://agentmart.dev/skills/thecheepeer-writing-error-messages (last updated 2026-10-24)