Skip to content

Commit 55446a7

Browse files
chore: 블로그 워크플로우 설정을 프로젝트 내부로 이동
- scripts/ 폴더 git 추적 포함 (optimize-image.sh 등 5개) - .claude/skills/에 seo-blog-post, git-commit 스킬 추가 - CLAUDE.md에 글쓰기 스타일 상세 분석 통합 (메모리→코드) - 다른 PC에서 clone만으로 전체 워크플로우 복원 가능
1 parent fc9ec70 commit 55446a7

9 files changed

Lines changed: 1110 additions & 1 deletion

File tree

.claude/skills/git-commit/SKILL.md

Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
---
2+
name: git-commit
3+
description: Git 커밋 요청 시 자동 발동. 커밋 메시지 작성, 변경사항 확인, Conventional Commits 형식 적용. 커밋해줘, commit, 커밋 요청 시 사용.
4+
user-invocable: true
5+
---
6+
7+
# Git 커밋 Skill
8+
9+
사용자가 커밋을 요청할 때 자동으로 발동됩니다.
10+
11+
## 트리거 조건
12+
13+
- "커밋해줘", "commit", "커밋 요청" 등의 표현
14+
- 코드 작업 완료 후 커밋 요청
15+
16+
## 커밋 전 필수 확인
17+
18+
1. `git status`로 변경 파일 확인
19+
2. `git diff --staged`로 스테이징된 변경 확인
20+
3. `git log --oneline -5`로 최근 커밋 스타일 확인
21+
22+
## Conventional Commits 형식
23+
24+
```
25+
<type>(<scope>): <subject>
26+
27+
<body>
28+
```
29+
30+
### Type (필수)
31+
32+
| Type | 설명 |
33+
|------|------|
34+
| feat | 새 기능 추가 |
35+
| fix | 버그 수정 |
36+
| refactor | 리팩토링 (기능 변경 없음) |
37+
| docs | 문서 수정 |
38+
| style | 코드 스타일 변경 (포맷팅 등) |
39+
| test | 테스트 추가/수정 |
40+
| chore | 빌드, 설정 파일 등 |
41+
| perf | 성능 개선 |
42+
43+
### Scope (선택)
44+
45+
변경된 컴포넌트/모듈명 (예: `feat(auth):`, `fix(api):`)
46+
47+
### Subject
48+
49+
- 50자 이내
50+
- 현재형 사용 ("Add" not "Added")
51+
- 마침표 없음
52+
53+
## 커밋 절차
54+
55+
1. **변경 확인**: `git status`, `git diff`
56+
2. **스테이징**: 관련 파일만 `git add`
57+
3. **메시지 작성**: Conventional Commits 형식
58+
4. **커밋 실행**: HEREDOC 사용
59+
60+
```bash
61+
git commit -m "$(cat <<'EOF'
62+
feat(module): 기능 설명
63+
64+
상세 내용 (필요시)
65+
EOF
66+
)"
67+
```
68+
69+
## 금지 사항
70+
71+
- Co-Authored-By 메타데이터 추가 금지
72+
- **`--amend` 절대 금지** (사용자 명시적 요청 + 푸시 전 확인 완료 시에만 예외)
73+
- `--no-verify` 사용 금지
74+
- 자동 push 금지 (사용자 명시적 요청 제외)
75+
76+
77+
## --amend 관련 중요 규칙
78+
79+
> **절대 --amend 사용 금지!** 이미 push된 커밋을 amend하면 원격과 분기가 발생함
80+
81+
### 파일 추가가 필요한 경우 (예: CHANGELOG.md)
82+
83+
**잘못된 방법:**
84+
85+
```bash
86+
git commit -m "fix: 버그 수정"
87+
# 나중에 CHANGELOG.md 추가 필요
88+
git add CHANGELOG.md
89+
git commit --amend --no-edit # ❌ 금지!
90+
```
91+
92+
**올바른 방법:**
93+
94+
```bash
95+
# 처음부터 모든 파일을 한 번에 커밋
96+
git add src/file.ts CHANGELOG.md
97+
git commit -m "fix: 버그 수정"
98+
```
99+
100+
**또는 별도 커밋으로 분리:**
101+
102+
```bash
103+
git commit -m "fix: 버그 수정"
104+
git add CHANGELOG.md
105+
git commit -m "docs: CHANGELOG v1.0.5 업데이트" # ✅ 새 커밋 생성
106+
```
107+
108+
### 커밋 시 체크리스트
109+
110+
1. [ ] 모든 관련 파일이 스테이징되었는가?
111+
2. [ ] CHANGELOG.md 업데이트가 필요한가? → 함께 커밋
112+
3. [ ] package.json 버전 업데이트가 필요한가? → 함께 커밋
113+
114+
## CHANGELOG 자동 기록
115+
116+
> **Keep a Changelog** 국제 규격 준수: https://keepachangelog.com/ko/1.0.0/
117+
118+
### 기록 대상 커밋
119+
120+
| Commit Type | Changelog Category |
121+
|-------------|-------------------|
122+
| feat | Added |
123+
| fix | Fixed |
124+
| perf | Changed |
125+
| refactor | Changed |
126+
| security | Security |
127+
128+
### 기록 제외 커밋
129+
130+
- `docs` - 문서 수정
131+
- `chore` - 빌드, 설정 파일
132+
- `style` - 코드 스타일 변경
133+
- `test` - 테스트 추가/수정
134+
135+
### 기록 절차
136+
137+
1. CHANGELOG.md 존재 확인 (없으면 생성)
138+
2. `[Unreleased]` 섹션 찾기 (없으면 생성)
139+
3. 커밋 유형에 맞는 카테고리에 항목 추가
140+
4. **코드 변경과 CHANGELOG를 함께 스테이징**
141+
5. 단일 커밋으로 처리
142+
143+
### CHANGELOG 포맷 (Keep a Changelog)
144+
145+
```markdown
146+
# Changelog
147+
148+
All notable changes to this project will be documented in this file.
149+
150+
The format is based on [Keep a Changelog](https://keepachangelog.com/ko/1.0.0/),
151+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
152+
153+
## [Unreleased]
154+
155+
### Added
156+
157+
- 새 기능 설명 (scope)
158+
159+
### Fixed
160+
161+
- 버그 수정 설명 (scope)
162+
163+
## [1.7.1] (managers v1.1.2) - 2025-02-03
164+
165+
### Added
166+
167+
- 초기 릴리스
168+
```
169+
170+
### 이중 버전 표기
171+
172+
프로젝트에 시스템/매니저 등 복수 버전이 있는 경우:
173+
174+
```markdown
175+
## [시스템버전] (managers v매니저버전) - YYYY-MM-DD
176+
```
177+
178+
예시:
179+
```markdown
180+
## [1.7.1] (managers v1.1.2) - 2025-02-03
181+
```
182+
183+
### 예시
184+
185+
커밋: `feat(auth): 로그인 기능 추가`
186+
187+
CHANGELOG에 추가:
188+
189+
```markdown
190+
## [Unreleased]
191+
192+
### Added
193+
194+
- 로그인 기능 추가 (auth)
195+
```
196+
197+
### 릴리스 워크플로우
198+
199+
버전 태그가 정해지면:
200+
201+
1. `[Unreleased]``[X.X.X] - YYYY-MM-DD` 변환
202+
2. 새 빈 `[Unreleased]` 섹션 생성
203+
3. ISO 8601 날짜 포맷 사용 (YYYY-MM-DD)
204+
205+
```markdown
206+
## [Unreleased]
207+
208+
## [1.2.0] - 2024-01-20
209+
210+
### Added
211+
212+
- 로그인 기능 추가 (auth)
213+
- 회원가입 기능 추가 (auth)
214+
215+
### Fixed
216+
217+
- 세션 만료 버그 수정 (session)
218+
```
219+
220+
## 커밋 제외 파일
221+
222+
다음 파일은 절대 커밋하지 않음 (변경되어도 무시):
223+
224+
225+
- `.env` - 환경변수 (민감정보)
226+
- `*.pem`, `*.key` - 인증서/키 파일
227+
228+
## 커밋 후
229+
230+
- `git status`로 성공 확인
231+
- 사용자에게 결과 알림

0 commit comments

Comments
 (0)