기술

클린 코드 저자 밥 아저씨가 만든 코딩 에이전트 스킬, ub-mode

『클린 코드』의 로버트 C. 마틴이 공개한 에이전트 스킬 ub-mode는 9일 만에 깃허브 스타 6,600개를 넘겼습니다. 규칙 세 묶음과 품질 검사 도구 세 개, 설치법을 원문과 함께 정리했습니다.

『클린 코드』를 쓴 로버트 C. 마틴(Uncle Bob)이 10월 25일 코딩 에이전트용 스킬 ub-mode를 공개했습니다. 11월 3일 기준 스타 6,662개, MIT 라이선스입니다. 파일은 SKILL.md 하나, 152줄입니다.

근거: unclebob/ub-mode README·SKILL.md (2026년 11월 3일 확인). README에 따르면 @poteto의 규칙(poteto-mode/pstack) 일부를 줄여 만들었습니다.

규칙 세 묶음

변경을 요청받을 때마다 이 순서를 따르라는 스킬입니다.

묶음들어 있는 것
First Make it Work가장 작은 수정, 데이터 모양 먼저, TDD, 처음부터 다시 설계하기, 빼고 나서 더하기, 경계에서 한 번만 검사
Then Make it Right원인 고치기, 작은 단위로 확인, 동작을 테스트, crapper·dryer·mutator 검사, 리팩터링
Practice작업 기록, 컨텍스트 아끼기, 워크트리 정리, 작고 순서 있는 커밋

문장이 짧습니다

원문은 한 줄짜리 명령으로 되어 있습니다. 몇 개만 옮깁니다.

원문뜻
Write the failing test before you change the code.코드를 바꾸기 전에 실패하는 테스트부터 쓴다.
Reproduce it. Fix the cause.재현하고, 원인을 고친다.
A guard that only hides the crash is not a fix.에러만 숨기는 방어 코드는 고친 게 아니다.
If the test would still pass when every function returned nothing, throw it out.모든 함수가 아무것도 안 돌려줘도 통과하는 테스트는 버린다.
One decision lives in one place.결정 하나는 한 곳에만 둔다.

AI가 자주 하는 실수, 그러니까 테스트 없이 고치기, try로 에러 덮기, 요구사항을 기존 설계에 덧대기를 정면으로 막는 문장들입니다.

도구 세 개로 잽니다

말로 끝내지 않고 숫자로 기준을 둡니다. 셋 다 같은 작가의 저장소이고 Clojure·Java·Go·TypeScript·Rust·Python을 지원합니다.

도구하는 일기준
crapper함수마다 복잡도와 커버리지로 CRAP 점수 계산10 미만
dryer구조가 닮은 코드 찾기0.8 이상이면 없앰
mutator뮤테이션 테스트로 테스트가 놓친 코드 찾기살아남은 변이를 없앰

도구 없이 스킬만 넣어도 규칙 부분은 동작합니다. 도구를 쓰는 단계는 그 도구가 설치돼 있어야 합니다.

설치

README 방법 그대로입니다. SKILL.md를 스킬 폴더의 ub-mode/SKILL.md로 복사하고 /ub-mode로 부릅니다.

mkdir -p ~/.claude/skills/ub-mode
curl -L https://raw.githubusercontent.com/unclebob/ub-mode/master/SKILL.md \
  -o ~/.claude/skills/ub-mode/SKILL.md

Cursor는 ~/.cursor/skills/ub-mode/SKILL.md에 두면 됩니다. 남의 규칙 파일이니 넣기 전에 152줄을 한 번 읽어 보길 권합니다. 이 저장소에는 실행 코드가 없고 마크다운뿐입니다.

쇼츠로 보기

이 글은 비치콤버스 쇼츠 No.19의 짝 글입니다. 짧은 주소 beachcombers.co.kr/s/19.

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.

esc

↑↓ 고르기↵ 열기? 단축키

해변에서 주운 것

읽으러 가기 →
guest@beachcombers — zsh

단축키

⌘K 또는 /
글·작업·개발일지 찾기
R
해변 산책 — 아무 글 하나 줍기
`
터미널 열기
←→
쪽 넘기기 (휠·스와이프도 됩니다)
?
이 안내
esc
닫기