TRENDSHIFT #16 · 2026.05.27 · TW93

Waza(技) — 코드를 짜는 게 아니라,
"엔지니어의 습관"을 Claude에게 가르치는 8개의 스킬

648 스타 · 한 명의 개발자(@tw93)가 자기 작업 습관을 정제해 만든 Claude Code 스킬 모음집. 일본어 技(わざ, waza)는 무도(武道)에서 "반복 끝에 본능이 된 한 동작"을 뜻한다. 이 레포는 생각하기 · 검토하기 · 디버깅하기 · 디자인하기 · 읽기 · 쓰기 · 학습하기 · 헬스체크라는 엔지니어의 8가지 기본 동작을 각각 슬래시 커맨드로 박제했다. 프레임워크 없음, 텔레메트리 없음, 그냥 Markdown 한 장씩.

648 ★
GitHub stars · 30 forks · TrendShift #16
8 skills
think · check · hunt · design · read · write · learn · health
65% Python
npx skills add — Markdown + Python 헬퍼 스크립트
v3.26 / MIT
27+ 릴리스 누적(2026-05-27 기준), Claude Code 플러그인 표준

0먼저, "Waza"가 뭔지 한 줄로

제목의 한자(技)부터 풀고 들어가야 이 레포의 정체성이 보인다.

Waza(技)는 일본어로 "기술 · 기예 · 동작"을 의미한다. 검도·유도·스모 같은 무도에서 흔히 쓰는데, 단순한 기술(skill)과는 결이 다르다 — 반복 훈련을 통해 의식하지 않고도 나오는 한 동작을 가리킨다. 검도에서 "면 치기"는 1년 정도면 동작은 외우지만, "본능적으로 면을 치는 사람"이 되려면 10년이 걸린다. 그 후자가 waza다.

이 레포는 그 발상을 그대로 옮겼다. 좋은 엔지니어는 단순히 코드를 잘 짜는 사람이 아니라, "새 기능을 짤 때는 먼저 설계를 따져본다", "PR을 올리기 전에 diff를 다시 본다", "버그를 만나면 일단 root cause부터 확인한다" 같은 몸에 밴 작업 습관을 가진 사람이다. tw93은 이 습관 8가지를 Claude Code의 스킬(Skill)로 박제해 슬래시 커맨드 하나로 호출할 수 있게 만들었다.

한 줄로 비유

"내가 일하는 방식"을 Markdown 파일로 박제해서 Claude에게 매번 같은 식으로 일하게 시키는 도구

당신이 시니어 엔지니어라면, 후배에게 "PR 올리기 전에 이거 이거 체크해라", "버그 잡을 때는 일단 진짜 원인부터 찾아라" 라고 알려주고 싶을 것이다. Waza는 그 가르침을 8개의 슬래시 커맨드로 만들어 둔 셈이다. /check, /hunt, /think처럼.

그리고 후배는 사람이 아니라 Claude Code다.

용어
Claude Code 스킬(Skill)
Anthropic이 2026년 정식 도입한 "슬래시 커맨드로 호출 가능한 미니 플레이북". skills/foo/SKILL.md 한 장에 frontmatter(이름·설명·트리거)와 본문(Claude가 따라야 할 절차)을 적어두면, 사용자가 /foo를 치거나 트리거 문구를 말할 때 Claude가 그 파일을 읽고 그대로 수행한다. MCP 서버나 별도 바이너리가 아니라 단순한 Markdown이라 누구나 만들 수 있고, GitHub에 올려 공유할 수 있다.

1왜 지금 떠올랐나 — 트렌딩 이유 3가지

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"라는 문장이 그 가치 제안을 한 줄로 압축한다.

② 의존성 0, 텔레메트리 0 — "그냥 Markdown"

대부분 스킬 컬렉션은 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/ 폴더에 텍스트 파일이 풀려있을 뿐이라 마음에 안 들면 그냥 폴더 삭제. 이 "마찰 없음"이 트렌딩의 큰 동력이었다.

③ RESOLVER.md — 스킬끼리 충돌하지 않게 만드는 라우팅 테이블

이게 다른 스킬 컬렉션과 결정적으로 다른 부분이다. 보통 스킬을 8개 깔면 트리거가 겹쳐서 Claude가 헷갈린다(예: "코드 봐줘"가 /check인지 /hunt인지). Waza는 skills/RESOLVER.md라는 스킬 라우팅 테이블을 별도로 두고, "어떤 키워드가 오면 어떤 스킬로 가는지", "두 스킬이 모두 매칭되면 어떤 규칙으로 우선순위를 정하는지"를 명시한다.

실제 라우팅 규칙 예시
"판단 vs 디버깅" 충돌 해소

"판단 한 번 해봐" + 에러/예외/안 됨 → /hunt(원인 진단). "판단 한 번 해봐" + 가치 있나/유지할까/할 만하나 → /think Evaluation Mode(가치 판단). 같은 단어라도 문맥으로 라우팅이 갈린다.

28개 스킬 카탈로그 — 각자 무슨 일을 하나

슬래시 커맨드 한 줄에 들어있는 "에이전트 플레이북" 8장. 이게 Waza의 본체다.

각 스킬은 skills/{name}/SKILL.md에 들어 있다. SKILL.md는 frontmatter(라우팅 정보) + 본문(Claude가 따를 절차)로 구성된 Markdown 파일이다. 가장 무거운 /check는 38KB, /health는 22KB로 두 번째이며, 가장 가벼운 것도 수 KB라 사람이 직접 읽고 학습할 수 있다.

워크플로 단계로 묶으면 4그룹

┌─────────────────────────────────────────────────────────────┐ │ PRE-BUILD (코드 짜기 전) │ │ /think : 아이디어 → 검증된 플랜으로 │ │ /design : UI/프론트엔드 비주얼 결정 │ ├─────────────────────────────────────────────────────────────┤ │ POST-BUILD (PR/머지/릴리스 직전) │ │ /check : diff 리뷰 + 안전한 것은 자동 수정 + 검증 │ ├─────────────────────────────────────────────────────────────┤ │ DIAGNOSTIC (뭔가 안 될 때) │ │ /hunt : 버그 root cause부터 확인하고 fix │ │ /health : Claude/Codex 설정·hook·MCP·AI 부패 진단 │ ├─────────────────────────────────────────────────────────────┤ │ CONTENT (정보가 드나들 때) │ │ /read : URL/PDF → 깔끔한 Markdown │ │ /write : 글쓰기 - AI 냄새 빼고 자연스럽게 │ │ /learn : 낯선 도메인 6단계 리서치 → 출판용 글 │ └─────────────────────────────────────────────────────────────┘

스킬별 한 줄 요약 + 트리거

스킬언제 쓰나뭘 하나
/think새 기능 짜기 전아이디어를 압박 테스트하고, 코드 한 줄 짜기 전에 아키텍처 검증
/check작업 후, 머지 전diff 리뷰, 안전한 이슈 자동 수정, 판단 필요한 것은 배치 처리
/hunt버그 / 예상 외 동작체계적 디버깅. fix 적용 전에 root cause 확정 필수
/design프론트엔드 UI 빌드"AI가 만든 듯한 무난한 디자인" 회피, 색깔 있는 UI
/readURL/PDF 입력프록시 캐스케이드로 컨텐츠 fetch → 깔끔한 Markdown 반환
/write글쓰기/편집한국어/영어 자연스러운 문체, AI 패턴 제거
/learn낯선 도메인 학습6단계(수집 → 소화 → 개요 → 초안 → 다듬기 → 출판) 리서치
/health설정이 이상할 때CLAUDE.md/rules/skills/hooks/MCP/behavior 6계층 감사
용어
root cause(근본 원인)
버그가 발생한 표면 증상이 아니라, 그 증상을 만들어낸 진짜 원인. 예: "로그인 버튼이 안 눌림" → 표면. "버튼 클릭 핸들러가 컴포넌트가 unmount된 후에 stale closure를 잡고 있음" → root cause. /hunt는 fix 코드를 쓰기 전에 반드시 이 root cause를 글로 정리하게 한다 — 안 그러면 "증상만 막아두고 며칠 뒤 같은 버그가 다른 모양으로 다시 나타나는" 사고가 반복되기 때문이다.

가장 무거운 스킬 — /think 들여다보기

이 스킬 하나가 Waza의 철학을 가장 잘 보여준다. 본문에서 명시적으로 금지하는 것들:

/think이 절대 하지 말라고 못 박은 것

그리고 적극적으로 시키는 것: "가장 깨지기 쉬운 전제(premise collapse)"를 명시하기. "이 플랜은 X를 가정한다. X가 깨지면 Y가 일어난다." 라는 문장을 한 줄 적게 만든다. 시니어 엔지니어가 후배의 PR 설명을 읽을 때 가장 먼저 찾는 그 문장이다.

왜 이렇게까지 깐깐한가

일반 Claude Code는 "뭐든 일단 짜본다" 모드가 기본이다. 그게 PoC에는 좋지만, 방향 자체가 틀린 코드를 며칠 만들어두고 나서야 깨달으면 손해가 크다. /think은 의도적으로 "코드 한 줄 짜지 마라, 일단 설계부터 굳혀라"고 못 박는다. 시니어가 주니어에게 "일단 종이에 그려와" 라고 하는 그 행동이다.

3기술 스택 전체 지도

"백엔드 · 프론트엔드 · 인프라"라는 보통 구분이 안 통한다. 이 레포는 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.json9개 플러그인(전체 + 개별 8개) 등록 메타데이터
스킬 포맷YAML frontmatter + Markdownname/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/Wazanpm 기반 글로벌 설치 (Skills 표준 도구)

실제 코드 = 0 (사람 손으로 짠 Python/JS/Rust 없음)

GitHub Language Stats: Python ████████████████ 65% Shell █████████ 35% (Python 275KB: scripts/verify_skills.py 등 헬퍼 · Shell 148KB: 빌드/검증)

이 레포의 본질은 "코드 라이브러리"가 아니라 "플레이북 라이브러리"다. 각 SKILL.md는 사람이 읽고 LLM이 읽는 동시 매뉴얼이고, 실행 주체는 항상 Claude(또는 Codex/Cursor/Gemini CLI 등 호환 도구)다.

용어
fat skill vs deterministic script
tw93가 RESOLVER.md에서 명시한 구분. fat skill은 "Markdown 본문에 LLM이 상황 봐서 판단할 여지를 남긴" 스킬(Waza 8개 전부). deterministic script는 "입력 → 같은 출력"이 보장된 쉘 스크립트. lint 같이 단조로운 검증은 스크립트로, "어떻게 미지의 도메인을 연구할지" 같은 판단은 스킬로 — 이게 Waza의 핵심 설계 원칙이다.

4아키텍처 심화 분석

"Markdown 8장 + json 1개"의 단순함 뒤에 숨은 3가지 설계 패턴.

전체 흐름도

┌─────────────────────────────────────────────┐ │ 사용자가 터미널에서 │ │ "/check" 또는 "이 코드 봐줘"를 입력 │ └────────────────────┬────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ Claude Code CLI │ │ - .claude/plugins/waza 디렉토리 스캔 │ │ - marketplace.json에서 매칭되는 plugin 찾기│ └────────────────────┬────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ 각 SKILL.md의 frontmatter 검사 │ │ name / description / when_to_use │ │ dispatch_intent │ │ → 가장 잘 매칭되는 스킬 선택 │ └────────────────────┬────────────────────────┘ │ ┌─────────────────┴──────────────────┐ │ 두 스킬 모두 매칭? RESOLVER.md 참조 │ │ → 우선순위 규칙 10개 적용 │ └─────────────────┬──────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ 선택된 SKILL.md 본문을 system prompt에 │ │ 주입 → LLM이 그 절차대로 행동 │ │ (예: /check이면 git diff 보고 → 리뷰 → │ │ 안전한 fix는 적용 → 위험한 건 사용자에게) │ └─────────────────────────────────────────────┘

핵심 설계 패턴 1: Outcome Contract

각 SKILL.md 상단에 "이 스킬이 끝났을 때 어떤 상태여야 하는지"를 명시하는 섹션. /think의 경우:

/think의 OUTCOME CONTRACT

Outcome: 거친 아이디어가 decision-complete 추천 또는 실행 가능한 플랜이 된다.

Done when: 목표, 성공 기준, 제약, 선택한 접근, 거부한 트레이드오프, 테스트, 핸드오프 단계가 재논의 없이 실행 가능한 수준으로 구체적일 때.

Evidence: 현재 레포 상태, 프로젝트 문서, 라이브 외부 문서, 이전 결정, 제약, 사용자 명시 선호.

Output: 추천 방향 1개 또는 핸드오프 플랜(가정 + 검증 단계 포함).

LLM은 본질적으로 "끝낼 때를 모르는" 도구다. 이 Outcome Contract가 "이 4가지가 채워지면 끝"이라는 명시적 종료 조건을 제공한다. 시니어가 후배에게 "PR 설명서엔 이 4가지가 들어가야 해" 라고 말하는 그 체크리스트의 LLM 버전.

핵심 설계 패턴 2: Mode Activation

한 스킬에 여러 "모드"를 두고, 사용자 입력 패턴으로 자동 전환한다. 예: /think은 3개 모드.

모드활성 조건출력 형태
Full새 기능/아키텍처 설계전체 플랜(스코프/접근/리스크/롤백)
Lightweight"고치는 거"에 가까울 때fix 1개 + 파일:라인 + 리스크 1줄
Evaluation"이거 할 만한가?" 류 가치 판단Kill/Keep/Pivot 한 단어 + 근거 3개

같은 슬래시 커맨드 하나로 사용자 의도가 다를 때 자동 분기. 사용자는 어떤 모드인지 명시할 필요가 없다.

핵심 설계 패턴 3: Chaining 명시 (자동 연쇄 금지)

의도적으로 막은 것
스킬끼리 자동으로 이어지지 않음

/think이 플랜을 내놨다고 자동으로 코드를 짜지 않는다. /hunt이 root cause를 찾았다고 자동으로 fix를 적용하지 않는다. 사용자가 명시적으로 "implement", "fix it", "/check" 같은 신호를 줘야 다음 단계로 넘어간다.

이건 LLM 에이전트 설계에서 의외로 어려운 결정이다. 자동 연쇄는 편하지만 "내가 의도하지 않은 거대한 변경"이 일어날 위험이 크다. Waza는 의도적으로 "인간이 게이트(gate)"가 되게 설계했다. 시니어가 후배에게 "내가 OK 할 때까지 다음 단계 가지 마"라고 말하는 것과 같다.

비유

마트 직원이 "이 채소 어떻게 손질할까요?" 물으면 시니어는 "일단 자르지 말고 가져와봐"라고 한다. 칼을 든 채로 "그래도 일단 잘게 다져두면 효율적이지 않을까요?" 라고 자동으로 행동하면 망친다. Waza는 LLM이 채소를 손에 든 후배라는 전제로 설계됐다.

5디렉토리 구조 해부

73개 커밋, 9개 릴리스를 거친 후의 현재 구조. 군더더기 없이 깔끔하다.

Waza/ ├── .claude-plugin/ │ └── marketplace.json # 9개 플러그인 메타데이터 (전체 1 + 개별 8) ├── skills/ │ ├── RESOLVER.md # 스킬 라우팅 테이블 + 충돌 해소 규칙 │ ├── think/SKILL.md # 약 16KB - 가장 정교한 플래닝 플레이북 │ ├── check/SKILL.md # diff 리뷰 + 자동 fix + Triage/Audit/Ship 모드 │ ├── hunt/SKILL.md # root cause first 디버깅 │ ├── design/SKILL.md # AI-aesthetic 회피 UI 디자인 │ ├── read/SKILL.md # URL/PDF → Markdown (프록시 캐스케이드) │ ├── write/SKILL.md # 한·영 자연 문체, AI 패턴 제거 │ ├── learn/SKILL.md # 6-phase 리서치 워크플로 │ └── health/ │ ├── SKILL.md # 22KB - 6계층 감사 (가장 무거운 스킬은 check/SKILL.md 38KB) │ ├── agents/ # 헬스체크용 보조 에이전트 프롬프트 │ └── scripts/ # verify 스크립트 모음 ├── CLAUDE.md # → AGENTS.md 한 줄 redirect ├── README.md # 한 페이지짜리 사용 안내 ├── install.sh # bash 한 줄 설치 └── .gitignore

주목할 파일 3개

.claude-plugin/marketplace.json

Claude 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 작성.

6기술별 학습 포인트

이 레포에서 직접 배울 수 있는 것 4가지. 각자 다른 분야에 응용 가능.

① "Skill"이라는 새 추상화 자체 (LLM 사용자 모두에게)

Claude/Codex/Cursor 사용자라면, Waza 8개를 그대로 깔지 않더라도 "내 작업 패턴을 SKILL.md로 박제한다"는 발상이 가장 큰 학습 포인트다. 매번 같은 프롬프트를 복붙하지 말고, ~/.claude/skills/my-pr-check/SKILL.md에 한 번 적어두면 어디서든 슬래시 한 번으로 호출 가능하다.

실습 아이디어
내 회사 코드 컨벤션을 /check-my-style 스킬로

tw93의 /check를 fork해서 회사 코드 컨벤션(예: "TypeScript any 금지", "console.log 남아있으면 경고")을 본문에 박아 넣으면, 코드 리뷰할 때마다 같은 기준이 적용된다. 30분 작업으로 매번 같은 결과.

② Markdown 본문에 "행동 규칙"을 적는 글쓰기 기술

SKILL.md를 직접 읽어보면, LLM이 따를 절차를 적는 게 일반적인 기술 문서 작성과는 다른 글쓰기 기술임을 알 수 있다. "Gotchas" 표(과거에 망한 사례 → 규칙), "Self-check before handoff"(체크리스트), "Mode Activation"(분기 조건) 같은 패턴은 사람용 위키에는 없는 LLM 전용 패턴이다.

③ Plugin marketplace.json 구조

Claude Code 플러그인 만들고 싶다면 Waza의 marketplace.json이 가장 좋은 레퍼런스다. 한 레포에 여러 플러그인을 어떻게 등록하는지, 트리거 문구를 어떻게 다국어로 적는지, source 경로를 어떻게 분리하는지 모두 들어있다.

④ "RSI(Recursive Self-Improvement) 패턴" 의 입문

/health는 Claude Code 자체의 설정·hook·MCP를 감사한다. 즉 "에이전트가 에이전트를 진단"하는 패턴. 같은 발상으로 Karpathy의 autoresearch, Anthropic의 skill-creator 등이 나오고 있는데, Waza의 /health가 가장 입문하기 쉬운 예시다 — 21KB 분량을 사람이 직접 읽고 이해할 수 있다.

용어
RSI(Recursive Self-Improvement)
에이전트가 자기 자신의 도구/설정/프롬프트를 진단하고 개선하는 패턴. "메타 에이전트"라고도 부른다. Waza의 /health는 그 입문판 — Claude가 자기 CLAUDE.md, rules, hooks, MCP를 읽고 "이 부분이 토큰을 낭비한다", "이 트리거는 다른 스킬과 충돌한다" 같은 진단을 내린다. 진짜 RSI는 진단 후 자동 수정까지 가는데, Waza는 의도적으로 거기까지는 안 간다(사람 게이트 유지).

7하드웨어/시스템 요구사항

사실상 없음. 다만 Claude Code 자체가 돌아야 한다.

요구내용
OSmacOS / 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에 넣거나 각 도구의 스킬 표준을 따라야 한다.

8 · 실습 과제

직접 해볼 수 있는 5가지 — 난이도순

  1. [★☆☆] Waza 통째로 깔고 /health 한 번 돌리기. claude plugin marketplace add tw93/Wazaclaude plugin install waza@waza → 본인이 평소 쓰는 프로젝트에 가서 /health. Claude Code 설정에 뭐가 어그러져 있는지 21KB 진단이 나온다. 30분이면 끝.
  2. [★☆☆] /think으로 자기 사이드 프로젝트 하나 압박 테스트. 평소 "이거 만들어볼까?" 하던 아이디어를 /think에 그대로 던져본다. premise collapse 한 줄, 거부한 대안, 롤백 계획까지 나오는지 확인. 머릿속에서 그냥 떠올리던 것과 차이를 본다.
  3. [★★☆] SKILL.md 하나 fork해서 내 컨벤션 박기. skills/check/SKILL.md를 복사해 ~/.claude/skills/my-check/SKILL.md로 두고, 본문에 "회사 규칙: TypeScript any 금지, console.log 잔존 시 ❌, 함수당 30줄 초과 시 분할 제안" 같은 룰을 추가. /my-check로 호출.
  4. [★★★] 새 스킬 1개 처음부터 만들기. /pr-description이라는 스킬을 만들어, git loggit diff를 보고 PR 본문(스코프/테스트/롤백/리스크) 4섹션을 자동 생성하게 한다. frontmatter에 트리거("PR 설명 써줘", "PR description") 명시, 본문에 "Outcome Contract" 섹션 포함.
  5. [★★★★] 5인 팀용 RESOLVER.md 만들기. 팀에서 만든 스킬 10~20개가 트리거 충돌을 일으키기 시작하면, Waza의 RESOLVER.md를 베껴서 "단계별 라우팅 → 충돌 해소 규칙 → chaining" 3계층 매트릭스를 작성. 신규 팀원이 와도 "어떤 스킬이 언제 호출되는지" 한 페이지로 이해할 수 있게.

9관련 기술 심화 학습 로드맵

"Waza만 깔고 끝"이 아니라, 그 너머의 LLM 도구 체인까지 4주에 걸쳐.

1주차 — Claude Code 자체

먼저 런타임을 이해해야 Waza가 왜 이렇게 생겼는지 보인다. Anthropic 공식 docs의 Claude Code → Skills, Claude Code → Plugins, Claude Code → Hooks 3장을 읽는다. CLAUDE.md/AGENTS.md, .claude/rules, .claude/hooks의 차이를 명확히 잡는다.

2주차 — Skill 생태계 탐방

Waza 외에 비교할 만한 스킬 컬렉션 3개를 같이 본다: anthropics/skills(공식 레퍼런스), obra/superpowers(또 다른 1인 컬렉션), mukul975/Anthropic-Cybersecurity-Skills(754개의 도메인 특화). "공식 vs 개인 vs 도메인" 3가지 다른 접근의 장단점을 직접 비교.

3주차 — MCP & Hooks로 확장

Waza의 한계는 "텍스트만 다룬다"는 점이다. 진짜 도구 호출(파일 시스템 조작, DB 접근, 외부 API)이 필요하면 MCP(Model Context Protocol) 서버를 직접 만들어야 한다. mcp-builder 스킬로 간단한 MCP 서버를 짜본다. 그리고 그 MCP를 호출하는 SKILL.md를 작성한다 = "skill + tool" 조합.

4주차 — Recursive Self-Improvement

이제 메타 단계로. karpathy/autoresearch를 읽고, "Frozen Metric → 변경 → 측정 → keep/revert" 루프를 본인 프로젝트에 한 번 돌려본다. Waza의 /health가 그 입문판이었음을 새삼 확인할 수 있다. Anthropic의 skill-creator로 스킬을 평가·개선하는 evals 워크플로도 같이 시도.

참고 — tw93의 다른 작업

Waza의 디자인 감각이 왜 좋은지 궁금하다면 같은 저자의 tw93/Pake(Rust + Tauri로 어떤 웹사이트도 데스크탑 앱화), tw93/Maple(Markdown 에디터)을 본다. 같은 "단순함 + 디테일" 미학이 코드 레벨로 드러난다.

10핵심 키워드 사전

이 글과 README/SKILL.md를 읽다가 막힐 수 있는 용어 8개.

용어 1
Slash Command(슬래시 커맨드)
Claude Code 채팅창에서 /check처럼 슬래시로 시작하는 명령. 사용자가 입력하면 등록된 스킬 중 매칭되는 것을 즉시 실행한다. /를 누르면 자동완성으로 깔린 스킬 목록이 뜬다.
용어 2
Frontmatter(프론트매터)
Markdown 파일 맨 위에 ---로 감싸는 YAML 블록. SKILL.md에서는 name, description, when_to_use, dispatch_intent를 적는다. Claude Code는 이걸 보고 어느 스킬이 호출돼야 하는지 판단한다.
용어 3
Trigger(트리거)
스킬이 호출될 조건. description 본문에 "Use when users ask 출방안/给方案/..." 식으로 자연어로 적는다. 슬래시 커맨드는 명시적 트리거고, 자연어 매칭은 암묵적 트리거다.
용어 4
Chaining(체이닝)
한 스킬이 끝난 뒤 다른 스킬로 자연스럽게 이어지는 흐름. Waza는 자동 chaining을 막아두고, 사용자가 명시적으로 다음 단계를 호출하게 한다. 예: /think → "implement" → 구현 → /check.
용어 5
MCP(Model Context Protocol)
Anthropic이 만든 LLM ↔ 외부 도구 간 통신 표준. "스킬"이 LLM 행동 절차라면, "MCP"는 LLM이 호출할 수 있는 실제 도구(파일 시스템, DB, API). Waza는 MCP를 직접 만들지 않고, 호출할 수 있게만 SKILL.md에서 안내한다.
용어 6
Hooks(훅)
Claude Code의 라이프사이클 이벤트(예: 도구 호출 전/후, 세션 시작 시)에 자동 실행되는 스크립트. /health 스킬은 이 hooks 설정이 어그러져 있는지 진단한다.
용어 7
Premise Collapse(전제 붕괴)
tw93가 /think에서 강조한 개념. "이 플랜은 X를 가정한다. X가 깨지면 Y가 일어난다." X가 가장 깨지기 쉬운 가정이라면, 설계를 X 없이도 살아남게 변형해야 한다. 시니어 엔지니어가 가장 먼저 던지는 질문이다.
용어 8
Fat Skill vs Deterministic Script
tw93의 자체 용어. Fat skill = LLM이 본문 보고 판단하는 Markdown(=Waza의 8개). Deterministic script = 입력→출력 보장된 쉘 스크립트(=verify-skills.sh). 새 능력을 추가할 때 "판단/적응이 필요한가? → skill. 같은 입력에 같은 출력만 필요한가? → script."로 가른다.

11참고 링크

Waza를 더 깊이 파고들 수 있는 자료들.

종류링크한 줄 설명
레포github.com/tw93/Waza본체. README + 8개 SKILL.md 직접 읽기
저자 블로그tw93.fun/.../claude.html/health 스킬의 기반이 된 6계층 프레임워크 글
저자@HiTw93 (Twitter)tw93의 트위터 — Waza 업데이트와 사용 사례 공유
공식 문서Claude Code SkillsAnthropic 공식 — Skill 표준 spec
비교 1anthropics/skills공식 스킬 컬렉션 — Waza와 같이 보면 좋음
비교 2obra/superpowers또 다른 1인 스킬 컬렉션 — 다른 철학
RSI 입문karpathy/autoresearchKarpathy의 자동 실험 루프 — /health의 다음 단계
TrendShifttrendshift.io/repositories/24971실시간 트렌드 추이 확인
이 자료는 TrendShift Daily 16위(2026-05-27) 기준으로 작성됨 · tw93/Waza v1.5.4 (Mar 23, 2026), marketplace v3.26.0 · README + RESOLVER.md + skills/think/SKILL.md + skills/health/SKILL.md + .claude-plugin/marketplace.json 직접 확인 · 한국어 학습용으로 재구성