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

역할 셋 — CMD+K inline diff

~12 min · cmd-k, inline-diff, widget, autosave, job-three

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"줄을 선택하고 CMD+K 를 치면 Pippa 재작성이 원본 밑에 나타나 — 근데 Enter 를 누를 때까지 문서는 안 바뀌어."

역할 셋 — inline diff

세 번째 역할이 Rekindle 을 처음 마법처럼 느끼게 하는 거야. 텍스트를 선택하고 CMD+K 를 누르면 Prompt Macro 가 재작성해 — 다듬고, 번역하고, 조여서 — 결과가 Cursor 스타일 inline diff 로 내려앉아. 원본이 제자리에서 그어지고, 제안이 바로 밑에 앉고, Enter 로 수락하거나 Esc 로 취소해. 메커니즘적으론 제안을 담은 widget decoration 플러스 원본을 긋는 mark 야. 수락하면 단일 CM6 transaction 이 텍스트를 바꿔.

왜 편집-후-undo 가 아니라 widget 인가

솔깃한 지름길: 재작성을 즉시 적용하고, 사용자가 싫어하면 undo 로 되돌리게 두기. Rekindle 은 그걸 거부하고, 이유는 정확해. 사용자가 수락할 때까지 문서가 mutate 되면 안 돼. 제안은 decoration — 안 바뀐 소스 위 뷰 레이어 — 라서, 네가 결정하는 동안 모델엔 아무것도 안 쓰여. 오직 Enter 만 실제 편집을 만들어.

// 제안은 안 바뀐 소스 위 WIDGET — 아직 편집 없음.
showProposal(view, { from, to, replacement });

// 수락할 때만 단일 transaction 이 문서를 mutate 해.
view.dispatch({ changes: { from, to, insert: replacement } });

autosave 함정

'decoration-first' 를 non-negotiable 로 만드는 war story 야. Rekindle 은 window blur 에 autosave 해. 순진한 흐름을 상상해 — 재작성 즉시 적용, undo 로 취소 의존. CMD+K 를 치면 doc 이 바뀌고, 결정 전에 뭘 확인하려 딴 데 클릭해. window blur 가 발동, autosave 가 돌고, 수락 안 된 재작성이 이제 디스크에 저장돼. undo 는 못 구해. 파일이 이미 바뀌었어. Rekindle 은 제안을 decoration 으로 보여주고 수락할 때만 mutate 하니까, 클릭해 나가면 그냥 dismiss 돼 — 파일은 네가 마지막으로 수락한 그대로야.

CMD+K 는 또, 조용히, 새 기능이 아니라 cwkPippa Prompt Macro 의 client 야 — 그 재사용이 자기 레슨을 얻는 건 트랙 5 야. 여기 요점은 메커니즘이야. bold 를 렌더하고 voice 이슈에 밑줄 긋는 그 decoration 엔진이, 네가 예스 할 때까지 비파괴적으로, AI 재작성도 무대에 올려.

Code

decoration-first: 수락할 때만 문서를 mutate·typescript
// 1) CMD+K: Prompt Macro 호출, 재작성 받아, WIDGET 으로 보여줌.
//    소스는 안 바뀜 — 제안은 뷰-레이어 decoration.
function showProposal(view, { from, to, replacement }) {
  view.dispatch({ effects: setProposalEffect.of({ from, to, replacement }) });
  // 원본을 긋고 (mark) + 제안 블록 삽입 (widget) — 텍스트 편집 없음
}

// 2) Enter 수락: ONE transaction 이 실제로 문서를 바꿈.
function acceptProposal(view, { from, to, replacement }) {
  view.dispatch({ changes: { from, to, insert: replacement } });
}

// 3) Esc / window-blur: decoration 만 지움. 아무것도 안 쓰였으니
//    blur-발동 autosave 가 수락 안 된 재작성을 저장할 수 없음.

External links

Exercise

AI 재작성 프리뷰의 두 흐름을 스케치해. (A) 편집 즉시 적용, undo 로 취소 의존; (B) 편집을 decoration 으로 보여주고 수락할 때만 mutate. 이제 둘 다에 blur-autosave 를 더하고, 사용자가 결정 중에 클릭해 나가면 디스크에 뭐가 있는지 추적해. 왜 (B) 만 안전한지 한 문장으로 설명해.
Hint
(A) 에선 적용과 결정 사이에 blur 가 발동해서 autosave 가 수락 안 된 편집을 저장 — undo 가 이제 저장된 파일과 싸워. (B) 에선 아무것도 안 쓰였으니 blur 는 decoration 만 dismiss; 디스크엔 마지막 수락 버전이 그대로.

Progress

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

댓글 0

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

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