Browse Source

用户令「仍未裁决的 3 项, 确定无用的可以删除」的裁决落地 —— 逐项核证, 只删确定无用的

① 19 条「引用悬空」⇒ 不删(核证后保留记账)
   四棵被引产物树 outputs/rudong/{cleaned,gearbox_life,yaw_verify,structured} 逐个 Test-Path
   全为 False ⇒ 引用确实悬空, 记账是实话; 被引页面又都是客户手里的冻结交付件 / 门户内嵌件
   (删了交付缺件、门户裂口), 而登记表的 known_gap 一删, 这些引用就变成没人管的悬空引用,
   pages_audit 反而按 rc=5 报错。⇒ 5 条 known_gap.why 逐条补写裁决语, 待该产物线随包后复检。

② 2 件「无生成端的取数页面」⇒ 不删, 改口径
   release/如东/全场状态一览_脱敏_20260825.html、release/如东/如东取数单_2026-08-21.html
   都是有真实内容的交付件(取数单另有 3 处交付侧引用), 不是无用件:
   kind: data-derived -> frozen-delivery + 补 version:, 与「release/如东/**/*.html 一律冻结交付」
   的统一口径对齐(消除同一页两种 kind 的自相矛盾); 性质是数据派生、无指纹无生成端、重算链
   不会刷新它、会随时间变旧 —— 如实留在 known_gap.why。

③ release/viewer/.npm-cache + .qa-profile ⇒ 真删(确定无用)
   64 件 15.9 MB npm 缓存 + 250 件 40.1 MB 浏览器 QA 用户目录; release/viewer 636.0 -> 580.0 MB
   (省 56.1 MB)。依据: 不在 git(release/viewer/ 整目录被 ignore)、无任何运行时代码读取、
   本就被打包器 ④ 类排除。打包器的排除规则保留当兜底(npm/QA 再跑会重新生成, 届时也不进包)。

④ 顺带核了两处像死代码的: scripts/ingest_ops_2025.py(被 check_portability.py 引用)、
   configs/contracts/*.yaml(被 src/paths.py 与 configs/registry.yaml 引用) ⇒ 都在链上, 不删。

复检: pages_audit 已知缺口 21 -> 18 条(两条不再按溯源缺失重复报), 检查项 27 -> 24;
rc=6 仅剩用户 14:58 亲手清产物导致的两条(page_product_cms / page_product_vib_raw_manifest),
属检查器在正常工作, 未擅自重建; config_audit rc=0、log_audit rc=0、呼应校验 rc=0、
入口引用闭合与编码守则 0 问题、三维页 64292 GET / -> 200。
docs §7 缺口表两条改为裁决结论、§9 排除表 ④ 记实测删除、变更记录增一行; §10/§12.2 自动块重生成。
zhouyang.xie 3 tuần trước cách đây
mục cha
commit
af02e375a8
2 tập tin đã thay đổi với 25 bổ sung và 14 xóa
  1. 23 12
      configs/portal_pages.yaml
  2. 2 2
      docs/系统设计说明.md

+ 23 - 12
configs/portal_pages.yaml

@@ -112,7 +112,7 @@ pages:
         cites: [outputs/rudong/yaw_verify/findings.json]
         known_gap:
           missing: [outputs/rudong/yaw_verify/findings.json]
-          why: 引用的产物目录 yaw_verify/ 不在本包(振动线/偏航专项产物未随包); 本包同类台账在 outputs/<场>/sop/findings.json。不改交付件正文(那是客户手里的冻结版本), 但按「引用悬空」如实记账, 见 docs §7
+          why: "引用的产物目录 yaw_verify/ 不在本包(振动线/偏航专项产物未随包); 本包同类台账在 outputs/<场>/sop/findings.json。不改交付件正文(那是客户手里的冻结版本), 但按「引用悬空」如实记账, 见 docs §7。★2026-09-17 裁决: 已核 cleaned/ gearbox_life/ yaw_verify/ structured/ 四棵产物树**确实都不在包内**(Test-Path 全 False) ⇒ **如实记账保留**: 不删交付件正文, 也不删本条(删了就变成没人管的悬空引用); 待该产物线随包后再复检"
         evidence: "面板正文是固定的判据/仪表说明, 只把产物当**脚注引用**('判据与证伪条件全量见 outputs/rudong/yaw_verify/findings.json') ⇒ 正文不随数据变, 但被引用的产物必须在位"
       - name: 四系统判据面板 (门户内嵌, 4 份)
         file: release/portal_src/templates/tpl-swt-subsystem-*.html.html
@@ -121,7 +121,7 @@ pages:
         cites: [outputs/rudong/yaw_verify/findings.json]
         known_gap:
           missing: [outputs/rudong/yaw_verify/findings.json]
-          why: "同仪表台: 引用 yaw_verify/ 专项产物, 该目录不在本包"
+          why: "同仪表台: 引用 yaw_verify/ 专项产物, 该目录不在本包。★2026-09-17 裁决: 四个被引目录均**确实不在包内** ⇒ 如实记账保留(同上)"
         evidence: "同仪表台: 静态正文 + findings 引用脚注"
 
   # ── #documents 交付文档 ───────────────────────────────────────────────
@@ -139,16 +139,18 @@ pages:
         evidence: "文件名自带版本号与日期(如 如东_液压系统治理清单_v1.2_2026-09-01.html / 全册_v4.5_2026-09-06.html) ⇒ 客户交付件, 随交付版本变; 内容虽由分析产出, 但**冻结发布**, 不该随输入数据自动改"
       - name: 全场状态一览 (脱敏)
         file: release/如东/全场状态一览_脱敏_20260825.html
-        kind: data-derived
-        changes_with_data: true
+        kind: frozen-delivery
+        changes_with_data: false
+        version: "20260825"
         source: null
         known_gap:
-          why: "内容是实际运行状态的函数(脱敏快照), 属产物性质; 但页面里没有任何指纹/生成时间/来源登记, 全仓也搜不到生成端 ⇒ 现在**无法做陈旧检测**。处置: 要么补生成端并改成带 source_sha256 的产物(推荐), 要么在登记表里把它降级为 frozen-delivery 并接受它会过期(需用户裁定)"
-        evidence: "★这是问题所在: 1.5 MB 的场站状态快照(脱敏版), 内容是实际运行状态的函数 ⇒ **属于产物**, 但页面里**没有任何指纹/生成时间/来源登记**, 全仓也搜不到生成端 ⇒ 目前游离在产物管理之外(无溯源、无陈旧检测、无重算入口)"
+          why: "**性质是数据派生**(内容是实际运行状态的函数, 脱敏快照), 但页面里没有任何指纹/生成时间, 全仓搜不到生成端 ⇒ 无法做陈旧检测、无重算入口。2026-09-17 裁决: **按冻结交付件管**(kind=frozen-delivery), 与 delivery_pages_all 的统一口径一致; 残留风险如实记账 —— 它会随时间变旧, 重算链不会刷新它; 若要它随数据变, 需另做生成端并补 source_sha256"
+        evidence: "★2026-09-17 用户裁决前的问题: 1.5 MB 的场站状态快照(脱敏版), 内容是实际运行状态的函数 ⇒ **属于产物**, 却没有任何指纹/生成时间/来源登记, 全仓搜不到生成端 ⇒ 曾游离在产物管理之外(无溯源、无陈旧检测、无重算入口)。**保留不删**: 它是客户手里的交付件, 删了交付就缺件"
       - name: 如东取数单
         file: release/如东/如东取数单_2026-08-21.html
-        kind: data-derived
-        changes_with_data: true
+        kind: frozen-delivery
+        changes_with_data: false
+        version: "2026-08-21"
         cites:
           - outputs/rudong/cleaned/native_scturbine.parquet
           - outputs/rudong/m5_cms_tcm/tcm_index.parquet
@@ -158,8 +160,17 @@ pages:
             - outputs/rudong/cleaned/native_scturbine.parquet
             - outputs/rudong/structured/events/fastlog.parquet
             - outputs/rudong/structured/events/fault_scada_xml.parquet
-          why: "取数单里列的 cleaned/、structured/ 两棵产物树不在本包(属缺失的六层链/结构化产物线, 见 docs §7); 本包在位的同类是 outputs/<场>/windscada/ 与 m5_cms_tcm/"
-        evidence: 取数单是「要哪些数据」的清单页, 明列产物路径 ⇒ 随产物结构变; 现在只有日期没有指纹, 也没有生成端随包
+          why: >-
+            取数单里列的 cleaned/、structured/ 两棵产物树不在本包(属缺失的六层链/结构化产物线, 见 docs §7);
+            本包在位的同类是 outputs/<场>/windscada/ 与 m5_cms_tcm/。
+            2026-09-17 裁决: **按冻结交付件管**(kind=frozen-delivery, 与 delivery_pages_all 口径一致) ——
+            包内无生成端, 它是"2026-08-21 那一版要哪些数据"的清单, 冻结在交付日;
+            残留风险: 产物结构再变它也不会自动跟, 需重出交付版
+        evidence: >-
+          取数单是「要哪些数据」的清单页, 明列产物路径 ⇒ **性质上随产物结构变**;
+          但只有日期没有指纹, 也没有生成端随包 ⇒ 无法自动刷新。**保留不删**:
+          另有 3 处交付侧引用它(`release/如东/如东取数单_2026-08-21/README.md`、
+          `如东现场一页单*.md`), 删了就成悬空引用
 
   # ── 页面侧产物 (页面读的就是它们; 用户令 2026-09-17: 是产物就要纳入产物管理) ──────────
   - id: page_product_cms
@@ -204,7 +215,7 @@ pages:
         - outputs/rudong/cleaned/turbine_1min_fingerprint.json
         - outputs/rudong/gearbox_life/load_spectrum_summary.csv
         - outputs/rudong/gearbox_life/tcm_dynamic_severity.csv
-      why: "页面烘入的 cleaned/ 与 gearbox_life/ 两棵产物树不在本包(六层链未随包, docs §7) ⇒ 内嵌快照**无法与当前产物比对**(拿不到当前值)。这恰恰说明它属于产物: 有 source+sha256 的机制已经齐了, 缺的是那份产物本身"
+      why: "页面烘入的 cleaned/ 与 gearbox_life/ 两棵产物树不在本包(六层链未随包, docs §7) ⇒ 内嵌快照**无法与当前产物比对**(拿不到当前值)。这恰恰说明它属于产物: 有 source+sha256 的机制已经齐了, 缺的是那份产物本身。★2026-09-17 裁决: 两棵目录确实不在包内 ⇒ 记账保留, 不删页面(它是门户内嵌件, 删了门户裂口)"
     evidence: "内嵌 window.RUDONG_ACTUAL_REPLAY 带 source=outputs/rudong/cleaned/turbine_1min.parquet 与 source_sha256 ⇒ 明明白白的产物烘入快照; **已可做陈旧检测**(产物在位时)"
   - id: embed_standard_panel
     title: 标准面板 (门户内嵌)
@@ -219,7 +230,7 @@ pages:
       missing:
         - outputs/rudong/paradigm_r1/releases/E1_measure_replay_20260905/release.yaml
         - outputs/rudong/structured/reference/turbine_master.parquet
-      why: "引用的 paradigm 发布件与 structured/ 参考表不在本包(paradigm_r1 目录在, 但没有该 release 子目录) ⇒ 只能按正文里的生成时间判断新旧"
+      why: "引用的 paradigm 发布件与 structured/ 参考表不在本包(outputs/<场>/paradigm_r1/ 下只有 experiments/, 没有 releases/; structured/ 目录不存在) ⇒ 只能按正文里的生成时间判断新旧。★2026-09-17 裁决: 两处在包内均不存在 ⇒ 记账保留, 不删内嵌件(门户 #method 段在用)"
     evidence: "正文带 '生成 2026-09-05 16:28' 与产物引用 ⇒ 某次生成的数据快照; 缺 source_sha ⇒ 只能按生成时间+引用在位判断"
   - id: embed_coverage_ch0
     title: 覆盖度报告 ch0 (门户内嵌)

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 2 - 2
docs/系统设计说明.md


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác