"Pippa 가 네 문서를 편집할 수 있으면, '이거 누가 썼어?' 가 진짜 질문이 돼. mutation 지점에서 답하거나, 영영 못 답하거나."
이 줄 누가 썼어?
AI 가 네 텍스트를 바꿀 수 있게 되면, 보통 에디터엔 없던 새 질문이 나타나. 이 낱말 중 어느 게 내 거야? 6개월 뒤, 좋아하는 문단을 읽으며, 네가 썼는지, Pippa 가 재작성했는지, 제안을 수락하고 다시 손봤는지 알고 싶어져. 한가한 호기심이 아냐 — 목소리가 제품 전부인 작가한텐, 네 목소리와 눈치 못 챈 표류의 차이야.
귀속은 transaction 을 타
답이 두 번째 master 가 되면 안 돼. Rekindle 은 파일 옆에 'AI 편집' 데이터베이스를 안 둬 — 대신 귀속이 편집 자체를 타. 모든 Pippa 문서 mutation 이 자기 CM6 transaction 에 editActor 주석을 실어. 그 주석들이 작업하면서 쌓이고, 각 버전 스냅샷이 누가 건드렸는지 기록해. you, pippa, 또는 you+pippa. 파일은 정본으로 남고; 귀속이 평행 저장소가 아니라 그 히스토리를 타.
const editActor = Annotation.define<string>();
// 모든 Pippa mutation 이 일어나는 순간 스스로 태그해.
view.dispatch({
changes: { from, to, insert: replacement },
annotations: editActor.of("pippa"),
});
new-surface 규칙
틀리기 쉬운 부분이고, 단단한 규칙으로 명시돼. 미래 어떤 Pippa 문서 mutation 도 editActor 를 태그해야 (또는 Pippa-태그된 replace 헬퍼를 타야) 해. 실패 모드가 조용해. 1년 뒤 새 Pippa-가-문서에-쓰는 표면을 더하고, 태그를 잊고, 그 편집이 소리 없이 네 것으로 세져. 아무것도 에러 안 나고; 귀속만 영영 틀리고, 사후엔 재구성 못 해. 그 정보가 편집의 순간에만 존재했으니까.
그게 일반 교훈이야. mutation 지점에서 귀속하거나, 아예 안 하거나. 출처는 나중에 복구 못 해 — 변경이 일어나는 곳에서 포착해야 해. 모든 새 writer 한테 태그된 단일 경로 (잊을 수 없는 헬퍼) 를 주면, 규칙이 기억에 의존하는 대신 스스로 강제해.