source-verification by jamditis/claude-skills-journalism
npx skills add https://github.com/jamditis/claude-skills-journalism --skill source-verification新闻与研究领域验证来源、主张和数字内容的系统性方法。
S - 暂停 : 不要立即分享或使用未经核实的信息 I - 调查来源 : 信息背后是谁? F - 寻找更好的报道 : 其他可靠来源怎么说? T - 追溯主张 : 找到主张的最初来源
## 来源评估模板
### 基本身份识别
- [ ] 全名/组织已识别
- [ ] 联系信息可验证
- [ ] 专业资质可核查
- [ ] 跨平台在线形象一致
### 专业能力评估
- [ ] 对所提主张具备相关专业知识
- [ ] 在该主题领域的过往记录
- [ ] 获得该领域同行认可
- [ ] 无传播虚假信息的历史
### 动机分析
- [ ] 已识别潜在利益冲突
- [ ] 对结果有经济利益?
- [ ] 政治或意识形态动机?
- [ ] 涉及个人恩怨?
### 佐证
- [ ] 主张能否被独立验证?
- [ ] 其他可信来源是否确认?
- [ ] 是否有文件证据可用?
- [ ] 是否存在矛盾来源?
## 账户验证检查清单
### 账户年龄与历史
- 创建日期(较旧的账户更可信)
- 发帖频率和模式
- 活动空白期(休眠后突然活跃?)
- 语言随时间的一致性
### 网络分析
- 关注者/关注比例
- 关注者质量(真实账户 vs. 机器人)
- 互动模式(谁与他们互动?)
- 与已验证账户的共同联系
### 内容模式
- 原创内容 vs. 仅转发
- 持续讨论的主题
- 帖子中的地理指标
- 发帖活动的时区
### 危险信号
- 最近创建的账户做出大胆主张
- 主题或语气突然转变
- 与其他账户的协同行为
- 库存照片个人资料图片
- 无具体信息的通用简介
## 图片验证流程
### 步骤 1:反向图片搜索
使用工具:
- Google 图片 (images.google.com)
- TinEye (tineye.com)
- Yandex 图片 (yandex.com/images) - 最适合人脸
- Bing 视觉搜索
### 步骤 2:检查元数据 (EXIF)
- 原始拍摄日期/时间
- 相机/设备信息
- GPS 坐标(如果可用)
- 用于编辑的软件
工具:
- Jeffrey's EXIF Viewer (exif.regex.info)
- FotoForensics (fotoforensics.com)
- InVID 验证插件
### 步骤 3:分析图片内容
- 天气状况(与报告日期匹配?)
- 阴影(与一天中的时间一致?)
- 标志/文本(语言与地点相符?)
- 建筑(与声称地点匹配?)
- 服装(符合季节?)
### 步骤 4:查找原始来源
- 最早在线出现时间
- 原始摄影师/来源
- 首次发布的背景
- 是否在其他情境中被使用过?
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
## 视频验证检查清单
### 技术分析
- [ ] 分辨率始终一致
- [ ] 音频同步与视频匹配
- [ ] 无可见编辑痕迹
- [ ] 各帧照明一致
- [ ] 阴影表现自然
### 内容分析
- [ ] 地点可识别且可验证
- [ ] 时间指示(太阳位置、阴影)
- [ ] 天气与历史记录匹配
- [ ] 背景细节一致
- [ ] 人物着装符合情境
### 元数据检查
- [ ] 上传日期 vs. 声称事件日期
- [ ] 原始来源已识别
- [ ] 保管链可追溯
- [ ] 是否有多个角度?
### 工具
- InVID/WeVerify 浏览器扩展
- YouTube DataViewer (citizenevidence.amnestyusa.org)
- 逐帧分析工具
## 文件验证步骤
### 元数据检查
- 创建日期和修改历史
- 作者信息
- 用于创建的软件
- 嵌入的字体和图像
### 视觉检查
- 格式始终一致
- 字体匹配(无拼接文本)
- 文本和图像对齐
- 各页质量一致
- 签名看起来真实
### 内容验证
- 日期内部一致
- 姓名拼写始终正确
- 参考编号有效
- 联系信息可验证
- 信头与已知示例匹配
### 来源
- 文件如何获得?
- 保管链是否有记录?
- 原件 vs. 副本?
- 来源能否提供额外背景信息?
## 验证记录
**正在验证的主张:**
[陈述具体主张]
**主张来源:**
- 名称/账户:
- 平台:
- 首次发现日期:
- URL(已存档):
**已采取的验证步骤:**
### 步骤 1:[描述]
- 采取的行动:
- 使用的工具/方法:
- 结果:
- 截图/证据已保存:[文件名]
### 步骤 2:[描述]
- 采取的行动:
- 使用的工具/方法:
- 结果:
- 截图/证据已保存:[文件名]
[为每个步骤继续]
**佐证来源:**
1. [来源 1] - [它确认了什么]
2. [来源 2] - [它确认了什么]
3. [来源 3] - [它确认了什么]
**矛盾信息:**
1. [来源] - [它矛盾了什么]
**可信度评估:**
- [ ] 已验证为真
- [ ] 可能为真(高可信度)
- [ ] 未验证(证据不足)
- [ ] 可能为假(存在矛盾证据)
- [ ] 已验证为假
**推理:**
[根据证据解释你的结论]
**验证完成者:**
**日期:**
# 将 URL 保存到多个存档以实现冗余
ARCHIVE_SERVICES = [
'https://web.archive.org/save/', # Internet Archive
'https://archive.ph/', # Archive.today
'https://perma.cc/', # Perma.cc (requires account)
]
def archive_url(url: str) -> dict:
"""Archive URL to multiple services."""
results = {}
# Internet Archive
try:
response = requests.get(f'https://web.archive.org/save/{url}')
if response.status_code == 200:
results['wayback'] = response.url
except Exception as e:
results['wayback_error'] = str(e)
# Archive.today (requires different approach)
# ... implementation
return results
## 截图最佳实践
1. **全页捕获**:使用浏览器扩展进行全页截图
2. **包含地址栏**:显示来源 URL
3. **包含时间戳**:系统时钟可见或手动添加
4. **保存元数据**:记录捕获时间和方式
5. **多种格式**:保存为 PNG(无损)和 PDF
6. **安全存储**:哈希文件并安全存储
推荐工具:
- Hunchly (hunch.ly) - 自动捕获和记录
- Screenpresso - 带注释的全页截图
- 浏览器打印为 PDF - 包含 URL 和日期
## 来源背景调查
### 公共记录
- [ ] 专业执照已验证
- [ ] 法庭记录已核查
- [ ] 商业注册已确认
- [ ] 财产记录(如相关)
- [ ] 竞选财务记录(如涉及政治)
### 专业背景
- [ ] LinkedIn 个人资料已审阅
- [ ] 雇主已确认
- [ ] 已联系前雇主
- [ ] 已审阅已发表作品
- [ ] 会议出席情况已核实
### 社交媒体审计
- [ ] 所有平台已识别
- [ ] 发帖历史已审阅
- [ ] 联系/关注者已分析
- [ ] 关于该主题的先前陈述
- [ ] 是否发现已删除内容?
### 媒体露面
- [ ] 已找到先前采访
- [ ] 与当前主张的一致性
- [ ] 其他记者的评估
- [ ] 是否有撤回或更正?
## 实时验证技术
### 文件请求
- 采访期间要求提供文件
- 验证文件未被篡改
- 尽可能要求原件而非副本
- 记录文件状况和来源
### 具体细节探查
- 询问具体日期、姓名、地点
- 要求提供佐证证人
- 询问"您怎么知道?"
- 对模糊回答进行跟进
### 一致性检查
- 记录故事的初始版本
- 稍后回到关键点
- 比较不同讲述中的细节
- 标记不一致之处以供跟进
### 录音最佳实践
- 获得同意(检查当地法律)
- 使用可靠的录音设备
- 实时备份录音
- 单独记录非语言线索
| 工具 | 用途 | URL |
|---|---|---|
| InVID/WeVerify | 视频验证插件 | weverify.eu |
| TinEye | 反向图片搜索 | tineye.com |
| Wayback Machine | 网页存档 | web.archive.org |
| CrowdTangle | 社交媒体追踪 | crowdtangle.com |
| Hoaxy | 主张传播可视化 | hoaxy.osome.iu.edu |
| Media Bias/Fact Check | 来源可靠性 | mediabiasfactcheck.com |
| OpenCorporates | 公司记录 | opencorporates.com |
| OCCRP Aleph | 文件搜索 | aleph.occrp.org |
每周安装量
97
代码库
GitHub 星标数
96
首次出现
2026年1月21日
安全审计
安装于
gemini-cli88
codex87
opencode87
cursor84
github-copilot82
amp76
Systematic approaches for verifying sources, claims, and digital content in journalism and research.
S - Stop : Don't immediately share or use unverified information I - Investigate the source : Who is behind the information? F - Find better coverage : What do other reliable sources say? T - Trace claims : Find the original source of the claim
## Source evaluation template
### Basic identification
- [ ] Full name/organization identified
- [ ] Contact information verifiable
- [ ] Professional credentials checkable
- [ ] Online presence consistent across platforms
### Expertise assessment
- [ ] Relevant expertise for the claim being made
- [ ] Track record in this subject area
- [ ] Recognized by peers in the field
- [ ] No history of spreading misinformation
### Motivation analysis
- [ ] Potential conflicts of interest identified
- [ ] Financial stake in the outcome?
- [ ] Political or ideological motivation?
- [ ] Personal grievance involved?
### Corroboration
- [ ] Can claims be independently verified?
- [ ] Do other credible sources confirm?
- [ ] Is documentary evidence available?
- [ ] Are there contradicting sources?
## Account verification checklist
### Account age and history
- Creation date (older accounts more credible)
- Posting frequency and patterns
- Gaps in activity (dormant then suddenly active?)
- Language consistency over time
### Network analysis
- Follower/following ratio
- Quality of followers (real accounts vs. bots)
- Interaction patterns (who engages with them?)
- Mutual connections with verified accounts
### Content patterns
- Original content vs. reshares only
- Topics discussed consistently
- Geographic indicators in posts
- Time zone of posting activity
### Red flags
- Recently created account making bold claims
- Sudden pivot in topics or tone
- Coordinated behavior with other accounts
- Stock photo profile picture
- Generic bio with no specifics
## Image verification process
### Step 1: Reverse image search
Tools to use:
- Google Images (images.google.com)
- TinEye (tineye.com)
- Yandex Images (yandex.com/images) - best for faces
- Bing Visual Search
### Step 2: Check metadata (EXIF)
- Original capture date/time
- Camera/device information
- GPS coordinates (if available)
- Software used to edit
Tools:
- Jeffrey's EXIF Viewer (exif.regex.info)
- FotoForensics (fotoforensics.com)
- InVID verification plugin
### Step 3: Analyze image content
- Weather conditions (match reported date?)
- Shadows (consistent with time of day?)
- Signage/text (correct language for location?)
- Architecture (matches claimed location?)
- Clothing (seasonal appropriateness?)
### Step 4: Find original source
- Earliest appearance online
- Original photographer/source
- Context of first publication
- Has it been used in other contexts?
## Video verification checklist
### Technical analysis
- [ ] Resolution consistent throughout
- [ ] Audio sync matches video
- [ ] No visible editing artifacts
- [ ] Lighting consistent across frames
- [ ] Shadows behave naturally
### Content analysis
- [ ] Location identifiable and verifiable
- [ ] Time indicators (sun position, shadows)
- [ ] Weather matches historical records
- [ ] Background details consistent
- [ ] People's clothing appropriate for context
### Metadata check
- [ ] Upload date vs. claimed event date
- [ ] Original source identified
- [ ] Chain of custody traceable
- [ ] Multiple angles available?
### Tools
- InVID/WeVerify browser extension
- YouTube DataViewer (citizenevidence.amnestyusa.org)
- Frame-by-frame analysis tools
## Document verification steps
### Metadata examination
- Creation date and modification history
- Author information
- Software used to create
- Embedded fonts and images
### Visual inspection
- Consistent formatting throughout
- Font matching (no spliced text)
- Alignment of text and images
- Quality consistent across pages
- Signatures appear authentic
### Content verification
- Dates internally consistent
- Names spelled correctly throughout
- Reference numbers valid
- Contact information verifiable
- Letterhead matches known examples
### Provenance
- How was document obtained?
- Chain of custody documented?
- Original vs. copy?
- Can source provide additional context?
## Verification record
**Claim being verified:**
[State the specific claim]
**Source of claim:**
- Name/account:
- Platform:
- Date first seen:
- URL (archived):
**Verification steps taken:**
### Step 1: [Description]
- Action taken:
- Tool/method used:
- Result:
- Screenshot/evidence saved: [filename]
### Step 2: [Description]
- Action taken:
- Tool/method used:
- Result:
- Screenshot/evidence saved: [filename]
[Continue for each step]
**Corroborating sources:**
1. [Source 1] - [What it confirms]
2. [Source 2] - [What it confirms]
3. [Source 3] - [What it confirms]
**Contradicting information:**
1. [Source] - [What it contradicts]
**Confidence assessment:**
- [ ] Verified true
- [ ] Likely true (high confidence)
- [ ] Unverified (insufficient evidence)
- [ ] Likely false (contradicting evidence)
- [ ] Verified false
**Reasoning:**
[Explain your conclusion based on evidence]
**Verification completed by:**
**Date:**
# Save URLs to multiple archives for redundancy
ARCHIVE_SERVICES = [
'https://web.archive.org/save/', # Internet Archive
'https://archive.ph/', # Archive.today
'https://perma.cc/', # Perma.cc (requires account)
]
def archive_url(url: str) -> dict:
"""Archive URL to multiple services."""
results = {}
# Internet Archive
try:
response = requests.get(f'https://web.archive.org/save/{url}')
if response.status_code == 200:
results['wayback'] = response.url
except Exception as e:
results['wayback_error'] = str(e)
# Archive.today (requires different approach)
# ... implementation
return results
## Screenshot best practices
1. **Full page capture**: Use browser extensions for full-page screenshots
2. **Include URL bar**: Shows the source URL
3. **Include timestamp**: System clock visible or add manually
4. **Save metadata**: Note when and how captured
5. **Multiple formats**: Save as PNG (lossless) and PDF
6. **Secure storage**: Hash files and store securely
Recommended tools:
- Hunchly (hunch.ly) - automatic capture and logging
- Screenpresso - full page with annotations
- Browser print-to-PDF - includes URL and date
## Source background check
### Public records
- [ ] Professional licenses verified
- [ ] Court records checked
- [ ] Business registrations confirmed
- [ ] Property records (if relevant)
- [ ] Campaign finance records (if political)
### Professional background
- [ ] LinkedIn profile reviewed
- [ ] Employer confirmed
- [ ] Previous employers contacted
- [ ] Published work reviewed
- [ ] Conference appearances verified
### Social media audit
- [ ] All platforms identified
- [ ] Post history reviewed
- [ ] Connections/followers analyzed
- [ ] Previous statements on topic
- [ ] Any deleted content found?
### Media appearances
- [ ] Previous interviews found
- [ ] Consistency with current claims
- [ ] Other journalists' assessments
- [ ] Any retractions or corrections?
## Real-time verification techniques
### Document requests
- Ask for documentation during interview
- Verify documents aren't altered
- Request originals, not copies when possible
- Note document condition and provenance
### Specific detail probing
- Ask for specific dates, names, locations
- Request corroborating witnesses
- Ask "How do you know that?"
- Follow up on vague answers
### Consistency checks
- Note initial version of story
- Return to key points later
- Compare details across tellings
- Flag inconsistencies for follow-up
### Recording best practices
- Get consent (check local laws)
- Use reliable recording equipment
- Backup recording in real-time
- Note non-verbal cues separately
| Tool | Purpose | URL |
|---|---|---|
| InVID/WeVerify | Video verification plugin | weverify.eu |
| TinEye | Reverse image search | tineye.com |
| Wayback Machine | Web archives | web.archive.org |
| CrowdTangle | Social media tracking | crowdtangle.com |
| Hoaxy | Claim spread visualization | hoaxy.osome.iu.edu |
| Media Bias/Fact Check | Source reliability | mediabiasfactcheck.com |
| OpenCorporates | Company records | opencorporates.com |
| OCCRP Aleph | Document search | aleph.occrp.org |
Weekly Installs
97
Repository
GitHub Stars
96
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
gemini-cli88
codex87
opencode87
cursor84
github-copilot82
amp76
NotebookLM Python库:自动化访问Google NotebookLM,实现AI内容创作与文档处理
1,700 周安装
AI驱动知识库搜索工具 - Nowledge Mem搜索记忆技能,提升开发效率
412 周安装
Spring Security授权单元测试指南:@PreAuthorize、RBAC与自定义权限评估器
409 周安装
RealityKit AR 开发指南:iOS ARKit 增强现实应用构建与实体交互
407 周安装
distill-memory 知识提炼工具:智能会话记忆管理,提升开发效率与决策连续性
412 周安装
iOS CloudKit 同步开发指南:SwiftData、CKSyncEngine 与 iCloud 数据同步
413 周安装
Perplexity AI 搜索技能:实时网络搜索与文献检索工具,支持来源引用验证
419 周安装