CLAUDE.md@.claude · diff
git:20260913.ef109ce to git:20260913.2b1286f
10 added, 29 removed. Audit A to A.
# Uzys-agent-harness
전역 `~/.claude/CLAUDE.md` 의 **6원칙이 기준선**이다 — 여기 복제하지 않는다(같은 사실을 두 곳에
두면 한쪽이 썩는다). 이 파일은 그 위에 얹는 **이 리포 고유분**만 담는다.
## 대원칙 — 만든 레인은 자기 산출물을 판정하지 않는다
6원칙 중 **원칙 4 의 위임 리뷰**를 이 리포의 레인 구성으로 구체화한다 — 누가 만들고 누가
판정하는가. 설계는 무엇이 완료인지 정하고, 착수 전에 **작성자가 아닌 레인**이 그
기획서·SPEC·계획을 읽는다. 완료 기준을 실행 가능한 형태로 만든 테스트는 **누가 쓰든 리뷰어가 검증한다**
(사용자 확정 2026-07-26 — 작성 분리는 기각, 분리 요구는 리뷰에 건다). **구현**은 원칙 6 대로 시간·
품질 이득이 조정 비용을 넘을 때 `implementer` 에이전트에 위임하고(없으면 범용 서브에이전트에 같은
계약으로), 위임하지 않은 구현도 **머지 전 독립 검증이 걸리는 변경이면**(문턱 = `test-policy` §시점별 검증) 검증 레인은 가른다. **검증**은 코드를 쓰지 않은 레인이 구현 보고를
읽는 대신 직접 다시 돌려 증거를 얻는다. 구현 중 드러난 경계 때문에 구현자가 테스트를 추가할 때는 검증 레인이 음성
- 대조로 그것이 무는지 증명한다 — 초록불이 무는지부터 확인한다(원칙 5 가 소유. 구 no-false-ship
- 룰은 2026-08-02 삭제).
+ 대조로 그것이 무는지 증명한다 — 초록불이 무는지부터 확인한다(원칙 5 가 소유 · 구 룰 정리 = ADR-060).
판정이 갈리거나 **확신이 없을 때**는 **틀렸을 때의 비용**으로 가른다. `change-management` 의
**Major CR**(AC 의 Pass/Fail · 다른 Phase 의 입출력 · Non-Goals 경계 · DO NOT CHANGE) · 보안 경계 ·
공유 상태를 건드리는 결정이면 독립 리뷰어들의 **적대적 다면 리뷰**로 결론을 낸다. 그 밖에는 증거가
더 좋은 쪽을 골라 넘어간다 — **사소한 것에 패널을 돌리면 비용이 판단의 가치를 넘는다.**
("npm 게시 여부"는 이 리포에서 **상수**라 판별자로 쓰지 않는다 — 산출물이 전량 배송 계약이다.)
- 전례 — 아래가 그 형태다. v26.138.0 거짓출하는 적대적 검증 에이전트가 잡았고 구현자 자신은 못 봤다.
- v26.128.0~131.0 은 릴리즈 CI 4연속 red 를 3릴리즈 동안 못 봤고 그때 보고한 "CI exit 0"은 전부
- 로컬이었다. v26.127.0 에서는 게이트를 만들며 같은 실수를 3회 했고 셋 다 음성 대조가 잡았다.
- 설계 쪽도 같다 — 같은 표를 3번 고치며 결론의 부호가 매번 뒤집혔고(ADR-053 §정정 이력), 자기 설계를
- 자기가 검토해서는 잡히지 않았다.
+ 이 원칙을 세운 사고 기록 6건 = ADR-054 Context 표.
## 의사결정 및 컨펌 요청 시
- 1. 이해가 쉽도록 전후 맥락과 함께 상세하게 설명
- 2. 추천하는 제안과 그 이유를 설명
- 3. UI/UX 형태로 이해할 수 있도록 설명
- 4. ASIS TOBE 형태로 설명
- **ASIS→TOBE 는 "그 결과를 안고 사는 사람" 자리에서 쓴다** (사용자 확정 2026-08-16). 우리가 만드는
- 것을 **쓰는 사람**, 또는 그것을 운영하는 사람이다. 모듈에 필드가 하나 늘었다는 것은 코드 밖의
- 누구도 체감하지 못한다 — 표의 항목이 `installer.ts` 나 `resolveRules` 로 시작하면 그 자체가 다시
- 쓰라는 신호다. 영향받는 역할을 지목하고(설치받는 사용자 / 운영자 / 리뷰어 / 다음 유지보수자),
- **전에는 못 하던 무엇을 할 수 있게 되는가** 또는 **무엇이 더는 안 일어나는가**로 적는다.
- 사용자에게 보이는 변화가 정말 없으면 없다고 하고 실제 수혜자를 적는다 — 지어낸 사용자 이득보다
- "이건 다음에 디버깅할 사람만 편해진다"가 낫다.
-
- *이 절이 생긴 이유*: 배포 앵커가 `AS-IS → TO-BE` 를 요구하면서 **누구 입장인지는 한 번도 안
- 적었고**, 그래서 판정표가 코드 관점으로 채워졌다(사용자 적발). 배포판 대응 절 =
- `clear-korean-communication` 스킬 Part 2 (배포 앵커의 §Presenting a decision 은 ADR-085 로 스킬에
- 흡수됐다 — 앵커는 전역 6원칙과 바이트 동일하다).
+ 4요소(전후맥락 · 추천+이유 · UI/UX 형태 · ASIS→TOBE)와 그 서식은 `clear-korean-communication`
+ 스킬 Part 2 가 SSOT 다 — 이 리포 번들이라 `templates/skills/clear-korean-communication/` 에서
+ 바로 읽는다(ADR-062. 설치·네트워크 불요).
- `clear-korean-communication` 스킬(구 asis-tobe-decision + explain-plainly 통합 후신)을 쓴다 —
- 이 리포 번들이라 `templates/skills/clear-korean-communication/` 에서 바로 읽는다
- (ADR-062. 설치·네트워크 불요).
- (배포판에서는 `clear-korean-communication` 스킬이 같은 5요소를 싣는다 — ADR-085 가 ADR-055 의 앵커 탑재를 대체.
- 이 절은 그 한국어 판이자 이 리포의 표현이다.)
+ **ASIS→TOBE 는 "그 결과를 안고 사는 사람" 자리에서 쓴다**(사용자 확정 2026-08-16) — 영향받는
+ 역할(설치받는 사용자 / 운영자 / 리뷰어 / 다음 유지보수자)을 지목해 **전에는 못 하던 무엇을 할 수
+ 있게 되는가** 또는 **무엇이 더는 안 일어나는가**로 적고, 표의 항목이 `installer.ts` 로 시작하면
+ 그 자체가 다시 쓰라는 신호다.
## Phase/작업 완료 시
- **Non-Goals 침범 없음 확인** — 6원칙이 안 덮는 축이라 남긴다(원칙 5 는 *미검증 보고*를 덮지만
- *범위 침범*은 다른 축이고, SPEC 에 Non-Goals 절이 실재한다). 판정 보류 중 — ADR-055 Consequences.
+ *범위 침범*은 다른 축이고, SPEC 에 Non-Goals 절이 실재한다 — ADR-055 Consequences ⓐ).