[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-78021":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":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":16,"starSnapshotCount":16,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},78021,"slopless","seochecks-ai\u002Fslopless","seochecks-ai","Deterministic textlint rules and CLI for catching prose slop in English Markdown.","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fslopless",null,"TypeScript",312,30,23,19,0,5,127,56.97,"MIT License",false,"main",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"ai","cli","lint","linter","llm","markdown","nodejs","prose","quality","slop","static-analysis","style-guide","textlint","typescript","writing","2026-06-12 04:01:23","# 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\u002Fseochecks-ai%2Fslopless\u002Fci.yml?branch=main&label=ci)](\u002Factions\u002Fworkflows\u002Fci.yml)\n[![node](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fnode-22%2B-brightgreen)](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](https:\u002F\u002Fgithub.com\u002Fseochecks-ai\u002Fslopless\u002Fwiki\u002FPhilosophy) - what slopless is for, design principles, why deterministic.\n- [Comparison](https:\u002F\u002Fgithub.com\u002Fseochecks-ai\u002Fslopless\u002Fwiki\u002FComparison) - slopless vs proselint, write-good, alex, vale, default textlint presets.\n- [Rules](https:\u002F\u002Fgithub.com\u002Fseochecks-ai\u002Fslopless\u002Fwiki\u002FRules) - full 50+ rule inventory across seven families.\n- [Behavior](https:\u002F\u002Fgithub.com\u002Fseochecks-ai\u002Fslopless\u002Fwiki\u002FBehavior) - CLI flags, exit codes, JSON output shape, direct textlint integration.\n- [Ignore rules](https:\u002F\u002Fgithub.com\u002Fseochecks-ai\u002Fslopless\u002Fwiki\u002FIgnore-Rules) - inline `textlint-disable` block syntax.\n- [Thanks](https:\u002F\u002Fgithub.com\u002Fseochecks-ai\u002Fslopless\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\nDeveloped by [seochecks.ai](https:\u002F\u002Fseochecks.ai) to keep content specific, useful, and recognizably human.\n","slopless 是一个用于检测 Markdown 文档中英文文本错误的工具，支持通过命令行界面（CLI）运行。它提供了超过50条确定性的 textlint 规则，无需调用大型语言模型（LLM）即可识别出由AI或人工编写时常见的文本问题。slopless 采用 TypeScript 开发，确保了代码质量和可维护性。适用于需要高质量英文文档的场景，如技术文档、博客文章等的写作和审查过程中。通过集成到写作代理中或直接使用 CLI，用户可以自动检查并迭代改进文本直至满足质量要求。",2,"2026-06-11 03:56:19","CREATED_QUERY"]