내 Claude Code 세팅의 의미·시사점, 그리고 실제 구성 전부
기술 용어 없이 — 이 세팅이 어떤 발상이고 어떤 점이 좋은지부터
AI 코딩 도구를 그냥 쓰면, 매번 똑같은 말을 반복하게 된다. "한국어로 답해라", "이 폴더는 일기장이고 저 폴더는 투자 메모다", "함부로 파일 지우지 마라"… 매 대화가 백지에서 시작하니까. 하네스(harness)는 이 반복을 없애는 장치다.
하네스는 원래 말에 채우는 마구(馬具)를 뜻한다. 힘 센 말이 아무 데로나 가지 않고 내가 원하는 방향으로 끌게 잡아주는 장치. AI한테 씌우는 하네스도 똑같다. 똑똑하지만 제멋대로일 수 있는 모델에게 규칙·기억·안전선을 미리 채워두는 것이다.
나는 개발자가 아니다. 하루의 대부분은 일기 정리, 투자 메모, 자료 분류 같은 가벼운 일이다. 이런 일에까지 거창한 개발 방법론(조사→계획→테스트→검수)을 매번 돌리면, 느리고 답답하고 토큰(=AI 사용 비용)만 샌다.
그래서 두 단으로 나눴다. 평소(전역)는 최소한의 규칙만 깔고 가볍게 간다.
그러다 진짜 코딩 프로젝트를 시작하면, 그 폴더에서만 무거운 개발 규율을 켠다.
한 번의 명령(/project-harness)이면 그 프로젝트에만 풀세팅이 적용되고, 다른 곳은 영향이 없다.
집에서 슬리퍼 신고 다니다가, 등산 갈 때만 등산화를 신는 것과 같다. 매일 등산화를 신고 다닐 필요는 없으니까. 도구의 무게를 상황에 맞춘다 — 이게 전부다.
비결은 "목차만 펼쳐두기"다. 내 모든 작업 기억(메모리)을 매번 통째로 AI한테 읽히면 비싸다. 그래서 세션이 켜질 때 목차 한 장만 보여준다. AI는 "아, 이런 기억들이 있구나" 알아두고, 정말 필요한 항목만 그때 펼쳐본다. 백과사전을 통째로 외우는 게 아니라, 색인을 보고 필요한 페이지만 찾는 방식.
코딩 프로젝트를 켜면, AI가 작업하면서 등장하는 개념을 쉬운 비유로 그때그때 설명하도록 규칙이 박힌다. 모르는 채로 결과물만 받는 게 아니라, 왜 그렇게 하는지 배우면서 만든다. "그냥 해"라고 하면 설명을 줄인다. 도구가 곧 과외 선생인 셈이다.
AI가 실수로(혹은 내가 무심코 시켜서) rm -rf 같은 파일 몰살 명령이나
강제 푸시, 디스크 포맷 같은 위험한 짓을 하려 하면 실행 전에 자동으로 막힌다.
비밀번호·열쇠 파일을 AI한테 읽히려는 것도 차단된다. 초보가 가장 무서워하는
"한 번의 실수로 다 날리는 일"에 그물을 쳐둔 것이다.
일기장 폴더에서 대화하든 투자 폴더에서 대화하든, AI는 내가 누구고 어떤 프로젝트들을 굴리는지 안다. 대화는 매번 새로 시작해도, 기억은 이어진다. 비서가 매일 출근하지만 어제 일을 기억하는 것과 같다.
똑똑한 도구일수록, 잘 길들이는 장치가 중요하다. 가볍게 시작해서 필요할 때만 무겁게, 기억은 색인으로 아끼고, 위험은 미리 막고, 배우면서 만든다 — 비개발자 1인이 AI를 안전하고 싸게 부리는 방법.
파일·설정·훅·스킬 전체 구성 (재현 가능한 수준으로 기록)
~)은 리포가 아니라 개인 작업공간. 진입 시 각 디렉토리의 자체 CLAUDE.md를 우선. LifeVault / InvestVault / ProjectsVault / AIVault / .cokacdir / .hermes / gas-projects / 뉴스레터 각각의 역할을 표로 명시ssh server1, hermes gateway) · server2(arm-free-02, 배포·백엔드). "서버"라고만 하면 기본 server1// 토큰 절약 — 적응형 사고·1M 컨텍스트 의도적으로 끔
"env": {
"CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING": "1",
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1"
},
"permissions": { "defaultMode": "auto", "allow": [ sqlcipher, kakao_query.py ] },
"effortLevel": "high",
"theme": "light",
"skipDangerousModePermissionPrompt": true,
"skipAutoPermissionPrompt": true,
"enabledPlugins": {
"insane-search@gptaku-plugins": true,
"claude-hud@jarrodwatts-claude-hud": true, // 상태줄(statusLine)
"superpowers@superpowers-marketplace": false // 전역 휴면 ← 핵심
}
| 항목 | 값 / 의미 |
|---|---|
| Adaptive Thinking | OFF — 매 응답 자동 심층사고 비활성(토큰) |
| 1M Context | OFF — 초대용량 컨텍스트 비활성(토큰) |
| defaultMode | auto + 위험모드·자동권한 프롬프트 스킵 → 마찰 최소 |
| effortLevel | high |
| statusLine | claude-hud 플러그인의 dist/index.js를 터미널 폭에 맞춰 실행 |
| superpowers | 전역 false — 코딩 프로젝트에서만 true로 켠다(아래 5번) |
※ settings.local.json에는 머신 로컬 권한만 분리: WebSearch, WebFetch(domain:github.com)
모두 ~/.claude/hooks/ 아래 bash 스크립트. exit 0 = 허용, exit 2 = 차단(사유를 모델에 전달). 매 응답마다 도는 Stop 훅은 토큰·잡음 과다라 의도적으로 두지 않음.
rm -rf 가 루트·홈·시스템 경로(/, ~, $HOME, /Users/x, /System 등)를 향할 때:(){ :|:& };:mkfs, dd if=/of=/dev/disk|sd|nvme — 디스크 포맷·블록장치 쓰기git push --force / -f (특히 main·master) · git reset --hard · git clean -fdxchmod/chown -Rcurl|wget … | sh/bash/sudo — 파이프-투-셸sudo rm/dd/mkfs차단 시 "의도한 거면 터미널에서 직접 실행하라"는 메시지를 모델에 반환.
.env 계열 · credentials(.json) · .npmrc/.pypirc/.netrc/.pgpass · .git-credentialsid_rsa/id_ed25519 등) · .pem/.key/.p12/.pfx/.jks/.keystore.aws/credentials, GCP ADC, Azure, .claude/.credentials.json, gh hosts.yml*.example/.sample/.template/.dist (템플릿은 통과)
~/.claude/projects/-Users-hc/memory/MEMORY.md 본문을 읽어,
"필요한 항목이 있으면 해당 파일을 Read하라(본문은 토큰 절약을 위해 주입 안 함)"는 안내와 함께
hookSpecificOutput.additionalContext로 세션 시작 시 주입한다.
user(사용자) · feedback(작업방식 피드백) · project(진행 중 작업) · reference(외부 자료 포인터)feedback_lessons.md로 수렴)이 세팅의 진짜 무게추. 전역은 가볍게 두고, 정식 코딩 프로젝트에서만 무거운 개발 규율을 켜는 opt-in 장치다.
.claude/agents/ 팀 뼈대 생성을 제안(강제 아님)revfactory/harness는 "에이전트팀 생성 공장"이라 내가 원한 조사→계획→실행→검수 루프와 결이 달라 주축에서 뺐다. Chachamaru127 harness는 plan mode·기존 훅·superpowers와 기능이 겹쳐 미설치. 그래서 "전역 휴면 + 프로젝트 opt-in"으로 superpowers 하나만 무게추로 삼았다. 무거운 도구를 매 세션 강제 주입하는 통합형은 볼트·자동화 작업엔 토큰·마찰 부담이기 때문.
호출할 때만 동작하는 명령들. 무거운 방법론을 평소엔 깨우지 않는 핵심 장치.
| 스킬 | 역할 |
|---|---|
| /project-harness | 코딩 프로젝트에 무거운 하네스 켜기 (위 5번) |
| /new-project | 아이디어 한 줄 → 홈에 폴더·git init·README·.gitignore·CLAUDE.md·첫 커밋까지 자동. 코딩이면 project-harness로 인계 |
| /learn | 비개발자 학습 도우미 — ①한 줄 비유 정의 ②왜 필요/왜 이렇게 ③이 프로젝트에서의 역할 ④한 줄 요약 |
| /incident | 장애·사고 수동 기록 |
| 개인 워크플로우: janghase-dashboard · server2-pages · threadfolio-post · ytreport · notebooklm · sermon-notes · gstack · agent-korea-watch | |