crisis-communications

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Crisis communications

危机沟通

Frameworks for accurate, rapid communication during high-pressure situations.
高压场景下精准、快速沟通的框架体系。

When to activate

适用场景

  • Breaking news requires immediate coverage
  • Organization faces public crisis or controversy
  • Misinformation is spreading rapidly and needs countering
  • Emergency situation requires coordinated communication
  • Rapid fact-checking is needed before publication
  • Preparing crisis response plans before incidents occur
  • 突发新闻需要即时报道
  • 企业面临公共危机或争议事件
  • 虚假信息快速传播,需要予以驳斥
  • 紧急情况需要协同沟通
  • 发布前需要快速事实核查
  • 提前制定危机应对预案

Breaking news protocol

突发新闻响应流程

First 30 minutes checklist

前30分钟检查清单

markdown
undefined
markdown
undefined

Breaking news response

突发新闻响应

Event: [Brief description] Time detected: [HH:MM] Initial source: [Where we learned of this]
事件: [简要描述] 发现时间: [HH:MM] 初始来源: [信息获取渠道]

Immediate actions (0-10 min)

即时行动(0-10分钟)

  • Verify event is real (minimum 2 independent sources)
  • Alert editor/team lead
  • Check wire services (AP, Reuters, AFP)
  • Monitor official accounts (agencies, officials)
  • DO NOT publish unverified claims
  • 验证事件真实性(至少2个独立来源)
  • 通知编辑/团队负责人
  • 查看通讯社消息(AP、Reuters、AFP)
  • 监控官方账号(机构、官员)
  • 不得发布未经核实的内容

Verification phase (10-30 min)

核实阶段(10-30分钟)

  • Primary source contacted/confirmed
  • Location verified (if applicable)
  • Official statement obtained or requested
  • Eyewitness accounts gathered (note: unverified)
  • Social media claims flagged for verification
  • 联系并确认主要来源
  • 核实事件地点(如适用)
  • 获取或请求官方声明
  • 收集目击者陈述(注:未核实)
  • 标记社交媒体上需要核实的主张

First publication decision

首次发布决策

  • What we KNOW (confirmed facts only)
  • What we DON'T know (be explicit)
  • What we're working to confirm
  • Attribution clear for every claim
undefined
  • 已确认事实(仅包含已核实内容)
  • 未知信息(明确说明)
  • 待确认事项
  • 所有主张均明确标注来源
undefined

Newsroom escalation matrix

新闻编辑室升级矩阵

python
from enum import Enum
from dataclasses import dataclass
from typing import List

class CrisisLevel(Enum):
    LEVEL_1 = "routine"      # Single reporter can handle
    LEVEL_2 = "elevated"     # Editor involvement needed
    LEVEL_3 = "major"        # Multiple reporters, editor oversight
    LEVEL_4 = "critical"     # All hands, executive involvement

@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:
        """Determine if event needs escalation."""
        triggers = [
            len(self.unconfirmed_claims) > 5,  # Too many unknowns
            "fatalities" in self.description.lower(),
            "official" in self.description.lower(),
            "government" in self.description.lower(),
        ]
        return any(triggers)

ESCALATION_TRIGGERS = {
    CrisisLevel.LEVEL_2: [
        "Multiple fatalities confirmed",
        "Major public figure involved",
        "Legal/liability concerns",
        "Significant local impact",
    ],
    CrisisLevel.LEVEL_3: [
        "National news potential",
        "Active danger to public",
        "Major institution affected",
        "Coordinated misinformation detected",
    ],
    CrisisLevel.LEVEL_4: [
        "Mass casualty event",
        "Government/democracy implications",
        "Our organization directly involved",
        "Imminent physical threat",
    ],
}
python
from enum import Enum
from dataclasses import dataclass
from typing import List

class CrisisLevel(Enum):
    LEVEL_1 = "routine"      # Single reporter can handle
    LEVEL_2 = "elevated"     # Editor involvement needed
    LEVEL_3 = "major"        # Multiple reporters, editor oversight
    LEVEL_4 = "critical"     # All hands, executive involvement

@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:
        """Determine if event needs escalation."""
        triggers = [
            len(self.unconfirmed_claims) > 5,  # Too many unknowns
            "fatalities" in self.description.lower(),
            "official" in self.description.lower(),
            "government" in self.description.lower(),
        ]
        return any(triggers)

ESCALATION_TRIGGERS = {
    CrisisLevel.LEVEL_2: [
        "Multiple fatalities confirmed",
        "Major public figure involved",
        "Legal/liability concerns",
        "Significant local impact",
    ],
    CrisisLevel.LEVEL_3: [
        "National news potential",
        "Active danger to public",
        "Major institution affected",
        "Coordinated misinformation detected",
    ],
    CrisisLevel.LEVEL_4: [
        "Mass casualty event",
        "Government/democracy implications",
        "Our organization directly involved",
        "Imminent physical threat",
    ],
}

Rapid verification framework

快速核查框架

The 5-minute verification

5分钟快速核查法

When time is critical, prioritize these checks:
markdown
undefined
时间紧迫时,优先完成以下检查:
markdown
undefined

Rapid verification checklist

快速核查清单

Source check (1 min)

来源核查(1分钟)

  • Who is claiming this?
  • Are they in position to know?
  • Have they been reliable before?
  • 提出该主张的主体是谁?
  • 他们是否有知情权限?
  • 过往是否可靠?

Corroboration (2 min)

交叉验证(2分钟)

  • Does anyone else confirm?
  • Check wire services
  • Check official sources
  • 是否有其他主体确认该内容?
  • 查看通讯社消息
  • 查看官方来源

Red flags (1 min)

风险预警(1分钟)

  • Too perfect/dramatic?
  • Matches known false narratives?
  • Single source only?
  • 内容是否过于完美/戏剧化?
  • 是否匹配已知虚假叙事?
  • 是否仅单一来源?

Decision (1 min)

决策(1分钟)

  • PUBLISH: Multiple credible sources, no red flags
  • HOLD: Needs more verification
  • MONITOR: Developing, don't publish yet
undefined
  • 发布:多可信来源,无风险预警
  • 暂缓:需进一步核实
  • 监控:事件在发展,暂不发布
undefined

Verification triage system

核查优先级排序系统

python
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, higher = more urgent to verify
    status: VerificationStatus = VerificationStatus.UNVERIFIED
    verification_notes: str = ""
    verifier: Optional[str] = None

class VerificationQueue:
    """Manage claims awaiting verification."""

    def __init__(self):
        self.claims = []

    def add_claim(self, claim: Claim):
        self.claims.append(claim)
        self._sort_by_priority()

    def _sort_by_priority(self):
        """Urgent claims first, then by time seen."""
        self.claims.sort(
            key=lambda c: (-c.urgency, c.first_seen)
        )

    def next_claim(self) -> Optional[Claim]:
        """Get highest priority unverified 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
python
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, higher = more urgent to verify
    status: VerificationStatus = VerificationStatus.UNVERIFIED
    verification_notes: str = ""
    verifier: Optional[str] = None

class VerificationQueue:
    """Manage claims awaiting verification."""

    def __init__(self):
        self.claims = []

    def add_claim(self, claim: Claim):
        self.claims.append(claim)
        self._sort_by_priority()

    def _sort_by_priority(self):
        """Urgent claims first, then by time seen."""
        self.claims.sort(
            key=lambda c: (-c.urgency, c.first_seen)
        )

    def next_claim(self) -> Optional[Claim]:
        """Get highest priority unverified 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

Crisis communication templates

危机沟通模板

Holding statement

占位声明

For when you need to say something but facts are incomplete:
markdown
undefined
适用于需要发声但事实尚未明确的场景:
markdown
undefined

Initial statement template

初始声明模板

[Organization] is aware of [brief description of situation].
We are actively [gathering information / investigating / monitoring the situation].
[If applicable: The safety of [stakeholders] is our top priority.]
We will provide updates as verified information becomes available.
For media inquiries: [contact] For [affected parties]: [resource/hotline]
Last updated: [timestamp]
undefined
[企业名称]已获悉[事件简要描述]。
我们正在积极[收集信息/开展调查/监控事件进展]。
[如适用:相关方的安全是我们的首要任务。]
我们将在获取核实信息后及时更新。
媒体咨询:[联系方式] [受影响方]咨询:[资源/热线]
最后更新时间:[时间戳]
undefined

Correction/clarification

更正/澄清声明

markdown
undefined
markdown
undefined

Correction notice

更正通知

Correction [or Clarification]: An earlier version of this [article/statement/post] [stated/implied] [incorrect information].
[If factual error]: The correct information is: [accurate facts].
[If misleading]: To clarify: [accurate context].
This [article/statement] has been updated to reflect accurate information.
We regret the error.
[Timestamp of correction]
undefined
更正[或澄清]:此前发布的[文章/声明/帖子]中[表述/暗示]了[错误信息]。
[若为事实错误]:正确信息为:[准确事实]。
[若为表述误导]:特此澄清:[准确背景]。
该[文章/声明]已更新为准确内容。
我们对此次失误深表歉意。
[更正时间戳]
undefined

Retraction (when necessary)

撤回声明(必要时)

markdown
undefined
markdown
undefined

Retraction notice

撤回通知

Retraction: [Publication name] is retracting [article title], published on [date].
[Brief explanation of what was wrong]: Our reporting [stated/relied on] [problematic element]. Subsequent verification revealed [why it was wrong].
[What you're doing about it]: We have [removed/updated] the article and are reviewing our editorial processes.
[Accountability]: We apologize to [affected parties] and our readers.
The full text of the original article is available [here/on request] for transparency.
Questions: [contact]
undefined
撤回声明:[发布平台名称]决定撤回于[日期]发布的[文章标题]。
[错误内容简要说明]:我们的报道[表述/依赖于]有问题的内容。后续核实发现[错误原因]。
[后续措施]:我们已[删除/更新]该文章,并正在审查编辑流程。
[问责说明]:我们向[受影响方]及读者致歉。
为保证透明度,原文全文可[在此查看/按需索取]。
疑问咨询:[联系方式]
undefined

Social media crisis response

社交媒体危机响应

Monitoring during crisis

危机监控

python
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  # positive, negative, neutral, misinformation
    reach: int  # followers/potential impressions
    requires_response: bool = False

class CrisisMonitor:
    """Track crisis-related social mentions."""

    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:
        """Real-time crisis overview."""
        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))
python
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  # positive, negative, neutral, misinformation
    reach: int  # followers/potential impressions
    requires_response: bool = False

class CrisisMonitor:
    """Track crisis-related social mentions."""

    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:
        """Real-time crisis overview."""
        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))

Response decision tree

响应决策树

markdown
undefined
markdown
undefined

Should we respond to this?

是否需要回应?

High priority (respond quickly)

高优先级(快速回应)

  • Factual misinformation spreading rapidly
  • Direct question from journalist
  • Affected party seeking help
  • Influential account spreading false info
  • 虚假信息快速传播
  • 记者直接提问
  • 受影响方寻求帮助
  • 有影响力账号传播虚假信息

Medium priority (respond thoughtfully)

中优先级(审慎回应)

  • General negative sentiment
  • Questions about our response
  • Comparisons to competitors' handling
  • 普遍负面情绪
  • 关于我们应对措施的疑问
  • 与竞争对手应对方式的比较

Low priority / Do not engage

低优先级/不回应

  • Obvious trolling
  • Bad faith actors
  • Pile-on with no new claims
  • Emotional venting (let it pass)
  • 明显恶意挑衅
  • 不良行为主体
  • 无新主张的跟风评论
  • 情绪宣泄(任其发展)

Never respond

绝对不回应的情况

  • While angry
  • With unverified information
  • In a way that escalates conflict
  • By deleting legitimate criticism
undefined
  • 情绪激动时
  • 信息未核实
  • 回应会加剧冲突
  • 删除合理批评
undefined

Internal crisis coordination

内部危机协调

Communication chain

沟通链路

python
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:
    """Maintain record of all crisis decisions."""
    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:
        """Generate timeline for after-action review."""
        lines = ["# Crisis Response Timeline\n"]
        for entry in self.entries:
            lines.append(
                f"**{entry['timestamp']}** - {entry['action']}\n"
                f"- Decision by: {entry['decision_maker']}\n"
                f"- Rationale: {entry['rationale']}\n"
                f"- Outcome: {entry['outcome']}\n"
            )
        return '\n'.join(lines)
python
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:
    """Maintain record of all crisis decisions."""
    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:
        """Generate timeline for after-action review."""
        lines = ["# Crisis Response Timeline\n"]
        for entry in self.entries:
            lines.append(
                f"**{entry['timestamp']}** - {entry['action']}\n"
                f"- Decision by: {entry['decision_maker']}\n"
                f"- Rationale: {entry['rationale']}\n"
                f"- Outcome: {entry['outcome']}\n"
            )
        return '\n'.join(lines)

Status update template

状态更新模板

For keeping stakeholders informed:
markdown
undefined
用于向利益相关方同步信息:
markdown
undefined

Crisis status update #[X]

危机状态更新 #[X]

As of: [timestamp] Next update: [scheduled time]
截至时间: [时间戳] 下次更新: [计划时间]

Current situation

当前态势

[2-3 sentence summary of where things stand]
[2-3句话总结当前进展]

What we know

已确认事实

  • [Confirmed fact 1]
  • [Confirmed fact 2]
  • [已确认事实1]
  • [已确认事实2]

What we're working on

正在推进的工作

  • [Action item 1] - [owner]
  • [Action item 2] - [owner]
  • [行动项1] - [负责人]
  • [行动项2] - [负责人]

Key decisions made

已做出的关键决策

  • [Decision] - [rationale]
  • [决策内容] - [决策依据]

Immediate next steps

下一步紧急行动

  1. [Next action]
  2. [Next action]
  1. [行动内容]
  2. [行动内容]

Resources needed

所需资源

  • [Resource/support needed]

Contact: [Crisis lead name and number]
undefined
  • [所需资源/支持]

联系人: [危机负责人姓名及联系方式]
undefined

Post-crisis review

危机后复盘

After-action checklist

事后检查清单

markdown
undefined
markdown
undefined

Post-crisis review template

危机后复盘模板

Timeline reconstruction

时间线还原

  • When did we first learn of the crisis?
  • When did we first respond publicly?
  • Key decision points and timing
  • 我们首次获悉危机的时间?
  • 首次公开回应的时间?
  • 关键决策节点及时间

What went well

做得好的方面

  • [Specific success 1]
  • [Specific success 2]
  • [具体成功点1]
  • [具体成功点2]

What could improve

待改进之处

  • [Gap or failure 1] → [Recommended fix]
  • [Gap or failure 2] → [Recommended fix]
  • [差距/不足1] → [建议改进方案]
  • [差距/不足2] → [建议改进方案]

Process questions

流程问题

  • Did escalation work as intended?
  • Were the right people involved?
  • Did we have accurate information when needed?
  • Was external communication timely and accurate?
  • 升级机制是否按预期运行?
  • 参与人员是否合适?
  • 需要时是否有准确信息?
  • 对外沟通是否及时准确?

Specific improvements

具体改进措施

  • Update crisis protocol to address [gap]
  • Train team on [identified weakness]
  • Add [resource/tool] for future incidents
  • 更新危机应对流程以解决[差距]
  • 针对[已识别弱点]开展团队培训
  • 为未来事件添加[资源/工具]

Documentation

文档归档

  • All communications archived: [ ] Yes
  • Decision log complete: [ ] Yes
  • Media coverage compiled: [ ] Yes
undefined
  • 所有沟通内容已归档:[ ] 是
  • 决策日志完整:[ ] 是
  • 媒体报道已整理:[ ] 是
undefined

Misinformation rapid response

虚假信息快速响应

Counter-messaging framework

反 messaging 框架

markdown
undefined
markdown
undefined

Misinformation response checklist

虚假信息响应检查清单

Before responding

回应前评估

  • Is this claim spreading significantly?
  • Will our response reach the affected audience?
  • Could responding amplify the false claim?
  • 该主张是否在大量传播?
  • 我们的回应能否触达受影响受众?
  • 回应是否会放大虚假主张?

The response formula

回应公式

  1. Lead with truth (don't repeat the myth first)
  2. Be specific about what's accurate
  3. Explain briefly why the false claim is wrong
  4. Provide source for accurate information
  1. 以真相开篇(不要先重复虚假信息)
  2. 明确说明准确内容
  3. 简要解释虚假主张错误的原因
  4. 提供准确信息的来源

Example structure

示例结构

GOOD: "The event starts at 7pm at City Hall. Some posts incorrectly listed the time as 5pm."
BAD: "Some people are saying the event is at 5pm. That's wrong. It's actually at 7pm." (Repeating the myth first reinforces it)
undefined
正确:“活动于晚7点在市政厅开始。部分帖子错误地将时间列为5点。”
错误:“有人说活动在5点开始,这是错误的,实际是7点。” (先重复虚假信息会强化受众记忆)
undefined

Journalist safety during crisis

记者危机现场安全

markdown
undefined
markdown
undefined

Field safety checklist

外勤安全检查清单

Before deployment

出发前

  • Editor knows your location and check-in schedule
  • Emergency contacts updated
  • Phone charged, backup battery
  • First aid basics reviewed
  • Exit routes identified
  • 编辑知晓你的位置及汇报时间表
  • 紧急联系人已更新
  • 手机已充电,备有充电宝
  • 已复习基础急救知识
  • 已确定撤离路线

During coverage

报道期间

  • Regular check-ins maintained
  • Location sharing active
  • Press credentials visible
  • Recording when safe to do so
  • Not taking unnecessary risks for story
  • 保持定期汇报
  • 位置共享已开启
  • 记者证可见
  • 安全情况下进行记录
  • 不为报道冒不必要的风险

If situation escalates

若局势升级

  • Leave immediately if directed
  • Follow crowd flow, don't fight it
  • Protect equipment but not at personal risk
  • Contact newsroom ASAP
undefined
  • 接到指令立即撤离
  • 跟随人群流动,不要逆流
  • 保护设备但不以个人安全为代价
  • 立即联系新闻编辑室
undefined

Related skills

相关技能

  • source-verification - Verify claims during fast-moving events
  • social-media-intelligence - Monitor spread of information
  • interview-transcription - Document statements accurately

  • source-verification - 快速事件中验证主张
  • social-media-intelligence - 监控信息传播
  • interview-transcription - 准确记录陈述

Skill metadata

技能元数据

FieldValue
Version1.0.0
Created2025-12-26
AuthorClaude Skills for Journalism
DomainCommunications, Journalism
ComplexityAdvanced
字段
版本1.0.0
创建时间2025-12-26
作者Claude Skills for Journalism
领域传播、新闻
复杂度高级