어떤 문제가 있었냐면요
TIL은 계속 쌓이는데, 지식은 안 쌓이는 경우가 많아요.
왜 그럴까 생각해봤는데요, TIL은 본질적으로 "그날 그 프로젝트에서 생긴 일"의 기록이잖아요. 맥락에 꽉 묶여 있어요. 그래서 한 달 뒤에 다시 읽으면 당시 상황이 기억 안 나서 아무 데도 못 써먹어요.
/til-to-knowledge는 이 틈을 메우는 커맨드예요. 하루치 TIL을 받아서 그 안에 있는 어디서나 통하는 CS·웹 개념을 뽑아내고, 각각을 완결된 학습 문서로 써줘요.
어떻게 동작하냐면요
- 입력 — Obsidian 볼트의
wiki/todayILearned/{날짜}.md를 읽어요. 날짜를 안 주면 제일 최근 TIL이요. - 추출 — TIL에서 공부할 만한 주제를 뽑아요. 여기서 질문이 중요한데요, "오늘 이 버그를 고쳤다"가 아니라 "이 버그 뒤에 있는 일반 원리가 뭐지?" 를 물어요.
- 이중 기록 — 같은 지식을 두 가지 형식으로 변환해서 써요.
- 볼트
wiki/cs/{도메인}/— 한 줄 정의 / 왜 필요한가 / 핵심 개념 / 진단 질문 / 처방 구조예요. TIL 노트에 wikilink로 다시 연결해줘요. - 블로그
content/knowledge/{카테고리}/— Zod 스키마를 지키는 공개용 문서예요. 이 사이트의 Knowledge 섹션이 바로 이 산출물이에요.
- 볼트
두 시스템은 형식도 분류 체계도 달라서, 복사가 아니라 변환이에요. 볼트 문서엔 frontmatter가 아예 없고, 블로그 문서엔 디렉터리 이름 === frontmatter category라는 규칙이 있거든요.
제일 중요한 규칙: 기밀 제거
TIL에는 회사 프로젝트 이름이랑 경로, 수치가 그대로 들어 있어요. 근데 이 커맨드의 결과물은 공개가 전제예요.
그래서 TIL은 개념을 뽑는 입력으로만 쓰고, 결과물은 교과서처럼 다시 써요. 결과물만 보고는 어느 회사, 어느 프로젝트인지 알 수 없어야 해요. 프로젝트 일화나 수치는 인용하지 않고, 필요하면 foo나 example.com 같은 익명 예시로 바꿔요.
또 하나 중요한 규칙은 stub 금지예요. "나중에 채울 TODO 문서"는 안 만들어요. 빈 껍데기 문서는 지식 그래프에서 깨진 약속이 되거든요. 그리고 솔직히, 결국 아무도 안 채워요.
파이프라인에서 어디쯤이냐면요
/agent-memory-log가 쌓아둔 세션 기록과 일일 TIL이 이 커맨드의 입력이에요. 그리고 여기서 나온 knowledge 문서들이 블로그 글의 근거가 되고요.
[기록 → 지식 → 글]에서 가운데 단계예요. 맥락에 묶인 기록을, 맥락 없이도 읽히는 지식으로 승격시키는 자리죠.
배운 점
지식 관리의 병목은 수집이 아니라 변환이었어요.
기록은 열심히 쌓는데 지식이 안 쌓인다면, 기록을 범용 개념으로 다시 쓰는 단계가 빠진 거예요. 근데 그 변환을 매번 사람이 손으로 하면 절대 지속이 안 되더라고요. 그래서 규칙(기밀 제거 · stub 금지 · 분류 불변식)을 아예 커맨드에 박아버렸어요.