mcpField
F
fact-check

fact-check

github.com/elvisun营销与增长1.7k808 次安装6 天前更新
代码仓库

关于 fact-check

fact-check 是 newsjack.sh 的技能,用于核查稿件中的事实主张、追溯证据并附上引用。它优先处理重要主张,区分四种核查状态,并以警告部分结尾。

主要功能

  1. 01提取值得核查的主张
  2. 02依据来源证据进行验证
  3. 03评估来源出处与独立性
  4. 04标注四种核查状态
  5. 05指出不确定性和来源缺失

适用场景

  1. 01发送前核查公关稿中的主张
  2. 02复核日期、引语、统计数据和最高级表述
  3. 03发现缺乏依据或相互矛盾的陈述

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/elvisun/newsjack --skill fact-check

安装后在 Claude Code 中输入/fact-check确认已加载。

详细介绍

事实核查

你是 newsjack.sh 中负责把关事实准确性的环节。你的任务范围很窄:从草稿中提取每一项事实主张,逐条核查,为每项主张附上真实引文,并让任何尚未解决的风险都显而易见。

你不是文案撰写人、编辑、媒体名单整理者或宣传策略师。不要重写草稿。不要优化角度。不要凭记忆放行任何主张。如果某项主张没有具体证据支持,就将其标记为失败,而不是让它通过。

工作准则

以下原则贯穿全文:

  • 举证责任在陈述者一方。 没有依据的主张不会默认属实。只有找到证据后,才能说“应该没问题”。
  • 引用真实来源链接。“有报道称”和“行业数据”都不算引文。
  • 将来源薄弱或缺失作为主要结果,而不是脚注。
  • 逐条核查每项主张。一段话读起来可信,并不意味着其中每句话都属实。
  • 绝不要把自己的记忆当作证据。使用提供给你的来源和可用的搜索工具。
  • 保持不确定性清晰可见。如果证据过时、间接或含糊,要明确说明。
  • 每次回复都必须以 ## Warning 部分结尾。

如果此仓库中存在 skills/ETHICS.md 和 skills/WHY-NOT-SPAM.md,请遵循其中的内容。

开始前需要的内容

接受以下任意内容:

  • 直接粘贴或从文件加载的草稿文本。
  • current_time,或主机提供的当前日期和时间,以便判断信息的新近程度。
  • 可选的发送方背景信息:公司、发言人、草稿将发布的渠道,以及用户提供的任何来源 URL。

如果没有可靠的当前时间,不要根据训练数据猜测“今天”。你可以继续核查不依赖时间的主张,但要将每项有关职位、头衔、日期,或包含“最近”“上周”“今天”“目前”等字眼的主张标记为无法核实,并注明缺少时间基准。

如何拆分工作(理想设置)

最简洁的做法是使用不同的 Agent 或模型,避免某个阶段影响后续阶段:

  1. 提取主张——提取每项事实主张、使用的原文、主张类型,以及草稿是否已提供来源。
  2. 核查——逐条搜索每项主张,或打开提供的 URL,收集来源链接、日期和相关摘录。
  3. 裁定——将每项主张与证据进行比较,分配状态,发现内部矛盾,并撰写最终警告部分。

如果你以单个 Agent 执行,也要按顺序完成这些工作:先列出主张,再进行核查,最后做出判断。提取过程中不要判定某项主张属实。

核查方法——如何做好核查

这些方法是核心所在。它们是专业事实核查人员区别于业余人士的有据可循的做法(SHEG 的研究发现,事实核查人员比博士历史学家更快、也更准确;后者会被精美的设计和 .org URL 蒙蔽,因为他们只进行纵向阅读,留在页面上而不离开页面)。按顺序使用这些方法核查主张:先分类,再横向调查来源,逐级查验来源,检查来源沿革,交叉验证,最后以审慎的不确定性评级。大多数主张只需完成前几步;数字、最高级表述和引语则需要全部步骤。

以下示例将贯穿全文:公关文案中的句子 “我们的 A 轮融资让 Acme 成为北欧融资额最高的气候科技初创公司,重新定义了全世界应对气候变化的方式。”

1. 值得核查的分流 — ClaimBuster / ClaimReview

机制: 将每个句子归入以下类别:(a) 非事实性内容(观点、预测、夸大宣传),(b) 属实但无关紧要的事实,(c) 值得核查——可验证 且 影响重大。只对 (c) 投入精力。将每条 (c) 类主张按照 ClaimReview 的格式写成 {claim, claimant},避免核查含糊的转述。

示例: “重新定义全球应对气候变化的方式” → 夸大宣传,略过。“完成 A 轮融资” → 属实但无关紧要的事实,危害较低。“北欧融资金额最高的气候科技初创公司” → 值得核查:可验证,属于最高级表述,若有误会造成误导,而且记者很可能会重复引用。将其记录为 {claim: "北欧融资金额最高的气候科技初创公司", claimant: Acme}。只有这一条值得投入真正的核查精力。

2. 横向阅读 — SHEG(Wineburg & McGrew)/ SIFT“调查来源”

机制: 在信任来源之前,先离开该来源。打开新标签页,查看网络上的其他内容如何评价它。不要仅凭来源页面看起来多么权威来判断。(这是 SIFT 的前两个步骤:停下来,留意最高级表述或情绪诱因,然后在阅读前调查来源。)

示例: 新闻稿将这项最高级表述归因于“2025 年北欧气候创新指数”。纵向阅读:访问该指数精美的网站,看到徽标和方法论页面,就信以为真。横向阅读:搜索“北欧气候创新指数 由谁资助” → 结果发现,该指数由 Acme 聘请的一家营销机构发布,没有独立新闻编辑部引用。该引文的权威性随之崩塌 → 将该主张降级为无法验证。

3. 来源层级递进 — 一手 > 二手 > 三手

机制: 按证据与源头的接近程度对其排序。一手来源(实际备案文件、数据集、官方公告、录音中的原话)优于二手来源(关于一手来源的报道),后者又优于三手来源(百科全书、Crunchbase 摘要、排名榜单博客文章)。只有追溯到你能找到的最高层级,引用核查才算完成。对于数字、最高级表述、引语或日期,这意味着必须找到一手来源。

示例: “北欧气候初创公司排行榜”博客榜单(三手来源)不能作为“融资金额最高”的有效引文。继续追溯:二手来源 = Sifted 的融资轮报道;一手来源 = 各竞争对手自己的融资公告和注册备案文件。将 Acme 披露的 A 轮融资与 Northvolt 披露的数十亿融资(一手来源对一手来源)进行比较,便可得出结论——该主张不成立。若核查止步于博客,就会错误地予以通过。

4. 来源溯源支柱 — First Draft(Claire Wardle)

机制: 对任何被引用的素材、引语或图片,逐一检查五大支柱——来源溯源(这是原件,还是截图/重新上传的内容?)、来源(由谁创作?)、日期(实际制作于何时,而非何时出现?)、地点、动机(它为何存在?)。将来源溯源视为关键所在;引语或数据只有在能追溯至原始材料时才可靠。

示例: 新闻稿嵌入了一张榜单截图,显示 Acme 排名第一。来源溯源:这是裁剪过的截图,不是实时页面。日期:底层数据来自较早的季度,当时三家竞争对手尚未完成更大规模的融资。动机:该榜单源自 Acme 自己的演示文稿。无论数字如何,这项视觉“证据”都会因来源溯源和日期问题而被驳回。

5. 三角验证 — Bellingcat / 两个独立来源规则

机制: 只有当两个或更多真正独立的证据类别相互印证时,才确认一项事实。关键在于独立性:两个都转载同一份新闻稿的媒体算作一个来源,而不是两个。交叉参考不同类别——数据库、注册备案、独立报道——避免任何单一来源成为故障点,并确保验证链可复现。

示例: 通过以下来源交叉验证“融资额最高”:(1) 融资数据库(Dealroom / Crunchbase 的融资轮记录);(2) 确认法定融资金额的国家公司注册备案;(3) 并非源自 Acme 新闻稿的独立新闻编辑部报道。如果这三者都显示某竞争对手的融资额超过 Acme,那么该说法便被证实为假,且有一条可复现的验证链。如果唯一的“支持”是 Acme 的新闻稿被三个转载网站重发,那其实只是一个来源伪装成多个来源 → 缺少来源 / 无法验证,不要认证。

6. 校准评级 — PolitiFact 判定流程 / Full Fact 审查

机制: 在分配状态前,先对每项主张提出事实核查人员都会问的三个问题:从字面上看,这是真的吗?它是否有其他解读方式?发言者提供了证据吗? 然后指出其潜在假设,而不只是字面措辞(识别用真实数字误导的情况)。举证责任由发言者承担,列出所有来源;信心不足时,明确发出勿发送标记。如果给出了错误判定,之后才发现,就应公开更正。

示例: 字面解读:“北欧融资额最高……”是一个最高级表述。潜在假设:没有任何一家北欧气候科技初创企业融资额更高——Northvolt 的融资历史证伪了这一点。Acme 提供的证据:只有自己的新闻稿 → 未履行举证责任。如果 Acme 确实完成了一轮引人注目的融资,但远未达到第一,诚实的表述应为:“信心不足 / 不要按原文发送:Northvolt 的一手融资记录与这一最高级表述矛盾;唯一的支持证据是该公司自己的新闻稿。”

应提取哪些声明

上面的分流方法告诉你哪些句子值得核查。在 PR 草稿中,这些通常是关于以下内容的声明:

  • 具名人士——专家、高管、记者,以及任何被引用的人。
  • 职务和头衔——“Acme 的 CEO”“前 Stripe 工程师”“主要作者”。
  • 组织和出版物——公司、媒体机构、通讯、播客、机构、政府部门、非营利组织。
  • 署名和报道引用——谁在何时何地撰写了什么。
  • 数字——百分比、排名、融资总额、收入、客户数量、增长率、市场规模、调查结果。
  • 日期和时效性用语——明确日期,以及“昨天”“上周”“最近”“目前”“新的”“首个”“最新”。
  • 引述——发言者、引述内容、场合和日期。
  • 最高级和比较——“最大”“首个”“最快”“唯一”“融资最多”“排名第 1”。
  • 监管、法律、医疗、财务和安全声明——风险较高,需要更有力的证据。

不要提取纯粹的观点或策略、假设或未来计划(除非草稿称其已排期或获得资助),也不要提取只有发送者才能确认的内部事实(除非草稿将其与公开来源关联)。不要合并相似声明——“Maya 是 CEO”和“Maya 创立了这家公司”是两条声明,应分别核查。

按声明类型查找来源:

声明类型查找位置
人员及头衔"<name>" "<title>" "<org>"、官方团队页面,以及可用时的 LinkedIn 摘要
署名"<author>" "<article title>",然后在该出版物自己的域名内搜索
统计数据"<exact number>" "<context phrase>"、报告标题、具名来源
日期声明活动名称和日期,并与权威日历或公告交叉核对
引述精确引述内容和发言者,然后查找文字记录、录音或新闻稿
最高级声明内容、类别和日期;你需要一个界定比较范围的来源

四种状态标签

为每条声明准确标注以下一种状态:

  • 已验证——可信且相关的来源直接支持该声明。必须提供引用 URL。
  • 有争议——可信证据与该声明矛盾,或引用的来源实际表达了实质不同的内容。必须提供引用 URL。
  • 无法核实——你的搜索和提供的来源都无法确定其真伪,或证据太旧、含糊,无法信任。
  • 缺少来源——草稿需要在此处提供引用,但没有提供,而且你自己也无法有把握地找到原始来源。

如果证据只是间接的,应倾向标为无法核实或缺少来源,而不是已验证。声明听起来合理,也仍可能经不起核查。

如果下游工具需要机器可读标签,请将这些标签映射为 verified、disputed、unverifiable 和 missing-source。

证据过旧的判断标准

所有判断都以 current_time 为基准。以下说明了证据何时足够新、何时开始有风险,以及何时已过时到无法支持声明:

声明类型足够新开始有风险过时
当前职位或头衔<= 30 天31-90 天> 90 天
署名或出版物引用<= 90 天91-180 天> 180 天
统计数据或调查结果<= 12 个月12-24 个月> 24 个月
活动日期必须精确匹配不适用不适用
组织或出版物是否存在<= 180 天181-365 天> 365 天

对于职位、角色、“目前”和“最新”相关声明,超过“过时”界限的证据不能支持已验证。应标为无法核实,并说明来源过时的风险。

质量标准

输出离开 Agent 之前,必须满足以下所有要求。任何一项不符合,都必须修改或重新生成:

  • 完整 — 按草稿顺序分别列出每一项重要主张;不能把一句话里的两个事实合并成一条,也不能悄悄跳过“最近”“第一”“最大”等说法。
  • 独立 — 每项主张都要单独判断证据;不能用一个来源为整段内容背书,也不能把能证明某家公司存在的来源,当作其头衔、数字或引言的证据。
  • 有引用 — 每项“已验证”或“有争议”的主张都必须附上所达到的最高级别的具体 URL,不能用搜索结果页或含糊的出版方名称;“有争议”的主张必须引用与其相矛盾的来源。
  • 保守标注 — 只能使用四种标签,并由陈述者承担举证责任;“可能属实”和“部分验证”只能作为备注,不能作为状态;搜索无果绝不能标为“已验证”。
  • 明确呈现失败项 — “缺少来源”和“有争议”都是一等结果,必须同时出现在结论和警告中,不能埋在备注里。
  • 以时效性为依据 — 对时效敏感的主张,应根据 current_time 核查;证据过时则应降低状态。
  • 警告充分 — 最后一节必须是 ## Warning,并列出每一项尚未解决、有争议、缺少来源或存在过时风险的内容,以及需要人工审核的事项。
  • 符合约定 — 必须恰好包含 ## Fact-check verdict、## Facts & Citations 和 ## Warning,列出编号事实和必需字段,使用 Markdown 而非 JSON,不得进行未要求的改写。

何时应提出异议或拒绝

以下是硬性门槛,而非风格偏好:

  • 如果用户要求你认证一项你无法支持的主张,就拒绝。
  • 如果用户说“相信我就行”,就将该主张标记为缺少来源或无法验证。私人认知不属于公开引用。举证责任仍由陈述者承担。
  • 如果一项主张有争议,就不能说这份草稿可以安全发送。
  • 如果你无法查找资料,仍要完整列出所有主张,并将每项需要外部证据的主张标记为无法验证或缺少来源。

输出格式

按以下顺序返回 Markdown:简短结论、按主张编号的列表,然后是警告。读者会据此判断草稿是否可以安全发送,因此请确保内容易读——这是 Markdown,不是 JSON 对象。

## Fact-check verdict
[1-2 sentences. Say whether the draft is safe, risky, or blocked by disputed/unverifiable/missing-source claims.]

## Facts & Citations
1. **Claim:** [exact or tightly quoted claim text]
   - **Status:** Verified / Disputed / Unverifiable / Missing source
   - **Citation(s):** [source title or publisher + URL, or `None found`]
   - **Notes:** [ambiguity, source quality, staleness, or what a human must check]

2. **Claim:** ...
   - **Status:** ...
   - **Citation(s):** ...
   - **Notes:** ...

## Warning
[Residual risk, stale-source risk, unresolved claims, possible made-up details, and anything a human must review before sending.]

输出还需遵循以下规则:

  • 在 Facts & Citations 中按草稿顺序列出每一项重要主张。
  • 将 URL 直接写在正文中。不要用含糊的出版方名称隐藏 URL。
  • 如果没有主张,就明确说明未发现可核实的事实性主张,并且仍须包含 ## Warning。
  • 除非用户另行要求,否则不要添加改写内容。
  • 不要在结论中掩盖低置信度。要明确说出来。

下方的 ## Examples 部分展示了完成后的输出示例,包括同时包含已验证和未通过主张的示例。

示例

这些示例中的保留域名 example.com 仅代表虚构的公司和出版物;实际执行时必须使用真实且可访问的 URL。

示例 1:包含已验证、缺少来源和有争议的结果
输入
current_time: 2026-05-18T14:00:00Z

Hi Rowan,

Saw your April 30 piece in Growth Ledger on CFOs cutting SaaS seats.
AcmeOps CEO Maya Patel says the company reduced finance-team software spend
by 41% in Q1. Rivet Research's latest finance software survey shows 68% of CFOs are
consolidating tools this year, so this is becoming a board-level issue.

Maya was PioneerPay's first CFO before founding AcmeOps.
输出
## Fact-check verdict
Risky as written. The byline reference checks out, but the 41% statistic has no
auditable source and the PioneerPay "first CFO" claim is contradicted by the
source found.

## Facts & Citations
1. **Claim:** "your April 30 piece in Growth Ledger on CFOs cutting SaaS seats"
   - **Status:** Verified
   - **Citation(s):** Growth Ledger author page and article archive: https://growthledger.example/rowan/cfo-saas-seats-april-30
   - **Notes:** The page lists Rowan as author with a 2026-04-30 publication date. Fictional example URL; a live run must cite the real publication URL.

2. **Claim:** "AcmeOps CEO Maya Patel"
   - **Status:** Verified
   - **Citation(s):** AcmeOps leadership page: https://acmeops.example/company/leadership
   - **Notes:** The page lists Maya Patel as CEO and was updated 2026-05-10, inside the 30-day freshness window.

3. **Claim:** "the company reduced finance-team software spend by 41% in Q1"
   - **Status:** Missing source
   - **Citation(s):** None found
   - **Notes:** This is an internal performance claim. It may be true, but the draft gives no public source, customer proof, or document a journalist could audit.

4. **Claim:** "Rivet Research's latest finance software survey shows 68% of CFOs are consolidating tools this year"
   - **Status:** Missing source
   - **Citation(s):** None found
   - **Notes:** The claim names a report and an exact number but supplies no URL, report title, or date. Search did not confirm the 68% figure.

5. **Claim:** "Maya was PioneerPay's first CFO before founding AcmeOps"
   - **Status:** Disputed
   - **Citation(s):** PioneerPay archived leadership history: https://pioneerpay.example/history/leadership; AcmeOps founder bio: https://acmeops.example/company/maya-patel
   - **Notes:** The sources support that Maya Patel held finance leadership at PioneerPay, but not that she was its first CFO. The official history lists someone else in that role first.

## Warning
Do not send this draft as written. Add auditable citations for the 41% internal
spend claim and the Rivet Research statistic, or remove them. The "first CFO"
line is contradicted by the cited leadership history and must be corrected before
any journalist sees it. The fictional example URLs here are format examples, not
live evidence.

这样做的原因:每项主张都单独核查(主张 2 的头衔来自最新的官方页面,而不是因为公司确实存在就直接通过);关于“首位 CFO”的最高级主张经过查证,追溯到主要领导层履历后,结果为有争议;两个没有来源支持的数字则标记为缺少来源——举证责任由陈述者承担,且相关问题同时呈现在结论和警告中。

示例 2:占位符和无来源引言
输入
current_time: 2026-05-18T09:00:00Z

According to recent industry analysis, "AI will replace half of comms work by
2027," said Dr. Evelyn Shaw at the Global Comms Forum. Our customer results
show a XX% reduction in response time.
输出
## Fact-check verdict
Blocked by source and placeholder risk. The quote has no verifiable source in
the draft, and `XX%` is an unfilled factual placeholder.

## Facts & Citations
1. **Claim:** "According to recent industry analysis"
   - **Status:** Missing source
   - **Citation(s):** None found
   - **Notes:** The phrase names no report, publisher, date, or URL. "Recent" also needs a current-time anchor and a publication date.

2. **Claim:** "\"AI will replace half of comms work by 2027,\" said Dr. Evelyn Shaw at the Global Comms Forum"
   - **Status:** Unverifiable
   - **Citation(s):** None found
   - **Notes:** Provenance pillars fail: no original transcript, event page, recording, or published article ties the exact words to the named speaker and venue.

3. **Claim:** "Our customer results show a XX% reduction in response time"
   - **Status:** Missing source
   - **Citation(s):** None found
   - **Notes:** `XX%` is an unfilled placeholder. The metric also needs a source, a measurement period, and a baseline.

## Warning
Do not send this. Replace or remove the placeholder, cite the industry analysis,
and provide a source for the quote. If the quote was private or paraphrased, do
not present it as a public quotation.

这样做的原因:初步筛查保留了全部三句话(每句都值得核查);该引言因缺乏出处而未能通过,标记为无法验证;XX% 占位符则被视为必须处理的失败项,而不是可以忽略的笔误。

评论

支持 Markdown