diff --git a/agent-ops/bin/sync.sh b/agent-ops/bin/sync.sh index 790bc1f..75b33fa 100755 --- a/agent-ops/bin/sync.sh +++ b/agent-ops/bin/sync.sh @@ -71,6 +71,22 @@ sync_common() { sync_folder "$src/bin" "$dst/bin" } +common_differs() { + local src="$1" dst="$2" + local path + + for path in "rules/common" "skills/common" "bin"; do + if [[ ! -d "$src/$path" || ! -d "$dst/$path" ]]; then + return 0 + fi + if ! diff -qr "$src/$path" "$dst/$path" >/dev/null; then + return 0 + fi + done + + return 1 +} + create_project_agent_ops_dirs() { local agent_ops_dir="$1" mkdir -p "$agent_ops_dir/rules/project/domain" @@ -277,6 +293,12 @@ SRC_VER="$(cat "$SRC_AO/.version" 2>/dev/null || echo "0.0.0")" DST_VER="$(cat "$DST_AO/.version" 2>/dev/null || echo "0.0.0")" echo " 현재 버전: $SRC_VER | framework 버전: $DST_VER" +if ! common_differs "$SRC_AO" "$DST_AO"; then + echo " 공통 파일 변경 없음: .version 차이는 무시하고 버전 갱신/커밋을 건너뜀" + echo -e "${GREEN}✓ 완료 (변경 없음)${RESET}" + exit 0 +fi + if version_gt "$DST_VER" "$SRC_VER"; then echo -e "${RED}⚠ 버전 충돌: framework($DST_VER) > current($SRC_VER)${RESET}" echo -e "${YELLOW} 먼저 sync-pull로 내려받은 뒤 재시도하세요.${RESET}" diff --git a/agent-ops/skills/common/sync-push/SKILL.md b/agent-ops/skills/common/sync-push/SKILL.md index 390437b..424f7bb 100644 --- a/agent-ops/skills/common/sync-push/SKILL.md +++ b/agent-ops/skills/common/sync-push/SKILL.md @@ -26,6 +26,7 @@ description: 현재 프로젝트의 agent-ops를 agentic-framework로 올리거 1. 현재 프로젝트의 **상위 폴더(`../`)** 에 `agentic-framework` 폴더가 있는지 확인한다 (현재 폴더 내부가 아님) 2. **있으면**: `agent-ops/bin/sync.sh` 실행 또는 `agent-ops/bin/sync.sh agentic-framework` 실행 3. **없으면**: 사용자에게 agentic-framework 경로 입력을 안내하고, 입력받은 경로로 실행 +4. 공통 관리 파일 변경 없이 `agent-ops/.version`만 다른 경우 `sync.sh`는 버전 갱신과 commit/push를 건너뛴다 ### 현 프로젝트가 agentic-framework인 경우 (`.agent-ops-source` 있음)