Skip to content

Skill commit

github-actions[bot] edited this page Oct 15, 2026 · 1 revision

/commit

🤖 skill-archive 워크플로가 레포 원본에서 자동 생성한 페이지예요. 위키에서 직접 고치면 다음 동기화 때 덮어써지니, 수정은 원본 파일에서 PR로 해주세요.

이번 세션에 Claude가 수정한 파일만 WSS 양식으로 커밋

언제 쓰나

WSS-iOS-V2 프로젝트에서, 이번 Claude Code 세션에 Edit/Write로 만지거나 새로 만든 파일만 골라 커밋할 때 사용한다. commit-all(전부 스테이징)·commit-staged(이미 스테이징된 것만)와 달리 세션이 건드린 파일만 선택적으로 스테이징한다. "방금 바꾼 거 커밋", "세션 변경분 커밋", 또는 "/commit" 같은 요청에 트리거. 커밋 양식은 [Type] #이슈 - 내용으로 고정.


Commit Session Changes (WSS-iOS-V2)

이번 세션에 Claude가 Edit/Write 도구로 수정·생성한 파일만 골라 스테이징하고 커밋한다. 무관한 파일은 건드리지 않는다.

커밋 양식 (고정)

[Type] #<이슈번호> - <한글 내용>

예: [Fix] #132 - 작품 평가 뒤로가기 경합 수정

  • [Type]: 아래 Type 표에서 변경 성격에 맞는 하나. 브랜치의 Type과 무관 — 이번 변경 내용 기준으로 고른다(예: Feat/#132 브랜치라도 문서만 고쳤으면 [Docs]).
  • #<이슈번호>: 현재 브랜치명에서 자동 추출한다 (→ 이슈 번호 추출).
  • <한글 내용>: 변경을 한 줄로 요약한 한글 설명. 간결하게, 무엇을 했는지.
  • 이 양식에서 벗어나지 않는다. 헷갈리면 git log --oneline -8의 실제 커밋들이 진실.

이슈 번호 추출

  1. git branch --show-current로 현재 브랜치명을 얻는다 (정규형 <Type>/#<번호>, 예: Feat/#132).
  2. 브랜치명에서 # 뒤 숫자, 없으면 마지막 / 뒤 숫자를 이슈 번호로 쓴다.
  3. 추출 실패(분리 HEAD, 비표준 브랜치 등) 시 → git log --oneline -8에서 최근 커밋의 #번호를 재사용하거나, 그래도 모호하면 사용자에게 묻는다. 임의로 지어내지 않는다.

절차

  1. 세션 수정 파일 회상:

    • 이번 대화에서 Edit/Write로 수정·생성한 모든 파일 경로를 나열한다.
    • 세션 중 수정한 파일이 없으면 중단하고 커밋할 게 없다고 알린다.
  2. git과 교차 검증:

    • git status --short 실행.
    • 세션 파일 중 git에 modified/added/deleted로 잡힌 것만 남긴다.
    • git 변경이 없는 세션 파일은 제외하고 이유를 메모(이미 커밋됨/되돌려짐/변화 없음).
  3. 이슈 번호 확보: 위 이슈 번호 추출 절차 수행.

  4. 스테이징 & 커밋 (묻지 않고 바로 진행):

    • /commit 호출 자체가 커밋 승인이다. "커밋할까요?"로 멈춰 묻지 않는다.
    • git add <명시적 파일 경로> — git add -A나 git add .는 쓰지 않는다.
    • git diff --cached --stat, git diff --cached --name-only로 스테이징 내용 확인.
    • git commit -m "[Type] #번호 - 내용"으로 커밋.
    • 샌드박스가 .git 쓰기를 막으면 좁은 사유를 달아 권한 상승 후 재시도.
  5. 검증·보고:

    • git status --short, git log --oneline -1 실행.
    • 커밋된 메시지·해시·포함 파일, 남은 unstaged/untracked 파일을 보고한다.
    • 메시지·파일이 마음에 안 들면 사용자가 amend를 요청할 수 있게 결과를 명확히 드러낸다(로컬 커밋이라 되돌리기 쉽다).
    • push는 하지 않는다 — 외부로 나가는 동작이므로 사용자가 명시적으로 요청할 때만.

Type 표

[Type]은 반드시 ../commit-types.md를 읽어 그 표에서 변경 성격에 맞는 하나를 고른다. 표를 여기 복제하지 않는다 — 그 파일이 단일 진실 소스다. 커밋 헤더에서는 대괄호로 감싼다([Feat] 등).

  • 커밋 메시지에 "session"·"Claude"를 언급하지 않는다.

안전 규칙

  • 이번 세션에 Claude가 수정하지 않은 파일은 절대 스테이징하지 않는다.
  • git add -A·git add .·글롭 패턴 금지 — 항상 명시적 파일 경로.
  • 사용자가 명시적으로 요청하지 않는 한 git reset·git checkout 등 파괴적 명령 금지.
  • 세션 파일 목록이 비었거나 git 변경과 하나도 안 맞으면 커밋하지 말고 상황을 설명한다.
  • 세션 변경이 무관한 주제들로 갈리면(분량이 작아도) 여러 커밋으로 분할을 제안하고 사용자에게 묻는다 — 분할 기준은 ../commit-all/SKILL.md의 "커밋 그룹 결정" 참고.

Clone this wiki locally