DraftCheck AI-writing linter

io.github.kburrus64-maxv0.1.1更新於 Oct 5, 2026

DraftCheck: flags AI-writing patterns in prose with fix hints. Deterministic linter, not a detector.

已驗證Streamable HTTP可網頁執行Developer ToolsAI & ML

概覽

AI 產生的概覽

為文字中的常見 AI 寫作模式評分,回傳 0-100 分並提供逐項修改提示。

功能
DraftCheck 會掃描文字中 20 多種機器寫作習慣,包括「不是 X,而是 Y」式對比、戲劇化的一行結尾、誇大重要性、AI 常用詞、破折號濫用、粗體標籤式項目符號清單,以及「希望這對你有幫助!」之類的聊天機器人殘留。它會回傳 0-100 分、類似「讀起來像人寫的」或「純 AI 味」的標籤,並指出每一處符合的片段與簡短修改提示。它是確定性的檢查工具,不是作者身分偵測器,同一段文字永遠得到相同分數。
適用情境
適合在撰寫或審閱文件、部落格文章、發布說明等散文時,在發布前快速、可重複地檢查讀起來像 AI 生成的措辭。也適合編輯與代理在寫作步驟之後做一次確定性檢查。
執行需求
使用提供方託管網站上的遠端 MCP 端點;未宣告驗證、環境變數或標頭。另有網頁應用程式與免費 JSON API,長文件與批次處理為按次計費端點。獨立的 CLI 與函式庫需要 Node.js 18+。
安裝前請注意
託管 API 會把你的文字傳送給第三方;長文件或批次的按次計費端點會產生費用。此工具標記的是寫作模式而非作者身分:人類寫作也可能得分很低,分數乾淨也不能證明是人寫的。目前僅支援英文。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 DraftCheck AI-writing linter,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "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.

CLI

sh
npx github:kburrus64-max/draftcheck README.md docs/

(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.)

FAIL  71  Pure slop        docs/launch-post.md           1: Chatbot residue: "Great question"           3: Not X, but Y: "this isn't just a tool, it's"           3: Inflated significance: "marks a pivotal moment"ok     4  Reads human      docs/install.md

Options:

flagdefaultwhat it does
--max <n>40exit 1 if any file scores above n
--format text|json|githubtextgithub prints annotations for Actions
--ext <list>.md,.mdx,.txt,.html,.rstextensions to scan inside directories
--ignore <ids>noneskip patterns, e.g. dash,triad
--include-quotedoffalso flag text inside double quotes (quoted examples are skipped by default)
--min-words <n>20skip very short files

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

yaml
name: DraftCheckon:  pull_request:    paths: ["**/*.md", "docs/**", "content/**"]jobs:  slop:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: kburrus64-max/draftcheck@v1        with:          paths: "docs content README.md"          max: "40"

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:

sh
npx skills add kburrus64-max/draftcheck

As a Claude Code plugin (skill plus the hosted MCP server), from inside Claude Code:

/plugin marketplace add kburrus64-max/draftcheck/plugin install draftcheck@draftcheck

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

js
import { analyze, PATTERNS } from "draftcheck";
const r = analyze("Great question! Let's dive in.", { ignoreQuoted: false });r.score;    // 0-100r.label;    // "Reads human" | "A little sloppy" | "Sloppy" | "Pure slop"r.matches;  // [{ id, label, category, start, end, text, hint }]

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.

來源:README.md,提交 5cefa88

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.1最新Oct 5, 2026