From 65092691a394a795ff50641b7ef58966ff14fd2e Mon Sep 17 00:00:00 2001 From: toki Date: Wed, 20 May 2026 21:49:41 +0900 Subject: [PATCH] sync: agent-ops from agentic-framework v1.1.18 --- agent-ops/.version | 2 +- agent-ops/bin/init-agent-ops.sh | 16 ++++++++++++++++ agent-ops/bin/sync.sh | 4 ++-- agent-ops/rules/common/rules.md | 16 ++++++++++++++++ agent-ops/skills/common/init-agent-ops/SKILL.md | 1 + agent-ops/skills/common/sync-push/SKILL.md | 3 ++- 6 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 agent-ops/rules/common/rules.md diff --git a/agent-ops/.version b/agent-ops/.version index cbb8cba..852ed67 100644 --- a/agent-ops/.version +++ b/agent-ops/.version @@ -1 +1 @@ -1.1.17 +1.1.18 diff --git a/agent-ops/bin/init-agent-ops.sh b/agent-ops/bin/init-agent-ops.sh index 142a9f6..7a1f196 100755 --- a/agent-ops/bin/init-agent-ops.sh +++ b/agent-ops/bin/init-agent-ops.sh @@ -51,6 +51,21 @@ copy_common_agent_ops() { cp -r "$source_dir/skills/common" "$target_agent_ops_dir/skills/" } +ensure_common_rules_file() { + local source_dir="$1" + local target_agent_ops_dir="$2" + local source_rules="$source_dir/rules/common/rules.md" + local target_rules="$target_agent_ops_dir/rules/common/rules.md" + + if [ ! -f "$source_rules" ]; then + echo "Error: common rules file not found: $source_rules" >&2 + exit 1 + fi + + mkdir -p "$(dirname "$target_rules")" + cp "$source_rules" "$target_rules" +} + echo "Initializing agent-ops in: $TARGET_DIR" echo "Source agent-ops: $SOURCE_DIR" @@ -63,6 +78,7 @@ copy_common_agent_ops "$SOURCE_DIR" "$TARGET_DIR/agent-ops" # 3. 에이전트 진입 파일 생성 (common/rules.md 복사) COMMON_RULES="$SOURCE_DIR/rules/common/rules.md" apply_agent_ops_entry_files "$COMMON_RULES" "$TARGET_DIR" +ensure_common_rules_file "$SOURCE_DIR" "$TARGET_DIR/agent-ops" # 4. AI ignore / permission 설정 append_unique_line "$TARGET_DIR/.geminiignore" "$ARCHIVE_IGNORE_PATTERN" diff --git a/agent-ops/bin/sync.sh b/agent-ops/bin/sync.sh index dbde37f..790bc1f 100755 --- a/agent-ops/bin/sync.sh +++ b/agent-ops/bin/sync.sh @@ -41,7 +41,7 @@ bump_version() { bash "$SCRIPT_DIR/bump-version.sh" "$1" } -# ── 폴더 동기화 (rules.md 제외, 삭제된 파일도 반영) ───────────────────────── +# ── 폴더 동기화 (삭제된 파일도 반영) ──────────────────────────────────────── sync_folder() { local src="$1" dst="$2" exclude="${3:-}" mkdir -p "$dst" @@ -66,7 +66,7 @@ sync_folder() { sync_common() { local src="$1" dst="$2" - sync_folder "$src/rules/common" "$dst/rules/common" "rules.md" + sync_folder "$src/rules/common" "$dst/rules/common" sync_folder "$src/skills/common" "$dst/skills/common" sync_folder "$src/bin" "$dst/bin" } diff --git a/agent-ops/rules/common/rules.md b/agent-ops/rules/common/rules.md new file mode 100644 index 0000000..ae124ac --- /dev/null +++ b/agent-ops/rules/common/rules.md @@ -0,0 +1,16 @@ +# 공통 규칙 + +- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다. +- 코드 변경 전 관련 domain rule을 먼저 확인한다. +- 요청 범위를 넘는 변경을 하지 않는다. +- 불확실하면 단정하지 말고 후보를 제시한다. +- `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. + +`agent-ops/rules/project/rules.md`와 `agent-ops/rules/private/rules.md`는 세션 최초 1회 읽는다. 파일이 없으면 무시한다. + +아래 성격의 요청은 사용자가 명시적으로 요청한 경우에만 `agent-ops/skills/common/router.md`를 작업 최초 1회 읽고 수행한다. 자동으로 수행하지 않는다. +- agent-ops 초기화 +- domain rule 생성 +- skill 생성 +- git commit / push +- agent-ops 업데이트 / 진입 파일 재적용 diff --git a/agent-ops/skills/common/init-agent-ops/SKILL.md b/agent-ops/skills/common/init-agent-ops/SKILL.md index af2b836..5a9807c 100644 --- a/agent-ops/skills/common/init-agent-ops/SKILL.md +++ b/agent-ops/skills/common/init-agent-ops/SKILL.md @@ -224,6 +224,7 @@ common/rules.md와 내용이 중복되지 않도록 한다. ## 실행 결과 검증 - [ ] `agent-ops/bin/entry-files.sh`의 모든 진입 파일이 프로젝트 루트에 존재하고, 내용이 초기화에 사용한 `rules/common/rules.md`와 일치하는가 +- [ ] `agent-ops/rules/common/rules.md`가 대상 프로젝트에 남아 있고 초기화에 사용한 `rules/common/rules.md`와 일치하는가 - [ ] `agent-ops/rules/project/rules.md`가 생성되었고, 필수 항목(응답 언어, 프로젝트 개요, 기술 스택)이 포함되어 있는가 - [ ] 생성된 domain rules.md가 `domain-rule-template.md` 형식을 따르는가 - [ ] `rules/project/rules.md`의 도메인 매핑 테이블에 생성된 도메인이 모두 등록되어 있는가 diff --git a/agent-ops/skills/common/sync-push/SKILL.md b/agent-ops/skills/common/sync-push/SKILL.md index 12c9c5b..390437b 100644 --- a/agent-ops/skills/common/sync-push/SKILL.md +++ b/agent-ops/skills/common/sync-push/SKILL.md @@ -34,7 +34,7 @@ description: 현재 프로젝트의 agent-ops를 agentic-framework로 올리거 3. **명시되지 않은 경우**: `agent-ops/bin/sync.sh` 실행 4. target이 없으면 `sync.sh`가 현재 프로젝트 기준 상위 폴더(`../`)의 하위 디렉터리 중 `agent-ops/` 폴더가 있는 프로젝트를 모두 대상으로 삼는다 5. `sync.sh`는 현재 agentic-framework의 `agent-ops/rules/common/rules.md` 내용을 대상 프로젝트 루트의 진입 파일에 덮어쓴다 -6. 적용 후 각 대상 repo에서 agent-ops 공통 관리 경로와 진입 파일만 stage 하여 commit/push 한다 +6. 적용 후 각 대상 repo에서 agent-ops 공통 관리 경로(`rules/common/rules.md` 포함)와 진입 파일만 stage 하여 commit/push 한다 덮어쓰기 대상은 `init-agent-ops` 초기 세팅과 동일하며, 실제 목록은 `agent-ops/bin/entry-files.sh`의 `AGENT_OPS_ENTRY_FILES`를 단일 기준으로 사용한다. @@ -58,6 +58,7 @@ agent-ops/bin/sync.sh [target] - [ ] sync.sh 가 오류 없이 완료됐는가 - [ ] 버전 충돌 경고가 없었는가 — 있었다면 사용자에게 수동 머지 필요함을 알린다 +- [ ] 대상 repo의 `agent-ops/rules/common/rules.md`가 현재 agentic-framework의 `agent-ops/rules/common/rules.md`와 일치하는가 - [ ] agentic-framework에서 대상 프로젝트로 push한 경우, `agent-ops/bin/entry-files.sh`의 모든 진입 파일 내용이 현재 agentic-framework의 `agent-ops/rules/common/rules.md`와 일치하는가 - [ ] 대상 repo에 commit/push 된 path가 agent-ops 공통 관리 경로와 진입 파일로 제한되었는가