全部文档已读取完毕，并做了少量实现侧交叉验证。以下为详尽结构化清单。

# 风电智能分析平台（wind_agent）文档规范与待办分析报告

前置说明：项目根目录还有 `PLAN.md`、`PROBLEMS.md`、`HANDOFF.md`、`AGENTS.md`、`总思路/`、`考核指标资料/`（本次未要求阅读，但多份文档引用它们作为"完整计划与未完成项"的权威源）。

---

## A. design.md 与 UI_ARCHITECTURE.md

### A1. 标注"待定/后续/未完成/Phase X"的条目（含行号）

**design.md**（/Users/dyx/Code/wind_agent/design.md）：

| 行号 | 原文要点 | 性质 |
|---|---|---|
| L8 | "（UI 改版批次 1 已完成令牌、AppShell 与状态徽标；**页面内部原语按批次迁移，迁移期间页面残留的旧类名以本文件为目标逐步替换**）" | 显式未完成：旧类名向新体系迁移仍在进行 |
| L6 | "原 `src/components/monitoring/tokens.ts`（`DATA_STATUS_PALETTE` / `FONT_SIZE`）已于批次 2 删除" | 已完成的历史事项（佐证迁移分批） |
| L227 | 使用规则 1："不用 `bg-[#…]` 任意值，也不直接写 `slate-*`/`emerald-*` 等调色板类表达语义（**存量按批次迁移**）" | 显式未完成：存量组件按批次迁移中 |
| L274 | "Phase 6b 前全部为 `not_calculated`，显示'未计算'及原因"（W09 六格） | Phase 依赖 |

design.md 本体多为"已完成规范"口径（批次 1–5 已落），真正的待办集中在"存量迁移"（L8、L227）。

**UI_ARCHITECTURE.md**（/Users/dyx/Code/wind_agent/UI_ARCHITECTURE.md）——待办密度更高：

| 行号 | 原文要点 | 性质 |
|---|---|---|
| L10 | 表标题"**当前规范与待改造项**（2026-10-06 UI 改版批次 3 后与 design.md 及代码核对）" | 文档自带核对表 |
| **L21** | 待改造行："**<768 设备详情底部抽屉、表格卡片化未实现；全局时间范围已接入首页（其余页取数待接入）**" | 最明确的未完成项 |
| L96 | "Assessment / Analysis / History：统一 **PagePlaceholder**（灰色 Alert，说明所属 Phase 与依赖契约）" | 三个页面为占位 |
| L95 | DashboardView："…→ **AI 占位（muted Card）**" | 占位 |
| L127 | W09 六格"**Phase 6b 前**全部为 `not_calculated`" | Phase 依赖 |
| L201-203 | `components/assessment/`："（**Phase 7b/9 实装时建立**：日历热图、封顶池进度、run 明细抽屉、阻断原因）"；`components/history/`："（**Phase 7b/9 实装时建立**：asOf 回放、run 链对比、对账）" | 组件目录尚未建立 |
| L269 | "诊断分析当前为规则推导并如实标注，**Phase 8 AI 管线接入后**在此输出带证据引用的结论" | Phase 8 依赖 |
| **L287** | "**待改造：<768px 设备详情改底部抽屉、表格改卡片列表（当前未实现）**" | 与 L21 重复强调 |
| L8 | "UI 改版批次 1～3，2026-10-06 完成"（StatusBadge/EmptyState/ErrorState/LoadingSkeleton 已重建） | 已完成声明 |
| L297 | 验收目标中要求 Playwright 覆盖各项（与 frontend README L37"当前仅类型检查"矛盾，见 D） | 待建测试基线 |

### A2. 两文档声明的页面清单与导航结构

**页面清单**（UI_ARCHITECTURE L103-112 页面职责表 + frontend/README L8-14 路由表，二者一致）：

| 路由 | 页面 | 状态（frontend/README 口径） |
|---|---|---|
| `/windfarm`（默认首页） | 全场态势：6 Stat、趋势+告警 Top N、W09、矩阵 | 已实现（L9） |
| `/monitoring` | 系统拓扑、系统清单、设备、数据质量、上报、异常、检修、诊断抽屉 | 已实现（L10） |
| `/forecast` | 预测版本、曲线、发布链 | "基础页面已实现"（L11） |
| `/dashboard` | 旧版概览（W09 六格 + 明细表 + AI 占位） | "基础页面"（L12；UI_ARCHITECTURE L95） |
| `/station-profile` | 场站档案 12 类 | UI_ARCHITECTURE L74-81（2026-10-07 新增；frontend README 表中未列，已漂移） |
| `/meteorology` | 实时/历史实测、NWP 批次、未来 72h、分层风况、极端天气 | UI_ARCHITECTURE L83-93（2026-10-07；frontend README 表中未列，已漂移） |
| `/assessment`、`/assessment/:metricCode` | 10 类考核及结算 | **占位，Phase 7b/9**（frontend README L13） |
| `/analysis` | 带证据引用的 AI 风险分析 | **占位（Phase 8）**（L14） |
| `/history` | asOf 回放、run 链对比、对账 | **占位（Phase 7b/9）**（L14） |

**导航结构**（UI_ARCHITECTURE L25-36 AppShell）：
- `SideNavigation`（shadcn Sidebar，可折叠 icon 模式，底部连接状态条）；侧栏三分组"现场监控 / 预测考核 / 分析"（L120），⌘K 命令面板、⌘B 折叠（design.md L34）。
- `TopContextBar` 48px：Breadcrumb（页面标题/场站 Select）| TimeRangeToggle 全局时间范围 | DataSourceBadge | UpdatedAt/Refresh | BackendStatus（仅异常）。
- `/monitoring` 内部 6 Tab：系统拓扑 / 系统清单 / 设备列表 / 数据质量与上报 / 异常事件 / 检修维护（L57-64）。
- `/meteorology` 内部 6 Tab（L84-90）。

---

## B. OPEN_SOURCE_FRAMEWORKS.md（/Users/dyx/Code/wind_agent/OPEN_SOURCE_FRAMEWORKS.md）

### 调研结论总纲
- L5："**保留现有技术栈，按业务阶段补充组件，不做整体重构**。新增组件须…满足全内网离线部署（PLAN 附录 G §11）。当前有效决策以 `PLAN.md` 为准，本文件只做选型汇总。"（更新时间 2026-10-06，按 PLAN V1.6.1）

### 分类清单（L9-14）
- **已采用**（L11）：Vue 3 + TS + Vite + Pinia + Router、Tailwind CSS v4、ECharts、Vue Flow、FastAPI + SQLAlchemy + Pydantic、PostgreSQL/TimescaleDB、Alembic、SSE、Docker Compose、pytest。
- **计划采用**（L12）：shadcn-vue（含 Reka UI、lucide-vue-next）、PG `execution_tasks` 任务队列、MinIO 客户端、Playwright + vitest、LangGraph / LangChain、本地账号 + JWT 最小鉴权。
- **备选（满足条件再评估）**（L13）：Celery、Temporal、NATS JetStream、Keycloak、OpenTelemetry + Prometheus + Grafana、MapLibre GL JS。
- **已部署但未使用 / 不使用**（L14）：Redis（compose 已部署、无客户端代码）、WebSocket（已由 SSE 取代）、Kafka、Airflow、微服务拆分、Element Plus。

### "计划采用"的阶段与约束（L33-39）
| 组件 | 阶段 | 行号 |
|---|---|---|
| shadcn-vue | UI 改版（已决定）；注意 L34 写"图标用 **lucide-vue-next**""**仅浅色**" | L34 |
| PG `execution_tasks`（`SELECT … FOR UPDATE SKIP LOCKED` + 租约，worker 独立 compose 服务） | **Phase 6b** | L35 |
| MinIO 客户端（先写对象核验哈希再提交事务） | **Phase 6b** | L36 |
| vitest + Playwright | **Phase 2.5 起** | L37 |
| **LangGraph / LangChain**：`router → {ask_data / rule_change / scenario / retro} → evidence_check → answer`；**初期外部 LLM API（OpenAI 兼容），10b 切本地模型；AI 不改数值** | **Phase 8** | L38 |
| 本地账号 + JWT（viewer/operator/rule_approver/admin 四角色，按场站限定作用域） | **Phase 6b** | L39 |

### 备选触发条件（L43-50）
Celery（PG 队列瓶颈时）、Temporal（跨小时/天长流程）、NATS（真实 SCADA 接入后）、Keycloak（企业 SSO）、OTel+Prometheus+Grafana（生产运维需求确定后）、MapLibre（有真实经纬度与离线瓦片后）。

### 不使用（L54-60）
Redis：compose 已部署但无客户端代码，"**是否保留在生产编排中于 10b 定夺**"（L54）；WebSocket 已统一为 SSE（L55）；Kafka/Airflow/微服务（L56-58）；Grafana 只做运维监控备选不替代业务前端（L59）；Element Plus/在线 CDN 与离线部署冲突（L60）。

### 推荐实施顺序（L62-69）
Phase 2.5（vitest+Playwright 基线、SSE 单连接）→ Phase 3b（Alembic + 原始观测修订）→ Phase 6b（任务队列、MinIO、鉴权）→ UI 改版（**"阶段归属待确认，建议在 7b/9 页面做实前完成"**，L67）→ Phase 8（LangGraph Agent）→ Phase 10b（离线部署与本地模型切换，L69）。

### 关于 Milvus / vLLM
文档**完全没有提及** Milvus 与 vLLM（仅提"10b 切本地模型"）。LangGraph/LangChain 是唯一登记的 AI 框架。

### 实现侧快速核验（哪些"计划采用"尚未接入）
- `backend/pyproject.toml` dependencies 仅 fastapi/uvicorn/pydantic/pydantic-settings/sqlalchemy/alembic/python-dateutil/python-ulid（L6-15），**无 LangGraph/LangChain、无 MinIO 客户端、无 Redis 客户端、无 JWT 库** → Phase 6b/8 的"计划采用"全部未接入。
- vitest/Playwright 未接入（frontend README L37 自述"当前仅类型检查与构建"）。
- shadcn-vue **已实际接入**：`frontend/package.json` 有 `reka-ui@^2.10.5`、`@lucide/vue@^1.52.0`、`@fontsource-variable/inter`；`frontend/src/components/ui/` 已有 20 个组件（alert/badge/button/card/command/dialog/dropdown-menu/input/scroll-area/select/separator/sheet/sidebar/skeleton/table/tabs/toggle/toggle-group/tooltip）。→ OPEN_SOURCE_FRAMEWORKS L34"仅浅色"和"lucide-vue-next"的表述已过时（design.md L12-13 已改为 `@lucide/vue` + 浅/深色双主题），属文档内部漂移。
- Redis/minio 容器在 `deploy/docker-compose.yml` 中仍在（postgres/redis/minio/backend/frontend 五服务，L12-128），与"已部署但未使用"一致。

---

## C. deploy/README.md（/Users/dyx/Code/wind_agent/deploy/README.md）

### 部署方案现状
- **定位为本地开发编排**：L1 标题"deploy — **本地开发编排**"；L67 明言"**生产部署不使用本文件（本地开发编排）**"。
- deploy/ 目录实际只有 3 个文件：`README.md`、`check-docker.sh`、`docker-compose.yml`。**没有生产 compose、没有 nginx 配置、没有离线部署包**——生产/离线部署（OPEN_SOURCE_FRAMEWORKS L69 的 Phase 10b）尚无落地文档或脚本。
- 服务表（L8-14）：postgres（timescaledb pg16:5432）、redis（6379）、minio（9000/9001）、backend（8000，启动前 `alembic upgrade head`）、frontend（5173 Vite dev server，热加载）。即**前端生产构建产物/静态服务也未在编排内**（dev server 形态）。
- 启动方式：根目录 `./run` 一键（只读审计 → 国内源测速 → 构建 → 健康核验；选项菜单见 L25-29；`WIND_SEED_DATE` 覆盖演示数据日期 L30；`DOCKER_MIRROR_PROXY=none` 直连 L31）。

### 文档登记的"待做/未完成"项
| 行号 | 内容 |
|---|---|
| L11 | redis 服务"**已部署，当前未使用（无客户端代码，PLAN §27）**" |
| L60-62 | MinIO 官方社区镜像已随上游归档删除，改用 `docker.1ms.run/coollabsio/minio` 固定副本，可用 `MINIO_IMAGE` 覆盖（供应链 workaround） |
| L63-64 | 禁止直接 `docker compose up --build`，必须经 `./run` 全局测速入口 |
| L65 | "数据库现状（2026-10-06）：…**后续迁移（`observation_revisions` 等）按 PLAN §27 新表清单推进**" |
| L66 | "生产 nginx 需对 SSE 路径关闭缓冲（PLAN 附录 G §11）"——**规划性表述，生产 nginx 本身尚不存在** |
| L67 | "生产部署不使用本文件"——**生产部署方案整体缺位（待 Phase 10b）** |

---

## D. backend/frontend README

### backend/README.md（/Users/dyx/Code/wind_agent/backend/README.md）
**模块结构**（L7-12）：`app/api/`（站点、监控、预测、上报、试算 HTTP 接口）、`app/assessment/`（Decimal 纯函数、评价点校验、B2/H1 月度池）、`app/services/assessment_preview.py`、`app/domain|db|repositories/`、`app/seed/`（只读加载 archify 事实种子）。
**启动**：`docker compose -f deploy/docker-compose.yml up -d backend` + health 检查（L18-19）；测试经 conftest 自动临时 SQLite 隔离（L22-27）。
**与"待完成"相关原文**：
- L3："已实现基础数据、上报生命周期、预测发布版本及 **Phase 6a 公式试算**；完整计划与未完成项见根目录 `PLAN.md` 附录 E。**真实数据装配、历史选版、MinIO 快照和 CalculationRun 持久化仍待 Phase 6b**。"
- L32：`AUTO_CREATE_SCHEMA` 为假时校验库版本=head（development 告警、其他环境拒启）。
- L42-58 公式试算约束：仅 development（L58 非 development 返回 404）；L54"W09-02 的 ratePct 是调用方提供的情景比率，不是…官方合格率"；L56"**证据有效性、真实预测来源和调度认定在 6b 装配层核验**"；L58"试算不会进入六指标当前结果"。

### frontend/README.md（/Users/dyx/Code/wind_agent/frontend/README.md）
**现状口径 2026-10-06**（L3）：Vue3+TS+Vite+Pinia+Router+Axios、ECharts、Vue Flow。
**路由状态表待完成项**（L8-14）：`/assessment`、`/assessment/:metricCode`"**占位，Phase 7b/9 做实**"；`/analysis`、`/history`"**占位（Phase 8、Phase 7b/9）**"。
**已过时/漂移的声明**（实测核验）：
- L21："**即将引入 shadcn-vue**（2026-10-06 决定）…图标用 lucide-vue-next…**仅浅色主题**。引入前现有组件保持不变" —— 实际已引入（reka-ui、`@lucide/vue`、20 个 ui 组件），且 design.md/UI_ARCHITECTURE 已声明支持深色；此段是滞后文案。
- L22："已知实现差异：**`index.html` 仍从 Google Fonts 加载 IBM Plex Sans**…UI 改版时移除（PROBLEMS P23）" —— 实测 `frontend/index.html` 已无 fonts.googleapis 引用，且 package.json 已有 `@fontsource-variable/inter`；此"已知差异"已解决但 README 未更新。
- 另外表中未列 `/station-profile`、`/meteorology` 两个 2026-10-07 新页面（与 UI_ARCHITECTURE L74/L83 漂移）。
**启动**：根目录 `./run` → http://localhost:5173（L28-31）；容器内 `pnpm build`，宿主机不装依赖（L33）。
**测试待办**：L37"**当前仅类型检查与构建；vitest 与 Playwright 基线在 Phase 2.5 建立（PLAN §28.1）**"。

---

## E. archify_docs（README、w09/README、DESIGN、HISTORY）

### E1. 数据管线说明（archify_docs/w09/README.md L84-95）
```
考核指标资料/W09...pdf（唯一内容来源；md 副本在 source/ 供回归测试溯源）
  ↓ 人工核对提取（sourceRefs 溯源）
data/*.json（节点、关系、来源与条件的唯一业务事实源）
  ↓ scripts/generate_w09_map.py（总览 + 系统数据流；缺底层关系即失败）
*.json（IR）
  ↓ archify render + check-render-output（deliver 本机不可用）
*.html
  ↓ reroute_knowledge_map_edges.py（render 后必跑）
  ↓ inject_*.py（六个注入，每次交付后必跑）
最终产物
```
关键规则：每条关系带 `id` + 顶层 `certainty`（取 sourceRefs 最弱值，L97）；组件覆盖以参考资料 §2.1 的 42 个二级分组为准、回归测试从源文档现读（L98）；未规定条目必须 `notInSourceDocument`+`pending`（L99）；H1/豁免以细则原文为准（L100，2026-09-21 教训）；事实源权威层级"附件3 细则原文 > 汇总 > W09 解析 PDF"（L105）；**A2/A3/A4 属标准内冲突、只能 pending，不得拍板，待批准 ThresholdVersion 落地**（L106）。

### E2. archify_docs/README.md（总目录）
- 本目录是"项目**唯一**的文档与穿透关系展示载体"（L3）；系统"**不执行考核公式计算、实时预测或 AI 推理**"（L31）。
- certainty 三级 confirmed/conditional/pending（L37-42）；"不把推断当作业务事实"，A2/A3/A4 保留为待确认规则版本（L45）。
- "交付后注入"：悬停链路高亮等能力须 `scripts/inject_*.py` 在交付后注入，"**每次重新交付都必须重跑全部注入**"（L50）。
- **环境限制**（L55-67）：`archify deliver` 在本机不可用（Node spawnSync 64KB stdout 截断，回执可达数百 KB → `delivery/receipt-invalid` 不写 HTML）；替代流程 `render` + `check-render-output`；"根因…建议向上游反馈"（L67）。

### E3. w09/README.md 待办/已知限制（L230-238"已知限制"）
| 行号 | 内容 |
|---|---|
| L232 | dataflow 每列硬上限 5 行（结构性限制） |
| L233 | 总览图 **1481 条构图警告**（0 错误，pass）；"继续下降需要改布局范式（渲染器要求显式 pos，不做自动布局）"，计数不作为验收标准 |
| L234 | 图底必须留给图例（`legend/content-overlap` 错误级） |
| L235 | dataflow 视图在 1440×900 无法免滚动（官方示例同样不通过） |
| L236 | `deliver` 不可用（环境级，总览回执 773KB） |
| L237 | **系统流图 30 条构图警告（label-route-clearance 等）："修复需重排几何，尚未处理"** |
| L238 | 总览为策划视图 74 节点/143 连线；完整模型 113 节点/273 关系在 data/*.json |

其他登记：L80 改生成器常量先删 `scripts/__pycache__`（踩坑记录）；L5 "2026-09-21 起的修改统一记录仓库根目录 HANDOFF.md"；L11（archify_docs/README）HANDOFF 10 条上限滚动。

### E4. DESIGN.md（/Users/dyx/Code/wind_agent/archify_docs/w09/DESIGN.md）
- 定位：固化 12 张图的样式/布局/尺寸/走线约束，"未经评审不得偏离本文数值；要改先改本文，再改源，最后 rebuild_all.sh 重跑并复测"（L4-7）；"数值冲突时以源代码 + 交付 HTML 实测为准并回改本文。**每轮布局改动后须同步更新本文的'实测快照'**"（L10-11）。
- 总则五条（L17-29）：定制必须落幂等脚本、流程固定 render→check→落盘→走线重排→六注入→断言、断言清单、构图口径 0 错误、改后 rebuild + 回归 39/39。
- 迭代检查单（L242-252）7 步；实测快照（L256-265，2026-09-04，"布局变更后必须更新"）：总览 1342×750、74 节点/143 边、告警 1481；system-flows 30 警告（"41 → 30"，L261）；单指标页计数等。
- 值得注意的口径张力：L40-41 "宽高比须接近视口 1.6…总览当前 1342×750 ≈ **1.79**"（规范值与快照值不一致，靠 containment 实测放行）。

### E5. HISTORY.md（/Users/dyx/Code/wind_agent/archify_docs/w09/HISTORY.md）收尾与遗留
- **文件头 L3**："图谱阶段（#1~#54，自新到旧）的历史交接存档，**2026-09-21 起不再更新**；后续全部修改统一记录仓库根目录 `HANDOFF.md`。" 即 HISTORY 的最后条目为 #54（2026-09-04），**2026-09-04 → 2026-09-21 之间及之后的图谱变更只存在于 HANDOFF.md**（本次 10 份文档不含 HANDOFF.md；w09/README L100 记录了 2026-09-21 的 H1/豁免修正与事实源权威层级收敛，可佐证该日仍有图谱工作）。
- **最新条目 #54（2026-09-04，L7-34）遗留问题（L31-34）**：hover 态 WPF 周边链路标签密度偏高，"涉及 render 布局层，**暂不做**"；五列改版后 TSS 右侧虚线平行、DDCS 线束较密（0 错误/30 告警），"若需进一步疏线可调列2各行 y 或给 TSS 边加走廊分道"（未做）。
- #52（L86-88）：密集重排后告警数随行距压缩变化；个别页标签压线属可重排几何问题。
- #51（L114-116）：Edge headless 偶发卡住，需 timeout+重试。
- #48（L185）：visual-check 因 Edge CDP 崩溃（SIGABRT）多次失败，"**待环境恢复后按 `ARCHIFY_CHROME_NO_SANDBOX=1` + 重试包装补跑**"。
- 尾部旧条目（2026-09-01/02，即用户所看最后 200 行）仍有未销项：
  - #31（L475-479）：键盘路径未禁边热区（Tab 聚焦不可见边仍点亮节点，"需要时再评估"）；`w09-knowledge-map-temp.html` 遗留临时文件"待确认后删除"；README 第 29 行文案与单档设计不符。
  - #32（L452-455）：`optimize_row_order.py` 未纳入 rebuild_all；reroute 脚本"边总数"输出标签建议改"改写条数"（本次未动）。
  - #29（L531-535）：#2 测风塔/气象站进主图**暂缓**（画布无余量）；`ind-sys`（预测系统建设）下游追溯需业务方在 relations.json 补关系（"属业务判断，未自行编造"）；`0.2h` 拆分未复核 da-flow/4h-flow 手工 IR。
  - #28（L563-569）/ #27（L597-602）：构图警告攀升（结构性）；readability 余量仅 0.1px（原始）/9px（注入后）；10 个站控/外部设备不进总览；同 #29 的 ind-sys 与 0.2h 问题。
  - #26（L630-635）：20 个新组件"只进事实源，未进总览"，建议另起"系统组件全景图"——"**尚未做，需先与使用方确认**"；总览 360 警告（结构性）；da-flow/4h-flow 的 0.2 表述未复核。

---

## 汇总："文档承诺但可能未落实"与"文档自登记待办"交叉要点

1. **UI 层最大待办**（UI_ARCHITECTURE L21/L287）：<768px 设备底部抽屉与表格卡片化未实现；全局时间范围仅接入首页，其余页取数待接入；design.md L8/L227 的存量旧类名迁移仍在分批进行。
2. **页面欠账**：`/assessment`、`/analysis`、`/history` 三页占位（Phase 7b/9、8）；`components/assessment|history/` 目录未建立；`/dashboard` 的 AI 占位卡。
3. **后端欠账**（backend README L3/L56）：真实数据装配、历史选版、MinIO 快照、CalculationRun 持久化待 Phase 6b；证据有效性/真实预测来源/调度认定在 6b 核验。
4. **AI 管线零接入**：LangGraph/LangChain（Phase 8）、本地模型切换（10b）在 backend 依赖中完全不存在；Milvus/vLLM 从未被任何文档登记。
5. **测试欠账**：vitest + Playwright 基线（Phase 2.5）未建，frontend 仅类型检查——但 UI_ARCHITECTURE L297 的验收目标已写明 Playwright 覆盖清单（承诺先于实现）。
6. **部署欠账**：deploy/ 仅有本地开发 compose；生产 compose、nginx（含 SSE 关缓冲）、离线部署均为规划文字（deploy README L66-67、OPEN_SOURCE L69 Phase 10b）；Redis 去留待 10b 定夺（L54）。
7. **文档自身漂移**（对照实现需注意）：frontend README L21/L22（"即将引入 shadcn-vue/仅浅色/Google Fonts 未移除"）与实际代码及 design.md/UI_ARCHITECTURE 不符；OPEN_SOURCE L34 同样滞后（lucide-vue-next、仅浅色）；frontend README 路由表缺 `/station-profile`、`/meteorology`。
8. **archify 图谱侧未销项**：系统流图 30 条警告"尚未处理"（w09 README L237）；A2/A3/A4 pending 待批准 ThresholdVersion（L106）；`w09-knowledge-map-temp.html` 待删（HISTORY L478）；测风塔进主图暂缓（L533）；"系统组件全景图"尚未做（L632）；Edge CDP 不稳定致 visual-check 待补跑（L185）；HISTORY 2026-09-21 后停止更新，后续变更须查 `HANDOFF.md`。