> ## Documentation Index
> Fetch the complete documentation index at: https://worldmonitor-spike-bun-package-manager.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 燃料短缺警报方法论

> World Monitor 如何依据分层证据标准策展并发布燃料短缺警报，覆盖喷气燃料、汽油、柴油与取暖油四类主要品种，详解证据来源、阈值判定逻辑、地理归属规则与当前的人工维护现状，帮助能源与物流团队及时识别区域性供应链风险与突发短缺信号。

## 从这里开始

这里只追踪一件事：**哪些地方的人加不到油。** 喷气燃料、汽油、柴油、取暖油，全球范围。

### "贵"不等于"没有"

价格飙升不是短缺。价格上涨的原因很多，大多平淡无奇；把每一次跳涨都当成供应紧急事件，只会做出一个没人能据以行动的信息流。

因此触发条件永远是**物理的**：航班因缺油取消、加油站关闭、正式实施配给、进口被切断。必须真的有什么停下来了。

### 两个层级，以及它们的区别

| 层级          | 含义                          |
| ----------- | --------------------------- |
| `watch`     | 有一个可信来源报告了供应受限。值得知道，但尚未确立。  |
| `confirmed` | 多个彼此独立的来源，或一个监管机构加上具体的运营影响。 |

把一条记录从 `watch` 升到 `confirmed` 需要来自真正独立渠道的相互印证——两家媒体加一个监管机构、三家不同媒体，或一个监管机构加一个硬性运营信号（如已取消的航班）。十篇改写同一条通讯社稿件的报道，凑不成一次确认。

<Warning>
  **目前这份登记表由人工维护，而不是由分类器生成。** 警报策展在 `scripts/data/fuel-shortages.json` 中，seeder 原样发布该文件。这里没有信息流采集，没有大模型二次校验，也**没有任何代码会提升、降级或过期一条记录**——`scripts/_fuel-shortage-registry.mjs:6-14` 明确写着分类器管线只做过设计、从未上线。

  因此，请把下面的层级读作**策展人所遵循的证据标准**，而不是你可以依赖的自动化。特别要注意：一条 `confirmed` 记录不会自行过期，一条已经不再成立的警报会一直显示，直到有人把它编辑掉。请以每条记录自身的时间戳为准，不要假设过期问题已经替你处理好了。
</Warning>

## 我们追踪什么

四类产品，两个严重性层级，全球覆盖：

| 产品   | `watch` 层级 | `confirmed` 层级 |
| ---- | ---------- | -------------- |
| 喷气燃料 | ✓          | ✓              |
| 汽油   | ✓          | ✓              |
| 柴油   | ✓          | ✓              |
| 取暖油  | ✓          | ✓（仅冬季）         |

仅价格飙升不是短缺信号。我们以物理供应约束为键：航班取消、加油站关闭、正式配给、进口削减。

## 各层级的证据标准

以下是一条记录要携带某个严重性所必须满足的阈值。它们是**策展契约**——编辑这份登记表时所适用的标准，也是计划中的分类器上线后将要强制执行的规则。下面的内容目前都没有由代码检查。

### watch 层级

一个可信来源：

* 监管机构公告（EPRA、NMDPRA、OGRA、CAA UK、DGCA），**或**
* 航空公司 / 机场运营公告，**或**
* 带有 ≥ 1 个佐证观测的国家级通讯社报道

### confirmed 层级（更严格的标准）

从 `watch` 升到 `confirmed` 需要：

* **两个不同的新闻机构 + 一个监管机构**，或
* **三个不同的新闻机构**，或
* **一个监管机构 + 一个直接运营影响信号**（航空公司信息流中的航班取消、正式配给公告、加油站关闭列表）

设计中的管线还包含一道大模型二次校验：只有它同意，记录才会被提升；不同意则保持在 `watch`。该校验属于计划中的分类器，目前并未运行。

### 衰减策略——已设计，尚未强制执行

* `confirmed` 在 7 天内没有新的佐证信号 → 降级为 `watch`
* `watch` 在 14 天内没有新信号 → 移除

<Warning>
  **目前没有任何代码执行这些时限。** 它们是维护契约，不是保证：没有任何机制会自行降级或移除一条记录，因此一场已经缓解的短缺会一直发布，直到有人把它编辑掉。请把这些时限当作这份登记表所遵循的标准，而把每条记录自身的时间戳当作事实。
</Warning>

当分类器上线后，过时的短缺将不再静默持续——每次降级都会向计划的公开修订日志写入一条记录。请参阅 [`/corrections`](/zh/corrections) 了解设计好的审计界面形状与当前状态。

## 证据透明度

每个公开短缺行内联暴露其 `evidenceSources[]` — 您可以看到这条记录依据的来源并自行判断。这正是这份登记表站得住脚的原因：不是因为有机器给它打了分，而是因为打分的依据是公开的。

对于任何 `confirmed` 行，面板展示：

* 新闻机构 / 监管机构名称
* 来源日期
* 分类器版本 + 置信度

代理（MCP 客户端）通过 `ListFuelShortages` RPC 接收相同的结构化证据——响应中的每个 `FuelShortageEntry` 都包含完整的 `evidence.evidenceSources[]` 数组，与 UI 抽屉渲染的内容一致。

## 根因归因

每个短缺行都带有一个原因链，而不仅仅是严重性：

* `chokepoint` — 追溯到咽喉要道状态变化的物理供应约束
* `pipeline_disruption` — 登记表中特定管道离线
* `sanction` — 新的制裁机构名单触发进口削减
* `upstream_refinery` — 炼油厂检修或停电
* `logistics` — 港口 / 铁路 / 卡车瓶颈
* `policy` — 政府故意限制

## 紧急覆盖（计划中）

一个 `energy_asset_overrides` 持久化层是设计好的紧急界面，用于读者标记分类明显错误的罕见情况。写入将是仅管理员、非关键路径——默认流程将保持不变，且每次覆盖都会向修订日志发出一个 `override` 触发条目。

**状态（v1 上线）：** 覆盖持久化层尚未实现。读者标记的更正目前通过 [GitHub issues](https://github.com/koala73/worldmonitor/issues) 人工处理；一旦该层随分类器上线，将通过自动化的覆盖路径流转。请参阅 [`/corrections`](/zh/corrections) 了解计划中覆盖条目的形状。

## 已知限制

* 非英语监管机构信息流会有一定延迟；我们在逐步添加它们。
* 在政治噪声较大的国家，"watch" 层级可能会频繁波动——这是有意的；如果读者想要更严格的视图，可以过滤为仅 `confirmed`。
* 取暖油短缺是季节性的，且在通讯社报道中代表性不足；冬季月份信号更强。

## 更正

请参阅 [`/corrections`](/zh/corrections) 了解计划的修订日志格式
（每次层级变更都会附带其触发器——`classifier` / `source`
/ `decay` / `override`——以及使用的来源）。写入条目的分类器
将在上线后发布；更正目前通过
[GitHub issues](https://github.com/koala73/worldmonitor/issues) 人工处理。
