648 스타 · 한 명의 개발자(@tw93)가 자기 작업 습관을 정제해 만든 Claude Code 스킬 모음집. 일본어 技(わざ, waza)는 무도(武道)에서 "반복 끝에 본능이 된 한 동작"을 뜻한다. 이 레포는 생각하기 · 검토하기 · 디버깅하기 · 디자인하기 · 읽기 · 쓰기 · 학습하기 · 헬스체크라는 엔지니어의 8가지 기본 동작을 각각 슬래시 커맨드로 박제했다. 프레임워크 없음, 텔레메트리 없음, 그냥 Markdown 한 장씩.
제목의 한자(技)부터 풀고 들어가야 이 레포의 정체성이 보인다.
Waza(技)는 일본어로 "기술 · 기예 · 동작"을 의미한다. 검도·유도·스모 같은 무도에서 흔히 쓰는데, 단순한 기술(skill)과는 결이 다르다 — 반복 훈련을 통해 의식하지 않고도 나오는 한 동작을 가리킨다. 검도에서 "면 치기"는 1년 정도면 동작은 외우지만, "본능적으로 면을 치는 사람"이 되려면 10년이 걸린다. 그 후자가 waza다.
이 레포는 그 발상을 그대로 옮겼다. 좋은 엔지니어는 단순히 코드를 잘 짜는 사람이 아니라, "새 기능을 짤 때는 먼저 설계를 따져본다", "PR을 올리기 전에 diff를 다시 본다", "버그를 만나면 일단 root cause부터 확인한다" 같은 몸에 밴 작업 습관을 가진 사람이다. tw93은 이 습관 8가지를 Claude Code의 스킬(Skill)로 박제해 슬래시 커맨드 하나로 호출할 수 있게 만들었다.
당신이 시니어 엔지니어라면, 후배에게 "PR 올리기 전에 이거 이거 체크해라", "버그 잡을 때는 일단 진짜 원인부터 찾아라" 라고 알려주고 싶을 것이다. Waza는 그 가르침을 8개의 슬래시 커맨드로 만들어 둔 셈이다. /check, /hunt, /think처럼.
그리고 후배는 사람이 아니라 Claude Code다.
skills/foo/SKILL.md 한 장에 frontmatter(이름·설명·트리거)와 본문(Claude가 따라야 할 절차)을 적어두면, 사용자가 /foo를 치거나 트리거 문구를 말할 때 Claude가 그 파일을 읽고 그대로 수행한다. MCP 서버나 별도 바이너리가 아니라 단순한 Markdown이라 누구나 만들 수 있고, GitHub에 올려 공유할 수 있다.TrendShift Daily 16위, 신규(New 2026) 마크. "또 다른 스킬 모음"이 수십 개인데 왜 Waza가 살아남았나.
2025~2026년 사이 GitHub에는 awesome-claude-code, anthropic/skills, everything-claude-code 같은 "스킬 컬렉션"이 폭증했다. 대부분은 "이런 작업을 해주는 스킬"이라는 기능 중심 카탈로그다. Waza는 정반대다 — 기능이 아니라 "엔지니어가 평생 갈고 닦는 8가지 동작"을 정의하고, 그 8개에만 집중한다.
이 좁은 스코프가 마케팅적으로 강력하다. 사용자는 "스킬 100개 중에 뭘 쓰지?" 가 아니라 "내가 지금 코드를 짤 때 머릿속에서 도는 그 순서 그대로 8개"라는 인지 모델을 받는다. README의 "A good engineer does not just write code"라는 문장이 그 가치 제안을 한 줄로 압축한다.
대부분 스킬 컬렉션은 Python 패키지나 Node CLI를 깔게 만든다. Waza는 100% Shell + Markdown이다. install.sh 한 개와 skills/*/SKILL.md 8개 디렉토리가 전부. Claude Code 플러그인 표준(.claude-plugin/marketplace.json)을 따르기 때문에 claude plugin install 한 줄이면 끝난다.
"의존성 없음"은 Anthropic 생태계에서 진입 장벽 = 0이라는 뜻이다. 사용자가 새 LLM 도구를 깔 때 "또 node 버전 충돌나면 어쩌지" 라는 두려움이 있는데, Waza는 그게 없다. ~/.claude/plugins/ 폴더에 텍스트 파일이 풀려있을 뿐이라 마음에 안 들면 그냥 폴더 삭제. 이 "마찰 없음"이 트렌딩의 큰 동력이었다.
이게 다른 스킬 컬렉션과 결정적으로 다른 부분이다. 보통 스킬을 8개 깔면 트리거가 겹쳐서 Claude가 헷갈린다(예: "코드 봐줘"가 /check인지 /hunt인지). Waza는 skills/RESOLVER.md라는 스킬 라우팅 테이블을 별도로 두고, "어떤 키워드가 오면 어떤 스킬로 가는지", "두 스킬이 모두 매칭되면 어떤 규칙으로 우선순위를 정하는지"를 명시한다.
"판단 한 번 해봐" + 에러/예외/안 됨 → /hunt(원인 진단). "판단 한 번 해봐" + 가치 있나/유지할까/할 만하나 → /think Evaluation Mode(가치 판단). 같은 단어라도 문맥으로 라우팅이 갈린다.
슬래시 커맨드 한 줄에 들어있는 "에이전트 플레이북" 8장. 이게 Waza의 본체다.
각 스킬은 skills/{name}/SKILL.md에 들어 있다. SKILL.md는 frontmatter(라우팅 정보) + 본문(Claude가 따를 절차)로 구성된 Markdown 파일이다. 가장 무거운 /check는 38KB, /health는 22KB로 두 번째이며, 가장 가벼운 것도 수 KB라 사람이 직접 읽고 학습할 수 있다.
| 스킬 | 언제 쓰나 | 뭘 하나 |
|---|---|---|
/think | 새 기능 짜기 전 | 아이디어를 압박 테스트하고, 코드 한 줄 짜기 전에 아키텍처 검증 |
/check | 작업 후, 머지 전 | diff 리뷰, 안전한 이슈 자동 수정, 판단 필요한 것은 배치 처리 |
/hunt | 버그 / 예상 외 동작 | 체계적 디버깅. fix 적용 전에 root cause 확정 필수 |
/design | 프론트엔드 UI 빌드 | "AI가 만든 듯한 무난한 디자인" 회피, 색깔 있는 UI |
/read | URL/PDF 입력 | 프록시 캐스케이드로 컨텐츠 fetch → 깔끔한 Markdown 반환 |
/write | 글쓰기/편집 | 한국어/영어 자연스러운 문체, AI 패턴 제거 |
/learn | 낯선 도메인 학습 | 6단계(수집 → 소화 → 개요 → 초안 → 다듬기 → 출판) 리서치 |
/health | 설정이 이상할 때 | CLAUDE.md/rules/skills/hooks/MCP/behavior 6계층 감사 |
/hunt는 fix 코드를 쓰기 전에 반드시 이 root cause를 글로 정리하게 한다 — 안 그러면 "증상만 막아두고 며칠 뒤 같은 버그가 다른 모양으로 다시 나타나는" 사고가 반복되기 때문이다./think 들여다보기이 스킬 하나가 Waza의 철학을 가장 잘 보여준다. 본문에서 명시적으로 금지하는 것들:
그리고 적극적으로 시키는 것: "가장 깨지기 쉬운 전제(premise collapse)"를 명시하기. "이 플랜은 X를 가정한다. X가 깨지면 Y가 일어난다." 라는 문장을 한 줄 적게 만든다. 시니어 엔지니어가 후배의 PR 설명을 읽을 때 가장 먼저 찾는 그 문장이다.
일반 Claude Code는 "뭐든 일단 짜본다" 모드가 기본이다. 그게 PoC에는 좋지만, 방향 자체가 틀린 코드를 며칠 만들어두고 나서야 깨달으면 손해가 크다. /think은 의도적으로 "코드 한 줄 짜지 마라, 일단 설계부터 굳혀라"고 못 박는다. 시니어가 주니어에게 "일단 종이에 그려와" 라고 하는 그 행동이다.
"백엔드 · 프론트엔드 · 인프라"라는 보통 구분이 안 통한다. 이 레포는 LLM 에이전트가 런타임이다.
Waza의 진짜 런타임은 Claude Code CLI다. Anthropic이 만든 터미널용 코딩 에이전트로, Skills/Plugins/MCP를 직접 로드해 실행한다. Waza의 모든 SKILL.md는 결국 Claude의 system prompt에 잘려 들어가 LLM 추론으로 변환된다.
| 레이어 | 기술 | 역할 |
|---|---|---|
| 실행 환경 | Claude Code CLI (v2.1+) | 슬래시 커맨드 라우팅, SKILL.md 로딩, LLM 호출 |
| 플러그인 표준 | .claude-plugin/marketplace.json | 9개 플러그인(전체 + 개별 8개) 등록 메타데이터 |
| 스킬 포맷 | YAML frontmatter + Markdown | name/description/dispatch_intent + 본문 절차 |
| 설치 스크립트 | npx skills add tw93/Waza (Node.js CLI) | npm/npx 기반 전역 설치; Codex는 codex plugin marketplace add tw93/Waza |
| 검증 | scripts/verify_skills.py (Python) | 프론트매터·링크·마켓플레이스·resolver 다중 검사 (3,962바이트) |
| 대체 배포 | npx skills add tw93/Waza | npm 기반 글로벌 설치 (Skills 표준 도구) |
이 레포의 본질은 "코드 라이브러리"가 아니라 "플레이북 라이브러리"다. 각 SKILL.md는 사람이 읽고 LLM이 읽는 동시 매뉴얼이고, 실행 주체는 항상 Claude(또는 Codex/Cursor/Gemini CLI 등 호환 도구)다.
"Markdown 8장 + json 1개"의 단순함 뒤에 숨은 3가지 설계 패턴.
각 SKILL.md 상단에 "이 스킬이 끝났을 때 어떤 상태여야 하는지"를 명시하는 섹션. /think의 경우:
Outcome: 거친 아이디어가 decision-complete 추천 또는 실행 가능한 플랜이 된다.
Done when: 목표, 성공 기준, 제약, 선택한 접근, 거부한 트레이드오프, 테스트, 핸드오프 단계가 재논의 없이 실행 가능한 수준으로 구체적일 때.
Evidence: 현재 레포 상태, 프로젝트 문서, 라이브 외부 문서, 이전 결정, 제약, 사용자 명시 선호.
Output: 추천 방향 1개 또는 핸드오프 플랜(가정 + 검증 단계 포함).
LLM은 본질적으로 "끝낼 때를 모르는" 도구다. 이 Outcome Contract가 "이 4가지가 채워지면 끝"이라는 명시적 종료 조건을 제공한다. 시니어가 후배에게 "PR 설명서엔 이 4가지가 들어가야 해" 라고 말하는 그 체크리스트의 LLM 버전.
한 스킬에 여러 "모드"를 두고, 사용자 입력 패턴으로 자동 전환한다. 예: /think은 3개 모드.
| 모드 | 활성 조건 | 출력 형태 |
|---|---|---|
| Full | 새 기능/아키텍처 설계 | 전체 플랜(스코프/접근/리스크/롤백) |
| Lightweight | "고치는 거"에 가까울 때 | fix 1개 + 파일:라인 + 리스크 1줄 |
| Evaluation | "이거 할 만한가?" 류 가치 판단 | Kill/Keep/Pivot 한 단어 + 근거 3개 |
같은 슬래시 커맨드 하나로 사용자 의도가 다를 때 자동 분기. 사용자는 어떤 모드인지 명시할 필요가 없다.
/think이 플랜을 내놨다고 자동으로 코드를 짜지 않는다. /hunt이 root cause를 찾았다고 자동으로 fix를 적용하지 않는다. 사용자가 명시적으로 "implement", "fix it", "/check" 같은 신호를 줘야 다음 단계로 넘어간다.
이건 LLM 에이전트 설계에서 의외로 어려운 결정이다. 자동 연쇄는 편하지만 "내가 의도하지 않은 거대한 변경"이 일어날 위험이 크다. Waza는 의도적으로 "인간이 게이트(gate)"가 되게 설계했다. 시니어가 후배에게 "내가 OK 할 때까지 다음 단계 가지 마"라고 말하는 것과 같다.
마트 직원이 "이 채소 어떻게 손질할까요?" 물으면 시니어는 "일단 자르지 말고 가져와봐"라고 한다. 칼을 든 채로 "그래도 일단 잘게 다져두면 효율적이지 않을까요?" 라고 자동으로 행동하면 망친다. Waza는 LLM이 채소를 손에 든 후배라는 전제로 설계됐다.
73개 커밋, 9개 릴리스를 거친 후의 현재 구조. 군더더기 없이 깔끔하다.
.claude-plugin/marketplace.jsonClaude Code 플러그인 marketplace 표준 파일. 한 레포에 "전체 패키지(waza)" 1개 + "개별 스킬 8개"를 모두 등록해서, 사용자가 8개 다 깔든 1개만 깔든 선택할 수 있게 한다. 각 항목엔 그 스킬의 트리거 문구가 영문+중문으로 모두 적혀 있다 — 다국어 사용자를 위한 배려.
skills/RESOLVER.md위에서 본 라우팅 테이블. 8개 스킬 트리거 매트릭스 + 10가지 충돌 해소 규칙 + chaining 시나리오 7개. 이 파일이 Waza의 "관리자 매뉴얼"이다.
CLAUDE.md → 한 줄로 AGENTS.md흥미로운 패턴. Anthropic 표준은 CLAUDE.md지만, tw93은 본문을 AGENTS.md로 옮기고 CLAUDE.md는 "AGENTS.md" 한 줄만 적은 리다이렉트로 만들었다. 이유는 Codex/Cursor/Gemini CLI 등 다른 에이전트들도 AGENTS.md를 표준으로 채택하기 시작했기 때문 — agent-agnostic 작성.
이 레포에서 직접 배울 수 있는 것 4가지. 각자 다른 분야에 응용 가능.
Claude/Codex/Cursor 사용자라면, Waza 8개를 그대로 깔지 않더라도 "내 작업 패턴을 SKILL.md로 박제한다"는 발상이 가장 큰 학습 포인트다. 매번 같은 프롬프트를 복붙하지 말고, ~/.claude/skills/my-pr-check/SKILL.md에 한 번 적어두면 어디서든 슬래시 한 번으로 호출 가능하다.
tw93의 /check를 fork해서 회사 코드 컨벤션(예: "TypeScript any 금지", "console.log 남아있으면 경고")을 본문에 박아 넣으면, 코드 리뷰할 때마다 같은 기준이 적용된다. 30분 작업으로 매번 같은 결과.
SKILL.md를 직접 읽어보면, LLM이 따를 절차를 적는 게 일반적인 기술 문서 작성과는 다른 글쓰기 기술임을 알 수 있다. "Gotchas" 표(과거에 망한 사례 → 규칙), "Self-check before handoff"(체크리스트), "Mode Activation"(분기 조건) 같은 패턴은 사람용 위키에는 없는 LLM 전용 패턴이다.
Claude Code 플러그인 만들고 싶다면 Waza의 marketplace.json이 가장 좋은 레퍼런스다. 한 레포에 여러 플러그인을 어떻게 등록하는지, 트리거 문구를 어떻게 다국어로 적는지, source 경로를 어떻게 분리하는지 모두 들어있다.
/health는 Claude Code 자체의 설정·hook·MCP를 감사한다. 즉 "에이전트가 에이전트를 진단"하는 패턴. 같은 발상으로 Karpathy의 autoresearch, Anthropic의 skill-creator 등이 나오고 있는데, Waza의 /health가 가장 입문하기 쉬운 예시다 — 21KB 분량을 사람이 직접 읽고 이해할 수 있다.
/health는 그 입문판 — Claude가 자기 CLAUDE.md, rules, hooks, MCP를 읽고 "이 부분이 토큰을 낭비한다", "이 트리거는 다른 스킬과 충돌한다" 같은 진단을 내린다. 진짜 RSI는 진단 후 자동 수정까지 가는데, Waza는 의도적으로 거기까지는 안 간다(사람 게이트 유지).사실상 없음. 다만 Claude Code 자체가 돌아야 한다.
| 요구 | 내용 |
|---|---|
| OS | macOS / Linux / Windows(WSL) — Claude Code가 지원하는 곳 어디든 |
| 런타임 | Claude Code CLI v2.1.143 이상 (개별 스킬 설치 기능 필요시) |
| API 키 | Anthropic API 키 또는 Claude Pro/Max 구독 (Claude Code 자체 요구) |
| 디스크 | 약 1MB (Markdown 텍스트뿐) |
| 네트워크 | 설치 시 GitHub clone 1회, 이후엔 Claude API 호출만 |
| 옵션 | /read 사용 시 fetch 프록시 캐스케이드용 인터넷 접속 |
대안 런타임도 가능 — README는 "Claude Code, Codex, Cursor, Gemini CLI" 모두에서 동작한다고 명시한다. 단 marketplace.json은 Claude Code 전용 포맷이라, Codex 등에서는 SKILL.md를 직접 system prompt에 넣거나 각 도구의 스킬 표준을 따라야 한다.
claude plugin marketplace add tw93/Waza → claude plugin install waza@waza → 본인이 평소 쓰는 프로젝트에 가서 /health. Claude Code 설정에 뭐가 어그러져 있는지 21KB 진단이 나온다. 30분이면 끝./think에 그대로 던져본다. premise collapse 한 줄, 거부한 대안, 롤백 계획까지 나오는지 확인. 머릿속에서 그냥 떠올리던 것과 차이를 본다.skills/check/SKILL.md를 복사해 ~/.claude/skills/my-check/SKILL.md로 두고, 본문에 "회사 규칙: TypeScript any 금지, console.log 잔존 시 ❌, 함수당 30줄 초과 시 분할 제안" 같은 룰을 추가. /my-check로 호출./pr-description이라는 스킬을 만들어, git log와 git diff를 보고 PR 본문(스코프/테스트/롤백/리스크) 4섹션을 자동 생성하게 한다. frontmatter에 트리거("PR 설명 써줘", "PR description") 명시, 본문에 "Outcome Contract" 섹션 포함."Waza만 깔고 끝"이 아니라, 그 너머의 LLM 도구 체인까지 4주에 걸쳐.
먼저 런타임을 이해해야 Waza가 왜 이렇게 생겼는지 보인다. Anthropic 공식 docs의 Claude Code → Skills, Claude Code → Plugins, Claude Code → Hooks 3장을 읽는다. CLAUDE.md/AGENTS.md, .claude/rules, .claude/hooks의 차이를 명확히 잡는다.
Waza 외에 비교할 만한 스킬 컬렉션 3개를 같이 본다: anthropics/skills(공식 레퍼런스), obra/superpowers(또 다른 1인 컬렉션), mukul975/Anthropic-Cybersecurity-Skills(754개의 도메인 특화). "공식 vs 개인 vs 도메인" 3가지 다른 접근의 장단점을 직접 비교.
Waza의 한계는 "텍스트만 다룬다"는 점이다. 진짜 도구 호출(파일 시스템 조작, DB 접근, 외부 API)이 필요하면 MCP(Model Context Protocol) 서버를 직접 만들어야 한다. mcp-builder 스킬로 간단한 MCP 서버를 짜본다. 그리고 그 MCP를 호출하는 SKILL.md를 작성한다 = "skill + tool" 조합.
이제 메타 단계로. karpathy/autoresearch를 읽고, "Frozen Metric → 변경 → 측정 → keep/revert" 루프를 본인 프로젝트에 한 번 돌려본다. Waza의 /health가 그 입문판이었음을 새삼 확인할 수 있다. Anthropic의 skill-creator로 스킬을 평가·개선하는 evals 워크플로도 같이 시도.
Waza의 디자인 감각이 왜 좋은지 궁금하다면 같은 저자의 tw93/Pake(Rust + Tauri로 어떤 웹사이트도 데스크탑 앱화), tw93/Maple(Markdown 에디터)을 본다. 같은 "단순함 + 디테일" 미학이 코드 레벨로 드러난다.
이 글과 README/SKILL.md를 읽다가 막힐 수 있는 용어 8개.
/check처럼 슬래시로 시작하는 명령. 사용자가 입력하면 등록된 스킬 중 매칭되는 것을 즉시 실행한다. /를 누르면 자동완성으로 깔린 스킬 목록이 뜬다.---로 감싸는 YAML 블록. SKILL.md에서는 name, description, when_to_use, dispatch_intent를 적는다. Claude Code는 이걸 보고 어느 스킬이 호출돼야 하는지 판단한다.description 본문에 "Use when users ask 출방안/给方案/..." 식으로 자연어로 적는다. 슬래시 커맨드는 명시적 트리거고, 자연어 매칭은 암묵적 트리거다./think → "implement" → 구현 → /check./health 스킬은 이 hooks 설정이 어그러져 있는지 진단한다./think에서 강조한 개념. "이 플랜은 X를 가정한다. X가 깨지면 Y가 일어난다." X가 가장 깨지기 쉬운 가정이라면, 설계를 X 없이도 살아남게 변형해야 한다. 시니어 엔지니어가 가장 먼저 던지는 질문이다.Waza를 더 깊이 파고들 수 있는 자료들.
| 종류 | 링크 | 한 줄 설명 |
|---|---|---|
| 레포 | github.com/tw93/Waza | 본체. README + 8개 SKILL.md 직접 읽기 |
| 저자 블로그 | tw93.fun/.../claude.html | /health 스킬의 기반이 된 6계층 프레임워크 글 |
| 저자 | @HiTw93 (Twitter) | tw93의 트위터 — Waza 업데이트와 사용 사례 공유 |
| 공식 문서 | Claude Code Skills | Anthropic 공식 — Skill 표준 spec |
| 비교 1 | anthropics/skills | 공식 스킬 컬렉션 — Waza와 같이 보면 좋음 |
| 비교 2 | obra/superpowers | 또 다른 1인 스킬 컬렉션 — 다른 철학 |
| RSI 입문 | karpathy/autoresearch | Karpathy의 자동 실험 루프 — /health의 다음 단계 |
| TrendShift | trendshift.io/repositories/24971 | 실시간 트렌드 추이 확인 |