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生成, 可视化界面, 威胁情报, 开发者工具, 文本分析, 文本规范, 文本质量, 文档结构分析, 文风检查, 编辑器工具, 网络流量审计, 英文写作, 规则引擎, 通知系统, 错误基检测, 防御加固, 静态代码分析