From 66ccb526b1c80ac41f92f22dc8bfcf7d3531ecf3 Mon Sep 17 00:00:00 2001 From: JeongUk Park Date: Sun, 26 Jul 2026 11:23:30 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=EC=A1=B0=EB=A7=9D=20=EC=A7=80?= =?UTF-8?q?=EB=8F=84=EB=A5=BC=20=ED=95=A9=EC=84=B1=20=EB=8C=80=EC=83=81?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++--- policies/core.yaml | 4 ++-- rutter.yaml | 4 +++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 141e80f..c15a41f 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ | 구역 | 내용 | |------|------| | `rutter.yaml` | 패키지 manifest — 이름·버전·scope·values·adapters 선언 | -| `docs/conventions/` | 항로 규칙 — 커밋 메시지, 브랜치 전략(GitHub Flow), 코드 리뷰, 커뮤니케이션 언어 등 조직 공통 규약 | -| `docs/maps/` | 연안 지도 — 프로젝트 맵, 저장소 인덱스, 아키텍처 개요 등 조직을 조망하는 문서 | +| `docs/conventions/` | 항로 규칙 — 커밋 메시지, 브랜치 전략(GitHub Flow), 코드 리뷰, 커뮤니케이션 언어 등 조직 공통 규약. **Pilot이 각 저장소에 합성해 내려보내는 대상** | +| `docs/maps/` | 연안 지도 — 프로젝트 맵, 저장소 인덱스 등 조직을 조망하는 참조 문서. 개별 저장소 작업에 필요한 규약이 아니므로 **합성 대상이 아니며, 이 저장소에서 직접 읽는다** | | `policies/` | 기계 검증 가능한 정책(PolicySet) — rule id·level·statement·rationale·checks | | `defaults.yaml` | 패키지 기본 values — 프로젝트별 values가 덮어쓴다 | | `CLAUDE.md` | AI 승무원의 진입점 — AI 에이전트가 조직 저장소에서 작업할 때 따라야 할 지침의 시작점 | @@ -24,7 +24,8 @@ ## 사용법 - **사람**: 조직에서 작업을 시작하기 전 `docs/conventions/`를 읽고, 길을 잃으면 `docs/maps/`를 펴세요 -- **AI 에이전트**: 각 저장소의 `CLAUDE.md`가 이 저장소의 해당 문서를 참조합니다. 규약 충돌 시 개별 저장소의 지침이 우선합니다 +- **AI 에이전트**: `pilot apply`가 `docs/conventions/`와 `policies/`를 각 저장소의 `CLAUDE.md`·`AGENTS.md`로 합성해 내려보냅니다. 규약 충돌 시 개별 저장소의 지침이 우선합니다 +- **조망 지도(`docs/maps/`)** 는 각 저장소로 내려보내지 않습니다 — 개별 저장소 작업에 필요한 규약이 아니라 조직 전체를 보는 참조 지식이라, 필요할 때 이 저장소에서 읽습니다 ## 상태 diff --git a/policies/core.yaml b/policies/core.yaml index 08c0642..14414d7 100644 --- a/policies/core.yaml +++ b/policies/core.yaml @@ -27,5 +27,5 @@ rules: - id: maps.update-first level: warn category: documentation - statement: "조직 구조가 바뀌면 docs/maps의 지도를 먼저 갱신한다." - rationale: "낡은 지도는 좌초를 부른다 — 지도가 현행을 반영해야 나머지 문서와 자동화가 신뢰를 얻는다." + statement: "조직 구조가 바뀌면(저장소 추가·폐지·성격 변경) rutter의 docs/maps 지도를 먼저 갱신한다." + rationale: "낡은 지도는 좌초를 부른다 — 지도가 현행을 반영해야 나머지 문서와 자동화가 신뢰를 얻는다. 지도 자체는 rutter 저장소에서 관리하며 각 저장소로 내려보내지 않는다." diff --git a/rutter.yaml b/rutter.yaml index ee3757f..2ed27ce 100644 --- a/rutter.yaml +++ b/rutter.yaml @@ -4,8 +4,10 @@ scope: organization type: application docs: + # conventions만 에이전트 표면(CLAUDE.md·AGENTS.md)에 합성한다. + # docs/maps(조직 조망 지도)는 개별 저장소 작업에 필요한 규약이 아니라 참조 지식이므로 + # 합성 대상에서 제외한다 — 지도는 이 저장소에서 직접 읽는다. conventions: docs/conventions - maps: docs/maps policies: policies defaults: defaults.yaml From 5d13ffa69b5f46351e9ea9a49355badf2d236a30 Mon Sep 17 00:00:00 2001 From: JeongUk Park Date: Tue, 28 Jul 2026 20:27:59 +0900 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20docs=EB=A5=BC=20allowlist=20?= =?UTF-8?q?=EB=B0=A9=EC=8B=9D=EC=9C=BC=EB=A1=9C=20=EC=B0=A8=EB=8B=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 35c0dd5..e598666 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,12 @@ !/rutter.yaml !/CLAUDE.md !/defaults.yaml +# docs/ 도 같은 원칙 — 통째로 무시하고 공개할 문서 디렉터리만 선택적으로 허용한다. +# (세션 의도 기록 등 로컬 전용 산출물이 공용 지침서에 새지 않도록. docs/conventions/shipshape.md 참조) !/docs/ +/docs/* +!/docs/conventions/ +!/docs/maps/ !/policies/ !/.github/ !/commitlint.config.mjs