From a5aa91ad7a1ac965e065e65f382ae747b5cc70d3 Mon Sep 17 00:00:00 2001 From: jun0 Date: Wed, 5 Aug 2026 16:55:39 +0900 Subject: [PATCH 1/2] [rustjava-claude-md-prune] docs: prune autonomous-sop, add limits + Goal/Constraints/DoD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 감사(audit-agent-instructions-2026-08-05) §3-2·§3-3·§6 이행. 지침 파일만 변경 — 소스·빌드·CI 무접촉. C1 autonomous-sop 정리: 4 repo 동일 사본 중 현세대 잉여 1줄 삭제(세션 시작 시 STATE.md·git status 읽기 / 진행분 자율 이어받기 — 둘 다 harness·상위 헌장 기본값). "STATE.md 없으면 생성한다"도 함께 제거 — STATE.md·REPORT.md 는 실재하고 최근 3커밋에서 갱신돼 왔으므로 사문(死文)이다. 나머지 4줄(STATE 갱신·REPORT append·클라우드 금지· 체크포인트/force-push 금지)은 repo 고유 제약이라 보존. C2 「티켓 없는 착수 금지」: 문장은 유지하고 qts 판본의 한계 서술을 이식 — 이 규율은 자기신고형이고 티켓 파일에 provenance 가 없어 검증기로 막을 수 없다(1차 방어이며 최종 방어는 diff 검토). 홈 헌장 포인터로의 대체는 orch 레인 동결 해제 후 후속 몫. C3 구조: Goal/Constraints/DoD 골격 도입. Goal 에 연방 경계 2건을 명시 — RustJava 는 wie 의 비벤더 upstream 의존성이라 플랫폼이 직접 손대지 않는다(정본 = otterpebble .claude/rules/repo-boundaries.md #4), 그리고 이 repo 는 dlunch/RustJava 의 포크라 upstream 발신은 티켓 명시 허가 시에만 하고 gh 호출에 -R Jun025/RustJava 를 붙인다 (2026-07-22 오발행 사고). 둘 다 지금까지 지침에 없어 티켓마다 재기술돼 왔다. AGENTS.md 는 무접촉 — §Git Workflow 의 `-D` 강제 이유 보존. 연방 고유 내용을 CLAUDE.md 쪽에만 둔 것은 의도적이다: AGENTS.md 는 upstream 도 유지·편집하는 파일이라 (upstream 이 #180 에서 §Testing Boundaries 를 추가했다) 로컬 내용을 넣으면 동기화 충돌면이 넓어진다. 검증: cargo fmt --check rc=0 · cargo clippy --workspace --all-targets rc=0(경고 0) · cargo test --workspace rc=0(148 passed, 0 failed). Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index f661da52..d3fd3974 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,16 +1,29 @@ @AGENTS.md - -## 자율운영·보고 SOP -- 시작 시 STATE.md와 `git status`/`git log --oneline -5`를 읽고, 진행 중이던 작업을 확인 없이 이어서 완료한다. STATE.md 없으면 생성한다. -- 태스크 착수/완료마다 STATE.md의 "진행중/완료/다음"을 갱신한다. -- 완료 시 REPORT.md 상단에 [YYYY-MM-DD] 요약 3줄(무엇을·왜·사용자 영향) + 후속 추천을 append 한다. +## Goal +`no_std` Rust 로 쓰인 **JVM 구현체**다. 에이전트의 일은 JVM·클래스파일 파서·Java 표준 라이브러리의 +**정확성**을 올리는 것 — 라이브러리 코드의 패닉을 `Result`/Java 예외로 바꾸고 회귀를 픽스처로 잠근다. +- ★**연방 내 위치**: RustJava 는 **wie(에뮬레이터)의 비벤더 upstream 의존성**이고 플랫폼(otterpebble)은 + 여기를 직접 손대지 않는다 — 여기서 고칠 것은 **JVM 런타임 내부뿐**이다. + (정본 = otterpebble `.claude/rules/repo-boundaries.md` #4) +- ★**포크다**(`origin`=`Jun025/RustJava` · `upstream`=`dlunch/RustJava`). upstream 발신(PR·이슈·코멘트· + push)은 **티켓이 명시 허가할 때만** 하고 기본은 조회뿐이며, `gh` 호출엔 `-R Jun025/RustJava` 를 + 붙인다(2026-07-22 upstream 오발행 사고). + +## Constraints - 클라우드 표면(claude --remote, Cowork, 앱 채팅/Projects) 사용 금지. 로컬전용. - 위험 변경(대량 삭제·스키마 변경·배포) 전 git 체크포인트 커밋을 먼저 남긴다. force-push/rebase 금지. - - -## 착수 규율 - ★**티켓 없는 착수 금지**(2026-07-26 dispatch-guardrail-scope-fix-002): 착수 지시에 대응하는 **티켓 파일이 `~/orchestrator/tasks/` 에 없으면 편집·커밋·push 하지 않는다.** 읽기전용 조사까지만 하고 **총괄에게 확인을 구한다.** (dispatcher 를 거치지 않고 생성된 세션 — `Dispatch(Cowork)` 등 — 의 **원장 밖 변경 방지**.) + - ★**한계(자기신고형 — 과장 금지)**: 세션이 스스로 `tasks/` 에 티켓을 만들면 조건을 충족시킬 수 + 있고, **티켓 파일에 provenance 가 없어**(발권 주체 필드도, `bin/queue-lint` 의 출신 검사도 없다) + **검증기로 막을 수 없다.** ⇒ 이 조항은 **1차 방어**이며 **최종 방어는 diff 검토**다. + +## Definition of Done +- `cargo fmt --check` · `cargo clippy` · `cargo test` 전부 green(명령 상세 = `AGENTS.md`). +- 착수·완료마다 STATE.md 의 "진행중/완료/다음" 을 갱신하고, 완료 시 REPORT.md 상단에 + `[YYYY-MM-DD]` 요약 3줄(무엇을·왜·사용자 영향) + 후속 추천을 append 한다. +- ★작업 티켓의 **완주 지점 = PR 오픈**이다. 머지는 게이트② approve 후 별도 `-merge` 티켓 몫 + (`main` 직push 0 — `AGENTS.md` §Git Workflow). From 342ba8e7f0292dccd6c3d6181a8e3c22189a0250 Mon Sep 17 00:00:00 2001 From: jun0 Date: Wed, 19 Aug 2026 04:05:55 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[rustjava-claude-md-prune-fix]=20docs:=20?= =?UTF-8?q?=EB=A8=B8=EC=A7=80=20=EC=A7=91=ED=96=89=20=EC=A3=BC=EC=B2=B4=20?= =?UTF-8?q?1=EC=A4=84=20=EC=A0=95=EC=A0=95=20(=EA=B2=8C=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=E2=91=A1=20=EA=B2=80=EC=88=98=EC=9E=90=20=EB=8F=99=ED=84=B4=20?= =?UTF-8?q?=EC=A7=91=ED=96=89)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index d3fd3974..c6e479d8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -25,5 +25,5 @@ - `cargo fmt --check` · `cargo clippy` · `cargo test` 전부 green(명령 상세 = `AGENTS.md`). - 착수·완료마다 STATE.md 의 "진행중/완료/다음" 을 갱신하고, 완료 시 REPORT.md 상단에 `[YYYY-MM-DD]` 요약 3줄(무엇을·왜·사용자 영향) + 후속 추천을 append 한다. -- ★작업 티켓의 **완주 지점 = PR 오픈**이다. 머지는 게이트② approve 후 별도 `-merge` 티켓 몫 +- ★작업 티켓의 **완주 지점 = PR 오픈**이다. 머지는 게이트② 검수자가 approve 와 같은 턴에 집행한다(`-merge` 는 예외 경로) (`main` 직push 0 — `AGENTS.md` §Git Workflow).