将角色与 Skill 从 .claude 迁入 .agent,移除 Claude CLI 运行时并接入固定 Opus 角色 profile、完整 schema、预算 deadline、raw 与回执证据链。 同步拆分 Skill 职责、复利 lesson、Gate 回放、Dashboard 人审入口、数据库登记和机械门禁;候选设计正文不包含在本提交中。
5.7 KiB
5.7 KiB
name, description
| name | description |
|---|---|
| clean-book-text | 识别并删除参考书或旧稿中的广告、水印、作者拉票和乱码噪声,同时保留逐段审计。静态导入后仍有语义垃圾时使用;模型只提候选,确定性守卫决定是否删除,绝不改写正文。首次 txt 分章落库归 import-book;本 Skill 只在已有 block 上做语义噪声清洗。 |
清洗书稿正文
分工(创始人方案 2026-07-13):规则层已在 import-book 解决结构性垃圾(水印正则/重贴章题/目录页/分页尾巴/残破实体);本 Skill 处理语义垃圾——变体书站广告、作者拉票/PS 段、微信导流、乱码水印等正则打不全的散落噪声。LLM 只当探测器(输出待删片段逐字原文),删除由脚本执行:零改写、可审计、可回放。探测模型=New-API MiniMax-M3(经 call-content-model 的受治理入口 chat_governed;模型降级与额度治理走全局 BUDGET_CHAIN 与 5h 额度窗,本 Skill 不自写降级链。全链耗尽时该窗记 skipped、不清洗、不返回假成功——网文正文会触发上游敏感词拦截,由治理链自动换模型救回)。
流程
# 放量驱动(每书 prep→detect→apply 全链;断点续跑/幂等防重删;可多进程分书并行)
.venv/bin/python .agent/skills/clean-book-text/scripts/clean_batch.py --work-id 7 --work-id 10 --batch <批次号>
# 单步(调试/演示用)
.venv/bin/python .agent/skills/clean-book-text/scripts/clean_prep.py --work-id 7 [--from 1 --to 50] # 切窗
.venv/bin/python .agent/skills/clean-book-text/scripts/clean_detect.py --work-id 7 [--win 1] # M3 探测
.venv/bin/python .agent/skills/clean-book-text/scripts/clean_apply.py --work-id 7 --batch X --file … [--dry-run] [--report-md docs/清洗-N-书名.md]
# 收尾收割:高频水印全书规则扫净(LLM 每窗只报样例,重复水印靠种子收割)
.venv/bin/python .agent/skills/clean-book-text/scripts/clean_sweep.py --work-id 7 --batch X # 审计自动种子(重复≥3次且≥20字)
.venv/bin/python .agent/skills/clean-book-text/scripts/clean_sweep.py --work-id 4 --batch X --seed "http://m." # 人工确认的碎水印
# 审查:审计对账
.venv/bin/python .agent/skills/access-database/scripts/db.py query "SELECT batch, count(*), sum(length(removed_text)) FROM example_clean_log WHERE work_id=7 GROUP BY batch"
⚠️ prep 会覆盖 /tmp/muse-clean// 的窗与 manifest——换范围重切前先归档旧产物目录。
守卫体系(脚本硬闸,LLM 建议 ≠ 必删;全部为放量实测病对症)
- 长度界:
exact4–500 字; - 章题保护:不得含/命中所在章章题;
- 单章顶:单章累计删除 ≤ max(章长 20%, 120 字)——绝对下限救短章(百字残章按比例删不了任何垃圾);
- 行级垃圾特征:exact 每一行必须命中通用垃圾词(ps头/感谢/求票/微信公众号/域名符号/盗版占位语…不含书内专名)或书名水印豁免(孤行=本书名、行含《本书名》);无特征行拆行跳过(宁漏删不误删——实拦「广告+被截断正文」粘连 3 处);
- 水印裁剪:删除段含明确水印模式(百镀一下/一秒记住…免费阅读)且水印前有前缀时只删水印——防「正文行尾粘水印」误删正文头(实测修复 1 例 3 字误删)。
匹配三级:精确命中 → 空白弹性(M3 折叠 \n\n\n→\n\n)→ 邻章 ±1 容错(长窗内章号偏移;fix 轮还能二次收割邻章重复水印)。三级全失败 → 拒绝。收尾规则:被删 ps 段的前置星号分隔线孤悬章尾则连带清除;被清洗章空行归一。每次删除一行审计(原文/理由/模型/批次),源 txt 永远不动(可整书重导回滚)。
P2 全语料实测(2026-07-13 收口)
- 8 书 ≈3,300 万字 ≈340 窗;M3 中文 ≈0.58 token/字,总输入 ~20M token;10 万字窗 in≈5.9 万 token、耗时 10–25s;
- 总删除 1,685 段 / 约 6.1 万字(机破星河 2.4 万最脏、机战无限 1.9 万次之);误删实测 1 例 3 字(已修复+守卫补上);
- 已知残留:作者疲劳话(无通用特征)、「重贴章题+(第N更 求月票)」嵌正文行变体(高风险规则,待拍)、感言/请假条整章(结构性存在,段落清洗不动章)。
输入
- 库内已导入作品的章节 block 文本(
muse_content_block),按--work-id与窗范围切分。 - 可选:
clean_prep产出的窗 manifest、clean_detect的 M3 探测 JSON、人工--seed水印片段。
输出
example_clean_log逐段删除审计(原文片段、理由、模型、批次、删除字数)。- 可选 Markdown 审查报告(
--report-md);源 txt 与导入快照不改写。
数据边界
- 读写:
example_clean_log、目标作品的muse_content_block(apply 阶段软删/标记噪声段,不碰源文件)。 - 模型:经
call-content-model的chat_governed探测;额度耗尽时该窗记 skipped,不返回假成功。 - 不改正文语义、不重写句子、不触发拆书或知识抽取。
红线
- LLM 建议 ≠ 必删;守卫五级全失败则拒绝,宁漏删不误删。
- 单章累计删除不得超过
max(章长 20%, 120 字)上限。 - 不得删除章题、不得命中无垃圾特征的正文行。
- 源 txt 永远不动;回滚靠重导,不靠 apply 逆操作。
- 全链模型耗尽时 fail-closed,禁止空批通过。
复利合同
- 成功落库后经
record-run-evidence的propose_lesson_dedup登记example_lesson(绑 run_id / work_id)。 - 升格仍走人工评审,不自动把单次运行升为公共范式。