mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-31 06:03:29 +08:00
10 KiB
10 KiB
Everything Claude Code에 기여하기
기여에 관심을 가져주셔서 감사합니다! 이 저장소는 Claude Code 사용자를 위한 커뮤니티 리소스입니다.
목차
우리가 찾는 것
에이전트
특정 작업을 잘 처리하는 새로운 에이전트:
- 언어별 리뷰어 (Python, Go, Rust)
- 프레임워크 전문가 (Django, Rails, Laravel, Spring)
- DevOps 전문가 (Kubernetes, Terraform, CI/CD)
- 도메인 전문가 (ML 파이프라인, 데이터 엔지니어링, 모바일)
스킬
워크플로우 정의와 도메인 지식:
- 언어 모범 사례
- 프레임워크 패턴
- 테스팅 전략
- 아키텍처 가이드
훅
유용한 자동화:
- 린팅/포매팅 훅
- 보안 검사
- 유효성 검증 훅
- 알림 훅
커맨드
유용한 워크플로우를 호출하는 슬래시 커맨드:
- 배포 커맨드
- 테스팅 커맨드
- 코드 생성 커맨드
빠른 시작
# 1. 포크 및 클론
gh repo fork affaan-m/everything-claude-code --clone
cd everything-claude-code
# 2. 브랜치 생성
git checkout -b feat/my-contribution
# 3. 기여 항목 추가 (아래 섹션 참고)
# 4. 로컬 테스트
cp -r skills/my-skill ~/.claude/skills/ # 스킬의 경우
# 그런 다음 Claude Code로 테스트
# 5. PR 제출
git add . && git commit -m "feat: add my-skill" && git push -u origin feat/my-contribution
스킬 기여하기
스킬은 Claude Code가 컨텍스트에 따라 로드하는 지식 모듈입니다.
디렉토리 구조
skills/
└── your-skill-name/
└── SKILL.md
SKILL.md 템플릿
---
name: your-skill-name
description: 스킬 목록에 표시되는 간단한 설명
origin: ECC
---
# 스킬 제목
이 스킬이 다루는 내용에 대한 간단한 개요.
## 핵심 개념
주요 패턴과 가이드라인 설명.
## 코드 예제
\`\`\`typescript
// 실용적이고 테스트된 예제 포함
function example() {
// 잘 주석 처리된 코드
}
\`\`\`
## 모범 사례
- 실행 가능한 가이드라인
- 해야 할 것과 하지 말아야 할 것
- 흔한 실수 방지
## 사용 시점
이 스킬이 적용되는 시나리오 설명.
스킬 체크리스트
- 하나의 도메인/기술에 집중
- 실용적인 코드 예제 포함
- 500줄 미만
- 명확한 섹션 헤더 사용
- Claude Code에서 테스트 완료
스킬 예시
| 스킬 | 용도 |
|---|---|
coding-standards/ |
TypeScript/JavaScript 패턴 |
frontend-patterns/ |
React와 Next.js 모범 사례 |
backend-patterns/ |
API와 데이터베이스 패턴 |
security-review/ |
보안 체크리스트 |
에이전트 기여하기
에이전트는 Task 도구를 통해 호출되는 전문 어시스턴트입니다.
파일 위치
agents/your-agent-name.md
에이전트 템플릿
---
name: your-agent-name
description: 이 에이전트가 하는 일과 Claude가 언제 호출해야 하는지. 구체적으로 작성!
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
---
당신은 [역할] 전문가입니다.
## 역할
- 주요 책임
- 부차적 책임
- 하지 않는 것 (경계)
## 워크플로우
### 1단계: 이해
작업에 접근하는 방법.
### 2단계: 실행
작업을 수행하는 방법.
### 3단계: 검증
결과를 검증하는 방법.
## 출력 형식
사용자에게 반환하는 것.
## 예제
### 예제: [시나리오]
입력: [사용자가 제공하는 것]
행동: [수행하는 것]
출력: [반환하는 것]
에이전트 필드
| 필드 | 설명 | 옵션 |
|---|---|---|
name |
소문자, 하이픈 연결 | code-reviewer |
description |
호출 시점 결정에 사용 | 구체적으로 작성! |
tools |
필요한 것만 포함 | Read, Write, Edit, Bash, Grep, Glob, WebFetch, Task |
model |
복잡도 수준 | haiku (단순), sonnet (코딩), opus (복잡) |
예시 에이전트
| 에이전트 | 용도 |
|---|---|
tdd-guide.md |
테스트 주도 개발 |
code-reviewer.md |
코드 리뷰 |
security-reviewer.md |
보안 점검 |
build-error-resolver.md |
빌드 오류 수정 |
훅 기여하기
훅은 Claude Code 이벤트에 의해 트리거되는 자동 동작입니다.
파일 위치
hooks/hooks.json
훅 유형
| 유형 | 트리거 시점 | 사용 사례 |
|---|---|---|
PreToolUse |
도구 실행 전 | 유효성 검증, 경고, 차단 |
PostToolUse |
도구 실행 후 | 포매팅, 검사, 알림 |
SessionStart |
세션 시작 시 | 컨텍스트 로딩 |
Stop |
세션 종료 시 | 정리, 감사 |
훅 형식
{
"hooks": {
"PreToolUse": [
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"rm -rf /\"",
"hooks": [
{
"type": "command",
"command": "echo '[Hook] BLOCKED: Dangerous command' && exit 1"
}
],
"description": "위험한 rm 명령 차단"
}
]
}
}
Matcher 문법
// 특정 도구 매칭
tool == "Bash"
tool == "Edit"
tool == "Write"
// 입력 패턴 매칭
tool_input.command matches "npm install"
tool_input.file_path matches "\\.tsx?$"
// 조건 결합
tool == "Bash" && tool_input.command matches "git push"
훅 예시
// tmux 밖 dev 서버 차단
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"npm run dev\"",
"hooks": [{"type": "command", "command": "echo '개발 서버는 tmux에서 실행하세요' && exit 1"}],
"description": "dev 서버를 tmux에서 실행하도록 강제"
}
// TypeScript 편집 후 자동 포맷
{
"matcher": "tool == \"Edit\" && tool_input.file_path matches \"\\.tsx?$\"",
"hooks": [{"type": "command", "command": "npx prettier --write \"$file_path\""}],
"description": "TypeScript 파일 편집 후 포맷"
}
// git push 전 경고
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"git push\"",
"hooks": [{"type": "command", "command": "echo '[Hook] push 전에 변경사항을 다시 검토하세요'"}],
"description": "push 전 검토 리마인더"
}
훅 체크리스트
- Matcher가 구체적 (너무 광범위하지 않게)
- 명확한 오류/정보 메시지 포함
- 올바른 종료 코드 사용 (
exit 1은 차단,exit 0은 허용) - 충분한 테스트 완료
- 설명 포함
커맨드 기여하기
커맨드는 /command-name으로 사용자가 호출하는 액션입니다.
파일 위치
commands/your-command.md
커맨드 템플릿
---
description: /help에 표시되는 간단한 설명
---
# 커맨드 이름
## 목적
이 커맨드가 수행하는 작업.
## 사용법
\`\`\`
/your-command [args]
\`\`\`
## 워크플로우
1. 첫 번째 단계
2. 두 번째 단계
3. 마지막 단계
## 출력
사용자가 받는 결과.
커맨드 예시
| 커맨드 | 용도 |
|---|---|
commit.md |
Git 커밋 생성 |
code-review.md |
코드 변경사항 리뷰 |
tdd.md |
TDD 워크플로우 |
e2e.md |
E2E 테스팅 |
크로스-하네스 및 번역
스킬 서브셋 (Codex 및 Cursor)
ECC는 다른 하네스를 위한 스킬 서브셋도 제공합니다:
- Codex:
.agents/skills/—agents/openai.yaml에 나열된 스킬이 Codex에서 로드됩니다. - Cursor:
.cursor/skills/— Cursor용 스킬 서브셋이 별도로 포함됩니다.
Codex 또는 Cursor에서도 제공해야 하는 새 스킬을 추가한다면:
- 먼저
skills/your-skill-name/아래에 일반적인 ECC 스킬로 추가합니다. - Codex에서도 제공해야 하면
.agents/skills/에 반영하고, 필요하면agents/openai.yaml에도 참조를 추가합니다. - Cursor에서도 제공해야 하면 Cursor 레이아웃에 맞게
.cursor/skills/아래에 추가합니다.
기존 디렉터리의 구조를 확인한 뒤 같은 패턴을 따르세요. 이 서브셋 동기화는 수동이므로 PR 설명에 반영 여부를 적어 두는 것이 좋습니다.
번역
번역 문서는 docs/ 아래에 있습니다. 예: docs/zh-CN, docs/zh-TW, docs/ja-JP.
번역된 에이전트, 커맨드, 스킬을 변경한다면:
- 대응하는 번역 파일도 함께 업데이트하거나
- 유지보수자/번역자가 후속 작업을 할 수 있도록 이슈를 열어 주세요.
Pull Request 프로세스
1. PR 제목 형식
feat(skills): add rust-patterns skill
feat(agents): add api-designer agent
feat(hooks): add auto-format hook
fix(skills): update React patterns
docs: improve contributing guide
2. PR 설명
## 요약
무엇을 추가했고 왜 필요한지.
## 유형
- [ ] 스킬
- [ ] 에이전트
- [ ] 훅
- [ ] 커맨드
## 테스트
어떻게 테스트했는지.
## 체크리스트
- [ ] 형식 가이드라인 준수
- [ ] Claude Code에서 테스트 완료
- [ ] 민감한 정보 없음 (API 키, 경로)
- [ ] 명확한 설명 포함
3. 리뷰 프로세스
- 메인테이너가 48시간 이내에 리뷰
- 피드백이 있으면 수정 반영
- 승인되면 main에 머지
가이드라인
해야 할 것
- 기여를 집중적이고 모듈화되게 유지
- 명확한 설명 포함
- 제출 전 테스트
- 기존 패턴 따르기
- 의존성 문서화
하지 말아야 할 것
- 민감한 데이터 포함 (API 키, 토큰, 경로)
- 지나치게 복잡하거나 특수한 설정 추가
- 테스트하지 않은 기여 제출
- 기존 기능과 중복되는 것 생성
파일 이름 규칙
- 소문자에 하이픈 사용:
python-reviewer.md - 설명적으로 작성:
workflow.md가 아닌tdd-workflow.md - name과 파일명을 일치시키기
질문이 있으신가요?
- 이슈: github.com/affaan-m/everything-claude-code/issues
- X/Twitter: @affaanmustafa
기여해 주셔서 감사합니다! 함께 훌륭한 리소스를 만들어 갑시다.