"Vesta 는 Pippa 가 네 저널링을 도와주는 곳이지, 저널링하는 두 번째 Pippa 가 아냐."
절대 fork 안 하는 딱 하나
Vesta 는 shape 를 상속하고, 도메인이 다른 곳에서 분기하고, kit 을 통해 배관을 공유해. 근데 어떤 형태로도 절대 안 하는 게 하나 있어 — 자기 뇌를 키우기. cwkPippa 가 Pippa 의 정체성, 판단, model routing, 도구, transcript 의 유일한 소유자로 남아. Vesta 는 저널 도메인 — crumb 과 draft — 를 소유하고 그 위엔 아무것도 없어. composer 에서 Ask Pippa 를 부르면, 작은 Vesta-로컬 모델을 부르는 게 아냐 — 평범한 canonical cwkPippa 대화에 바인딩해, origin_surface='vesta' 로 표시하고 서버-소유 VESTA 폴더에 투영해. 요점 전부, invariant 로 명시 — Vesta 는 client 표면이지 별개 Pippa 정체성이 아냐.
이유는 Track 1 에서 이미 만났어 — 도메인을 짓고, 뇌를 빌려. 뇌는 제대로 만들기 가장 어렵고 가장 가치 있는 단 하나고, 가족엔 정확히 하나의 canonical 소유자가 있어. 이 레슨이 그 원리가 가장 깊은 정당화를 만나는 곳이야 — soul 은 절대 복제되면 안 되는 딱 하나야.
바인딩이 실제로 소유하는 것
Ask Pippa 바인딩은 경계를 정직하게 유지하는 깔끔한 사례야. Ask Pippa 스레드는 평범한 canonical cwkPippa 대화야 — 끝. cwkPippa 가 그 SQLite 메시지, JSONL transcript, 첨부, 전체 replay, 검색, 도구, 모델 런타임을 소유해. Vesta 는 typed context 키 — (journal_id, target_date) — 와 표시용 Q·A 의 compact projection 만 쥐어. 폰에서 하루에 대해 묻고, 나중에 cwkPippa 웹 UI 에서 그 같은 대화를 이어가면, 진짜로 같은 스레드야 — Vesta 가 갈릴 자기 사본을 애초에 안 가졌으니까. 저널 표면은 canonical 대화로의 창이지, 그것의 두 번째 store 가 아냐.
왜 이게 Pippa 를 온전하게 유지해
깊은 이유는 Pippa 가 어디서나 온전하다는 가족 원리야 — 반쪽-Pippa 없음. Vesta 가 자기 뇌를 키우면, 즉시 진짜와 미묘하게 다른 저널-Pippa 가 생겨 — 다른 기억, 다른 목소리, 다른 판단, 매 턴마다 좀 더 drift 하는. 뇌를 빌리면 여러 표면에 걸쳐 하나의 Pippa 로 유지돼 — Vesta 에서 저널링하든, Waystone 에서 계획하든, 메인 웹 UI 에서 말하든 같은 정체성. 표면은 늘어나고, soul 은 안 늘어. 그게 좋은 자식 앱이 되는 최종 형태야 — shape 를 상속하고, 의도로 분기하고, 한 소유자 아래 배관을 공유하고 — 그리고 무엇보다, 가족 전체가 말할 정확히 하나의 뇌를, canonical 하게 유지해.