| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- # 门户页面与子页的"内容归口"登记表 (2026-09-17, 用户令 1)
- #
- # 回答两个问题:
- # ① 这一页/这一件 **该不该随输入数据(data/raw)变化**?
- # ② 它 **算不算产物**? 算的话归到哪、由谁生成、怎么查它陈旧没陈旧?
- #
- # 五个 kind (每个都有机器可查的规则, 见 scripts/pages_audit.py):
- # static 受管静态: 外壳正文(方法论/架构/案例叙述)。不随输入数据变, 进 git, 不引用产物。
- # live 实时取数: iframe/链接到组件服务或 API。永远与产物一致, 不需要快照, 也不进产物管理。
- # data-citing 静态正文 + **产物引用脚注**(如"判据全量见 outputs/<场>/…/findings.json")。
- # 正文不随数据变; 但被引用的产物路径必须**存在**, 否则引用悬空(挂羊头)。
- # data-derived 数据派生快照: 把产物/输入烘进页面(内嵌 JSON / 指纹 / 生成时间)。
- # ★**属于产物**: 必须登记 source + (source_sha256 或 generated_at), 并做陈旧检测。
- # frozen-delivery 冻结交付件: 带版本号与日期的客户交付件(治理清单/报告/资料包)。
- # 按**交付版本**变, 不随数据自动变; 必须能从文件名或正文读到版本号与日期。
- #
- # 判定依据(evidence)一律写清"凭什么这么判", 可复核: 看的是页面里有没有 iframe/fetch/内嵌数据/产物引用,
- # 以及内容是不是由 data/raw 算出来的。要改分类, 先改证据。
- version: 1
- farm: rudong
- # 产物路径写法统一: 一律以 outputs/<场>/… 记录(相对安装根), 便于陈旧检测直接定位文件
- pages:
- # ── 门户外壳里的静态叙述页 (受管, 不随数据变) ───────────────────────────────
- - id: index
- title: 总览
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "外壳 #index 段 2,519 B: 0 iframe / 0 fetch / 0 产物引用; 正文是产品承诺与入口导航"
- - id: architecture
- title: 系统架构
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "外壳 #architecture 段 3,037 B: 无数据引用; 描述分层架构"
- - id: method
- title: 方法
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "外壳 #method 段 2,959 B: 无数据引用; 描述方法论"
- - id: findings
- title: 经验发现
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "★用户问的三页之一。外壳 #findings 段 2,322 B: 0 iframe / 0 fetch / 0 产物引用; 正文是公司级经验叙述(59 项内部检查 → 8 条公开教训, 60+ 个风场), 不是本场站数据的函数 ⇒ 不该随输入数据变, 也不是产物。若将来要放本场站计数, 必须改成 data-derived 并登记 source"
- - id: case_hydraulic
- title: 案例·液压
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "外壳 #case_hydraulic 段 6,187 B: 无数据引用; 案例叙述"
- # ── 实时取数页 (永远与产物一致) ──────────────────────────────────────────
- - id: cms
- title: 振动·CMS
- kind: live
- changes_with_data: true
- file: release/portal_src/shell.html
- live_target: http://127.0.0.1:18020/
- evidence: "外壳 #cms 段里 1 个 iframe + 2 个链接指向组件 :18020 (src/windcms/serve.py), 组件按需读产物 ⇒ 页面本身不存快照, 数据变了刷新即变"
- - id: recalc
- title: 数据重算
- kind: live
- changes_with_data: true
- file: release/portal_src/shell.html
- live_target: http://127.0.0.1:28084/ops
- evidence: "外壳 #recalc 段只有 1 个到 /ops 的链接(网关提供, 后端即真实状态)"
- - id: login
- title: 登录
- kind: live
- changes_with_data: true
- file: release/portal_src/shell.html
- live_target: http://127.0.0.1:18033/v2
- evidence: "外壳 #login 段链接到工作台 :18033/v2"
- - id: admin
- title: 系统状态
- kind: live
- changes_with_data: true
- file: release/portal_src/shell.html
- live_target: http://127.0.0.1:28084/healthz
- evidence: "外壳 #admin 段由外壳 JS 拉网关 /healthz 渲染(段内无静态数字)"
- # ── #sim 仿真与回放 ────────────────────────────────────────────────────
- - id: sim
- title: 仿真与回放
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "★用户问的三页之一。外壳 #sim 段 50,767 B 是**静态叙述**(机理/图纸说明), 段内 0 iframe / 0 fetch; 6 个链接指向 :18792 仿真台页与 :64292 三维工作台。仿真台的输入是**图纸/机型参数**(configs/machine_packs), 不是 data/raw ⇒ 页面本体不该随输入数据变"
- children:
- - name: 控制律仿真台资料包 (5 页)
- file: release/如东SWT40_控制律仿真台_20260906.zip
- members_in_zip: ["0_四系统合页.html", "1_偏航系统.html", "2_传动链与功率.html", "3_发电机与热管理.html", "4_变桨轮毂液压.html"]
- served_by: release/sim_sys_server.py
- kind: frozen-delivery
- changes_with_data: false
- version: "20260906"
- evidence: "release/sim_sys_server.py 直接从 zip 里读这 5 页 ⇒ 冻结资料包(日期在包名里); 内容为图纸/机理仿真, 不随输入数据变"
- - name: 三维拆装工作台
- file: release/viewer/unit-workbench.html
- kind: static
- changes_with_data: false
- evidence: "release/viewer/** 由图纸/三维模型构建(build-*.py + esbuild), 与 data/raw 无关; rev=hub-review-v1 是评审版本号"
- - name: 控制律仪表台面板 (门户内嵌)
- file: release/portal_src/templates/tpl-swt40_控制律仪表台_外发版.html.html
- kind: data-citing
- changes_with_data: false
- 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
- evidence: "面板正文是固定的判据/仪表说明, 只把产物当**脚注引用**('判据与证伪条件全量见 outputs/rudong/yaw_verify/findings.json') ⇒ 正文不随数据变, 但被引用的产物必须在位"
- - name: 四系统判据面板 (门户内嵌, 4 份)
- file: release/portal_src/templates/tpl-swt-subsystem-*.html.html
- kind: data-citing
- changes_with_data: false
- cites: [outputs/rudong/yaw_verify/findings.json]
- known_gap:
- missing: [outputs/rudong/yaw_verify/findings.json]
- why: "同仪表台: 引用 yaw_verify/ 专项产物, 该目录不在本包"
- evidence: "同仪表台: 静态正文 + findings 引用脚注"
- # ── #documents 交付文档 ───────────────────────────────────────────────
- - id: documents
- title: 交付文档
- kind: static
- changes_with_data: false
- file: release/portal_src/shell.html
- evidence: "★用户问的三页之一。外壳 #documents 段 5,690 B 是导航页(0 fetch), 1 个 iframe 指向网关下发的治理清单 HTML(release/如东/**)。段内不含数据快照"
- children:
- - name: 治理清单交付包 (分册 + 全册 + 正式报告)
- file: "release/如东/如东治理清单_交付_20260901/**/*.html"
- kind: frozen-delivery
- changes_with_data: false
- 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
- source: null
- known_gap:
- why: "内容是实际运行状态的函数(脱敏快照), 属产物性质; 但页面里没有任何指纹/生成时间/来源登记, 全仓也搜不到生成端 ⇒ 现在**无法做陈旧检测**。处置: 要么补生成端并改成带 source_sha256 的产物(推荐), 要么在登记表里把它降级为 frozen-delivery 并接受它会过期(需用户裁定)"
- evidence: "★这是问题所在: 1.5 MB 的场站状态快照(脱敏版), 内容是实际运行状态的函数 ⇒ **属于产物**, 但页面里**没有任何指纹/生成时间/来源登记**, 全仓也搜不到生成端 ⇒ 目前游离在产物管理之外(无溯源、无陈旧检测、无重算入口)"
- - name: 如东取数单
- file: release/如东/如东取数单_2026-08-21.html
- kind: data-derived
- changes_with_data: true
- cites:
- - outputs/rudong/cleaned/native_scturbine.parquet
- - outputs/rudong/m5_cms_tcm/tcm_index.parquet
- - outputs/rudong/structured/events/fastlog.parquet
- known_gap:
- missing:
- - 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: 取数单是「要哪些数据」的清单页, 明列产物路径 ⇒ 随产物结构变; 现在只有日期没有指纹, 也没有生成端随包
- # ── 门户内嵌的数据派生页 (28 个模板里的) ──────────────────────────────
- - id: embed_replay_chain
- title: 传动链实际运行回放 (门户内嵌单文件版)
- kind: data-derived
- changes_with_data: true
- file: release/portal_src/templates/tpl-如东传动链实际运行诊断_单文件版.html.html
- embedded_json_var: RUDONG_ACTUAL_REPLAY
- source_key: source
- source_sha_key: source_sha256
- json_escaped: true
- source: outputs/rudong/cleaned/turbine_1min.parquet
- known_gap:
- missing:
- - outputs/rudong/cleaned/turbine_1min.parquet
- - 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 的机制已经齐了, 缺的是那份产物本身"
- evidence: "内嵌 window.RUDONG_ACTUAL_REPLAY 带 source=outputs/rudong/cleaned/turbine_1min.parquet 与 source_sha256 ⇒ 明明白白的产物烘入快照; **已可做陈旧检测**(产物在位时)"
- - id: embed_standard_panel
- title: 标准面板 (门户内嵌)
- kind: data-derived
- changes_with_data: true
- file: release/portal_src/templates/tpl-standard_panel_zh.html.html
- generated_at_key: 生成
- source: outputs/rudong/paradigm_r1/releases/E1_measure_replay_20260905/release.yaml
- cites:
- - outputs/rudong/structured/reference/turbine_master.parquet
- known_gap:
- 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 子目录) ⇒ 只能按正文里的生成时间判断新旧"
- evidence: "正文带 '生成 2026-09-05 16:28' 与产物引用 ⇒ 某次生成的数据快照; 缺 source_sha ⇒ 只能按生成时间+引用在位判断"
- - id: embed_coverage_ch0
- title: 覆盖度报告 ch0 (门户内嵌)
- kind: data-derived
- changes_with_data: true
- file: release/portal_src/templates/tpl-coverage_ch0_zh.html.html
- generated_at_key: 生成
- source: null
- known_gap:
- why: "正文写 '源: e1_base.parquet @e3b531b8eddf8197' —— 那份 e1_base.parquet 不在本包 ⇒ 指纹虽有, 但对不上任何在位文件, 溯源链断在包外; 只能按生成时间 2026-09-05 16:28 判新旧"
- evidence: "正文写 '生成 2026-09-05 16:28 · 源: e1_base.parquet @e3b531b8eddf8197 (10-min, 2,973,638 格, 38 台)' ⇒ 数据派生; 但 e1_base.parquet **不在本包** ⇒ 溯源链断在包外"
- - id: embed_u6_sim
- title: U6 变桨液压仿真台 (门户内嵌)
- kind: static
- changes_with_data: false
- file: release/portal_src/templates/tpl-U6_变桨液压仿真台.html.html
- evidence: "图纸派生的物理回路仿真台面板; 无内嵌数据/指纹/产物引用"
- - id: embed_u6_health
- title: U6 液压公共站健康报告 (客户版, 门户内嵌)
- kind: frozen-delivery
- changes_with_data: false
- file: release/portal_src/templates/tpl-U6_液压公共站健康报告_客户版.html.html
- version: "客户版"
- evidence: "984 KB 客户交付报告; 文件名标 '客户版'; 无数据指纹 ⇒ 按交付件冻结(缺版本号/日期, 见 audit 提示)"
- - id: embed_gearbox_report
- title: 整机综合诊断与风险评估 (主轴冲击深挖 V2.1, 门户内嵌)
- kind: frozen-delivery
- changes_with_data: false
- file: release/portal_src/templates/tpl-如东海上风电场_整机综合诊断与风险评估_主轴冲击深挖修订版V2.1.html.html
- version: "V2.1"
- evidence: "3.7 MB 综合诊断报告, 文件名带修订版号 V2.1; 报告类交付件按版本发布"
- - id: embed_reports_4
- title: 分系统评估报告 (主轴承/齿轮箱/发电机/变桨, 门户内嵌 4 份)
- kind: frozen-delivery
- changes_with_data: false
- file: release/portal_src/templates/tpl-report-*.html.html
- evidence: "4 份系统评估报告(0.7–3.4 MB), 无内嵌数据/指纹; 属交付报告(缺版本号/日期登记)"
- - id: embed_governance_12
- title: 治理清单分册 (门户内嵌 12 份)
- kind: frozen-delivery
- changes_with_data: false
- file: release/portal_src/templates/tpl-governance-*.html.html
- evidence: "12 份治理分册(0–11), 与 release/如东 下的分册同源; 冻结交付件"
- - id: embed_sc1_local
- title: SC1 本地占位 (门户内嵌)
- kind: static
- changes_with_data: false
- file: release/portal_src/templates/tpl-sc1-local.html.html
- evidence: "0.4 KB 占位面板"
|