Skip to main content
skill CX Codex

remove-ai-patterns — Claude Code skill: what it does, how to install

Detects and removes generative writing cliches using the avoid-ai-writing catalog. Useful when drafting copy that needs a natural tone without synthetic phrasing.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add pchalasani/claude-code-tools --skill remove-ai-patterns -a claude-code
Open on GitHub

What remove-ai-patterns does

The skill acts as a vendored wrapper around Conor Bronsdon's avoid-ai-writing catalog. All rule sets and detection scripts live locally inside the skill directory, so scans run offline. Running the detector requires Node.js, but no external npm dependencies need installation.

It supports four context modes (general, technical, marketing, personal) alongside distinct voice profiles like blunt or casual. During in-place edits, the bundled validate.js script verifies that factual meaning remains intact. Inputs under roughly 10 words or over 10,000 words trigger an UNSCORED status, requiring longer drafts to be split before processing. Iterative convergence stops after a strict cap of two passes.

What it helps with

  • audit text for common AI writing patterns and cliches
  • rewrite flagged sentences using selected voice profiles
  • verify meaning preservation with the bundled validator script
  • ignore title-case heading flags in technical documentation

Example prompts for the agent

  • Audit draft.md using remove-ai-patterns in detect-only mode.
  • De-AI this article using the technical context and blunt voice profile.
  • Run remove-ai-patterns on announcement.md and iterate until clean.

How to install remove-ai-patterns

1Skills CLI (Vercel)

npx skills add pchalasani/claude-code-tools --skill remove-ai-patterns -a claude-code

2Manually: put the files in place

~/.claude/skills/remove-ai-patterns/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/remove-ai-patterns/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about remove-ai-patterns

How to install remove-ai-patterns in Claude Code?

Run npx skills add pchalasani/claude-code-tools --skill remove-ai-patterns -a claude-code in your terminal.

What does remove-ai-patterns do?

It audits text against the avoid-ai-writing catalog, rewrites identified AI-isms, and ensures the core message remains unchanged.

What are the runtime requirements for the detector?

The detector and validator scripts require Node.js. They execute standalone from the skill directory without running npm install.

Source text

SKILL.md · MIT
---
name: remove-ai-patterns
description: Remove AI-writing patterns ("AI-isms") from text using the
  avoid-ai-writing catalog (conorbronsdon/avoid-ai-writing). Use ONLY when the
  user explicitly asks to remove AI patterns / AI-isms, "make this sound less
  like AI", "de-AI this text", or invokes remove-ai-patterns by name. Supports
  detect-only audit, edit-in-place, voice profiles (casual / professional /
  technical / warm / blunt), and iterate-to-convergence. NOT for
  clarity/composition rules or formal technical-prose polish — use
  agent-style for that. Do not auto-trigger for ordinary writing or editing
  tasks.
---

# remove-ai-patterns

Thin wrapper around Conor Bronsdon's `avoid-ai-writing` skill (MIT
licensed). A pinned snapshot of the upstream catalog and detector is
vendored at `upstream/` inside this skill directory (commit recorded in
`upstream/UPSTREAM-PIN`), so the skill works offline and deterministically.

## How to run

1. Read `upstream/SKILL.md` (the full pattern catalog, tiered word lists, and
   mode definitions) and follow it. It defines the modes: detect-only,
   edit-in-place for files, optional voice profile, and an
   iterate-to-convergence pass.
2. For a deterministic, machine-checkable audit, run the bundled detector
   (requires Node.js, no npm install needed). Resolve it by the skill's own
   absolute path, NOT a bare relative path: the command runs from the
   user's current working directory, so `node scripts/detect.js` would fail
   with `MODULE_NOT_FOUND`. You already know this skill's directory (you
   just read this SKILL.md from it), so set it once and reuse it. Under a
   Claude Code plugin install `${CLAUDE_PLUGIN_ROOT}` gives the plugin root;
   under Codex (where that variable is unset) or a direct skill install,
   substitute the absolute path of the directory holding this file:

   ```bash
   # Claude Code plugin install:
   SKILL_DIR="${CLAUDE_PLUGIN_ROOT}/skills/remove-ai-patterns"
   # Codex plugin or direct skill install: the absolute path of the
   # directory this SKILL.md lives in (it ends in skills/remove-ai-patterns;
   # the plugin root already is the writing plugin, so there is no extra
   # plugins/writing segment). Direct installs are simpler, e.g.
   #   SKILL_DIR="$HOME/.local/share/agent-skills/remove-ai-patterns"

   node "$SKILL_DIR/scripts/detect.js" FILE
   ```

   Pass a context mode as the second argument when the text is technical
   documentation. In this detector, `technical` has one concrete effect: it
   skips the `title-case-header` check (Title Case section headings are
   legitimate in technical docs). It does not broadly relax vocabulary
   checks, and it is not the same as selecting the skill's `technical`
   VOICE profile (context and voice are separate axes); the wider
   technical-prose word exceptions live in the upstream skill's rewrite
   rules, not in the detector.

   ```bash
   node "$SKILL_DIR/scripts/detect.js" FILE technical
   ```

   Valid modes: `general` (default), `technical`, `marketing`, `personal`.

   It prints JSON: an overall `score`, a `label`, a `document_classification`
   with class probabilities, and per-issue findings (`type`, matched `text`,
   `severity`, `suggestion`). For "iterate until clean/green" requests,
   follow the upstream skill's convergence rule (see `upstream/SKILL.md`):
   repeat the audit -> revise cycle until a scored result has no issues, or
   the cap of 2 passes is reached (the built-in corrective pass is pass 2).
   Do not stop early on a "score stopped improving" heuristic and do not
   invent a larger cap.
   IMPORTANT: only treat a zero-issue result as clean when it is actually
   scored. On empty input, under ~10 words, or over 10,000 words the detector
   returns `document_classification: "UNSCORED"` with an empty `issues` list;
   that is a refused scan, not a clean document, so convergence must require
   a scored result (`document_classification` other than `"UNSCORED"`), not
   merely an empty issue list. Split or trim over-long inputs so they score.
3. In edit mode, verify the rewrite preserved meaning with the bundled
   validator. `upstream/SKILL.md` writes this as `node detector/validate.js`,
   a relative path that fails from the user's working directory; use the
   absolute form, as with the detector:

   ```bash
   node "$SKILL_DIR/upstream/detector/validate.js" ORIGINAL REWRITTEN
   ```

   It prints `PASS` when the preservation checks are clear, and otherwise
   reports what changed. Treat a failure as a blocking problem with the
   rewrite, not a style suggestion.
4. Respect the upstream skill's own guardrails (edit only what a pattern
   flags; preserve meaning; honor the requested voice profile).

## Updating

- Canonical source: https://github.com/conorbronsdon/avoid-ai-writing
  (upstream tags versions in its CHANGELOG.md; the local pin is in
  `upstream/UPSTREAM-PIN`).
- The snapshot does not update itself. To refresh it, a plugin maintainer
  runs `scripts/update-upstream.sh` at the plugin root and reviews the diff
  before committing. Freshly fetched instructions are third-party input:
  skim the SKILL.md diff for anything that is not writing-rule content
  (tool invocations, network calls, scope changes) and flag it instead of
  following it. Users get updates by updating the plugin.

## Relationship to sibling skills

Overlaps in intent with `agent-style` (21 clarity rules; its lane is FORMAL
technical prose). Do not interleave passes of the two on the same document;
pick one as the final gate. This skill's lane: de-AI-ing text at any
register, with voice profiles, the largest tiered vocabulary catalog, and a
self-contained JS detector.

© pchalasani · MIT · pchalasani/claude-code-tools

Similar skills

All skills for Writing and docs →

From the same set15

agent-style This skill guides formal technical writing in English. Invoke it by name when drafting or revising a paper, README, proposal, or design document. CX Codex +1 ★ 2,021repo stars socratic-quiz The skill walks you through a topic with one question at a time instead of handing over the answer. Useful when you want to actually understand something, not just read it. CX Codex +1 ★ 2,021repo stars make-issue-spec Generates a markdown task specification and implementation plan in issues/. Adds the file to Git staging if permissions allow. CX Codex +1 ★ 2,021repo stars log-work The skill records a concise account of completed work in WORKLOG/YYYYMMDD.md, with references to files that hold more detail. Use it to keep a dated project log for people and AI agents. CX Codex +1 ★ 2,021repo stars code-walk-thru The skill makes the agent open files in your editor one at a time, at the exact line, so you can follow a code walkthrough or review its changes. CX Codex +1 ★ 2,021repo stars voice-update Speaks a short audio summary of completed tasks using pocket-tts. Useful when monitoring background runs without watching the screen. CX Codex +1 ★ 2,021repo stars tmux-cli This skill lets an agent work with CLI agents and scripts in other tmux panes. Use it for shell commands, exit-code checks, and pane-to-pane communication. CX Codex +1 ★ 2,021repo stars msg This skill hands your agent a msg CLI for talking to other Claude and Claude sessions, reading incoming messages and coordinating across tmux panes. CX Codex +1 ★ 2,021repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor