agentleFS
gwonvibegwonvibe/gwonvibe-agent-skills/skills/dependency-manager/SKILL.md

dependency-manager

Skill4 starsChanged 41 days agoMITView on GitHub

프로젝트 패키지의 사용 여부, 버전, 취약점, 호환성, lock 파일 상태를 점검하거나 안전하게 설치·업데이트·제거할 때 사용한다. 변경은 사용자가 명시적으로 요청한 경우에만 수행한다.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

의존성 관리자

프로젝트가 어떤 외부 패키지를 왜 사용하는지 확인하고, 필요한 경우에만 가장 작은 단위로 바꾼다. 최신 버전으로 만드는 것이 목표가 아니라 현재 기능을 안전하게 유지하는 것이 목표다.

초보자를 위한 용어

  • 의존성: 프로젝트가 가져다 쓰는 외부 코드다. 집을 지을 때 사용하는 문, 전선, 수도 부품과 비슷하다.
  • manifest: 필요한 패키지와 버전 범위를 적은 목록이다. Node.js의 package.json, Python의 pyproject.toml 등이 해당한다.
  • lock 파일: 실제로 설치된 정확한 버전과 연결 관계를 기록한 명세서다. 같은 설계도라도 자재가 달라지는 일을 막아준다.
  • 직접 의존성: 프로젝트가 직접 선택해 추가한 패키지다.
  • 전이 의존성: 직접 추가한 패키지가 다시 필요로 하는 하위 패키지다.
  • 호환 조건: 특정 패키지나 실행 환경이 함께 사용 가능한 버전 범위다.
  • 설치 스크립트: 패키지를 설치할 때 자동으로 실행되는 코드다. 설치도 단순 다운로드가 아니라 프로젝트 상태를 바꿀 수 있다.

먼저 지킬 원칙

  • 점검 요청의 기본값은 읽기 전용이다.
  • 설치·업데이트·제거는 사용자가 명시적으로 요청한 경우에만 수행한다.
  • 프로젝트가 이미 사용하는 패키지 관리자를 따른다. npm, pnpm, Yarn, Bun 등을 임의로 섞지 않는다.
  • manifest와 lock 파일을 함께 확인하고, lock 파일만 지우거나 전체를 다시 만들지 않는다.
  • 점검하려고 npx, latest 같은 방식으로 새로운 도구를 몰래 내려받아 실행하지 않는다.
  • 오래됐다는 이유만으로 업데이트하지 않는다. 취약점, 오류, 지원 종료, 필요한 기능, 실행 환경 호환성처럼 실제 이유를 확인한다.
  • 보안 경고의 등급만 보고 실제 위험을 확정하지 않는다. 설치 버전, 사용 경로, 운영 노출을 함께 본다.
  • 기존 사용자 변경과 이번 작업의 변경을 구분한다. 관련 없는 파일을 정리하지 않는다.
  • 비공개 패키지명, 레지스트리 토큰, 설정값을 출력하지 않는다.

1. 프로젝트의 기준을 찾는다

다음 순서로 확인한다.

1. 대상 프로젝트와 workspace 범위
2. manifest
3. lock 파일
4. 패키지 관리자와 버전 설정
5. 설치·테스트·빌드 스크립트
6. CI에서 사용하는 설치 명령
7. 관련 파일의 기존 변경

대표적인 lock 파일은 다음과 같다.

파일일반적으로 연결되는 도구
package-lock.jsonnpm
pnpm-lock.yamlpnpm
yarn.lockYarn
bun.lock, bun.lockbBun
uv.lockuv
poetry.lockPoetry

파일 이름만으로 확정하지 않는다. manifest의 패키지 관리자 설정과 CI 명령이 다르면 충돌 사실을 먼저 보고한다.

2. 요청 유형에 맞는 증거를 본다

업데이트 후보

  • manifest의 허용 범위와 lock에 설치된 실제 버전
  • 현재 실행 환경과 패키지의 지원 버전
  • 공식 릴리스 노트와 마이그레이션 안내
  • 프로젝트에서 실제 사용하는 기능
  • 바뀌는 API와 영향받는 파일

현재 버전 정보는 바뀔 수 있으므로 필요하면 공식 문서를 확인한다. 확인하지 못했으면 최신이라고 단정하지 않는다.

보안 경고

  • 공식 보안 공지 또는 패키지 관리자의 원문
  • 영향받는 버전과 현재 설치 버전
  • 직접 의존성인지 전이 의존성인지
  • 개발 환경에서만 쓰는지 운영 코드에도 들어가는지
  • 취약한 기능이 실제로 호출되거나 외부에 노출되는지
  • 수정 버전, 설정 완화책, 업데이트의 호환 위험

스캐너 경고가 없다는 사실은 프로젝트 전체가 안전하다는 뜻이 아니다.

미사용 패키지 후보

소스의 import만 검색하지 않는다. 다음도 확인한다.

  • 설정 파일과 빌드 도구
  • 명령어 스크립트
  • 플러그인 이름과 동적 로딩
  • 테스트와 개발 전용 도구
  • workspace의 다른 패키지
  • 생성 코드와 배포 설정

사용 근거를 찾지 못했다는 것과 실제로 필요 없다는 것은 다르다. 제거 후 검증하기 전까지는 후보로만 표시한다.

lock 파일 정합성

  • manifest 변경이 lock에 반영됐는가
  • 하나의 프로젝트에 서로 다른 lock 파일이 섞여 있는가
  • CI가 고정 설치 방식으로 재현되는가
  • lock 파일에 설명되지 않는 대규모 변경이 생겼는가

lock 파일을 직접 손으로 맞추지 말고 해당 프로젝트의 패키지 관리자로 갱신한다.

3. 우선순위를 정한다

  • 즉시 확인·조치: 현재 사용 경로에 영향을 주는 취약점이나 오류가 확인됐고 안전한 조치가 있다.
  • 계획 후 변경: 변경 필요성은 있지만 마이그레이션, 호환 묶음, 추가 검증이 필요하다.
  • 제거 후보: 사용 근거를 찾지 못했지만 제거 검증은 아직 하지 않았다.
  • 현재 변경 근거 없음: 확인한 범위에서는 바꿀 이유가 없다.
  • 판단 불충분: 공식 정보, 네트워크, 실행 환경, 테스트가 부족하다.

패치·마이너 업데이트도 무조건 안전하다고 보지 않는다. 특히 초기 버전 패키지, 프레임워크 묶음, 플러그인 호환 조건은 공식 안내를 확인한다.

4. 변경 요청이 있을 때만 실행한다

  1. 바꿀 패키지와 목표 버전, 이유를 정한다.
  2. 영향받는 사용처와 필요한 호환 패키지를 확인한다.
  3. 프로젝트의 기존 패키지 관리자로 manifest와 lock을 함께 갱신한다.
  4. 한 패키지 또는 공식적으로 함께 움직여야 하는 최소 묶음만 변경한다.
  5. 설치 결과와 diff에서 예상한 파일만 바뀌었는지 확인한다.
  6. 프로젝트에 이미 있는 최소 검증 명령을 실행한다.
  7. 실패하면 관련 없는 패키지를 더 올리지 말고 원인을 보고한다.

--force, lock 파일 삭제, 전체 의존성 재설치는 기본 해결책으로 사용하지 않는다. 되돌릴 때도 이번 작업이 만든 변경만 대상으로 하고 기존 작업을 덮어쓰지 않는다.

5. 검증한다

변경 종류에 맞는 최소 검증을 고른다.

설치 재현: 기존 lock 파일로 설치 가능한가
타입 검사: 타입 호환성이 깨지지 않았는가
테스트: 변경 패키지를 사용하는 동작이 통과하는가
빌드: 실제 배포 대상이 만들어지는가
간단 실행: 대표 화면이나 명령이 실제로 동작하는가

프로젝트에 없는 테스트 도구를 검증용으로 새로 추가하지 않는다. 한 가지 검증 통과로 실행하지 않은 전체 검증이 통과했다고 말하지 않는다.

출력 형식

## 확인 범위
- 프로젝트·workspace:
- 패키지 관리자:
- manifest와 lock:
- 요청: 점검만 / 변경 포함

## 판정
| 패키지 | 현재 상태 | 근거 | 영향 사용처 | 판정 |
|---|---|---|---|---|

## 변경한 경우
- 변경 패키지와 버전:
- 바뀐 파일:
- 실행한 검증과 결과:

## 미확인 영역
- 확인하지 못한 공식 정보나 실행 경로:

## 다음 행동
- 필요한 최소 조치 하나:

초보자가 바로 쓸 요청 예시

이 프로젝트의 패키지 중 실제로 안 쓰는 후보가 있는지 점검해줘.
소스 import뿐 아니라 설정과 빌드 스크립트도 확인하고,
아직 제거하지는 말아줘.
보안 경고가 떴어. 현재 설치 버전이 정말 영향을 받는지,
운영 코드에서 취약한 기능을 쓰는지 먼저 확인해줘.
업데이트가 필요하면 바뀔 파일과 검증 방법까지 제안하고 실행은 기다려줘.
이 패키지만 공식 지원 버전으로 업데이트해줘.
현재 패키지 관리자를 그대로 사용하고 lock 파일도 함께 갱신한 뒤,
관련 테스트와 빌드까지만 확인해줘.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.