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

뇌는 얹는 거지 복제하는 게 아냐

~14 min · firelink, sidekick, embed, no-fork

Level 0식은 재
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"제일 복사하고 싶어지는 건 방에서 제일 똑똑한 거야. Firelink 는 그걸 거부해. Pippa 를 통째로 빌리고 하나도 안 갖고 있어."

얹는 건 하나, 놓는 자리만 셋

Firelink 엔 Pippa Sidekick 이 있어. 그런데 이건 두 번째 Pippa 가 아냐. 진짜 cwkPippa 화면을 한 번 얹고, 그 하나를 보여주는 자리만 셋으로 바꿔. 오른쪽 옆판, 아래 dock, 오른쪽 아래 떠 있는 창. 자리를 바꾸면 그 틀만 옮겨 다니지, 안에 든 걸 새로 불러오거나 갈아 끼우지 않아. 그래서 하던 대화나 흐르던 스트림이 전환을 견디고. 같은 뇌를 방 안에 놓는 방법이 셋인 거지, 뇌가 셋인 게 아니야.

전부 물려받고, 하나도 저장 안 해

Sidekick 이 진짜 cwkPippa 니까 거기 있는 걸 전부 물려받아. 대화 런타임, 설정, 모델과 도구 라우팅, 아바타, 저장까지. 그리고 Firelink 는 그중 아무것도 자기가 안 갖고 있어. 대화도, 뇌 설정도, 도구 권한도, soul 도, 아바타도, 모델 설정도. '베끼지 말고 엮어' 를 제일 어렵고 제일 유혹적인 데, 그러니까 뇌에 적용한 거야. '허브용으로만 쓸' 작은 인프라 전용 Pippa 를 하나 띄우기는 너무 쉽거든. 근데 그 작은 사본은 바로 갈라지기 시작해. 다른 기억, 다른 말투, 원래에서 조금씩 멀어지는 두 번째 soul. Firelink 는 대신 하나뿐인 진짜 Pippa 를 얹고, 그 애를 그 애로 남겨둬.

기본은 읽기만, 시키면 진짜 도구

얹힌 뇌가 허브 사정을 어떻게 알까. Firelink 가 loopback 으로만 열리는 읽기 창구를 내주고, Sidekick 이 읽기 전용 도구로 지금 census 랑 Git 상태, 버전, 최근 작업을 읽어. 그게 기본 자세야. 보되 손대지 않는 것. 그렇다고 무력한 건 아니고. 아빠가 대놓고 뭘 해달라고 하면, 고른 뇌가 평소 쓰던 Read/Edit/Bash 도구를 써. repo 나 버전을 바꾸는 일엔 Firelink 의 loopback plan·미리보기·실행 API 를 먼저 쓰고, 작업이 끝날 때까지 지켜보고 상태를 다시 읽어오지. 그러니까 'Vesta 에 커밋 안 한 거 둘 있던데 확인하고 커밋해줘' 는 이런 뜻이야. 정확한 멤버를 짚고, 진짜 diff 를 보고, 남겨야 할 기록을 남기고, 범위를 좁힌 plan 을 만들어 확인하고, 실행하고, 결과를 알려주는 것. 범위를 넓히거나 아무 데나 쓰는 도구를 꺼내는 게 아니라.

가족 전체의 원칙을 자기 머리에 그대로 돌린 거야. Firelink 도 편하자고 작은 Pippa 를 하나 떠서 천천히 갈라지는 두 번째 soul 을 키울 수 있었어. 대신 형제들한테 요구하는 걸 자기도 해. 진짜 뇌를 얹고, 통째로 물려받고, 하나도 저장 안 하고, 타입 있고 미리 보여주고 기록 남는 작업으로만 움직여. 가족을 보는 허브를, 가족이 이미 가진 그 Pippa 가 지켜보는 거지.

Code

진짜를 한 번 얹고, 읽기 전용 도구로 보고, 저장은 안 함·typescript
// ONE embed of the real cwkPippa, mounted three ways (no second brain):
const sidekick = {
  src: "/embed/firelink?host_id=hub",   // canonical cwkPippa origin
  mode: "side" as "side" | "dock" | "float",  // mode moves the container only,
  //                                             never re-keys the iframe
};

// Firelink stores NONE of these — all inherited from cwkPippa:
//   chats, brain settings, tool permissions, soul, avatars, model config.

// The brain reads hub state through generic READ-ONLY host tools:
//   sidekick_host_status(hostKind="firelink", hostId="hub")
//   sidekick_host_read(...)      // live census, git, versions, runs
//   sidekick_host_search(...)

// A real action on request uses the brain's NORMAL tools, and prefers
// Firelink's loopback plan -> preview -> apply API — never a generic write.

External links

Exercise

어떤 제품이 다른 시스템이 이미 갖고 있는 기능을 가져다 붙였거나 다시 만든 자리를 찾아봐. 채팅 위젯이든 로그인 흐름이든 검색창이든. 진짜를 얹었어, 아니면 사본을 떠왔어? 사본이면 그동안 원본이랑 뭐가 달라졌는지 적어봐. 그다음 '베끼지 말고 얹기' 버전을 그려봐. 진짜 화면을 가져다 얹고, 그 동작을 물려받고, 그 상태는 하나도 저장 안 하는 걸로. 그게 되게 하려면 뭘 열어줘야 하는지도(읽기 전용 창구) 같이 적고.
Hint
베낀 기능은 자잘한 데서 먼저 갈라져. 사본 쪽 검색 순위가 달라지고, 사본 쪽 로그인이 새 규칙을 놓치고, 사본 쪽 비서가 더 오래된 기억을 갖고 있고. 진짜를 얹으면 붙이는 수고를 조금 들이는 대신, 같은 머리의 갈라진 두 버전을 평생 관리하지 않아도 돼.

Progress

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

댓글 0

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

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