AuraOne EvalKit
A local Python CLI for turning AI evaluation rubrics, model outputs, and reviewer labels into validated, scored, auditable eval results.
- Validate rubric files before they become production eval contracts.
- Lint criteria for vague wording, compound checks, missing examples, and weight problems.
- Score model outputs from local labels with deterministic JSON, JSONL, CSV, or report-ready output.
- Audit reviewer agreement, judge calibration, drift, leakage risk, sampling, and rubric diffs without an API key.
Install
pip install auraone-evalkit
Requires Python 3.10 or newer.
Quickstart
Create one rubric, two model outputs, two labels, then score them locally:
mkdir -p /tmp/evalkit-demo
cat > /tmp/evalkit-demo/rubric.jsonl <<'JSONL'
{"criterion_id":"helpfulness","domain":"support","task_type":"answer_quality","criterion":"Answer resolves the user's request with a concrete next step.","weight":1.0,"severity":"warning","scoring_type":"scale_0_1","examples":[{"positive":"Names the fix and the next command to run.","negative":"Gives a vague reassurance."}],"edge_cases":["partial answers"],"disagreement_risk":{"level":"low","notes":"The expected next step is visible in the answer."}}
JSONL
cat > /tmp/evalkit-demo/responses.jsonl <<'JSONL'
{"output_id":"answer-1","output":"Restart the worker, then run the health check to confirm jobs drain."}
{"output_id":"answer-2","output":"Looks fine to me."}
JSONL
cat > /tmp/evalkit-demo/labels.jsonl <<'JSONL'
{"output_id":"answer-1","criterion_id":"helpfulness","score":1.0}
{"output_id":"answer-2","criterion_id":"helpfulness","score":0.25}
JSONL
evalkit validate-rubric /tmp/evalkit-demo/rubric.jsonl
evalkit score \
--rubric /tmp/evalkit-demo/rubric.jsonl \
--responses /tmp/evalkit-demo/responses.jsonl \
--labels /tmp/evalkit-demo/labels.jsonl \
--format json
The score output includes per-output scores, pass/fail status, missing-label diagnostics, and a summary with average score and pass rate.
What You Can Build
- CI checks that reject malformed or low-quality rubric changes before an eval run starts.
- Offline eval scoring jobs for saved model outputs and human-supplied labels.
- Reviewer agreement reports for annotation QA and calibration review.
- Rubric diffs that separate wording edits from scoring-impact changes.
- Leakage, drift, sampling, judge-calibration, and dataset-card workflows for eval operations.
Why AuraOne EvalKit?
- Rubric files stay inspectable. EvalKit works with JSONL or JSON-array rubrics that can be reviewed, diffed, and versioned in git.
- Scoring is deterministic. The
scorecommand aggregates labels you provide; it does not call hosted services or generate hidden judge labels. - Authoring feedback is immediate.
validate-rubriccatches schema issues, whilelint-rubriccatches common criterion-quality problems before reviewers see the rubric. - QA workflows share one CLI. Agreement, drift, leakage, sampling, reports, dataset cards, and rubric diffs use the same local
evalkitentry point.
Compared To Adjacent Tools
EvalKit is not a replacement for experiment trackers, hosted annotation platforms, or full benchmark harnesses. It focuses on the local judgment layer around rubrics, labels, and review QA.
| Need | AuraOne EvalKit | Adjacent tools |
|---|---|---|
| Validate and lint rubric contracts | Built-in CLI commands for rubric structure and criterion quality | Often handled with custom scripts or platform-specific schemas |
| Score saved outputs from reviewer labels | Deterministic local scoring with JSON, JSONL, CSV, and report JSON output | Evaluation harnesses often focus on model execution and benchmark tasks |
| Analyze reviewer quality signals | Agreement, drift, leakage, judge calibration, and sampling commands live in one package | Annotation platforms may provide dashboards but are not usually local-first |
| Run without a hosted account | No AuraOne API key, tenant, database, or network call is required for core commands | Hosted platforms usually require service credentials |
Use a benchmark harness instead if you need to run standard public benchmark tasks end to end. Use an annotation platform instead if you need workforce management, task assignment, or hosted review UI.
Commands
evalkit validate-rubric
Validates EvalKit JSONL or JSON-array rubric files, and accepts canonical rubric-spec v1 JSON objects as input.
evalkit validate-rubric examples/tutorial/rubric.jsonl --format json
Validation errors include row number, field, message, and a suggested fix.
evalkit lint-rubric
Runs deterministic rubric quality checks that catch common authoring problems before scoring.
evalkit lint-rubric examples/tutorial/rubric.jsonl --format json
The linter includes rules for compound criteria, vague wording, missing examples, missing weight, duplicate IDs, duplicate text, inconsistent severity, unscorable language, unavailable context, unclear scoring boundaries, and weight totals.
evalkit score
Aggregates per-criterion labels into deterministic weighted scores.
evalkit score \
--rubric examples/tutorial/rubric.jsonl \
--responses examples/tutorial/model_outputs.jsonl \
--labels examples/tutorial/labels.jsonl \
--format json \
--out /tmp/evalkit-tutorial-scores.json
Supported output formats are json, jsonl, csv, and report-json.
More CLI Workflows
From a source checkout, try the bundled examples:
evalkit agreement examples/quality/agreement/tutorial_labels.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 --count 10
evalkit diff-rubric examples/quality/versioning/rubric_v1.jsonl examples/quality/versioning/rubric_v2.jsonl
Run evalkit --help or evalkit <command> --help for the full command reference.
Data Contracts
Rubric rows are JSON objects with required fields:
criterion_iddomaintask_typecriterionweightseverityscoring_typeexamplesedge_casesdisagreement_risk
See the rubric schema docs for the full schema and examples.
Scoring labels use:
output_idcriterion_idscore- optional
applicable - optional
rationale
Scores are normalized by scoring type, multiplied by criterion weight, and divided by the applicable rubric weight. Missing labels are reported in every output record. In --strict mode, missing labels fail the command.
Examples And Docs
- Tutorial data:
examples/tutorial/ - Rubric schema docs:
docs/schema/rubric-schema.md - Agreement docs:
docs/agreement/README.md - Drift docs:
docs/drift/README.md - Leakage audit docs:
docs/leakage-audit.md - Reports docs:
docs/reports.md - Dataset card docs:
docs/cards/README.md
Compatibility And Limitations
- Requires Python 3.10 or newer.
- EvalKit runs locally and does not require an AuraOne account, API key, hosted tenant, database, or private reviewer pool.
- Tutorial data and bundled examples are synthetic. They are not expert-authored benchmarks and should not be used to publish model-quality claims.
- The scorer aggregates labels supplied by the user. It does not generate labels, call LLM judges, or contact AuraOne hosted services.
- The linter is a deterministic authoring aid, not a replacement for domain review.
auraone-evalkitis the local open-source package. Useauraone-sdkor@auraone/sdkonly when you intend to call hosted AuraOne APIs.
Related AuraOne OSS Projects
EvalKit is part of the broader AuraOne open-source evaluation stack:
| Project | Purpose |
|---|---|
rubric-spec |
Portable rubric schema, validator, linter, diff, and framework adapters. |
iaa-kit |
Inter-annotator agreement metrics with bootstrap intervals and skew-aware statistics. |
judge-bench |
Diagnostic probes for judge-model bias, calibration, and stability. |
eval-adapter |
Shared run config and result normalization across evaluation frameworks. |
judge-card |
Disclosure card schema, generator, renderer, and validator for judge models. |
datasheet-ci |
GitHub Action and Python validator for dataset/model/data-card documentation. |
contamination-audit |
Synthetic-safe contamination detectors and reproducible audit reports. |
evalkit-action |
EvalKit scoring and reporting in pull-request CI. |
robotics-reviewkit |
VLA review anchors, event streams, analyzers, exporters, and React viewer. |
Development
cd packages/evalkit
python -m pip install -e ".[dev]"
python -m pytest -q tests
python -m build
Contributing
Issues and focused pull requests are welcome. See the repository-level contributing guide, security policy, and 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file auraone_evalkit-0.2.1.tar.gz.
File metadata
- Download URL: auraone_evalkit-0.2.1.tar.gz
- Upload date:
- Size: 52.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10748d5a6cdf7ad6d20cbaaf286bd9326931c98eb6cb5111edeb585b27d1f9c1
|
|
| MD5 |
2868c240bd9ae210f6bde261e2098011
|
|
| BLAKE2b-256 |
065ca8784c00be8e9694675f8de53800883e97c0ad8afd232f4d29260553f659
|
Provenance
The following attestation bundles were made for auraone_evalkit-0.2.1.tar.gz:
Publisher:
release-python.yml on auraoneai/open
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
auraone_evalkit-0.2.1.tar.gz -
Subject digest:
10748d5a6cdf7ad6d20cbaaf286bd9326931c98eb6cb5111edeb585b27d1f9c1 - Sigstore transparency entry: 2109187404
- Sigstore integration time:
-
Permalink:
auraoneai/open@f14253719a9c3bfe2b282b816bab24929529fb3e -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/auraoneai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@f14253719a9c3bfe2b282b816bab24929529fb3e -
Trigger Event:
push
-
Statement type:
File details
Details for the file auraone_evalkit-0.2.1-py3-none-any.whl.
File metadata
- Download URL: auraone_evalkit-0.2.1-py3-none-any.whl
- Upload date:
- Size: 64.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b359421f77b8110e8f1e315d3521f53e7585405a8d7db0142d34bc26107393fc
|
|
| MD5 |
d19284d544895bbdc97e8a7a66fada78
|
|
| BLAKE2b-256 |
04145539891b5d1ca73f9a13d73d84858c67c037762018fffc06de60088776c1
|
Provenance
The following attestation bundles were made for auraone_evalkit-0.2.1-py3-none-any.whl:
Publisher:
release-python.yml on auraoneai/open
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
auraone_evalkit-0.2.1-py3-none-any.whl -
Subject digest:
b359421f77b8110e8f1e315d3521f53e7585405a8d7db0142d34bc26107393fc - Sigstore transparency entry: 2109187515
- Sigstore integration time:
-
Permalink:
auraoneai/open@f14253719a9c3bfe2b282b816bab24929529fb3e -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/auraoneai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python.yml@f14253719a9c3bfe2b282b816bab24929529fb3e -
Trigger Event:
push
-
Statement type: