직접 만들어 공개한 도구와 그 과정
Claude Code 플러그인 개선하려고 5가지 해 봤는데 하나도 기준을 못 넘었다
Off the Wall은 Claude Code와 Codex용 플러그인이다. 에이전트에게 했던 지적을 저장해 뒀다가 비슷한 일을 시킬 때 내가 했던 말 그대로 다시 보여 준다. 이 글은 잘된 것보다 안 된 걸 쓴다. 배운 게 거기에 더 많았다.
일단 되는 것부터
모델은 내가 커밋 메시지나 날짜를 쓰는 습관을 알 수 없다. 그런 습관 11개를 내가 만들어서 작업으로 바꾸고, 칸당 3번씩 33번 돌렸다. 화면 없이 자동으로 실행했다.
- Claude Sonnet은 플러그인이 없으면 33번 중 2번, 있으면 20번 습관을 따랐다.
- haiku는 첫 시험에서 1번에서 17번, 다시 재니 2번에서 25번이었다.
전부 내가 만든 습관이고 실제 사용자 기록이 아니다. 결과를 본 뒤에 채점기 오류를 고쳤기 때문에 재측정은 독립된 재현도 아니다. Opus와 Codex 모델은 못 재 봤다. 시험 설계는 쉬운 설명 글에 있다.
고치고 싶었던 문제
이 플러그인은 관련 없는 요청에도 인용을 붙인다. 저장된 지적과 상관없는 요청 8개에서 평균 1.8개가 붙었다. 나는 처음에 “비슷한 게 없으면 아무것도 붙이지 않는다”고 썼는데 사실이 아니었고, 그래서 공개로 정정했다. 지금 어떻게 붙는지는 otw explain으로 볼 수 있다. 가짜 저장소에서 하이쿠 요청을 넣어 본 실제 출력이다.

쓸모 있는 인용은 그대로 두고 이런 잡음만 줄이고 싶었다. 시험 전에 계획과 통과 기준부터 파일로 정해 놓고, 아이디어를 하나씩 돌렸다. 결과부터 말하면 다섯 개 다 못 넘었다.
시도 1. 단어 조건을 걸었다
공통 단어가 2개 이상이거나 드문 단어 1개가 겹칠 때만 붙이게 해 봤다. 지적 150개가 있는 저장소에서는 관련 없는 인용이 6.0개에서 2.0개로 확 줄었다. 좋아 보였는데, 같은 습관이 반복되는 240개짜리 저장소에서는 6.0개에서 5.5개로 거의 그대로였다. 저장소 하나에서만 되는 조건이라 버렸다.
시도 2. 짧은 입력용 변형 6개
짧은 입력에 붙는 인용을 줄이려고 변형을 6개 만들어 봤다. 기준을 넘은 게 없었다. 원래 있던 보호 장치(짧은 입력은 예전 기준을 쓴다)를 그대로 뒀다.
시도 3. 임베딩 모델을 붙였다
글자가 아니라 뜻으로 고르는 쪽을 보려고 작은 로컬 임베딩 모델(all-MiniLM-L6-v2)을 써 봤다. 한 설정은 잡음을 크게 줄였다. 그런데 따로 떼어 둔 사례에서 쓸모 있는 인용까지 너무 많이 놓쳤다. 설정을 3개 더 바꿔서 돌렸는데 같은 기준에서 전부 떨어졌다.
시도 4. 지적 옆에 원래 요청도 같이 보여 줬다
지적만 보여 주는 것보다 “그때 내가 뭘 시켰는지”까지 같이 보여 주면 모델이 더 잘 따르는지 봤다. 인용만 보여 줬을 때 33번 중 20번, 인용과 요청을 같이 보여 줬을 때 19번이었다. 이득이 없어서 안 넣었다.
시도 5. 같은 지적의 반복을 하나로 묶었다
위키처럼 같은 내용은 하나로 합치는 방식의 기억을 보고 가져온 아이디어다. 18/40 대 20/40으로 11% 올랐는데 내가 정한 기준은 25%였다. 기각했다.
결과 말고 배운 것
- 시험 러너가 실험 두 개에서 선택을 3개에서 자르고 있었다. 기본값은 6개다. 발견하고 기록해 뒀고 원래 숫자는 그대로 남겼다.
- 작업 하나의 채점기가 틀려서 나중에 다시 채점했다. 원래 표는 그대로 두고 옆에 정정을 적었다.
- 내가 만든 시험을 통과한 것과 실제 사용자한테 도움이 되는 건 다른 얘기다. 진짜 시험은 내 지적이 쌓이고, 알맞은 때 돌아오는지다. 그 증거는 아직 없다.
코드, 계획, 데이터, 실패한 시험 기록은 전부 저장소 docs에 있다. 세션에서 관련 없는 인용이 붙었거나 필요한 인용이 빠졌으면 이슈로 알려 주면 좋겠다. 원문은 안 보내도 된다.