Behauptungen vs. Wirklichkeit — Register der Übertreibungen
Ein unabhängiges Audit einer früheren Version von Kshana hat vierzehn Übertreibungen katalogisiert (OC-0…OC-13): Stellen, an denen eine öffentlich sichtbare Oberfläche (README, Playground, Beschriftungen der Gütemaße (FoM, figure of merit), Szenariopakete) eine Fähigkeit stärker beschrieb, als der Code sie lieferte. Diese Seite ist das Abschlussregister: Jede Zeile nennt die ursprüngliche Übertreibung, wie sie aufgelöst wurde, und den Beleg. Es kommen zwei Arten der Auflösung vor:
- Zurückgenommen — die Formulierung wurde an den Code angepasst (ehrliche Neufassung, keine Änderung der Fähigkeit). „Null Code = null Behauptung.“
- Abgelöst — die reale Fähigkeit wurde nachträglich gebaut und getestet, sodass die starke Behauptung zutreffend wurde.
Eine Regressionssicherung (tests/no_overclaims.rs) durchsucht bei jedem Lauf der CI (kontinuierliche Integration) die aktuellen öffentlichen Oberflächen (README.md, docs/CAPABILITY.md, docs/GLOSSARY.md, web/capabilities.json, web/index.html, web/README.md sowie die Startseiten von crates.io, PyPI (Python Package Index) und npm README.crates.md, README.pypi.md, README.npm.md) und schlägt fehl, wenn eine der ausgemusterten nackten Formulierungen von Übertreibungen ohne Einschränkung wieder auftaucht — sodass eine Zeile nicht unbemerkt aus GREEN zurückfallen kann.
Alle vierzehn Zeilen sind GREEN.
| OC (Übertreibung) | Ursprüngliche Übertreibung | Auflösung | Status | Nachweise |
|---|---|---|---|---|
| OC-0 | „gemeinsamer Kalman-Fusionsschätzer“ legte ein einziges Filter mit Kreuzkovarianz nahe; der Code führte zwei unabhängige Schätzer aus | Abgelöst — ein reales gekoppeltes Kalman-Filter für Uhr+Position mit Kreuzkovarianz wurde gebaut | 🟢 | src/fusion/coupled.rs (7 Tests, darunter ein Ensemble mit 100 Läufen gekoppelt vs. entkoppelt, das verlangt, dass der RMS (quadratischer Mittelwert) der Position beim gekoppelten Filter unter dem 0,6-Fachen des entkoppelten liegt und das gekoppelte Filter mindestens 90 der 100 Läufe gewinnt); CAPABILITY „Sensor fusion“ → full |
| OC-1 | „RAIM (Receiver Autonomous Integrity Monitoring) zur Spoofing-Erkennung mit Uhrenstützung“ legte einen RAIM-Detektor mit mehreren Satelliten nahe | Zurückgenommen → Abgelöst — neu gefasst als Erkennbarkeitsschranke für Spoofing aus der Uhrenstabilität; das echte RAIM/ARAIM (HPL/VPL (HPL: horizontales Schutzniveau; VPL: vertikales Schutzniveau)) kam danach hinzu | 🟢 | src/raim.rs (30 Tests — Snapshot + ARAIM mit Lösungstrennung, HPL/VPL, FDE (Fehlererkennung und -ausschluss), Stanford-Diagramme); docs/INTEGRITY.md |
| OC-2 | „Jamming-Demonstrator“ ohne Jamming-Code dahinter | Abgelöst — ein Jamming-Modell auf Basis des Link-Budgets J/S → effektives C/N₀ → Loss-of-Lock wurde gebaut | 🟢 | src/jamming.rs (10 Tests); Zeile „Resilience“ des README |
| OC-3 | „Vollständiges Rauschmodell nach Allan-Varianz für eine IMU (Inertial Measurement Unit) auf einer IMU-Triade“ — das Modell war einachsig | Zurückgenommen → Abgelöst — neu gefasst als Fehlerbudget mit 1 Freiheitsgrad (DOF: degree of freedom); danach wurde ein dreiachsiges Strapdown-INS (Inertialnavigationssystem) ausgeliefert | 🟢 | src/inertial dreiachsiges Strapdown (Lage als Quaternion, Mechanisierung NED (North-East-Down), Coning/Sculling); ROADMAP „Inertial“ |
| OC-4 | „Hybride Integration von PNT (Positionierung, Navigation und Zeitgebung)“ legte ein gekoppeltes GNSS/INS-Filter (GNSS: globales Satellitennavigationssystem) nahe; es war ein Fehlerbudget der Koppelnavigation | Zurückgenommen → Abgelöst — neu gefasst als Koppelnavigation mit konfigurierbarem Wiederanlauf der Verfolgung; danach wurde eine reale eng gekoppelte GNSS/INS-Fusion ausgeliefert | 🟢 | src/fusion/tightly_coupled17.rs (UKF (Unscented-Kalman-Filter) mit 17 Zuständen und Quanten-CAI (CAI: Kaltatom-Interferometer) für die Koppelnavigation); CAPABILITY „Sensor fusion“ → full |
| OC-5 | „validiert auf ~2 %“ legte ein enges, erzwungenes Gate nahe | Zurückgenommen — VALIDATION.md nennt das erzwungene Gate (20–25 % gemittelt über Seeds); „~2 %“ bezeichnete eine typische Beobachtung, nicht das Gate |
🟢 | docs/VALIDATION.md Kopfzeile „On tolerances“ |
| OC-6 | „plattformübergreifend deterministisch“ ohne eingecheckten Beleg | Zurückgenommen — Toolchain auf ein exaktes Release festgelegt; Golden-Hashes je Szenario eingecheckt, mit einem Gate für Reproduzierbarkeit. (Bitgleichheit über Betriebssystem/Architektur (OS: Betriebssystem) hinweg bleibt ein offener Punkt, ehrlich benannt.) | 🟢 | rust-toolchain.toml (Kanal 1.93.0); tests/golden.rs (numerische Werte auf 1e-6); tests/cross_platform_golden.rs (Hash des Eingabe-Fingerabdrucks und der Form jedes Ergebnisses, ausgeführt in der CI-Matrix für Linux, macOS und Windows); scripts/check-reproducible.sh |
| OC-7 | „hybrider quantenklassischer PNT-Simulator“ legte Quantenphysik aus ersten Prinzipien nahe | Zurückgenommen → Abgelöst — neu gefasst als Simulator für die Resilienz von PNT mit Leistungsmodellen für Quantensensoren; danach kam die Physik des Mach–Zehnder-CAI aus ersten Prinzipien hinzu | 🟢 | src/inertial/quantum_imu.rs (26 Tests — Phase nach Mach–Zehnder, Projektionsrauschen 1/√(N·C²·T²), Übertragungsfunktion der Vibration, Systematiken von Coriolis + AC-Stark (AC: Wechselstrom)); docs/QUANTUM.md |
| OC-8 | Das Gütemaß „Integrity Performance“ legte Integrität der Luftfahrt nach HPL/VPL/RAIM nahe | Zurückgenommen + Abgelöst (in Schichten) — das Gütemaß des Szenarios je Lauf ist ehrlich mit Selbstkonsistenz des Filters beschriftet (nicht Integrität der Luftfahrt); das echte ARAIM HPL/VPL wird getrennt ausgewiesen, sodass beide nie vermischt werden | 🟢 | src/fom.rs:80 (integrity: Selbstkonsistenz, mit Einschränkung); src/raim.rs + docs/INTEGRITY.md (echtes ARAIM) |
| OC-9 | Das Gütemaß Security wurde als stets aussagekräftig dargestellt, auch ohne Angriff | Zurückgenommen — das Gütemaß Security (1 − P_md) ist im Kontext des Spoofing-Detektors gerahmt und nur aussagekräftig, wenn ein Angriffsszenario konfiguriert ist |
🟢 | Zeile „Resilience“ des README; das Gütemaß Security ist am operativ schädlichen Spezifikationspunkt definiert |
| OC-10 | Das Gütemaß „Positioning Performance“ legte vollständige Genauigkeit im Positionsbereich nahe | Zurückgenommen — für die Pakete Inertial/Hybrid als pos_rms_m mit 1 Freiheitsgrad beschriftet, ausdrücklich nicht als 2D-CEP/2DRMS (CEP: Kreisfehler-Wahrscheinlichkeit) oder DOP-gewichtete (DOP: Verdünnung der Genauigkeit) Genauigkeit |
🟢 | Tabelle der Gütemaße im README (Zeile „Positioning Performance“) |
| OC-11 | Zahlen der inertialen Gütemaße wurden als Ensemble-Statistik gelesen, stammten aber aus einzelnen Seeds | Zurückgenommen — ein einzelner Lauf wird mit monte_carlo: false markiert; runs = N weist Mittelwert/Streuung/Bootstrap-KI von 95 % aus |
🟢 | Tabelle der Gütemaße im README; Tests zur Abdeckung des Betriebsbereichs der Szenarien |
| OC-12 | das Szenario „SGP4 (Simplified General Perturbations 4) GPS (Global Positioning System)-Konstellation“ verwendete synthetische Platzhalter-TLEs (Zweizeilen-Elementsätze) | Abgelöst — das Szenario bettet nun einen echten, mit Datum versehenen Celestrak-Snapshot gps-ops mit strengen Prüfsummen ein |
🟢 | scenarios/orbit-sgp4-gps.toml (echtes gps-ops, strict_checksum); tests/scenario_coverage.rs |
| OC-13 | Die Versionszeichenfolge im README wich von Cargo.toml ab |
Zurückgenommen — ein CI-Gate stellt fest, dass das Status-Badge im README zu Cargo.toml passt |
🟢 | scripts/check-version-sync.sh |
0,35: Behauptungen eng gehalten, und eine Korrektur#
Die Funktionen von 0,35 wurden mit ihren Grenzen neben der Behauptung geschrieben, und dieselben Sicherungen (tests/no_overclaims.rs und die Sicherung der Formulierung in tests/compliance_report.rs) durchsuchen die Seiten, die sie beschreiben. Diese Tabelle gehört nicht zum oben stehenden Register mit vierzehn Zeilen; sie hält für die neuen Oberflächen fest, was behauptet wird und was nicht.
| Oberfläche | Was behauptet wird | Was nicht |
|---|---|---|
Vertrauenswert für ein Schiff (receiver_trust, $PKSHT, Gate, Signal K, OpenCPN) |
ein Wert von 0–100 und Gründe aus den eigenen NMEA-Daten eines Empfängers, MODELLED | beratend, keine typzugelassene Navigationsausrüstung; ein Wert für ein einzelnes Log ist keine Aussage über andere Empfänger; er macht eine Positionslösung nicht genauer |
| NMEA-Datenströme für Besatzungstraining | synthetische NMEA-Daten einer Brücke mit geskripteten Ereignissen und einem Log für den Ausbilder | nur Text, keine Hochfrequenzausgabe; nie für die laufenden Navigationssysteme eines Schiffes; beratend, keine typzugelassene Navigationsausrüstung |
| Nachweispakete | eine signierte technische Aufzeichnung, die offline verifiziert werden kann | kein Rechtsgutachten; sagt nicht, was ein Ereignis verursacht hat, wer verantwortlich war oder dass das Log zeigt, was der Empfänger tatsächlich empfangen hat |
| Störungskarte | aggregierte Zellen mit beeinträchtigter Navigation aus offen lizenzierten Berichten | keine Prognose; die Exposition einer Route ist ein Anteil von Zellen, kein Risiko |
| Export für den Prüfstand | Fahrzeugbewegung und Ereignisse eines Szenarios in Dateien, die ein Simulator im Labor lesen kann | es wird kein Signal geschrieben; es wird keine Leistung eines Simulators oder Empfängers behauptet |
| Compliance-Zuordnung zu öffentlichen Rahmenwerken | für welche Zeilen eine Reihe von Läufen Belege liefert, mit einer Lücke in jeder Zeile | nie, dass ein Rahmenwerk erfüllt oder ein Produkt zugelassen ist; eine Typbezeichnung allein ist kein Beleg |
In 0,35 festgehaltene Korrektur. Eine frühere Fassung von docs/RESILIENCE-CROSSWALK.md und der Kommentare des Resilienzmoduls beschrieb sieben „Technikkategorien“ des DHS Resilient PNT Conformance Framework. Version 2,0 dieses Rahmenwerks definiert Kernfunktionen (Prevent, Respond, Recover), Stufen 0 bis 4 und acht nummerierte Anforderungen, aber keine Liste von sieben Kategorien. Die sieben Namen von Teilwerten, die die Bewertungs-Engine ausgibt, sind die eigenen von Kshana, und die Zuordnungstabelle sagt das nun.
Wie eine Zeile GREEN bleibt#
Die starken Behauptungen (OC-0/2/7/8 und die abgelösten Hälften von OC-1/3/4/12) sind GREEN, weil die Fähigkeit ausgeliefert und getestet ist — nicht, weil die Formulierung abgeschwächt wurde. Die zurückgenommenen Zeilen sind GREEN, weil die aktuelle Formulierung zum Code passt. Der Test der Sicherung macht die zweite Kategorie durchsetzbar: Kehrt eine ausgemusterte Formulierung einer Übertreibung auf eine öffentliche Oberfläche zurück, wird die CI rot. Siehe tests/no_overclaims.rs.