harness-export

harness-export is a skill for Claude Code from This-HW/claude-code-kit. It costs 65 tokens per session (2,422 once invoked), scanned A, original, MIT.

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 Code

Written for Claude Code: effort in frontmatter. Also seen: model in frontmatter; reads .claude/ paths; mentions Claude Code.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the claude-code-kit plugin — 20 skills, 4 hooks shipped together

Good fit Generating or checking AGENTS.md from rules files, especially after rules change or when Claude Code, Codex, OpenCode, Copilot, or Pi share a repository.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add This-HW/claude-code-kit
Claude Code
/plugin install claude-code-kit

Made for: Claude Code.

Or install claude-code-kit, the plugin that ships this one along with the rest of its 20 skills, 4 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for harness-export

README.md
[![agentmods](https://agentmods.dev/badge/skills/this-hw/claude-code-kit/harness-export/github.svg)](https://agentmods.dev/skills/this-hw/claude-code-kit/harness-export)
Your own site
<a href="https://agentmods.dev/skills/this-hw/claude-code-kit/harness-export"><img src="https://agentmods.dev/badge/skills/this-hw/claude-code-kit/harness-export/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for harness-export

Your own site · 80×15
<a href="https://agentmods.dev/skills/this-hw/claude-code-kit/harness-export"><img src="https://agentmods.dev/badge/skills/this-hw/claude-code-kit/harness-export.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
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. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00065 $0.02422
Opus 5.5 $0.00026 $0.00969
Sonnet 5.5 $0.00013 $0.00484
Haiku 4.5 $0.00006 $0.00242

Measured 1mo ago against content hash 0296df436a11, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, 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 1mo 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. 1mo 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 1mo ago), licensed MIT. It adds 65 tokens to every session and 2,422 once invoked, about $0.0003 per session on Opus 5.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

code-standards

Prabhdeep (Sonu) Singh's personal coding standards — the house rules and quality bar for how code gets written. INVOKE before writing, generating, refactoring, or reviewing ANY code in ANY language — schemas, endpoints, queries, logging, validation, error handling — even when nobody says "standards" or "style".…

PrabhdeepSingh/claude-plugins · 81 tokens

design-tree

Make design decisions as an explicit branching tree — genuine alternatives, decisive rationale, rejected branches preserved. INVOKE PROACTIVELY when planning or designing any implementation approach, or choosing between architectures, libraries, or data models — especially in plan mode. Skip trivial or forced changes…

PrabhdeepSingh/claude-plugins · 62 tokens

self-review

Surface the riskiest parts of the current diff so a reviewer knows where to look hardest — one inline pass on small diffs, one cold read on a cheaper model tier with in-session synthesis on substantial ones. INVOKE PROACTIVELY whenever a change is finished and about to be handed off, reviewed, or shipped. It points…

PrabhdeepSingh/claude-plugins · 79 tokens

ticket-lifecycle

The ticket-as-control-plane rulebook — the single home for the tracker-operations contract, tracker resolution, the type/priority taxonomy, human-only trigger authorization, derived status, and trust boundaries. INVOKE when reading or writing tickets in a queue-driven flow, resolving a repo's tracker, or deciding…

PrabhdeepSingh/claude-plugins · 105 tokens

tdd

Test-driven development — the red-green-refactor discipline for code that's correct by design, not by accident. INVOKE PROACTIVELY whenever writing or changing code, fixing a bug, adding or structuring tests, or choosing what to mock — even when nobody says "TDD" or "tests". (Tests are code held to…

PrabhdeepSingh/claude-plugins · 80 tokens

pr-conventions

Author PR descriptions from the right per-change-type template (the repo's own PULLREQUESTTEMPLATE wins), embed issue-tracker links, keep the description current as fixes land, and reply to human and bot review threads. INVOKE when opening or updating a PR or responding to reviewer comments — inside /sonu:ship or…

PrabhdeepSingh/claude-plugins · 80 tokens