本文へ移動
cccskills
無料GitHub で公開

ad-compliance-review

广告公司 AI 合规审查。基于客户品牌调性与违禁词库,对广告/营销文案做合规风险审查(广告法违禁词、绝对化用语、医疗功效暗示、平台限制、品牌调性冲突)并给出修改建议。当用户需要审查广告文案、排查违禁词、做品牌合规检查,或广告/营销公司要为客户提供"上线前合规闸"服务时使用。

也适用于把合规审查封装成可售卖的 AI 功能。

インストール方法を見る

含まれるファイル(15)

  • SKILL.md18.0 KB
  • _meta.json106 B
  • _skillhub_meta.json142 B
  • CHANGELOG.md7.6 KB
  • config.example.json747 B
  • EVALUATION.md2.2 KB
  • PUBLISH_NOTES.md3.2 KB
  • references/ad_agency_kb.md2.6 KB
  • sample_data/demo_client/banned_words.md615 B
  • sample_data/demo_client/brand.md603 B
  • sample_data/demo_client/cases.md561 B
  • sample_data/demo_docs/sample_ads.txt698 B
  • scripts/generate_report.py13.2 KB
  • scripts/review.py13.8 KB
  • scripts/webapp.py14.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

广告公司 AI 合规审查

Overview

为广告 / 营销公司提供一个可复用的"文案合规审查"能力:在文案发布前,自动对照客户品牌调性与违禁词库排查风险,输出违规项清单与修改建议。该能力既可直接用于日常审稿,也可作为对客户收费的增值功能("AI 合规闸")。

When to use

  • 审查一条待发布的广告 / 营销文案是否违反广告法或平台规则
  • 排查绝对化用语(第一、最佳、顶级…)、医疗功效暗示(治疗、抗炎…)、比价绝对词(最便宜、全网最低…)
  • 校验文案是否违背某客户的品牌调性 / 禁用表达
  • 为广告客户交付"合规审查"服务,或把该功能产品化售卖

内置 demo 数据(开箱即用)

本 skill 自带一套可运行的示例客户资料,无需自备数据即可体验完整审查流程:

  • 路径:sample_data/demo_client/
  • brand.md:示例美妆客户「星澜」的品牌调性与禁用词
  • banned_words.md:违禁词表(绝对化 / 医疗功效 / 平台限制分段)
  • cases.md:历史案例素材(供进阶 RAG 使用)

直接运行即可看到效果:

python scripts/review.py --client sample_data/demo_client \
  --copy "星澜精华是市面上最好用的修护产品,治疗各类肌肤问题,全网最低价!"

预期命中:最好(绝对化)、治疗(医疗功效)、全网最低 / 最低(平台限制+绝对化),整体风险等级=高。

Core workflow

  1. 准备客户资料:在该客户目录(如 sample_data/<client>/ 或自建 data/<client>/)放两份 Markdown:
    • brand.md:品牌定位、调性、语气、禁用词(可用 Markdown 前置 tags: [品牌, 调性])
    • banned_words.md:违禁词表,按「绝对化用语 / 医疗功效暗示 / 平台特别限制」分段,词条用 、 分隔或用 「」 标注
  2. 运行审查脚本:调用 scripts/review.py,传入客户目录与待审文案,得到结构化违规报告。
  3. 解读报告:报告列出每条命中(命中词、风险类型、严重度、建议替换),并给出整体风险等级(高 / 中 / 低)。
  4. (可选)生成改写文案:若传入 config.json(含 LLM api_key),脚本会调用大模型产出"去除违规、保留原意"的改写版本。大模型调用内置自动重试:遇到网络抖动 / 限流(429)/ 5xx 等瞬时故障时,按指数退避(1×、2×、4×…)自动重试最多 max_retries 次(默认 3),仅在不可恢复错误(401/403/404 或重试耗尽)时才提示失败,避免一次网络抖动就放弃。可在 config.json 的 llm 段调 max_retries 与 retry_delay(秒,默认 1.5)。
  5. (进阶)语义级审查:结合 RAG 知识库(见 references/ad_agency_kb.md)做更细的调性 / 措辞一致性审查与改写。

Quick start(脚本)

scripts/review.py 零依赖、纯标准库,可直接运行:

# 基本审查(返回违规清单)
python scripts/review.py \
  --client sample_data/demo_client \
  --copy "星澜精华是市面上最好用的修护产品,治疗各类肌肤问题,全网最低价!"

# 输出 JSON(便于集成到系统)
python scripts/review.py --client sample_data/demo_client --copy "..." --json

# 接入大模型生成改写文案(默认国内 DeepSeek,--config 提供 key,或用环境变量 AD_REVIEW_API_KEY)
python scripts/review.py --client sample_data/demo_client --copy "..." --config config.json

# 或一键切换其他国内模型(--preset,key 走环境变量更省事)
python scripts/review.py --client sample_data/demo_client --copy "..." --preset qwen

脚本默认内置一份"绝对化 / 医疗功效"通用基线词表,并与客户 banned_words.md 合并去重;以客户自有词表为优先。

接入大模型改写(config.json)

可选。在 skill 根目录放置 config.json(参考 config.example.json)即可让 review.py --config 产出"去除违规、保留原意"的改写文案。所有字段均位于 llm 段,留空或删除整段则只做规则审查:

字段说明默认
api_key模型服务 API Key无(留空则不改写;也可用环境变量 AD_REVIEW_API_KEY)
api_base模型接口 Base URLhttps://api.deepseek.com/v1(国内默认)
chat_model对话模型名deepseek-chat(国内默认)
temperature生成温度0.2
max_retries瞬时故障最大重试次数(网络抖动/429/5xx)3
retry_delay首次重试间隔(秒,指数退避基准)1.5

默认已按**国内模型(DeepSeek)**配置,开箱即用;换其他国内模型用 --preset 更快捷(见下方)。

国内模型一键适配(v1.4.0)

默认配置即国内模型,复制 config.example.json 为 config.json 填 key 即可用 DeepSeek,无需任何海外服务。若要换其他国内大模型,两种方式任选:

方式 A:命令行 --preset(最省事,不用改文件)

# 用 DeepSeek(默认)
python scripts/review.py --client sample_data/demo_client --copy "..." --preset deepseek

# 用通义千问 / 智谱 / 腾讯混元 / 豆包 / Kimi / 硅基流动
python scripts/review.py --client sample_data/demo_client --copy "..." --preset qwen
python scripts/review.py --client sample_data/demo_client --copy "..." --preset zhipu
python scripts/review.py --client sample_data/demo_client --copy "..." --preset hunyuan
python scripts/review.py --client sample_data/demo_client --copy "..." --preset doubao
python scripts/review.py --client sample_data/demo_client --copy "..." --preset kimi
python scripts/review.py --client sample_data/demo_client --copy "..." --preset siliconflow

# 列出所有内置预设及其端点 / 默认模型
python scripts/review.py --list-presets

--preset 仅自动填 api_base 与 chat_model,API Key 仍从 config.json 或环境变量 AD_REVIEW_API_KEY 读取(密钥不落盘更安心)。

方式 B:在 config.json 的 llm 段手动填 api_base / chat_model(参考上面参数表默认值)。

内置预设一览

预设名服务商默认模型api_base
deepseek深度求索deepseek-chathttps://api.deepseek.com/v1
qwen阿里通义千问qwen-plushttps://dashscope.aliyuncs.com/compatible-mode/v1
zhipu智谱 GLMglm-4-flashhttps://open.bigmodel.cn/api/paas/v4
hunyuan腾讯混元hunyuan-turbohttps://api.hunyuan.cloud.tencent.com/v1
doubao字节豆包(火山方舟)doubao-seed-1.6-250615https://ark.cn-beijing.volces.com/api/v3
kimi月之暗面moonshot-v1-8khttps://api.moonshot.cn/v1
siliconflow硅基流动(聚合)deepseek-ai/DeepSeek-V3https://api.siliconflow.cn/v1

注:以上均为 OpenAI 兼容端点,review.py 直接调用其 /chat/completions,无需额外依赖。豆包(火山方舟)的 chat_model 需替换为你方舟控制台的实际接入点 ID;其余预设的默认模型一般可直接用,也可在 config.json 覆盖。

版本与变更详见 CHANGELOG.md。

风险等级判定

  • 高:命中绝对化用语或医疗功效暗示(广告法高风险,易被罚 / 被下架)
  • 中:命中品牌禁用词或平台特别限制(违规但风险相对可控)
  • 低 / 通过:未命中任何词条

给客户的卖点话术

我们交付的不只是文案,还有一道 AI 合规闸——上线前自动比对《广告法》与贵司品牌红线,把违规风险挡在发布之前。

合规风险报告生成器(获客钩子)

scripts/generate_report.py 可批量扫描客户历史文案目录,自动产出一份可发给客户的 HTML 合规体检报告——含风险概览、等级分布饼图、违规类型柱状图、高频违规词与逐条文案明细。把报告发给客户,用他自己的风险数据打动他,是天然的获客钩子。报告含「打印 / 另存为 PDF」按钮,零依赖、可在任意机器生成。

# 扫描客户历史文案目录,生成体检报告
python scripts/generate_report.py \
  --client sample_data/demo_client \
  --docs sample_data/demo_docs \
  --name "星澜美妆" \
  --out report.html

# 整文件作为一条文案(而非按行拆分)时加 --no-line-mode
  • --client:客户资料目录(审查依据,同 review.py)
  • --docs:历史文案目录或文件;默认每行一条,目录支持 .txt/.md
  • --name:报告抬头客户名
  • --out:输出 HTML(浏览器打开后可打印为 PDF)
  • 内置示例:sample_data/demo_docs/sample_ads.txt(8 条文案,可直接试跑)

在线自助提交页(完全自助获客)

scripts/webapp.py 是一个零依赖的 Web 服务:把 skill 部署到一台机器(或内网),把网址发给客户,客户自己打开网页、上传历史文案目录(或粘贴),自动生成并下载合规体检报告——全程无需你们人工介入,是成本趋近于零的获客钩子。

# 启动在线提交页(默认 8000 端口)
python scripts/webapp.py --port 8000
# 用专属客户词库启动(路径会显式校验,不存在/错配将报错退出)
python scripts/webapp.py --client sample_data/demo_client --port 8000
# 浏览器打开 http://127.0.0.1:8000
  • 客户可「选择整个文件夹」(.txt/.md,每行一条)或手动多选文件,也支持直接粘贴文案
  • 默认使用内置通用广告法基线词库(sample_data/demo_client)做审查;加 --client <客户目录> 可切换为专属词库;报告末尾引导客户接入专属词库
  • 复用 review.py + generate_report.py,零第三方依赖,任意装了 Python 的机器即可运行
  • 部署建议:放一台常驻小服务器(或内网/云主机),把链接放进官网「免费体检」入口或销售邮件

打包为可售卖功能

  1. 把 review.py 接入客户的投稿 / 审核系统(Web 表单或 API)。
  2. 每份客户资料独立成租户,资料隔离(参考 references/ad_agency_kb.md 的权限隔离设计)。
  3. 输出报告可导出为 PDF / 工单,作为交付物向客户收费。

反模式与 FAQ(遇到麻烦先看这节)

本能力默认是关键词 + 正则的规则匹配(零依赖、纯标准库),不是大模型语义理解。下列每一条都对应脚本的真实行为,踩过就知道为什么。

反模式(别这样用)

  1. 别指望它会"读懂"语义 —— 默认扫描是词库命中 + "最X"正则,换说法的违规(如"效果惊人""远超同类")查不出。要语义级改写须加 --config 接入大模型(但扫描本身仍基于词库,不会变语义)。
  2. 别把 --client 指错路径或指成文件 —— review.py / generate_report.py 的 --client 必须是含 banned_words.md 与 brand.md 的目录。脚本现已显式校验:路径不存在或指向文件时直接报错退出(退出码 2)并说明原因;目录存在但缺少客户词表时打印明确【警告】后回退内置基线(不再静默)。仍建议用绝对路径并确认目录里有 banned_words.md / brand.md。
  3. 别在 webapp 里期待"按客户专属词库"审查 —— webapp.py 默认使用内置 demo_client 做通用基线审查,且不含大模型改写;如需在自助页用专属词库,启动时可加 --client <客户目录>(同样会显式校验路径)。它定位是"免费通用体检 / 获客钩子"。真正的客户专属审查请用 review.py / generate_report.py --client <客户目录>。
  4. 别把整篇长文当一条文案 —— generate_report.py 默认"每行一条"。一条广告跨多行、或多条文案堆在一个 .txt 里,会被拆成碎片、上下文断裂。单条多行广告请加 --no-line-mode(整文件为一条)。
  5. 别把 .docx / .pdf / 图片 直接丢进来 —— 只认 .txt / .md(webapp 也只收这两类)。Word / PDF 需先导出为纯文本,否则目录模式读到 0 条会直接退出。
  6. 别把品牌禁用词写在没含"禁用词"三字的行里 —— brand.md 只解析含"禁用词"字样的行里的词条;放别处会被忽略。
  7. 别把违禁词写成"孤行无分隔符" —— banned_words.md 中一行要被识别,需含 、 或 , 或"严禁"且长度 < 120;单独一行只写"第一"不会被加载。建议用「」标注或用 、 分隔。
  8. 别以为报告能替代人工终审 / 法律意见 —— 工具是辅助闸;广告法、平台规则动态变化,词库需持续维护;高风险项仍需人工确认。
  9. 别指望 webapp 自动持久化或带鉴权 —— 它无状态、无登录、无数据库,重启即失;公网部署需自行加反向代理 / 鉴权 / HTTPS。
  10. 别过度信任"疑似绝对化"启发式 —— "最X"正则只匹配"最 + 1 个汉字"("最优"能命中,"最最棒"等变体或复合说法可能漏),其余靠内置词表。

FAQ(常见问题)

问题原因解决
为什么有些明显违规没查出来?默认是关键词/正则匹配,换说法的词库里没有就会漏把漏掉的说法补进客户 banned_words.md;或接大模型做语义改写(仅改写,扫描仍基于词库)
为什么报告里没有"改写建议"?只有 review.py 在传 --config(含有效 api_key)时才生成改写;webapp / generate_report 默认不调大模型用 review.py --config config.json 产出带改写的审查
为什么配了客户词库,审查结果却和 demo 一样?旧版脚本在 --client 路径指错时会静默回退内置基线;v1.3.0 起已改为显式报错:先确认是否看到【错误】/【警告】输出,再用绝对路径,确认目录里有 banned_words.md / brand.md;用 --json 核对返回里的 client_warning 字段与命中是否来自"客户"分类
上传文件夹后提示"未发现可分析的文案"?文件夹里只有 .docx/.pdf 等非文本,或文件被浏览器拦截导出成 .txt 再传,或直接粘贴文案(每行一条)
报告里出现"异常"等级是坏了吗?某条文案编码损坏/超长导致扫描失败不是。该条单独标"异常"并说明,其余正常出报告;建议单独复核或重提这部分
提交时报"提交内容过大"?单次上传超 3MB 上限分批次上传,或先清理超大文件(长日志、整本书等)
点"生成报告"一直转圈 / 报"无法连接到服务"?后端 webapp.py 没在运行,或网络/代理阻断确认已执行 python webapp.py --port 8000 且无报错;检查防火墙/端口映射(公网需端口转发或反向代理)
接自己的大模型改写报 401 / 403 / 429?401/403=Key 无效或未授权;404=api_base/chat_model 不匹配;429=限流核对 config.json;详见脚本的人话提示(401/403 鉴权、404 地址、429 限流、网络不可达)
想让不同客户资料完全隔离(不串味)?webapp 是通用版不隔离每个客户用独立 --client 目录(租户隔离);生产化参考 references/ad_agency_kb.md 的权限隔离设计
这个词库要一直维护吗?广告法、各平台规则会变要定期更新,这也是持续收费/维护的钩子

质量评测记录

真实使用评测与异常处理验证,详见 EVALUATION.md。摘要:

  • 异常处理 4.3(2026-07-21):路径错误 / 词库缺失 / 网络限流均有明确提示,无"看不懂的错误代码"。
  • 历次评分:功能完善性 4.8、运行稳定性 4.3、国内适配性 4.3 等,均已对应版本修复 / 改进(见 CHANGELOG)。

Resources

scripts/

  • review.py:核心审查脚本,零依赖,支持 --client / --copy / --json / --config。--client 路径显式校验(不存在/非目录直接报错,缺词表明确告警);模型调用失败时按错误类型给出人话提示(401/403 鉴权、404 地址、429 限流、网络不可达),而非原始报错;并对网络抖动/限流/5xx 自动重试(指数退避)。
  • generate_report.py:批量报告生成器,零依赖,输入历史文案目录产出可发客户的 HTML 合规体检报告;单条文案数据异常时仅标注该条为「异常」,不拖垮整份报告。
  • webapp.py:在线自助提交页,零依赖 Web 服务(http.server),客户自助上传文案生成报告;支持 --client <客户目录> 切换专属词库,并对客户目录做与 CLI 一致的显式校验(不存在/非目录报错退出,缺词表告警);所有异常(空文案 / 坏数据 / 提交过大 / 分析异常 / 服务中断)均返回带「可能原因 + 建议操作」的友好页面,前端网络中断也有清晰提示。

references/

  • ad_agency_kb.md:广告公司 AI 知识库(RAG)脚手架说明,介绍如何把本审查能力升级为带语义检索的多客户知识库与权限隔离架构。

交付与版本

  • config.example.json:客户自助配置模板(含 llm 段全部字段与说明)。
  • CHANGELOG.md:版本变更与升级指引(当前 v1.4.1)。
  • EVALUATION.md:质量评测记录(历次维度评分与原文)。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

中国大陆地区法院类案快速检索与《案件检索报告》(DOCX)生成技能。以案件五项要点(案由/法律关系、争议焦点、关键事实、我方诉请与诉讼地位、请求权基础法条)为检索锚点,经一次四问确认即开工(其中**检索地域范围**与**裁判时间范围**为强制选择题,默认范围为「2021年1月1日以后裁判的浙江省范围内的法院案例」,用户点选默认后须回显该范围提示);按**请求权基础、法律关系、案件事实三要素**判定高匹配——用户**指定**检索特定结果的案例时结果相似度计入评分(四要素满分 10 分),用户**未指定**时结果相似度不作为高匹配考虑因素(三要素满分 8 分);r1 判定须**核对法条版本与时间效力**,援引已失效旧法条者不得给满分;以语义向量检索为主召回、精确结构检索为条件兜底,本地脚本加权打分后按「得分率 > 法院层级 > 审判程序 > 裁判日期」排序,并检测**同院同日同标题的重复入库**案件、疑似重复者不占入报名额;截取匹配度最高的 5–10 例类案,逐案调详情核验案号并摘录判词原文,最后直接输出含页脚页码的 DOCX 报告(默认保存至桌面)。全流程人工确认 1 次、检索类调用控制在 2 次召回 + ≤10 次详情以内,报告阶段检索冻结。未指定结果时三要素高匹配而结果相反者亦会入报(逐例标注结果方向),指定结果时结果相反者一律剔除;报告内以两处固定声明披露「未设不利先例定向检索路径」的局限。当用户要求「快速检索类似案例」「找几个正向案例」「快速版案例检索报告」「检索 5 到 10 个类案并出报告」「出一份类案检索报告 docx」时使用。需要四象限归位、反向案例定向检索、补充召回多轮迭代或 14 分制硬软条件精判时,应使用完整版技能「案例检索报告Plus」而非本技能。基于华宇元典法律数据 MCP。

日本語の概要は準備中です。原文の説明を表示しています。

CSlawyer1985/legal-skillhub152026年9月23日 更新

88查企业风险查询与分析工具 —— 专注于中国大陆企业的法务风险查询与分析,覆盖经营异常、行政处罚、监管措施、被执行人、失信被执行人、司法案件等风险类型。支持公司名称、统一社会信用代码、companyId 三种输入方式,自动完成风险查询并输出结构化风险分析总结。 触发场景:仅当用户意图为查询企业风险/法务风险时触发。包括但不限于:企业风险查询、公司风险、经营异常、行政处罚、监管措施、被执行人、失信被执行人、司法风险、风险扫描、风险评估、企业合规审查、风险报告、XX公司有什么风险、XX公司安全吗、XX公司有没有处罚、XX公司被执行过吗。 不触发场景:纯粹的企业信息查询(如查公司、搜企业、工商信息、注册资本、法人代表、股东结构、专利商标等)不应触发本技能,请使用其他 cha88 系列工具。

日本語の概要は準備中です。原文の説明を表示しています。

CSlawyer1985/legal-skillhub152026年9月23日 更新

Manages Rule 30(b)(6) corporate representative deposition workflows — drafting notice topics with reasonable particularity, building examination outlines, defending designees, handling objections, and preserving binding admissions for summary judgment or trial. Use when drafting or responding to 30(b)(6) notices, selecting and preparing designees, building topic-by-topic outlines, or triaging scope and privilege disputes. Trigger keywords: 30(b)(6), corporate representative deposition, topic list, designee, notice analysis, deposition objections, corporate admissions.

日本語の概要は準備中です。原文の説明を表示しています。

CSlawyer1985/legal-skillhub152026年9月23日 更新

Guides taking and defending Rule 30(b)(6) corporate representative depositions. Drafts topic lists with reasonable particularity, builds examination outlines for binding corporate admissions, analyzes noticed topics for objections, and prepares designees. Use when drafting 30(b)(6) notices, preparing corporate deposition topics, selecting or preparing designees, or defending corporate representative depositions.

日本語の概要は準備中です。原文の説明を表示しています。

CSlawyer1985/legal-skillhub152026年9月23日 更新

Drafts FDA 510(k) Premarket Notification submissions demonstrating substantial equivalence under 21 CFR Part 807. Supports Traditional, Special, and Abbreviated pathways. Use when preparing Class II medical device regulatory filings, substantial equivalence analyses, or FDA premarket submissions.

日本語の概要は準備中です。原文の説明を表示しています。

CSlawyer1985/legal-skillhub152026年9月23日 更新

Drafts a recordable Abstract of Judgment to create a judgment lien on a debtor's real property. Extracts party names, monetary components, and judgment details from case documents, then applies jurisdiction-specific formatting and certification requirements. Use post-judgment in commercial litigation when enforcing monetary awards, perfecting judgment liens, or preparing lien filings with the county recorder.

日本語の概要は準備中です。原文の説明を表示しています。

CSlawyer1985/legal-skillhub152026年9月23日 更新

CSlawyer1985 のスキルをすべて見る

このスキルの問題を報告する