@AGENTS.md
no_std Rust 로 쓰인 JVM 구현체다. 에이전트의 일은 JVM·클래스파일 파서·Java 표준 라이브러리의
정확성을 올리는 것 — 라이브러리 코드의 패닉을 Result<T>/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 오발행 사고).
- 클라우드 표면(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 검토다.
- ★한계(자기신고형 — 과장 금지): 세션이 스스로
- ★**
.github/workflows/rust.yml이 «치는 그대로» 전부 green** — 축약하지 말고 이 블록을 그대로 쳐라:★★이 블록은 이제 «기계가 지킨다» —cargo fmt --all -- --check cargo clippy --all -- -D warnings cargo +beta clippy --all -- -D warnings cargo clippy --workspace --exclude test-utils --target wasm32-unknown-unknown -- -D warnings cargo test --all python3 scripts/check-worklog-json.py python3 scripts/check-dod-ci-parity.pyscripts/check-dod-ci-parity.py(CI jobdod_parity)가 이 코드블록과rust.yml을 «각각 파싱해» 대칭차를 낸다. 어긋나면 그 자리에서 red 다. ⇒ ★줄 수를 세어 문장에 적지 마라(이 리니지가 그 수로 다섯 번 낡았다) — 세는 것은 검사기 몫이다:python3 scripts/check-dod-ci-parity.py가 「명령 N개 · toolchain N개로 «둘 다 일치»」를 찍는다. ★그 검사기가 «못 보는 것»도 그 자리에서 함께 찍는다(조건부 step = OS 축) — 침묵하지 않는다. ★★**+beta줄을 빼지 마라 — CI 는 이 검사들을 «6셀»(toolchain 2 × OS 3)로 친다.**rust.yml의strategy.matrix.rust = [stable, beta]가 그 차원이고, 이 repo 엔rust-toolchain.toml이 없어 맨cargo는 stable 1개로만 돈다. ⇒ ★toolchain 축을 안 적으면 「rust.yml 이 치는 그대로」가 «거짓»이 된다. ★실측 근거(2026-09-04):#[allow(clippy::double_must_use)]9곳을 전건 지우면 ★stable clippy 는 0인데 beta clippy 는 RED(★rc=101 ·double_must_use진단 6건 — 전건jvm/src/jvm.rs:140·404·438·779·791·1016· cargo 요약 줄이 「due to 6 previous errors」라고 말한다) ⇒ ★그 자산의 그물은 «beta 축»에만 있다. ★★축약본도 쓰지 마라 — 그것이 2026-09-04 에 실제로 구멍을 만들었다. 종전 문안은cargo fmt --check·cargo clippy·cargo test로 줄여 적어 ★wasm32 줄이 통째로 빠져 있었고, 그 줄이 ★**--exclude <크레이트 이름>이 사는 «유일한» 자리다. ⇒ upstream 이test_utils를test-utils로 개명(S8)했을 때 로컬에서는 어떤 명령으로도 드러나지 않고 CI 에서만 빨개졌다. ⇒ ★CI 가 검사를 늘리거나 «매트릭스 차원»을 바꾸면 이 블록도 «같이» 고쳐라**(아래 재개 조건이 둘 다 센다). ※OS 축(3종)은 로컬에서 재현할 수 없다 — ★그 차원만은 CI 가 유일한 그물이고, 그것은 «알고 두는» 값이다. - 착수·완료마다 STATE.md 의 "진행중/완료/다음" 을 갱신하고, 완료 시 REPORT.md 상단에
[YYYY-MM-DD]요약 3줄(무엇을·왜·사용자 영향) + 후속 추천을 append 한다. - ★후속 추천을 적었으면
docs/worklog/YYYY-MM-DD-<slug>.{md,json}한 쌍도 남긴다 —.json이 없으면 그 추천은 cockpit 「후속 작업 추천」 패널에 구조적으로 도달하지 못한다 (규약·되돌릴 수 =AGENTS.md§Round Worklog). - ★작업 티켓의 완주 지점 = PR 오픈이다. 머지는 게이트② 검수자가 approve 와 같은 턴에 집행한다(
<id>-merge는 예외 경로) (main직push 0 —AGENTS.md§Git Workflow).