"컴파일되는 코드는 가설이야. 릴리스가 증명이고. 이 둘을 헷갈리지 마. 문 뒤에 있는 게 가족의 돈이라면 더더욱."
verification contract
Keep 엔 릴리스가 언제 진짜로 끝나는지에 대한 명시적인 규칙이 있고, 그 기준은 '코드를 다 썼다' 보다 훨씬 엄격해. 릴리스는 사슬 전체가 끝에서 끝까지 검증됐을 때만 완료야. 백엔드 테스트가 통과하고, 프론트엔드 테스트가 통과하고, production client 빌드가 성공하고, DB 가 integrity 와 count parity 검사를 통과하고, launchd 가 프로세스를 쥐고 있는 게 확인되고, HTTP health 와 HTTPS health 가 둘 다 응답하고, PIN gating 이 실제로 문을 잠그고, PWA navigation 이 돌아가고, Tailscale Serve 매핑이 살아 있어야 해. 소스 코드만으로는, dev 서버만으로는, 절대 증거가 못 돼. '컴파일된다' 와 '실제로 돌아갈 방식 그대로 도는 걸 확인했다' 사이의 틈, 정확히 거기서 production 이 깨져.
'dev 서버에선 되던데' 가 함정인 이유
dev 서버는 진짜 환경과 다른 세계야. 빌드가 달라(압축 안 된 개발 빌드 대 production 빌드). 프로세스를 돌보는 주체가 달라(네 터미널 대 launchd). transport 가 달라(localhost 대 Tailscale HTTPS). 인증 상태도 달라(이미 로그인돼 있었을지도 모르지). 이 차이 하나하나가 dev 에선 통과하고 production 에선 무너지는 자리야. verification contract 가 존재하는 이유는, 무언가를 만든 사람이야말로 그 틈을 보기에 가장 나쁜 자리에 서 있기 때문이야. 자기가 지은 경로를, 자기가 꾸린 setup 에서 시험했으니까. 증명이란 실제로 돌아갈 그 물건을, 실제로 돌아갈 그 방식으로 확인하는 거야.
stronghold 를 통째로 돌아보기
한 걸음 물러나서 여덟 트랙에 걸쳐 지은 걸 봐. 하나의 일관된 물건이야. 관측하되 조언하지 않는 stronghold. 모든 층이 같은 북극성을 섬겨. snapshot 모델은 기록을 정직하게 지키고, provider 경계는 데이터에 출처를 달아 차분하게 만들고, live-vs-close 는 가격을 진실하게 유지하며 기본을 pause 에 두고, 재현 가능한 시나리오는 예측하는 척 없이 가능성을 탐색하고, Sidekick 은 복제 없이 뇌를 바인딩하고, 그리고 이 마지막 트랙의 프로세스 하나, 잠긴 문 하나, 증명의 기준 하나가 전체를 지키고 정직하게 유지해. 이 기능들 중 네 맥박을 올리는 건 하나도 없어. 그게 처음부터 끝까지 핵심이었어.