만든 걸 밖으로 내보내는 길은 둘이다. 스킬과 코드는 성격이 달라서, 나가는 길을 따로 냈다.
스킬은 플러그인으로
작업 방식은 .claude 플러그인으로 나간다. 저장소마다 규칙을 복사해 두는 대신, 플러그인 하나를 설치하면 어느 저장소에서든 같은 스킬을 쓴다.
실제로 집을 세우면서 마켓플레이스를 등록하고 플러그인을 한 번 설치하니, 사이트든 다른 저장소든 열세 개 스킬을 그대로 갖게 됐다. 예전엔 리뷰 규칙을 사이트 저장소 안에 복사해두고 그걸 따로 고쳐야 했다. 이제 고칠 곳은 집 하나뿐이고, 설치한 모든 곳에 같은 판본이 닿는다.
코드는 패키지로
코드는 패키지로 나간다. 그런데 여기는 한 언어가 아니다. 뉴스 엔진은 TypeScript로 돼 있고, 소리를 시각 지문으로 뽑는 엔진과 가사를 옮기는 엔진은 Python으로 돼 있다.
두 언어를 한 저장소에서 다루려고 turbo 스파인을 하나 얹었다. 명령 하나로 TypeScript 테스트와 Python 테스트가 함께 돈다. 언어는 둘이어도 돌리는 명령은 하나다. 이 패키지들은 지금 전부 비공개다.
버전은 따로 센다
채널이 둘이니 버전을 매기는 축도 둘이다. 서로 간섭하지 않게 갈라뒀다.
plugin.json 스킬 묶음 = 버전 하나
packages/*/package.json 코드 = 패키지마다 따로
스킬 묶음은 플러그인 버전 하나로 움직인다. 스킬을 하나하나 따로 매기지 않는다는 건 Part 3에서 이미 말했다. 코드 패키지는 각자 릴리스 이력을 따로 갖는다. 스킬 하나를 고쳐도 패키지 버전은 그대로고, 패키지를 올려도 플러그인 버전은 그대로다.
길이 둘이라 섞이지 않는다. 작업 방식은 플러그인으로, 코드는 패키지로 나간다.