방법 2: Skill 정의하기
셀프스터디 모드 (약 20분)
한 번 정의하면 이 프로젝트 어디서나 /oss-policy-check으로 즉시 호출할 수 있습니다. 모든 프로젝트에서 쓰려면 같은 내용을 ~/.claude/skills/에 두면 됩니다.
.claude/skills/oss-policy-check/SKILL.md 파일을 생성합니다.
Skill은 디렉토리 단위로 정의하며, 파일 상단의 frontmatter(name, description)가 있어야 인식됩니다.
Bash
mkdir -p .claude/skills/oss-policy-check
Markdown
---
name: oss-policy-check
description: 오픈소스 정책 준수 검사. 개발자가 /oss-policy-check 또는 "오픈소스 정책 확인"을 요청할 때 실행한다.
---
# OSS 정책 준수 검사
## 실행 절차
### 1단계: 라이선스 확인
Node.js 프로젝트:
```bash
npx license-checker --summary --excludePrivatePackages
```
Python 프로젝트:
```bash
pip-licenses --format=markdown --with-urls
```
Java/Maven 프로젝트:
```bash
mvn license:aggregate-third-party-report
```
### 2단계: 허용 목록 대조
output/policy/license-allowlist.md 의 허용 라이선스와 비교한다.
목록에 없는 라이선스가 발견되면 즉시 경고한다.
### 3단계: 취약점 조회 (OSV API)
발견된 패키지에 대해 OSV API로 취약점을 조회한다:
```bash
# grype 사용 (권장)
grype dir:. --fail-on high
# 또는 OSV-Scanner 사용
osv-scanner --recursive .
```
### 4단계: 결과 보고 형식
검사 결과를 아래 형식으로 보고한다:
---
## OSS 정책 검사 결과
**검사 일시:** YYYY-MM-DD
**대상 프로젝트:** [프로젝트명]
### 라이선스 현황
| 라이선스 | 패키지 수 | 상태 |
| ---------- | --------- | ------- |
| MIT | 45 | ✅ 허용 |
| Apache-2.0 | 12 | ✅ 허용 |
| GPL-3.0 | 1 | ❌ 위반 |
### 취약점 현황
| CVE | CVSS | 패키지 | 상태 |
| ------------- | ---- | -------------- | ----------------- |
| CVE-2024-XXXX | 9.1 | lodash@4.17.15 | ❌ 긴급 패치 필요 |
### 권고사항
- [ ] GPL-3.0 패키지 대체 또는 사용 승인 요청
- [ ] lodash 4.17.21 이상으로 업그레이드
효과: 팀원 누구나 /oss-policy-check 명령으로 즉시 현황을 파악할 수 있습니다.
→ 다음: 방법 3: Hooks 설정하기