- agent-ops/roadmap/를 agent-roadmap/으로 디렉터리 구조 재구성 - AI 에이전트별 ignore 파일 (.clineignore, .cursorignore, .geminiignore 등) 및 규칙 파일 (.clinerules, .cursorrules, AGENTS.md 등) 통합 - agent-ops 스킬 템플릿 및 규칙 파일 업데이트 - opencode.json 설정 갱신
7.3 KiB
7.3 KiB
| name | description |
|---|---|
| sync-push | 현재 프로젝트의 agent-ops를 공통 원본 repo로 올리거나, `.agent-ops-source`가 있는 공통 원본 repo의 agent-ops를 대상 프로젝트 또는 상위 폴더의 agent-ops 적용 프로젝트 전체로 push하고 푸시한다. "agent-ops 싱크해", "agent-ops 동기화해", "agentic-framework에 올려줘" 요청 시 사용한다. |
sync-push
목적
agent-ops/bin/sync.sh를 호출해 agent-ops 공통 파일을 push 방향으로 동기화한다.
- 일반 프로젝트에서는 현재 프로젝트 →
.agent-ops-source가 있는 공통 원본 repo 방향으로 올린다. .agent-ops-source가 있는 공통 원본 repo에서는 원본 repo → 대상 프로젝트 방향으로 보내고, 대상 repo를 commit/push 한다.- 공통 원본 repo에서 대상이 명시되지 않으면 현재 프로젝트의 상위 폴더에 있는 agent-ops 적용 프로젝트 전체로 보낸다.
버전 정책
- 현재 프로젝트 루트에
.agent-ops-source가 있으면, 대상 프로젝트로 전파하는 push 동기화는 버전을 올리지 않는다. - 이 경우 현재 공통 원본 repo의
agent-ops/.version값을 그대로 대상 repo에 전파한다. - 일반 프로젝트에서
.agent-ops-source가 있는 공통 원본 repo로 공통 변경을 올리는 push 동기화는 기존처럼sync.sh가 버전을 한 단계 올린다.
언제 호출할지
- "agent-ops 싱크해", "agent-ops 동기화해" 요청 시
- "agentic-framework에 올려줘" 요청 시
- "agent-ops를 [프로젝트]로 싱크해" 요청 시
실행 절차
현 프로젝트가 일반 프로젝트인 경우 (.agent-ops-source 없음)
- 현재 프로젝트의 상위 폴더(
../) 에.agent-ops-source가 있는 공통 원본 repo가 있는지 확인한다. 기본 후보는agentic-framework다. - 있으면:
agent-ops/bin/sync.sh실행 또는agent-ops/bin/sync.sh agentic-framework실행 - 없으면: 사용자에게 agentic-framework 경로 입력을 안내하고, 입력받은 경로로 실행
- 공통 관리 파일 변경 없이
agent-ops/.version만 다른 경우sync.sh는 버전 갱신과 commit/push를 건너뛴다 - 공통 관리 파일 변경이 있으면
sync.sh가 버전을 한 단계 올리고 현재 프로젝트와 공통 원본 repo에 같은 버전을 반영한다 - 일반 프로젝트에서 공통 원본 repo로 올릴 때는 AI ignore / permission 파일을 보강하거나 stage하지 않는다
현 프로젝트가 공통 원본 repo인 경우 (.agent-ops-source 있음)
- 사용자 요청에서 target 프로젝트명 또는 경로를 추출한다
- 명시된 경우:
agent-ops/bin/sync.sh <target>실행 - 명시되지 않은 경우:
agent-ops/bin/sync.sh실행 - target이 없으면
sync.sh가 현재 프로젝트 기준 상위 폴더(../)의 하위 디렉터리 중agent-ops/폴더가 있는 프로젝트를 모두 대상으로 삼는다 sync.sh는 현재 공통 원본 repo의agent-ops/rules/common/rules.md내용을 대상 프로젝트 루트의 진입 파일에 덮어쓴다- 적용 후 각 대상 repo에서 agent-ops 공통 관리 경로(
rules/common/rules.md포함), 진입 파일, AI ignore / permission 파일을 stage 하여 commit/push 한다 - AI ignore / permission 파일은 대상 프로젝트의 기존 내용을 덮어쓰지 않고, Agent-Ops 관리 block 또는 Agent-Ops 전용 permission key만 보강한다
- 이 과정에서는 버전을 새로 올리지 않고 현재 공통 원본 repo의
agent-ops/.version값을 그대로 대상 프로젝트에 반영한다
덮어쓰기 대상은 init-agent-ops 초기 세팅과 동일하며, 실제 목록은 agent-ops/bin/entry-files.sh의 AGENT_OPS_ENTRY_FILES를 단일 기준으로 사용한다.
| 에이전트 | 파일명 |
|---|---|
| Gemini | GEMINI.md |
| Claude | CLAUDE.md |
| Kilo Code / OpenCode | AGENTS.md |
| Cursor | .cursorrules |
| Cline | .clinerules |
대상 프로젝트에 기존 진입 파일이 있어도 보존하거나 병합하지 않고 agent-ops/rules/common/rules.md 내용으로 교체한다.
AI Ignore / Permission 재적용
- 이 절차는
.agent-ops-source가 있는 공통 원본 repo에서 대상 프로젝트로 push할 때와--pull로 공통 원본 repo에서 현재 프로젝트로 내려받을 때만 적용한다. - 일반 프로젝트에서 공통 원본 repo로 올리는 push에서는 AI ignore / permission 파일을 수정하거나 stage하지 않는다.
.geminiignore,.aiexclude,.cursorignore,.clineignore는 사용자 영역을 수정하지 않고 아래 관리 block만 추가하거나 교체한다.
# BEGIN Agent-Ops managed ignore
agent-task/archive/**
agent-roadmap/archive/**
# END Agent-Ops managed ignore
- 관리 block 밖의 기존 ignore 항목은 사용자 소유로 보고 삭제, 정렬, 중복 제거하지 않는다.
.claude/settings.json과opencode.json은 기존 사용자 설정을 보존하고agent-task/archive/**hard read/glob deny만 보강한다.agent-roadmap/archive/**는 필요한 경우 링크로 읽을 수 있어야 하므로.claude/settings.json이나opencode.json의 hard read/glob deny로 두지 않는다.- 대상 프로젝트에 기존
agent-roadmap/archive/**hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다. opencode.json의 watcher ignore에는agent-task/archive/**와agent-roadmap/archive/**를 둘 수 있다.
agent-ops/bin/sync.sh [target]
푸시 대상 path는 항상 agent-ops/.version, agent-ops/bin, agent-ops/rules/common, agent-ops/skills/common, AGENT_OPS_ENTRY_FILES의 진입 파일로 제한한다. AI ignore / permission 파일은 .agent-ops-source가 있는 공통 원본 repo에서 일반 프로젝트로 내려보내는 경우에만 대상 repo에서 추가 stage한다.
실행 결과 검증
- sync.sh 가 오류 없이 완료됐는가
- 버전 충돌 경고가 없었는가 — 있었다면 사용자에게 수동 머지 필요함을 알린다
- 대상 repo의
agent-ops/rules/common/rules.md가 현재 공통 원본 repo의agent-ops/rules/common/rules.md와 일치하는가 - 공통 원본 repo에서 대상 프로젝트로 push한 경우,
agent-ops/bin/entry-files.sh의 모든 진입 파일 내용이 현재 공통 원본 repo의agent-ops/rules/common/rules.md와 일치하는가 - 공통 원본 repo에서 대상 프로젝트로 push한 경우,
.geminiignore,.aiexclude,.cursorignore,.clineignore에 Agent-Ops 관리 block이 있고 그 안에agent-task/archive/**와agent-roadmap/archive/**가 포함되어 있는가 - 공통 원본 repo에서 대상 프로젝트로 push한 경우,
.claude/settings.json과opencode.json에agent-task/archive/**hard deny가 있고agent-roadmap/archive/**hard read/glob deny가 남아 있지 않은가 - 대상 프로젝트에 기존
agent-roadmap/archive/**hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 - 일반 프로젝트에서 공통 원본 repo로 push한 경우, AI ignore / permission 파일이 공통 원본 repo에 유입되지 않았는가
- 대상 repo에 commit/push 된 path가 방향별 허용 범위로 제한되었는가
금지 사항
- sync.sh 를 거치지 않고 직접 파일을 복사하지 않는다