TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
将 AI 撰写的文案转化为人类可直接使用的文案。AI 代码检查,使用竞争模型清理,再次检查。
AI 翻译
Turn AI-written copy into copy a human would ship. Lint for AI tells, cleanse with a rival model, lint again.
效率工具Python · ShellGitHub @ItsssssJack自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
安装型项目无需部署域名也可验证。个人仓库可通过 GitHub 登录验证,组织仓库可使用上方的仓库验证文件。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗SlopMonster checks English writing for common AI writing patterns and provides instructions for editing the draft. Use it on a README, a landing page, an email or a script.
The Python checker reports matches in five categories and gives the text a score out of 5. The editing workflow asks an AI agent to review the draft for its intended reader, revise it, and request another pass from a different model family.
A score of 5/5 means the checker found no scored matches. You still need to review whether the text makes sense, supports its claims and gives the reader what they came for. The previous version of this README passed while using repetitive metaphors and vague contrasts. That exposed a gap in the editing guidance.
The checker uses Python 3 and its standard library. It needs no API key or packages to install.
git clone https://github.com/ItsssssJack/SlopMonster
cd SlopMonster
# Check a short draft.
python3 tools/deslop.py --text "It's not just a tool, it's a game-changing journey."
# Scores 3/5 and exits with status 1.
# Check a Markdown file.
python3 tools/deslop.py README.md
# Check text extracted from an HTML file.
python3 tools/deslop.py index.html
Each category with a match costs one point, regardless of how many matches it contains. The command exits with status 0 at 5/5 and status 1 below 5/5. Empty input also fails. Checking a file leaves its contents unchanged.
For Markdown, the checker skips fenced code blocks, inline code, images and struck-through examples. For HTML, it removes tags and script/style contents. It doesn't render the page, so text hidden by CSS can still be included.
Give your agent SKILL.md and the draft. Include the intended audience and where the writing will appear if those are unclear from the text.
The second pass uses prompts/cleanse.txt. With a supported AI command-line tool (CLI) installed and authenticated, run:
# If Claude wrote the draft, use Codex for the second pass.
DESLOP_WRITER=claude tools/cleanse.sh draft.md > cleansed.md
# If GPT wrote the draft, use Claude for the second pass.
DESLOP_WRITER=gpt tools/cleanse.sh draft.md > cleansed.md
# Read the edited file, then check it as Markdown.
python3 tools/deslop.py cleansed.md
Run the command for the family that wrote your draft. The script writes edited copy to standard output and change notes to standard error. It uses the installed CLI's configured model.
If the required CLI is missing, the script prints the editing prompt and draft, then exits with status 127. Paste that output into the other model family's chat. A timeout exits with status 124. Check the exit status before treating the output file as an edited draft. A warning about a missing notes marker means the response may include change notes in the copy.
Using another model provides another editing pass. It doesn't guarantee better writing. Review the result for changed facts and lost context before accepting it.
For Claude Code, copy this folder to ~/.claude/skills/slopmonster/ and invoke
/slopmonster. For Codex or another agent, ask it to follow SKILL.md.
The current score has five categories:
| Category | What it checks |
|---|---|
| Vocabulary | Listed words such as delve and seamless, including selected word forms. |
| Sentence patterns | Listed constructions such as not just X, but Y, stacked hedges and certain self-answering questions. |
| Punctuation | Repeated em dashes or stacked hyphenated compounds within a 220-character window in a sentence, plus semicolon density. |
| Three-item lists | Two specific list patterns that often occur in promotional copy. |
| Possible unsupported proof | Numbers near nouns such as users or customers. The checker cannot verify the claim. |
The patterns are in tools/deslop.py. The broader editing catalogue is in references/signs-of-ai-writing.md. Some entries in that catalogue require editorial judgment and have no automated check.
If a flagged customer count is accurate and you have evidence for it, use:
python3 tools/deslop.py index.html --allow-proof
This option still reports proof matches but removes their score penalty. It doesn't check the evidence. In this mode, 5/5 can include proof warnings.
Read the draft in the context where someone will encounter it. Check these points before accepting an edit:
See references/principles.md for more editing guidance and examples. Never add a statistic or testimonial to make a sentence sound specific. If information is missing, flag it for the author.
The checker uses English patterns and has no language detection. Text in another language can score 5/5 because those patterns don't match.
It can flag ordinary wording and miss poor writing. It cannot determine who wrote the text, verify facts or judge whether a hook suits the audience. Use its findings as prompts for review. A passing score alone doesn't establish writing quality.
You can run the checker in continuous integration (CI), the automated checks a repository runs when code changes. Because a score below 5/5 returns a failure status, a workflow that runs the command can fail on flagged copy.
This repository's workflow runs the regression tests and checks both this README and a sample file. Copy it to your repository and set the file paths you want checked. Blocking a merge or deployment requires your own repository rules or deployment configuration.
python3 tools/test_deslop.py
bash tools/test_cleanse.sh
python3 tools/deslop.py README.md