交代の引き継ぎノートで本当に失われるのは、忘れた項目ではない。
忘れたものは目立つ。問題が再発し、誰も書かなかったことが明るみに出る。
本当の問題はこれだ — 一週間ずっと引き継ぎのたびに書かれるのに、誰も手を付けない項目。 夜勤が書き、午前が書き写し、午後が書き写し、また夜勤が書き写す。毎回書かれているので誰も忘れていない。ところが 誰もやっていない。
書き写すからそうなる
書き写すという行為が原因だ。書き直された瞬間、その項目は 新しい項目に見える。 ノートのどこにも「これで四回目だ」とは書かれていない。
だからこのサンプルは書き写さない。
// Nothing is copied forward and nothing is cleared. The next shift
// opens the same list. Carrying is the default; closing is the act.
_shift = (_shift + 1) % _crew.length;
繰り越すのが既定で、閉じるのが行為だ。 そしてそうすると、数える仕事がただで付いてくる。
// The number that matters. Not stored on the item — an item does not know
// how many shifts have passed, the shift counter does.
int carried(Item i) => _shift - i.raisedOnShift;
夜勤が三つ挙げる

night raised 3, open=3
三つとも "this shift" だ。まだどこにも繰り越されていない。
交代が三回過ぎる

handover -> MORNING, open=3
morning closed #3, open=2 morning handled the bread delivery
afternoon closed #2, open=1 afternoon swapped the card reader
そして冷蔵庫は誰も触っていない。

carried 3 shifts が警告色で立ち、要約は "something has crossed 3 handovers — nobody is deciding it" と言うopen #1 "Chiller 2 running warm" — carried 3 shifts (stale=true)
board says: something has crossed 3 handovers — nobody is deciding it
赤いのは冷蔵庫が危険だからではない。 三回繰り越されたからだ。
この区別がこの記事の全部だ。項目の深刻さをこの道具は知らない — それは人が判断する。この道具が知っているのは、誰も判断していないという事実であり、それは数えれば出てくる。
// Anything that has crossed three handovers is not an open
// item any more, it is a decision nobody is making.
'stale': carried(i) >= 3,