← ClaudeAtlas

harness-exportlisted

Export the kit's host-neutral rules to AGENTS.md so non-Claude-Code harnesses (Codex, OpenCode, Copilot, Pi, Hermes) follow the same discipline. Use when a repo is worked by more than one agent harness, or after changing rules/. Trigger with /harness-export.
This-HW/claude-code-kit · ★ 4 · AI & Automation · score 80
Install: claude install-skill This-HW/claude-code-kit
# Harness Export — 규범을 하네스 중립으로 내보내기 CCK의 규범(`rules/*.md`)은 **Claude Code의 SessionStart 훅으로만** 주입된다. 그런데 Orca·Paseo 같은 ADE에서는 한 레포에 Claude Code와 Codex·OpenCode·Pi를 **동시에** 붙여 굴린다. 그 순간 레포의 절반은 CCK 규율 밖에서 동작한다. 이 스킬은 규범을 `AGENTS.md`(Codex·OpenCode·Copilot CLI·Cursor가 공통으로 읽는 사실상 표준)로 내보내 그 구멍을 메운다. ## 사용 시점 | 상황 | 실행 | | --- | --- | | 레포를 두 개 이상의 하네스가 만진다 | `/harness-export` 1회 → `AGENTS.md` 커밋 | | `rules/*.md`를 고쳤다 | 재생성 (안 하면 다른 하네스가 옛 규범을 읽는다) | | CI/게이트에서 최신 여부만 확인 | `--check` | ## 절차 ### 소비자(플러그인 설치) 환경 — 기본 경로 구현은 **플러그인 안**에 있다(`<플러그인 루트>/hooks/export_harness.py`). 설치한 프로젝트에는 이 kit의 `scripts/`가 없으므로 이 경로를 쓴다. > **`$CLAUDE_PLUGIN_ROOT`를 그대로 신뢰하지 마라.** 이 변수는 스킬의 Bash 컨텍스트에 > **설정돼 있지 않을 수 있다**(kit의 `feedback.sh`·`auto-dev`가 같은 이유로 의존을 > 제거했다). 빈 값이면 `python3 "/hooks/export_harness.py"`가 되어 파일 없음으로 > **종료코드 2**가 나고, exit 표상 2는 "SKIPPED"라서 **원인을 오보고**하게 된다. > 아래처럼 먼저 해석하라. ```bash # 1) 구현 위치 해석 — 변수가 비면 캐시에서 찾는다 EH="${CLAUDE_PLUGIN_ROOT:-}/hooks/export_harness.py" [ -f "$EH" ] || EH=$(ls -1 ~/.claude/plugins/cache/*/claude-code-kit/*/hooks/export_harness.py 2>/dev/null | sort -V | tail -1) [ -f "$EH" ] || { echo "export_harness.py를 찾지 못했다 — 플러그인 설치 확인"; exit 2; } # 2) 현재 프로젝트(git 최상위)의 AGENTS.md 갱신 python3 "$EH" # 3) 드리프트 검사만 (기록하지 않음) python3 "$EH" --check # 4) 블록 내용만 확인 / 다른 프로젝트 대상 python3 "$EH" --stdout python3 "$EH" --target /path/to/project ``` `--plugin-root`를 **명시**했는데 그 경로에 `rules/`가 없으면 자동 탐색으로 폴백하지 않고 exit 2다. 지정한 것과 다른 레포의 규범을 내보내고 성공을 보고하는 사고를 막는다.