
DraftCheck AI-writing linter
io.github.kburrus64-maxv0.1.1Updated Oct 5, 2026
DraftCheck: flags AI-writing patterns in prose with fix hints. Deterministic linter, not a detector.
Overview
Scores prose for common AI-writing patterns and returns a 0-100 score with per-match fix hints.
- What it does
- DraftCheck scans text for over 20 habits of machine-written prose, including not-X-but-Y contrasts, dramatic one-line closers, inflated significance, AI vocabulary, em-dash overuse, bold-label bullet lists, and chatbot leftovers. It returns a 0-100 score, a label such as Reads human or Pure slop, and points at every match with a short fix hint. It is a deterministic linter, not an authorship detector, and the same text always gets the same score.
- When to use it
- Useful when drafting or reviewing documentation, blog posts, launch notes, or other prose and you want a quick, repeatable check for phrasing that reads as AI-generated before publishing. It fits editors and agents that want a deterministic pass after a writing step.
- Requirements
- Remote MCP endpoint at the provider's hosted site; no authentication, environment variables, or headers are declared. The web app and a free JSON API are also available, with pay-per-call endpoints for longer documents and batches. The separate CLI and library need Node.js 18+.
Installation
In SourceWeft
- Open DraftCheck AI-writing linter in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"slopscore": {
"type": "http",
"url": "https://slopscore-nine.vercel.app/mcp"
}
}
}README
DraftCheck
Formerly SlopScore. Same product, new name after a naming clash.
[test] [License: MIT] [Live site]
Find the patterns that make writing read as AI-generated, and fix them before you publish.
DraftCheck scans text for 20+ habits of machine-written prose: "it's not X, it's Y" contrasts, dramatic one-line closers, "let's dive in" openers, inflated significance ("a pivotal moment"), AI vocabulary ("delve", "seamless", "leverage"), em-dash overuse, bold-label bullet lists, and chatbot leftovers like "I hope this helps!". It returns a 0-100 score and points at every match with a short fix.
It's a linter, not a detector. It doesn't guess who wrote a text. It shows you the specific sentences readers will notice.
- Web app (free, runs in your browser): https://slopscore-nine.vercel.app
- Pattern guides with examples: https://slopscore-nine.vercel.app/patterns/
CLI
(Not on npm yet as draftcheck. The unscoped slopscore name on npm belongs to a different project. Install from GitHub: npm i -D github:kburrus64-max/draftcheck. The slopscore CLI bin remains as an alias.)
Options:
Code blocks, inline code, front matter, URLs and HTML tags are ignored, so READMEs with examples don't get flagged for their code. Read from stdin with -.
GitHub Action
Each match shows up as an annotation on the changed line. The check fails when a file goes over max.
Agent skill
DraftCheck ships as an Agent Skill for Claude Code, Cursor, Codex and other agents that read SKILL.md files. The skill tells the agent to score its draft, rewrite only the flagged spans, and re-check:
As a Claude Code plugin (skill plus the hosted MCP server), from inside Claude Code:
Cursor can load the same repo as a plugin through .cursor-plugin/plugin.json.
Prompt-only writing skills such as humanizer and no-ai-slop tell an agent what to avoid; DraftCheck gives it a deterministic check to run afterwards.
Library
No dependencies. Works in Node 18+ and the browser.
How scoring works
Each match has a strength. Strong tells (chatbot leftovers, not-X-but-Y, dramatic closers) count 3 points, medium tells 2, weak tells 1. Points are divided by text length (per 100 words, with a 100-word floor) and mapped to 0-100. Weak signals like a single em dash or one three-item list don't count unless stronger tells are also present, because careful human writers use them all the time.
The rules are regular expressions plus a sentence-shape check for rows of fragments. They are deterministic: the same text always gets the same score.
Limits
- English only for now.
- It flags patterns, not authorship. Plenty of human writing has a few of these, and a clean score doesn't prove a person wrote something.
- The CLI skips text inside double quotes, so style guides can quote bad examples. The web app and API count quoted text unless you pass
ignoreQuoted.
Hosted API
The web app has a free JSON API (POST /api/check, up to 5,000 characters), a URL scorer, and pay-per-call endpoints for longer documents and batches. See https://slopscore-nine.vercel.app/llms.txt.
Credits
The pattern list builds on Wikipedia's Signs of AI writing (WikiProject AI Cleanup) and two MIT-licensed agent skills: blader/humanizer and petergyang/no-ai-slop. The detection code and scoring here are original.
Notes on the rename
This project was formerly SlopScore. The GitHub repo is now kburrus64-max/draftcheck (old URL redirects). The MCP Registry namespace stays io.github.kburrus64-max/slopscore so the existing listing is not orphaned. Live site and MCP remote remain at https://slopscore-nine.vercel.app.
License
MIT © Anansi Data. See LICENSE.
Source: README.md at commit 5cefa88
Tools
0Version history
1- v0.1.1LatestOct 5, 2026


