One shift, from both records: what the instruments crossed, and what a person
wrote down. Rung 11 generates a note from telemetry and it is a good note and half a note
— it knows the bearing crossed 4.5 mm/s and it does not know somebody put a hand near
it forty minutes earlier.
What it is looking for
Where a person's note and an instrument's crossing are about the same machine and
close enough in time to be the same event, the gap between them is the finding
— and its direction decides what it means.
Person after instrument: the alarm was already up; the note confirms it.
Person before instrument: somebody knew first, and the system took that many
minutes to agree. That is the whole argument, and it is invisible unless both
records sit on one clock.
A note is reported against both the crossing it followed and the one it
preceded. Picking whichever tells the better story would be choosing the finding in
advance.
A shift with no observations says so out loud. An unrecorded shift and a quiet
shift must not read the same.
Which half is which. The instrument events are simulated — the same
twelve-hour night rung 11 replays, mapped onto the last twelve real hours so both records
share a clock. The observations are real: whatever you logged in
rung12 on this phone. Nothing shifts an observation's timestamp; moving the
only genuine data in the room to make it line up would be falsifying it.
node tools/check_handover.mjs — 13 assertions, including
that a note between two crossings reports both, and that an observation from outside the
window is excluded rather than dragged in.