Detect, scan, audit, score
AI writing detector

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.
Manual install (npx, ZIP)
npx skills add conorbronsdon/avoid-ai-writing --skill ai-writing-detector -g -a claude-codemkdir -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-detectorNew-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" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md4.9 KBagents/1 file · 285 Bscripts/2 files · 146.1 KB
Read the files here
conorbronsdon/
Shared references3SKILL.md reads these from elsewhere in the repo. Not in the ZIP.
- agency-role-lenses.mdskills/avoid-ai-writing-router/references/3.8 KB
- handoff-contract.mdskills/avoid-ai-writing-router/references/6.9 KB
- skill-graph.jsonskills/avoid-ai-writing-router/references/4.7 KB
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-routerviaROUTEfor 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-verifiervia boundedRECHECKonly 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:executedonly if the bundled detector actually ran, otherwisemodel_only.detector_summary.scoreandlabelonly when produced by executed detector code.detector_summary.issue_typesfrom actual findings.- any
consequential_authorship_claimrisk flag observed in the user's request.
Outgoing
FEEDfindings tovoice-preserving-rewriteronly when the user also requested returned-text rewriting.FEEDfindings tofile-edit-in-placeonly when the user explicitly requested mutation of a named file.ESCALATEtofalse-positive-reviewerwhen 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:
- Pass the supplied text to
scripts/detect.js. - Use
--context technicalfor code-adjacent or technical prose when appropriate. Otherwise usegeneral. - Report the detector's score, label, issue types, severity, matched text, and suggestions.
- Separate deterministic candidate matches from justified editorial findings and observations that only exist in the full rulebook.
- 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 | |
| 2 | name ai-writing-detector |
| 3 | 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. |
| 4 | |
| 5 | |
| 6 | # AI Writing Detector |
| 7 | |
| 8 | Run a detect-only review using the original Avoid AI Writing rules. Never rewrite unless the user changes the request. |
| 9 | |
| 10 | ## Authority |
| 11 | |
| 12 | The canonical rulebook is `../avoid-ai-writing/SKILL.md`. Its cautions about false positives, context, protected material, and authorship claims apply here. |
| 13 | |
| 14 | 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`. |
| 15 | |
| 16 | ## Connection contract |
| 17 | |
| 18 | ### Incoming |
| 19 | |
| 20 | Accept 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 | |
| 25 | 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. |
| 26 | |
| 27 | 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. |
| 28 | |
| 29 | ### Produce |
| 30 | |
| 31 | Update 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 | |
| 45 | Deterministic hits are candidate matches. Keep the engine's public issue types |
| 46 | and scores intact, then apply the canonical context exceptions and pass |
| 47 | conditions when deciding which hits are justified editorial findings. Neither |
| 48 | kind of result is a mandatory edit instruction or authorizes a mutation. |
| 49 | |
| 50 | ## AI-engineering evidence lens |
| 51 | |
| 52 | Apply 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 | |
| 62 | When the current host can execute Node safely: |
| 63 | |
| 64 | Pass the supplied text to `scripts/detect.js`. |
| 65 | Use `--context technical` for code-adjacent or technical prose when appropriate. Otherwise use `general`. |
| 66 | Report the detector's score, label, issue types, severity, matched text, and suggestions. |
| 67 | Separate deterministic candidate matches from justified editorial findings and observations that only exist in the full rulebook. |
| 68 | Never claim execution unless the command actually ran. |
| 69 | |
| 70 | Example: |
| 71 | |
| 72 | |
| 73 | printf '%s' "$TEXT" | node scripts/detect.js --context general |
| 74 | |
| 75 | |
| 76 | For a file: |
| 77 | |
| 78 | |
| 79 | node scripts/detect.js --file path/to/draft.md --context general |
| 80 | |
| 81 | |
| 82 | 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. |
| 83 | |
| 84 | ## Stop conditions |
| 85 | |
| 86 | Stop here when the request is detect-only. Do not continue into rewrite, file mutation, or interpretation merely because those Skills are available. |
| 87 | |
| 88 | 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. |
| 89 | |
| 90 | ## Output |
| 91 | |
| 92 | 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. |
| 93 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 4,655
- Checked
- Source
- conorbronsdon/avoid-ai-writing ↗
- Creator
- conorbronsdon · 6 listings
Similar skills
See all →
SkillRewrite AI-sounding text so it reads like the writerhumanizer
SkillRemove AI writing patterns from proseStop slop
SkillEdit drafts into sharperNo AI slop
SkillAudit and rewrite content to remove AI writing patternsAvoid AI Writing — Audit & Rewrite
SkillMake AI-generated writing read as human-writtenSepia — de-AI writing
SkillA phrase blocklist catches the obvious tellsAI Slop Detection: Two-Tier Reflex MethodologyMore from conorbronsdon
SkillAudit and rewrite content to remove AI writing patternsAvoid AI Writing — Audit & Rewrite
SkillA request combines AI-writing audit, rewrite, file editingAvoid AI writing router
SkillNames a local file and explicitly asks to clean, rewriteFile edit in place
SkillProvides an original and rewritten versionPreservation verifier
SkillRewrite, humanize, clean upVoice preserving rewriter