golang-pkg-go-dev은(는) 무엇을 하나요?
종속성: godig — go install github.com/samber/godig/cmd/godig@latest (또는 등록된 godig MCP 서버 / 호스팅 인스턴스를 사용).
godig는 pkg.go.dev API를 조회합니다. Go 패키지 및 모듈에 대한 문서, 심볼, 버전, 임포터, 취약점 등을 질문하는 데 사용합니다. CLI와 MCP 서버로 작동하며, 모든 작업은 읽기 전용이며 인증이 필요 없습니다.
이 스킬을 사용해야 할 때
다음과 같은 질문에 트리거됩니다:
- "github.com/samber/lo의 사용 가능한 버전은 무엇인가요?"
- "golang.org/x/text에 알려진 취약점이 있나요?"
- "패키지 X의 문서/심볼을 보여주세요."
- "어떤 패키지가 X를 임포트하나요?"
- "Y에 대한 Go 패키지를 검색해 주세요."
godig, gopls, Context7, govulncheck 중 선택하기
간단히 말해: godig는 공개된 생태계에 대한 질문에 답합니다 (go.mod에 아직 없는 패키지에도 작동). gopls는 로컬에서 해석된 빌드 (go.sum, replace된 포크 포함)를 분석합니다. Context7은 Go가 아니거나 인덱싱되지 않은 문서를 위한 대체 도구입니다. govulncheck는 전체 트리 취약점 감사 도구입니다 (→ samber/cc-skills-golang@golang-security). samber/cc-skills-golang@golang-gopls 스킬에서 Claude Code와 함께 gopls(MCP 서버, 네이티브 LSP 도구, CLI)를 연결하는 방법을, samber/cc-skills-golang@golang-how-to 스킬의 "godig vs gopls vs Context7 vs govulncheck" 섹션에서 작업-도구 매트릭스를 확인하세요.
설정
설치
go install github.com/samber/godig/cmd/godig@latest
MCP 서버 등록 (선택 사항)
godig mcp는 기본적으로 stdio 위에서 실행되며, --transport http로 스트리밍 가능 HTTP를 사용할 수 있습니다. 이 명령은 하네스에 독립적입니다 — MCP를 지원하는 모든 호스트가 이를 가리킬 수 있습니다. Claude Code는 자체 CLI를 통해 등록합니다:
stdio (클라이언트가 필요 시 godig를 실행):
claude mcp add pkg-go-dev -- godig mcp
스트리밍 가능 HTTP (/mcp에서 공유 서버, 기본 :8080):
godig mcp --transport http --addr :8080
claude mcp add --transport http pkg-go-dev http://localhost:8080/mcp
호스팅 인스턴스 (설치 불필요) — https://godig.samber.dev/mcp에서 공개 서버 실행:
claude mcp add --transport http pkg-go-dev https://godig.samber.dev/mcp
MCP를 지원하는 다른 하네스(Cursor, Windsurf 등)는 각자의 MCP 서버 등록 방식을 따릅니다 — 해당 설정 파일에 동일한 godig mcp 명령 또는 호스팅 URL을 가리키는 항목을 추가하면 되며, 공유된 설정 형식은 없습니다.
CLI와 MCP 서버는 일치하는 이름으로 동일한 연산을 제공합니다. godig가 설치된 경우 CLI를 선호하고, 설치되지 않은 경우 호스팅 인스턴스를 대체 수단으로 사용하세요.
명령어
전역 플래그 (모든 명령어): -o/--output table|json|raw|md (기본값 table — 채팅용으로 -o md 전달), --base-url (pkg.go.dev API), --vuln-base-url (Go 취약점 데이터베이스, vulns 및 overview에서 참조), --timeout, --log-level debug|info|warn|error|off. 모두 GODIG_* 환경 변수로도 설정 가능합니다.
| 명령어 | 인자 | 특정 플래그 | 목적 |
|---|---|---|---|
overview | <path> | --version | 간결한 요약 (메타데이터, 버전, 라이선스, 취약점) — 여기서 시작 |
search | <query> | --symbol --limit --filter | 패키지 찾기 (선택적으로 심볼 내보내기) |
package info | <path> | --module --version | 패키지 메타데이터 |
package imports | <path> | --module --version | 이 패키지가 임포트하는 패키지 (간단한 목록) |
package doc | <path> | --module --version --goos --goarch --format md|text|html|markdown | 전체 패키지 문서 (큰 용량) |
package examples | <path> | --module --version --goos --goarch --symbol | 실행 가능한 예제 (큰 용량; --symbol로 범위 축소) |
package licenses | <path> | --module --version | 라이선스 파일, 전체 텍스트 (큰 용량) |
symbol doc | <path> <symbol> | --module --version --goos --goarch | 단일 심볼의 시그니처 + 문서 (토큰 효율적) |
symbol examples | <path> <symbol> | --module --version --goos --goarch | 단일 심볼의 실행 가능한 예제 |
symbols | <path> | --module --version --goos --goarch --limit --filter | 내보낸 심볼 목록 |
module info | <path> | --version | 모듈 메타데이터 |
module licenses | <path> | --version | 모듈 라이선스 파일 (큰 용량) |
module readme | <path> | --version | 모듈 README, 전체 마크다운 (큰 용량) |
dependencies | <path> | --version | go.mod 의존성: requires / replaces / excludes / go 지시문 |
packages | <path> | --version --limit --filter | 모듈에 포함된 패키지 |
versions | <path> | --limit --filter | 모든 버전, 최신순 |
major-versions | <path> | --limit --filter --exclude-pseudo | 별도 모듈로 존재하는 주요 버전 (v1, v2 …) |
imported-by | <path> | --module --version --limit --filter | 이 패키지를 임포트하는 패키지 |
vulns | <path> | --version --limit | 알려진 취약점 (Go 취약점 DB에서 조회) |
mcp | — | --transport stdio|http --addr --cache-ttl --cache-size | MCP 서버로 실행 |
version | — | — | godig 버전 / 커밋 / 빌드 날짜 출력 |
godig가 MCP 서버로 실행될 때, 위의 각 데이터 명령어는 동일한 이름의 연산으로 노출됩니다.
종료 코드: 0 성공, 1 런타임 오류 (네트워크, 패키지 없음), 2 사용 오류 — 누락되거나 잘못된 인자/플래그 (예: 양수가 아닌 --limit), 또는 하위 명령어 없이 명령어 그룹 호출 (godig package). 2를 확인하여 잘못된 호출과 실패한 조회를 구분하세요.
모든 명령어의 전체 -o md 출력: sample-output.md.
팁
overview로 시작 — 한 번 호출로 간결한 요약(메타데이터, 최신 + 최근 버전, 라이선스 유형, 취약점)을 반환합니다. 전체 텍스트가 필요할 때만doc/examples/module readme/licenses(큰 용량)를 사용하세요.- 항상
-o md전달 — 결과가 채팅에서 마크다운(테이블 또는 원시 문서/README)으로 렌더링됩니다. 다른 형식도 있지만(table기본값,json,raw), 여기서는md를 선호합니다. <path>는 전체 임포트 경로입니다(예:github.com/samber/lo). 위치 인자로 전달하세요.--version은 특정 모듈 버전(v1.5.0,latest,master,main)을 고정합니다.--module은 패키지가 속한 모듈을 명확히 합니다.--filter는 서버 측에서 Go 부울 표현식으로 목록 결과를 좁힙니다 — 필터 구문 참조.--goos/--goarch는 문서/심볼의 빌드 컨텍스트를 설정합니다(예:linux/amd64).- 특정 심볼에 대한 정보만 필요할 때는 패키지 전체의
package doc/package examples대신symbol doc/symbol examples를 선호하세요.