Skip to content

Commit a51d1b3

Browse files
committed
feat(02-03): publish reproducible benchmark release
1 parent 34d2e04 commit a51d1b3

16 files changed

Lines changed: 1352 additions & 39 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@ jobs:
2222
python-version: ${{ matrix.python-version }}
2323
- run: python -m pip install -e .
2424
- run: python -m unittest discover -s tests -v
25-
- run: python -m cas_evals.cli benchmarks/v0.1/golden.json
26-
- run: python -m cas_evals.cli benchmarks/v0.1/adversarial.json
25+
- run: python -m cas_evals.cli benchmarks/v0.2/golden.json
26+
- run: python -m cas_evals.cli benchmarks/v0.2/adversarial.json
27+
- run: python -m cas_evals.release --check
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
phase: 02-shared-contracts-and-corpus
3+
plan: "03"
4+
status: complete
5+
completed: 2026-06-11
6+
requirements: [REL-01]
7+
---
8+
9+
# Plan 02-03 Summary
10+
11+
Added a deterministic standard-library release publisher and checked-in v0.2.0 benchmark artifacts. The release manifest records shared-contract provenance plus fixture and result artifact digests. Local verification and cross-platform CI now run the v0.2 suites and reject release drift.
12+
13+
Replaced the stale Phase 1 local result schema with a suite evidence schema that references the vendored published shared result contract.
14+
15+
## Verification
16+
17+
- `powershell -ExecutionPolicy Bypass -File scripts/verify.ps1` - 20 tests, both suites, and release reproducibility passed.
18+
- `python -m cas_evals.release --check` - passed.
19+
- `python -m compileall -q src tests` - passed.
20+
- `git diff --check` - passed.
21+
22+
## Deviations from Plan
23+
24+
**[Rule 2 - Missing Critical] Replaced stale local result schema** - The old local schema described the pre-shared-contract result shape and would mislead consumers. Replaced it with `evaluation-suite.schema.json`, which references the vendored published result contract.
25+
26+
**Total deviations:** 1 auto-fixed missing critical requirement. **Impact:** Contract documentation now matches emitted evidence.
27+
28+
## Self-Check: PASSED

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ Contributions must preserve deterministic, secretless execution.
44

55
1. Add or update reviewable fixtures.
66
2. Explain metric and threshold changes.
7-
3. Run `python -m unittest discover -s tests -v`.
8-
4. Run both benchmark suites through the CLI.
7+
3. Run `.\scripts\verify.ps1`.
8+
4. Regenerate release artifacts with `python -m cas_evals.release` when fixtures or evaluator behavior changes.
99
5. Do not include real secrets, customer data, or network-dependent tests.
1010

11-
Changes that alter result shape must update the schema and include compatibility notes.
11+
Changes that alter result shape must update the suite schema, shared-contract validation, release artifacts, and compatibility notes.

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ AI engineering claims are weak without reproducible evidence. This repository pr
1313
```powershell
1414
python -m pip install -e .
1515
python -m unittest discover -s tests -v
16-
python -m cas_evals.cli benchmarks/v0.1/golden.json --output artifacts/golden.json
17-
python -m cas_evals.cli benchmarks/v0.1/adversarial.json --output artifacts/adversarial.json
16+
python -m cas_evals.cli benchmarks/v0.2/golden.json --output artifacts/golden.json
17+
python -m cas_evals.cli benchmarks/v0.2/adversarial.json --output artifacts/adversarial.json
18+
python -m cas_evals.release --check
1819
```
1920

2021
The CLI exits non-zero when any mandatory metric fails, making each suite usable as a CI regression gate.
2122

22-
Windows users can run the complete verification path with `.\scripts\verify.ps1`. The checked-in [v0.1 benchmark report](docs/benchmark-report-v0.1.md) records the initial public baseline.
23+
Windows users can run the complete verification path with `.\scripts\verify.ps1`. The checked-in [v0.2 benchmark report](docs/benchmark-report-v0.2.md) and [`releases/v0.2.0/`](releases/v0.2.0/) artifacts record the reproducible public baseline.
2324

2425
## Metrics
2526

@@ -34,15 +35,17 @@ Cost and latency are fixture-supplied in v0.1 so results remain deterministic. F
3435

3536
## Evidence Contract
3637

37-
Results include `schemaVersion`, `evaluatorVersion`, `caseId`, `correlationId`, fixture SHA-256 digest, independent metric details, and pass/fail status. The schema is conceptually aligned with the CAS lifecycle and will consume versioned `cas-contracts` artifacts in the next phase.
38+
Every per-case result conforms to the published `cas-contracts` `EvaluationResult` v0.1.0 schema. The exact tagged shared schemas and immutable provenance are vendored under `vendor/cas-contracts/v0.1.0/`, so validation remains offline and standalone. Suite evidence adds fixture SHA-256 digests, independent threshold details, and mandatory pass/fail decisions.
3839

39-
See [`schemas/evaluation-result.schema.json`](schemas/evaluation-result.schema.json).
40+
See [`schemas/evaluation-suite.schema.json`](schemas/evaluation-suite.schema.json) and [`vendor/cas-contracts/v0.1.0/provenance.json`](vendor/cas-contracts/v0.1.0/provenance.json).
4041

4142
## Repository Layout
4243

4344
```text
44-
benchmarks/v0.1/ Golden and adversarial fixtures
45-
schemas/ Machine-readable result contract
45+
benchmarks/v0.2/ Representative golden and adversarial fixtures
46+
releases/v0.2.0/ Reproducible benchmark release artifacts
47+
schemas/ Machine-readable suite evidence contract
48+
vendor/cas-contracts/ Pinned published shared contracts
4649
src/cas_evals/ Pure evaluator and CLI
4750
tests/ Determinism, safety, and CLI contract tests
4851
.planning/ GSD project context, research, requirements, roadmap

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ Do not submit real secrets, proprietary prompts, customer data, or executable pa
44

55
Report vulnerabilities through GitHub private vulnerability reporting. For urgent issues, include affected version, reproduction steps, impact, and a proposed mitigation. Do not open a public issue before coordinated disclosure.
66

7-
The v0.1 evaluator performs no network calls and executes no fixture content.
7+
The evaluator, shared-contract validator, tests, benchmarks, and release generator perform no network calls and execute no fixture content.

docs/benchmark-report-v0.2.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# CAS Evals v0.2 Benchmark Report
2+
3+
**Released:** 2026-06-11
4+
**Evaluator:** `cas-evals 0.2.0`
5+
**Shared contract:** `cas-contracts v0.1.0`
6+
**Execution:** Deterministic local reference evaluation, no network or secrets
7+
8+
| Suite | Cases | Passed | Failed |
9+
|-------|------:|-------:|-------:|
10+
| `cas-golden-v0.2` | 8 | 8 | 0 |
11+
| `cas-adversarial-v0.2` | 6 | 6 | 0 |
12+
13+
The golden corpus covers planning, implementation, debugging, Azure identity, Foundry Next Gen agents, evidence reporting, delivery, and shared contracts. The adversarial corpus covers independent secret, verification, repository, architecture, offline, and metric-safety risks.
14+
15+
Every per-case result conforms to the provenance-pinned published shared evaluation contract. Safety remains a mandatory independent gate and cannot be offset by other metrics.
16+
17+
## Reproduce
18+
19+
```powershell
20+
python -m pip install -e .
21+
.\scripts\verify.ps1
22+
```
23+
24+
`python -m cas_evals.release --check` regenerates artifacts in a temporary directory and verifies byte-for-byte equality with [`releases/v0.2.0/`](../releases/v0.2.0/).

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "cas-evals"
7-
version = "0.1.0"
7+
version = "0.2.0"
88
description = "Reproducible evaluation framework for the Coding Autopilot System"
99
readme = "README.md"
1010
requires-python = ">=3.11"

0 commit comments

Comments
 (0)