--- 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` 등 읽기 전용 명령만 - 패키지를 직접 업데이트하지 않음 (보고서만) - 한국어로 작성