Skip to content
신선한 자몽 농장
Go back

나만의 AI Skill을 만들어보자

매번 같은 설정을 반복하고 있었다

Claude Code로 개발을 시작한 이후로 프로젝트마다 반복되는 작업이 생겼다.

새 프로젝트를 열 때마다 해야 하는 일들이 있었다.

처음에는 이전 프로젝트에서 복사해서 붙여넣는 식으로 해결했다. 그런데 프로젝트가 늘어날수록 어디서 가져왔는지 헷갈리고, 각 프로젝트마다 조금씩 버전이 달라지기 시작했다.

Claude Code와 Codex를 함께 쓰다 보니 두 환경을 각각 설정해야 한다는 점도 번거로웠다.


중앙화가 필요하다고 느꼈다

같은 설정을 여러 곳에 흩어두는 건 좋지 않다. 하나를 고치면 다른 곳도 고쳐야 하고, 어디가 최신인지 파악하기 어려워진다.

그래서 공통으로 쓰이는 스킬, 템플릿, 안전 훅을 한 곳에 모아두는 저장소를 만들기로 했다. 이름은 Jamong-Harvest. “AI로 키우는 개발농장”이라는 슬로건을 붙였다.

핵심 목표는 간단했다.


저장소 구조

저장소는 크게 세 가지로 나뉜다.

Jamong-Harvest/
├── install.sh              # Linux/macOS 설치 스크립트
├── install.bat             # Windows 설치 스크립트
├── skills/                 # 공통 스킬
│   ├── git-workflow/
│   ├── admin-safety/
│   ├── completion-report/
│   ├── code-discipline/
│   └── versioning/
├── templates/
│   ├── CLAUDE.md           # Claude Code 프로젝트 운영 템플릿
│   └── AGENTS.md           # Codex/OMX 에이전트 운영 템플릿
├── hooks/
│   ├── claude/
│   │   └── block-sudo-bash.mjs
│   └── codex/
│       └── block-sudo-bash.mjs
└── docs/
    └── guide.md

스킬 5가지

스킬은 AI가 특정 상황에서 참고하는 지침이다. 상황에 맞게 자동으로 트리거되도록 설계했다.

git-workflow

git 명령어를 실행하거나 커밋, 푸시, 브랜치 전환이 발생할 때 작동한다. 커밋 메시지 형식, 브랜치 네이밍 규칙, PR 작성 기준을 담고 있다. 이 스킬이 없으면 AI가 프로젝트마다 다른 스타일로 커밋 메시지를 만들어낸다. 이를 만들어낸 이유는 내가 원하지도 않는 커밋과 푸시를 하거나 커밋 시 메세지 형식이 항상 달라져서 골치가 아팠기 때문이다.

admin-safety

sudo, doas, pkexec 같은 관리자 권한 명령어 실행 시도가 감지되면 작동한다. AI가 임의로 시스템 명령을 실행하지 않도록 막고, 반드시 사람이 직접 실행하도록 유도한다. 매번 관리자 권한이 필요할때 지속적으로 시도하고 실패 메세지를 반환해서 불필요한 토큰 낭비가 있었다.

completion-report

작업이 완료됐을 때 보고 형식을 표준화한다. 무엇을 했는지, 어떤 파일이 바뀌었는지, 검증 결과는 어떤지를 일정한 형식으로 출력하게 한다.

code-discipline

코드를 작성하기 전에 확인해야 할 원칙을 담는다. 불필요한 추상화 금지, 요청 범위 밖의 수정 금지, 주석 최소화 등 반복적으로 지시해야 했던 내용들이다.

versioning

버전을 올리거나 CHANGELOG.md를 작성하거나 git tag와 GitHub Release를 만들 때 작동한다. 버전 형식, 릴리즈 절차, 태그 규칙을 일관되게 유지하게 해준다.


설치 방법

GitHub Releases에서 install.zip을 받거나, 저장소를 클론해서 스크립트를 실행한다.

./install.sh all      # Claude Code + Codex 모두 설치
./install.sh claude   # Claude Code만 설치
./install.sh codex    # Codex만 설치

Windows라면 install.bat all로 실행한다.

설치가 완료되면 스킬은 아래 경로에 위치하게 된다.

Claude Code: ~/.claude/skills/<skill>/SKILL.md
Codex:       ~/.agents/skills/<skill>/SKILL.md

새 프로젝트를 시작할 때는 templates/ 폴더에서 CLAUDE.md 또는 AGENTS.md를 복사해서 프로젝트 루트에 붙여넣으면 된다.


실제로 어떻게 달라졌나

Jamong-Harvest를 만들기 전후로 체감할 수 있는 차이는 크게 세 가지다.

설정 시간이 줄었다. 새 프로젝트를 시작할 때 환경 설정에 드는 시간이 거의 없어졌다. 스크립트 한 번, 템플릿 복사 한 번으로 끝난다.

AI 동작이 일관해졌다. 여러 프로젝트에서 동일한 스킬을 사용하니 AI가 git 커밋을 만드는 방식, 작업 완료를 보고하는 방식이 프로젝트마다 들쭉날쭉하지 않다.

위험한 명령어 실행이 없어졌다. admin-safety 스킬과 block-sudo-bash.mjs 훅 덕분에 AI가 임의로 sudo 명령을 실행하려는 시도가 차단된다. 이전에는 가끔 AI가 패키지 설치나 권한 변경을 직접 시도하는 경우가 있었다.


아직 부족한 점

쓰다 보면 개선이 필요한 부분이 눈에 들어온다.

스킬 업데이트가 번거롭다. 지금은 스킬을 수정하면 install.sh를 다시 실행해야 반영된다. 이미 설치된 환경에 변경 사항을 자동으로 동기화하는 방법이 필요하다.

프로젝트별 스킬 오버라이드가 없다. 현재 스킬은 전역으로만 적용된다. 특정 프로젝트에서만 다른 방식으로 동작하게 하려면 별도로 CLAUDE.md에 직접 작성해야 한다.

스킬 간 중복이 있다. code-disciplineCLAUDE.md의 코딩 원칙 부분이 내용이 겹친다. 한쪽을 수정하면 다른 쪽도 손봐야 하는 상황이 생긴다.


정리

반복되는 설정 작업이 쌓이면서 결국 하나의 저장소로 모으게 됐다. 처음에는 단순한 모음집으로 시작했지만, 설치 스크립트와 훅을 붙이면서 실제로 쓸 수 있는 도구가 됐다.

AI 도구를 여러 프로젝트에서 일관되게 쓰려면 이런 공통 기반이 하나쯤 있는 게 낫다는 걸 느꼈다.



Previous Post
SSH 키 인증 실패 디버깅: Permission denied 조치 과정
Next Post
Synology Photos 썸네일이 안 보이는 문제 해결기