Skip to content
Back to skills

Language Review

ASecurity

Lints user-facing copy in the active language profile against site-config terminology rules, surface-specific tone (article vs cold email vs LinkedIn post), and language-specific style rules (punctuation, plurals, diacritics, smart quotes). Use after editing files containing user-facing strings — UI labels, marketing copy, articles, legal text, outbound messages. Returns structured findings; does NOT rewrite text and does NOT verify factual claims.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added June 5, 2026
ai-agentsvue

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add TrendTweekers/article-autopilot --skill language-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Language Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Language Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/trendtweekers-language-review/badge)](https://www.skillsdirectory.com/skills/trendtweekers-language-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: language-review
description: Lints user-facing copy in the active language profile against site-config terminology rules, surface-specific tone (article vs cold email vs LinkedIn post), and language-specific style rules (punctuation, plurals, diacritics, smart quotes). Use after editing files containing user-facing strings — UI labels, marketing copy, articles, legal text, outbound messages. Returns structured findings; does NOT rewrite text and does NOT verify factual claims.
---

# language-review — surface-aware copy linter

This skill is a thin entry point that delegates to the `copy-reviewer`
agent in `.claude/agents/copy-reviewer.md` with the right context loaded.

## When to invoke

The bundled `post-edit-nudge.mjs` hook fires this skill automatically
after edits to known user-facing files. The hook only nudges — the main
session decides whether to actually run a review based on whether the
edit touched copy or was pure logic.

You can also invoke manually:

```
/language-review                    # review uncommitted changes
/language-review src/pages/Foo.tsx  # focus on one file
```

## What the agent reviews

For every edit, the agent checks:

1. **Terminology** — every `terminology.preferred` and `terminology.banned`
   rule in `site-config.yaml`.
2. **Voice consistency** — does the copy hit `voice.tone` adjectives and
   avoid `voice.avoid` items?
3. **Surface-specific rules** — different rules apply to articles vs
   landing pages vs LinkedIn posts vs cold emails. The active language
   profile defines the surface table.
4. **Language quirks** — diacritics, plurals, smart quotes, gendered
   agreement (whatever applies in the active profile).
5. **Pricing drift** — if `pricing` block is set in config, prices in
   copy must match.
6. **Phasing dates drift** — if `phasing_dates` block is set, date
   claims must match.
7. **Factual claims** — flagged for human verification, not auto-verified.

## What the agent does NOT do

- Doesn't edit files. Review only. The main session applies fixes.
- Doesn't verify factual claims. Flags them.
- Doesn't review non-user-facing strings (code identifiers, config
  values, vendor names, English comments in a Polish project, etc.).
- Doesn't rewrite for taste alone — respect the author's voice.
- Doesn't produce a polished "improved version" for fact-bearing
  content. Point fixes only.

## Inputs

When invoking the agent, pass:

1. The file paths to review (or a diff range).
2. The active language profile path
   (`.claude/skills/article/language-profiles/<profile>.md`). Note:
   `examples/language-profiles/` is reference-only for contributors.
   The runtime reads the installed copies under
   `.claude/skills/article/language-profiles/`.
3. The relevant `site-config.yaml` sections (`terminology`, `voice`,
   `pricing`, `phasing_dates`, `disclaimer_template`).

The agent returns findings in the structure documented in
`.claude/agents/copy-reviewer.md`.

## Surface detection

The agent infers the surface from the file path:

| Path pattern | Surface |
|---|---|
| `*/blog/*.md`, `*/articles/*.md`, `content/posts/*` | Article |
| `*/pages/*.{tsx,jsx,vue,astro}`, `*/components/landing/*` | Landing page |
| `*/components/dashboard/*` | App UI |
| `*/legal/*`, `*Regulamin*`, `*Privacy*`, `*Terms*` | Legal page |
| `*/emails/*`, `*-email.{md,html}` | Email |
| `*linkedin*`, `*social*`, `*post-*.md` | Social post |

Each surface has its own ruleset in the active language profile (see
`.claude/skills/article/language-profiles/english.md` for the
structure).

## Output

The agent always returns findings in a fixed structure:

1. **Quick verdict** (one sentence)
2. **Language issues** (must-fix / should-fix / nits)
3. **Claims to verify** (flagged, not verified)
4. **Risky or unsupported claims** (promotional overreach, legal
   exposure, misleading scope)
5. **Key point fixes** (only when grammar is broken or fact is wrong)

The main session decides what to apply. The agent never edits.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.