From 546d596d9edf720a186f2f89d6fda7e4fd3731ec Mon Sep 17 00:00:00 2001 From: toki Date: Thu, 28 May 2026 10:15:27 +0900 Subject: [PATCH] sync: agent-ops from agentic-framework v1.1.83 --- agent-ops/.version | 2 +- agent-ops/skills/common/commit-push/SKILL.md | 92 ++++++++++++++------ 2 files changed, 66 insertions(+), 28 deletions(-) diff --git a/agent-ops/.version b/agent-ops/.version index 5754e86..a1b3d6b 100644 --- a/agent-ops/.version +++ b/agent-ops/.version @@ -1 +1 @@ -1.1.80 +1.1.83 diff --git a/agent-ops/skills/common/commit-push/SKILL.md b/agent-ops/skills/common/commit-push/SKILL.md index 09e8ace..c2fad97 100644 --- a/agent-ops/skills/common/commit-push/SKILL.md +++ b/agent-ops/skills/common/commit-push/SKILL.md @@ -1,14 +1,15 @@ --- name: commit-push -version: 1.0.0 -description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘", "푸시해줘", "커밋하고 푸시" 요청 시 사용한다. +version: 1.2.0 +description: 변경 사항을 커밋하거나 원격에 푸시한다. "커밋해줘", "푸시해줘", "커밋하고 푸시", "올려줘" 요청 시 사용하며 명시된 푸시는 재확인 없이 수행한다. --- # commit-push ## 목적 -현재 변경 내용을 분석하여 한국어 커밋 메시지를 작성하고, 커밋 및 푸시를 수행한다. +현재 변경 내용을 분석하여 Conventional Commits 형식의 한국어 설명 커밋 메시지를 작성하고, 사용자가 요청한 커밋 또는 푸시를 수행한다. +일반적인 커밋/푸시는 승인 질문 없이 진행하고, 실제 위험 신호가 있을 때만 사용자 확인을 받는다. ## 언제 호출할지 @@ -19,12 +20,15 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘 ## 입력 - `scope`: 커밋 범위 — all(전체) 또는 특정 파일/경로 (선택, 기본값: all) -- `push`: 푸시 여부 (선택, 기본값: true) +- `push`: 푸시 여부 (선택, 기본값: auto) + - auto: 요청에 "푸시", "push", "올려줘", "반영해줘", "커밋하고 푸시"가 있으면 true, "커밋만" 또는 "푸시하지 마"가 있으면 false + - true: 푸시 여부를 다시 묻지 않고 현재 브랜치를 원격에 푸시한다 + - false: 커밋만 수행하고 푸시는 생략한다 ## 먼저 확인할 것 -- [ ] 커밋할 변경 사항이 존재하는가 (`git status`로 확인) -- [ ] 현재 브랜치가 올바른 브랜치인가 +- [ ] 커밋할 변경 사항 또는 push할 unpushed commit이 존재하는가 (`git status`로 확인) +- [ ] 현재 브랜치, 원격, upstream 상태가 일반 커밋/푸시에 적합한가 - [ ] `.env`, 시크릿 파일 등 민감한 파일이 스테이징에 포함되어 있지 않은가 ## 실행 절차 @@ -32,7 +36,8 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘 1. **변경 사항 파악** - `git status`로 변경/추가/삭제된 파일 목록을 확인한다 - `git diff`로 구체적인 변경 내용을 확인한다 - - 변경 사항이 없으면 사용자에게 알리고 종료한다 + - 커밋할 변경 사항이 없고 push가 true이며 unpushed commit이 있으면 커밋 단계는 건너뛰고 푸시를 진행한다 + - 커밋할 변경 사항도 없고 push할 unpushed commit도 없으면 사용자에게 알리고 종료한다 2. **민감 파일 검사** - 스테이징 대상에 아래 패턴이 포함되면 해당 파일을 제외하고 사용자에게 경고한다 @@ -42,24 +47,33 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘 - `.gitignore`에 이미 등록된 파일은 무시한다 3. **커밋 메시지 작성** - - 변경 내용을 분석하여 한국어로 커밋 메시지를 작성한다 + - 변경 내용을 분석하여 Conventional Commits 형식으로 커밋 메시지를 작성한다 - 아래 메시지 규칙을 따른다 -4. **사용자 확인** - - 커밋 메시지와 대상 파일 목록을 보여주고 승인을 받는다 +4. **위험 신호 판단** + - 아래 위험 신호가 없으면 사용자 승인 없이 다음 단계로 진행한다 + - 위험 신호가 있으면 커밋/푸시를 멈추고 대상 파일, 커밋 메시지, 위험 내용을 짧게 보여준 뒤 사용자 확인을 받는다 + - 민감 파일 패턴이 스테이징 대상에 포함됨 + - 사용자가 지정한 scope 밖의 변경을 포함해야 함 + - 현재 브랜치가 사용자 요청이나 작업 맥락과 다를 가능성이 큼 + - merge/rebase 충돌, detached HEAD, git 작업 중 상태가 감지됨 + - 원격이 diverged 상태거나 일반 push가 실패해 force push가 필요해 보임 - 사용자가 메시지 수정을 요청하면 반영한다 5. **커밋 실행** + - 커밋할 변경 사항이 없고 push할 unpushed commit만 있으면 이 단계를 건너뛴다 - scope에 따라 파일을 스테이징한다 - all: 변경된 전체 파일을 개별적으로 `git add` - 특정 경로: 해당 파일만 `git add` - - 승인된 메시지로 `git commit`을 실행한다 + - 작성한 메시지로 `git commit`을 실행한다 6. **푸시 실행** - push가 true인 경우에만 실행한다 + - 사용자가 푸시를 명시했으면 푸시 여부를 다시 묻지 않는다 - 현재 브랜치를 원격에 푸시한다 - 원격 브랜치가 없으면 `-u origin {branch}`로 설정한다 - - 충돌 발생 시 사용자에게 알리고 중단한다 + - 일반 push가 실패하거나 충돌이 발생하면 사용자에게 알리고 중단한다 + - `--force`가 필요해 보여도 자동 실행하지 않고 사용자 확인을 받는다 7. **결과 보고** - 커밋 해시, 메시지, 변경 파일 수, 푸시 결과를 출력한다 @@ -69,31 +83,54 @@ description: 변경 사항을 커밋하고 원격에 푸시한다. "커밋해줘 ### 형식 ``` -<타입>: <변경 요약> +(): <한국어 서술형 요약> -<본문> (선택) +<왜 변경했는지 설명하는 한국어 본문> (선택) + +