docs(commit-policy): 커밋 정책 스킬과 검증 절차를 정비한다

This commit is contained in:
Yu Sung
2026-02-25 14:58:12 +09:00
parent b796f6d9c5
commit aaffd08cb5
6 changed files with 299 additions and 17 deletions

View File

@@ -0,0 +1,53 @@
# 20260225 AGENTS 가이드 보강
## 작업 목표
- 저장소 실행/검증 명령을 근거 기반으로 정리한다.
- 코드 스타일 가이드를 실제 코드 관례 기반으로 정리한다.
- Cursor/Copilot 규칙 파일 존재 시 AGENTS.md에 반영한다.
## 체크리스트
- [x] 저장소 빌드/린트/테스트 명령 근거 수집
- [x] 단일 테스트 실행 명령(가능한 범위) 정리
- [x] 코드 스타일 관례(임포트/포맷/타입/네이밍/에러처리) 추출
- [x] Cursor/Copilot 규칙 파일 반영
- [x] `AGENTS.md`를 약 150줄 내외로 보강
- [x] 검증 로그 추가
## 검증 기록
- 2026-02-25: 작업 시작. 근거 파일 탐색 진행 중.
- 2026-02-25:
- 무엇: 빌드/테스트/의존성 명령 근거를 확인했다.
- 왜: AGENTS.md에 실행 가능한 공식 명령만 기재하기 위해서다.
- 어떻게:
- `xcodebuild -workspace "SodaLive.xcworkspace" -list`
- `read Podfile`
- `read SodaLive.xcodeproj/xcshareddata/xcschemes/SodaLive.xcscheme`
- `read SodaLive.xcodeproj/xcshareddata/xcschemes/SodaLive-dev.xcscheme`
- `grep project.pbxproj "PBXNativeTarget|Tests|SWIFT_VERSION|IPHONEOS_DEPLOYMENT_TARGET"`
- 결과: 스킴 `SodaLive`, `SodaLive-dev`를 확인했고, 테스트 번들 타깃 부재로 단일 테스트 실행은 제한될 수 있음을 문서화했다.
- 2026-02-25:
- 무엇: 코드 스타일 규칙(임포트/아키텍처/타입/네이밍/에러처리/로깅/비동기)을 추출했다.
- 왜: 에이전트가 기존 관례를 깨지 않고 수정하도록 하기 위해서다.
- 어떻게:
- `read SodaLive/Sources/User/UserApi.swift`
- `read SodaLive/Sources/User/UserRepository.swift`
- `read SodaLive/Sources/User/Login/LoginViewModel.swift`
- `read SodaLive/Sources/Extensions/MoyaProviderExtension.swift`
- `read SodaLive/Sources/Utils/Log.swift`
- `ast_grep_search "do { $$$ } catch { $$$ }"`
- 결과: `View -> ViewModel -> Repository -> Api` 레이어와 `DEBUG_LOG/ERROR_LOG`, `sink + .store(in:)` 패턴을 AGENTS.md에 반영했다.
- 2026-02-25:
- 무엇: Cursor/Copilot 규칙 파일 존재 여부를 점검했다.
- 왜: 요청사항(룰 파일 반영)을 누락 없이 처리하기 위해서다.
- 어떻게:
- `glob .cursor/rules/**/*`
- `glob .cursorrules`
- `glob .github/copilot-instructions.md`
- 결과: 현재 저장소에는 해당 파일이 없어, AGENTS.md에 "미존재/추후 동기화" 정책을 기재했다.
- 2026-02-25:
- 무엇: AGENTS.md 최종 라인 수와 섹션 충족 여부를 확인했다.
- 왜: 요청 조건(약 150줄, 빈 섹션 채우기) 충족 검증을 위해서다.
- 어떻게:
- `read AGENTS.md`
- `wc -l AGENTS.md`
- 결과: 총 160줄로 확인되었고, 기존 빈 섹션(저장소 범위/코드 스타일)을 포함해 전 섹션을 채웠다.

View File

@@ -0,0 +1,21 @@
- [x] `check-commit-message-rules.sh`의 인자 지원 방식 확인
- [x] `AGENTS.md` 커밋 메시지 검증 절차를 커밋 후 검증 전용으로 수정
- [x] 변경 내용 검증 및 결과 기록
## 검증 기록
- 2026-02-25: 작업 시작
- 무엇/왜/어떻게: 커밋 전 `--message` 검증 가능 여부를 스크립트 소스 기준으로 확인.
- 실행 명령: `read work/scripts/check-commit-message-rules.sh`
- 결과: 사용법이 `[commit-hash]`만 정의되어 있어 커밋 전 메시지 직접 검증은 미지원.
- 실행 명령: `./work/scripts/check-commit-message-rules.sh --message`
- 결과: `git log`에서 `fatal: 알 수 없는 인자: --message`가 발생해도 스크립트는 성공으로 끝나므로 사전 검증 용도로 사용할 수 없음.
- 2026-02-25: AGENTS 문구 정정
- 무엇/왜/어떻게: 스크립트 실제 동작과 문서 지침을 일치시키기 위해 커밋 검증 시점을 사후 전용으로 수정.
- 실행 명령: `apply_patch AGENTS.md`
- 결과: `git commit` 직전/직후 안내를 `git commit` 직후 안내로 변경하고, 체크리스트의 `커밋 전/후``커밋 직후`로 정정.
- 2026-02-25: 변경 검증
- 무엇/왜/어떻게: 문구가 완전히 전환되었는지와 문서 진단 오류 유무를 확인.
- 실행 명령: `grep "직전/직후|커밋 전/후|--message" AGENTS.md`, `lsp_diagnostics AGENTS.md`, `lsp_diagnostics docs/20260225_커밋메시지사후검증전환.md`
- 결과: AGENTS.md에서 구문 미검출(No matches), 두 파일 모두 진단 오류 없음(No diagnostics found).