商品/直播文案合规巡检
把电商标题、详情页文案、直播话术等营销文本,对照《广告法》通用规则与主流平台专项规则做一次合规体检,输出「命中清单 + 风险分级 + 替代表述 + 合规改稿」。
何时使用
- 用户要检查文案是否违规、能不能过平台审核、有没有踩广告法红线;
- 用户提到「规避极限词 / 违禁词」「降低下架风险」「开播前检查脚本」;
- 用户给出商品文案并询问可不可以发布;
- 用户需要一次性检查多条文案(如整店标题、一场直播的多个话术脚本)。
不适用:专利、商标、药品注册等需要专业资质的判断。遇到药品、医疗器械、金融等强监管内容,只做提示并建议咨询专业人士。
免责声明
本 Skill 输出的是合规风险提示,不构成法律意见,也不能替代专业法务 / 律师的审查。广告法与各平台规则会随时更新,词库为可维护的起始版本;涉及药品、医疗器械、保健食品、金融、保险、证券、医疗美容等强监管领域的文案,使用前请咨询专业人士。最终发布内容及其后果由使用者自行负责。
工作流程
按顺序执行,并维护一份进度清单:
- [ ] 1. 收集输入
- [ ] 2. 运行词库扫描
- [ ] 3. 语义层复审
- [ ] 4. 生成报告与改稿
1. 收集输入
必须明确的字段,缺失时向用户询问:
> 缺少「文案」时必须先向用户询问,不得自行臆测或代写内容。 若请求超出适用范围(专利、商标、药品注册等),先说明不在服务范围内、建议咨询专业人士,再决定是否继续。
| 字段 | 说明 | 缺省 |
|---|---|---|
| 文案 | 待检查文本(单条或多条) | 必填 |
| 平台 platform | 见下表,或 all | all |
| 品类 category | 见下表,或 all | all |
可选品类 category(完整见 references/words/industry.json)
food 食品、cosmetic 化妆品、health_food 保健、medical 医疗/医疗器械、medical_beauty 医美、maternal 母婴/婴幼儿配方、education 教育、finance 金融/理财/贷款/保险、realestate 房产、auto 汽车/新能源、alcohol 酒类、tobacco 电子烟/烟草、jewelry 珠宝、appliance 家电/3C、game 游戏、travel 旅游、recruitment 招聘、agriculture 农产品、pet 宠物、home_deco 家装建材、catering 餐饮、apparel 服饰、fitness 健身瘦身、franchise 招商加盟、oral_vision 口腔视力、knowledge_pay 知识付费、elderly 养老、wedding 婚庆、secondhand 二手维修
可选平台 platform(完整见 references/words/platform.json)
douyin 抖音、shipinhao 视频号、xiaohongshu 小红书、taobao 淘宝、jd 京东、kuaishou 快手、weixin_gzh 公众号、bilibili B站、pinduoduo 拼多多、dewu 得物、zhihu 知乎、weibo 微博、weixin_store 微信小店、xianyu 闲鱼、weidian 微店、meituan 美团
> 细分行业与主品类共用 category:医疗器械用 medical、新能源汽车用 auto、电子烟用 tobacco。
2. 运行词库扫描
先用脚本做第一遍匹配——精确词面 + 结构变形(正则)两类规则(结果稳定、可复核),词库会按平台与品类自动过滤:
# 单条:从文件读取
python scripts/scan.py --file copy.txt --platform douyin --category cosmetic
# 单条:直接传入文本 / 输出 JSON 或 Markdown 报告
python scripts/scan.py --text "全网最低价,点击下单"
python scripts/scan.py --file copy.txt --format json
python scripts/scan.py --file copy.txt --format markdown
# 批量:一次扫多条,输出汇总表(最需处理的排最前)
python scripts/scan.py --batch items.json --detail
python scripts/scan.py --batch items.csv --format json --out result.json
批量输入为 JSON 数组([{"id","platform","category","text"}])或 CSV/TSV(列 id,platform,category,text);模板见 templates/batch-input.json 与 templates/batch-input.csv。
若运行环境没有 Python,可跳过脚本,直接读取 references/words/ 下的词库 JSON,由模型完成词面匹配。
3. 语义层复审
脚本只做词面匹配,以下必须由模型结合语境判断,逐项对照 references/rules.md 的「语义层等价说法清单」:
- 隐含绝对化(如「遥遥领先」「无出其右」「天花板」);
- 结果 / 收益承诺(如「包过」「稳赚不赔」「月入过万」);
- 功效夸大、暗示疾病治疗(如「消炎」「排毒」「治疗失眠」);
- 诱导 / 站外引流(如「加微信」「扣 1」「好评返现」)、数据无依据、虚假紧迫。
4. 生成报告与改稿
按 templates/report.md 输出,结构为:合规评分 → 命中清单(按风险排序)→ 原文高亮 → 逐条替代表述 → 整段合规改稿。
- 单条用
--format markdown可自动生成含原文高亮(命中片段加粗)的报告; - 批量汇总会附按平台 / 按品类的风险统计,便于定位高风险的渠道或品类。
风险分级
- 高:违反《广告法》强制性条款或被平台明确禁止,必须修改。
- 中:平台审查高频拦截、存在争议,建议修改。
- 低:措辞风险提示,可选优化。
词频分级
每个词按其在违规文案中的出现与被处罚频次分为三级(freq 字段):高频 / 中频 / 低频。命中清单默认按「风险 > 频次」排序,高频词优先处理。
评分口径
以 100 分为基准,高/中/低风险分别扣 15/6/2 分(脚本默认算法)。分数只是概览,命中清单才是判断依据。
资源
- references/rules.md:法规与平台规则要点
- references/words/:词库(core 通用词 / industry 行业词 / platform 平台词 / patterns 结构变形正则 / allowlist 误报抑制白名单,可持续扩充)
- references/examples.md:改稿示例
- scripts/scan.py:词库扫描脚本(单条 + 批量)
- tests/test_scan.py:回归测试(
python tests/test_scan.py,锁定去重 / 抑制 / 白名单等关键行为) - templates/report.md:单条报告模板
- templates/batch-input.json / templates/batch-input.csv:批量输入模板
按量付费(Pay Skill,可选)
本 Skill 有两种使用方式,按场景选用:
- 本地离线(默认,免费):用
scripts/scan.py直接扫描,无需联网、无需付费; - 付费调用(服务端已部署):作为 SkillHub Pay Skill,通过 HTTP 402 按量付费调用已部署的服务端(按文案条数计费)。
服务端(卖家侧,已实现)
- server/app.py:
POST /v1/compliance/scan,未付费返回 HTTP 402 +Payment-Needed账单头,带Payment-Proof重试后验付、生成资源、履约确认并交付(复用scan.py,不改其核心逻辑); - server/metering.py:按条计量与计价(单价 / 批量分档可配);
- server/order_repository.py:订单仓储(SQLite 持久化端口,含唯一约束与事务);
- server/alipay_client.py:官方 402 协议实现(RSA2 商家签名、
Payment-Proof解析、AlipayApi真实验付/履约确认、MockAlipayApi离线); - server/requirements.txt:服务层依赖(fastapi / uvicorn / httpx / alipay-sdk-python / pycryptodome);
- .env.example / .env.production.example:环境变量示例与生产配置模板;
- docs/alipay-metered-integration.md:完整接入、入驻签约、生产部署与发布文档;
- tests/test_server.py:服务层回归测试(
python tests/test_server.py)。
pip install -r server/requirements.txt
# 本地自测(不联网,订单仍落 SQLite)
# Windows PowerShell: $env:AIPAY_MOCK="1"; uvicorn server.app:app --port 8000
# macOS/Linux: AIPAY_MOCK=1 uvicorn server.app:app --port 8000
买家侧付费调用(scripts/compliance-paid.mjs)
买家侧只做编排,不实现支付/签名、不接触密钥,支付全部委托官方 CLI:
probe 发起原始请求 → 未付款时取回 402 账单(Payment-Needed)并落地到 .state/
pay 把账单与原始请求交给官方 alipay-bot,展示金额与支付入口,等待扫码付款
complete 付款后查原订单、续用原请求取得资源(官方 CLI 取到非空资源后自动发买家回执)
依赖官方买家能力(含 alipay-bot):
npx -y @alipay/agent-payment@latest install
> 缺少 alipay-bot 时,用 ALIPAY_BOT_BIN 指定其路径。
调用示例(单次 0.01 元占位价;资源地址为占位,上线前替换为支付宝「服务注册」登记的公网 HTTPS 地址):
# 1) 取账单(未付款 → 402)
node scripts/compliance-paid.mjs probe --text "全网最低价,点击下单" --platform douyin --category cosmetic
# 2) 付款(展示金额与支付入口,扫码完成)
node scripts/compliance-paid.mjs pay --session-id <SESSION_ID>
# 3) 交付(用上一步的交易号对原订单取回结果)
node scripts/compliance-paid.mjs complete --out-shake-no <OUT_SHAKE_NO>
参数
| 参数 | 说明 | 缺省 |
|---|---|---|
--text / --texts |
单条文案 / JSON 数组批量文案 | 必填其一 |
--platform / --category |
同 CLI 扫描 | all |
--url |
业务资源 URL | PAID_RESOURCE_URL 或占位地址 |
--state-dir |
账单与请求状态目录 | .state/<session-id> |
--session-id |
官方 CLI 会话标识 | default |
--out-shake-no |
付款交易号(complete 必填) |
— |
打包要求:付费 Skill 包内不得包含密钥、.env、.state/、node_modules。密钥只由服务端通过环境变量/密钥管理注入。
未启用服务端时,本地 CLI 用法完全不受影响。
注意事项
- 词库是起始版本,法规与平台规则会变化,使用前请核对最新版本,输出不构成法律意见;
- 脚本仅作辅助,最终结论需人工复核,尤其涉及特殊品类与强监管领域;
- 同一位置命中多个词库组的相同词会自动去重,保留风险/频次最高的一条;
- 脚本会先忽略文案中的空格与换行再匹配(避免「7 天见效」这类带空格的写法漏检),极少数跨句相邻字可能误命中,请以命中上下文为准;
- 词库含
patterns.json的结构变形(正则)规则,用于覆盖枚举不到的最高级/绝对化承诺/虚假时限/极限排名/夸张网络用语等句型;命中结果用match_type区分entry(精确词)与pattern(正则); allowlist.json为误报抑制白名单(如「满五唯一」「最高人民法院」),命中词若完整落在白名单短语内将不上报;请谨慎维护,避免误放违规表述;category缺省为all,此时所有行业词库都会参与匹配(最严、不漏,但可能对跨行业文案产生少量误报);已知品类时建议显式传入;platform同理;- 报告会标注所用词库版本(
libraries),便于追溯与核对更新; - 脚本仅依赖 Python 3 标准库(argparse/csv/json/os/re/sys),无第三方依赖、不联网,可离线运行;无 Python 环境时可跳过脚本,由模型直接读取词库 JSON 匹配;
- 不要把 API 密钥等敏感信息写入任何文件。