"구조화된 진실을 색인해. export 는 절대 색인하지 마 — export 는 틀려도 되는 거야."
솔깃한 지름길
Recall 은 읽을 수 있는 Markdown transcript 를 생성해. 바로 거기 있어, 영상당 파일 하나, 네가 검색하고 싶은 정확한 텍스트로 가득. 그러니 지름길이 스스로 쓰여: 검색 index 를 Markdown 폴더에 겨누면 끝. 모든 본능이 그러라고 해. Recall 은 아니라고 하고, 이유가 빠르게 쌓여.
- Markdown 은 mutable 해. 사람이 손으로 편집할 수 있고, 동기화가 stale 하게 만들 수 있고, 재생성이 교체할 수 있는 디스크의 파일이야. 그걸 색인하면 export 가 입력이 되게 둔 거야 — 트랙 2 가 금지한 바로 그 loop. 손 편집된 파일이 네 검색이 믿는 걸 조용히 다시 쓸 거야.
- Markdown 은 구조를 잃었어. 여기선 검색이 제품이 아냐; 영상으로 돌아가는 문이 제품이야. 그 문엔 segment 당 절대 타임스탬프가 필요해. release 를 산문으로 납작하게 만들면 타임스탬프가 사라져 — 단어는 찾는데 두 시간짜리 영상 어디 사는지는 여전히 몰라.
- index 는 재구축 가능해야 해. 파생 index 엔 purge 하고 replay 할 수 있는 canonical 소스가 필요해. 그 소스는 누가 건드렸을지 모르는 파일이 아니라 DB 의 release 야.
release 가 실제로 뭔지를 색인해
그래서 Recall 은 current release 에서 DB 안의 전문 index 로 투영된, 순서 있는 타임스탬프 segment 를 색인해. 각 hit 이 문에 필요한 걸 지녀: 자기가 나온 current release, 절대 영상 타임스탬프, 주변 텍스트, source identity 랑 경로, release 의 content hash, 그리고 rank. 그게 행동할 수 있는 검색 결과야 — 클릭하면 엔진이 정확히 어느 영상, 정확히 어느 초인지 알아.
Markdown 은 여전히 존재하고, 여전히 쓸모 있어 — 사람이 읽기에. 그냥 엄격히 하류에 살아, 권위 없는 export 로, 아무 데도 참여 안 하며: index 도, queue 완료도, 요약 진실도 아니고. 레거시 corpus 조차 이 규칙을 따랐어: 그 옛 Markdown 은 명확히 라벨된 구조화 증거로 한 번 import 됐고, 그때부터 검색은 파일이 아니라 구조화된 segment 위에서 돌았어.
세심함을 드러내는 디테일 둘
첫째: 제품 검색은 hit 을 영상별로 묶되 나중 것들을 버리지 않아. 순진한 묶기 — 영상당 행 하나, 최고 hit 만 — 는 그 영상의 다른 모든 match 를 조용히 버리는데, 그게 종종 정확히 네가 사냥하던 순간이야. 묶기는 표현 선택이야; 절대 데이터 손실 선택이 되면 안 돼.
둘째: 유사 영상 결과는 현재 lexical 이고, vector index 는 일부러 canonical 상태가 아냐. 나중에 더해지면, 규칙이 이미 있어: release-addressed 하고 재구축 가능하게 남아야 해 — 같은 버전 있는 진실에서 파생되고, purge 하고 replay 할 수 있고, 절대 두 번째 권위의 원천이 아니게. 파생된 건 아무리 영리해져도 파생된 채 남아.