Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/This-HW/claude-code-kitnpx agentmods add skills/this-hw/claude-code-kit/eval-forgeWrote 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.
[](https://agentmods.dev/skills/this-hw/claude-code-kit/eval-forge)<a href="https://agentmods.dev/skills/this-hw/claude-code-kit/eval-forge"><img src="https://agentmods.dev/badge/skills/this-hw/claude-code-kit/eval-forge/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.
<a href="https://agentmods.dev/skills/this-hw/claude-code-kit/eval-forge"><img src="https://agentmods.dev/badge/skills/this-hw/claude-code-kit/eval-forge.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00055 | $0.01730 |
| Opus 5.5 | $0.00022 | $0.00692 |
| Sonnet 5.5 | $0.00011 | $0.00346 |
| Haiku 4.5 | $0.00006 | $0.00173 |
Grade A, and why
eval-forge scanned grade A with 2 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- **허용**: `os.path.join`, `shutil.which`, `urllib.parse.urlparse`, `open`, `json.loads` Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
- 차단: `os.system`·`os.popen`·`os.remove` 류, `subprocess.*`, `socket.*`, `requests.*`, How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Eval Forge — 결함을 회귀 게이트로 굳히기
/self-improve의 HARD-GATE는 eval 커버리지가 있는 대상에서만 이중 게이트다.
실제 커버리지는 33개 에이전트 중 소수뿐이라, 대부분의 정의 파일 수정은
"사용자 승인 단일 게이트"로 퇴화한다. 스킬이 그 한계를 정직하게 고지하고는 있지만,
고지는 해결이 아니다. 이 스킬은 커버리지를 늘리는 비용을 낮춰 그 구멍을 메운다.
적용 범위: 이 스킬은
evals/하네스(evals/run.py)가 있는 프로젝트 — 즉 kit 레포 자체의 개발에서 동작한다. 그 하네스가 없는 소비자 프로젝트에서는 스크립트가 exit 2(SKIPPED)로 정직하게 멈춘다./self-improve·/native-watch와 같은 kit-개발용 스킬 계열이다.
사용 시점
| 상황 | 왜 |
|---|---|
| ledger에 에이전트 행동 결함이 올라왔다 | 같은 결함이 다시 나면 기계가 잡게 만든다 |
| eval 커버리지 없는 에이전트의 정의를 고치려 한다 | 고치기 전에 안전망을 깐다 (없으면 self-improve가 게이트 없이 돈다) |
| 리뷰형 에이전트가 결함을 놓치는 걸 목격했다 | 거짓 음성은 eval의 1순위 표적이다 |
절차
1. 대상과 실패 형태를 확정한다 [건너뛰기 금지]
"무엇을 놓쳤는가"가 아니라 **"통과/실패를 무엇으로 판정할 것인가"**를 먼저 정한다. 판정 기준 없이 시나리오를 만들면 채점 불가능한 자산이 트리에 남는다.
- 리뷰/스캔형 → 출력에 반드시 등장할 표현(OR 묶음)과 등장하면 실패인 표현
- 수정/구현형 →
pytest_green+ 필요하면file_contains
2. 픽스처를 준비한다
결함을 심은 최소 코드. 아래는 강제 규칙이다 (러너가 거부한다):
conftest.py금지 — 채점 시 임의 코드 실행 통로 (있으면 생성기가 제거한다)- 모듈 스코프(=import 시 실행되는 위치)에서 위험 호출 금지. 러너가 AST로 판정하며,
대상은 최상위 문장뿐 아니라 클래스 본문·데코레이터 표현식·함수 기본 인자 값까지다
(전부 import 시 실행된다). 함수/메서드 본문은 실행되지 않으므로 자유롭다 —
결함 코드는 함수 안에 두면 된다.
- 차단:
os.system·os.popen·os.remove류,subprocess.*,socket.*,requests.*,shutil.rmtree,eval/exec/__import__/getattr/setattr,importlib.* - 차단: 별칭·재바인딩·
from X import *우회 (import os as x,f = os.system,getattr(os,"system")모두 잡힌다) - 허용:
os.path.join,shutil.which,urllib.parse.urlparse,open,json.loads— 모듈 스코프에서 데이터를 읽는 정상 fixture를 막지 않는다 - 파싱 불가(구문 오류·NUL 바이트)도 거부한다 — 검사 불가를 통과로 삼지 않는다
- 차단:
- 시나리오 루트에
.py금지 — 코드는fixture/안에만
그리고 커밋되는 자산임을 잊지 마라: 보안 시나리오의 가짜 자격증명은 저엔트로피로 쓴다. 고엔트로피 가짜 시크릿은 gitleaks를 트립시켜 CI가 그 eval 자산 자체를 막는다. 점검 대상은 "소스에 자격증명을 상수로 박았다"는 사실이지 값의 엔트로피가 아니다.
3. 생성 (즉시 자기검증된다)
python3 scripts/eval-forge.py --agent <name> --id <kebab-id> \
--task-file <과제.md> --fixture <파일 또는 디렉토리> \
--must-mention "표현a,표현b" \
--must-mention "다른 발견의 표현c,표현d" \
--rubric "무엇을 판정하는가 (opt-in judge용)"
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.
- 1mo ago First seen · 104 lines · 55 tokens per session scan A 977dae3bcad3
eval-forge is a skill published in the GitHub repository This-HW/claude-code-kit (4 stars, last pushed 1mo ago), licensed MIT. It adds 55 tokens to every session and 1,730 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 2 findings (makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
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…
java-test
Generates JUnit 5 and Mockito unit tests or Testcontainers integration tests, auto-detecting project setup. Use when user asks to "write tests", "generate tests", "add unit tests", "create test class", "test this service", or "write integration tests".
java-health
Runs a holistic code health check scoring Security, Tests, Performance and Quality with A-F grades. Use when user asks to "check health", "score this project", "health check", "how good is this code", "overall assessment", or "code quality score".
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.
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).
test-gen
Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns.