sync: agent-ops from agentic-framework v1.1.83

This commit is contained in:
toki 2026-05-28 10:15:27 +09:00
parent 0fc1bf3e34
commit 546d596d9e
2 changed files with 66 additions and 28 deletions

View file

@ -1 +1 @@
1.1.80 1.1.83

View file

@ -1,14 +1,15 @@
--- ---
name: commit-push name: commit-push
version: 1.0.0 version: 1.2.0
description: 변경 사항을 커밋하 원격에 푸시한다. "커밋해줘", "푸시해줘", "커밋하고 푸시" 요청 시 사용한다. description: 변경 사항을 커밋하거나 원격에 푸시한다. "커밋해줘", "푸시해줘", "커밋하고 푸시", "올려줘" 요청 시 사용하며 명시된 푸시는 재확인 없이 수행한다.
--- ---
# commit-push # commit-push
## 목적 ## 목적
현재 변경 내용을 분석하여 한국어 커밋 메시지를 작성하고, 커밋 및 푸시를 수행한다. 현재 변경 내용을 분석하여 Conventional Commits 형식의 한국어 설명 커밋 메시지를 작성하고, 사용자가 요청한 커밋 또는 푸시를 수행한다.
일반적인 커밋/푸시는 승인 질문 없이 진행하고, 실제 위험 신호가 있을 때만 사용자 확인을 받는다.
## 언제 호출할지 ## 언제 호출할지
@ -19,12 +20,15 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘
## 입력 ## 입력
- `scope`: 커밋 범위 — all(전체) 또는 특정 파일/경로 (선택, 기본값: all) - `scope`: 커밋 범위 — all(전체) 또는 특정 파일/경로 (선택, 기본값: all)
- `push`: 푸시 여부 (선택, 기본값: true) - `push`: 푸시 여부 (선택, 기본값: auto)
- auto: 요청에 "푸시", "push", "올려줘", "반영해줘", "커밋하고 푸시"가 있으면 true, "커밋만" 또는 "푸시하지 마"가 있으면 false
- true: 푸시 여부를 다시 묻지 않고 현재 브랜치를 원격에 푸시한다
- false: 커밋만 수행하고 푸시는 생략한다
## 먼저 확인할 것 ## 먼저 확인할 것
- [ ] 커밋할 변경 사항이 존재하는가 (`git status`로 확인) - [ ] 커밋할 변경 사항 또는 push할 unpushed commit이 존재하는가 (`git status`로 확인)
- [ ] 현재 브랜치가 올바른 브랜치인 - [ ] 현재 브랜치, 원격, upstream 상태가 일반 커밋/푸시에 적합한
- [ ] `.env`, 시크릿 파일 등 민감한 파일이 스테이징에 포함되어 있지 않은가 - [ ] `.env`, 시크릿 파일 등 민감한 파일이 스테이징에 포함되어 있지 않은가
## 실행 절차 ## 실행 절차
@ -32,7 +36,8 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘
1. **변경 사항 파악** 1. **변경 사항 파악**
- `git status`로 변경/추가/삭제된 파일 목록을 확인한다 - `git status`로 변경/추가/삭제된 파일 목록을 확인한다
- `git diff`로 구체적인 변경 내용을 확인한다 - `git diff`로 구체적인 변경 내용을 확인한다
- 변경 사항이 없으면 사용자에게 알리고 종료한다 - 커밋할 변경 사항이 없고 push가 true이며 unpushed commit이 있으면 커밋 단계는 건너뛰고 푸시를 진행한다
- 커밋할 변경 사항도 없고 push할 unpushed commit도 없으면 사용자에게 알리고 종료한다
2. **민감 파일 검사** 2. **민감 파일 검사**
- 스테이징 대상에 아래 패턴이 포함되면 해당 파일을 제외하고 사용자에게 경고한다 - 스테이징 대상에 아래 패턴이 포함되면 해당 파일을 제외하고 사용자에게 경고한다
@ -42,24 +47,33 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘
- `.gitignore`에 이미 등록된 파일은 무시한다 - `.gitignore`에 이미 등록된 파일은 무시한다
3. **커밋 메시지 작성** 3. **커밋 메시지 작성**
- 변경 내용을 분석하여 한국어로 커밋 메시지를 작성한다 - 변경 내용을 분석하여 Conventional Commits 형식으로 커밋 메시지를 작성한다
- 아래 메시지 규칙을 따른다 - 아래 메시지 규칙을 따른다
4. **사용자 확인** 4. **위험 신호 판단**
- 커밋 메시지와 대상 파일 목록을 보여주고 승인을 받는다 - 아래 위험 신호가 없으면 사용자 승인 없이 다음 단계로 진행한다
- 위험 신호가 있으면 커밋/푸시를 멈추고 대상 파일, 커밋 메시지, 위험 내용을 짧게 보여준 뒤 사용자 확인을 받는다
- 민감 파일 패턴이 스테이징 대상에 포함됨
- 사용자가 지정한 scope 밖의 변경을 포함해야 함
- 현재 브랜치가 사용자 요청이나 작업 맥락과 다를 가능성이 큼
- merge/rebase 충돌, detached HEAD, git 작업 중 상태가 감지됨
- 원격이 diverged 상태거나 일반 push가 실패해 force push가 필요해 보임
- 사용자가 메시지 수정을 요청하면 반영한다 - 사용자가 메시지 수정을 요청하면 반영한다
5. **커밋 실행** 5. **커밋 실행**
- 커밋할 변경 사항이 없고 push할 unpushed commit만 있으면 이 단계를 건너뛴다
- scope에 따라 파일을 스테이징한다 - scope에 따라 파일을 스테이징한다
- all: 변경된 전체 파일을 개별적으로 `git add` - all: 변경된 전체 파일을 개별적으로 `git add`
- 특정 경로: 해당 파일만 `git add` - 특정 경로: 해당 파일만 `git add`
- 승인된 메시지로 `git commit`을 실행한다 - 작성한 메시지로 `git commit`을 실행한다
6. **푸시 실행** 6. **푸시 실행**
- push가 true인 경우에만 실행한다 - push가 true인 경우에만 실행한다
- 사용자가 푸시를 명시했으면 푸시 여부를 다시 묻지 않는다
- 현재 브랜치를 원격에 푸시한다 - 현재 브랜치를 원격에 푸시한다
- 원격 브랜치가 없으면 `-u origin {branch}`로 설정한다 - 원격 브랜치가 없으면 `-u origin {branch}`로 설정한다
- 충돌 발생 시 사용자에게 알리고 중단한다 - 일반 push가 실패하거나 충돌이 발생하면 사용자에게 알리고 중단한다
- `--force`가 필요해 보여도 자동 실행하지 않고 사용자 확인을 받는다
7. **결과 보고** 7. **결과 보고**
- 커밋 해시, 메시지, 변경 파일 수, 푸시 결과를 출력한다 - 커밋 해시, 메시지, 변경 파일 수, 푸시 결과를 출력한다
@ -69,31 +83,54 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘
### 형식 ### 형식
``` ```
<타입>: <변경 요약> <type>(<scope>): <한국어 서술형 요약>
<본문> (선택) < 변경했는지 설명하는 한국어 본문> (선택)
<footer> (선택)
``` ```
### 타입 목록 `scope`는 선택 사항이며 변경 영역을 짧은 ASCII 토큰으로 쓴다. 예: `agent-ops`, `sync`, `docs`, `api`
| 타입 | 용도 | ### type 목록
| type | 용도 |
|------|------| |------|------|
| 기능 | 새로운 기능 추가 | | feat | 새로운 기능 추가 |
| 수정 | 버그 수정 | | fix | 버그 수정 |
| 개선 | 기존 기능 개선, 리팩토링 | | docs | 문서 추가/수정 |
| 문서 | 문서 추가/수정 | | refactor | 동작 변화 없는 구조 개선 |
| 설정 | 빌드, CI/CD, 설정 파일 변경 | | test | 테스트 추가/수정 |
| 테스트 | 테스트 추가/수정 | | chore | 잡무성 변경, 저장소 관리 |
| 정리 | 코드 정리, 불필요 코드 제거 | | build | 빌드, 패키징, 의존성 변경 |
| ci | CI/CD 설정 변경 |
| perf | 성능 개선 |
| revert | 이전 커밋 되돌림 |
### 작성 원칙 ### 작성 원칙
- **한국어**로 작성한다 - `type``scope`는 Conventional Commits 호환을 위해 영어 ASCII 토큰을 사용한다
- 요약과 본문은 **한국어**로 작성한다
- 요약은 50자 이내로 간결하게 작성한다 - 요약은 50자 이내로 간결하게 작성한다
- 요약은 "~한다" 형태의 서술형으로 끝낸다 (예: "로그인 검증 로직을 추가한다") - 요약은 "~한다" 형태의 서술형으로 끝낸다 (예: "로그인 검증 로직을 추가한다")
- 본문은 **무엇을** 변경했는지가 아니라 **왜** 변경했는지를 쓴다 - 본문은 **무엇을** 변경했는지가 아니라 **왜** 변경했는지를 쓴다
- 변경 파일이 3개 이하이면 본문을 생략할 수 있다 - 변경 파일이 3개 이하이면 본문을 생략할 수 있다
- 여러 성격의 변경이 섞여 있으면 가장 핵심적인 변경을 기준으로 타입을 정한다 - 여러 성격의 변경이 섞여 있으면 가장 핵심적인 변경을 기준으로 타입을 정한다
- 이슈, PR, 작업 ID가 있으면 footer에 `Refs: #123`, `Closes: #123`처럼 남긴다
- breaking change는 `type(scope)!:` 또는 footer의 `BREAKING CHANGE:`로 표시한다
### 예시
```text
docs(commit-push): 푸시 승인 조건을 명시한다
```
```text
fix(sync): unpushed commit 푸시 흐름을 보강한다
작업 트리에 변경이 없어도 로컬 커밋이 원격보다 앞서 있으면
커밋 단계를 건너뛰고 푸시해야 한다.
```
## 출력 형식 ## 출력 형식
@ -109,7 +146,7 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘
## 실행 결과 검증 ## 실행 결과 검증
- [ ] `git log -1`로 방금 생성한 커밋이 존재하고, 메시지가 승인된 내용과 일치하는가 - [ ] `git log -1`로 방금 생성한 커밋이 존재하고, 메시지가 작성한 내용과 일치하는가
- [ ] 커밋에 포함된 파일 목록이 의도한 scope와 일치하는가 (`git diff-tree --no-commit-id --name-only -r HEAD`) - [ ] 커밋에 포함된 파일 목록이 의도한 scope와 일치하는가 (`git diff-tree --no-commit-id --name-only -r HEAD`)
- [ ] push가 true인 경우, `git status`에서 "Your branch is up to date" 또는 원격과 동기화 상태인가 - [ ] push가 true인 경우, `git status`에서 "Your branch is up to date" 또는 원격과 동기화 상태인가
- 검증 실패 시: 실패 원인(커밋 누락, 푸시 실패 등)을 사용자에게 알리고 재시도 여부를 확인한다 - 검증 실패 시: 실패 원인(커밋 누락, 푸시 실패 등)을 사용자에게 알리고 재시도 여부를 확인한다
@ -118,7 +155,8 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘
- `git add -A` 또는 `git add .`을 사용하지 않는다 (민감 파일 혼입 방지) - `git add -A` 또는 `git add .`을 사용하지 않는다 (민감 파일 혼입 방지)
- `git push --force`를 사용하지 않는다 - `git push --force`를 사용하지 않는다
- 사용자 확인 없이 커밋하지 않는다 - 명시적인 커밋/푸시 요청이 있고 위험 신호가 없는데도 습관적으로 사용자 승인을 요구하지 않는다
- 영어로 커밋 메시지를 작성하지 않는다 - 위험 신호를 무시하고 커밋하거나 푸시하지 않는다
- `type``scope`를 제외한 요약/본문을 영어로 작성하지 않는다
- 변경 내용과 무관한 커밋 메시지를 작성하지 않는다 - 변경 내용과 무관한 커밋 메시지를 작성하지 않는다
- `--no-verify` 옵션을 사용하지 않는다 - `--no-verify` 옵션을 사용하지 않는다