97/97 checks pass. EO-1 4/4 · EO-2 4/4 · EO-3 14/14 · EO-4 7/7 · EO-5 15/15 · DO-1 23/23 · DO-2 13/13 · DO-3 9/9 · DO-4 8/8
Each check is traced to a Challenge-17 Essential (EO) or Desired (DO) Outcome and records the measured value. Unclassified · representational · generated by relay_vv.py.
| Outcome | Claim | Measured | Expected | Result |
|---|---|---|---|---|
| EO-1 | pure-stdlib library + HTTP service dispatch answers /health | 200 | 200 | PASS |
| EO-2 | catalogue domains cover LAND/AIR/MARITIME/SPACE/CYBER | ['AIR', 'CYBER', 'JOINT', 'LAND', 'MARITIME', 'SPACE'] | ⊇ 5 domains | PASS |
| EO-2 | functional services covered | ['C2', 'FIRES', 'INTEL', 'LOGISTICS', 'MEDICAL'] | ⊇ C2/INTEL/FIRES/MEDICAL/LOGISTICS | PASS |
| EO-2 | message types in catalogue | 9 | ≥ 9 | PASS |
| EO-3 | MTF-XML export→import round-trips every message type losslessly | 9/9 | all | PASS |
| EO-3 | NIEM export→import round-trips every message type | 9/9 | all | PASS |
| EO-3 | NCDF object binds a confidentiality label and round-trips | 9/9 | all | PASS |
| EO-3 | NCDF label tamper is detected | True | True | PASS |
| EO-3 | documented interfaces: ICD generator + endpoint table | True | True | PASS |
| EO-3 | NIEM 6.0 components used (nc: + mo: + usmtf:) | 26 | ≥ 20 | PASS |
| EO-3 | NIEM instances validate against the OASIS NIEM 6.0 schemas (niem-core, structures, mo, usmtf + OAK extension) | 9/9 | all | PASS |
| EO-3 | NIEMOpen CMF tool (cmftool 1.0): x2m → CMF model, mval, xval on all sample instances | PASS (docs/CMF_REPORT.md) | PASS | PASS |
| EO-3 | NCDF NIEM-NDR-style XML form round-trips with the bound label intact | 9/9 | all | PASS |
| EO-4 | COIE text form round-trips every message type | 9/9 | all | PASS |
| EO-4 | COIE ↔ MTF-XML transcoding is lossless | 9/9 | all | PASS |
| EO-4 | formats registered on one catalogue | 6 | ≥ 6 | PASS |
| EO-4 | new format added via register() without core change | True | True | PASS |
| EO-4 | new message type loads from a catalogue file (GFI seam) and works in every codec | True | True | PASS |
| EO-4 | every format pair bridges every message | 270 translations | all | PASS |
| EO-5 | messages produce COP tracks / alerts / taskings | 10 | ≥ 10 tracks | PASS |
| EO-5 | CoT events rendered for positioned elements | 10 | = tracks | PASS |
| EO-5 | CoT events validate against the MITRE public-release CoT 2.0 schema | 10/10 | all | PASS |
| EO-5 | TAK Protocol (protobuf) payloads for TAK-class consumers | 191 B vs 384 B XML | smaller than XML | PASS |
| EO-5 | DIS 7 Entity State PDUs for simulation federates (opendis) | 2 PDUs | ≥ 1 | PASS |
| EO-5 | every track carries a MIL-STD-2525 / APP-6 symbol identification code | True | True | PASS |
| EO-5 | every track also carries a 20-digit NATO APP-6(E) / MIL-STD-2525E code (symbol set + entity) | 10/10 | all | PASS |
| EO-2 | cyber-domain message exports as a STIX 2.1 bundle and imports back losslessly | 6 objects | round-trip | PASS |
| EO-3 | confidentiality label renders in the ADatP-4774.1 XML shape and parses back | PROTECTED B | PROTECTED B | PASS |
| EO-5 | seeded bearer model degrades deterministically for wargaming | (1.0, 0.0) | (1.0, 0.0) | PASS |
| DO-1 | packed payload vs MTF-XML compaction (worst case) | ×4.1 ratio | ≥ ×3 | PASS |
| DO-1 | largest packed message | 292 bytes | ≤ 320 B | PASS |
| DO-1 | MTU fragmentation + reassembly (VLF 48-B MTU) | 8 frames | reassembles | PASS |
| DO-1 | CRC-16 detects single-bit corruption | True | True | PASS |
| DO-1 | precedence queue drains FLASH→ROUTINE | FLASH | FLASH first | PASS |
| DO-1 | store-and-forward delivery on HF at BER 1e-3 with selective repeat | 100% | 100 % | PASS |
| DO-1 | STANAG 5066 SIS model: S_BIND_ACCEPTED returns the 2048-byte general-node MTU (AComP-5066 Annex A) | 2048 | 2048 | PASS |
| DO-1 | STANAG 5066 SIS model: FLASH MEDEVAC submitted at SIS priority 15 and confirmed (ARQ) | S_UNIDATA_REQUEST_CONFIRM | S_UNIDATA_REQUEST_CONFIRM | PASS |
| DO-1 | STANAG 5066 SIS model: ARQ out-delivers non-ARQ (EMCON) at BER 3e-3 | ARQ 33% vs non-ARQ 11% | ARQ ≥ non-ARQ | PASS |
| EO-4 | COIE text rides HFCHAT / COSS (IA5, CR/LF lines ≤ MTU) — AComP-5066 Annex O / P | 10 lines | all ≤ 2048 B | PASS |
| DO-1 | undeliverable payload is held (store) for the next contact window | 1 | 1 | PASS |
| DO-1 | UDP link: FLASH MEDEVAC crosses a real socket between two relay stations at BER 1e-3 with selective repeat | delivered=True retries=7 frames=1 | delivered | PASS |
| EO-3 | delivery receipt from the receiving station correlates originator + serial + DTG | STN-B RECEIVED serial 3 | STN-B RECEIVED serial 3 | PASS |
| EO-3 | MSGID addressing: receiving station recognises itself as the action addressee (TO / INFO) | True | True | PASS |
| DO-1 | UDP link: undeliverable payload is held for the next contact window | 1 | 1 | PASS |
| DO-1 | multi-hop relay: FLASH MEDEVAC addressed to STN-C reaches it via STN-B on HF at BER 1e-3; originator gets an end-to-end receipt naming the path | DELIVERED via ['STN-B', 'STN-C']; C inbox 1; B consumed 0 | DELIVERED via [STN-B, STN-C]; 1; 0 | PASS |
| DO-1 | duplicate suppression: the same message re-sent is refused at the first relay and not forwarded again | DUPLICATE; C inbox 1 | DUPLICATE; 1 | PASS |
| DO-1 | hop limit: a message with no hops left is not relayed and the originator is told | HOP_LIMIT | HOP_LIMIT | PASS |
| EO-3 | MSGID addressing (TO / INFO / EXER-OPER / ACK-REQ) round-trips in every binding | 7/7 | all | PASS |
| EO-5 | fused picture correlates a second SITREP onto the same tracks (identity match, latest wins) | 3 updated / 0 added | 3 updated / 0 added | PASS |
| EO-5 | fused picture: 2 SITREPs + 1 CTC → unique tracks with report counts | 5 tracks / 8 reports | 5 tracks / 8 reports | PASS |
| EO-5 | fused picture: re-reported contact without its id merges by position gate (≤ 2 km) | position 0.14 km | position | PASS |
| EO-5 | fused picture flags tracks not re-reported within stale_min as stale; the fresh one is not | 4 stale of 5 | 4 of 5 | PASS |
| DO-2 | message-type detection on operator phrasing | 7/7 | all | PASS |
| DO-2 | drafts with every required field filled | 7/7 | ≥ 5 | PASS |
| DO-2 | French trigger lexicon (multilingual) | ('RFI', 'fr') | ('RFI','fr') | PASS |
| DO-2 | abstains on non-message text | True | True | PASS |
| DO-2 | spoken-form normaliser turns a real STT transcript (phonetic callsign, spoken digits, homophones) into a complete MEDEVAC draft | MEDEVAC missing=0 | MEDEVAC, 0 missing | PASS |
| DO-2 | voice → message: offline STT (Vosk EN) on a synthesized radio call → assured MEDEVAC draft | ASR 0.92, 36.09s in 12.63s → MEDEVAC conf 1.0 | MEDEVAC | PASS |
| DO-2 | MGRS grids understood by the extractor (mgrs / GeoTrans) | (44.65, -76.5) | ≈ 44.65, −76.50 | PASS |
| DO-2 | every draft requires human confirmation | True | True | PASS |
| DO-3 | Prometheus exposition served | True | True | PASS |
| DO-3 | CRITICAL alert opens a ServiceNow-shaped incident | 1 | ≥ 1 | PASS |
| DO-3 | Splunk-HEC-shaped event batch served | 1 | ≥ 1 | PASS |
| DO-3 | CRITICAL alert opens a ticket in a ServiceNow-compatible incident table (token-authenticated POST, sys_id + number returned) | 1 ticket(s): INC0000001 | 1 ticket | PASS |
| DO-3 | events delivered to a Splunk-HEC-compatible collector (Authorization: Splunk <token>, NDJSON) and acknowledged code 0 | 1 events, HEC code 0 | ≥ 1 event, code 0 | PASS |
| DO-3 | a refused push is held and delivered on the next flush (telemetry store-and-forward) | held 1 → pending 0, tickets 2 | held 1 → pending 0, 2 tickets | PASS |
| DO-3 | wrong HEC token is refused by the receiver (403) and reported, not swallowed | 403 | 403 | PASS |
| DO-3 | events pushed to a live third-party Splunk-HEC-compatible collector [Vector 0.58.0] are acknowledged (code 0) and written to its sink | HEC ok=True, 1 events in Vector's file sink | acknowledged, ≥ 1 event | PASS |
| DO-3 | the third-party collector refuses a wrong token (as Splunk does) | 401 | 401/403 | PASS |
| DO-4 | prioritiser ranks FLASH MEDEVAC first and ROUTINE LOGSTAT last across the sample set | MEDEVAC … LOGSTAT | MEDEVAC … LOGSTAT | PASS |
| DO-4 | content breaks a precedence tie: IMMEDIATE call for fire outranks IMMEDIATE contact report | CFF #2 vs CTC #3 | CFF above CTC | PASS |
| DO-4 | staleness demotes a 10-hour-old FLASH MEDEVAC below a fresh IMMEDIATE contact report | 14.7 vs 104.0 | old < fresh | PASS |
| DO-4 | every priority score carries factor evidence (precedence, content, staleness) | 3 | ≥ 3 | PASS |
| DO-4 | scored queue pops the highest live score first | MEDEVAC | MEDEVAC | PASS |
| EO-1 | service state (inbox, fused picture, incidents) survives a restart — SQLite write-through store | inbox 1, tracks 5 | inbox 1, tracks 5 | PASS |
| EO-1 | API key enforced on the service: 401 without key, 200 with X-API-Key, /health and the console stay open | 401 / 200 / 200 | 401 / 200 / 200 | PASS |
| EO-3 | OpenAPI 3.0 description covers every documented endpoint (machine-readable ICD at /openapi.json) | 49 paths | 49 paths | PASS |
| DO-2 | chat line over TCP becomes an assured MEDEVAC draft with nick as originator; small talk abstains | OK MEDEVAC 1.00 confirm-required | ?? abstain (no type 0.00) | OK MEDEVAC … confirm-required | ?? abstain | PASS |
| DO-1 | 2-FSK modem: FLASH MEDEVAC packed frame → 1200-baud audio → AWGN Eb/N0 14 dB → demodulated, CRC-valid | 1 frame, 102 B, SNR est 8.0 dB | 1 frame, CRC ok | PASS |
| DO-1 | forward error correction (Hamming 8,4 + interleaver) decodes at Eb/N0 10 dB where the uncoded frame fails | FEC 4/5 vs uncoded 0/5 | FEC ≥ 3, uncoded ≤ 1 | PASS |
| DO-1 | complex-baseband I/Q (SDR / Proteus ARB) modulate → demodulate round trip | 70080 samples @ 48 kS/s | decodes | PASS |
| DO-1 | modem-in-the-loop store-and-forward on HF: 100 % delivery at Eb/N0 14 dB, degraded at 6 dB, tone jammer at J/S −10 dB tolerated | 14 dB 100% · 6 dB 0% · J/S −10 dB 100% | 100 % · < 100 % · 100 % | PASS |
| EO-5 | CoT streamed to a live TAK server [taky 0.10 (MIT, PyPI)] over the TAK streaming protocol is relayed to another TAK client (both contacts) | 3 events at the peer | ≥ 2 (T1001, T1002) | PASS |
| EO-5 | a hostile air track published by another TAK client is received by OAK Relay and correlated into the fused picture | received 2 (incl. the peer's own SA), picture added 1 | ≥ 1 / 1 | PASS |
| EO-5 | TAK server used for the live check (third-party taky, MIT, when installed; otherwise the stdlib relay — status, not a criterion) | taky 0.10 | taky preferred | PASS |
| DO-2 | read-aloud script covers every message type in EN and FR plus must-abstain lines | 18 lines | ≥ 18, 9 types, 2 abstain | PASS |
| DO-2 | voice corpus evaluated: 12 recordings (0 real voice, 12 synthetic Windows voices), EN clean: type accuracy incl. correct abstention | 92% type acc, WER 0.16, abstain 17% | ≥ 80 % type acc | PASS |
| DO-2 | under a 300–3400 Hz radio band-limit with noise at 10 dB SNR the drafting path still recognises most messages (degrades, does not break) | 92% type acc, WER 0.38 | ≥ 50 % type acc | PASS |
| DO-2 | real (human) voice recordings present in the corpus — the relevant-environment evidence | 0 real — none yet: volunteers use the console Record button / testing kit | ≥ 1 | PASS |
| EO-1 | independent V&V executions on other hosts (signed bundles, hash-bound to the source tree) — the TRL-5 evidence of reproducibility | 0 external run(s), 0 signed; 3 developer-host kit self-test(s) | ≥ 1 external signed run (status) | PASS |
| DO-1 | SIS over TCP: S_BIND_REQUEST → S_BIND_ACCEPTED with the general-node MTU (2048 B) | S_BIND_ACCEPTED mtu 2048 | S_BIND_ACCEPTED mtu 2048 | PASS |
| DO-1 | SIS over TCP: S_UNIDATA_REQUEST (FLASH, priority 15) delivered as S_UNIDATA_INDICATION at the destination SAP and confirmed (ARQ) | S_UNIDATA_REQUEST_CONFIRM; B indications 1 | S_UNIDATA_REQUEST_CONFIRM; 1 | PASS |
| DO-1 | SIS over TCP: U_PDU larger than the MTU is rejected by the node | S_UNIDATA_REQUEST_REJECTED (U_PDU larger than MTU) | S_UNIDATA_REQUEST_REJECTED (U_PDU larger than MTU) | PASS |
| DO-1 | SIS over TCP: traffic to an unbound destination SAP is rejected | Destination SAP not bound | Destination SAP not bound | PASS |
| DO-4 | extraction result carries confidence + evidence + abstain (assurance contract) | True | True | PASS |
| DO-4 | audit chain detects an edited record | True | True | PASS |
| DO-4 | MTF-XML encode+decode throughput (real-time headroom) | 5169 msg/s | ≥ 300 msg/s | PASS |