GitHub 저장소 규칙 (GitHub Hygiene)
저장소, 브랜치 또는 작업 맥락에 관계없이 모든 GitHub 또는 Git 작업에 다음 규칙을 적용합니다.
사용 시점
작업에 다음 중 하나라도 포함될 때 적용합니다:
- GitHub 저장소 생성 또는 수정
- Git 저장소 복제 또는 작업
- 커밋 생성, 수정 또는 푸시
- 풀 리퀘스트 생성 또는 업데이트
- 브랜치, 워크플로우, 협업자 또는 저장소 설정 관리
- GitHub 저장소를 변경하거나 상호작용하는 기타 모든 작업
1. 코드 에이전트 기여자 제한
절대 코드 에이전트를 GitHub 기여자나 협업자로 추가하지 마세요.
다음을 수행하지 마세요:
- AI/코드-에이전트 계정을 저장소 협업자로 초대
- AI/코드-에이전트 계정을 GitHub 조직이나 저장소에 추가
- AI/코드-에이전트 계정에 저장소 권한 부여
- AI/코드-에이전트 계정을 기여자로 만들기 위해 저장소 권한 변경
- AI-에이전트 전용 GitHub 계정을 기여자 신원으로 생성하거나 사용
이는 Cursor, Codex, ChatGPT, 기타 AI 코딩 에이전트, 자동화 코딩 봇 및 코딩 에이전트를 대표하는 모든 계정을 포함한 모든 AI/코드-에이전트 신원에 적용됩니다.
사용자가 명시적으로 다른 사람의 신원을 요청하지 않는 한, 사용자의 기존 Git/GitHub 신원을 사용하여 작업하세요.
2. 커밋 작성자 및 신원 제한
커밋은 코드 에이전트를 작성자, 공동 작성자 또는 생성자로 식별해서는 안 됩니다.
커밋 제목, 본문, 트레일러, Git 작성자 메타데이터 또는 Git 커미터 메타데이터에 AI-에이전트 속성을 추가하지 마세요.
사용자의 기존 저장소 구성에서 명시적으로 요구하고 안전하게 변경할 수 없는 경우가 아니라면 다음은 금지됩니다:
Co-authored-by: Cursor
Co-authored-by: Codex
Co-authored-by: ChatGPT
Generated-by: AI
Generated-by: Codex
Generated-by: Cursor
AI-generated
Generated with Cursor
Generated with Codex
Generated with ChatGPT
의도적으로 코드 에이전트를 나타내도록 Git 신원을 구성하지 마세요.
3. 커밋 메시지 형식
사용자가 명시적으로 다른 형식을 지정하지 않는 한, 모든 커밋 메시지는 다음 형식을 따라야 합니다:
[xx]xxxxx
여기서:
xx는 미리 정의된 두 글자 대문자 접두사입니다- 접두사는 대괄호로 묶입니다
- 접두사 바로 뒤에 간결한 커밋 설명이 옵니다
- 설명은 변경 사항의 주요 목적을 설명합니다
- AI-에이전트 이름, 속성 또는 관련 없는 메타데이터를 추가하지 마세요
허용됨
[FT]사용자 인증 추가
[FX]토큰 만료 버그 수정
[FE]로그인 페이지 업데이트
[BE]사용자 서비스 추가
[AP]인증 엔드포인트 추가
[DB]사용자 테이블 추가
[TS]인증 테스트 추가
[RF]인증 미들웨어 단순화
[CI]GitHub 워크플로우 업데이트
[DC]API 문서 업데이트
금지됨
로그인 페이지 업데이트
AI: 로그인 페이지 업데이트
[AI]인증 추가
[Cursor]로그인 버그 수정
[Codex]API 엔드포인트 추가
[FT] Codex로 생성됨
Co-authored-by: Codex
4. 미리 정의된 커밋 접두사
공식 기본 접두사 목록:
[FE] 프론트엔드
[BE] 백엔드
[AP] API
[DB] 데이터베이스
[UI] UI
[CF] 설정
[CI] CI/CD
[TS] 테스트
[DC] 문서
[RF] 리팩토링
[FX] 수정
[FT] 기능
[OP] 최적화
[SC] 보안
[DP] 의존성
[CH] 잡일
선택 규칙
사용자가 명시적으로 다른 접두사를 지정하지 않는 한:
- 가능하면 미리 정의된 접두사를 사용하세요
- 새로운 접두사를 절대 만들지 마세요
- 미리 정의된 접두사의 철자나 대소문자를 절대 수정하지 마세요
- 대괄호 안에 정확히 두 글자의 대문자를 사용하세요
- 변경 사항의 주요 목적에 따라 접두사를 선택하세요
- 여러 접두사가 적용될 수 있는 경우, 주요 목적을 가장 잘 나타내는 접두사를 선택하세요
| 변경 유형 | 접두사 |
|---|---|
| 새로운 기능 | [FT] |
| 버그 수정 | [FX] |
| 프론트엔드 구현 | [FE] |
| 백엔드 구현 | [BE] |
| API 변경 | [AP] |
| 데이터베이스 변경 | [DB] |
| UI 전용 변경 | [UI] |
| 설정 변경 | [CF] |
| CI/CD 변경 | [CI] |
| 테스트 | [TS] |
| 문서 | [DC] |
| 동작 변경 없는 리팩토링 | [RF] |
| 성능 최적화 | [OP] |
| 보안 관련 변경 | [SC] |
| 의존성 변경 | [DP] |
| 일반 유지보수 | [CH] |
5. 사용자 지정 접두사 우선
미리 정의된 접두사 목록은 기본값이지 절대적인 제한이 아닙니다.
사용자가 다른 커밋 접두사 또는 커밋 형식을 명시적으로 지정한 경우, 사용자의 명시적 지시를 따릅니다.
예: 사용자가 "이 커밋에는 [HOT]을 사용하세요"라고 말한 경우 → [HOT]프로덕션 이슈 수정을 사용합니다.
- 사용자가 명시적으로 요청한 접두사를 미리 정의된 접두사로 바꾸지 마세요
- 사용자가 접두사를 지정하지 않은 경우, 미리 정의된 목록을 사용하세요
- 사용자가 설명만 지정한 경우, 적절한 미리 정의된 접두사를 선택하세요
6. 커밋 설명
접두사 뒤에 오는 설명은 다음과 같아야 합니다:
- 간결하고 구체적
- 사용자가 명시적으로 다른 언어를 요청하지 않는 한 영어로 작성
- 실제 변경 사항에 초점
- AI-에이전트 속성 없음
권장:
[FX]fix expired access token handling
[FT]add password reset endpoint
[FE]update account settings page
[RF]simplify request validation
피해야 할 예:
[FX]fix stuff
[FT]changes
[RF]update code
[BE]AI generated backend changes
7. 커밋 범위
실용적인 경우 한 커밋에 하나의 논리적 변경을 선호합니다.
작업에 서로 관련 없는 여러 변경 사항이 포함된 경우:
- 하나의 잘못된 커밋 설명을 만들어내지 마세요
- 실용적인 경우 별도의 커밋을 선호하세요
- 각 커밋에 대해 독립적으로 접두사를 선택하세요
- 각 커밋 메시지가 실제 내용을 대표하도록 유지하세요
사용자가 명시적으로 단일 커밋을 요청한 경우, 해당 지시를 따르고 결합된 변경의 주요 목적을 가장 잘 나타내는 접두사를 선택하세요.
8. 커밋 전 검증
커밋을 생성하기 전에 다음을 확인하세요:
신원
- Git 작성자가 사용자의 설정된 신원인지 확인
- Git 커미터가 AI/코드-에이전트 신원이 아닌지 확인
- AI-에이전트 속성이 추가되지 않을 것인지 확인
메시지
- 유효한 접두사로 시작하는지 확인
- 사용자가 명시적으로 다른 접두사를 지정하지 않는 한 미리 정의된 접두사를 사용하는지 확인
- 기본 접두사에 정확히 두 글자의 대문자를 사용하는지 확인
- 접두사가
[]안에 묶여 있는지 확인 - 접두사 뒤에 간결한 설명이 있는지 확인
- Cursor, Codex, ChatGPT, AI 에이전트 또는 유사한 에이전트 신원을 언급하지 않는지 확인
- 금지된 속성 트레일러를 포함하지 않는지 확인
GitHub 권한
저장소 권한이나 협업자를 변경하기 전에:
- 대상이 AI/코드-에이전트 신원이 아닌지 확인
- 코드 에이전트에게 기여자 또는 협업자 접근 권한을 절대 부여하지 마세요
9. 푸시 및 GitHub 작업
커밋을 푸시하기 전에:
- 커밋 메시지가 이 스킬을 준수하는지 확인
- 커밋에 금지된 AI 속성이 포함되지 않았는지 확인
- 코드 에이전트가 GitHub 기여자로 추가되지 않았는지 확인
- 단순히 에이전트 작업을 용이하게 하기 위해 GitHub 권한을 수정하지 마세요
기존 커밋이 이러한 규칙을 위반하고 사용자가 푸시를 요청한 경우, 안전하게 수정할 수 있고 사용자의 요청된 워크플로우와 일치한다면 푸시 전에 위반 사항을 수정하세요.
이미 공유/공개 브랜치에 푸시된 커밋의 경우, 자동으로 히스토리를 다시 쓰지 마세요. 다음 작업 전에 사용자에게 물어보세요:
git commit --amend
git rebase
git reset --hard
git push --force
git push --force-with-lease
10. 풀 리퀘스트
풀 리퀘스트를 생성하거나 업데이트할 때:
- 코드 에이전트를 기여자로 식별하지 마세요
- 사용자가 명시적으로 요청하지 않는 한 AI-에이전트 속성을 추가하지 마세요
- PR 제목과 설명을 실제 변경 사항에 초점을 맞추세요
- 저장소 PR 템플릿이 있는 경우 따르세요
- PR을 생성하거나 업데이트하기 위해 저장소 권한을 수정하지 마세요
11. 충돌 해결
다른 저장소 수준 지침, 프로젝트 규칙 또는 사용자 지시가 이 스킬과 충돌하는 경우:
- 더 높은 우선순위의 지시를 따릅니다
- 사용자가 커밋 접두사 또는 커밋 형식을 명시적으로 지정한 경우, 사용자의 명시적 요청을 따릅니다
- 그렇지 않은 경우, 이 스킬의 미리 정의된 접두사 목록과 커밋 형식을 사용합니다
- 코드 에이전트를 GitHub 기여자로 추가하지 마세요
대체 규칙을 조용히 만들어내지 마세요.
12. 최종 준수 확인 목록
모든 GitHub 관련 작업을 완료하기 전에:
[ ] 코드 에이전트가 GitHub 기여자로 추가되지 않았습니다.
[ ] 코드 에이전트가 GitHub 협업자로 추가되지 않았습니다.
[ ] Git 작성자가 AI-에이전트 신원이 아닙니다.
[ ] Git 커미터가 AI-에이전트 신원이 아닙니다.
[ ] 커밋 메시지가 기본적으로 [xx]xxxxx 형식을 따릅니다.
[ ] 기본 접두사가 미리 정의된 목록에서 왔습니다.
[ ] 사용자가 지정한 접두사가 미리 정의된 목록보다 우선합니다.
[ ] 커밋 메시지에 AI-에이전트 속성이 없습니다.
[ ] 커밋 트레일러에 AI-에이전트 속성이 없습니다.
[ ] GitHub 작업이 불필요하게 저장소 권한을 수정하지 않습니다.