C.W.K.
Stream
Lesson 04 of 05 · published

자기 뇌가 없어

~10 min · no-own-brain, client-surface, canonical-conversation, identity

Level 0식은 화로
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"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 은 절대 복제되면 안 되는 딱 하나야.

배관은 어쩔 수 없으면 복제해도, soul 은 절대 복제하지 마. 공유 코드 drift 는 drift check 로 잡을 수 있는 버그야. 두 번째 뇌 drift 는 잡을 수 없는 버그야 — diff 할 canonical 답이 없으니까. 두 정체성이 그냥 미묘하게 다른 두 사람이 되고, 각자 방식으로 틀려. kit 은 client 사본을 수렴시킬 수 있어. 두 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 하게 유지해.

Code

Ask Pippa: Vesta 는 키를 쥐고, cwkPippa 가 대화를 소유·typescript
// Vesta holds ONLY a typed context key + a compact display projection
interface VestaAskBinding {
  journal_id: string;
  target_date: string;        // the context key: (journal_id, target_date)
  // NO messages, NO transcript, NO model — none of it lives here
}

// cwkPippa owns the actual conversation, canonically:
//   origin_surface = 'vesta'   -> projected into the server-owned VESTA folder
//   SQLite messages, JSONL transcript, attachments, tools, model runtime
//   full replay + retrieval
//
// continue the SAME thread from the cwkPippa web UI later — it's identical,
// because Vesta never kept its own copy to drift. One brain, many surfaces.

External links

Exercise

AI 어시스턴트를 임베드한 제품을 봐. 어시스턴트가 나타나는 모든 곳에서 같은 정체성인지, 아니면 drift 할 수 있는 표면별 사본인지 물어봐. 그다음 원하는 경계를 그려봐 — 각 표면이 뭘 소유해(context 키, projection) 대 뭐가 하나의 canonical 뇌에 남아(기억, transcript, 도구, 모델)? 어떤 능력이 표면이 자기 버전을 절대 키우게 두면 안 되는 그거인지 봐.
Hint
절대 복제하면 안 되는 능력은 정체성/판단 — 뇌야. 배관은 공유되고 drift-check 될 수 있어. 두 번째 뇌는 수렴할 canonical 답이 없어서 그냥 미묘하게 다른 사람이 돼. 좋은 임베드는 context 키와 projection 만 쥐고, 하나의 canonical 소유자한테서 뇌를 빌려.

Progress

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

댓글 0

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

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