Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Find and remove the writing patterns a profile lists. Deterministic rules, model rewrite opt-in.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub dcadolph ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.55.1) เข้า registry 4 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, sync. labs
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
AI writing leaves fingerprints.
Chop the slop. Paste in text and get back something that reads like a person wrote it.
Try it without installing anything: slop-chop.com runs the same engine in your browser.
AI writing has patterns. It loves em-dashes, drops a semicolon into every other sentence, reaches for words like comprehensive and leverage, and clears its throat with openers like "In summary" or "Giving it to you honestly."
slop-chop removes those patterns in a single pass. You can also hand it your own list of things to cut, so the result reads like you instead of a chatbot.
Cleaning this up by hand is tedious. Asking a model to "stop using em-dashes" works for about three sentences before it forgets. slop-chop applies the same cleanup rules every time.
There are two passes, and you can run either one on its own.
The first is a rules pass. It is fast and deterministic. It swaps characters, drops words you have flagged, rewrites stock phrases and words, runs your own patterns, fixes spelling to one dialect, and tidies the punctuation, with no model, no cost, and the same output on every run. It knows markdown, so fenced code blocks and inline backtick spans come through untouched.
The second is an optional rewrite pass that hands the text to a model for the things rules cannot manage, like reworking a sentence so it no longer needs a semicolon, or nudging the writing toward a voice you picked.
Homebrew:
brew install dcadolph/tap/slop-chop
With Go:
go install github.com/dcadolph/slop-chop@latest
Or clone and use the Makefile:
git clone git@github.com:dcadolph/slop-chop.git
cd slop-chop make install # build and install into $(go env GOPATH)/bin, version stamped make uninstall # remove it again
Run make with no target for the full list (build, test, cover, lint, fmt, tidy, clean).
Three measurements, all reproducible from this repository. docs/BENCHMARK.md has the method and the caveats.
It stays quiet on human writing. Scored against 886 open-source READMEs across seven language ecosystems, most from projects with no push since 2021, seven reach the line where text stops reading clean. That is 0.8 percent, and it is the line the GitHub Action fails on by default. slop-chop check is stricter. It fails a file on any single tell that carries weight, and 41.5 percent of the same READMEs use at least one.
Word lists lose to a thesaurus. slop-chop attack swaps text to dodge the rules without improving it, and 33 of 74 word tells slip past. Only 1 of 90 structural tells does, which is why a sentence shape counts double in the score. That number bounds the attacker rather than the rules: a swap never rebuilds a sentence, so it was never going to reach a shape. How those rules fare against a model told to rewrite is unmeasured.
The test that would settle it has not been run. Nobody has yet checked whether the score ranks text the way human readers do. The rating protocol and the harness are in evaldata/. Until that runs, the claim stays narrow: same input, same output, and the patterns the rules know get caught every time.
# Print the cleaned text to stdout. Your file is not changed.
slop-chop fix notes.md
slop-chop fix -w notes.md
echo "In summary, a robust—and seamless—result." | slop-chop fix
slop-chop check notes.md
slop-chop check docs/intro.md docs/guide.md README.md slop-chop fix -w docs/intro.md docs/guide.md
slop-chop check --dialect american notes.md slop-chop fix --dialect british notes.md
slop-chop fix --preset plain notes.md
slop-chop fix --profile myprofile.json notes.md
slop-chop check --json notes.md slop-chop check --json --pretty notes.md
slop-chop fix --rewrite notes.md slop-chop fix --rewrite --verify notes.md
check --json prints a {"findings": [...]} object to stdout. fix --json returns {"cleaned": "...", "findings": [...], "remaining": [...], "score": {...}, "scoreAfter": {...}}. Each finding carries the rule, the matched text, the suggested replacement, and a line and column. A finding with a replacement was rewritten, and one without was only flagged. remaining is what check reports on the cleaned text, the tells no rule can rewrite for you. Without --json, fix prints one line on stderr saying what it rewrote, what it left for you, and how the score moved.
check flags what it finds and exits non-zero when a finding carries score weight. Cleanups with no weight are listed without failing. Pass --strict to fail on any finding. Drop it in CI. Add --why and every finding carries a plain-words line saying what fired and what happens to it, the same explanations the web app shows on a tap.fix writes the cleaned text to stdout and leaves your file alone. Pass -w to change the file in place instead.score measures how densely the text carries the patterns your profile lists, 0 to 100.It is a lint result, not a reading on who wrote the text, and it cannot be turned into one: the same patterns appear in writing people produce on purpose. Under 25 reads clean, 25 to 54 is mixed, and 55 and up is dense with tells, the same bands the web app shows. score --by-paragraph scores each paragraph on its own, which is how a document with two generated paragraphs buried in a thousand human words shows where they are, and --max then gates on the hottest paragraph instead of the diluted whole.
Source code gets its own treatment. On a .go, .py, .ts, or any other code file, check and score read only the comments, plus the docstrings in a Python file, so a buzzword in a comment is flagged at its real line and column while identifiers, strings, and formatting alignment draw nothing. fix refuses to rewrite code files outright, since prose cleanups break code. Pipe a file through stdin to read it as plain text on purpose, or add --as .go to read stdin as a source file of that type and scan only its comments, which is how an editor checks an unsaved buffer. Comments nested inside a function are scanned like any other. Data files with no comments, like .json and .csv, are skipped with a note.
score gives a single number from 0 to 100 for how densely the text carries the patterns the active profile lists. Change the profile and the same prose scores differently, which is the clearest statement of what the number is: compliance with a named ruleset. A structural tell counts double toward the density, because a stock sentence shape survives a thesaurus where a listed word does not.
The engine ships with a labeled corpus of AI, human, and technical passages under sanitize/testdata/, and TestBenchmark measures recall, precision, and the score margin against it on every run, so a change that weakens detection fails the build instead of going unnoticed. docs/BENCHMARK.md shows the numbers, the corpus composition, what fires on what, and the limits of what the score claims. The score is a lint result, not an authorship verdict.
slop-chop score notes.md # notes.md: 42 (mixed: 5 tells in 180 words)
slop-chop score --json notes.md # {"value":42,"scoringVersion":2,"tells":7,...} slop-chop score --max 20 notes.md # exit non-zero when the score is above 20
--max turns it into a gate, so a document over the bar fails a build the same way check does.
Every score names the scoring version that produced it. The version rises on any release that can move the score of unchanged text, and docs/SCORING.md lists what moved, so a gate set on one version keeps its meaning until the number changes. A test in the repo fails when the benchmark corpus scores differently without a bump.
Word swaps catch the vocabulary of AI writing. The rules pass also flags 61 structural tells that a word list misses: the it's not just X, it's Y cadence and its contracted isn't a perk. It's an expectation twin, the let's dive in opener, here's the thing throat-clearing, the The best part? fragment reveal, here are five ways enumeration, runs of bold-label bullets and numbered items, emoji-decorated headings, and the spaced hyphen models reach for now that the em-dash is a known tell. It also catches the register of a chat reply rather than a piece of writing: let me break this down, you might be wondering, here's where it gets interesting, happy coding!, and the say goodbye to X and Enter Foo, the tool that moves of generated marketing copy. These are flagged, not rewritten, since the fix depends on the whole sentence and is left to the rewrite pass. Add your own with the flagPatterns field in a profile.
Every tell that becomes famous gets trained out of the next model and the writing moves somewhere else, so the default profile tracks what models write now rather than what they wrote in 2023.
Add a workflow that fails a pull request when a file scores above 25 on the slop score. Every finding is still listed in the run log, so the whitespace and punctuation tidy-ups show up without failing the build:
name: slop-chop
on: pull_request jobs: slop: runs-on: ubuntu-latest steps:
Set max to move the line, or max: 100 to turn the score gate off. Set strict: "true" to fail on any single finding, the way slop-chop check --strict does on the command line. The default line sits where ordinary human writing almost never lands: 0.8 percent of the 886 READMEs in the benchmark score 25 or more.
The action builds the engine from the tag you name, so the tag pins the engine and its scoring version together. A newer tag can score the same file differently when its scoring version is higher. Set `scoring-versi
ตัดมาแค่ช่วงต้น อ่านต่อใน repo