源代码化清单_v0.1.md 6.9 KB

源代码化清单 v0.1(2026-09-19)

用户令:「所有的计算 均要形成 观澜的源代码,确保 观澜 在别的电脑安装后,系统运行正常。」

本清单是这条令的可核对底稿:把"页面/接口要用的每一件数据,是不是都由包内的源代码算出来的"逐族列清, 列出还没落到源代码的那些族的现状、喂谁、缺什么、怎么补。

判据来源(机器可读,不靠印象):scripts/products_reverse_audit.py::FAMILIES 的族表 —— kind=shipped/human 且 gen=None 的族就是"没有生成端";scripts/products_reverse_audit.py --check 在交付前会把族表与盘上账目对一遍(当前 rc=0:1,778 件全部 raw-derived)。


0. 今天已经补上源代码的两件(本令的第一批)

件 生成端(在包内) 喂谁 复检
m5_cms_tcm/handoff_vibration_v2.json(融合面) scripts/rudong_fusion_handoff.py(观澜自算:报告状态等级 + fusion_38.csv + L6 过闸线 → 同结构件;meta.from 标"观澜自算",盘上若有振动线正本则不覆盖) /detail/v2 的「需要关注」+「全场状态」(/api/fleet 的 fus) 链盘 38 行 / 需要关注 3 台(WTG09 齿轮箱、WTG17/WTG27 发电机)/ 矩阵 38 行 ✔
windscada/index.html(总览「全场状态」页) scripts/windscada_overview_build.py(用组件同一个快照烘焙器 src/windscada/ui/snapshot.py::bake 把 /api/fleet・curves・vibcms・本体响应烤进单文件页) /detail/v2 的「全场状态总览」<iframe src="/static/index.html"> 3.78 MB 真页面(此前是 2 KB 的"产物不在位"说明页)✔

两件都已进重算链:④b 里 model_run → fusion → report → **fusion_handoff** → kb;⑦ 之后新增 ⑦b 全场状态总览页(自算烘焙)。


1. 还没落到源代码的族(按"装了新机器会不会看到空白"排序)

# 族 件 喂谁(页面/接口) 现在没源代码的后果 需要的生成端(输入 → 产物) 可行性
1 pitch_shipped pitch/pitch_daily.parquet、pitch_zero_monthly.parquet /api/fleet 的变桨面判级(逐台页/总览的"变桨系统"格) 变桨面显示"缺件 ⇒ 不可判" scada_10min(+scada_1min) 的桨距角/桨叶油压通道 → 日粒度零位/漂移表 中:通道在数据里,需定"零位口径"(停机段中位?满发段中位?)
2 vib_handoff_and_scans 其余件 m5_cms_tcm/component_history.json、baseline_38.json、oem_frequency_scan.parquet 等扫描件 本体 trend_ingest(在升/闭环证据)、vib_confidence、maintenance 数据层页、报告附录 趋势/置信度面少一维;数据层页把这几件列成缺件 component_history:由逐窗 L6+标量按部件聚合历史;baseline_38:由 fleet_scalar_z/标量算三层基线(自/机群/绝对) 中:结构简单,但"口径"要与消费端字段对齐(trend_ingest.py 读法已可参照)
3 tcm_replay tcm_compatible_replay/model/mask_thresholds.tsv 等 CMS 报告/逐台页的厂商黄红阈值线;data.load_masks 页面只画机群中位,阈值线缺失(现文案:"厂商未设阈值") 由 data/raw/如东/windcms 导出件里的 red_alarm/yellow_alarm/red_hys/… 索引列反解出每 (测点,测量,工况) 的中位/黄/红标量 中偏低:索引里确有这些列(54 列之一),口径需反推 + 抽台对拍
4 ontology_releases ontology/release_r1/*、release_r2/* 网关 /release/*(只读发布层)、门户"发布层"入口 /release/ 两件 503(如实报缺) 由 ontology/objects.json + 层清单配置生成 r1/r2 层(kb_ingest/populate 之后跑一步) 易:纯搬运/投影,无判据
5 guanlan_contract + sop_workspace + paradigm_r1 guanlan/facts_contract_v0.json 及 derived/*;sop/findings.json;E3/E5/E8 底稿 门户「本场结论·契约生成」段、/detail 问答/报告页(/api/facts 503) 门户结论段停在旧数;问答/报告面 503 新增"从重算台账生成 claims"的生成端(alarms/workorders/oil/temp/本体 → 结构化 claim:claim_id/裁决/时间窗/样本/证据引用),替代人裁底稿作为输入 难且涉及口径:这一族原本是人裁结论(119 条),改成机器生成等于换口径 → 需你点头(见 §2)
6 windcms_pages 剩余件 windcms/ 下厂家报告转录、kb 之外的其他件 CMS 首页/工作台的少数入口 个别入口空 多数已由 windcms.py report/kb 覆盖;剩余是"厂家报告转录"(输入是现场 PDF,属外部正本) 易/不适用
7 vib_figs m5_cms_tcm/figs/* 振动报告里的插图 报告少图 由谱库渲染 PNG(可复用 src/windcms 的 SVG/绘图) 低优先
8 windscada_pages 剩余件 windscada/turbines/*、review/* 静态副本(运行期逐台页由组件动态出,不依赖它) 无实际影响 若要静态副本:复用 windscada_overview_build.py 的烘焙(逐台 slim 版) 易
9 human_deliverables windscada/mblub_alarm_cross.json、review_presented.json、送审结论 本体 populate 的证据来源之一 少一条人工证据(本体仍可用) 不应由源代码生成(是人对人的交证件/回执) 不适用(族表已记 kind=human,不参与呼应校验)

2. 需要你定的两件事(都不动手就永远不会自己好)

  1. 事实契约面(第 5 行):要不要让观澜从重算台账生成 claims(口径从"人裁结论"变成"机器判据 + 人复核")?
    • 选"要":我按 sop/findings.json 的字段结构写生成端,门户结论段/问答/报告三处随之由重算驱动;
    • 选"不要":门户那一段就按之前提的两条路处理(加"数据截至⋯、契约未随重算更新"横幅,或把该段摘掉)。
  2. 变桨面零位口径(第 1 行):pitch_daily 的"零位"用停机段中位还是满发段中位(或两者都出、分列)? 定了我就把生成端写进链(口径写进产物与台账)。

3. 执行顺序(我建议)

① ontology_releases 生成端(易,先把 /release 两件点亮)
② component_history / baseline_38 生成端(中,补趋势与置信度面)
③ tcm_replay 掩码阈值反解(中偏低,页面阈值线回来)
④ pitch 面生成端(中,需你先定零位口径)
⑤ 事实契约生成端(难,需你先定口径)
⑥ vib_figs / 静态逐台副本(低优先)

每补一族都走同一套纪律:生成端进包 + 进重算链 + 写进族表(gen/input) + 产物自登记 + 复检页面, 并在 docs/系统设计说明.md §13.6 与族表里把该族从"无生成端"改成"已在重算链上(附口径与验证依据)"。