---
name: dependency-audit
label: 의존성 분석
description: 프로젝트 의존성 그래프를 분석하고 보안 취약점, 라이선스, 업데이트 현황을 보고합니다.
icon: \uE964
allowed-tools:
  - file_read
  - grep
  - folder_map
  - glob
  - html_create
  - process
tabs: code
---

프로젝트의 패키지 의존성을 분석하여 보안, 라이선스, 업데이트 보고서를 생성하세요.

## 워크플로우

1. **패키지 파일 탐지**: glob으로 의존성 파일 검색
   - .NET: `*.csproj`, `packages.config`, `Directory.Build.props`
   - Node: `package.json`, `package-lock.json`, `yarn.lock`
   - Python: `requirements.txt`, `Pipfile`, `pyproject.toml`
   - Java: `pom.xml`, `build.gradle`
2. **의존성 목록 추출**: file_read로 파일 파싱
3. **분석 수행**: 각 의존성에 대해 검사
4. **보고서 생성**: html_create로 분석 보고서 생성

## 분석 항목

### 1. 직접 의존성 목록
| 패키지 | 현재 버전 | 최신 버전 | 업데이트 필요 |
|--------|----------|----------|-------------|
| ... | ... | ... | ✅/⚠/❌ |

### 2. 보안 취약점 (알려진 패턴)
- 알려진 취약 버전 패턴 탐지
- 폐기된(deprecated) 패키지 식별
- 유지보수 중단된 패키지 경고

### 3. 라이선스 검사
| 라이선스 | 호환성 | 패키지 |
|---------|--------|--------|
| MIT | ✅ 허용 | lib-a, lib-b |
| GPL-3.0 | ⚠ 주의 | lib-c |
| 상용 | ❌ 검토 필요 | lib-d |

### 4. 의존성 크기 분석
- 패키지별 예상 크기
- 전체 node_modules / NuGet 캐시 크기
- 불필요하게 큰 패키지 식별

### 5. 중복/충돌 검사
- 동일 기능 중복 패키지 (예: lodash + underscore)
- 버전 충돌 가능성

## 프레임워크별 검사 명령

### .NET
```
dotnet list package --outdated
dotnet list package --vulnerable
```

### Node.js
```
npm audit
npm outdated
```

### Python
```
pip list --outdated
pip-audit
```

## 출력
- HTML 보고서: 위험도별 색상 구분, 차트 포함
- 요약: 총 패키지 수, 업데이트 필요 수, 보안 이슈 수, 라이선스 경고 수

## 규칙
- 외부 서버 접속 없이 로컬 파일 분석만 수행
- process 도구 사용 시 `dotnet list` / `npm audit` 등 읽기 전용 명령만
- 패키지를 직접 업데이트하지 않음 (보고서만)
- 한국어로 작성
