Borrowing it
Nothing to install: this file belongs to ai-twinkle/Eval. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/ai-twinkle/Eval/main/.claude/skills/add-benchmark/SKILL.mdgit clone --depth 1 https://github.com/ai-twinkle/EvalWrote 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/ai-twinkle/eval/add-benchmark)<a href="https://agentmods.dev/skills/ai-twinkle/eval/add-benchmark"><img src="https://agentmods.dev/badge/skills/ai-twinkle/eval/add-benchmark/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/ai-twinkle/eval/add-benchmark"><img src="https://agentmods.dev/badge/skills/ai-twinkle/eval/add-benchmark.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.00151 | $0.03280 |
| Opus 5.5 | $0.00060 | $0.01312 |
| Sonnet 5.5 | $0.00030 | $0.00656 |
| Haiku 4.5 | $0.00015 | $0.00328 |
Grade A, and why
add-benchmark 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.
How it starts
The opening of the file, as written. The whole thing — 240 lines — stays where its author put it; the contents beside it link to each section on GitHub.
新增評測 Benchmark
CLAUDE.md §6 規定的流程,缺一步就不得合入 main。這份 skill 是那份規範的可執行版本。
動手前先確認
- 這是新的評測方法(新的 Extractor/Scorer 配對),不是既有方法的新資料集。
若只是新資料集且能沿用既有
evaluation_method,走twinkle_eval/benchmarks.py的下載註冊表即可,不需要跑本流程。 - 上一個 benchmark 已經完成(含比較報告)。§6.0.1 明訂:先完成再開始下一個。
第 0 步:先開 GitHub,再寫程式
沒有 Milestone 和 Issues 的 benchmark 實作不得開 PR。
gh api repos/ai-twinkle/Eval/milestones -f title="{Benchmark} — {一句話說明}" \
-f description="來源:{paper/repo}|目的:{評什麼}|範圍:{預計實作到哪}"
接著開 6 個 Issue,每個都要掛 type: feature label 與該 Milestone:
| # | 標題格式 | 對應 |
|---|---|---|
| 1 | feat({name}): prepare example dataset from HuggingFace |
§6.1 |
| 2 | feat({name}): implement Extractor + Scorer (+ Checkers) |
§6.2 |
| 3 | feat({name}): score comparison vs reference framework |
§6.3 |
| 4 | feat({name}): speed benchmark vs reference framework |
§6.4 |
| 5 | feat({name}): write docs/evals/{name}.md |
§6.5 |
| 6 | feat({name}): write tests/test_{name}.py |
§6.6 |
gh issue create --title "feat({name}): ..." --label "type: feature" --milestone "{Milestone 標題}"
第 1 步:example dataset
放在 datasets/example/{name}/,10–20 筆(§6.1 規範;既有資料集實際落在 10–30 筆,如 aime2025 收了全部 30 題),涵蓋主要題型分佈。有子類別的(如 BFCL 的
simple/multiple/parallel)每個子類別至少 2–3 筆。
要求任何人不下載完整資料集就能跑通完整流程。格式必須是可直接執行的完整格式
(含 id、question、答案欄位)。
scripts/ 底下有既有的抽取腳本可以參考(prepare_bbh_example.py、
create_vision_mcq_example.py)。
資料集載入器支援 JSON / JSONL / CSV / TSV / Parquet / Arrow。twinkle_eval/datasets/file.py 的
_normalize_record() 會自動把 {"choices": [...], "answer": 1} 這種 HuggingFace 格式
正規化成 {"A": ..., "B": ..., "answer": "B"}。
第 2 步:實作 Extractor + Scorer
架構是 Extractor(從輸出抽答案)+ Scorer(比對正解) 兩個 ABC,定義在
twinkle_eval/core/abc.py。不要在 evaluators.py / main.py 加 if/elif 分支(原則 A)。
# twinkle_eval/metrics/extractors/{name}.py
from typing import Optional
from twinkle_eval.core.abc import Extractor
class MyExtractor(Extractor):
def get_name(self) -> str:
return "{name}"
def extract(self, llm_output: str) -> Optional[str]:
"""抽不到回傳 None(會被計入 unparsed_count)。"""
...
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 · 240 lines · 151 tokens per session scan A ad783b22bd3a
add-benchmark is a skill published in the GitHub repository ai-twinkle/Eval (117 stars, last pushed 1mo ago), licensed MIT. It adds 151 tokens to every session and 3,280 once invoked, about $0.0006 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-09-12.
add-benchmark compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| add-benchmarkai-twinkle/Eval | Skill | 117 | 1mo ago | MIT | A | 151 | Claude Code |
| llm-evaluationmartineserios/thebrana | Skill | 3 | today | MIT | A | 31 | Claude Code |
| eval-designerNickCrew/Claude-Cortex | Skill | 66 | 4mo ago | MIT | D | 62 | Claude Code, Codex |
| ai-engineering-toolkitsickn33/agentic-awesome-skills | Skill | 49k | yesterday | MIT | A | 47 | Claude Code |
| ai-prompt-regression-testingsickn33/agentic-awesome-skills | Skill | 49k | yesterday | MIT | A | 37 | Claude Code |
| prompt-optimizationlangwatch/langwatch | Skill | 5.0k | yesterday | Apache-2.0 | A | 105 | Claude Code, Codex |
| experimentslangwatch/langwatch | Skill | 5.0k | yesterday | Apache-2.0 | A | 58 | Claude Code, Codex |