eval-corpus-forge
Build, validate, and package reusable evaluation datasets for agent and LLM systems from prompts, traces, tool-call logs, metadata, and expected outcomes.
Skill by ianshank
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ianshank-eval-corpus-forge
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, ml, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/eval-corpus-forge
What's inside
- Skill name
eval-corpus-forge- Description
- Build, validate, and package reusable evaluation datasets for agent and LLM systems from prompts, traces, tool-call logs, metadata, and expected outcomes. Use this when the user asks to gather eval data, create benchmark datasets, normalize traces, define reusable ground truth, bootstrap eval suites, or produce retrieval, tool-invocation, response, or end-to-end evaluation artifacts.
- License
- Apache-2.0
- Compatibility
- python>=3.10
- Instructions
- 138 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (31)
- .gitignore
- SKILL.md
- evals.json · evals/
- records.jsonl · evals/fixtures/bootstrap/
- records.csv · evals/fixtures/csv/
- records.jsonl · evals/fixtures/full-dataset/
- records.jsonl · evals/fixtures/no-prompts/
- convo.json · evals/fixtures/transcript/
- schemas.md · references/
- ruff.toml
- __init__.py · scripts/forge/
- atomic.py · scripts/forge/
- ground_truth.py · scripts/forge/
- ingest.py · scripts/forge/
- manifest.py · scripts/forge/
- normalize.py · scripts/forge/
- package_validate.py · scripts/forge/
- views.py · scripts/forge/
- quality-gate.sh · scripts/
- run_eval_corpus_forge.py · scripts/
- validate_skill.py · scripts/
- conftest.py · tests/
- test_atomic_manifest.py · tests/
- test_coverage_margin.py · tests/
- test_end_to_end.py · tests/
- test_ingest.py · tests/
- test_ingest_formats.py · tests/
- test_normalize.py · tests/
- test_package_validate.py · tests/
- test_package_validate_behavioral.py · tests/
- test_views_groundtruth.py · tests/
SKILL.md (first lines)
# Eval Corpus Forge
Perform evaluation dataset gathering and packaging end to end: take raw prompts, execution
traces, tool-call logs, metadata, and expected outcomes; normalize them into canonical
scenario records; generate reusable ground-truth mappings and eval-suite views; validate the
resulting package; and — because this task produces verifiable artifacts — prove it passed
validation before reporting success (§7 and §8).
One reusable dataset can support multiple evaluation suites: retrieval accuracy, tool
correctness, response/output quality, and end-to-end task completion. Full schemas live in
`references/schemas.md`; this body is the procedure and contract.
## 1. Preconditions
Confirm before executing. If any fails, stop and report the exact missing requirement and
fix. Do not fabricate missing data.
* A source input exists: a `.json`, `.jsonl`, or `.csv` file, a conversation transcript
(a JSON/JSONL object with a `messages`/`turns` array), or a folder mixing these. CSV rows
become one scenario each (JSON-encoded cells are parsed); transcripts expand into one
scenario per user turn, pairing the following assistant turn for response and tool names.
Trace-export formats beyond the transcript shape are out of scope.
* The input includes at least one prompt or scenario, and at least one expected outcome,
evaluation target, or ground-truth artifact. If no prompts or scenarios are discoverable,
stop.
* Python 3.10+ is available; write access exists for the output's parent directory; bundled
scripts under `scripts/` are present.
### Mode selection
* **Full dataset mode** — when any record carries an observable execution artifact (tool
call, trace step, retrieved entity/ID, model response, or workflow-completion record).
Tool/retrieval/response/e2e views are populated only where the matching evidence exists.
* **Bootstrap mode** — when only prompts, scenarios, or expected outcomes are available.
Generate only applicable views; mark the rest not-applicable in `manifest.json`. Never
fabricate tool traces, retrieval results, token usage, latency, model outputs, or
workflow-completion records.
## 2. Output package contract
```text
<output>/
manifest.json
canonical/scenarios.jsonl
ground_truth/mappings.jsonl
views/{retrieval_eval,tool_invocation_eval,response_eval,end_to_end_eval}.jsonl
validation/{validation_report.json,schema_errors.jsonl}
provenance/source_index.jsonl
```
All JSONL is UTF-8, one JSON object per line. All view files are always created; a
non-applicable view is left empty with its reason recorded in `manifest.json`. Do not write
placeholder records, and do not duplicate canonical records inside derived views.
## 3. Schemas
See `references/schemas.md` for the canonical scenario, deterministic `scenario_id`,
`provenance`, `trace`, `metadata`, ground-truth mapping, and per-view evidence requirements.
Key rule: missing values are represented as `null`, empty array, or `"unclassified"` — never
omitted.
## 4. Procedure
Deterministic and reproducible. Delegate mechanical work to the bundled scripts.
```bash
python scripts/run_eval_corpus_forge.py --in <input> --out <output>
python scripts/validate_skill.py --skill . --tier structural,behavioral
```
The runner executes §5's pipeline; you normally invoke it directly rather than redoing steps
by hand.
## 5. Pipeline
1. **Ingest** — discover/parse records, preserve origin for provenance, detect mode, confirm
minimum data. Stop if no prompts or scenarios are discoverable.
2. **Normalize** — convert each record to the canonical scenario schema; generate
deterministic `scenario_id` when missing; preserve source ids and provenance.
3. **Extract trace** — capture tool names/order/arguments/outputs, retrieved entities/ids,
model metadata, token usage, latency, trace ids where present; null/empty otherwise. Never
invent trace data.
4. **Enrich metadata** — complexity, taxonomy tags, expected action types, evaluator
applicability. Explicit when the source provides it, else `unclassified` (no silent
inference in v1).
5. **Build ground truth** — expected entities/output fields/tools/sequence/completion/final
state/grading notes, stored separately and referencing canonical `scenario_id`.
6. **Generate views** — retrieval, tool-invocation, response, end-to-end. Emit a record only
with the required evidence; otherwise leave the view empty and record the reason.
7. **Atomic write** — write to a sibling `<output>.tmp.<ts>`, validate it, and only on pass
move any existing output to `<output>.bak.<ts>` and swap the temp into place. On failure,
leave the original untouched and preserve the temp for debugging.
## 6. Manifest
`manifest.json` carries `dataset_name`, `created_at`, `source_input`, `schema_version`,
`mode`, programmatic `counts`, `view_applicability` (per view `{applicable, reason}`), and
`validation` (`status`, `report_path`). Counts are computed by the pipeline and independently
re-counted from disk by validation — they are never estimated by hand.
## 7. Validation
Run structural and behavioral validation before reporting success.
* **Structural** fails on: no canonical scenarios; missing required fields; omitted (vs.
null/empty/`unclassified`) values; a view referencing a missing `scenario_id`; manifest
counts not matching disk; ground-truth referencing missing scenarios; applicability that
contradicts the data; missing validation artifacts; a view record lacking its required
evidence.
* **Behavioral** confirms: `scenario_id` is stable/deterministic; each view record maps to
exactly one canonical scenario; ground truth is separate from canonical; views do not
duplicate full canonical records; tool invocation order is preserved; provenance is
traceable; empty views are labeled not-applicable; bootstrap mode fabricates nothing.
The skill is **not done** until this exits 0:
```bash
python scripts/validate_skill.py --skill . --tier structural,behavioral
```From ianshank/Agents, Apache-2.0.
More from ianshank/Agents
- 0.552score
hierarchical-recursive-brainstorm
ianshank
Decomposes a topic into a controlled hierarchy, recursively expands leaves, prunes the bottom quartile, and synthesizes upward into a self-explanatory…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
openspec-implementation-review
ianshank
Reviews a shipped OpenSpec change's implementation against its own proposal/design/tasks/spec, producing a dated, two-pass openspec/changes/<id>/review.md…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
architecture-drift-guard
ianshank
Detect and block architecture drift in CI by comparing a codebase's actual Python import graph against a declared C4 component model.
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
dataset-lint
ianshank
Validate an existing evaluation dataset (JSONL/JSON/CSV) for structural correctness, duplicate IDs, missing required fields, and encoding issues — without…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
model-bench
ianshank
Benchmark and A/B-test multiple LLMs or systems-under-test on one evaluation dataset.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
openspec-quality-plan
ianshank
Generates a complete OpenSpec change package containing proposal, design, and task specs.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
openspec-peer-review
ianshank
Emits an objective Peer Review Findings section and rewrites an OpenSpec package to satisfy quality standards.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
openai-judge
ianshank
LLM-as-a-judge evaluations over OpenAI-compatible APIs (including NVIDIA Nemotron & LM Studio).
SkillBFreshness: B★ 1Claude Code +9 - 0.548score
deploy
ianshank
Generate a safety-railed deployment shell script (scripts/deploy.sh) with bash strict mode, a --dry-run mode, a confirmation gate before irreversible steps…
SkillBFreshness: B★ 1Claude Code +9 - 0.545score
corpus-guardian
ianshank
Manage, verify, and synchronize the four frozen synthetic evaluation corpora (RCA, Requirements, TestGen, Answer Quality).
SkillBFreshness: B★ 1Claude Code +9 - 0.545score
e2e-matrix-sentinel
ianshank
Validate cross-platform end-to-end matrix coverage, verify POSIX and Windows driver parity, and enforce offline fixture restamping invariants.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
merge-gate-auditor
ianshank
Sample unlabelled PR records from merge-gate-data, prepare structured Audit Verdict Cards, and stage human verdicts.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 113
- Last commit (this folder)
- Sep 7, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/ianshank/Agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ianshank
- 0.552score
model-bench
ianshank
Benchmark and A/B-test multiple LLMs or systems-under-test on one evaluation dataset.
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
openspec-implementation-review
ianshank
Reviews a shipped OpenSpec change's implementation against its own proposal/design/tasks/spec, producing a dated, two-pass openspec/changes/<id>/review.md…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
dataset-lint
ianshank
Validate an existing evaluation dataset (JSONL/JSON/CSV) for structural correctness, duplicate IDs, missing required fields, and encoding issues — without…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
hierarchical-recursive-brainstorm
ianshank
Decomposes a topic into a controlled hierarchy, recursively expands leaves, prunes the bottom quartile, and synthesizes upward into a self-explanatory…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
architecture-drift-guard
ianshank
Detect and block architecture drift in CI by comparing a codebase's actual Python import graph against a declared C4 component model.
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
openai-judge
ianshank
LLM-as-a-judge evaluations over OpenAI-compatible APIs (including NVIDIA Nemotron & LM Studio).
SkillBFreshness: B★ 1Claude Code +9
Cite this page
eval-corpus-forge skill. Agent Mart. https://agentmart.dev/skills/ianshank-eval-corpus-forge (last updated 2026-10-24)