声明与现实:夸大声明台账
一次对早期Kshana版本的独立审计列出了十四项夸大声明(OC-0…OC-13):即面向公众的界面(README、演示、FoM(性能指标)标签、场景包)对某项能力的描述强于代码实际提供的程度。本页是关闭台账:每一行说明原始的夸大声明、处理方式及证据。出现两种处理方式:
- 撤回声明:措辞已更正,与代码一致(如实重新表述,能力无变化)。“没有代码,就没有声明。”
- 已被取代:该能力随后被真正构建并经过测试,因此原先的强声明变得准确。
回归守卫(tests/no_overclaims.rs)在每次CI(持续集成)运行时扫描现行的公开界面(README.md、docs/CAPABILITY.md、docs/GLOSSARY.md、web/capabilities.json、web/index.html、web/README.md,以及crates.io、PyPI(Python Package Index)和npm的首页README.crates.md、README.pypi.md、README.npm.md),若任何已撤回的不带限定的夸大声明措辞再次出现,则失败,因此任何一行都无法悄悄地从GREEN倒退。
全部十四行均为GREEN。
| OC(夸大声明) | 原始的夸大声明 | 处理结果 | 状态 | 证据 |
|---|---|---|---|---|
| OC-0 | “联合卡尔曼融合估计器”暗示是单一的交叉协方差滤波器;而代码运行的是两个相互独立的估计器 | 已被取代:已构建真正带交叉协方差的钟差与位置耦合卡尔曼滤波器 | 🟢 | src/fusion/coupled.rs(7个测试,其中包括100次试验的耦合对解耦集合,要求耦合滤波器的位置RMS(均方根)低于解耦滤波器的0.6倍,且耦合滤波器在100次试验中至少赢90次);CAPABILITY“Sensor fusion”→ 完整 |
| OC-1 | “时钟辅助的欺骗检测RAIM(接收机自主完好性监测)”暗示是多卫星RAIM检测器 | 撤回声明 → 已被取代:已重新表述为时钟稳定度的欺骗可检测性界限;真正的RAIM/ARAIM(HPL/VPL(HPL:水平保护级;VPL:垂直保护级))随后落地 | 🟢 | src/raim.rs(30个测试:快照式 + 解分离ARAIM、HPL/VPL、FDE(故障检测与排除)、Stanford图);docs/INTEGRITY.md |
| OC-2 | “压制干扰演示器”,背后却没有任何压制干扰代码 | 已被取代:已构建链路预算压制干扰模型J/S → 有效C/N₀ → 失锁 | 🟢 | src/jamming.rs(10个测试);README“Resilience”行 |
| OC-3 | “IMU(惯性测量单元)三轴组上的完整IMU阿伦方差噪声模型”:该模型实为单轴 | 撤回声明 → 已被取代:已重新表述为1-DOF(DOF:自由度)误差预算;三轴捷联INS(惯性导航系统)随后发布 | 🟢 | src/inertial三轴捷联(四元数姿态、NED(北-东-地)机械编排、圆锥/划船);ROADMAP“Inertial” |
| OC-4 | “混合PNT(定位、导航与授时)集成”暗示有耦合的GNSS/INS(GNSS:全球导航卫星系统)滤波器;而它其实是航位推算误差预算 | 撤回声明 → 已被取代:已重新表述为带可配置重新锁定的航位推算;真正的紧耦合GNSS/INS融合随后发布 | 🟢 | src/fusion/tightly_coupled17.rs(17状态UKF(无迹卡尔曼滤波器),带量子CAI(CAI:冷原子干涉仪)航位推算);CAPABILITY“Sensor fusion”→ 完整 |
| OC-5 | “经验证约2%”暗示有严格的强制关卡 | 撤回声明:VALIDATION.md说明的是强制执行的关卡(按随机种子平均为20–25%);“约2%”标注的是典型观测值,而不是关卡 |
🟢 | docs/VALIDATION.md“On tolerances”标题 |
| OC-6 | “跨平台确定性”,却没有已提交的证据 | 撤回声明:工具链固定为确切的发布版本;已提交各场景的黄金哈希,并设有可复现性关卡。(跨 OS/架构(OS:操作系统)的逐位一致仍是未解决的事项,此处如实说明。) | 🟢 | rust-toolchain.toml(通道1.93.0);tests/golden.rs(数值精确到1e-6);tests/cross_platform_golden.rs(对每个结果的输入指纹与形状取哈希,在Linux、macOS和Windows的CI矩阵上运行);scripts/check-reproducible.sh |
| OC-7 | “混合量子-经典PNT仿真器”暗示基于第一性原理的量子物理 | 撤回声明 → 已被取代:已重新表述为使用量子传感器性能模型的PNT韧性仿真器;基于第一性原理的Mach–Zehnder CAI物理随后落地 | 🟢 | src/inertial/quantum_imu.rs(26个测试:Mach–Zehnder相位、投影噪声1/√(N·C²·T²)、振动传递函数、科里奥利 + AC-Stark(AC:交流)系统误差);docs/QUANTUM.md |
| OC-8 | “完好性性能”性能指标暗示航空的HPL/VPL/RAIM完好性 | 撤回声明 + 已被取代(分层):每次运行的场景性能指标被如实标注为滤波器自洽性(不是航空完好性);真正的ARAIM HPL/VPL 单独呈现,因此二者绝不会被混为一谈 | 🟢 | src/fom.rs:80(integrity:自洽性,已附限定说明);src/raim.rs + docs/INTEGRITY.md(真正的ARAIM) |
| OC-9 | 安全性性能指标被表述为始终有意义,即使没有攻击 | 撤回声明:安全性性能指标(1 − P_md)被置于欺骗检测器的语境中表述,仅在配置了攻击场景时才有意义 |
🟢 | README“Resilience”行;安全性性能指标定义在造成实际危害的规格点上 |
| OC-10 | “定位性能”性能指标暗示完整的位置域精度 | 撤回声明:对惯性/混合包标注为1-DOF的pos_rms_m,明确不是 2-D CEP/2DRMS(CEP:圆概率误差)或按DOP(精度因子)加权的精度 |
🟢 | README性能指标表(“定位性能”行) |
| OC-11 | 惯性性能指标数值被读成了来自单个随机种子的集合统计量 | 撤回声明:单次运行会被标记为monte_carlo: false;runs = N报告均值/散布/自助法95% 置信区间 |
🟢 | README性能指标表;场景覆盖包络测试 |
| OC-12 | “SGP4(Simplified General Perturbations 4)GPS(全球定位系统)星座”场景使用了合成的占位TLE(两行根数集) | 已被取代:该场景现在嵌入带日期标记的真实Celestrak gps-ops快照,并使用严格校验和 |
🟢 | scenarios/orbit-sgp4-gps.toml(真实的gps-ops、strict_checksum);tests/scenario_coverage.rs |
| OC-13 | README版本字符串与Cargo.toml不一致 |
撤回声明:一道CI关卡断言README状态徽章与Cargo.toml一致 |
🟢 | scripts/check-version-sync.sh |
0.35:声明保持克制,另有一处更正#
0.35的各项功能在撰写时都在声明旁写明了其限制,同样的守卫(tests/no_overclaims.rs,以及tests/compliance_report.rs中的措辞守卫)也扫描描述这些功能的页面。本表不属于上文十四行台账;它针对新的界面,记录哪些是声明的、哪些不是。
| 界面 | 所声明的内容 | 不属于声明的内容 |
|---|---|---|
船舶信任度评分(receiver_trust、$PKSHT、关卡、Signal K、OpenCPN) |
依据接收机自身NMEA得出的0-100评分及原因,MODELLED | 仅供参考,不是经型式认可的导航设备;针对一份日志的评分不代表对其他接收机的结论;它不会使定位解更精确 |
| 船员培训NMEA数据流 | 带脚本化事件和教员日志的合成桥楼NMEA | 仅为文本,无射频输出;绝不用于船舶的实时导航系统;仅供参考,不是经型式认可的导航设备 |
| 证据包 | 可离线核验的已签名技术记录 | 不是法律意见;不说明事件的起因、谁负有责任,也不说明日志显示的就是接收机实际收到的内容 |
| 干扰地图 | 来自开放许可报告的导航降级单元汇总 | 不是预测;某条航线的暴露度是单元所占的份额,而不是风险 |
| Test-bench导出 | 以实验室仿真器可读取的文件给出的场景载体运动与事件 | 不写出任何信号;不声称任何仿真器或接收机的性能 |
| 公开框架compliance映射 | 一组运行为哪些行提供证据支持,并在每一行上注明缺口 | 绝不表示某个框架已达到或某个产品已获批准;仅有类别标签不构成证据 |
在0.35中记录的更正。早先版本的docs/RESILIENCE-CROSSWALK.md以及韧性模块的注释,曾描述DHS Resilient PNT Conformance Framework的七个“技术类别”。该框架的2.0版定义了核心功能(预防、响应、恢复)、0至4级和八项编号要求,并没有七个类别的列表。评分引擎输出的七个子分数名称是Kshana自己的,交叉对照现在已如此说明。
一行如何保持GREEN#
强声明(OC-0/2/7/8,以及OC-1/3/4/12中已被取代的那一半)之所以为GREEN,是因为该能力已发布并经过测试,而不是因为措辞被软化。撤回声明的各行之所以为GREEN,是因为现行措辞与代码一致。守卫测试使第二类变得可强制执行:若已撤回的夸大声明措辞重新出现在公开界面上,CI就会变红。参见tests/no_overclaims.rs。