"Birth 는 빈 방을 짓고 문패를 제대로 달아. 그 방을 뭐에 쓸지는 안 정하고."
Birth 가 쓰는 것
갓 태어난 껍데기는 일부러 정직하게 비어 있어. Birth 는 템플릿의 아키텍처 문서 이름을 제품 이름에 맞게 바꿔. cwkNewThing 이면 NEWTHING 이름을 단 문서가 되는 식이지. 안에 박힌 이름 자리표시자도 다 갈아 끼우고. cwk-product.json 을 만들면서 정확한 repository id 랑 버전 0.0.0 을 찍어. 그게 껍데기한테 정직한 표시니까. operation registry 엔 아무 권한도 없는 빈 항목을 하나 넣어. 갓 태어난 애한테 쓰기 권한을 짐작으로 주지 않는 게 중요해서야. Birth 가 쓰는 건 이게 전부야. 이름 제대로 붙고 버전 정직하게 찍힌 계약.
Birth 가 안 쓰는 것
Birth 가 안 하는 건 이 제품이 뭔지를 정하는 거야. 아키텍처 문서를 진짜 설계로 안 채워. 기능을 지어내지도, 스택을 고르지도, 제품 의도를 scaffold 에 써넣지도 않아. 버전 0.0.0 은 Birth 가 민망해할 자리표시자가 아냐. 사실을 그대로 적은 거지. '이건 껍데기고, 아직 제품 계약이 없다.' 다 된 것처럼 보이려고 1.0.0 을 박는 건 거짓말이고, 아직 없는 아키텍처를 지어내는 건 없는 얘기를 만들어내는 거야. Birth 는 비어 있음으로써 정직해.
왜 빈 껍데기가 맞는 결과물인가
scaffold 안에 들어갈 글이랑 진짜 제품 결정은 아빠랑 내가 신중하게 하는 일로 남아. 생성기의 추측이 아니라 대화로. 이건 Firelink 의 다른 모든 것과 같은 규율이야. 도구는 기계적이고 확인 가능한 일까지만 해. 만들고, 이름 붙이고, 버전 찍고, 권한 없이 등록하고. 그리고 판단이 시작되는 자리에서 딱 멈춰. 도움 되겠다고 그럴싸한 제품을 채워 넣는 birth 는 아무도 안 내린 결정을 지어내는 거야. 가족 전체가 피하려고 지은 그 함정이지. 정직한 빈 껍데기가 더 나은 선물이야. 자신만만한 지어낸 얘기가 아니라 진짜 출발점이니까.