mcpField
C
check

check

github.com/indranilbanerjee营销与增长91787 次安装2 天前更新
代码仓库

关于 check

用于发布前审查营销内容的 Claude 技能,通过评估脚本汇总问题并给出通过、警告或阻止发布的判断。支持快速检查及品牌、证据、结构和合规维度的扩展评估。

主要功能

  1. 01检测无依据陈述与占位链接
  2. 02按证据文件核验具体主张
  3. 03评估品牌语气与内容结构
  4. 04评分内容质量和可读性
  5. 05检查欧盟目标素材的 C2PA 来源

适用场景

  1. 01发布博客、广告或邮件前检查
  2. 02核对营销文案中的数据主张
  3. 03验证内容是否符合品牌语气
  4. 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 生成素材,此检查会增加合规维度。仅当以下两个条件同时满足时才会触发:

  1. 当前配置(或 --brand)的 target_markets 包含任何欧盟/欧洲经济区(EEA)司法管辖区,且
  2. 声明随附素材为 AI 生成内容——文件元数据中有此说明,或 --evidence JSON 为该素材声明了 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)。

技能的运行方式

该技能按以下流程运行:

  1. 解析输入。 如果用户提供了文件路径,则读取该文件;如果用户提供了内联内容,则使用该内容。
  2. 解析选项。 如果未指定 --brand,则尝试从当前启用的品牌配置 ~/.claude-marketing/brands/_active-brand.json 加载。如果未指定 --schema,则在内容类型明显时根据内容推断(博客 Markdown → blog_post 等),否则跳过结构检查。
  3. 构建 eval-runner 命令。 选择操作:run-quick(默认)、run-full(使用 --full)、run-compliance(使用 --compliance)。
  4. 通过 Bash 执行。
    python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-quick --file <input> [--brand <slug>] [--evidence <path>] [--schema <name>]
    
  5. 解析 JSON 输出。 提取综合评分、等级、各维度评分、警报和自动拒绝决策。
  6. 整理并呈现给用户。 展示上文所示的易读报告。首先给出决策(PASS / WARN / BLOCKED)。
  7. 如果结果为 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>

行为规则

  1. 有 CRITICAL 问题时,绝不报告 PASS。 始终报告 BLOCKED。
  2. 始终报告综合得分和等级。 即使结果为 PASS,也要指出改进空间。
  3. 始终提供可执行的建议。 每个问题都必须配有修复建议。
  4. 如果未指定,则解析当前生效的品牌。 检查 ~/.claude-marketing/brands/_active-brand.json。如果没有生效的品牌,则不使用 --brand 运行(跳过品牌语气维度)。
  5. 绝不修改内容。 此技能仅负责报告,由用户(或生成内容的 Agent)进行修复。
  6. 明确指出已跳过的维度。 如果用户未提供 --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)— 评估框架架构

评论

支持 Markdown