Series
Multi-part series, in reading order.
- 고치라는 지시부터, 다시 봐야 했다 (5편)
재설계 이후, '고치라'는 지시나 문서 자체가 틀렸던 기록. 죽은 주석을 고치다 또 틀린 것, 가설이 반만 맞았던 것, 고치기 전에 한 번 더 물어서 막은 것, '지우라'는 지시와 '어떻게 지울지'가 다른 질문이었다는 것까지.
- 설계까지 다 거치고도, 실행해봐야 보였다 (7편)
설계 문서와 계획서를 다 거쳐도, 실행해봐야만 보이는 버그들을 다룬 기록. 테스트가 구조적으로 못 잡는 레이스 컨디션, 병합 판단을 빼자 오히려 분할이 살아난 것, 레이스를 막는 대신 없애버린 선택, 죽어있던 Link & Enrich 기능, 되돌리기 버그가 세 겹으로 숨어 있던 것, 자정을 넘길 때만 걸리는 레이스, 그리고 분할 제안 카드의 가독성 버그 네 가지와 링크 재배정 시 별칭이 안 갱신되던 문제까지.
- AI 검증이 놓치는 것들 (1편)
AI가 만든 결과물을 다시 검증하는 장치 자체를, 그 장치가 실제로 뭘 놓치는지 실측으로 들여다본 기록. 상위개념과 하위유형을 동일 대상으로 오판한 병합 감사 장치, 리스트 밀도가 높은 파일에서 항목별 대조 없이 훑어보기만 한 서브에이전트 전수 감사, 다른 사례로만 재검증하느라 원래 오탐 사례는 다시 안 본 것, ingest 단계에서 형제 노트끼리 문단을 그대로 베끼는 걸 처음엔 아무 장치도 못 잡았던 것, 그리고 그 중복을 잡으려 새로 만든 임베딩 필터조차 모델 등급(small/large)에 따라 판정이 뒤집히는 것까지.
- [완결] 막힌 이유를, 몇 번이고 다시 찾았다 (9편)
네이버 뉴스 검색이 403으로 막히는 진짜 원인을 찾은 기록. 동시성·딜레이·시간창 가설을 차례로 실측해서 반증하고, 배치+휴식 구조로 완전히 해결한 다음, 그 휴식을 30분에서 1분까지 얼마나 줄일 수 있는지 끝까지 밀어붙였다.
- [완결] 비슷한 옵시디안 플러그인 여섯 개를 파보니 (7편)
지금 만들고 있는 Obsidian LLM Wiki 플러그인과 같은 컨셉(Karpathy's LLM Wiki)을 구현한 다른 플러그인 여섯 개를 GitHub에서 직접 받아 소스 코드까지 읽고 비교한 기록. 각 플러그인의 아키텍처·차별점을 하나씩 살펴본 뒤, 마지막엔 지금 만드는 것과 종합적으로 비교한다.
- [완결] Gemini를 걷어내다가 (2편)
Honcho의 LLM/임베딩 스택을 Gemini에서 GPT-5.6 Luna로 옮기는 과정에서 조용히 죽어있던 재조정(reconciliation) 버그를 찾고, 그 수정을 원본 오픈소스 프로젝트에 PR로 돌려준 기록.
- 다 확인했다고 생각한 순간마다, 확인이 하나씩 빠졌다 (3편)
korean-app-prospecting-db를 만들면서, AI 코드 리뷰·테스트·대화 이해까지 여러 겹으로 확인 장치를 쌓아뒀는데도 매번 다른 지점에서 확인이 하나씩 빠졌던 기록. 계획서 자체의 모순, 정규식이 실제 페이지 구조와 어긋나 손으로 만든 테스트 픽스처를 통과한 것, 지시의 순서를 허락으로 착각한 것까지 다룬다.
- 확신을 실측 앞에 세워봤다 (9편)
재설계 이후, 그럴듯해 보이는 확신을 실측 앞에 세워본 기록. few-shot 반례의 함정, 정보 밀도 손실, 위키링크 오탐, 근거 없이 만든 RAG 주장, UTF-8 파싱 버그, 태그·링크 실험, reasoning effort와 격리 조건, 그리고 임베딩 검색으로 판단력을 보강한 것까지.
- MCP 서버랑 스킬 리뷰 (8편)
Claude Code나 Hermes에 붙일 만한 도구를 하나씩 검토한 기록. MCP 서버(코드베이스 지식 그래프 등)뿐 아니라 워크플로 스킬(Superpowers), 토큰 절약 도구(Headroom, OmniRoute), 메모리 플러그인(claude-mem), 브라우저 자동화 도구(agent-browser)까지 — 'Claude Code에 실제로 붙일 만한가'라는 같은 기준으로 다룬다.
- [완결] AstroPaper 수정하다가 (4편)
이 블로그가 쓰는 AstroPaper 테마를 손본 기록 — 시리즈 모아보기 기능을 새로 만든 것부터, 목록 대신 최신 편 미리보기만 보여주기로 한 결정, 최종 리뷰가 잡아낸 버그, 독립글 전용 페이지와 nav 재편, 시리즈 배지·목차, 그리고 시리즈 설명이 1편에 고정돼 있던 걸 고치기까지.
- [완결] 파일쓰기 재설계 이후 (5편)
파일쓰기 로직 재설계가 끝난 뒤에도 이어진 기록. 무관한 작업에 휩쓸려 조용히 죽어있던 self-healing 기능, 통과했지만 아무것도 증명 못 하던 테스트, '동작한다'와 '옳다'를 헷갈린 두 번, 같은 함수를 세 번 다시 리뷰해야 했던 것, 반례가 절반만 통했던 경험까지.
- [완결] 파일쓰기 로직 재설계하다가 (4편)
obsidian-gemini-butler의 파일쓰기 로직(/ingest, /refactor 등)을 통째로 재설계한 기록. 계획 문서 자체의 모순, 태스크 리뷰가 잡아낸 결함, GitHub 이슈 상태와 실제 코드의 어긋남, 프로젝트가 이미 정해둔 규칙을 안 읽고 진행했던 것까지 다룬다.
- [완결] 고객사 뉴스 리포트 만들다가 (9편)
고객사별 뉴스 검색·크롤링·중복제거·LLM 요약 파이프라인을 만들면서 겪은 기록. 컨테이너 경로, 모델 단종, 검색 노이즈, 마크다운 링크, LLM 판단 근거, O(n²) 중복제거 알고리즘, 캐싱까지 — 몇 시간씩 걸리던 리포트를 9분대로 줄이기까지의 과정.
- [완결] Agents에게 Honcho 메모리를 붙여주려다가 (9편)
Hermes와 Claude Code에 Honcho 메모리 시스템을 붙여주는 기록. self-host부터 시작해서, 모델별 반복 횟수 문제, 판단 기준을 만들다가 찾은 장애, 환각(지어내기), 틀리는 이유의 종류, deriver 큐 문제, 타임아웃, 끄려다 절반만 꺼진 버그까지.
- [완결] 죽어있던 토글 하나 (2편)
obsidian-gemini-butler에서 mailto 링크 길이 제한 때문에 죽어있던 토글 기능 하나를 고치는 과정. 다 끝났다고 생각할 때마다 구멍이 하나씩 더 나왔던, Levenshtein 거리와 전체 코드베이스 검색으로 파고든 기록.
- [완결] 중복 클리핑 줄이려다가 (2편)
Obsidian 클리핑이 중복으로 쌓이는 문제를 고치려다가, 증상은 하나인데 원인이 둘이었다는 걸 알게 된 기록. Jaccard/bigram 유사도, canonical URL, 기존 플러그인과의 비교까지 세 번 틀리고 나서야 숫자로 확인했다.
- [완결] 뉴스 요약 자동화 만들다가 (5편)
뉴스 요약 자동화 파이프라인을 만들면서 겪은 기록. in-process 스케줄러의 함정, '확인 불가'로 뭉개지던 진짜 버그, 날짜가 안 뜨던 이유, 메일 링크 404, 배포 확인 결과가 실제와 어긋났던 것까지.
- [완결] 프롬프트에서 뺄 거 찾다가 (5편)
obsidian-gemini-butler 프롬프트에서 뺄 것을 찾다가 발견한 기록. 정교한 해결책을 설계하다 이미 있던 걸 뒤늦게 알아챈 것, 데이터를 두 번 보내고 있던 것, 한 달째 지침이 하나도 안 가고 있던 것, 절반만 고쳤던 것, 안전하다고 믿었던 전제가 코드엔 없었던 것까지.
- [완결] Hermes에게 lint 정리를 맡겼다가 (3편)
Hermes에게 ESLint 크래시 정리를 맡겼다가 겪은 기록. Hermes의 보고를 그대로 믿지 않고 다시 계산해야 했던 것, YAML 날짜가 조용히 사라진 이유, AI가 스스로 작업을 멈춘 순간까지 다룬다.
- [완결] Obsidian에 LLM Wiki 만들기 (5편)
Andrej Karpathy가 제안한 'LLM Wiki' 개념을 Obsidian 플러그인으로 직접 구현한 기록. 이미 있는 플러그인 10개를 두고 왜 새로 만들었는지부터, 날짜 버그, 동적 뱃지·dirty check 같은 UX 디테일, 자율 ingest 엔진으로 진화하기까지.