본문 바로가기
C.W.K.
Stream
Lesson 04 of 04 · published

제품 말고 계약을 만들어

~12 min · firelink, scaffold, walking-skeleton, no-hallucination

Level 0식은 재
0 XP0/32 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"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 는 아무도 안 내린 결정을 지어내는 거야. 가족 전체가 피하려고 지은 그 함정이지. 정직한 빈 껍데기가 더 나은 선물이야. 자신만만한 지어낸 얘기가 아니라 진짜 출발점이니까.

신전의 규율을 '만드는 일' 자체에 돌려놓은 거야. Firelink 는 방을 만들고 문패를 제대로 걸 수 있어. 새것이고, 비었고, 버전은 0.0.0 이고, 권한은 없다고. 그러고는 물러서서, 이 제품이 뭔지 아는 사람들이 그다음을 정하게 둬. 뼈대를 세우는 게 도구 일이고, 거기 영혼을 넣는 건 우리 일이야.

Code

Birth 는 계약을 쓰고, 제품은 아빠랑 Pippa 가 쓴다·text
  BIRTH WRITES (mechanical, verifiable):
    - rename docs/APP-ARCHITECTURE.md -> docs/NEWTHING-ARCHITECTURE.md
    - replace <repo-name> / <app-name> / <APP-NAME> tokens
    - cwk-product.json with the exact id, version = 0.0.0  (honest: a shell)
    - a conservative, EMPTY operation-registry entry
        -> no writer capability inferred for the newborn
    - create private remote, initial push, ledger rows, verify

  BIRTH DOES NOT WRITE (judgment, not mechanism):
    x  the real architecture inside the doc
    x  the product's features, stack, or design
    x  any version above 0.0.0 to 'look finished'
    x  any assumed capability the shell hasn't earned

  0.0.0 is not a placeholder to be embarrassed by. It is the truth.

External links

Exercise

네가 써본 scaffolding 도구나 코드 생성기를 떠올려봐. 프레임워크의 새 프로젝트 명령이든 템플릿 생성기든. 어디서 멈춰? 정직하게 빈 뼈대를 주고 끝나, 아니면 나중에 네가 지워야 할 의견이랑 예제 기능까지 채워놔? 그게 만들어준 것 중에 사실은 네가 아직 안 내린 결정이었던 걸 하나 짚어봐. '제품 말고 계약' 버전이었다면 뭘 비워뒀을지, 그리고 왜 비워두는 게 더 정직한지 적어봐.
Hint
TODO 예제 코드랑 샘플 기능을 뿌려놓는 생성기는 네 대신 제품 결정을 내리고 있는 거야. 계약만 만드는 버전은 구조랑 정직한 버전 표시만 남기고, 진짜 선택은 사람이 채울 빈칸으로 둬. 남의 추측이 아니라 진짜 출발점을 주는 거지.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.