ux-writing
Judgment rules for user-facing text and docs: CLI and diagnostic output, error and help text, README and docs structure, code comments, titles, and generated…
Skill by scarletkc
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/scarletkc-ux-writing
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: design, 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/ux-writing
What's inside
- Skill name
ux-writing- Description
- Judgment rules for user-facing text and docs: CLI and diagnostic output, error and help text, README and docs structure, code comments, titles, and generated reports, decks, or exports. Use when writing or changing any user-visible string, when adding or restructuring docs or deciding which page owns a fact, when a page is about to record a version, a deployment state, or a value the code already owns, when a comment, title, or artifact could carry the reasoning or an abandoned option behind the change, when a behavior change needs its copy sites swept, or when reviewing a diff that touches copy or docs.
- License
- Apache-2.0
- Metadata
- author: scarletkc · source: https://github.com/scarletkc/agents · summary: Review user-facing copy and documentation for clarity, consistency, facts that do not go stale, and no leftover intermediate state.
- Instructions
- 255 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# UX Writing & Docs
User-visible text is product behavior and carries the same quality bar as
code. Every rule below is distilled from a real defect caught in review, and
keeps its counter-example because the reasoning is the point. When in doubt,
re-read the output as the user who just hit the problem.
## Status output & diagnostics
- **Report effective values, not stored ones.** A status display answers
"what will happen when I run this", so resolve values exactly the way the
runtime does, including environment variables and layered config.
*Counter-example: a config viewer printed "API key set: no" while an env
var held the key the next run would actually use.*
- **Diagnostics must stay truthful under failure.** When one config layer
fails to load, fall back to the most complete state that still loads,
never to blank defaults. A diagnostic that misreports is worse than one
that aborts. *Counter-example: a broken project-level config made a doctor
command check blank defaults and report a missing API key that was in fact
configured; the fake failure buried the real one.*
- **Show deltas, not dumps.** A health/diagnostic command lists what
deviates and who set it; the exhaustive listing belongs to the dedicated
inspect command. Don't make one command duplicate another's job.
*Counter-example: a doctor check printed fifteen "field: origin" lines,
most of them saying "global". One line naming the two real overrides
replaced the block.*
- **Annotate at the granularity of the claim.** If one sub-part of a
composite value has a different source or state, say it on the sub-part;
don't relabel the whole. *Counter-example: an env-injected API key
relabeled an entire endpoint block "(environment)" although its URL and
model came from a file. The fix was "key from env", with the block label
unchanged.*
- **Re-read neighboring labels after adding metadata.** New suffixes collide
with existing value labels. *Counter-example: "Embedding dimensions:
default (default)", fixed by renaming the value "auto".*
- **Machine-readable output is a contract.** Porcelain/TSV/JSON output never
gains decoration, notices, or annotations; informational text goes to
stderr or the human-format path. Absence is part of the contract, so write
the negative test (`"(project)" not in stdout`).
- **Never truncate the payload.** Paths, IDs, and URLs in diagnostics must
survive narrow terminals un-ellipsized (disable auto-wrap/crop for those
lines); a truncated path cannot be copied into the next command.
## Error messages
Every error answers three questions: what happened, where, and what to do
now. The strongest pattern: name the offending file or input, list the
rejected fields, list the allowed fields, and say where the rejected setting
belongs instead. Fail loudly rather than degrade silently; when catching an
exception purely to suppress a traceback, keep the message intact.
## Documentation
- **Each document has one responsibility, and it decides what belongs.** A
page is a durable contract, a proposal, an investigation, a TODO, a dated
work order, or a runbook — one of them, not several. Naming that first is
what makes a canonical home decidable: a fact lives on the page whose job
it is, and every other surface reaches it through a single specific link
instead of a partial retelling on each page that happens to touch it. When
two pages both claim to be the detailed spec, the broader responsibility
keeps the shared rules and the narrower keeps only what its own surface
adds. *Counter-example: an implementation plan stayed the de-facto spec
after shipping, so the rules lived half there and half in the architecture
doc; folding the stable rules into the contract and leaving the sequence in
git history left one page to trust.*
- **Rationale is a genre of its own.** A how-to answers what to run, a
reference answers what exists, and why-it-was-built-this-way belongs to a
design record, an ADR, or the pull request that decided it. Answering the
design question inside a usage page pushes the steps the reader came for
below the fold, and the argument is also the part that rots first: the
implementation moves on and only the guide still defends the old choice.
An explanation produced because someone asked once belongs in that
answer, not in a permanent page. *Counter-example: a setup guide spent
its second paragraph on why this queue was chosen over two others; the
queue was replaced a release later and the paragraph outlived it.*
- **One canonical home per fact.** Details that change together (field
lists, precedence chains, supported values) live in exactly one document;
every other mention links to it. Legitimate copies: artifacts distributed
standalone (a bundled skill file that ships without the repo), and
genuinely surface-specific nuance. *Counter-example: a seven-field
allowlist pasted into five docs.*
- **Restating and linking is a bug, not thoroughness.** If a section
duplicates the canonical content and then ends with "see X for the full
contract", it already is the full contract. Delete the restatement; keep
the link and whatever is specific to this surface.
- **Prefer the smallest sufficient edit.** When revising existing text,
preserve unaffected wording, structure, and rationale. Remove genuine
duplication, but do not rewrite neighboring prose or compress away useful
distinctions without a reason. *Counter-example: changing one mandatory
workflow into an optional one rewrote several surrounding sections, then
over-corrected by removing useful context; a few local edits were enough.*
- **Insertion respects adjacency.** Before adding a section, check what the
surrounding paragraphs attach to. *Counter-example: a new section landed
between a flags table and its output-format footnote, orphaning the
footnote in the wrong chapter.*
- **Adjectives need evidence.** "Recommended", "faster", "better" come from
your own benchmarks, not optimism. *Counter-example: a feature was about
to ship commented "# recommended" while the project's own eval showed it
losing to the default on strong models. It shipped as "optional".*
- **Every README section has one job.** Positioning sections ("Why X?")
don't accumulate feature bullets; quick-starts don't explain architecture.
A README stays lean and links into the docs; detail accumulating there
usually means it left its canonical home.
- **Order a page by what the reader needs first, and split when it stops
being one task.** Open with scope and the authoritative entry points, then
the common rules and the main path, and only then exceptions, recovery,
and change checks. An overview layer summarizes stable semantics and links
down; it does not carry field tables, full payloads, or current numbers to
buy self-containment. When a page starts demanding that the reader
understand several unrelated tasks, or whole chapters serve only two
maintainers, that is the signal to split it — and the split leaves behind
one line of purpose plus the link, never a second copy of the fact.
*Counter-example: a getting-started page opened with the full option
reference, so the three commands a first-time reader needed sat two
screens below it.*
- **Reminders name the most-forgotten item only.** A guideline that
enumerates every artifact reads as noise and gets skipped whole. "Update
whichever docs the change affects; the bundled skill is the easiest to
forget" beats a list of six file types.From scarletkc/agents, Apache-2.0.
More from scarletkc/agents
- 0.798score
devin-cli
scarletkc
Delegate bounded coding tasks to the local Devin CLI over ACP from a supervising agent such as Claude Code or Codex.
SkillAFreshness: A★ 225Claude Code +9 - 0.794score
talk-like-scarletkc
scarletkc
按 scarletkc 本人的自然表达习惯代写、改写、润色和翻译文本,适用于推文、评论、聊天消息、模型或工具体验文、项目介绍、GitHub 文本和正式通信。用户要求撰写可直接使用的成稿、去除 AI 腔,或在翻译中保留本人语气和立场时使用,无需明确点名本 skill。单纯的事实问答、技术分析、代码审查和任务讨论不触发。
SkillAFreshness: A★ 225Claude Code +9 - 0.794score
x-content
scarletkc
为 X(Twitter)寻找值得发的素材、筛选选题、撰写和改进帖文或串,并从读者视角重读,改善吸引力、阅读连贯性和真实讨论空间。用户问 X 最近有什么可以发、想写一条有流量的帖文,或反馈 X 帖文太复杂、读不下去时使用。只调整个人语气或忠实翻译已有文本时不触发。
SkillAFreshness: A★ 225Claude Code +9 - 0.752score
grok-cli
scarletkc
Delegate bounded tasks to Grok Build from a supervising agent such as Codex.
SkillBFreshness: B★ 225Claude Code +9 - 0.748score
antigravity-cli
scarletkc
Delegate bounded investigation, review, or implementation tasks to Antigravity CLI from a supervising agent.
SkillBFreshness: B★ 225Claude Code +9 - 0.746score
scoped-change
scarletkc
Judgment rules for locating the correct boundary of a requested change: staying inert outside it while completing every required site inside it.
SkillBFreshness: B★ 225Claude Code +9 - 0.746score
marketing-copy
scarletkc
Write outbound promotional copy for a product or project: launch and update posts for community platforms and social media, store page descriptions and short…
SkillBFreshness: B★ 225Claude Code +9 - 0.746score
codex-cli
scarletkc
When handing work to the Codex CLI earns its cost, and how to size the run: second-model review, bounded implementation hand-offs, sandbox permissions, model…
SkillBFreshness: B★ 225Claude Code +9 - 0.746score
worktree-pr
scarletkc
Decide whether a task deserves its own git worktree and, if chosen, run it end to end: branch from the integration branch rather than the current tree, keep…
SkillBFreshness: B★ 225Claude Code +9 - 0.746score
ask-to-plan
scarletkc
Guide a user from an unclear idea to an actionable plan through the agent harness's native ask tool and clickable choices.
SkillBFreshness: B★ 225Claude Code +9 - 0.742score
product-writing
scarletkc
Write, edit, or review UI copy, CLI messages, help text, code comments, and technical documentation covering product behavior, errors, status, setup…
SkillBFreshness: B★ 225Claude Code +9
Signals
- Stars
- 225
- Forks
- 12
- Open issues
- 1
- Last commit (this folder)
- Aug 24, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/scarletkc/agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from scarletkc
- 0.798score
devin-cli
scarletkc
Delegate bounded coding tasks to the local Devin CLI over ACP from a supervising agent such as Claude Code or Codex.
SkillAFreshness: A★ 225Claude Code +9 - 0.795score
vexor-cli
scarletkc
Semantic file discovery via `vexor`.
SkillAFreshness: A★ 246Claude Code +9 - 0.794score
x-content
scarletkc
为 X(Twitter)寻找值得发的素材、筛选选题、撰写和改进帖文或串,并从读者视角重读,改善吸引力、阅读连贯性和真实讨论空间。用户问 X 最近有什么可以发、想写一条有流量的帖文,或反馈 X 帖文太复杂、读不下去时使用。只调整个人语气或忠实翻译已有文本时不触发。
SkillAFreshness: A★ 225Claude Code +9 - 0.794score
talk-like-scarletkc
scarletkc
按 scarletkc 本人的自然表达习惯代写、改写、润色和翻译文本,适用于推文、评论、聊天消息、模型或工具体验文、项目介绍、GitHub 文本和正式通信。用户要求撰写可直接使用的成稿、去除 AI 腔,或在翻译中保留本人语气和立场时使用,无需明确点名本 skill。单纯的事实问答、技术分析、代码审查和任务讨论不触发。
SkillAFreshness: A★ 225Claude Code +9 - 0.770score
Vexor
scarletkc
A semantic search engine for files and code.
ConnectorAFreshness: ALocal★ 246↓ 123/wkClaude Code +5 - 0.752score
grok-cli
scarletkc
Delegate bounded tasks to Grok Build from a supervising agent such as Codex.
SkillBFreshness: B★ 225Claude Code +9
Cite this page
ux-writing skill. Agent Mart. https://agentmart.dev/skills/scarletkc-ux-writing (last updated 2026-10-24)