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.
npx agentmods add skills/this-hw/claude-code-kit/eval-forgenpx skills add This-HW/claude-code-kit --skill eval-forgegit clone --depth 1 https://github.com/This-HW/claude-code-kitWhat 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 | $0.00055 | $0.01730 |
| Opus 5 | $0.00028 | $0.00865 |
| Sonnet 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 yesterday.
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.
- yesterday 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 4d ago), licensed MIT. It adds 55 tokens to every session and 1,730 once invoked, about $0.0003 per session on Opus 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
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…
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.
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).
review
5-pass structured code review — correctness, security, performance, readability, consistency.
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.
wiki
Markdown-first knowledge base where the LLM acts as librarian. Ingests raw sources, compiles and interlinks topic files, self-maintains an index. No vector DB or embeddings required -- uses LLM-native navigation over structured markdown up to 400K words.