关于 check
用于发布前审查营销内容的 Claude 技能,通过评估脚本汇总问题并给出通过、警告或阻止发布的判断。支持快速检查及品牌、证据、结构和合规维度的扩展评估。
主要功能
- 01检测无依据陈述与占位链接
- 02按证据文件核验具体主张
- 03评估品牌语气与内容结构
- 04评分内容质量和可读性
- 05检查欧盟目标素材的 C2PA 来源
适用场景
- 01发布博客、广告或邮件前检查
- 02核对营销文案中的数据主张
- 03验证内容是否符合品牌语气
- 04检查欧盟投放的 AI 生成素材
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ indranilbanerjee/ digital-marketing-pro --skill check安装后在 Claude Code 中输入/check确认已加载。
详细介绍
/digital-marketing-pro:check — 发布前统一质量门槛
脚本位置。 如果你的宿主未设置
${CLAUDE_PLUGIN_ROOT},脚本位于此插件的scripts/文件夹中,与skills/同级。请使用 Python 3.10 或更高版本运行:使用python;如果找不到python,则使用python3(macOS 和许多 Linux 系统)。
此技能是营销内容发布前的标准质量门槛。它封装了评估套件(scripts/eval-runner.py),并生成一项通过/未通过判定,同时提供可执行的改进建议。
上下文效率
此技能较复杂。读取任何引用的文件前,先用 Grep 搜索,然后仅用 offset + limit 读取匹配范围。打开文件前,先列出品牌的工作区,路径为 ~/.claude-marketing/brands/{slug}/(如果设置了该环境变量,则为 $CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/)。在会话中途重新调用时,跳过已在上下文中的文件。
在发布任何营销内容前使用此技能——包括博客文章、广告文案、电子邮件、社交媒体帖子、着陆页、新闻稿或任何品牌文案。
此技能的作用
此技能的早期版本曾推出一个全局 PreToolUse 钩子,在每个项目中对每次 Write/Edit 操作自动运行幻觉 + 品牌合规检查。由于该钩子会在所有插件和项目中全局触发(包括 Slack 写入、GitHub PR、代码编辑等),给非营销工作带来阻碍,因此已被移除。
/digital-marketing-pro:check 以由用户主动调用的显式门槛取代了自动门槛。执行的工作相同;触发方式则由用户主动决定。
检查评估的内容
检查会委托给 scripts/eval-runner.py(主评估编排脚本),由它调用四个同级脚本:
| 维度 | 脚本 | 检查内容 |
|---|---|---|
| 幻觉 | hallucination-detector.py | 未注明来源的统计数据、占位符 URL(example.com / your-site.com)、缺乏依据的最高级表述(“最佳”“#1”“领先”)、伪造的引文 |
| 声明 | claim-verifier.py(提供 --evidence 时) | 根据用户提供的证据文件交叉核对具体声明 |
| 品牌语气 | brand-voice-scorer.py(提供 --brand 时) | 根据当前品牌的语气档案对内容评分(正式程度、活力、幽默、权威感、偏好/避免使用的词语) |
| 结构 | output-validator.py(提供 --schema 时) | 验证内容是否符合预期结构(blog_post、email、ad_copy、social_post、landing_page、press_release、content_brief、campaign_plan) |
| C2PA 来源(合规性) | embed-c2pa.py(存在性检查) | 当品牌的 target_markets 包含欧盟/欧洲经济区司法管辖区,且配套素材由 AI 生成时:验证是否存在有效的 C2PA 来源清单。清单缺失或无效 → CRITICAL / BLOCKED(《欧盟 AI 法案》第 50 条,自 2026 年 8 月 2 日起适用) |
此外,还会始终运行内容质量和可读性评分。
子命令和模式
默认(run-quick)
/digital-marketing-pro:check <file-path-or-content>
运行快速评估:幻觉检测 + 内容质量 + 可读性。速度快(约 2 秒),无需外部依赖。适用于常规检查。
完整评估(run-full)
/digital-marketing-pro:check <file-path-or-content> --full
运行全部 6 个维度:幻觉 + 声明(提供证据时)+ 品牌语气(提供品牌时)+ 结构(提供结构定义时)+ 内容质量 + 可读性。发布面向客户或外部的内容前使用。
以合规为重点(run-compliance)
/digital-marketing-pro:check <file-path-or-content> --compliance --brand <slug> [--evidence <path>] [--schema <name>]
运行幻觉 + 声明 + 品牌语气 + 结构。最适用于医疗保健、金融服务、酒类、大麻、赌博等受监管行业,在这些行业中,声明依据和品牌语气的一致性最为重要。
使用证据文件
/digital-marketing-pro:check <file-path> --evidence <evidence-file.json>
如果内容包含你希望提供依据的具体声明,请提供 JSON 证据文件:
{
"evidence": [
{
"claim": "50% increase in conversions",
"source": "GA4 Q4 report",
"date": "2025-12-31",
"verified": true
},
{
"claim": "Trusted by Fortune 500 companies",
"source": "Customer roster (internal)",
"date": "2026-04-01",
"verified": true
}
]
}
检查会从内容中提取每项声明,并标记任何与证据条目不匹配的声明。
带架构验证
/digital-marketing-pro:check <file-path> --schema blog_post
验证内容是否符合指定架构的结构要求。可用架构:blog_post、email、ad_copy、social_post、landing_page、press_release、content_brief、campaign_plan。使用 --schema list 查看所有架构及其要求。
带品牌语气检查
/digital-marketing-pro:check <file-path> --brand acme
根据 ~/.claude-marketing/brands/acme/profile.json 中的品牌语气配置文件为内容评分。报告各维度的细分结果(正式程度、活力、幽默感、权威感),以及与偏好/规避词列表的偏差。
输出格式
检查会返回一份综合报告:
DM CHECK REPORT — <file or content snippet>
=============================================
Composite Score: 73.4 / 100 (Grade: B-)
Auto-Reject: NO
Dimensions:
Hallucination ............ 96/100 PASS (weight 0.40)
Content Quality .......... 78/100 PASS (weight 0.35)
Readability .............. 65/100 PASS (weight 0.25)
Issues Found:
CRITICAL: None
WARNING (2):
- Line 14: Unattributed statistic "76% of buyers prefer..."
Suggestion: cite source or rephrase as observation
- Line 22: Superlative "best in class" without substantiation
Suggestion: replace with measurable claim or proof point
Decision: PASS — safe to publish but address WARNINGs first
如果发现任何 CRITICAL 问题,decision = BLOCKED,并要求用户在发布前修复。
决策规则
- PASS — 没有 CRITICAL 问题,且综合评分高于自动拒绝阈值(
auto_reject_threshold,默认值为 40) - WARN — 没有 CRITICAL 问题,但至少有一个 WARNING;用户应在发布前处理该问题
- BLOCKED — 至少有一个 CRITICAL 问题(例如占位 URL、标题中捏造的统计数据、受监管行业缺少必需免责声明、面向欧盟的营销活动中 AI 生成素材缺少 C2PA 来源清单);修复前无法发布内容
AI 特征扫描(建议性部分,绝不计分)
除 eval-runner 评分器外,还要运行两项特征扫描,并将其作为检查输出中的单个 ADVISORY 部分进行报告:
python "${CLAUDE_PLUGIN_ROOT}/scripts/ai-tell-scan.py" --file <input> # Tier 1: surface
python "${CLAUDE_PLUGIN_ROOT}/scripts/structural-tell-scan.py" --file <input> # Tier 2: structure
- Tier 1(表层) — LLM 偏好的词汇、重要性标记、弱化语气副词群、连接词和分词短语开头、破折号密度、缺乏依据的单句。报告总体 LOW/MODERATE/HIGH 评级,以及带有建议修复方法的标记句子。重要性标记应报告
"fix": "Delete this sentence; do not reword it."——原样传递,因为改写并非正确的处理方法。 - Tier 2(结构) — 总体 OK/NOTE/ATTENTION 等级,以及每项 NOTE/ATTENTION 发现及其跨度(说教、章节对称、并列标题、具体性、立场、段落均匀度、实体展开)。对于
entity_development,务必保留这样的修复说明:应展开已有的具体内容,而不是删除具体内容。
本部分完全不会影响 PASS/WARN/BLOCKED 决策。 两个脚本都将阈值保留在自身内部,刻意不纳入 eval 配置,因为这些是供人工编辑判断的编辑性评估,而非发布门槛;此外,检测器代理在真正由人类撰写的文本上确实存在误报率。(特征扫描中唯一会设置门槛的地方是 content-engine 的 humanize_passed,且仅针对两项精确到足以设为门槛的特征:significance_marker 和 soft_adverb_cluster。llm_favored_word 于 2026-08-15 从该集合中移除,因为测量结果显示,它只会在 ChatGPT 出现之前发布的文本中触发,从不在模型生成文本中触发。该门槛是一个密度下限——测量结果显示,它不会使任何已发布的人类文本失败,也无法捕捉任何未经编辑的模型文本——因此,绝不要将通过结果报告为文本读起来像人类所写的证据。)两项扫描都只测量可见文本;它们都无法识别任何统计水印,也与任何统计水印无关。
欧盟《人工智能法案》第 50 条 — C2PA 来源验证门禁
对于面向欧盟市场的营销活动中的 AI 生成素材,此检查会增加合规维度。仅当以下两个条件同时满足时才会触发:
- 当前配置(或
--brand)的target_markets包含任何欧盟/欧洲经济区(EEA)司法管辖区,且 - 声明随附素材为 AI 生成内容——文件元数据中有此说明,或
--evidenceJSON 为该素材声明了ai_generated: true。
满足这两个条件时,门禁会使用 python "${CLAUDE_PLUGIN_ROOT}/scripts/embed-c2pa.py" --verify <asset> 以只读方式检查素材:退出码 0 = 清单存在且有效(自签名开发签名者会报告为 untrusted_signer,而非验证失败);退出码 6 = 无清单;退出码 7 = 清单未通过验证;退出码 2 = 未安装 c2pa-python(将该维度报告为 SKIPPED,并显示打印出的安装命令;绝不可将其标记为 PASS)。**C2PA 来源验证清单缺失或无效(退出码 6 或 7)属于 CRITICAL 问题 → 决策 = BLOCKED。**第 50 条自 2026 年 8 月 2 日起适用(罚款最高可达 1,500 万欧元或全球营业额的 3%)。如需嵌入符合要求的清单,请运行 /digital-marketing-pro:c2pa-metadata。
如果脚本清单中没有 embed-c2pa.py,或无法解析该素材,则将此维度标记为 SKIPPED 并发出警告(绝不可对欧盟 AI 素材检查静默标记为 PASS)。
技能的运行方式
该技能按以下流程运行:
- 解析输入。 如果用户提供了文件路径,则读取该文件;如果用户提供了内联内容,则使用该内容。
- 解析选项。 如果未指定
--brand,则尝试从当前启用的品牌配置~/.claude-marketing/brands/_active-brand.json加载。如果未指定--schema,则在内容类型明显时根据内容推断(博客 Markdown →blog_post等),否则跳过结构检查。 - 构建 eval-runner 命令。 选择操作:
run-quick(默认)、run-full(使用--full)、run-compliance(使用--compliance)。 - 通过 Bash 执行。
python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-quick --file <input> [--brand <slug>] [--evidence <path>] [--schema <name>] - 解析 JSON 输出。 提取综合评分、等级、各维度评分、警报和自动拒绝决策。
- 整理并呈现给用户。 展示上文所示的易读报告。首先给出决策(PASS / WARN / BLOCKED)。
- 如果结果为 BLOCKED,则拒绝建议发布。 始终要求用户先解决 CRITICAL 问题,再继续操作。
调用的脚本
scripts/eval-runner.py— 主控脚本scripts/hallucination-detector.py— 由 eval-runner 调用scripts/claim-verifier.py— 提供--evidence时由 eval-runner 调用scripts/brand-voice-scorer.py— 提供--brand时由 eval-runner 调用scripts/output-validator.py— 提供--schema时由 eval-runner 调用scripts/content-scorer.py— 由 eval-runner 调用scripts/readability-analyzer.py— 由 eval-runner 调用scripts/embed-c2pa.py— 用于欧盟《人工智能法案》第 50 条 C2PA 门禁的存在性/验证检查(仅当面向欧盟市场的品牌有 AI 生成素材时)
所有脚本仅使用标准库(brand-voice-scorer 可选使用 nltk)。不会调用外部 API,也不需要互联网连接。
示例
示例 1:快速检查草稿
User: /digital-marketing-pro:check drafts/q2-launch-blog.md
Skill:
1. Read drafts/q2-launch-blog.md
2. Run python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-quick --file drafts/q2-launch-blog.md
3. Parse JSON output:
composite_score: 81.2, grade: B+, auto_rejected: false
hallucination: 92/100 pass, content_quality: 76/100 pass, readability: 84/100 pass
alerts: 1 warning ("unattributed stat in line 14")
4. Format report:
DM CHECK REPORT — drafts/q2-launch-blog.md
============================================
Composite Score: 81.2 / 100 (Grade: B+)
Decision: PASS
Dimensions:
Hallucination ......... 92/100 pass
Content Quality ....... 76/100 pass
Readability ........... 84/100 pass
Issues Found:
WARNING (1):
- Line 14: Unattributed statistic "76% of marketers say..."
Suggestion: cite source or rephrase as observation
Decision: PASS — safe to publish; recommend addressing the WARNING first.
示例 2:使用品牌、证据和架构进行完整评估
User: /digital-marketing-pro:check drafts/healthcare-ad.md --full --brand healthfirst --evidence facts/q2-claims.json --schema ad_copy
Skill:
1. Read drafts/healthcare-ad.md
2. Run python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-full --file drafts/healthcare-ad.md --brand healthfirst --evidence facts/q2-claims.json --schema ad_copy
3. Parse JSON output. Composite: 58.4, grade: D+, auto_rejected: true
4. Format report with CRITICAL issues highlighted
5. Decision: BLOCKED. Two unattributed health claims need substantiation before this can publish.
示例 3:对受监管内容进行合规检查
User: /digital-marketing-pro:check drafts/financial-services-landing.md --compliance --brand finadvisor --evidence facts/finra-disclosures.json
Skill:
1. Read content
2. Run python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-compliance --file drafts/financial-services-landing.md --brand finadvisor --evidence facts/finra-disclosures.json
3. Output prioritises hallucination + claim verification + brand voice + structure
4. Returns decision with FINRA-relevant issues highlighted
示例 4:快速检查内联内容
User: /digital-marketing-pro:check "Our amazing product boosts conversion by 347% — visit example.com today!"
Skill:
1. Detect inline content (not a file path)
2. Write content to a temp file
3. Run quick eval
4. Report:
CRITICAL: 2
- Placeholder URL "example.com" — replace with real URL before publishing
- Unattributed statistic "347%" — fabricated stat or missing citation
Decision: BLOCKED
何时使用哪种模式
| 场景 | 推荐模式 |
|---|---|
| 起草期间的常规内容检查 | /digital-marketing-pro:check <file>(快速) |
| 发布任何外部内容之前 | /digital-marketing-pro:check <file> --full --brand <slug> |
| 受监管行业的内容(医疗保健/金融/酒类/大麻/赌博) | /digital-marketing-pro:check <file> --compliance --brand <slug> --evidence <facts> |
| 面向客户的交付物(Growth Plan、Yearly Planner、月度报告) | /digital-marketing-pro:check <file> --full --brand <slug> |
| 广告文案 | /digital-marketing-pro:check <file> --schema ad_copy --brand <slug> |
| 电子邮件 | /digital-marketing-pro:check <file> --schema email --brand <slug> |
| 博客文章 | /digital-marketing-pro:check <file> --schema blog_post --brand <slug> |
行为规则
- 有 CRITICAL 问题时,绝不报告 PASS。 始终报告 BLOCKED。
- 始终报告综合得分和等级。 即使结果为 PASS,也要指出改进空间。
- 始终提供可执行的建议。 每个问题都必须配有修复建议。
- 如果未指定,则解析当前生效的品牌。 检查
~/.claude-marketing/brands/_active-brand.json。如果没有生效的品牌,则不使用--brand运行(跳过品牌语气维度)。 - 绝不修改内容。 此技能仅负责报告,由用户(或生成内容的 Agent)进行修复。
- 明确指出已跳过的维度。 如果用户未提供
--evidence或--schema,请注明跳过了对应维度。
相关技能和命令
/digital-marketing-pro:engagement growth-plan— 生成第 8 部分交付物;交付客户之前,应使用/digital-marketing-pro:check --full --schema content_brief检查/digital-marketing-pro:content-engine— 生成营销内容;推荐工作流为/digital-marketing-pro:content-engine→ 审核 →/digital-marketing-pro:check→ 发布/digital-marketing-pro:eval-content— 指向此技能的旧版别名
相关参考资料
scripts/eval-runner.py— 此技能封装的主编排器skills/context-engine/eval-framework-guide.md— 完整的评估框架文档skills/context-engine/eval-rubrics.md— 各维度的评分标准docs/architecture.md第 16 节(Evaluation Layer)— 评估框架架构