Skip to main content

AuraOne EvalKit

A local-first Python CLI for AI and LLM evaluation teams that need to turn evaluation rubrics, saved model outputs, and supplied human or judge labels into inspectable scores, QA diagnostics, and evidence reports.

PyPI version Python versions license CI

AuraOne Open | Documentation | Source | Robotics ReviewKit

EvalKit covers the judgment layer around an evaluation run: rubric contracts, deterministic aggregation of labels you already own, reviewer and LLM-judge quality signals, dataset leakage checks, sampling, rubric versioning, dataset cards, and report generation. It does not run models, generate labels, manage a review workforce, or require a hosted AuraOne account.

Who It Is For

  • Evaluation engineers building file-based AI or LLM evaluation pipelines.
  • ML platform and model-quality teams adding rubric checks and score evidence to CI or release reviews.
  • Human-evaluation and annotation leads measuring reviewer agreement, adjudication, drift, and calibration needs.
  • Teams auditing saved LLM-judge outputs without calling a model provider during analysis.
  • Researchers and developers who want versionable rubric, label, and report artifacts instead of a platform-only data model.

What EvalKit Does

Workflow Command Result
Rubric schema validation evalkit validate-rubric Structured issues with paths, row numbers, and suggested fixes
Rubric quality linting evalkit lint-rubric Deterministic findings for vague, compound, duplicated, incomplete, or unscorable criteria
Label-based model scoring evalkit score Weighted per-output scores, pass/fail status, missing-label diagnostics, and run summary
Evidence reporting evalkit report Markdown, self-contained HTML, or normalized auraone.evalkit.report.v1 JSON
Reviewer agreement evalkit agreement Percent agreement, Krippendorff alpha, applicable kappa metrics, adjudication rate, and breakdowns
Saved judge calibration evalkit judge-calibrate Pairwise agreement, criterion disagreement, judge variance, prompt sensitivity, and unstable criteria
Reviewer or criterion drift evalkit drift Batch-to-batch drift and instability findings
Local leakage checks evalkit leakage-check Exact and near-duplicate evidence over local inputs and optional local references
Review sampling evalkit sample Deterministic random, stratified, diversity, failure, disagreement, uncertainty, or regression samples
Rubric change review evalkit diff-rubric Cosmetic, added, removed, rename-candidate, and scoring-impact changes
Weight sensitivity evalkit weight-calibrate Scenario rankings and high-leverage rubric criteria
Dataset documentation evalkit card init Eval or robotics dataset-card Markdown with visible data-status disclosure

Why EvalKit

  • Rubrics remain reviewable contracts. EvalKit accepts JSONL, JSON arrays, and canonical rubric-spec objects that can be diffed and versioned in git.
  • Scoring is explicit and deterministic. The scorer aggregates labels you provide. It does not create hidden judge labels or contact hosted services.
  • QA signals share one local CLI. Agreement, judge calibration, drift, leakage, sampling, versioning, and reports operate on files rather than a required tenant or database.
  • Evidence is portable. Outputs include structured JSON/JSONL plus human-readable CSV, Markdown, and self-contained HTML where supported.
  • Boundaries are visible. Synthetic fixtures, omitted evidence, missing labels, and limitations are surfaced instead of being converted into validation or benchmark claims.

Install

EvalKit requires Python 3.10 or newer. Repository CI covers Python 3.10, 3.11, and 3.12.

Install the latest published release from PyPI:

python -m pip install --upgrade auraone-evalkit

The repository can contain changes that have not been published yet. To run the current checkout from the AuraOne Open repository root:

python -m pip install -e "./packages/evalkit"

For development and package verification:

python -m pip install -e "./packages/evalkit[dev]"

Quickstart

The commands below assume an editable source install from the repository root. They use synthetic tutorial files included in this checkout.

evalkit validate-rubric \
  packages/evalkit/examples/tutorial/rubric.jsonl

evalkit lint-rubric \
  packages/evalkit/examples/tutorial/rubric.jsonl

evalkit score \
  --rubric packages/evalkit/examples/tutorial/rubric.jsonl \
  --responses packages/evalkit/examples/tutorial/model_outputs.jsonl \
  --labels packages/evalkit/examples/tutorial/labels.jsonl \
  --format json \
  --out /tmp/evalkit-tutorial-scores.json

evalkit report \
  --input packages/evalkit/examples/reports/tutorial_input.json \
  --out /tmp/evalkit-tutorial-report.html

The scoring output contains per-output weighted scores, pass/fail status, missing-label diagnostics, average score, and pass rate. The HTML report is a single offline file with explicit decisions, gates, findings, evidence, reproduction metadata, limitations, and omitted evidence.

Core Command Details

evalkit validate-rubric

Validates EvalKit JSONL or JSON-array rubric files and canonical rubric-spec v1 JSON objects.

evalkit validate-rubric rubric.jsonl --format json

Output formats are text, json, and jsonl.

evalkit lint-rubric

Runs deterministic rubric-authoring checks before labels or scores depend on a criterion.

evalkit lint-rubric rubric.jsonl --format json --fail-on warning

Rules cover compound criteria, vague wording, missing examples, missing weights, duplicate IDs or text, inconsistent severity, unscorable language, unavailable context, unclear scoring boundaries, and weight totals. Rules can be disabled explicitly with repeated --disable-rule arguments.

evalkit score

Aggregates supplied per-criterion labels into normalized weighted scores.

evalkit score \
  --rubric rubric.jsonl \
  --responses outputs.jsonl \
  --labels labels.jsonl \
  --pass-threshold 0.75 \
  --format json \
  --out scores.json

Output formats are json, jsonl, csv, and report-json. In --strict mode, any missing criterion label fails the command.

evalkit report

Renders a score payload or report input as Markdown, self-contained HTML, or the normalized auraone.evalkit.report.v1 JSON contract.

evalkit report \
  --input report-input.json \
  --out report.html

The output suffix selects the format; --format markdown|html|json overrides it. HTML reports contain embedded CSS, no JavaScript, and no remote assets. They separate identity, summary, quality gates, findings, evidence, reproduction metadata, limitations, and omitted evidence.

QA And Dataset Workflows

From packages/evalkit/ in a source checkout:

evalkit agreement examples/quality/agreement/tutorial_labels.jsonl
evalkit judge-calibrate examples/quality/judge/tutorial_judge_outputs.jsonl
evalkit drift examples/quality/drift/tutorial_batches.jsonl
evalkit leakage-check examples/quality/leakage/tutorial_prompts.jsonl
evalkit sample examples/quality/sampling/model_outputs.jsonl --strategy random --n 10
evalkit diff-rubric examples/quality/versioning/rubric_v1.jsonl examples/quality/versioning/rubric_v2.jsonl
evalkit weight-calibrate examples/quality/calibration/rubric_weight_scenarios.json

Agreement, judge calibration, drift, leakage, and weight calibration support --format text|json|jsonl. Sampling supports json and jsonl. Use --no-color anywhere in the command, or set the standard NO_COLOR environment variable, to disable ANSI styling in human-readable output.

Run evalkit --help or evalkit <command> --help for the authoritative command surface.

Data Contracts

Rubric rows require:

  • criterion_id
  • domain
  • task_type
  • criterion
  • weight
  • severity
  • scoring_type
  • examples
  • edge_cases
  • disagreement_risk

See the rubric schema documentation for field definitions and examples.

Scoring labels require:

  • output_id
  • criterion_id
  • score

Labels can also provide applicable and rationale. Scores are normalized by scoring type, multiplied by criterion weight, and divided by applicable rubric weight. Missing labels remain visible in each output record.

Runtime And Data Boundary

  • Core commands run in the local Python process over file paths supplied by the user.
  • No AuraOne account, API key, tenant, database, or private reviewer pool is required.
  • score aggregates existing labels; it does not run inference or create labels.
  • judge-calibrate analyzes saved judge outputs; it does not call OpenAI, AuraOne, or another model provider.
  • leakage-check compares local items and optional local reference corpora. It does not perform web search or prove the absence of contamination.
  • HTML reports are generated locally and contain no remote runtime assets.
  • Tutorial datasets and examples are synthetic. They are not expert-authored, human-validated, benchmark-grade, safety-certified, or suitable for model leaderboard claims.

Scope And Limitations

EvalKit is not a replacement for:

  • A model runner or public benchmark harness that executes standard tasks.
  • A hosted annotation platform with workforce management and task assignment.
  • Domain-expert validation of rubric meaning or release criteria.
  • A statistical guarantee that a reviewer, judge, dataset, or model is safe or production-ready.
  • A contamination search across the public web or private corpora that were not supplied as input.

Use EvalKit when the job is to make the judgment artifacts around an eval run more inspectable, repeatable, and reviewable.

Proof And Verification

The repository includes synthetic fixtures, command tests, package metadata checks, deterministic report tests, and wheel/sdist content verification.

cd packages/evalkit
python -m pip install -e ".[dev]"
python -m pytest -p no:cacheprovider -q tests
python -m build
python scripts/verify_release.py dist

Package verification checks version alignment, required report templates and schemas, the Jinja2 runtime dependency, expected wheel/sdist contents, and the absence of private font files. Passing these checks validates the local build; it does not prove that a registry publication has occurred.

Documentation

Next Actions

  1. Install the published package or the current source checkout.
  2. Run validate-rubric and lint-rubric on one real rubric before scoring.
  3. Score a saved output set with labels you already own.
  4. Add agreement, drift, leakage, or judge-calibration evidence where the release decision depends on those signals.
  5. Generate a self-contained report and store it with the evaluated inputs and source revision.

Contributing

Issues and focused pull requests are welcome. See the repository contributing guide, security policy, and AuraOne Open changelog.

License

MIT. See the repository LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

auraone_evalkit-0.3.0.tar.gz (65.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

auraone_evalkit-0.3.0-py3-none-any.whl (75.2 kB view details)

Uploaded Python 3

File details

Details for the file auraone_evalkit-0.3.0.tar.gz.

File metadata

  • Download URL: auraone_evalkit-0.3.0.tar.gz
  • Upload date:
  • Size: 65.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for auraone_evalkit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c9e06cd819aa72dd4b518c1d4da9a1f99262116d6f47f3f167b93341acd858e4
MD5 4ce7fd9d1f9c3b8d4bd2839bb64f8c5d
BLAKE2b-256 534a1404243ca860aeadda7a8471bc44ce7dbb7c69eacaa3faca076dc51f9bfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for auraone_evalkit-0.3.0.tar.gz:

Publisher: release-python.yml on auraoneai/open

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file auraone_evalkit-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: auraone_evalkit-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 75.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for auraone_evalkit-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47760f315419b9035df7d9e554dfa99b9199a4301bf7e5935529951ee1cf2669
MD5 f313ad743369f438037da796f124a5a7
BLAKE2b-256 c3b878450d513994f5816ec3659fbadebcfcb4bdc7c123cbbb8d7313a640b98a

See more details on using hashes here.

Provenance

The following attestation bundles were made for auraone_evalkit-0.3.0-py3-none-any.whl:

Publisher: release-python.yml on auraoneai/open

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page