대니
danny's blog@dannywon_dev
발행 62 · 대기 85

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

클로드 코드 스킬을 심볼릭 링크로 — 미검증이 30초짜리였다

전역이냐 볼트냐로 스킬 16개 위치를 고르다가, 미검증이라 뒤로 밀어둔 심링크 안을 실제로 테스트해보니 30초였다.

클로드 코드 스킬이 열 개를 넘어가면 어디에 둘지가 문제가 된다.

전역 경로(~/.claude/skills/)에 두면 어느 폴더에서 켜도 뜬다. 대신 옵시디언 볼트 밖이라 노트로는 안 보인다. 볼트 안(.claude/skills/)으로 옮기면 반대가 된다. 노트로는 보이는데 다른 레포에서 작업할 때 안 뜬다.

2026-08-09, 스킬 16개를 놓고 이걸 정하려 했다. 클로드가 안을 세 개 정리해 왔다.

  • A. 전부 볼트로 → 레포 세션에서 5개가 죽는다. 추천 안 함
  • B. 볼트를 읽는 스킬만 옮기고, 코드에 붙는 스킬은 전역에 남긴다 → 추천
  • C. 볼트에 실물 두고 전역에서 심볼릭 링크 → 둘 다 되지만 클로드 코드가 심링크를 따라가는지 확인이 안 됐다

추천은 B였다. C에는 "궁금하면 테스트해 볼 수 있다"라고 한 줄만 붙어 있었다.

"레포에서 깨지면 안 되겠네"라고 말한 다음에야 테스트가 돌았다

나는 이렇게 답했다.

내 마음 같아서는 다 볼트에서 보고 싶은데, 레포에서 깨지면 안 되겠네.

그 말을 하고 나서야 C 테스트가 돌아갔다. 더미 스킬 하나 만들고, 링크 걸고, 호출. 30초 걸렸고, 됐다. 이어서 "실물과 링크가 같이 있으면 중복으로 뜨지 않나"도 확인했다. 또 30초. 중복은 안 떴다.

B는 그 자리에서 필요 없어졌다.

미검증은 상태이지 결론이 아니다

순서가 이상하다. C에 "미검증"이라는 라벨이 붙었고, 검증하지 않은 채로 순위가 내려갔다. 검증에 30초 드는데.

미검증인 선택지를 만나면 할 일은 둘 중 하나다. 검증하거나, 검증 비용이 커서 못 하겠다고 말하거나. 여기서는 셋째가 일어났다. 비용을 재보지도 않고 미검증이라는 이유로 뒤로 밀었다.

비용을 안 잰 게 핵심이다. 그 검증이 "스킬 16개를 다 옮겨보고 며칠 써봐야 안다"였으면 미루는 게 맞다. 실제로는 더미 파일 하나였다. 재보는 데 드는 시간조차 0에 가까웠다.

그리고 B는 그냥 덜 좋은 안이 아니었다. 문제를 반으로 쪼개서 양쪽 다 반쪽만 얻는 안이다. 스킬을 성격으로 갈라야 하고, 새 스킬을 만들 때마다 "이건 볼트 쪽인가 전역 쪽인가"를 매번 판단해야 한다. C가 되면 그 판단 자체가 사라진다. 영구적으로 비용을 만드는 안이 추천으로 올라와 있었던 셈이다.

볼트에 실물, 전역에 심링크 16개

# 옮기고 링크
for d in ~/.claude/skills/*/; do
  name=$(basename "$d")
  mv "$d" ~/vault/.claude/skills/"$name"
  ln -s ~/vault/.claude/skills/"$name" ~/.claude/skills/"$name"
done

# 끊긴 링크 검사 — 이게 없으면 나중에 조용히 죽는다
for l in ~/.claude/skills/*; do [ -e "$l" ] || echo "끊김: $l"; done

검증은 세 가지였다. 심링크 스킬이 로드·호출되나(됨), 실물과 링크가 같이 있으면 중복으로 뜨나(안 뜸), 링크 경유로 스크립트가 실행되나(됨). 전부 합쳐 2분 안쪽이었다.

문서에는 구조와 함께 링크 복구법을 같이 적었다. 링크를 잘못 지우면 스킬이 통째로 사라지는데, 그때 원인을 못 찾으면 오래 헤맨다.

바꾼 것

  • 선택지에 "미검증"이라고 쓸 때는 검증에 얼마나 드는지를 같이 적게 했다. 그게 없으면 미검증 라벨이 사실상 「탈락」으로 작동한다. 읽는 쪽도 그렇게 읽고, 쓰는 쪽도 그렇게 굳는다
  • 내가 트레이드오프를 받아들이는 말을 하면 — "그럼 이건 포기해야겠네" — 거기서 한 번 되묻게 했다. 포기하기로 한 그게 정말 포기할 수밖에 없는 것인지, 검증을 안 해서 없어진 선택지인지
← 목록으로