SplitProof 0.2.0
Released 2026-08-31.
SplitProof 0.2 adds weighted multi-label group balancing, explainable diagnostics, and bounded
deterministic local improvement. New manifests move to schema 2 and assignment algorithm 3 while
retaining explicit verification support for schema-v1 evidence.
Highlights
- Records can carry finite positive record weights, and each indivisible group contributes one
consistent effective group weight. Stratified group splits and k-fold assignment balance
non-empty multi-label sets. - One shared, scale-free objective reports count, record-weight, group-weight, and per-label-weight
contributions. JSON and Markdown diagnostics expose deviations and group leakage separately from
assignment generation. - Algorithm v3 performs deterministic greedy placement followed by bounded strict-improvement
single-group moves. Pair swaps are additionally considered for at most 32 groups, and
max_local_iterations=0provides a reproducible greedy-only comparison. - Schema-v2 fingerprints cover normalized label sets and both weight types. Manifest verification
rejects malformed ratios, normalized duplicate IDs, unchecksummable values, coverage drift, and
group leakage where the selected algorithm promises group integrity. - The CLI accepts
--weight-fieldand--group-weight-fieldand protects inputs/outputs from path
collisions, including hard-link aliases. - A deterministic quality fixture compares seeded random groups, record hashing, the historical v2
greedy projection, v3 greedy-only placement, and the complete v3 optimizer.
Compatibility and migration
Schema-v1 manifests remain readable and verifiable under their historical fingerprint of record ID,
group, and scalar label. That verification cannot attest to v0.2-only labels or weights.
Two explicit migration paths are documented:
- Preserve published assignments, then create a schema-v2 manifest over the reviewed v0.2 records
and unchanged destinations. - Adopt algorithm v3 under a new split/release identifier and review assignment and diagnostic
changes against the verified v1 baseline.
Algorithm v3 can move groups because its objective and local search differ from historical versions;
a schema migration must not be represented as a no-op algorithm upgrade.
Verification
The release candidate passed 102 tests with 92.96% branch coverage. Boundary tests cover strict
diagnostic and manifest failures, weights and extreme finite ratios, normalized duplicate IDs,
scale invariance, deterministic ties, the 32-group swap cutoff, schema-v1 disk migration, and
hard-linked CLI paths. In the repository synthetic fixture, the checked optimized_v3
result has objective 0.0083414534 and zero group leakage; these values describe only that fixture,
not a universal quality guarantee.
Known boundaries
- Algorithm v3 is a deterministic bounded heuristic, not a global optimizer. Search stops when no
strict improvement exists or at its iteration limit; pair swaps are disabled above 32 groups. - Record and group weights must be finite and strictly positive. Stratified operations require each
record to have at least one label, and group-weight values must agree within a group. - Record-hash splitting intentionally does not preserve groups. Other built-in group-aware
algorithms treat group leakage as a verification failure. - The dataset fingerprint covers split-relevant normalized fields, not arbitrary payload bytes. The
manifest checksum detects accidental modification but is not a digital signature.