Skip to content
Back to skills

Review Voice

ASecurity

Review a content file against content/VOICE.md for what the lint cannot judge - claims, numbers, regulation naming, rhythm, structure - after quoting the lint's own findings on it, and report HIGH / MEDIUM / LOW with a verdict. Use when asked to brand-review, voice-check, lint, audit or read a draft or a page for voice, claims, AI-tic prose or readiness, or "is this on-brand" / "is this ready to publish".

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 23, 2026
developmentgobash

Works with

  • claude code
  • cli

Security analysis

A100/100

Scanned November 9, 2026

npx -y skills add HKamkar/agentic-cms --skill review-voice --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Review Voice?

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

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

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: review-voice
description: Review a content file against content/VOICE.md for what the lint cannot judge - claims, numbers, regulation naming, rhythm, structure - after quoting the lint's own findings on it, and report HIGH / MEDIUM / LOW with a verdict. Use when asked to brand-review, voice-check, lint, audit or read a draft or a page for voice, claims, AI-tic prose or readiness, or "is this on-brand" / "is this ready to publish".
argument-hint: <path under content/>
---

# Review voice

The repo is the current directory. The file is the one the user named
(`content/blog/<slug>.md`, `content/pages/<slug>.yaml`, a FAQ set); if
none, ask. One file per run: a report on every draft at once is too long
to act on.

## Read first

`content/VOICE.md` in full: the reader, the non-negotiables, the claims,
the writing rules, and the fenced block (the exact rules the lint runs).
`content/blog/_template.md` for a post's structural fields. Then the file.

## Passes

1. **The lint's lines.** Run `pnpm content:lint` and quote every line
   for this file verbatim: those are the exact rules (banned words and
   patterns, the brand's spelling and mark, model and cloud names, em
   dashes, alts, counts, headings, images, dates) and are not re-judged;
   a `FAIL` is a HIGH finding as it stands. If the command cannot run
   (no permission in this session), say so on the `Lint:` line and check
   the block's exact rules by hand, marked as a hand-check.
2. **Claims** (HIGH): compliance or certification language `VOICE.md`
   forbids, however phrased; numbers without a documented source; a
   customer, logo, quote or case study without approval; a roadmap
   promise; anything `VOICE.md` says is never said (offers named wrongly,
   the incumbent framed wrongly, entities it never names).
3. **Naming** (MEDIUM): a regulation or standard abbreviated before its
   full name; the offers and the category spelled as `VOICE.md` spells
   them; the calls to action as it prescribes them.
4. **Voice** (LOW): the generated cadence (short-long-short-long), a
   rhetorical question opening a section, hedging chains, three-item
   rhythms, abstract value statements that fit any vendor, a paragraph
   that restates the previous one, title case where the rules say
   sentence case.
5. **Structure** (MEDIUM, posts): the closing call to action, the pull
   quote, the FAQ heading with 3–5 questions and answers, the excerpt's
   30–40 words, an alt per image, headings from `##`.

## Report

```
VOICE REVIEW — <file> — <YYYY-MM-DD>
Lint: <its lines for this file, or "clean">
HIGH: <n>  MEDIUM: <n>  LOW: <n>
Verdict: READY | FIX HIGH FIRST | NOT SHIPPABLE

[H1] <where> <category>
Found: "<verbatim>"
Issue: <one line>
Fix:   "<the rewrite>"
… (MEDIUM, LOW the same)
```

NOT SHIPPABLE on any lint `FAIL`, any claim the rules forbid, or five or
more HIGH; FIX HIGH FIRST on one to four HIGH; READY otherwise. Quote
verbatim; no preamble, no closing summary.

## Then

Only with the user's approval, apply the chosen fixes in the file; a
post that has `publishedAt` follows `update-post` step 2 for its date,
and the procedure ends with its verify line, 0 failures:

```bash
pnpm lint && pnpm test && pnpm content:lint && pnpm build
```

On Claude Code the `voice-reviewer` agent runs this same procedure in
isolation and stops at the report; on a client without subagents, a
fresh session running this skill is the isolated pass.

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.

View all in development →

Comments

Loading comments…

Newsletter

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