Communitygithub.com

iamk3nnyt/claude-skills

Checks UI copy across locales by comparing key parity between next-intl message catalogs and in-code sv/en COPY objects, finding placeholder and array mismatches and words from the other language leaking in (the "och" in English bug), then manually reviewing claims against terms and pricing and the project's banned phrases. Use after editing copy or translations, before shipping a page with new text, or when asked to proofread or check translations.

What is claude-skills?

claude-skills is a Claude Code agent skill that checks UI copy across locales by comparing key parity between next-intl message catalogs and in-code sv/en COPY objects, finding placeholder and array mismatches and words from the other language leaking in (the "och" in English bug), then manually reviewing claims against terms and pricing and the project's banned phrases. Use after editing copy or translations, before shipping a page with new text, or when asked to proofread or check translations.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iamk3nnyt/claude-skills/tree/HEAD/skills/copy-check

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation


name: copy-check description: Checks UI copy across locales by comparing key parity between next-intl message catalogs and in-code sv/en COPY objects, finding placeholder and array mismatches and words from the other language leaking in (the "och" in English bug), then manually reviewing claims against terms and pricing and the project's banned phrases. Use after editing copy or translations, before shipping a page with new text, or when asked to proofread or check translations. argument-hint: [dir] [--locales sv,en] allowed-tools: Bash(node *) Read Grep Glob Edit

copy-check

1. Mechanical pass

Args: $ARGUMENTS

node ${CLAUDE_SKILL_DIR}/scripts/i18n-parity.mjs <dir, default: app root of the current project> --locales sv,en

The script finds **/messages|locales|i18n/<locale>.json catalogs and sibling sv: {…} / en: {…} object literals in TS/JS. It reports:

  • ERROR: missing keys, array length mismatches, placeholder mismatches ({name}, ${x}, {{x}}). Fix all of these.
  • warn: Swedish function words (och, att, för, med, inte, är, …) in English strings and vice versa, and long identical strings (untranslated?). Judge each one; product names and quoted Swedish terms are fine.
  • unparsed: blocks the mini-parser couldn't read. Check those files by eye.

Strings built outside these patterns (JSX literals, t() with inline defaults) aren't covered. Grep the changed files for hard-coded text in the wrong locale.

2. Judgement pass (changed files first, then the pages they appear on)

  • Banned or stale phrases: read the repo's CLAUDE.md and the project's memory entries. Projects often keep a list of retired taglines, required lead lines, or things that must never be stated publicly.
  • Claims vs reality: prices, trial lengths, limits and "free" against the actual pricing config, Stripe products and terms page. Coverage claims must not quote a display cap as coverage. "Fastest", "every" and "all" need a source.
  • Legal/consent wording: marketing consent is never bundled into terms, and Swedish legal terms are correct (ångerrätt, personuppgifter).
  • Locale quality (Swedish example): natural word order, no särskrivningar ("hyres lägenhet"), correct en/ett, decimal comma and kr after the number (1 299 kr), dates as 19 okt / 2026-10-19.
  • English quality: sentence case, no Swedish punctuation habits, and currency formatted for the locale.
  • Consistency: the same term for the same thing across pages (pick the existing one).

Exit criteria

  • i18n-parity exits 0, or every remaining warn is judged.
  • No banned phrases, and every factual claim matches config, terms or a source.
  • Fixes made only to copy, with no redesigns smuggled in.
  • A short summary to the user.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

iamk3nnyt/claude-skills

Turns a feature idea into a one-page spec covering problem, audience, MVP scope, non-goals, numbered Given/When/Then acceptance criteria, affected routes, data and emails, and open questions. Use when the user says "brief", "spec this", "scope this" or "what would it take", or before starting a feature whose scope is unclear.

iamk3nnyt/claude-skills

Applies an agreed visual direction to a page or component by reusing existing components first, then verifies every width and dark mode with the headless-Chrome audit plus a before/after pixel diff, and reviews against Refactoring UI, Nielsen and WCAG 2.2. Use when asked to redesign, restyle, polish or "make it look like the reference", after design-ref or when the direction is already clear.

iamk3nnyt/claude-skills

Extracts the visual system from a reference site or pasted HTML (colour roles, type scale, spacing scale, radii, shadows, button/card/eyebrow anatomy, tone) and maps it onto the current project's existing tokens as a short token table. Use when the user shares a reference ("make it look like <site>", "in this style", a URL or HTML paste) before a redesign.

iamk3nnyt/claude-skills

QAs a project's transactional and digest emails by rendering every template without DB or network, screenshotting at 600 and 375 px in light, dark and images-off, and checking for placeholder leaks (undefined, NaN, {{…}}), preheader, unsubscribe, alt text, absolute links, Outlook-safe buttons, viewport meta and Gmail's 102 KB clip. Use when email templates change, before sending a campaign, or when asked to check how emails look.

Related Skills