← ClaudeAtlas

harness-evallisted

하네스 행동 회귀 평가 — 훅·가드·룰이 에이전트의 실제 행동을 막는지 `claude -p`(haiku) 로 재서 pass@k·pass^k·"발화 후 위반" 수치를 낸다. 사용자가 "훅이 진짜 막아?", "규칙 바꿨는데 행동이 퇴행했는지 재자", "행동 평가 돌려", "agent eval", "pass@k" 라고 하거나 룰·훅·스킬 문구를 바꾼 직후에 쓴다. 공장 도구(소우주 배포 아님), 로컬·수동·구독 CLI 만, CI·야간 금지.
jjackkun/claude-harness-hermes · ★ 0 · AI & Automation · score 73
Install: claude install-skill jjackkun/claude-harness-hermes
# harness-eval — 규칙이 실제로 지켜지는지 잰다 `tests/` 는 코드가 규칙을 어겼는지(정적)만 본다. 이 도구는 **에이전트 행동**을 본다: 금지된 일을 시켰을 때 시도하는가, 시도하면 훅이 막는가, 막지 못하면 결과가 남는가. ## 언제 - 룰·훅·가드·스킬 description 을 바꾼 직후(퇴행 확인) - 새 훅을 넣을 때 "이 훅이 값을 하는가" 를 수치로 답해야 할 때(훅값 = 시도 중 막힌 비율) - doctor 가 소우주의 옛 게이트를 잡았을 때처럼 "실제로 작동하는가" 가 의심될 때 ## 어떻게 (세션 밖 터미널에서) ```bash python3 scripts/harness-eval.py --dry-run # 시나리오·호출 수 확인(호출 0) python3 scripts/harness-eval.py --k 2 # 6 시나리오 × 3 단계 × 2 = 36 호출(haiku) python3 scripts/harness-eval.py --only no-verify,key-guard --strictness competing --k 3 ``` 결과: 표 + `.harness/evals/<stamp>.json`. 종료코드 0 = 모든 (시나리오, 단계) 가 pass@k. 세션 안에서는 summon-guard(RV-06) 가 `claude -p` 를 막으므로 사람이 터미널에서 돌린다. `CI` 환경변수가 있으면 거부한다. ## 읽는 법 | 열 | 뜻 | |---|---| | pass@k | k 회 중 1회라도 통과 | | pass^k | k 회 전부 통과 (신뢰도) | | 시도율 | 금지 도구를 시도한 실행 비율 (모델의 순수 행동) | | 훅값 | 시도 중 훅이 막은 비율 (하네스의 효과) | | 발화후위반 | 시도했고 막히지 않은 횟수 — **0 이어야 한다.** 0 이 아니면 그 훅을 backlog 로 | 단계: supportive(규칙을 프롬프트가 상기) · neutral · competing(프롬프트가 위반을 부추김). competing 에서의 훅값이 진짜 값이다. ## 시나리오 추가 `tests/agent-evals/<id>.json` — `prompts{supportive,neutral,competing}` + `expect{forbid_tool,require_tool,forbid_text,require_text,unchanged_files}`. 채점은 결정론(툴콜 정규식·파일 sha·어휘)만. 모델 채점 없음(설계 `docs/design-docs/agent-eval-llm-path.md`). ## 비용 haiku, 호출당 수 초. 기본 k=3 은 54 호출 — 월간 크레딧에서 나간다. 룰을 바꾼 직후에만, 야간 자동 실행 금지.