eval-forge

eval-forge is a skill for Claude Code from This-HW/claude-code-kit. It costs 55 tokens per session (1,730 once invoked), scanned A, original, MIT.

A tool for turning a known coding-agent mistake into an automated evaluation scenario. An evaluation scenario is a test that checks whether an agent's output meets defined pass and fail conditions.

In plain words
What is it for?
Use it after recording an agent defect, when a review agent misses something, or before modifying an uncovered agent definition. It prepares fixtures and checks such as required output text, file contents, or passing tests.
Why use it?
It creates a repeatable safety check so the same defect can be detected again. It is also used before changing an agent that has no existing evaluation coverage.

Skill for Claude Code

Written for Claude Code: effort in frontmatter. Also seen: model in frontmatter.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python3 scripts/eval-forge.py --agent <name> --id <kebab-id> \.

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

Good fit Use it after recording an agent defect, when a review agent misses something, or before modifying an uncovered agent definition. It prepares fixtures and checks such as required output text, file contents, or passing tests.

Compare 6 skills from other repositories ↓
Install

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.

Clone the repo
git clone --depth 1 https://github.com/This-HW/claude-code-kit
agentmods
npx agentmods add skills/this-hw/claude-code-kit/eval-forge

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 eval-forge

README.md
[![agentmods](https://agentmods.dev/badge/skills/this-hw/claude-code-kit/eval-forge/github.svg)](https://agentmods.dev/skills/this-hw/claude-code-kit/eval-forge)
Your own site
<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.

agentmods 80×15 button for eval-forge

Your own site · 80×15
<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>
Per session 55 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,730 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 2 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.00055 $0.01730
Opus 5.5 $0.00022 $0.00692
Sonnet 5.5 $0.00011 $0.00346
Haiku 4.5 $0.00006 $0.00173

Measured 1mo ago against content hash 977dae3bcad3, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.*`,
plugins/common/skills/eval-forge/SKILL.md · 104 lines

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용)"

Read the full file on GitHub · 104 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 · 104 lines · 55 tokens per session scan A 977dae3bcad3

Subscribe to this mod's changes

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.

Related

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…

PrabhdeepSingh/claude-plugins · 80 tokens

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".

ducpm2303/claude-java-plugins · 57 tokens

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".

ducpm2303/claude-java-plugins · 54 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

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

test-gen

Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns.

SethGammon/Citadel · 24 tokens