From d532f240381a7933aed479a1265d3a75f49ab581 Mon Sep 17 00:00:00 2001 From: toki Date: Tue, 16 Jun 2026 22:37:59 +0900 Subject: [PATCH] Update agent-ops files and rules --- .clinerules | 48 +++++++++++++++++++ .cursorrules | 48 +++++++++++++++++++ AGENTS.md | 48 +++++++++++++++++++ CLAUDE.md | 48 +++++++++++++++++++ GEMINI.md | 48 +++++++++++++++++++ README.md | 4 +- agent-ops/.version | 2 +- agent-ops/GUIDE.md | 2 +- agent-ops/bin/ai-ignore.sh | 40 +++++++--------- agent-ops/rules/common/rules.md | 2 +- agent-ops/skills/common/code-review/SKILL.md | 5 ++ .../skills/common/init-agent-ops/SKILL.md | 13 +++-- agent-ops/skills/common/plan/SKILL.md | 4 ++ agent-ops/skills/common/sync-pull/SKILL.md | 4 +- agent-ops/skills/common/sync-push/SKILL.md | 10 ++-- 15 files changed, 283 insertions(+), 43 deletions(-) diff --git a/.clinerules b/.clinerules index c04484d..b6eabee 100644 --- a/.clinerules +++ b/.clinerules @@ -1,3 +1,51 @@ +# 공통 규칙 + +**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.** + +- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다. +- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다. +- 코드 변경 전 관련 domain rule을 먼저 확인한다. +- 요청 범위를 넘는 변경을 하지 않는다. +- 불확실하면 단정하지 말고 후보를 제시한다. +- `agent-task/archive/**`는 일반 작업에서 읽지 않는다. 예외: 사용자가 과거 작업 확인, 복원, 비교, 특정 archive 경로 확인을 요청한 경우, active `PLAN-*.md` / `CODE_REVIEW-*.md` / `USER_REVIEW.md`가 특정 archive evidence 경로를 명시한 경우, 또는 plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인하는 경우에만 필요한 파일을 좁게 읽는다. split 의존성 확인은 같은 task group의 후보 `complete.log`만 읽을 수 있다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. +- tracked `docs/`는 사람용 최신 가이드와 공개 설명만 둔다. +- 외부 API, 런타임 호출, 프로젝트 간 연동, 요청/응답 스키마 계약을 확인해야 하는 작업은 `agent-contract/index.md` 파일이 있을 때만 세션 1회 읽고, 매칭되는 계약 문서만 읽는다. + +**세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. + +1. `agent-ops/rules/project/rules.md` +2. `agent-ops/rules/private/rules.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` + +# 프로젝트 간 잠금 + +- "이 Milestone은 X가 끝나야 가능하다", "A 전까지 B를 잠근다", "잠금 해제 조건은 X다", "현재 마일스톤은 X 프로젝트 작업 뒤에 진행되어야 한다", "의존성 설정해"는 `update-roadmap`으로 처리한다. + +# 스킬 규칙 + +**아래 경우에 부합되는지 반드시 끝까지 정독해서 읽고, 부합할 경우 `agent-ops/skills/common/router.md`를 작업 최초 1회 읽고 수행한다.** 자동으로 수행하지 않는다. **절대 스킵하지 말고 정독해야한다** +- agent-ops 초기화 +- domain rule 생성 +- skill 생성 +- 테스트 룰 작성/생성/수정, 도메인별/검증 시나리오별 테스트 문서, create-test/update-test +- agent-contract 생성/갱신, 계약 문서 작성/정리, 제공/소비 계약 포인터 관리 +- README 생성 +- 로드맵/마일스톤 생성·갱신 +- SDD 작성/갱신, SDD 필요 여부, SDD gate 확인, SDD 사용자 리뷰, SDD 잠금 해제 +- 로드맵 현지점 / 현재 작업 지점 확인 +- 계획 작성 / plan 생성 +- 코드 리뷰 / review 진행 +- git commit / push +- agent-ops 업데이트 / 진입 파일 재적용 + +# 테스트 규칙 + +**테스트 실행/검증 작업이 포함된 경우, 작업 환경에 맞게 최초 1회 읽고 수행한다. 환경 미지정은 local로 본다.** + +- local: `agent-test/local/rules.md` (없으면 `create-test`) + # 프로젝트 작업 완료 규칙 - 이 프로젝트에서 작업을 하나 완료할 때마다 `agent-ops/bin/bump-version.sh`를 실행해 `agent-ops/.version`을 한 단계 올린다. diff --git a/.cursorrules b/.cursorrules index c04484d..b6eabee 100644 --- a/.cursorrules +++ b/.cursorrules @@ -1,3 +1,51 @@ +# 공통 규칙 + +**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.** + +- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다. +- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다. +- 코드 변경 전 관련 domain rule을 먼저 확인한다. +- 요청 범위를 넘는 변경을 하지 않는다. +- 불확실하면 단정하지 말고 후보를 제시한다. +- `agent-task/archive/**`는 일반 작업에서 읽지 않는다. 예외: 사용자가 과거 작업 확인, 복원, 비교, 특정 archive 경로 확인을 요청한 경우, active `PLAN-*.md` / `CODE_REVIEW-*.md` / `USER_REVIEW.md`가 특정 archive evidence 경로를 명시한 경우, 또는 plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인하는 경우에만 필요한 파일을 좁게 읽는다. split 의존성 확인은 같은 task group의 후보 `complete.log`만 읽을 수 있다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. +- tracked `docs/`는 사람용 최신 가이드와 공개 설명만 둔다. +- 외부 API, 런타임 호출, 프로젝트 간 연동, 요청/응답 스키마 계약을 확인해야 하는 작업은 `agent-contract/index.md` 파일이 있을 때만 세션 1회 읽고, 매칭되는 계약 문서만 읽는다. + +**세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. + +1. `agent-ops/rules/project/rules.md` +2. `agent-ops/rules/private/rules.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` + +# 프로젝트 간 잠금 + +- "이 Milestone은 X가 끝나야 가능하다", "A 전까지 B를 잠근다", "잠금 해제 조건은 X다", "현재 마일스톤은 X 프로젝트 작업 뒤에 진행되어야 한다", "의존성 설정해"는 `update-roadmap`으로 처리한다. + +# 스킬 규칙 + +**아래 경우에 부합되는지 반드시 끝까지 정독해서 읽고, 부합할 경우 `agent-ops/skills/common/router.md`를 작업 최초 1회 읽고 수행한다.** 자동으로 수행하지 않는다. **절대 스킵하지 말고 정독해야한다** +- agent-ops 초기화 +- domain rule 생성 +- skill 생성 +- 테스트 룰 작성/생성/수정, 도메인별/검증 시나리오별 테스트 문서, create-test/update-test +- agent-contract 생성/갱신, 계약 문서 작성/정리, 제공/소비 계약 포인터 관리 +- README 생성 +- 로드맵/마일스톤 생성·갱신 +- SDD 작성/갱신, SDD 필요 여부, SDD gate 확인, SDD 사용자 리뷰, SDD 잠금 해제 +- 로드맵 현지점 / 현재 작업 지점 확인 +- 계획 작성 / plan 생성 +- 코드 리뷰 / review 진행 +- git commit / push +- agent-ops 업데이트 / 진입 파일 재적용 + +# 테스트 규칙 + +**테스트 실행/검증 작업이 포함된 경우, 작업 환경에 맞게 최초 1회 읽고 수행한다. 환경 미지정은 local로 본다.** + +- local: `agent-test/local/rules.md` (없으면 `create-test`) + # 프로젝트 작업 완료 규칙 - 이 프로젝트에서 작업을 하나 완료할 때마다 `agent-ops/bin/bump-version.sh`를 실행해 `agent-ops/.version`을 한 단계 올린다. diff --git a/AGENTS.md b/AGENTS.md index c04484d..b6eabee 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,3 +1,51 @@ +# 공통 규칙 + +**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.** + +- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다. +- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다. +- 코드 변경 전 관련 domain rule을 먼저 확인한다. +- 요청 범위를 넘는 변경을 하지 않는다. +- 불확실하면 단정하지 말고 후보를 제시한다. +- `agent-task/archive/**`는 일반 작업에서 읽지 않는다. 예외: 사용자가 과거 작업 확인, 복원, 비교, 특정 archive 경로 확인을 요청한 경우, active `PLAN-*.md` / `CODE_REVIEW-*.md` / `USER_REVIEW.md`가 특정 archive evidence 경로를 명시한 경우, 또는 plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인하는 경우에만 필요한 파일을 좁게 읽는다. split 의존성 확인은 같은 task group의 후보 `complete.log`만 읽을 수 있다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. +- tracked `docs/`는 사람용 최신 가이드와 공개 설명만 둔다. +- 외부 API, 런타임 호출, 프로젝트 간 연동, 요청/응답 스키마 계약을 확인해야 하는 작업은 `agent-contract/index.md` 파일이 있을 때만 세션 1회 읽고, 매칭되는 계약 문서만 읽는다. + +**세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. + +1. `agent-ops/rules/project/rules.md` +2. `agent-ops/rules/private/rules.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` + +# 프로젝트 간 잠금 + +- "이 Milestone은 X가 끝나야 가능하다", "A 전까지 B를 잠근다", "잠금 해제 조건은 X다", "현재 마일스톤은 X 프로젝트 작업 뒤에 진행되어야 한다", "의존성 설정해"는 `update-roadmap`으로 처리한다. + +# 스킬 규칙 + +**아래 경우에 부합되는지 반드시 끝까지 정독해서 읽고, 부합할 경우 `agent-ops/skills/common/router.md`를 작업 최초 1회 읽고 수행한다.** 자동으로 수행하지 않는다. **절대 스킵하지 말고 정독해야한다** +- agent-ops 초기화 +- domain rule 생성 +- skill 생성 +- 테스트 룰 작성/생성/수정, 도메인별/검증 시나리오별 테스트 문서, create-test/update-test +- agent-contract 생성/갱신, 계약 문서 작성/정리, 제공/소비 계약 포인터 관리 +- README 생성 +- 로드맵/마일스톤 생성·갱신 +- SDD 작성/갱신, SDD 필요 여부, SDD gate 확인, SDD 사용자 리뷰, SDD 잠금 해제 +- 로드맵 현지점 / 현재 작업 지점 확인 +- 계획 작성 / plan 생성 +- 코드 리뷰 / review 진행 +- git commit / push +- agent-ops 업데이트 / 진입 파일 재적용 + +# 테스트 규칙 + +**테스트 실행/검증 작업이 포함된 경우, 작업 환경에 맞게 최초 1회 읽고 수행한다. 환경 미지정은 local로 본다.** + +- local: `agent-test/local/rules.md` (없으면 `create-test`) + # 프로젝트 작업 완료 규칙 - 이 프로젝트에서 작업을 하나 완료할 때마다 `agent-ops/bin/bump-version.sh`를 실행해 `agent-ops/.version`을 한 단계 올린다. diff --git a/CLAUDE.md b/CLAUDE.md index c04484d..b6eabee 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,3 +1,51 @@ +# 공통 규칙 + +**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.** + +- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다. +- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다. +- 코드 변경 전 관련 domain rule을 먼저 확인한다. +- 요청 범위를 넘는 변경을 하지 않는다. +- 불확실하면 단정하지 말고 후보를 제시한다. +- `agent-task/archive/**`는 일반 작업에서 읽지 않는다. 예외: 사용자가 과거 작업 확인, 복원, 비교, 특정 archive 경로 확인을 요청한 경우, active `PLAN-*.md` / `CODE_REVIEW-*.md` / `USER_REVIEW.md`가 특정 archive evidence 경로를 명시한 경우, 또는 plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인하는 경우에만 필요한 파일을 좁게 읽는다. split 의존성 확인은 같은 task group의 후보 `complete.log`만 읽을 수 있다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. +- tracked `docs/`는 사람용 최신 가이드와 공개 설명만 둔다. +- 외부 API, 런타임 호출, 프로젝트 간 연동, 요청/응답 스키마 계약을 확인해야 하는 작업은 `agent-contract/index.md` 파일이 있을 때만 세션 1회 읽고, 매칭되는 계약 문서만 읽는다. + +**세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. + +1. `agent-ops/rules/project/rules.md` +2. `agent-ops/rules/private/rules.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` + +# 프로젝트 간 잠금 + +- "이 Milestone은 X가 끝나야 가능하다", "A 전까지 B를 잠근다", "잠금 해제 조건은 X다", "현재 마일스톤은 X 프로젝트 작업 뒤에 진행되어야 한다", "의존성 설정해"는 `update-roadmap`으로 처리한다. + +# 스킬 규칙 + +**아래 경우에 부합되는지 반드시 끝까지 정독해서 읽고, 부합할 경우 `agent-ops/skills/common/router.md`를 작업 최초 1회 읽고 수행한다.** 자동으로 수행하지 않는다. **절대 스킵하지 말고 정독해야한다** +- agent-ops 초기화 +- domain rule 생성 +- skill 생성 +- 테스트 룰 작성/생성/수정, 도메인별/검증 시나리오별 테스트 문서, create-test/update-test +- agent-contract 생성/갱신, 계약 문서 작성/정리, 제공/소비 계약 포인터 관리 +- README 생성 +- 로드맵/마일스톤 생성·갱신 +- SDD 작성/갱신, SDD 필요 여부, SDD gate 확인, SDD 사용자 리뷰, SDD 잠금 해제 +- 로드맵 현지점 / 현재 작업 지점 확인 +- 계획 작성 / plan 생성 +- 코드 리뷰 / review 진행 +- git commit / push +- agent-ops 업데이트 / 진입 파일 재적용 + +# 테스트 규칙 + +**테스트 실행/검증 작업이 포함된 경우, 작업 환경에 맞게 최초 1회 읽고 수행한다. 환경 미지정은 local로 본다.** + +- local: `agent-test/local/rules.md` (없으면 `create-test`) + # 프로젝트 작업 완료 규칙 - 이 프로젝트에서 작업을 하나 완료할 때마다 `agent-ops/bin/bump-version.sh`를 실행해 `agent-ops/.version`을 한 단계 올린다. diff --git a/GEMINI.md b/GEMINI.md index c04484d..b6eabee 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -1,3 +1,51 @@ +# 공통 규칙 + +**현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.** + +- 기존 구조를 우선한다. 새 파일 생성보다 기존 파일 수정을 우선한다. +- 사용자에게 보이는 최종 답변과 설명은 기본적으로 한국어로 작성한다. +- 코드 변경 전 관련 domain rule을 먼저 확인한다. +- 요청 범위를 넘는 변경을 하지 않는다. +- 불확실하면 단정하지 말고 후보를 제시한다. +- `agent-task/archive/**`는 일반 작업에서 읽지 않는다. 예외: 사용자가 과거 작업 확인, 복원, 비교, 특정 archive 경로 확인을 요청한 경우, active `PLAN-*.md` / `CODE_REVIEW-*.md` / `USER_REVIEW.md`가 특정 archive evidence 경로를 명시한 경우, 또는 plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인하는 경우에만 필요한 파일을 좁게 읽는다. split 의존성 확인은 같은 task group의 후보 `complete.log`만 읽을 수 있다. +- `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. +- agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. +- tracked `docs/`는 사람용 최신 가이드와 공개 설명만 둔다. +- 외부 API, 런타임 호출, 프로젝트 간 연동, 요청/응답 스키마 계약을 확인해야 하는 작업은 `agent-contract/index.md` 파일이 있을 때만 세션 1회 읽고, 매칭되는 계약 문서만 읽는다. + +**세션 최초 1회 아래 파일을 순서대로 반드시 읽는다.** 파일이나 디렉터리가 없는 항목은 건너뛴다. 그외에 스킵은 금지한다. + +1. `agent-ops/rules/project/rules.md` +2. `agent-ops/rules/private/rules.md` +3. `agent-roadmap/` 디렉터리가 있으면 `agent-ops/rules/common/rules-roadmap.md` + +# 프로젝트 간 잠금 + +- "이 Milestone은 X가 끝나야 가능하다", "A 전까지 B를 잠근다", "잠금 해제 조건은 X다", "현재 마일스톤은 X 프로젝트 작업 뒤에 진행되어야 한다", "의존성 설정해"는 `update-roadmap`으로 처리한다. + +# 스킬 규칙 + +**아래 경우에 부합되는지 반드시 끝까지 정독해서 읽고, 부합할 경우 `agent-ops/skills/common/router.md`를 작업 최초 1회 읽고 수행한다.** 자동으로 수행하지 않는다. **절대 스킵하지 말고 정독해야한다** +- agent-ops 초기화 +- domain rule 생성 +- skill 생성 +- 테스트 룰 작성/생성/수정, 도메인별/검증 시나리오별 테스트 문서, create-test/update-test +- agent-contract 생성/갱신, 계약 문서 작성/정리, 제공/소비 계약 포인터 관리 +- README 생성 +- 로드맵/마일스톤 생성·갱신 +- SDD 작성/갱신, SDD 필요 여부, SDD gate 확인, SDD 사용자 리뷰, SDD 잠금 해제 +- 로드맵 현지점 / 현재 작업 지점 확인 +- 계획 작성 / plan 생성 +- 코드 리뷰 / review 진행 +- git commit / push +- agent-ops 업데이트 / 진입 파일 재적용 + +# 테스트 규칙 + +**테스트 실행/검증 작업이 포함된 경우, 작업 환경에 맞게 최초 1회 읽고 수행한다. 환경 미지정은 local로 본다.** + +- local: `agent-test/local/rules.md` (없으면 `create-test`) + # 프로젝트 작업 완료 규칙 - 이 프로젝트에서 작업을 하나 완료할 때마다 `agent-ops/bin/bump-version.sh`를 실행해 `agent-ops/.version`을 한 단계 올린다. diff --git a/README.md b/README.md index 2fd8208..59f7a89 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ agent-roadmap/ 현재 작업 지점 질문은 `analyze-roadmap-position` 스킬이 로컬 `current.md`, `ROADMAP.md`의 Phase 흐름, 활성 Phase의 Milestone 흐름을 읽고 `로드맵 > Phase > Milestone` breadcrumb로 빠르게 표시합니다. 기본 동작에서는 코드, git 상태, diff를 읽지 않습니다. -`agent-roadmap/archive/**`는 완료 또는 폐기되어 현재 작업 후보에서 제외한 과거 Milestone 기록입니다. 일반 작업과 로드맵 분석에서는 읽지 않고, 사용자가 과거 기록 확인이나 복원을 명시적으로 요청한 경우에만 참조합니다. +`agent-task/archive/**`는 완료된 task 산출물이고, `agent-roadmap/archive/**`는 완료 또는 폐기되어 현재 작업 후보에서 제외한 과거 Milestone 기록입니다. 일반 작업과 로드맵 분석에서는 읽지 않고, 사용자가 과거 기록 확인, 복원, 비교를 요청했거나 active plan/review가 특정 archive evidence 경로를 명시한 경우에만 해당 파일을 좁게 참조합니다. ## 설계 철학 @@ -171,7 +171,7 @@ Phase와 Milestone에는 순번을 강제하지 않습니다. 진행 순서는 ` 4. 반복 작업은 공통 스킬 또는 프로젝트 스킬로 정의합니다. 5. 공통 파일 변경은 `.agent-ops-source`가 있는 공통 원본 repo에서 관리하고 `sync-push` / `sync-pull`로 동기화합니다. -초기화와 `.agent-ops-source`가 있는 공통 원본 repo에서 일반 프로젝트로 내려가는 동기화는 `agent-task/archive/**`와 `agent-roadmap/archive/**`를 에이전트가 기본적으로 읽지 않도록 각 도구별 ignore 또는 permission 파일도 함께 보강합니다. 단, `agent-roadmap/archive/**`는 필요 시 링크로 읽을 수 있어야 하므로 hard read/glob deny가 아니라 ignore 또는 watcher ignore 기준으로만 관리합니다. +초기화와 `.agent-ops-source`가 있는 공통 원본 repo에서 일반 프로젝트로 내려가는 동기화는 `agent-task/archive/**`와 `agent-roadmap/archive/**`를 에이전트가 기본적으로 읽지 않도록 각 도구별 ignore 또는 watcher ignore 파일도 함께 보강합니다. 단, 두 archive 모두 필요 시 명시 경로로 읽을 수 있어야 하므로 hard read/glob deny가 아니라 ignore 또는 watcher ignore 기준으로만 관리합니다. ## 동기화 흐름 diff --git a/agent-ops/.version b/agent-ops/.version index d24bae7..1b033d7 100644 --- a/agent-ops/.version +++ b/agent-ops/.version @@ -1 +1 @@ -1.1.140 +1.1.142 diff --git a/agent-ops/GUIDE.md b/agent-ops/GUIDE.md index 079c0f6..5eceb44 100644 --- a/agent-ops/GUIDE.md +++ b/agent-ops/GUIDE.md @@ -98,7 +98,7 @@ SDD는 cross-repo 계약, 외부 provider 쓰기, 상태 머신, idempotency/ret 현재 작업 지점 답변은 `agent-ops/skills/common/_templates/roadmap-position-report-template.md` 형식을 기준으로 작성합니다. -완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Phase/Milestone은 `agent-roadmap/archive/phase//`로 이동합니다. 이때 활성 `ROADMAP.md` 또는 `PHASE.md`에는 archive 링크와 짧은 요약만 남기고, 아카이브 문서는 사용자가 과거 기록 확인이나 복원을 명시적으로 요청한 경우에만 읽습니다. +완료된 task 산출물은 `agent-task/archive/YYYY/MM/` 아래로, 완료 또는 폐기되어 현재 작업 후보에서 제외할 과거 Phase/Milestone은 `agent-roadmap/archive/phase//`로 이동합니다. active plan/review는 후속 작업에 필요한 archive 근거를 자체 섹션으로 복사해야 하며, 아카이브 문서는 사용자가 과거 기록 확인, 복원, 비교를 요청했거나 active plan/review가 특정 archive evidence 경로를 명시한 경우에만 해당 파일을 좁게 읽습니다. --- diff --git a/agent-ops/bin/ai-ignore.sh b/agent-ops/bin/ai-ignore.sh index 964ba95..514dccb 100755 --- a/agent-ops/bin/ai-ignore.sh +++ b/agent-ops/bin/ai-ignore.sh @@ -118,8 +118,6 @@ agent_ops_merge_json_with_jq() { agent_ops_merge_claude_settings() { local file="$1" local filter=' -def append_unique($item): - if index($item) then . else . + [$item] end; def as_array: if type == "array" then . elif . == null then [] else [.] end; def as_object: @@ -129,14 +127,14 @@ def as_object: | .permissions.deny = ( (.permissions.deny | as_array) | map(select(. != "Read(./agent-roadmap/archive/**)")) - | append_unique("Read(./agent-task/archive/**)") + | map(select(. != "Read(./agent-task/archive/**)")) ) ' agent_ops_merge_json_with_jq \ "$file" \ "$filter" \ - "Note: .claude/settings.json exists; add Read(./agent-task/archive/**) and remove Read(./agent-roadmap/archive/**) manually." + "Note: .claude/settings.json exists; remove Read(./agent-task/archive/**) and Read(./agent-roadmap/archive/**) manually." } agent_ops_claude_settings_complete() { @@ -147,14 +145,15 @@ def as_array: (.permissions.deny | as_array) as $deny -| (($deny | index("Read(./agent-task/archive/**)")) != null) +| (($deny | index("Read(./agent-task/archive/**)")) == null) and (($deny | index("Read(./agent-roadmap/archive/**)")) == null) ' if command -v jq >/dev/null 2>&1; then jq -e "$filter" "$file" >/dev/null 2>&1 else - grep -q "agent-task/archive" "$file" + ! grep -qF "Read(./agent-task/archive/**)" "$file" \ + && ! grep -qF "Read(./agent-roadmap/archive/**)" "$file" fi } @@ -170,10 +169,10 @@ def as_object: .permission = ((.permission // {}) | as_object) | .permission.read = ((.permission.read // {}) | as_object) -| .permission.read["agent-task/archive/**"] = "deny" +| del(.permission.read["agent-task/archive/**"]) | del(.permission.read["agent-roadmap/archive/**"]) | .permission.glob = ((.permission.glob // {}) | as_object) -| .permission.glob["agent-task/archive/**"] = "deny" +| del(.permission.glob["agent-task/archive/**"]) | del(.permission.glob["agent-roadmap/archive/**"]) | .watcher = ((.watcher // {}) | as_object) | .watcher.ignore = ( @@ -186,7 +185,7 @@ def as_object: agent_ops_merge_json_with_jq \ "$file" \ "$filter" \ - "Note: opencode.json exists; add agent-task/archive/** read/glob deny, remove agent-roadmap/archive/** read/glob hard deny, and add agent-task/archive/** plus agent-roadmap/archive/** watcher ignore manually." + "Note: opencode.json exists; remove agent-task/archive/** and agent-roadmap/archive/** read/glob hard deny, and add both archive paths to watcher ignore manually." } agent_ops_opencode_config_complete() { @@ -195,8 +194,8 @@ agent_ops_opencode_config_complete() { def as_array: if type == "array" then . elif . == null then [] else [.] end; -(.permission.read["agent-task/archive/**"] == "deny") -and (.permission.glob["agent-task/archive/**"] == "deny") +(.permission.read["agent-task/archive/**"] != "deny") +and (.permission.glob["agent-task/archive/**"] != "deny") and (.permission.read["agent-roadmap/archive/**"] != "deny") and (.permission.glob["agent-roadmap/archive/**"] != "deny") and ((.watcher.ignore | as_array) as $ignore | (($ignore | index("agent-task/archive/**")) != null) and (($ignore | index("agent-roadmap/archive/**")) != null)) @@ -205,7 +204,10 @@ and ((.watcher.ignore | as_array) as $ignore | (($ignore | index("agent-task/arc if command -v jq >/dev/null 2>&1; then jq -e "$filter" "$file" >/dev/null 2>&1 else - grep -q "agent-task/archive" "$file" && grep -q "agent-roadmap/archive" "$file" + grep -qF "agent-task/archive" "$file" \ + && grep -qF "agent-roadmap/archive" "$file" \ + && ! grep -qF "\"agent-task/archive/**\": \"deny\"" "$file" \ + && ! grep -qF "\"agent-roadmap/archive/**\": \"deny\"" "$file" fi } @@ -230,9 +232,7 @@ ensure_agent_ops_ai_ignore_config() { { "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { - "deny": [ - "Read(./agent-task/archive/**)" - ] + "deny": [] } } EOF @@ -244,14 +244,6 @@ EOF cat > "$target_dir/opencode.json" <<'EOF' { "$schema": "https://opencode.ai/config.json", - "permission": { - "read": { - "agent-task/archive/**": "deny" - }, - "glob": { - "agent-task/archive/**": "deny" - } - }, "watcher": { "ignore": [ "agent-task/archive/**", @@ -264,5 +256,5 @@ EOF agent_ops_merge_opencode_config "$target_dir/opencode.json" fi - echo " AI permission 표준 적용: roadmap archive hard deny 제거" + echo " AI permission 표준 적용: archive hard deny 제거, archive ignore 적용" } diff --git a/agent-ops/rules/common/rules.md b/agent-ops/rules/common/rules.md index 94dffdd..64e46a0 100644 --- a/agent-ops/rules/common/rules.md +++ b/agent-ops/rules/common/rules.md @@ -7,7 +7,7 @@ - 코드 변경 전 관련 domain rule을 먼저 확인한다. - 요청 범위를 넘는 변경을 하지 않는다. - 불확실하면 단정하지 말고 후보를 제시한다. -- `agent-task/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다. 예외: plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인할 때는 같은 task group의 후보 `complete.log`만 읽을 수 있다. +- `agent-task/archive/**`는 일반 작업에서 읽지 않는다. 예외: 사용자가 과거 작업 확인, 복원, 비교, 특정 archive 경로 확인을 요청한 경우, active `PLAN-*.md` / `CODE_REVIEW-*.md` / `USER_REVIEW.md`가 특정 archive evidence 경로를 명시한 경우, 또는 plan/code-review 루프의 split subtask 선행 의존성 충족 여부를 확인하는 경우에만 필요한 파일을 좁게 읽는다. split 의존성 확인은 같은 task group의 후보 `complete.log`만 읽을 수 있다. - `agent-roadmap/` 디렉터리가 있는 프로젝트에서도 `agent-roadmap/archive/**`는 일반 작업에서 읽지 않는다. 로드맵 과거 완료 내용, 완료 근거, 복원, 비교가 필요한 경우에만 `agent-ops/rules/common/rules-roadmap.md`의 archive 접근 규칙을 따른다. - agent-ops 구조, 규칙, 스킬, 로드맵, 런타임 책임 경계를 설계하거나 수정할 때만 `agent-ops/rules/common/philosophy.md`를 읽는다. - tracked `docs/`는 사람용 최신 가이드와 공개 설명만 둔다. diff --git a/agent-ops/skills/common/code-review/SKILL.md b/agent-ops/skills/common/code-review/SKILL.md index 90fff3b..48f8291 100644 --- a/agent-ops/skills/common/code-review/SKILL.md +++ b/agent-ops/skills/common/code-review/SKILL.md @@ -243,6 +243,8 @@ If the user-review gate does not trigger, write new routed plan/review files usi - Choose lane/grade again; preserve the prior route when it was adequate. Raise `local-GNN` for explicit, deterministic, review-detectable follow-ups, but move `local -> cloud` when the failure exposes reasoning, risk, evidence, or context-volume gaps that local review should not own. - If the finding is only missing or untrusted verification evidence that an appropriate follow-up lane can produce by rerunning commands or collecting artifacts, do not write `USER_REVIEW.md` solely for that reason. Write a follow-up plan that reruns the exact commands in an appropriate lane and records actual stdout/stderr. - If follow-up verification involves mobile/UI hangs, timeouts, or no progress for 2 minutes, stop blind retries; require focused rerun output plus screenshot/window/UI-tree evidence path, or the exact reason capture is impossible. +- Write an `Archive Evidence Snapshot` section in every WARN/FAIL follow-up plan. Copy enough prior-loop evidence from the archived plan/review logs for the next implementer to act without rereading archive by default: current archived plan/review log paths, verdict, Required/Suggested/Nit summary, affected files, verification evidence, and any roadmap/spec carryover. If exact prior context is still required, cite the specific archive file paths allowed to read; do not instruct the implementer to search `agent-task/archive/**` broadly. +- Copy the follow-up plan's `Archive Evidence Snapshot` section exactly into the follow-up review stub. - Before choosing the follow-up route, apply this escalation gate: - If the archived plan was `local-*` and the verdict is `FAIL` for correctness, completeness, test coverage, or verification trust, keep the follow-up on `local` with a higher grade when the issue is explicit, deterministic, and review-detectable; move to `cloud` only when the failure shows local capability or evidence trust is likely insufficient. - If the follow-up work is terminal-agent work that cannot be reduced to deterministic commands and evidence, use `cloud-G07` or higher. @@ -282,6 +284,7 @@ task={task_name}, plan={N}, tag={TAG} {copy the follow-up plan's Roadmap Targets section exactly if present; omit this block if the follow-up plan has no Roadmap Targets} {copy the follow-up plan's Spec Targets section exactly if present; omit this block if the follow-up plan has no Spec Targets} +{copy the follow-up plan's Archive Evidence Snapshot section exactly if present; omit this block if the follow-up plan has no Archive Evidence Snapshot} ## 이 파일을 읽는 리뷰 에이전트에게 @@ -388,6 +391,7 @@ Sections and their ownership: | 헤더 주석, 개요(date/task/plan/tag), 리뷰 에이전트 지시 | 스텁 생성 시 고정 | 구현 에이전트가 수정하거나 실행하지 않음 | | Roadmap Targets | follow-up plan에서 복사해 스텁 생성 시 고정 | 구현 에이전트가 수정하지 않음; PASS 시 code-review가 `complete.log`의 `Roadmap Completion`으로 복사 | | Spec Targets | follow-up plan에서 복사해 스텁 생성 시 고정 | 구현 에이전트가 수정하지 않음; PASS 시 code-review가 `complete.log`의 `Spec Completion`으로 복사 | +| Archive Evidence Snapshot | follow-up plan에서 복사해 스텁 생성 시 고정 | 구현 에이전트의 기본 이전 루프 컨텍스트; 추가 확인이 필요할 때 여기에 명시된 archive 파일만 좁게 읽음 | | 구현 항목별 완료 여부 (항목명) | 스텁 생성 시 고정 | `[ ]` → `[x]` 체크만 구현 에이전트가 수행 | | 구현 체크리스트 (항목 텍스트/순서) | follow-up plan에서 복사해 스텁 생성 시 고정 | 구현 에이전트가 `[ ]` → `[x]` 체크만 수행; 마지막 체크박스는 저장 전 필수 | | 코드리뷰 전용 체크리스트 | Review agent only | Implementing agent must not modify or check this section | @@ -454,6 +458,7 @@ Report Required/Suggested counts, archive names, the final task archive path for - PASS without `Roadmap Targets`: `complete.log` omits `Roadmap Completion` and reported metadata says `roadmap-completion=none`. - PASS split: empty active parent `agent-task/{task_group}/` removed after the subtask move; non-empty parent left in place. - WARN/FAIL without user-review gate: new active `PLAN-{build_lane}-GNN.md` and `CODE_REVIEW-{review_lane}-GNN.md` created with matching headers and matching `구현 체크리스트`; no `complete.log`. +- WARN/FAIL follow-up: new active plan and review stub contain identical `Archive Evidence Snapshot` sections with prior archived plan/review log paths, verdict, issue summary, affected files, verification evidence, and specific archive paths allowed for narrow reread when needed. - Follow-up review stubs include the `사용자 리뷰 요청` section from `agent-ops/skills/common/_templates/implementation-user-review-request-section.md` and forbid direct user prompts during implementation. - USER_REVIEW: `USER_REVIEW.md` exists from template, no active `PLAN-*.md` or `CODE_REVIEW-*.md` remains, and no `complete.log` was written. - Implementation-requested USER_REVIEW: archived review log preserves the filled `사용자 리뷰 요청` evidence and the generated `USER_REVIEW.md` records the exact user decision needed. diff --git a/agent-ops/skills/common/init-agent-ops/SKILL.md b/agent-ops/skills/common/init-agent-ops/SKILL.md index 03c0b78..264a2a4 100644 --- a/agent-ops/skills/common/init-agent-ops/SKILL.md +++ b/agent-ops/skills/common/init-agent-ops/SKILL.md @@ -79,7 +79,7 @@ description: 프로젝트 상태를 판별하고 agent-ops 기본 스캐폴드 | `agent-test/local/-smoke.md` | domain rule 생성 후 각 도메인별 기본 smoke 테스트 뼈대로 생성 | | `.gitignore`에 `agent-test/local/`, `agent-test/runs/` 추가 | `init-agent-ops.sh`가 local 테스트 환경/로그를 git 추적 제외 | | `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore` | 사용자 항목은 보존하고 Agent-Ops 관리 block에 `agent-task/archive/**`, `agent-roadmap/archive/**` 추가 | -| `.claude/settings.json`, `opencode.json` | `agent-task/archive/**` 읽기/검색 제외 설정을 생성 또는 병합한다. `agent-roadmap/archive/**`는 필요 시 링크로 읽을 수 있어야 하므로 hard read/glob deny에서 제거한다 | +| `.claude/settings.json`, `opencode.json` | archive hard read/glob deny를 제거하고, 필요 시 명시 경로로 읽을 수 있게 둔다. `opencode.json`은 watcher ignore에 `agent-task/archive/**`, `agent-roadmap/archive/**`를 둘 수 있다 | 에이전트별 파일명: @@ -187,9 +187,9 @@ common/rules.md와 내용이 중복되지 않도록 한다. 3. **AI ignore / permission 기본 설정** - `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에는 사용자 항목을 건드리지 않고 Agent-Ops 관리 block만 추가하거나 교체한다 - Agent-Ops 관리 block에는 `agent-task/archive/**`와 `agent-roadmap/archive/**`를 넣는다 - - `.claude/settings.json`, `opencode.json`이 없으면 `agent-task/archive/**` 읽기/검색 제외 설정을 생성하고, 있으면 가능한 경우 기존 설정을 보존하며 필요한 제외 설정만 병합한다 - - `agent-roadmap/archive/**`는 일반 작업에서 읽지 않도록 AI ignore와 로드맵 규칙으로 제한하되, `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny에는 두지 않는다 - - 기존 `.claude/settings.json`이나 `opencode.json`에 `agent-roadmap/archive/**` hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다 + - `.claude/settings.json`, `opencode.json`이 없으면 archive hard read/glob deny 없이 생성하고, 있으면 가능한 경우 기존 설정을 보존하며 archive hard read/glob deny를 제거한다 + - archive는 일반 작업에서 읽지 않도록 AI ignore, watcher ignore, 공통 규칙으로 제한하되, `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny에는 두지 않는다 + - 기존 `.claude/settings.json`이나 `opencode.json`에 archive hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다 - 대상 루트에 `.agent-ops-source`가 있으면 AI ignore / permission 파일은 보강하지 않는다 - `agent-task/archive/**`와 `agent-roadmap/archive/**` ignore 항목은 `.gitignore`에 추가하지 않는다 - `.gitignore`에는 Agent-Ops 관리 block으로 `!agent-task/`, `!agent-task/**/`, `!agent-task/**/*.md`, `!agent-task/**/*.log`, `agent-roadmap/current.md`만 추가하거나 갱신한다 @@ -262,9 +262,8 @@ common/rules.md와 내용이 중복되지 않도록 한다. - [ ] `agent-test/local/rules.md`에 생성된 테스트 profile 라우팅이 연결되었는가 - [ ] `.gitignore`에 `agent-test/local/`과 `agent-test/runs/`가 추가되어 있는가 - [ ] `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-roadmap/archive/**`가 포함되어 있는가 -- [ ] `.claude/settings.json`, `opencode.json`에 `agent-task/archive/**` 제외 설정이 있거나, 병합 불가 시 수동 병합 안내를 출력했는가 -- [ ] `.claude/settings.json`, `opencode.json`에 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 -- [ ] 기존 `agent-roadmap/archive/**` hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 +- [ ] `.claude/settings.json`, `opencode.json`에 `agent-task/archive/**` 또는 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 +- [ ] 기존 archive hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 - [ ] `.gitignore`에 `agent-task/archive/**` 또는 `agent-roadmap/archive/**` ignore 항목을 추가하지 않았는가 - 검증 실패 시: 누락된 파일/항목을 사용자에게 알리고 해당 부분만 보완한다 diff --git a/agent-ops/skills/common/plan/SKILL.md b/agent-ops/skills/common/plan/SKILL.md index 7e02df2..02f887b 100644 --- a/agent-ops/skills/common/plan/SKILL.md +++ b/agent-ops/skills/common/plan/SKILL.md @@ -234,6 +234,7 @@ Required sections: - `이 파일을 읽는 구현 에이전트에게`: warn that filling implementation-owned `CODE_REVIEW-*-G??.md` sections is mandatory. Tell the implementer to run verification, fill actual notes/output, keep active files in place, and report ready for review; finalization is code-review-skill only. Also state that if implementation is blocked by a user-only decision, user-owned external environment prerequisite, or scope conflict, the implementer must fill the review stub's `사용자 리뷰 요청` section with exact evidence and stop for code-review; the implementer must not ask the user directly, present chat choices, call `request_user_input`, create `USER_REVIEW.md`, archive logs, or write `complete.log`. State that evidence gaps a follow-up agent can close by rerunning commands or collecting artifacts are not user-review requests by themselves. - `배경`: 2-4 sentences explaining why the work is needed. - `사용자 리뷰 요청 흐름`: state that implementation-time blockers are recorded in the active review stub's `사용자 리뷰 요청` section, copied from `agent-ops/skills/common/_templates/implementation-user-review-request-section.md`; direct user prompts during implementation are forbidden, and code-review owns validation plus the actual `USER_REVIEW.md` file write. +- `Archive Evidence Snapshot`: include this section only when the plan resumes from `USER_REVIEW.md`, a prior archived review, or any archive evidence. Omit it for first-pass plans with no archive evidence. The section must contain only the archive facts needed to implement without rereading archive by default: prior task/archive paths, verdict, Required/Suggested/Nit summary, affected files, verification evidence, and any roadmap/spec carryover. If exact prior context is still required, cite the specific archive file paths allowed to read; do not ask the implementer to search `agent-task/archive/**` broadly. - `Roadmap Targets`: include this section only when the plan is intended to complete one or more existing Milestone 기능 Task ids. Omit the section entirely for non-roadmap work or Milestone-adjacent work that should not check a Task on PASS. Format exactly: ```markdown @@ -337,6 +338,7 @@ task={task_name}, plan={N}, tag={TAG} {copy the plan's Roadmap Targets section exactly if present; omit this block if the plan has no Roadmap Targets} {copy the plan's Spec Targets section exactly if present; omit this block if the plan has no Spec Targets} +{copy the plan's Archive Evidence Snapshot section exactly if present; omit this block if the plan has no Archive Evidence Snapshot} ## 이 파일을 읽는 리뷰 에이전트에게 @@ -443,6 +445,7 @@ Sections and their ownership: | Header comment, 개요, 리뷰 에이전트 지시 | Fixed at stub creation | Implementing agent must not modify or execute these (archive, complete.log, and task-directory archive move are review-agent only) | | Roadmap Targets | Fixed at stub creation from plan when present | Implementing agent must not modify; code-review copies it into `complete.log` as `Roadmap Completion` only on PASS | | Spec Targets | Fixed at stub creation from plan when present | Implementing agent must not modify; code-review copies it into `complete.log` as `Spec Completion` only on PASS | +| Archive Evidence Snapshot | Fixed at stub creation from plan when present | Implementing agent uses it as default prior-loop context; read only the specific archive files cited there when more detail is required | | 구현 항목별 완료 여부 (item names) | Fixed at stub creation | Implementing agent checks `[ ]` → `[x]` only | | 구현 체크리스트 (item text/order) | Fixed at stub creation from plan | Implementing agent checks `[ ]` → `[x]` only; final checkbox is mandatory before saving | | 코드리뷰 전용 체크리스트 | Review agent only | Implementing agent must not modify or check this section | @@ -475,6 +478,7 @@ Sections and their ownership: - If `Roadmap Targets` exists in the plan, the review stub contains the identical section. If it does not exist in the plan, the review stub omits it too. - If the selected Milestone has `SDD: 필요`, the SDD gate was checked before writing files. Missing or incomplete SDD was first routed through the `roadmap-sdd` pre-plan flow; active `USER_REVIEW.md`, non-approved SDD, or locked SDD blocks plan creation. - `Spec Targets` exists only when the selected SDD is approved and the plan claims completion for explicit Acceptance Scenario ids. If `Spec Targets` exists in the plan, the review stub contains the identical section. +- If the plan is a follow-up or resumes from prior archive evidence, it has `Archive Evidence Snapshot` and the review stub contains the identical section. - `분석 결과 > 테스트 환경 규칙` records the selected test env, env rules read/missing/structural-blank state, matched profiles read, and any fallback verification source. - Dependent split plans record predecessor completion using active sibling `complete.log` or matching archived `complete.log`; ambiguous archive matches are not guessed. - Every plan item has problem, solution, checklist, test decision, and intermediate verification. diff --git a/agent-ops/skills/common/sync-pull/SKILL.md b/agent-ops/skills/common/sync-pull/SKILL.md index 920a731..3a3de99 100644 --- a/agent-ops/skills/common/sync-pull/SKILL.md +++ b/agent-ops/skills/common/sync-pull/SKILL.md @@ -34,8 +34,8 @@ agent-ops/bin/sync.sh --pull - [ ] `.gitignore`에 Agent-Ops 관리 gitignore block이 있고 `!agent-task/`, `!agent-task/**/`, `!agent-task/**/*.md`, `!agent-task/**/*.log`, `agent-roadmap/current.md`가 포함되어 있는가 - [ ] `agent-roadmap/current.md`가 있으면 파일은 보존되고 git 추적 대상에서는 제거됐는가 - [ ] `.geminiignore`, `.aiexclude`, `.cursorignore`, `.clineignore`에 Agent-Ops 관리 block이 있고 그 안에 `agent-task/archive/**`와 `agent-roadmap/archive/**`가 포함되어 있는가 -- [ ] `.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 표준에 맞게 제거했는가 +- [ ] `.claude/settings.json`, `opencode.json`에 `agent-task/archive/**` 또는 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 +- [ ] 현재 프로젝트에 기존 archive hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 - [ ] agentic-framework의 `.gitignore`와 AI ignore / permission 파일은 수정되거나 stage되지 않았는가 ## 금지 사항 diff --git a/agent-ops/skills/common/sync-push/SKILL.md b/agent-ops/skills/common/sync-push/SKILL.md index 3acebf7..c10a01a 100644 --- a/agent-ops/skills/common/sync-push/SKILL.md +++ b/agent-ops/skills/common/sync-push/SKILL.md @@ -85,9 +85,9 @@ agent-roadmap/archive/** ``` - 관리 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 표준에 맞게 제거한다. +- `.claude/settings.json`과 `opencode.json`은 기존 사용자 설정을 보존하고 `agent-task/archive/**`와 `agent-roadmap/archive/**` hard read/glob deny를 제거한다. +- archive는 기본 컨텍스트에서 제외하되 필요한 경우 명시 경로로 읽을 수 있어야 하므로 `.claude/settings.json`이나 `opencode.json`의 hard read/glob deny로 두지 않는다. +- 대상 프로젝트에 기존 archive hard read/glob deny가 있으면 init-agent-ops 표준에 맞게 제거한다. - `opencode.json`의 watcher ignore에는 `agent-task/archive/**`와 `agent-roadmap/archive/**`를 둘 수 있다. ```bash @@ -105,8 +105,8 @@ agent-ops/bin/sync.sh [target] - [ ] 공통 원본 repo에서 대상 프로젝트로 push한 경우, `.gitignore`에 Agent-Ops 관리 gitignore block이 있고 `!agent-task/`, `!agent-task/**/`, `!agent-task/**/*.md`, `!agent-task/**/*.log`, `agent-roadmap/current.md`가 포함되어 있는가 - [ ] 대상 프로젝트에서 `agent-roadmap/current.md`가 있으면 파일은 보존되고 git 추적 대상에서는 제거됐는가 - [ ] 공통 원본 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한 경우, `.claude/settings.json`과 `opencode.json`에 `agent-task/archive/**` 또는 `agent-roadmap/archive/**` hard read/glob deny가 남아 있지 않은가 +- [ ] 대상 프로젝트에 기존 archive hard deny가 있으면 init-agent-ops 표준에 맞게 제거했는가 - [ ] 일반 프로젝트에서 공통 원본 repo로 push한 경우, `.gitignore`와 AI ignore / permission 파일이 공통 원본 repo에 유입되지 않았는가 - [ ] 대상 repo에 commit/push 된 path가 방향별 허용 범위로 제한되었는가