Capability matrix¶
Per-subsystem, per-estimator view of what is real today and what is not. The badges are defined in Fidelity. Each row points at the backlog item that is expected to raise the badge.
Last reviewed: 2026-05-23.
Deployment note. The badges below reflect
origin/mainat revision43d0db2(post PR #42). The catch-up train (PR #38) brought the L1 subsystem rollout ontomainafter the 2026-05-23 baseline, so the live VM picks up the L1 surface on the next auto-update poll. The live MCP audit indocs/audit-2026-05-23.md§4 was conducted before the catch-up; §10 records the post-catch-up state.
Subsystems¶
| Subsystem | Implementation | Estimator | Model card | Backlog |
|---|---|---|---|---|
| power | filtered (Li-ion + Peukert + thermal derate) |
filtered (SoC + voltage Kalman) |
subsystem, estimator | BL-003 |
| apu | filtered (solar MPPT, methanol FC, vehicle, USB-C PD) |
filtered (per-source Kalman) |
subsystem, estimator | BL-005a |
| pmu / pdu | planned (lifts off PowerSubsystem) |
planned |
planned |
BL-005b |
| thermal | filtered (two-state lumped: junction + enclosure, profile-driven) |
filtered (per-channel Kalman with shrinking covariance) |
estimator | BL-005, BL-028 |
| compute | filtered (load fraction, profile-driven draw curve, thermal-throttle clip) |
filtered (per-channel Kalman over load and draw) |
planned |
BL-007, BL-031a |
| storage | filtered (NAND wear, capacity accounting, write amplification) |
filtered (per-channel Kalman over used and wear) |
planned |
BL-008 |
| sensors | filtered (temp / humidity / baro; authoritative ambient source) |
filtered (multi-channel Kalman with bounds validation) |
planned |
BL-009 |
| position | filtered (lat / lon / alt dead-reckoning + GNSS fix gating + IMU drift) |
parametric (v0.1 EKF passthrough with NaN/Inf validation; full constant-velocity EKF is BL-026) |
estimator | BL-010, BL-026 |
| biometrics | filtered (HR / core temp / hydration / cognitive load with physiological clamps) |
filtered (multi-channel Kalman; physiology grounding is BL-040) |
estimator | BL-011, BL-029, BL-040 |
| comms | filtered (per-link envelopes drive FSM state.comms_state each tick) |
parametric (per-link belief tracker; full transition particle filter is BL-030) |
estimator | BL-012, BL-030, BL-048 |
| inference | parametric (local-path with profile-derived latency / energy / capacity; cloud path deferred) |
n/a | local mock | BL-013, BL-043 |
| self model | planned (assess returns the engine's last_capabilities dict; layer wiring is BL-018) |
n/a | planned |
BL-018, BL-035 |
Cross-cutting surfaces¶
| Surface | Status | Notes |
|---|---|---|
| audit (JSONL, output-hashed) | filtered |
append-only with fsync + chmod 0600; redaction still flat (AUDIT-2026-05-23 C2). The live VM is currently audit-degraded (AUDIT-2026-05-23 N2). |
| policy + runner (tier-classified admission) | filtered |
tiers consistent with ADR 0001 and 0013. Denial path still misses exit_code=1 (AUDIT-2026-05-23 M1). |
| OAuth issuer | filtered for single-client lockdown; planned for L3 multi-tenant |
BL-019, BL-059. File-store lock and refresh-family revocation still open (AUDIT-2026-05-23 H6, H7). |
| anthropic client (daily cap + prompt cache) | filtered |
Flush-before-unlock race closed (AUDIT C1); test coverage in tests/unit/test_anthropic_client.py. BL-021 surfacing still planned. |
| interop adapters (CoT, MISB, NMEA, STANAG, SensorThings, MQTT) | parametric |
Encoders emit standards-shaped output with timestamp freshness checks; conformance is self-declared and uncertified (docs/conformance/). |
| scenario injectors | planned |
The scenario YAML loads, but the v0.1 injectors do not yet mutate engine state. BL-014. |
| deterministic replay | planned |
A SimClock with seed control would unlock replay; not yet scoped. |
How to read this page¶
A row at filtered for both implementation and estimator means a
controller can use the matching MCP tool with the covariance that the
estimator advertises. A row at stub for either column means the
output is not yet calibrated; the showcase suppresses covariance for
those rows. Rows at planned are surfaces the architecture promises
but the code does not yet provide.
The matrix is reviewed alongside docs/backlog.md. When a backlog
item moves to [done], the corresponding row is updated and, where
appropriate, the scenario gallery is regenerated to reflect the new
substance level.