Skills 이해
Skill은 특정 작업의 단계별 절차입니다.
/skill-name으로 명시적으로 호출할 때만 적용됩니다 — "on-demand".Skill 해부
Skill은 skills/<카테고리>/<id>/SKILL.md 경로에 저장됩니다. 폴더 내에 추가 파일(예: 템플릿, 설정 파일)을 함께 포함할 수 있습니다.
---
name: are-we-done
description: Answers "are we done?" before a PR exists.
Spawns an independent reviewer subagent that checks the
work against the original plan/requirements.
---
# are-we-done
The last check before a change leaves your hands...
## When to run
- Right before generate-pr-summary / opening a PR.
- After an autonomous implementation loop.
## Steps
1. Gather the intent (plan/requirements)
2. Run git diff to capture the change
3. Run tests and capture output
4. Spawn independent reviewer subagent
5. Report SHIP / FIX-FIRST verdict
| frontmatter 필드 | 의미 |
|---|---|
name | TUI와 CLAUDE.md에 표시되는 이름. 보통 파일 경로의 id와 동일 |
description | 언제 이 skill을 쓰는지 한두 문장. Claude가 skill 선택 판단에 사용 |
disable-model-invocation | true이면 Claude가 본문을 참조 자료로만 읽고 절차로 실행하지 않음. marketplace에서 rule→skill 변환 시 자동 추가됨 |
일반 Skill vs Scaffolder (-init) 패턴
📋 일반 Skill — 절차가 고정됨
예: auth/azure-ad-sso-flask
- 항상 같은 절차를 따름
- 프로젝트별 스캔 없음
- Flask + Azure AD SSO를 추가하는 정해진 단계
- 호출:
/azure-ad-sso-flask
🔧 Scaffolder — 프로젝트를 스캔해 맞춤 버전 생성
예: api-integration/sync-api-contracts-init
- 프로젝트에서 OpenAPI spec 위치를 스캔
- 사용자에게 output 경로 질문
- 프로젝트 전용
sync-api-contracts/SKILL.md생성 - 이후에는 프로젝트 전용 skill 사용
ℹ️ -init 패턴:
sync-api-contracts-init을 한 번 실행하면 .agents/skills/api-integration/sync-api-contracts/SKILL.md가 생성됩니다. 이후에는 /sync-api-contracts를 사용합니다. 처음 실행하는 설정 스킬 vs 반복 사용하는 작업 스킬의 분리입니다.Scaffolder가 필요한 이유
같은 "API 계약 동기화" 작업이라도 프로젝트마다 OpenAPI 파일 위치, 출력 경로, 사용 툴체인이 다릅니다. Scaffolder는 한 번 프로젝트를 스캔해서 "이 프로젝트에 최적화된" 스킬을 생성합니다. 이후에는 그 스킬이 이미 모든 경로를 알고 있습니다.
disable-model-invocation 이란
marketplace에서 rule → skill 변환 시 자동으로 추가되는 플래그입니다.
| 상태 | Claude의 동작 | 언제 사용 |
|---|---|---|
| 없음 (기본) | skill 본문을 절차로 실행 | 실행 가능한 how-to skill |
disable-model-invocation: true | 참조 자료로만 읽음, 절차 실행 안 함 | marketplace에서 변환된 rule 기반 skill |
✅ marketplace build 동작: Rule을 marketplace에 포함시키면 Claude Code가 읽을 수 있는 skill 형태로 변환되지만, rule은 항상 constraint이므로
disable-model-invocation: true를 추가해 절차 실행을 막습니다. Claude는 rule 내용을 참조만 합니다.Skill 카테고리 일람
monorepo
nx-best-practices
design-system
gsr-design-tokens, gsr-design-philosophy, gsr-shared-ui
git
conventional-commits, pre-stage-secret-scan, bitbucket-server
ui-domain-context
scaffold-domain-ui, scaffold-ui-isolation, validate-routing-rules, audit-design-system, update-context
api-integration
sync-api-contracts-init, scaffold-msw-handlers-init, openapi-first-flask-init, scaffold-flask-resource
auth
azure-ad-sso-nextjs, azure-ad-sso-flask
persistence
setup-local-datastore, provision-dynamodb-aws
deployment
deploy-flask-aws
debugging
root-cause
documentation
api-docs
code-review
are-we-done, pr-review, pr-review-be, security-review
qa-devops-collab
generate-unit-tests, generate-pytest-tests, scaffold-e2e-flow, check-deployment-readiness, check-flask-deploy-readiness, generate-pr-summary, address-pr-feedback, scrape-runtime-errors, audit-security-baseline, consolidate-tech-debt
edu-content
kiro-day-style
대표 Skill 4가지 분석
일반
are-we-done
code-review/are-we-done
PR 열기 전 최후 관문. PR을 연 후에는 너무 늦기 때문에, 개발자가 코드를 완성했다고 생각할 때 실행합니다.
핵심 아이디어: "작성자는 자신의 코드를 가장 잘못 판단하는 사람" — 내가 만든 코드는 내가 왜 그렇게 했는지 이미 알기 때문에 갭을 못 봅니다. 그래서 신선한 컨텍스트를 가진 서브에이전트를 별도로 생성해 독립적으로 리뷰하게 합니다.
- 요구사항 수집 (계획/티켓/원래 요청)
git diff로 변경사항 수집- 테스트 실행 출력 캡처
- 독립 리뷰어 서브에이전트 생성 (완전히 새로운 컨텍스트)
- SHIP / FIX-FIRST 판정 반환
⚡ 호출:
/are-we-done 또는 "이거 다 됐어?", "리뷰해줘", "PR 열어도 돼?"
일반
root-cause
debugging/root-cause
버그/테스트 실패/크래시를 수정하기 전에 근본 원인을 먼저 파악합니다.
핵심 원칙: 증상만 보고 코드를 수정하면 같은 버그가 다른 형태로 재발합니다. 먼저 신뢰할 수 있는 재현 경로를 만들고, 가설을 세우고, 검증한 후에 수정합니다.
- "이 버그가 왜 일어나는가"를 먼저 파악
- 재현 가능한 테스트 케이스 작성
- 원인 검증 후 수정
- 수정 후 회귀 테스트 추가
⚡ 트리거: "왜 이게 안 되지?", "이거 예전엔 됐는데", 간헐적 오류, 원인 모를 실패
scaffolder
openapi-first-flask-init
api-integration/openapi-first-flask-init
contract-first Flask/Connexion 서비스를 위한 one-time 설정. Scaffolder 패턴의 대표 예시.
실행 흐름:
- 프로젝트에서 OpenAPI spec 위치 스캔
- 출력 경로, 툴체인 선택 사용자에게 질문
- 프로젝트 전용
generate-flask-from-openapi/SKILL.md생성 - 이후에는
/generate-flask-from-openapi로 반복 사용
⚡ 한 번만 실행 (프로젝트 설정), 이후엔 생성된 project-specific skill 사용
일반
kiro-day-style
edu-content/kiro-day-style
교육 콘텐츠를 Kiro Day for GSR 사이트 스타일로 작성합니다. 이 문서 자체가 이 스킬을 사용해 작성됐습니다.
- 페이지 구조 (hero, TOC, 섹션 순서)
- 콜아웃 패턴 (ℹ️/✅/⚠️)
- 생활 비유 글쓰기 ("마치 도서관처럼…")
- 테이블 유형 선택 기준
- 이모지 규칙 (의미 있을 때만)
⚡ 교육 문서 작성 시 자동 로드. 전체 스타일 레퍼런스는
design.mdSkills vs Rules — 언제 뭘 쓰는가
| 상황 | 선택 | 이유 |
|---|---|---|
| "항상 TypeScript any를 쓰지 마" | Rule | 모든 파일에 항상 적용되는 제약 |
| "PR 열기 전에 독립 리뷰를 돌려" | Skill | 특정 시점에 명시적으로 호출하는 절차 |
| "커밋 메시지는 Conventional Commits로" | Rule (+ skill로 참조) | 항상 적용, 세부 형식은 skill에서 조회 |
| "Nx 모노레포 폴더 구조 어떻게 해?" | Skill | 가이드 참조. 매번 강제하면 비효율 |
| "Azure AD SSO 추가해줘" | Skill | 특정 작업의 단계별 절차 |
| "에러 났을 때 3번까지 자율 수정해" | Rule | 자동 동작 정책 — 항상 적용 |