프로덕션 레디 골랭(Golang) 프로젝트를 위한 에이전트 스킬
AI 에이전트 스킬은 재사용 가능한 명령어 세트로, 코딩 어시스턴트를 도메인별 전문 지식으로 확장하며 필요할 때만 로드되므로 컨텍스트가 과부하되는 것을 방지합니다. 이 저장소는 Go 전용 스킬(언어, 테스트, 보안, 관측 가능성 등)만을 다룹니다. 개발 워크플로우 스킬(git 규칙, CI/CD, PR 검토 등)이 필요하다면 별도의 스킬 플러그인을 추가해야 합니다.
골랭 외의 스킬은 cc-skills를 방문해 주십시오.
<!-- prettier-ignore-start -->
[!IMPORTANT]
제 Go 프로젝트 커밋을 추출하여 Claude Code로 구축되었습니다. 사람이 편집, 테스트, 검토 및 재작업했습니다.
여기는 AI가 만든 쓰레기 같은 결과물이 없습니다. AI가 만든 스킬은 쓸모없습니다.
Claude Code, Codex, Gemini, Copilot, Antigravity, Cursor 등을 위해 구축되었습니다...
<!-- prettier-ignore-end -->
<img width="1414" height="491" alt="image" src="https://github.com/user-attachments/assets/620b5835-c1ba-4ea9-bf47-2293b58b879e" />
🚀 사용 방법
skills CLI로 설치하기 (범용적이며 모든 Agent Skills-호환 도구에서 작동):
npx skills add https://github.com/samber/cc-skills-golang --all
px skills add https://github.com/samber/cc-skills-golang --skill golang-performance
<!-- prettier-ignore-start -->
<details>
<summary>Claude Code</summary>
/plugin marketplace add samber/cc
/plugin install cc-skills-golang@samber
</details>
<details>
<summary>Openclaw</summary>
스킬을 크로스 클라이언트 디스커버리(cross-client discovery) 디렉터리에 복사합니다:
git clone https://github.com/samber/cc-skills-golang.git ~/.openclaw/skills/cc-skills-golang
git clone https://github.com/samber/cc-skills-golang.git ~/.openclaw/workspace/skills/cc-skills-golang
</details>
<details>
<summary>Gemini CLI</summary>
gemini extensions install https://github.com/samber/cc-skills-golang
gemini extensions update cc-skills-golang로 업데이트합니다.
</details>
<details>
<summary>Cursor</summary>
크로스 클라이언트 디스커버리 디렉토리(cross-client discovery directory)에 스킬을 복사합니다:
git clone https://github.com/samber/cc-skills-golang.git ~/.cursor/skills/cc-skills-golang
Cursor는 .agents/skills/와 .cursor/skills/에서 스킬을 자동 디스커버리(auto-discovers)합니다.
</details>
<details>
<summary>Copilot</summary>
크로스 클라이언트 디스커버리 디렉토리에 스킬을 복사합니다:
/plugin install https://github.com/samber/cc-skills-golang
git clone https://github.com/samber/cc-skills-golang.git ~/.copilot/skills/cc-skills-golang
Copilot은 .copilot/skills/에서 스킬을 자동 디스커버리합니다.
</details>
<details>
<summary>OpenCode</summary>
크로스 클라이언트 디스커버리 디렉토리에 스킬을 복사합니다:
git clone https://github.com/samber/cc-skills-golang.git ~/.agents/skills/cc-skills-golang
OpenCode는 .agents/skills/, .opencode/skills/, 그리고 .claude/skills/에서 스킬을 자동 디스커버리합니다.
</details>
<details>
<summary>Codex (OpenAI)</summary>
Codex CLI를 통해 플러그인을 설치합니다:
codex plugin add github:samber/cc-skills
codex plugin update cc-skills로 업데이트합니다. 마켓플레이스 경로가 사용 불가능한 경우 수동 클론(manual clone)으로 폴백됩니다:
git clone https://github.com/samber/cc-skills.git ~/.agents/skills/cc-skills
Codex는 ~/.agents/skills/와 .agents/skills/에서 스킬을 자동 디스커버리합니다.
</details>
<details>
<summary>Antigravity</summary>
클론(clone)하여 크로스 클라이언트 디스커버리 경로에 심링크(symlink)를 만듭니다:
git clone https://github.com/samber/cc-skills-golang.git ~/.antigravity/skills/cc-skills-golang
cd ~/.antigravity/skills/cc-skills-golang && git pull로 업데이트합니다.
</details>
<!-- prettier-ignore-end -->
🧩 스킬(Skills)
이러한 스킬들은 원자적이며 상호 참조하는 단위로 설계되었습니다. 하나의 스킬은 다른 곳에 정의된 규칙(예: 로깅에 영향을 미치는 에러 처리 규칙은 golang-observability가 아닌 golang-error-handling에 존재함)을 참조할 수 있습니다. 일부만 설치하면 가이드라인의 부분적이고 잠재적으로 일관성 없는 시각을 얻게 됩니다. 최상의 결과를 위해서는 모든 일반 목적 스킬들을 함께 설치하는 것이 좋습니다.
┌────────────────────────────────────────┐
│ Golang Skills │
└──────────────────┬─────────────────────┘
...
- ⭐️ 추천 (Recommended)
- ✅ 게시됨 (Published)
- 👷 작업 중 (Work in progress)
- ❌ 미완료 (To-do)
- ⚡ 명령어 사용 가능 (Command available)
- 🧠 Ultrathink 자동 적용
- 🤖 Ultracode 자동 적용
- ⚙️ 재정의 가능 (아래 문서 참조)
- 설명 (Description) (tok): YAML 프론트매터의
description 필드 가중치. 스킬 트리거 시 Claude의 컨텍스트에 항상 로드됩니다.
- SKILL.md (tok): 스킬이 트리거될 때 로드되는 전체
SKILL.md 파일의 가중치
- 디렉토리 (Directory) (tok): 스킬 디렉토리 내 모든 파일(SKILL.md + 참조된 마크다운 파일)의 가중치
일반 목적:
<!-- markdownlint-disable table-column-style -->
| 스킬 | 플래그 | 에러율 격차 | 설명 (tok) | SKILL.md (tok) | 디렉토리 (tok) |
|---|
| ⭐️ | ✅ golang-code-style | ⚡ 🤖 ⚙️ | -40% | 114 | 2,358 | 2,974 |
| ... | | | | | | |
| 도구: | | | | | | |
| 스킬 | 플래그 | 에러율 격차 | 설명 (tok) | SKILL.md (tok) | 디렉토리 (tok) |
|---|
✅ golang-google-wire | ⚡ | -16% | 122 | 2,670 | 7,400 |
| ... | | | | | |
🧪 스킬 평가 (Skill evaluations)
| 스킬 사용 시 | 스킬 미사용 시 | 변화량 |
|---|
| 전체 | 3348/3439 (97%) | 1957/3439 (57%) | +40pp |
자세한 스킬별 분석은 EVALUATIONS.md를 참조하십시오.
📖 스킬 설명 (Skills description)
코드 품질 (Code Quality)
golang-code-style
Go 코드 포맷팅 및 컨벤션. gofmt, goimports, 린팅 규칙(linting rules), 주석 컨벤션, 프로젝트 수준의 스타일 일관성을 다룹니다. 회사 스킬에 의해 재정의 가능합니다.
golang-documentation
Go 문서화 표준. 패키지 문서(Package docs), godoc 컨벤션, 코드 주석, 예제 함수, README 구조, API 참조 생성 방법을 포함합니다. 재정의 가능함.
golang-error-handling
Go 에러 처리 모범 사례. 에러 생성, fmt.Errorf 및 errors.Is/As를 사용한 래핑(wrapping), 센티넬 에러(sentinel errors), 사용자 정의 에러 타입, 에러 코드, 패닉 복구(panic recovery) 등을 다룹니다. 재정의 가능함.
golang-lint
Go 린팅 모범 사례 및 golangci-lint 설정. 프리셋(Presets), 사용자 정의 규칙, CI 통합, 인라인 억제(inline suppression), 출력 해석 방법을 포함합니다.
golang-naming
모든 식별자 유형에 걸친 Go 명명 규칙. 패키지, 생성자(constructors), 구조체(structs), 인터페이스, 상수, 에러, 리시버(receivers), 약어(acronyms), 테스트 함수를 다룹니다. MixedCaps 규칙, Get-접두사(Get-prefix), 그리고 utils/helpers 안티패턴을 포함합니다. 재정의 가능함.
golang-safety
방어적 Go 코딩. 패닉(panics), 조용한 데이터 손상(silent data corruption), 런타임 버그를 예방하는 방법을 다룹니다. nil 안전성(nil safety), append 별칭 지정(append aliasing), map 동시 접근, float 비교, 제로 값 설계(zero-value design), 숫자 오버플로우 등을 포함합니다.
golang-security
Go 보안 모범 사례. 인젝션 방지(SQL, 명령어, XSS), 암호화(cryptography), 파일 시스템/네트워크 안전성, 비밀 관리(secrets management), 쿠키 보안, 도구 구성 방법을 다룹니다. 감사 및 검토 모드를 포함합니다.
golang-structs-interfaces
Go 구조체 및 인터페이스 설계. 구성(Composition), 임베딩(embedding), 타입 단언(type assertions), 인터페이스 분리(interface segregation), 구조체 태그 (JSON/YAML/DB), 포인터 대 값 리시버(pointer vs value receivers) 등을 다룹니다. 재정의 가능함.
아키텍처 및 설계
golang-concurrency
Go 동시성 패턴. 고루틴(Goroutines), 채널(channels), sync 프리미티브, context 취소(context cancellation), 워커 풀(worker pools), 팬-아웃/팬-인(fan-out/fan-in), 파이프라인(pipelines) 등을 다룹니다. 재정의 가능함.
golang-context
관용적인 Context.Context 사용법. 생성, 취소(cancellation), 타임아웃, 값(values), 전파 패턴(propagation patterns), 그리고 일반적인 안티패턴을 포함합니다. 재정의 가능함.
golang-data-structures
Go 데이터 구조의 내부 동작 및 사용법. 슬라이스(용량 증가, append 별칭 문제), 맵, 채널, 동기화 기본 요소(sync primitives) 및 각각을 언제 사용할지.
golang-database
Go 데이터베이스 접근 패턴. 파라미터 바인딩(Parameter binding), 연결 풀링(Connection pooling), 트랜잭션(Transactions), 마이그레이션(Migrations), sqlboiler/sqlc 코드 생성, 쿼리 빌더(Query builders). 재정의 가능함(Overridable).
golang-dependency-injection
Go에서의 의존성 주입(Dependency Injection) 패턴. 생성자 주입(Constructor injection), 인터페이스 기반 DI, wire/dig/fx 비교, 그리고 언제 DI가 복잡성을 감수할 가치가 있는지. 재정의 가능함(Overridable).
golang-design-patterns
관용적인(Idiomatic) Go 디자인 패턴. 함수형 옵션(Functional options), 생성자(Constructors), 빌더 패턴(Builder pattern), 미들웨어 체인(Middleware chains), 서킷 브레이커(Circuit breaker), 그리고 파일 트리와 코드를 포함한 아키텍처 가이드. 재정의 가능함(Overridable).
golang-modernize
최신 언어 기능을 사용하도록 Go 코드를 현대화합니다. Range-over-int, min/max 내장 함수(builtins), 이터레이터(Iterators), slices/maps/cmp/slog 표준 라이브러리 패키지, 테스트 패턴 (t.Context, b.Loop, synctest), 및 도구 업그레이드.
golang-refactoring
기존 Go 코드에 대한 안전하고 대규모의 리팩토링 프로세스. 커버리지 적응형 안전망(Coverage-adaptive safety net), 도구 기반 동작 보존 변환(Tool-driven behavior-preserving transforms) (gopls Rename/Inline/Extract, gofmt -r 등, gopatch), Go에 매핑된 Fowler 카탈로그, 임포트 사이클 끊기, 타입 별칭 점진적 코드 복구, 그리고 리팩토링 브랜치에서의 단계별 PR(Pull Request)을 포함하는 인간 개입형 워크플로우.
golang-benchmark
Go 벤치마킹(Benchmarking), 프로파일링(Profiling), 및 성능 측정. pprof, trace, CPU/메모리/블록 프로파일, 플레임 그래프(Flame graphs), 벤치마크 비교(benchstat), 지속적 프로파일링(Continuous profiling).
golang-observability
Go 프로덕션 관측 가능성(Observability). 구조화된 로깅(Structured logging) (slog), Prometheus 메트릭, OpenTelemetry 트레이싱, pprof 프로파일링, RUM 추적, 알림(Alerting), Grafana 대시보드. 재정의 가능함(Overridable).
Go 성능 최적화. 할당 감소(Allocation reduction), CPU 효율성, 메모리 레이아웃, GC 튜닝(GC tuning), 풀링(Pooling), 캐싱(Caching), 핫 패스 최적화(Hot-path optimization). 검토 모드 및 핫 패스 모드.
golang-testing
프로덕션 환경에서 사용할 수 있는 Go 테스트 방법들. 테이블 기반 테스트(Table-driven tests), 퍼징(fuzzing), 픽스처(fixtures), 고루틴 누수 감지(goroutine leak detection) (goleak), 스냅샷 테스트(snapshot testing), 코드 커버리지(code coverage), 통합 테스트(integration tests), 병렬 테스트(parallel tests). 사용자 정의 가능.
golang-troubleshooting
체계적인 Go 디버깅 방법론. 일반적인 함정(pitfalls), 테스트 주도 디버깅(test-driven debugging), pprof 캡처, Delve 디버거, 레이스 감지(race detection), GODEBUG 트레이싱, 프로덕션 환경 디버깅.
프로젝트 설정
golang-cli
Go CLI 애플리케이션 개발. 프로젝트 레이아웃, 종료 코드(exit codes), 시그널 처리(signal handling), I/O 패턴, 인자 구문 분석(argument parsing), 터미널 사용자 경험(terminal UX).
golang-continuous-integration
GitHub Actions를 사용한 Go 프로젝트의 CI/CD 파이프라인 구성. 빌드(Build), 테스트(test), 린트(lint), 그리고 릴리스 워크플로우(release workflows).
golang-dependency-management
Go 모듈 종속성 관리 전략. go.mod 규칙(conventions), 버전 관리(versioning), replace 지시어(replace directives), 도구 종속성(tool dependencies), 그리고 멀티 모듈 워크스페이스(multi-module workspaces).
golang-gopls
공식 Go 언어 서버인 gopls를 통한 로컬 빌드용 의미론적 코드 인텔리전스. 정의로 이동(Go-to-definition), 참조 찾기(find references), 호출/구현 계층 구조(call/implementation hierarchy), 워크스페이스 심볼 검색, 진단(diagnostics), 안전한 이름 변경(safe rename), 리팩터링(refactors) (extract/inline/fill/rewrite). gopls 자체 MCP 서버, Claude Code의 네이티브 LSP 도구, 또는 gopls CLI를 통해 접근 가능.
golang-pkg-go-dev
pkg.go.dev API 클라이언트인 godig를 통한 Go 패키지 및 모듈 탐색 (CLI + MCP 서버). 패키지 문서(Package docs), API 참조, 심볼, 코드 예제, 버전, 임포터(importers), 라이선스, 그리고 알려진 취약점(known vulnerabilities). Go 패키지의 경우 Context7보다 선호됨.
golang-popular-libraries
프로덕션 환경에서 사용할 수 있는 Go 라이브러리 및 프레임워크에 대한 엄선된 추천 목록. 표준 라이브러리(stdlib)로 충분할 때와 패키지를 사용해야 할 때를 비교함.
golang-project-layout
Go 프로젝트 구조 및 워크스페이스 설정. cmd/internal/pkg 규칙(conventions), 모노레포 레이아웃(monorepo layout), CLI 프로젝트 구조, 그리고 평평하게 유지해야 할 경우를 다룸.
golang-stay-updated
Go에 대한 최신 정보를 얻을 수 있는 자료들. 공식 채널(Official channels), 커뮤니티 허브(community hubs), 팔로우할 주요 인물(key people), 그리고 학습 자료(learning resources).
API
golang-graphql
ggqlgen/graphql-go를 사용한 Go에서의 GraphQL API 개발. 스키마 정의(Schema definition), 리졸버(resolvers), 구독(subscriptions), 데이터 로더(dataloader), 그리고 페더레이션(federation).
golang-grpc
go에서의 gRPC. Protobuf 구성, 서비스 정의(service definitions), 스트리밍(streaming), 인터셉터(interceptors), 오류 코드(error codes), 그리고 코드 생성 워크플로우(code generation workflow).
golang-swagger
swaggo/swag를 사용한 OpenAPI/Swagger 문서화. 어노테이션 주석(Annotation comments), 코드 생성, 프레임워크 통합(gin, echo, fiber, chi), 보안 정의(security definitions).
의존성 주입 (Dependency Injection)
golang-google-wire
google/wire를 사용한 컴파일 타임(compile-time) 의존성 주입. 프로바이더 세트(Provider sets), 인젝터 생성(injector generation), wire.Build, 그리고 구조화된 DI 패턴(structured DI patterns).
golang-uber-dig
uber-go/dig를 사용한 리플렉션 기반(Reflection-based) DI. Provide/Invoke, dig.In/dig.Out, 이름 지정 값(named values), 값 그룹(value groups), 선택적 의존성(optional dependencies), 그리고 Decorate.
golang-uber-fx