If your AI drafts read like AI, there is a small set of free tools that actually changes the output, and they sort cleanly by the stage of the draft they act on. Pre-draft briefing is well served by free agent skills. Post-draft checking is well served by four mature open-source prose linters. The middle — while the model is actually composing — is served almost entirely by static instruction files that nothing enforces.
The full census is one table below, and every tool in it is free: anything whose writing feature sits behind a paid tier was excluded outright. The collection date and inclusion rules are in the methodology block.
- 01Free tooling clusters at the edges of a draft.Skills brief the model before it writes; linters check the text after. In between, style rules live in CLAUDE.md-style instruction files that practitioners describe as advisory rather than enforced.
- 02No official Anthropic skill gates prose style.The listing runs to 19 skills; of the three whose SKILL.md files we read, none validates or blocks non-conforming prose. Even brand-guidelines governs fonts and colors, not writing voice.
- 03Four free linters can gate deterministically.Vale, proselint, write-good and textlint are rule-based pass/fail checks. In the catalogs and marketplaces this pass checked, none was found packaged as a portable skill or plugin.
- 04Spend effort where the gates are.Wire a post-draft linter into CI today, brief pre-draft with a skill, and treat the in-draft instruction file as a preference statement, not a control.
01 — The datasetThe census, sorted by stage, not by category.
Three terms carry the table. An agent skill is an instruction package a coding agent loads on demand: a folder whose SKILL.md file pairs a short machine-readable header — a name and a description — with the Markdown instructions the model reads before doing the matching task. An instruction file such as CLAUDE.md or AGENTS.md is prose the agent reads at the start of a session and follows at its own discretion. A validator gate is different from both: a deterministic, rule-based pass/fail check run against finished text, which can block a commit or a publish the way a code linter blocks a merge.
| Tool | What it actually enforces | Mechanism | Licence · free status |
|---|---|---|---|
| Pre-draft — shapes the brief before composing begins | |||
| internal-comms (anthropics/skills) | Routes the request: identifies the communication type and loads a per-format guideline file from its examples directory. The style rules live in the files it delegates to, not in the skill itself. | Agent-followed instructions — no pass/fail | Apache 2.0 · free |
| doc-coauthoring (anthropics/skills) | A three-stage co-writing process: context gathering, section-by-section refinement, and a fresh-context reader pass to test whether the document lands on its own. The process reaches into the draft, but final review stays explicitly with the human. | Agent-judged process — no deterministic check | Apache 2.0 · free |
| In-draft — read while the model composes | |||
| CLAUDE.md / AGENTS.md instruction files | Whatever style rules you write into them, read at session start and followed at the model’s discretion. Practitioner commentary describes compliance as advisory — a preference statement, not a control. | Unenforced prose | A file convention · free |
| MengTo/Skills | A house-style line embedded directly inside SKILL.md — skimmable, practical, confident — with longer guidance split into a separate ARTICLE.md so the instruction the model reads while composing stays terse. | Agent-followed constraint — no gate | MIT · free |
| Post-draft — run against the finished text | |||
| rampstackco/claude-skills | A voice-consistency QA pass among its content-lifecycle skills: the agent re-reads its own draft against a voice description. No rule-based pass/fail is evident in the public listing. | Agent-judged | MIT · free |
| Vale | Your style guide as rules. Ships built-in implementations of style guides from Microsoft, Google, Red Hat and 13 more publishers; runs fully offline; wires into CI, pre-commit hooks and editors. | Deterministic pass/fail | MIT · free |
| proselint | 70+ built-in checks spanning style and clarity — weasel words, hedging, clichés, jargon, redundancy — plus grammar, tone and terminology consistency. | Deterministic pass/fail | BSD-3-Clause · free |
| write-good | Passive voice, repeated words, sentences opening with “so,” “there is / there are” constructions, weasel words, weakening adverbs, wordy phrases and clichés. | Deterministic pass/fail | MIT · free |
| textlint | Nothing by default — it ships zero bundled rules. Every check installs separately from a 100+-rule community npm ecosystem, configured through a .textlintrc file, with plugins extending it past Markdown. | Deterministic pass/fail | MIT · free |
| brand-guidelines (anthropics/skills) | Palette, fonts and accent-color cycling applied to a finished artifact — its own text calls it post-processing. Despite the name, it contains no tone, voice or prose-style instruction at all. | Agent-followed formatting — visual only | Apache 2.0 · free |
Read down the mechanism column and the shape of the market is plain. Everything deterministic sits post-draft, and none of it was born in the agent ecosystem — all four linters predate it. Everything agent-native is either a brief or the model judging itself. Which tool you reach for is a separate question from which model you run it on; our companion census of how the writing leaderboards disagree covers that side.
02 — MethodWhat was counted, and the free-only rule.
A census is only as citable as its inclusion rules, so here they are in full — including what was excluded, what was fetched first-hand versus summarised from search, and the limits of the absence claims this page makes.
- Collected
- 2026-09-01. Star counts, licence identifiers and last-push dates where the API recorded one were pulled from the GitHub REST API on that date; repository contents and vendor pages were fetched the same day. These figures move — treat them as a snapshot, not live values.
- What was counted
- Free mechanisms that carry or check a coding agent’s prose: agent skills, instruction-file conventions, plugins and prose linters. Each row records what the tool enforces, the stage it acts on — pre-draft, in-draft or post-draft — and whether enforcement is deterministic or agent-judged. One row is a counter-example.
- Inclusion rule — free only
- A tool with any paid tier gating the writing feature gets no row. The four linters have no paid tier at all; the skills are free repository content, distinct from a Claude subscription, which is the runtime rather than the skill.
- Sources
- The anthropics/skills directory listing and three SKILL.md files, fetched directly; the GitHub REST API for nine repositories; GitHub’s Agent Plugins 1.0 GA changelog and agent-plugins.org; vale.sh; and web search summarising secondary coverage, flagged as secondary wherever no primary was fetched.
- Licence status
- Licences are as each repository states them. Anthropic’s four document skills are source-available rather than OSI open source, per the repo’s own README. One community skill returning no recognised licence was left out of the census table for that reason.
- Known limitations
- One collection pass. The marketplace check covered GitHub’s GA changelog text and one search pass of one plugin marketplace. Codex-side portability claims rest on third-party guides, not a vendor primary. Absence claims are scoped to exactly what was checked.
03 — Stage onePre-draft: the official skills brief, they do not gate.
Anthropic’s public skills repository is the natural first stop, and it is genuinely substantial — 19 skills in the listing we fetched, most under Apache 2.0, and 172,870 GitHub stars at collection. We fetched three of those SKILL.md files — internal-comms, doc-coauthoring and brand-guidelines — and the pattern is consistent: they shape the brief, and none of them validates or blocks non-conforming prose.
internal-comms is the only official skill named for writing internal documents — updates, newsletters, FAQs, incident reports. Its own instructions are a router, not a style guide:
From the internal-comms SKILL.md, fetched for this census: “Identify the communication type from the request. Load the appropriate guideline file from the examples/ directory. Follow the specific instructions in that file for formatting, tone, and content gathering.” The actual style rules live in per-format example files the skill delegates to — a pre-draft brief, not an in-draft constraint or a post-draft gate.
doc-coauthoring goes further than a brief: it enforces a three-stage collaborative process — context gathering, section-by-section refinement, then a reader test that opens a fresh context window to check the document stands on its own. It asks for feedback as numbered shorthand, nudges toward cutting content after three low-change iterations, and leaves final review explicitly to the human. It is the most process-shaped writing skill in the official set, and its quality bar is a question, not a rule.
Does every sentence carry weight?doc-coauthoring SKILL.md quality checkpoint, anthropics/skills
A router to per-format briefs
Identifies the communication type, loads a guideline file, and follows it. The style rules live in the example files it delegates to. Nothing checks the output against them afterwards.
A process with a human backstop
Three stages, a fresh-context reader pass, and structured feedback loops. The closest official skill to enforcement — and its final quality judgment is explicitly handed back to the person who owns the document.
Named for brand, silent on voice
Sets a palette, assigns Poppins to headings and Lora to body text, and cycles accent colors on shapes — post-processing on a finished artifact. It contains no tone, voice or prose-style instruction at all.
The third card deserves the emphasis. A skill literally named brand-guidelines is the one a reasonable person would expect to enforce a brand’s writing voice, and it does not — it governs typography and color. Much of the secondary coverage of this repo lists skill names without reading what each one does, which is exactly how that assumption spreads. Nothing in the official set, as fetched for this census, gates prose style — the closest candidates are a router and a process.
04 — Stage twoIn-draft: the thin middle.
The stage where style would matter most is the stage with the least tooling. While the model is composing, exactly one free mechanism carries your style rules to it: the instructions it is reading at that moment. That can be a skill body or an instruction file, and the best community example of doing it well is deliberately minimal. Meng To’s skill collection — MIT-licensed, 5,668 stars at collection, and actively maintained — embeds its house style as a single line inside the SKILL.md itself, pushing longer explanations to a separate file so the instruction the model actually reads stays terse.
Write like Meng To: skimmable, practical, confident.Meng To, house-style line in the MengTo/Skills SKILL.md
That is the in-draft constraint pattern at its clearest: the rule travels inside the composing context, phrased short enough to survive it. What it is not, on any tool in this census, is enforced. Nothing free and purpose-built checks the emerging draft against the rule as it is written — compliance rests entirely on the model honouring the instruction.
Practitioner commentary — opinion, not a vendor specification — is blunt about where that leaves instruction files: they carry the preferences a team can live with the model occasionally ignoring, and nothing stronger. We have catalogued the failure patterns of these files separately in our guide to CLAUDE.md config smells; unenforced writing rules are one specific smell class from that family, and the census suggests it is the class with the least free tooling pointed at it.
05 — Stage threePost-draft: four linters that gate, none packaged for agents.
The deterministic tooling exists. It is mature, permissively licensed, and entirely free — and all of it predates the agent-skill ecosystem. Vale describes itself as “a linter for prose”: it runs offline, ships built-in implementations of 16 publishers’ style guides, and wires into CI through a GitHub Action, pre-commit hooks and editor language servers. Vale’s own site cites GitLab’s documentation pipeline running it as a required check across roughly 2,800 pages with 82 rules in under 20 seconds — figures from Vale’s marketing copy, not re-verified against a GitLab primary in this pass, but the integration pattern they describe is the point: a rule-based pass/fail on prose, blocking a merge the way a code linter does.
| Linter | Licence | GitHub stars | Last repo push | Status notes |
|---|---|---|---|---|
| Vale (vale-cli/vale) | MIT | 6,051 | 2026-08-28 | The GitHub org was renamed from errata-ai to vale-cli — the canonical repo is now vale-cli/vale, and older bookmarks need updating. |
| proselint (amperser/proselint) | BSD-3-Clause | 4,572 | 2026-08-26 | Star count is for the GitHub mirror — the repo labels itself a mirror and points its homepage at Codeberg, where primary development now lives. |
| write-good (btford/write-good) | MIT | 5,087 | 2025-03-10 | Roughly a year and a half stale at collection. Functionally still usable, but not under active development — a maintenance risk worth pricing in. |
| textlint (textlint/textlint) | MIT | 3,176 | Not recorded | Ships zero bundled rules by design; checks install from a 100+-rule npm ecosystem. Purely a post-draft validator — it has no drafting phase of its own. |
Between them the four cover complementary ground: Vale enforces a named style guide, proselint packs 70+ opinionated checks, write-good targets the tics that make prose read machine-written — passive voice, weasel words, weakening adverbs — and textlint is the pluggable chassis you assemble rules onto. All of them are consumption-side: they check text that already exists, in editors, pre-commit hooks and CI. Which is exactly why the next section’s finding matters.
06 — The findingThe gap: nobody has packaged the gate.
There is now a vendor-neutral way to package exactly this kind of tooling for agents. Agent Plugins 1.0 reached general availability on August 12, 2026, announced in GitHub’s own changelog. We checked that changelog and one search pass of the Awesome Copilot marketplace — 48-plus plugins at the time of the pass — for a named writing, editorial or style plugin, and found none in either. That is a narrow claim about two sources on one pass, not an audit of the whole ecosystem. But it matches the rest of the census: four mature deterministic linters on one side, a portable packaging standard on the other, and no free, purpose-built bridge between them that this pass could locate.
The same narrowness applies on the Codex side. Third-party guides document that Codex CLI reads the same SKILL.md format from its own skills directory, and that a symlink can share one skill across both clients — claims we did not verify against an OpenAI or Anthropic primary in this pass. What we can say from the repos actually checked is that every Codex-compatible writing skill we found is cross-compatible Claude-ecosystem content via the shared format, rather than anything Codex-exclusive.
So where should a team that ships prose actually spend effort?
Wire a post-draft linter into the pipeline
Vale or textlint in CI, or in a hook that runs after the agent writes, turns your style guide from a request into a check. This is the only deterministic option in the census, the tools are mature and free, and nothing about it waits on the agent ecosystem.
Brief pre-draft with a skill, tersely
The official skills show the brief pattern; the strongest community example compresses house style into one line the model reads while composing. Short rules inside the skill body travel better than long documents beside it.
Treat the instruction file as advisory
Keep style rules in CLAUDE.md or AGENTS.md — but budget for non-compliance, because nothing in this census enforces them in-draft. A rule you cannot afford to have ignored belongs in a gate, not a paragraph.
The under-served slot is the packaged gate
A plugin that runs an existing deterministic linter over agent output would fill the emptiest column in this census. The build path is documented — and the linters are permissively licensed.
The build path, for anyone taking the fourth option, starts with our step-by-step skill-building tutorial and — for what still breaks when a skill crosses harnesses — our review of what Agent Plugins 1.0 GA still does not port. And if the underlying problem is that your pipeline produces prose nobody is systematically checking, that is a content-system design question before it is a tooling one — the kind our content engine service exists to answer, with enforcement designed in rather than bolted on.
07 — ConclusionEnforcement lives at the edges.
Free tooling briefs before the draft and gates after it. The middle is a request.
Everything in this census is free, and almost everything in it works — just not where the name suggests. The official skills are genuinely useful briefing machinery. The linters are genuinely deterministic gates. The instruction file in the middle is the only piece asked to carry style while the model composes, and it is the one piece nothing enforces.
The open slot — a free, packaged plugin that puts an existing linter behind agent output — was still empty in every catalog this pass checked, which makes it either the census’s gap or somebody’s opportunity.