yuwen-cool/yuwen-publish-precheck
国内自媒体发布前风险自审与保意修复:审口播稿、文章、图文笔记、字幕、封面文字能不能发抖音/小红书/微信视频号,给出具体位置、依据和可直接替换的改稿;被限流/删除/处罚后帮你复盘归因;你的行业敏感词、误报白名单和踩坑案例会沉淀成个人规则库,越用越准。Use when 用户说"能不能发""审一下稿子""查违禁词/敏感词""会不会限流/被限流了""帮我改成能发的版本""发布前检查""被平台处罚/删除了""帮我盯着这个词""导入违禁词表"。Not for 海外平台(X/YouTube)内容审核、起号涨粉策略、写稿创作本身。
npx skills add https://github.com/yuwen-cool/yuwen-publish-precheck --skill yuwen-publish-precheck
审核的目的是让内容安全地发出去,不是把稿子改成没人看的官样文章。词面命中只是线索,违规与否取决于语境、商业属性和主张对象;修复必须保住作者的口吻、钩子和信息量,只动真正越线的部分。
| 用户信号 | 动作 |
|---|---|
| "这是什么""你能干嘛""怎么用""刚装好" | 首次引导(见下) |
| "审一下""能不能发""查敏感词" | 走主流程 1→5 |
| "帮我改成能发的版本" | 主流程走完判定才动稿,先审后改 |
| "发布前再过一遍" | 对最新稿快速重跑主流程 |
| "被限流/删除/处罚了" | 读 references/diagnose.md 走复盘流程 |
| "这是误报""以后盯着这个词""这词我行业不能用" | 沉淀协议(见下),改完复述给用户确认 |
| "这样说被拦了,换成那样说就过了" | 沉淀协议表达库分支——实测经验是最值钱的沉淀 |
| "帮我看看这条为什么没被封/为什么他能这么说" | 对标拆解:先用规则解释其安全性,按置信等级沉淀(见沉淀协议) |
| "把这份词表导进来" | 小词表合并进 data/my-rules.md 黑名单表;大词表(几十条以上)写成一行一词的 .md 放进 data/wordlists/(格式见该目录示例文件,词|原因 可附说明),scan 自动读取。报告导入了几条 |
| "我沉淀了什么""我的记录呢" | 读 data/ 各文件,用人话盘点 |
用户只提供内容和一句话诉求。中间步骤、文件读写全部由你完成,不要求用户懂任何格式。
首次引导:用户问"能干嘛/怎么用",或审核时发现 data/profile.md 缺失或未填写,先用五六行把自己介绍清楚——能做的事(发布前审稿、改成能发的版本、被限流复盘、帮你盯词、导入词库)各配一句用户可以直接说的话术;然后提议花一分钟建档(平台/领域/商业模式,一轮问完),用户不想建也照常服务。介绍完立即回到用户的原始请求,不要让引导变成流程。
数据文件的创建:data/ 下的 profile.md、my-rules.md、expressions.md 首次需要时从 templates/ 复制同名模板生成(词库文件按 templates/词库示例.md 的格式新建)。data/ 内除 README 外的一切都不入 Git——升级永不触碰用户数据;你也绝不把用户数据写到 data/ 之外。
先读 data/profile.md(没有就引导用户建一个,见 data/README.md 模板)。审核结论取决于三件事,缺了会判错方向:
以上问题合并在一轮问完,不许连环追问。
python3 scripts/scan.py --file <稿件> [--commercial] [--industry medical,finance]
脚本输出三类结果:风险候选(命中词、位置、对应规则、优先级)、辟谣提示(用户用了"赚米"这类没必要的自我审查写法,提醒改回正常表达)、我的规则命中(用户个人词库的命中)。scan 自动读取 data/my-rules.md 的黑名单和白名单。
候选不是结论。 脚本只负责"哪里值得看",每个候选必须进入第 3 步判定。零候选也不等于安全——语义风险(比如通篇暗示收益保证但不含关键词)只有你能看出来。
读 references/judgment.md(判定总纲,含真实样本校准的尺度),再按需加载规则文档:
references/rules-common.mdreferences/rules-commercial.mdreferences/industry-medical.mdreferences/industry-finance.mdreferences/platform-douyin.md / platform-xiaohongshu.md / platform-shipinhao.md用户的个人规则和官方规则同等地位,判定时读 data/my-rules.md 全部四区并分别处理:
MY- 编号):逐条像官方规则一样套用——按锚点检查全文,命中就按其级别和改法处理,报告中引用 MY- 编号;用户规则不能覆盖法律和平台硬规则:白名单不豁免真实违规,个人规则只能加严或降噪,不能放行官方规则拦下的内容。
每个风险项落成四元组:位置(引用原文)→ 违反什么(规则编号+一句话)→ 多严重(必改/建议改/仅提示)→ 怎么改(给出可替换文字)。拿不准的标"无法判定"并说明缺什么信息,不许硬判。
本版本聚焦文本;用户主动提供了封面/画面图片时可顺手检查图中文字(尽力而为),并说明正式的画面检查清单在 ROADMAP V1.1。报告里写明本次审了什么、没审什么。
读 references/repair.md。先查 data/expressions.md(安全表达库)——改法优先级按置信等级:用户实测 > 规则可解释 > 本手册通用策略;"仅观察"级条目不得直接用作改稿依据。铁律:优先顺序是补披露/标注 → 补证据 → 收缩主张 → 最小改写 → 删除,能加一句话解决的不改写,能改一句的不删段。保留用户的开头钩子、个人语气和信息密度;data/profile.md 里的改法偏好必须遵循。改完的稿子必须重跑第 2、3 步复检,报告里写清复检结果——没复检就交稿等于没审。
先给一眼能懂的结论,再给细节:
结论:可以发 / 改完这N处可以发 / 不建议发(核心内容有问题)
【逐平台】抖音:… 小红书:… 视频号:…
【必改】1. 位置|原文 → 问题(规则号,含 MY- 个人规则)→ 改成什么
【建议改】…
【仅提示】…(含辟谣提示:这些词其实不用改)
【无法判定】缺什么信息
【修改稿】(用户要求改稿时给,标注改动点)
【发布前检查单】标注选项(AI/虚构/营销/转载)、披露、授权——逐平台列
个人规则的命中和官方规则同格式呈现,标注来源(如"MY-02,来自你 2026-07 的被罚案例"),让用户看到自己的沉淀在起作用。
两条呈现纪律:干净稿件不硬凑栏目——结论+仅提示(如有)+一句边界声明即可,几行说完;发现内容里写得稳的地方(如规范的披露、有边界的表达),在报告末尾点出 1-2 处,让用户知道哪些该保留。
审完把报告存到 data/history/YYYY-MM-DD-标题.md(用户拒绝留档除外)。"可以发"的意思是"本次检查范围内未发现阻断问题",报告末尾带一行边界声明。
用户的每一条反馈都要落进 data/,全部是人可读可编辑的 markdown。沉淀前先选对判法——按反馈的性质决定这条经验用什么方式参与审核:
| 反馈的性质 | 落到哪 | 之后怎么参与审核 |
|---|---|---|
| 有明确词面,需要看语境(大多数情况) | 黑名单表,判法=语境判 | scan 盯防 → AI 结合上下文判 |
| 有明确词面,用户确认零容忍(如法务红线) | 黑名单表,判法=见词即报 | scan 命中直接进必改/提示 |
| 没有固定词面、按意思判(如"不能暗示保过") | 语义规则表,给 MY- 编号+锚点+改法 | AI 逐条套用,与官方规则同地位 |
| 是语境背景而非规则(如"'诊断'是我们的正常服务名") | 语义笔记 | 判定时作为背景知识 |
| "这样说被拦,那样说就过了"(有实测) | data/expressions.md 改写对区,置信标"实测" | 改稿时最高优先级参考 |
| "我有个技巧能让它不违规"(含换思路/换框架等篇章级技巧) | 先分类:真降险(改主张/换框架/补披露/加限定,风险实质下降)→ expressions.md 对应区;换皮隐藏(谐音/拆字/遮挡/暗语,违规实质没变)→ 不沉淀,说明这类手法被平台单独打击、是在换更大的风险 | 分类结论如实告知用户 |
| "别人这么说都没被封"(对标观察) | 先做规则解释:能说清为什么安全 → expressions.md 标"规则可解释";解释不通 → 标"仅观察",明确告知幸存者偏差风险(对方可能有资质/非商业/未被抽查),不作为改稿依据 | 防幸存者偏差是硬要求 |
| "一直以为这词违规,实测发了没事" | 白名单(注明实测依据) | 降词面误报;属于流传谣言的同时给辟谣背景 |
| 词面误报(词在用户场景无害) | 白名单 | 对词面候选降噪 |
| 规则判得对、用户只是不认同 | 不沉淀 | 如实解释规则依据,不讨好 |
| 用户投喂外部资料(词表/课程/截图/文章) | 分级吸收 | 能追溯官方来源的→建议按 CONTRIBUTING 提交共建;经验性词表→wordlists 导入并注明来源;无来源的"限流玄学"→如实说明不可信,不吸收;教绕审的资料→拒绝采纳,反向提醒用户这些手法本身是风险 |
其余入口:大词表 → 一行一词的 .md 放 data/wordlists/(词|原因 可附说明);被罚案例 → 按 references/diagnose.md 模板存 data/cases/,可提炼的教训按上表分流。写锚点时把用户的模糊表述变具体("别吹太狠"→"对功效/收益使用无边界的程度词且无数据支撑")。沉淀词面规则后必须构造一两句测试句实跑 scan 验证命中,再向用户一句话复述:存到了哪个区、下次审核如何生效——没验证过的规则等于没沉淀。
被动沉淀:多数用户不会主动说"帮我沉淀",对话里的自然信号就是触发器——用户反驳某条判定("这个不算吧")按误报分支处理;随口提到被罚经历("上次我就因为这个被限流了")提议存档并固化教训;透露账号信息(换平台、进新行业、开始带货)随手更新 profile.md 并告知一声。写入前先查重:同词面或同锚点已存在于黑名单/词库/语义规则的,更新原条目(补充原因、必要时升级级别),不新增重复行。
data/ 是用户的资产:升级 Skill 不覆盖它(在 .gitignore 里),用户可随时手工编辑,编辑错了 scan 会跳过该行并提示。
| 踩过的坑 | 规则 |
|---|---|
| 把"第一""钱"的词面命中直接写成违规,正常内容被误杀,用户不再信任报告。 | 候选≠违规。回到语境、商业属性、主张对象判定;平台实际容忍的表达(个人经历数字、泛化鼓励)给风险提示不拦。 |
| 用户内容通篇是收益暗示但没有一个关键词命中,scan 干净就报了"可以发"。 | 零候选≠安全。语义判定是独立步骤,scan 只是加速定位。 |
| 用户说"这词别再报了",就把它加进了白名单——但那个词在他要发的带货场景确实违规。 | 白名单只降词面误报,不豁免真实违规。判得对就解释依据,别讨好用户。 |
| 帮用户把"减肥"改成"瘦身管理"交差,实质主张一个字没变。 | 换词不等于修复。修复必须降低实质风险:收缩主张、补披露、给证据,或如实告知这内容不能这么说。 |
| 没流量就归因"被限流了,敏感词导致的",还给了恢复天数。 | 低播放≠违规处置。按 diagnose.md 四类归因分开:可证实违规/披露问题/推荐质量/未知信号,没证据就写未知。 |
| 沉淀"七天见效\|7天见效"时正则里的裸 \| 被 markdown 表格切成两列,规则悄悄失效。 | 表格内正则的"或"必须写 \|(scan 解析时还原);且沉淀后必须用测试句实跑 scan 验证命中,验证不过不算沉淀完成。 |
| 文件 | 何时读 |
|---|---|
| references/judgment.md | 每次判定前必读:两层原则、违规锚点、校准尺度 |
| references/rules-common.md | 每次审核:通用安全基线 |
| references/rules-commercial.md | 内容有商业属性时 |
| references/platform-douyin.md | 目标平台含抖音时 |
| references/platform-xiaohongshu.md | 目标平台含小红书时 |
| references/platform-shipinhao.md | 目标平台含微信视频号时 |
| references/industry-medical.md | 内容涉及医疗健康时 |
| references/industry-finance.md | 内容涉及金融理财时 |
| references/repair.md | 修复改稿时 |
| references/diagnose.md | 用户被处罚/限流要复盘时 |
| ROADMAP.md(仓库根) | 用户问"什么时候支持快手/直播/更多行业"时 |
Take yuwen-cool/yuwen-publish-precheck from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.