|
@@ -123,6 +123,29 @@ FAMILIES: list[dict] = [
|
|
|
'RedMask/YellowMask; 裁决=src/sop/fusion_diag.py::fuse)',
|
|
'RedMask/YellowMask; 裁决=src/sop/fusion_diag.py::fuse)',
|
|
|
gen='scripts/rudong_fusion_run.py', input='m5_cms_tcm', pred=('rows',),
|
|
gen='scripts/rudong_fusion_run.py', input='m5_cms_tcm', pred=('rows',),
|
|
|
why='★按口径重建(无标准答案): 台号用 WTGnn 形态(消费端 registry 的键), 与 l6 的 f"{n}#" 不同'),
|
|
why='★按口径重建(无标准答案): 台号用 WTGnn 形态(消费端 registry 的键), 与 l6 的 f"{n}#" 不同'),
|
|
|
|
|
+ # ★2026-09-19 源代码化(第三批):三族由观澜自算顶上。★族表是**首个命中生效**,故这几族必须
|
|
|
|
|
+ # 排在通配族(`vib_handoff_and_scans` = `m5_cms_tcm/*.{json,parquet,csv,md,txt}`、`tcm_replay`、
|
|
|
|
|
+ # 旧的 `ontology_releases`)**之前**,否则新件会被旧族认领成"无生成端"。
|
|
|
|
|
+ dict(id='vib_line_energy_share', glob='m5_cms_tcm/line_energy_share.parquet', kind='raw-derived',
|
|
|
|
|
+ func='六层链 energy_share 步 · 线能量占比',
|
|
|
|
|
+ algo='scripts/rudong_line_energy_share.py(±2bin 带内能量 ÷ 全谱能量 ×100; 候选线与分母同 oem_scan_plan)',
|
|
|
|
|
+ gen='scripts/rudong_line_energy_share.py', input='m5_cms_tcm', pred=('rows',),
|
|
|
|
|
+ why='2026-09-19 补上: 该步脚本此前未随包(chain_gap_check 报"1 个步骤脚本未随包"); 只报占比不定级'),
|
|
|
|
|
+ dict(id='vib_mask_thresholds', glob=['tcm_compatible_replay/model/mask_thresholds.tsv',
|
|
|
|
|
+ 'tcm_compatible_replay/model/mask_thresholds.说明.json'],
|
|
|
|
|
+ kind='raw-derived', func='TCM 掩码阈值件 (逐台逐测点逐工况的黄/红线)',
|
|
|
|
|
+ algo='scripts/tcm_mask_thresholds_build.py(中位 + 3/6×MAD 自适应基线, 基线先净化, 样本门 n≥30; '
|
|
|
|
|
+ '调 src/sop/discriminators.py::adaptive_baseline_threshold 单一实现)',
|
|
|
|
|
+ gen='scripts/tcm_mask_thresholds_build.py', input='m5_cms_tcm', pred=('rows',),
|
|
|
|
|
+ why='★**观澜自算**阈值, 不是厂商阈值: 现场导出件里没有掩码定义(25,679 个 decode 只有 NumberOfMasks: 175) '
|
|
|
|
|
+ '⇒ 厂商阈值无法复原; 口径写在同目录 mask_thresholds.说明.json, 页面据此标注(workbench.py 分支)'),
|
|
|
|
|
+ dict(id='ontology_releases', glob='ontology/release_*/*', kind='raw-derived',
|
|
|
|
|
+ func='本体发布层 r1/r2(网关 /release/ 只读暴露)',
|
|
|
|
|
+ algo='scripts/ontology_release_build.py(对象库投影: r1 契约层 = objects.json 快照 + manifest; '
|
|
|
|
|
+ 'r2 = 同快照 + layering.json 分层覆盖声明, 不合并主库)',
|
|
|
|
|
+ gen='scripts/ontology_release_build.py', input='西门子4.0技术资料', pred=('rows',),
|
|
|
|
|
+ why='2026-09-19 由观澜自算顶上: 原为随包件(0 处写入方) ⇒ 新机器 /release/ 两件必 503; '
|
|
|
|
|
+ 'manifest 里写 source.sha16, 谁都能核出两层是同一份对象库的投影'),
|
|
|
dict(id='vib_fleet_scalar_z', glob='m5_cms_tcm/fleet_scalar_z.parquet', kind='raw-derived',
|
|
dict(id='vib_fleet_scalar_z', glob='m5_cms_tcm/fleet_scalar_z.parquet', kind='raw-derived',
|
|
|
func='振动线 · 全场标量 z 值 (fusion 步出件)',
|
|
func='振动线 · 全场标量 z 值 (fusion 步出件)',
|
|
|
algo='scripts/rudong_fusion_run.py(逆向工程实现: 窗索引 scalar_value → 同 (传感器,测量,工况) 族中位 '
|
|
algo='scripts/rudong_fusion_run.py(逆向工程实现: 窗索引 scalar_value → 同 (传感器,测量,工况) 族中位 '
|
|
@@ -146,6 +169,9 @@ FAMILIES: list[dict] = [
|
|
|
gen=None, input=None, pred=(), why='振动六层链四步脚本未随包(oem_frequency_scan 等)⇒ '
|
|
gen=None, input=None, pred=(), why='振动六层链四步脚本未随包(oem_frequency_scan 等)⇒ '
|
|
|
'运行期不从交付包补(用户令 2026-09-17); 要出件须研发补生成端, '
|
|
'运行期不从交付包补(用户令 2026-09-17); 要出件须研发补生成端, '
|
|
|
'或由现场正本随原始件进 data/raw 后重算'),
|
|
'或由现场正本随原始件进 data/raw 后重算'),
|
|
|
|
|
+ # (2026-09-19: `line_energy_share` / `mask_thresholds` / `ontology_releases` 三族已移到前面按
|
|
|
|
|
+ # raw-derived 记账 —— 族表是**首个命中生效**, 必须排在通配族 `vib_handoff_and_scans` / `tcm_replay`
|
|
|
|
|
+ # / `ontology_releases(旧)` 之前, 否则新件会被旧族认领成"无生成端")
|
|
|
dict(id='vib_figs', glob='m5_cms_tcm/figs/*', kind='shipped',
|
|
dict(id='vib_figs', glob='m5_cms_tcm/figs/*', kind='shipped',
|
|
|
func='振动线出图(谱图/趋势图)', algo='(无生成端)', gen=None, input=None, pred=(),
|
|
func='振动线出图(谱图/趋势图)', algo='(无生成端)', gen=None, input=None, pred=(),
|
|
|
why='随包快照(振动线出件)'),
|
|
why='随包快照(振动线出件)'),
|
|
@@ -225,9 +251,8 @@ FAMILIES: list[dict] = [
|
|
|
func='变桨侧派生件(零位/日粒度)', algo='(无生成端;rebuild_from_raw --scada 只覆盖其中一部分)',
|
|
func='变桨侧派生件(零位/日粒度)', algo='(无生成端;rebuild_from_raw --scada 只覆盖其中一部分)',
|
|
|
gen=None, input=None, pred=(), why='无生成端 ⇒ 运行期不从交付包补(用户令 2026-09-17), '
|
|
gen=None, input=None, pred=(), why='无生成端 ⇒ 运行期不从交付包补(用户令 2026-09-17), '
|
|
|
'页面降级; 要出件须研发补生成端'),
|
|
'页面降级; 要出件须研发补生成端'),
|
|
|
- dict(id='ontology_releases', glob='ontology/release_*/*', kind='shipped',
|
|
|
|
|
- func='本体发布层 r1/r2(只读暴露给网关 /release/)', algo='(无生成端)', gen=None, input=None,
|
|
|
|
|
- pred=(), why='发布层清单, 由研发出件'),
|
|
|
|
|
|
|
+ # (2026-09-19: `ontology_releases` 已移到前面按 raw-derived 记账 —— 现在由
|
|
|
|
|
+ # scripts/ontology_release_build.py 从对象库投影生成, 不再是"由研发出件"的随包层)
|
|
|
# ★2026-09-19 用户令「所有的计算均要形成观澜的源代码」+「从重算台账生成 claim」:
|
|
# ★2026-09-19 用户令「所有的计算均要形成观澜的源代码」+「从重算台账生成 claim」:
|
|
|
# 这一族从"无生成端"改成 raw-derived —— 生成端 guanlan_facts_contract.py 本来就在包内,
|
|
# 这一族从"无生成端"改成 raw-derived —— 生成端 guanlan_facts_contract.py 本来就在包内,
|
|
|
# 原来缺的是**它的输入**(人裁底稿); 现在输入由上游族 ledger_claims 自算
|
|
# 原来缺的是**它的输入**(人裁底稿); 现在输入由上游族 ledger_claims 自算
|