name: 危机沟通 description: 面向记者和通信专业人员的危机沟通和快速响应工作流。用于报道突发新闻事件、在危机中管理组织通信、协调快速事实核查工作或制定危机响应计划。对新闻编辑室、公关团队以及任何需要在时间压力下准确沟通的人员至关重要。
危机沟通
高压情况下准确、快速沟通的框架。
何时激活
- 突发新闻需要即时报道
- 组织面临公共危机或争议
- 错误信息迅速传播需要反驳
- 紧急情况需要协调通信
- 发布前需要快速事实核查
- 在事件发生前准备危机响应计划
突发新闻协议
前30分钟清单
## 突发新闻响应
**事件**: [简要描述]
**检测时间**: [HH:MM]
**初始来源**: [我们从哪里得知]
### 立即行动(0-10分钟)
- [ ] 验证事件真实(至少2个独立来源)
- [ ] 通知编辑/团队领导
- [ ] 检查新闻社(美联社、路透社、法新社)
- [ ] 监控官方账户(机构、官员)
- [ ] 不要发布未经验证的说法
### 验证阶段(10-30分钟)
- [ ] 联系/确认主要来源
- [ ] 验证位置(如适用)
- [ ] 获取或请求官方声明
- [ ] 收集目击者账户(注意:未经验证)
- [ ] 标记社交媒体说法以待验证
### 首次发布决策
- [ ] 我们知道什么(仅确认的事实)
- [ ] 我们不知道什么(明确说明)
- [ ] 我们正在努力确认什么
- [ ] 每个说法都有清晰的归属
新闻编辑室升级矩阵
from enum import Enum
from dataclasses import dataclass
from typing import List
class CrisisLevel(Enum):
LEVEL_1 = "routine" # 单个记者可处理
LEVEL_2 = "elevated" # 需要编辑参与
LEVEL_3 = "major" # 多名记者,编辑监督
LEVEL_4 = "critical" # 全员参与,执行层介入
@dataclass
class BreakingEvent:
description: str
level: CrisisLevel
confirmed_facts: List[str]
unconfirmed_claims: List[str]
sources_contacted: List[str]
assigned_reporters: List[str]
def escalation_needed(self) -> bool:
"""确定事件是否需要升级。"""
triggers = [
len(self.unconfirmed_claims) > 5, # 太多未知
"fatalities" in self.description.lower(),
"official" in self.description.lower(),
"government" in self.description.lower(),
]
return any(triggers)
ESCALATION_TRIGGERS = {
CrisisLevel.LEVEL_2: [
"确认有多人死亡",
"涉及主要公众人物",
"法律/责任担忧",
"显著本地影响",
],
CrisisLevel.LEVEL_3: [
"潜在全国新闻",
"对公众有活跃危险",
"主要机构受影响",
"检测到协调的错误信息",
],
CrisisLevel.LEVEL_4: [
"大规模伤亡事件",
"政府/民主含义",
"我们组织直接涉及",
"迫在眉睫的物理威胁",
],
}
快速验证框架
5分钟验证
时间紧迫时,优先检查这些:
## 快速验证清单
### 来源检查(1分钟)
- [ ] 谁声称这个?
- [ ] 他们是否有立场知道?
- [ ] 他们以前可靠吗?
### 佐证(2分钟)
- [ ] 有其他人确认吗?
- [ ] 检查新闻社
- [ ] 检查官方来源
### 红旗(1分钟)
- [ ] 太完美/戏剧化?
- [ ] 匹配已知的虚假叙事?
- [ ] 仅单一来源?
### 决策(1分钟)
- [ ] 发布:多个可信来源,无红旗
- [ ] 保留:需要更多验证
- [ ] 监控:发展中,暂不发布
验证分类系统
from dataclasses import dataclass
from datetime import datetime
from typing import Optional
from enum import Enum
class VerificationStatus(Enum):
UNVERIFIED = "unverified"
PARTIALLY_VERIFIED = "partially_verified"
VERIFIED = "verified"
DEBUNKED = "debunked"
UNCERTAIN = "uncertain"
@dataclass
class Claim:
text: str
source: str
first_seen: datetime
urgency: int # 1-5,更高=更紧急验证
status: VerificationStatus = VerificationStatus.UNVERIFIED
verification_notes: str = ""
verifier: Optional[str] = None
class VerificationQueue:
"""管理等待验证的说法。"""
def __init__(self):
self.claims = []
def add_claim(self, claim: Claim):
self.claims.append(claim)
self._sort_by_priority()
def _sort_by_priority(self):
"""紧急说法优先,然后按首次看到时间。"""
self.claims.sort(
key=lambda c: (-c.urgency, c.first_seen)
)
def next_claim(self) -> Optional[Claim]:
"""获取最高优先级的未验证说法。"""
for claim in self.claims:
if claim.status == VerificationStatus.UNVERIFIED:
return claim
return None
def update_status(self, claim: Claim,
status: VerificationStatus,
notes: str,
verifier: str):
claim.status = status
claim.verification_notes = notes
claim.verifier = verifier
危机沟通模板
保留声明
当需要说些什么但事实不完整时:
## 初始声明模板
[组织] 已知晓 [情况的简要描述]。
我们正在积极 [收集信息 / 调查 / 监控情况]。
[如适用: [利益相关者] 的安全是我们的首要任务。]
我们将随着验证信息的可用性提供更新。
媒体查询:[联系人]
对于 [受影响方]:[资源/热线]
最后更新:[时间戳]
更正/澄清
## 更正通知
**更正 [或澄清]**:此 [文章/声明/帖子] 的较早版本 [陈述/暗示] [错误信息]。
[如果是事实错误]:正确的信息是:[准确事实]。
[如果是误导]:澄清:[准确上下文]。
此 [文章/声明] 已更新以反映准确信息。
我们为错误感到遗憾。
[更正时间戳]
撤销(必要时)
## 撤销通知
**撤销**:[出版物名称] 正在撤销 [文章标题],发布于 [日期]。
[简要解释错误所在]:我们的报道 [陈述/依赖于] [有问题元素]。后续验证显示 [为什么错误]。
[你正在做什么]:我们已 [移除/更新] 文章,并正在审查我们的编辑流程。
[问责]:我们向 [受影响方] 和我们的读者道歉。
原始文章的全文可供透明性 [在此/应要求] 获取。
问题:[联系人]
社交媒体危机响应
危机期间监控
from dataclasses import dataclass
from datetime import datetime
from typing import List, Dict
from collections import Counter
@dataclass
class CrisisMention:
platform: str
content: str
author: str
timestamp: datetime
sentiment: str # 正面、负面、中性、错误信息
reach: int # 关注者/潜在印象
requires_response: bool = False
class CrisisMonitor:
"""跟踪危机相关的社交媒体提及。"""
def __init__(self, crisis_keywords: List[str]):
self.keywords = crisis_keywords
self.mentions: List[CrisisMention] = []
def add_mention(self, mention: CrisisMention):
self.mentions.append(mention)
def get_dashboard(self) -> dict:
"""实时危机概览。"""
recent = [m for m in self.mentions
if (datetime.now() - m.timestamp).seconds < 3600]
return {
'total_mentions_1h': len(recent),
'sentiment_breakdown': self._sentiment_counts(recent),
'top_platforms': self._platform_counts(recent),
'misinformation_count': len([
m for m in recent
if m.sentiment == 'misinformation'
]),
'high_reach_negative': [
m for m in recent
if m.sentiment == 'negative' and m.reach > 10000
],
'pending_responses': len([
m for m in self.mentions
if m.requires_response
])
}
def _sentiment_counts(self, mentions: List[CrisisMention]) -> Dict:
return dict(Counter(m.sentiment for m in mentions))
def _platform_counts(self, mentions: List[CrisisMention]) -> Dict:
return dict(Counter(m.platform for m in mentions))
响应决策树
## 我们应该回应这个吗?
### 高优先级(快速回应)
- [ ] 事实错误信息迅速传播
- [ ] 记者直接提问
- [ ] 受影响方寻求帮助
- [ ] 有影响力的账户传播虚假信息
### 中等优先级(深思熟虑地回应)
- [ ] 一般负面情绪
- [ ] 关于我们回应的疑问
- [ ] 与竞争对手处理的比较
### 低优先级 / 不参与
- [ ] 明显挑衅
- [ ] 恶意参与者
- [ ] 无新说法的跟风
- [ ] 情绪宣泄(让它过去)
### 永不回应
- [ ] 当生气时
- [ ] 用未经验证的信息
- [ ] 以加剧冲突的方式
- [ ] 通过删除合法批评
内部危机协调
通信链
from dataclasses import dataclass
from typing import List, Optional
from datetime import datetime
@dataclass
class CrisisTeamMember:
name: str
role: str
phone: str
email: str
backup: Optional['CrisisTeamMember'] = None
@dataclass
class CrisisLog:
"""维护所有危机决策的记录。"""
entries: List[dict] = None
def __post_init__(self):
self.entries = self.entries or []
def log(self, action: str, decision_maker: str,
rationale: str, outcome: str = "pending"):
self.entries.append({
'timestamp': datetime.now().isoformat(),
'action': action,
'decision_maker': decision_maker,
'rationale': rationale,
'outcome': outcome
})
def export_for_postmortem(self) -> str:
"""为事后审查生成时间线。"""
lines = ["# 危机响应时间线
"]
for entry in self.entries:
lines.append(
f"**{entry['timestamp']}** - {entry['action']}
"
f"- 决策者:{entry['decision_maker']}
"
f"- 理由:{entry['rationale']}
"
f"- 结果:{entry['outcome']}
"
)
return '
'.join(lines)
状态更新模板
用于保持利益相关者知情:
## 危机状态更新 #[X]
**截至**:[时间戳]
**下次更新**:[预定时间]
### 当前情况
[2-3句总结现状]
### 我们知道什么
- [确认事实1]
- [确认事实2]
### 我们正在做什么
- [行动项1] - [负责人]
- [行动项2] - [负责人]
### 关键决策已做出
- [决策] - [理由]
### 立即下一步
1. [下一步行动]
2. [下一步行动]
### 所需资源
- [资源/支持需要]
---
**联系人**:[危机负责人姓名和号码]
事后审查
事后清单
## 事后审查模板
### 时间线重建
- 我们何时首次得知危机?
- 我们何时首次公开回应?
- 关键决策点和时间
### 哪些做得好
- [具体成功1]
- [具体成功2]
### 哪些可以改进
- [差距或失败1] → [建议修复]
- [差距或失败2] → [建议修复]
### 流程问题
- 升级是否按预期工作?
- 是否有合适的人员参与?
- 我们是否有准确的信息时?
- 外部通信是否及时和准确?
### 具体改进
- [ ] 更新危机协议以解决 [差距]
- [ ] 培训团队关于 [识别弱点]
- [ ] 为未来事件添加 [资源/工具]
### 文档
- 所有通信已存档:[ ] 是
- 决策日志完成:[ ] 是
- 媒体覆盖编译:[ ] 是
错误信息快速响应
反信息框架
## 错误信息响应清单
### 回应前
- [ ] 这个说法是否显著传播?
- [ ] 我们的回应是否能到达受影响受众?
- [ ] 回应是否会放大虚假说法?
### 回应公式
1. **以真相开头**(不要先重复神话)
2. **具体**说明什么是准确的
3. **简要解释**为什么虚假说法错误
4. **提供来源**获取准确信息
### 示例结构
好:"活动于晚上7点在市政厅开始。一些帖子错误地列出了时间为下午5点。"
坏:"有人说活动在下午5点。那是错的。实际上是晚上7点。"
(先重复神话会加强它)
记者危机期间安全
## 现场安全清单
### 部署前
- [ ] 编辑知道你的位置和签到计划
- [ ] 紧急联系人已更新
- [ ] 手机充电,备用电池
- [ ] 急救基础已复习
- [ ] 出口路线已识别
### 覆盖期间
- [ ] 定期签到保持
- [ ] 位置共享活动
- [ ] 记者证可见
- [ ] 安全时录音
- [ ] 不为故事冒不必要风险
### 如果情况升级
- [ ] 如果指示立即离开
- [ ] 跟随人流,不抵抗
- [ ] 保护设备但不冒个人风险
- [ ] 尽快联系新闻编辑室
相关技能
- source-verification - 在快节奏事件中验证说法
- social-media-intelligence - 监控信息传播
- interview-transcription - 准确记录声明
技能元数据
| 字段 | 值 |
|---|---|
| 版本 | 1.0.0 |
| 创建 | 2025-12-26 |
| 作者 | Claude Skills for Journalism |
| 领域 | 通信、新闻工作 |
| 复杂性 | 高级 |