harness-export

A guide for exporting project rules into an AGENTS.md file, a shared instruction file understood by several coding-agent tools. It keeps the same repository rules available when different agent systems work on the project.

In plain words
What is it for?
Generating or checking AGENTS.md from rules files, especially after rules change or when Claude Code, Codex, OpenCode, Copilot, or Pi share a repository.
Why use it?
It prevents agents from following different or outdated rules when a repository is used with more than one coding-agent environment.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/this-hw/claude-code-kit/harness-export
Any agent
npx skills add This-HW/claude-code-kit --skill harness-export
Clone the repo
git clone --depth 1 https://github.com/This-HW/claude-code-kit

Made for: Claude Code, Codex.

Per session 65 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,422 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00065 $0.02422
Opus 5 $0.00032 $0.01211
Sonnet 5 $0.00013 $0.00484
Haiku 4.5 $0.00006 $0.00242

Measured 2d ago against content hash 0296df436a11, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

harness-export scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/common/skills/harness-export/SKILL.md · 145 lines

How it starts

The opening of the file, as written. The whole thing — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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"라서 원인을 오보고하게 된다. 아래처럼 먼저 해석하라.

# 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다. 지정한 것과 다른 레포의 규범을 내보내고 성공을 보고하는 사고를 막는다. 명시하지 않으면 스크립트 자기 위치가 1순위이고(플러그인 캐시에서도 불변), 환경변수는 그 다음이다 — 셸에 남은 다른 플러그인의 값이 남의 규범을 내보내지 않도록.

kit 레포에서 개발할 때

./scripts/export-harness.sh          # 내보내기
./scripts/export-harness.sh --check  # 드리프트 검사 (게이트가 쓰는 명령)

exit code

code 의미 대응
0 성공 / 드리프트 없음
1 드리프트 · 블록 본문 변조 · 마커 손상 · 분류 미등재/유령 엔트리 · 인코딩 실패 · 트리 밖 심링크 stderr의 원인을 읽어라 — 재생성으로 안 고쳐지는 종류가 있다
2 SKIPPED — 규범 소스 미탐지 --plugin-root 지정. 0으로 위장하지 말 것

불변식 [건너뛰기 금지]

Read the full file on GitHub · 145 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 145 lines · 65 tokens per session scan A 0296df436a11

Subscribe to this mod's changes

harness-export is a skill published in the GitHub repository This-HW/claude-code-kit (4 stars, last pushed 4d ago), licensed MIT. It adds 65 tokens to every session and 2,422 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

watch

File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills. Poll-based via git diff against the last scan commit. Writes intake items for batch processing and routes marker actions through /do. Use for automatic reactions to file changes; do NOT use for…

SethGammon/Citadel · 70 tokens

pr-watch

Local PR watcher. Monitors CI status, automatically fixes failing checks by reading failure logs and applying targeted fixes, then optionally merges when all checks pass. Local CLI analog to Claude Code's cloud auto-fix feature.

SethGammon/Citadel · 46 tokens

qa

Browser-based QA verification. Launches a real browser, navigates the app, clicks buttons, fills forms, and tests user flows. Works as a standalone skill or as a phase end condition in campaigns. Requires Playwright (optional dependency, graceful skip if not installed).

SethGammon/Citadel · 56 tokens

review

5-pass structured code review — correctness, security, performance, readability, consistency.

SethGammon/Citadel · 17 tokens

live-preview

Mid-build visual verification loop. Takes screenshots of components during construction, not just after. Catches visual regressions and invisible features before they compound. Requires Playwright or similar screenshot tool.

SethGammon/Citadel · 40 tokens

marshal

Meta-orchestrator that takes any direction — broad, specific, or vague — and autonomously chains skills and context into actionable work. Gathers context from codebase, docs, and memory. Only asks the user when it genuinely cannot proceed. Single-session orchestrator.

SethGammon/Citadel · 56 tokens