먼저 밝힌다. 2026년 5월에 이 매거진은 아버지의 작업 노트를 물려받은 이야기를 실었다. 이 현장은 특정 업체가 아니다. 실제로 그렇게 돌아가는 형태를 그대로 구성했고, 어느 곳인지는 밝히지 않는다. 아래는 그 형태대로 직접 만든 것이고, 노트의 내용은 지어낸 것이다.
물려받은 기록의 어려움은 읽는 게 아니다. 누가 언제 알았는지를 알 수 없다는 것이다.
"장마철엔 세 번째 밸브를 반 바퀴 푼다" 는 줄이 있다고 하자. 이 줄의 값어치는 누가 썼느냐에 따라 완전히 달라진다. 그 기계를 이십 년 돌린 사람이 썼으면 금덩이고, 아르바이트가 매뉴얼에서 베껴 적은 것이면 확인해야 할 것이다.
종이 노트는 그걸 구별해 주지 않는다. 그리고 더 나쁜 일이 생긴다 — 틀린 것으로 밝혀지면 지운다.
정정은 삭제가 아니다
이 도구가 하는 일의 전부라고 해도 된다.
/// The id of the line this one corrects, if any. A correction never deletes.
final int? supersedes;
실제로 어떻게 보이는지가 로그에 있다.
Father 1998: In the rainy season, back the third valve off half a turn.
-> ran without jamming that summer
[corrected by Son 2019: New seal kit since 2018 — the valve trick is no longer needed.]
Father 2001: Warm it fifteen minutes before the first piece, not ten.
-> first-piece scrap dropped
Son 2019: New seal kit since 2018 — the valve trick is no longer needed.
-> no jams in two seasons without it
Son 2023: Fifteen minutes still right after the motor swap.
-> not written down
1998년 줄이 여전히 거기 있다. 2019년에 씰 키트가 바뀌어 필요 없어졌다는 게 옆에 붙었을 뿐이다.
왜 남겨야 하는가. 틀린 줄이 아니라 그때는 맞았던 줄이기 때문이다. 1998년에 그 밸브를 반 바퀴 푸는 게 옳았고, 그 판단이 왜 옳았는지를 지우면 다음 사람은 씰 키트가 또 바뀌었을 때 아무 근거 없이 다시 시작한다.
// A corrected line keeps its text and gains a pointer. It never
// disappears — the previous owner's reasoning stays readable.
숨기는 것과 지우는 것은 다르다
그렇다고 매번 옛 줄을 다 볼 필요는 없다. 그래서 화면이 둘이다.
전체 화면은 그 기계에 대해 쓰인 모든 줄을 보여준다. 정정된 줄도 정정 표시를 달고 그대로 있다.

지금 유효한 것 화면은 정정된 줄을 뺀다.

로그가 그 관계를 그대로 말한다.
standing: #2 Father 2001, #3 Father 2004, #4 Son 2019, #5 Son 2021, #6 Son 2023
corrected line #1 is absent here but still present above
1번 줄은 여기 없고, 위 화면에는 있다. 그리고 화면 아래에 그렇게 적어 뒀다 — "Corrected lines are hidden here, not gone."
검증이 둘 다 본다.
grep -q "back the third valve off half a turn.*\[corrected by Son 2019" captures/run.log \
|| { echo " a corrected line lost either its text or its correction"; exit 1; }
grep -q "corrected line #1 is absent here but still present above" captures/run.log \
|| { echo " the corrected line was not hidden from the standing view"; exit 1; }