agent-quality-controls/slopless

GitHub: agent-quality-controls/slopless

一款基于 Rust 的确定性文本质量检查 CLI 工具,通过预设规则和自定义策略精准检测并拦截 AI 生成的冗杂套话,帮助团队在内容管线中保持统一的写作风格。

Stars: 0 | Forks: 0

# prosesmasher 面向 markdown 和短文本的确定性文本 lint 工具。 `prosesmasher` 是一个用于确定性文本 lint 的 CLI,旨在根除 AI(及人类)生成的冗杂内容。它专为希望在 CI、编辑器工具和内容管道中进行可重复文本检查的团队而构建。该工具以英语为主,并有意对 AI 风格的样板文本、可读性和 markdown 结构保持严苛的规范。 它涵盖四个主要方面: - 词汇策略,例如禁用、必需和建议使用的术语 - 用于检测套话和纠正性样板文本的修辞启发式规则 - 流畅度与可读性检查 - 可选的文档策略,例如字数统计、标题和代码块 ## 适用场景 在以下场景中使用 `prosesmasher`: - 在 CI 中进行确定性的文本检查 - 为文档、文章、电子邮件或社交媒体文案建立统一的内部风格 - 为内容管道提供机器可读的错误输出 - 无需调用 LLM 即可捕获常见的 AI 冗杂内容模式 在以下场景中请使用其他工具: - 语法纠正 - 事实核查 - 由 LLM 进行的语义审查 - 判断“好文章”的万能神谕 该工具是一个策略引擎。有些检查具有广泛的实用性。另一些则是特意设定的内部风格。 ## 安装 通过 `cargo-binstall` 从 GitHub releases 安装: ``` cargo binstall --git https://github.com/websmasher/prosesmasher prosesmasher ``` 此方式仅提供预编译的二进制文件。根包的元数据已禁用 `cargo-binstall` 回退到源码构建。 通过 Cargo 从源码安装: ``` cargo install --git https://github.com/websmasher/prosesmasher prosesmasher ``` ## 快速入门 列出内置预设: ``` prosesmasher list-presets ``` 导出内置预设: ``` prosesmasher dump-config --preset article-en ``` 导出完整的可编辑配置: ``` prosesmasher dump-config --full-config ``` 使用预设检查单个文件: ``` prosesmasher check draft.md --preset article-en ``` 使用自定义配置递归检查目录: ``` prosesmasher check content/ --config prosesmasher.json ``` 输出机器可读的 JSON: ``` prosesmasher check draft.md --config prosesmasher.json --format json ``` 列出检查项而不是校验文件: ``` prosesmasher check --list-checks prosesmasher check --list-checks --group readability --format json ``` ## 命令行界面 顶层命令: - `check` - `list-presets` - `dump-config` `check` 支持: - `--preset ` 或 `--config `(两者互斥) - `--group ` - `--check ` - `--format text|json` - `--text-mode failures|full|summary|paths` - `--include-checks` - `--list-checks` 示例: ``` prosesmasher check draft.md --preset article-en prosesmasher check drafts/ --preset substack-en --group quality prosesmasher check draft.md --config prose.json --format json prosesmasher check draft.md --config prose.json --format json --include-checks prosesmasher check draft.md --preset article-en --text-mode summary prosesmasher check draft.md --preset article-en --text-mode paths ``` ## 预设 内置预设: - `general-en` - `article-en` - `substack-en` - `email-en` - `tweet-en` 预设原则: - 所有预设共享相同的质量默认设置 - 预设之间的主要区别在于结构化的文档策略 - `dump-config --full-config` 是完整的可编辑 schema 示例,而不是预设 ## 配置模型 配置使用 camelCase 格式的 JSON 键。 顶层结构: ``` { "locale": "en", "quality": { "lexical": {}, "heuristics": {}, "flow": {}, "readability": {} }, "documentPolicy": {} } ``` 重要语义: - `quality.lexical` 主要由覆盖和合并机制驱动 - `quality.heuristics` 包含修辞和风格启发式规则 - `quality.flow` 包含段落和重复控制 - `quality.readability` 包含可读性阈值 - `documentPolicy` 是可选的结构化策略 - 覆盖列表使用 `defaults`、`add` 和 `remove` - `defaults: true` 与内置默认值合并 - `defaults: false` 替换内置默认值 - 建议术语池使用 `allowInflections` 来控制词干匹配 最简示例: ``` { "locale": "en", "quality": { "lexical": { "prohibitedTerms": { "defaults": true, "add": ["live coaching calls"], "remove": [] } }, "flow": { "paragraphLength": { "maxSentences": 6 } } }, "documentPolicy": { "wordCount": { "min": 500, "max": 1000 } } } ``` ## 输出 文本模式默认输出以错误为重点的内容。 文本模式: - `failures` 仅输出未通过的检查项及摘要 - `full` 输出所有检查项及摘要 - `summary` 为每个文件输出一行摘要 - `paths` 仅输出未通过的文件路径 JSON 模式用于机器读取: - stdout 仅包含 JSON - 发生检查失败时 stderr 保持为空 - 退出码 `0` 表示成功 - 退出码 `1` 表示检查失败 - 退出码 `2` 表示运行失败 JSON 包含: - `schema_version` - `exit_reason` - 摘要计数 - 带有相关证据的未通过检查 - 重写提示 - 设置 `--include-checks` 时包含可选的 `checks` 项 示例: ``` prosesmasher check draft.md --config prose.json --format json ``` ## 检查族 - `lexical` 用于禁用、必需、建议和简洁性策略 - `heuristics` 用于反冗杂内容和风格化的内部规则 - `flow` 用于段落长度和重复检测 - `readability` 用于 Flesch-Kincaid、Gunning Fog、Coleman-Liau 和平均句子长度检测 - `document-policy` 用于结构化的 markdown 规则 通过 CLI 查看确切的内置检查项: ``` prosesmasher check --list-checks ``` ## 语言支持 该工具目前以英语为主。 - 英语拥有最强大的启发式和词汇支持 - 解析器和区域设置基础架构已支持英语以外的语言 - 英语以外的启发式规则覆盖范围尚不完整 如果您需要非英语检查,请查看 `check --list-checks` 及您的配置,而不要假设功能完全对等。 ## CI 用法 在发生文本违规时使任务失败: ``` prosesmasher check content/ --preset article-en ``` 存储 JSON 供其他工具使用: ``` prosesmasher check content/ --config prose.json --format json > result.json ``` 保持冗长的日志简短: ``` prosesmasher check content/ --preset article-en --text-mode paths ``` ## 限制 - 此工具不会为您重写文本。 - 它不进行事实核查。 - 它不试图成为所有文本的中立评判者。 - 由于部分检查是特意设定的严苛规范,可能会出现误报。 - 对英语的支持远强于对其他区域设置的支持。 ## 仓库结构 - `apps/prosesmasher/` 是 Rust workspace - `crates/` 包含六边形应用结构 - `packages/prosesmasher/` 是可安装的 wrapper crate ## 许可证 MIT
标签:AI内容检测, Cargo, Lint工具, Markdown, Rust, 云计算, 内容策略, 反AI生成, 可视化界面, 威胁情报, 开发者工具, 文本分析, 文本规范, 文本质量, 文档结构分析, 文风检查, 编辑器工具, 网络流量审计, 英文写作, 规则引擎, 通知系统, 错误基检测, 防御加固, 静态代码分析