From frontend-skills
Enforces UX text style in .ts/.tsx UI strings and prose style in .md/.mdx docs using PostToolUse hooks. Use for consistent copywriting standards.
How this skill is triggered — by the user, by Claude, or both
Slash command
/frontend-skills:setup-ux-copyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- allow: prose-style this file documents the rules and shows example violations -->
Two PostToolUse hooks on Edit/Write: one for code-string UX copy, one for prose.
.ts and .tsx)// allow: ux-copy [reason] anywhere in file skip all checks.
.md, .mdx, .markdown)For documentation, READMEs, PR description files, and any markdown prose.
Fenced code, indented code, inline code spans, and URLs are stripped before matching to reduce false positives.
<!-- allow: prose-style [reason] --> or // allow: prose-style [reason] anywhere in file skips all checks.
Copy scripts/ux-copy-check.sh, scripts/prose-style-check.sh, and scripts/_hook-lib.sh to .claude/hooks/. Make executable.
Add to hooks config: PostToolUse (matcher: Edit|Write):
.claude/hooks/ux-copy-check.sh.claude/hooks/prose-style-check.shCopy GLOSSARY.md to project root or docs/. Pair with ubiquitous-language community skill.
"Something!" in string literals"successfully" in UI strings<Button>Yes</Button> in TSX.md files.md files.md filesREDPANDA_KIT=1) Hook blocks "schema registry" (lowercase)npx claudepluginhub redpanda-data/ui-harness --plugin frontend-skillsTwo-layer copy editor. Layer 1 is a deterministic typography audit (regex-level, auto-closeable). Layer 2 is LLM judgment — reject-list hits, nominal-style detection, clarity/ambiguity pass for participant-facing content, voice/register check, and spoken- readability read. Loads repo-local .copy-editor.yaml to compose the baked-in language profile with the repo's style guide, reject list, examples, and voice doctrine. Czech is a full profile; English is a stub. **Activate automatically when the conversation edits or creates any file matching a repo's .copy-editor.yaml include scope, when the user asks about Czech or participant-facing copy, when reviewing content PRs, or when a work slice would otherwise close without a Layer 2 pass on edited visible-surface content.** Do not wait to be invoked by name. Explicit trigger phrases: copy edit, editorial pass, czech review, czech copy review, audit copy, check typography, review prose, tighten copy.
Avoids AI writing tropes like em dashes, delve, and promotional language when writing or editing PR descriptions, commit messages, documentation, Slack, or de-AI'ing text.
Generates or remediates Markdown documentation with style rules: grounded claims, active voice, imperative docstrings, no jargon or filler. For new docs, AI rewrites, style profiles.