[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-77190":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":15,"starSnapshotCount":15,"syncStatus":41,"lastSyncTime":42,"discoverSource":43},77190,"slopless","agent-quality-controls\u002Fslopless","agent-quality-controls","Deterministic textlint rules and CLI for catching prose slop in Markdown","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fslopless",null,"TypeScript",255,39,19,0,137,4.81,"MIT License",false,"main",true,[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"ai","cli","lint","linter","llm","markdown","nodejs","prose","quality","slop","static-analysis","style-guide","textlint","typescript","writing","2026-06-12 02:03:42","# slopless\n\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fslopless?label=npm)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fslopless)\n[![downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fslopless)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fslopless)\n[![license](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fslopless)](LICENSE)\n[![ci](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fagent-quality-controls%2Fslopless\u002Fci.yml?branch=main&label=ci)](\u002Factions\u002Fworkflows\u002Fci.yml)\n[![node](https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002Fslopless)](package.json)\n\nCatch AI and human slop in English Markdown without calling an LLM. Slopless ships 50+ deterministic textlint rules and a CLI that emits structured JSON findings.\n\n## Intended Usage Loop\n\n```bash\nnpm install -D slopless\nnpx slopless install-skill codex\nnpx slopless install-skill claude\n```\n\nThen start a fresh writing-agent session and tell it to use the Slopless skill:\n\n```text\nUse the Slopless skill. Check this Markdown, rewrite the prose, and keep iterating until Slopless passes.\n```\n\nLoop:\n\n1. Install Slopless.\n2. Install the agent skill for Codex or Claude Code.\n3. Tell the writing agent to use the skill.\n4. Let the agent run Slopless, rewrite, and rerun until the JSON output has no findings.\n5. Profit.\n\n## Direct CLI Use\n\n```bash\nnpx slopless \"docs\u002F**\u002F*.md\"\n```\n\nSlopless is English-only. It requires a file path, glob, or stdin input. A bare `npx slopless` exits with code `2`.\n\nExit `0` means clean. Exit `1` means findings. Exit `2` means failure.\n\nOutput is always JSON:\n\n```bash\nmkdir -p .slopless\u002Ffindings\nnpx slopless \"docs\u002F**\u002F*.md\" > \".slopless\u002Ffindings\u002F$(date +%Y-%m-%d-%H%M%S)--review.json\"\n```\n\n## Agent Use\n\nAgents should run help first:\n\n```bash\nnpx slopless --help\n```\n\nAgents should save raw JSON findings under `.slopless\u002Ffindings\u002F` in the current working directory. Slopless does not choose redirected output filenames, slugs, or timestamps.\n\nInstall the Codex skill into the current repo:\n\n```bash\nnpx slopless install-skill codex\n```\n\nInstall the Claude Code skill into the current repo:\n\n```bash\nnpx slopless install-skill claude\n```\n\nBoth commands install the same `slopless` skill body. Start a new agent session after installing if the skill is not visible.\n\n## Ignore rules\n\nUse textlint comments around intentional exceptions:\n\n```markdown\n\u003C!-- textlint-disable slopless\u002Fsemantic-thinness -->\n\nSomething shifted in the room.\n\n\u003C!-- textlint-enable slopless\u002Fsemantic-thinness -->\n```\n\n## More\n\n- [Philosophy](\u002Fwiki\u002FPhilosophy) - what slopless is for, design principles, why deterministic.\n- [Comparison](\u002Fwiki\u002FComparison) - slopless vs proselint, write-good, alex, vale, default textlint presets.\n- [Rules](\u002Fwiki\u002FRules) - full 50+ rule inventory across seven families.\n- [Behavior](\u002Fwiki\u002FBehavior) - CLI flags, exit codes, JSON output shape, direct textlint integration.\n- [Ignore rules](\u002Fwiki\u002FIgnore-Rules) - inline `textlint-disable` block syntax.\n- [Thanks](\u002Fwiki\u002FThanks) - direct rule sources, dependencies, and acknowledgments.\n- [Contributing](.github\u002FCONTRIBUTING.md) - open a detailed issue first; PRs must pass the G3TS pre-commit gate.\n\n---\n\nPart of [Agent Quality Controls](https:\u002F\u002Fgithub.com\u002Fagent-quality-controls).\n","slopless 是一个用于检测 Markdown 文档中英文文本错误的工具，通过提供一系列确定性的 textlint 规则和命令行接口来实现。该项目包含超过 50 条预定义规则，能够有效识别并报告文档中的语法、风格及逻辑问题，而无需调用大型语言模型。其核心功能包括直接从命令行运行检查、与写作助手集成以及支持自定义规则忽略。特别适合需要高质量英文技术文档或文章的场景使用，如软件开发文档编写、技术博客撰写等。此外，slopless 采用 TypeScript 开发，并遵循 MIT 许可协议发布。",2,"2026-05-19 02:35:16","CREATED_QUERY"]