New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Detect, scan, audit, score

AI writing detector

by conorbronsdon · MIT license · ★ 4,655 on GitHub · updated Sep 21

AI writing detector cover

Use when the user asks to detect, scan, audit, score, or flag AI-writing patterns without rewriting the text, including requests for a deterministic local detector result when the host can execute Node.

---
name: ai-writing-detector
description: Use when the user asks to detect, scan, audit, score, or flag AI-writing patterns without rewriting the text, including requests for a deterministic local detector result when the host can execute Node.
---

# AI Writing Detector

Run a detect-only review using the original Avoid AI Writing rules. Never rewrite unless the user changes the request.

## Authority

The canonical rulebook is `../avoid-ai-writing/SKILL.md`. Its cautions about false positives, context, protected material, and authorship claims apply here.

For cross-Skill work, follow `../avoid-ai-writing-router/references/handoff-contract.md` and the typed edges in `../avoid-ai-writing-router/references/skill-graph.json`.

## Connection contract

### Incoming

Overview

Run a detect-only review using the original Avoid AI Writing rules. Never rewrite unless the user changes the request.

The SKILL.md below is the copy AgentAlley read and checked. The repo has changed it since; the other files are from commit 1be7702.

Manual install (npx, ZIP)
Claude Codenpx skills add conorbronsdon/avoid-ai-writing --skill ai-writing-detector -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/conorbronsdon/avoid-ai-writing/tar.gz/1be7702796e5 \ | tar -xz -C ~/.claude/skills --strip-components=2 avoid-ai-writing-1be7702796e5/skills/ai-writing-detector
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/7e618e0f309f9f12fd91/ai-writing-detector.zip" -OutFile "$env:TEMP\ai-writing-detector.zip"; Expand-Archive "$env:TEMP\ai-writing-detector.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md4.9 KB
  • agents/1 file · 285 B
  • scripts/2 files · 146.1 KB
Read the files here
conorbronsdon/1be77024 files
Shared references3SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text93 lines

AI Writing Detector

Run a detect-only review using the original Avoid AI Writing rules. Never rewrite unless the user changes the request.

Authority

The canonical rulebook is ../avoid-ai-writing/SKILL.md. Its cautions about false positives, context, protected material, and authorship claims apply here.

For cross-Skill work, follow ../avoid-ai-writing-router/references/handoff-contract.md and the typed edges in ../avoid-ai-writing-router/references/skill-graph.json.

Connection contract

Incoming

Accept detector work from:

  • avoid-ai-writing-router via ROUTE for detect-only requests, the audit stage of a multi-stage request, or fresh signal collection after another terminal stage returns control to the router.
  • preservation-verifier via bounded RECHECK only when convergence or residual auditing was part of the request.

Do not accept a direct handoff from false-positive-reviewer. That Skill is terminal in the graph and must return control to avoid-ai-writing-router when fresh signal collection is needed. This prevents a reviewer-detector cycle.

Carry forward the canonical context_profile separately from the detector's context_mode, along with protected constraints, pass state, and risk flags. Do not collapse or reset them.

Produce

Update the handoff envelope with:

  • execution_evidence.detector: executed only if the bundled detector actually ran, otherwise model_only.
  • detector_summary.score and label only when produced by executed detector code.
  • detector_summary.issue_types from actual findings.
  • any consequential_authorship_claim risk flag observed in the user's request.
Outgoing
  • FEED findings to voice-preserving-rewriter only when the user also requested returned-text rewriting.
  • FEED findings to file-edit-in-place only when the user explicitly requested mutation of a named file.
  • ESCALATE to false-positive-reviewer when the user asks what the findings can establish about authorship or another consequential conclusion.
  • Otherwise stop after the detect-only result.

Deterministic hits are candidate matches. Keep the engine's public issue types and scores intact, then apply the canonical context exceptions and pass conditions when deciding which hits are justified editorial findings. Neither kind of result is a mandatory edit instruction or authorizes a mutation.

AI-engineering evidence lens

Apply the agency-ai-engineer lens encoded in ../avoid-ai-writing-router/references/agency-role-lenses.md:

  • keep deterministic output separate from model-only observations,
  • preserve the selected context profile and detector mode through downstream handoffs,
  • treat score and label as signals rather than ground truth,
  • consider false positives and genre/register effects,
  • never convert pattern detection into an authorship classifier claim.

Preferred path

When the current host can execute Node safely:

  1. Pass the supplied text to scripts/detect.js.
  2. Use --context technical for code-adjacent or technical prose when appropriate. Otherwise use general.
  3. Report the detector's score, label, issue types, severity, matched text, and suggestions.
  4. Separate deterministic candidate matches from justified editorial findings and observations that only exist in the full rulebook.
  5. Never claim execution unless the command actually ran.

Example:

printf '%s' "$TEXT" | node scripts/detect.js --context general

For a file:

node scripts/detect.js --file path/to/draft.md --context general

If Node or shell execution is unavailable, perform the detect-only workflow from the canonical avoid-ai-writing Skill and explicitly say the deterministic detector was not run.

Stop conditions

Stop here when the request is detect-only. Do not continue into rewrite, file mutation, or interpretation merely because those Skills are available.

A residual RECHECK may run once when requested. It is read-only and does not consume an editing pass; any change it prompts must fit within the requested editing-pass limit, capped at two, and the graph's loop policy.

Output

Return the overall label and score when executed, detected candidate matches grouped by severity, a short contextual assessment that distinguishes justified findings from plausible false positives, execution status, and no rewritten version unless control has explicitly passed to a rewrite owner.

1---
2name: ai-writing-detector
3description: Use when the user asks to detect, scan, audit, score, or flag AI-writing patterns without rewriting the text, including requests for a deterministic local detector result when the host can execute Node.
4---
5 
6# AI Writing Detector
7 
8Run a detect-only review using the original Avoid AI Writing rules. Never rewrite unless the user changes the request.
9 
10## Authority
11 
12The canonical rulebook is `../avoid-ai-writing/SKILL.md`. Its cautions about false positives, context, protected material, and authorship claims apply here.
13 
14For cross-Skill work, follow `../avoid-ai-writing-router/references/handoff-contract.md` and the typed edges in `../avoid-ai-writing-router/references/skill-graph.json`.
15 
16## Connection contract
17 
18### Incoming
19 
20Accept detector work from:
21 
22- `avoid-ai-writing-router` via `ROUTE` for detect-only requests, the audit stage of a multi-stage request, or fresh signal collection after another terminal stage returns control to the router.
23- `preservation-verifier` via bounded `RECHECK` only when convergence or residual auditing was part of the request.
24 
25Do not accept a direct handoff from `false-positive-reviewer`. That Skill is terminal in the graph and must return control to `avoid-ai-writing-router` when fresh signal collection is needed. This prevents a reviewer-detector cycle.
26 
27Carry forward the canonical `context_profile` separately from the detector's `context_mode`, along with protected constraints, pass state, and risk flags. Do not collapse or reset them.
28 
29### Produce
30 
31Update the handoff envelope with:
32 
33- `execution_evidence.detector`: `executed` only if the bundled detector actually ran, otherwise `model_only`.
34- `detector_summary.score` and `label` only when produced by executed detector code.
35- `detector_summary.issue_types` from actual findings.
36- any `consequential_authorship_claim` risk flag observed in the user's request.
37 
38### Outgoing
39 
40- `FEED` findings to `voice-preserving-rewriter` only when the user also requested returned-text rewriting.
41- `FEED` findings to `file-edit-in-place` only when the user explicitly requested mutation of a named file.
42- `ESCALATE` to `false-positive-reviewer` when the user asks what the findings can establish about authorship or another consequential conclusion.
43- Otherwise stop after the detect-only result.
44 
45Deterministic hits are candidate matches. Keep the engine's public issue types
46and scores intact, then apply the canonical context exceptions and pass
47conditions when deciding which hits are justified editorial findings. Neither
48kind of result is a mandatory edit instruction or authorizes a mutation.
49 
50## AI-engineering evidence lens
51 
52Apply the `agency-ai-engineer` lens encoded in `../avoid-ai-writing-router/references/agency-role-lenses.md`:
53 
54- keep deterministic output separate from model-only observations,
55- preserve the selected context profile and detector mode through downstream handoffs,
56- treat score and label as signals rather than ground truth,
57- consider false positives and genre/register effects,
58- never convert pattern detection into an authorship classifier claim.
59 
60## Preferred path
61 
62When the current host can execute Node safely:
63 
641. Pass the supplied text to `scripts/detect.js`.
652. Use `--context technical` for code-adjacent or technical prose when appropriate. Otherwise use `general`.
663. Report the detector's score, label, issue types, severity, matched text, and suggestions.
674. Separate deterministic candidate matches from justified editorial findings and observations that only exist in the full rulebook.
685. Never claim execution unless the command actually ran.
69 
70Example:
71 
72```bash
73printf '%s' "$TEXT" | node scripts/detect.js --context general
74```
75 
76For a file:
77 
78```bash
79node scripts/detect.js --file path/to/draft.md --context general
80```
81 
82If Node or shell execution is unavailable, perform the detect-only workflow from the canonical `avoid-ai-writing` Skill and explicitly say the deterministic detector was not run.
83 
84## Stop conditions
85 
86Stop here when the request is detect-only. Do not continue into rewrite, file mutation, or interpretation merely because those Skills are available.
87 
88A residual `RECHECK` may run once when requested. It is read-only and does not consume an editing pass; any change it prompts must fit within the requested editing-pass limit, capped at two, and the graph's loop policy.
89 
90## Output
91 
92Return the overall label and score when executed, detected candidate matches grouped by severity, a short contextual assessment that distinguishes justified findings from plausible false positives, execution status, and no rewritten version unless control has explicitly passed to a rewrite owner.
93 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 4,655
Checked
Source
conorbronsdon/avoid-ai-writing ↗
Creator
conorbronsdon · 6 listings
View creator

Similar skills

See all →
SkillRewrite AI-sounding text so it reads like the writerhumanizerblader/humanizer · by bladerRewrite AI-sounding text so it reads like the writer without changing what it says. Use when editing or reviewing prose for AI tells: not-X-but-Y contrasts, one-line closers, staged openers, forced triads, dashes everywhere, inflated claims, sales language, stock AI words, bold labels, or filler. Based on Wikipedia's "Signs of AI writing.★ 53.6k GitHub starsSkillRemove AI writing patterns from proseStop slophardikpandya/stop-slop · by hardikpandyaRemove AI writing patterns from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI tells.★ 17.8k GitHub starsSkillEdit drafts into sharperNo AI sloppetergyang/no-ai-slop · by petergyangEdit drafts into sharper, more human writing while preserving the writer's personal voice, or detect AI-slop patterns without rewriting. Use when the user wants a draft clearer, more direct, more opinionated, or less AI-sounding, or asks whether writing reads as AI.★ 12k GitHub starsSkillAudit and rewrite content to remove AI writing patternsAvoid AI Writing — Audit & Rewriteconorbronsdon/avoid-ai-writing · by conorbronsdonAudit and rewrite content to remove AI writing patterns ("AI-isms"). Use this skill when asked to "remove AI-isms," "clean up AI writing," "edit writing for AI patterns," "audit writing for AI tells," or "make this sound less like AI." Supports a detect-only mode, an edit-in-place mode for files, an optional voice profile (casual / professional / technical / warm / blunt), and an iterate-to-convergence pass.★ 4.7k GitHub starsSkillMake AI-generated writing read as human-writtenSepia — de-AI writingNanako0129/sepia · by Nanako0129Make AI-generated writing read as human-written, in fiction and in professional prose. Repairs the narrative architecture of fiction and stories (based on StoryScope, arXiv:2604.03136); routes professional text through domain rules for release notes, announcements, PR and issue replies, code-review comments, incident postmortems, tickets, work orders, technical articles, blog posts, and long-form journalism. Four operations - write, review (diagnose AI tells without editing), refactor (minimal in-place edits), recreate (full rewrite). Use when asked to humanize, de-AI, unslop, or strip AI flavor from any text; when writing or revising any of these document types; or whenever output must not read as machine-written.★ 3.1k GitHub starsSkillA phrase blocklist catches the obvious tellsAI Slop Detection: Two-Tier Reflex MethodologyAgriciDaniel/claude-blog · by AgriciDanielA phrase blocklist catches the obvious tells. Most AI-generated prose passes that filter and still reads like AI. The structural tics, the…★ 2.2k GitHub stars

More from conorbronsdon

SkillAudit and rewrite content to remove AI writing patternsAvoid AI Writing — Audit & Rewriteconorbronsdon/avoid-ai-writing · by conorbronsdonAudit and rewrite content to remove AI writing patterns ("AI-isms"). Use this skill when asked to "remove AI-isms," "clean up AI writing," "edit writing for AI patterns," "audit writing for AI tells," or "make this sound less like AI." Supports a detect-only mode, an edit-in-place mode for files, an optional voice profile (casual / professional / technical / warm / blunt), and an iterate-to-convergence pass.★ 4.7k GitHub starsSkillA request combines AI-writing audit, rewrite, file editingAvoid AI writing routerconorbronsdon/avoid-ai-writing · by conorbronsdonUse when a request combines AI-writing audit, rewrite, file editing, voice preservation, false-positive interpretation, verification, or when the user invokes Avoid AI Writing without naming a mode.★ 4.7k GitHub starsSkillNames a local file and explicitly asks to clean, rewriteFile edit in placeconorbronsdon/avoid-ai-writing · by conorbronsdonUse when the user names a local file and explicitly asks to clean, rewrite, humanize, or remove AI-writing patterns in that file itself, with minimal targeted edits and post-edit verification.★ 4.7k GitHub starsSkillProvides an original and rewritten versionPreservation verifierconorbronsdon/avoid-ai-writing · by conorbronsdonUse when the user provides an original and rewritten version, asks whether a rewrite preserved protected content, or wants a deterministic check for code, frontmatter, quotes, tables, links, paths, numbers, headings, and residual AI-pattern regressions.★ 4.7k GitHub starsSkillRewrite, humanize, clean upVoice preserving rewriterconorbronsdon/avoid-ai-writing · by conorbronsdonUse when the user asks to rewrite, humanize, clean up, or remove AI-isms from text while preserving the writer's voice, facts, intent, structure, register, and protected material.★ 4.7k GitHub stars