diff --git a/docs/benchmarks/multi_family_admissibility_benchmark.md b/docs/benchmarks/multi_family_admissibility_benchmark.md index 5960b7a..900ae5e 100644 --- a/docs/benchmarks/multi_family_admissibility_benchmark.md +++ b/docs/benchmarks/multi_family_admissibility_benchmark.md @@ -65,6 +65,17 @@ python scripts/generate_multi_family_admissibility_artifact.py npm run generate:multi-family-admissibility ``` +## Deterministic SVG rendering + +The benchmark also includes a deterministic SVG rendering step: + +- Input: `artifacts/multi_family_admissibility_results.json` +- Output: `artifacts/multi_family_admissibility_curves.svg` +- Script: `scripts/render_multi_family_admissibility_svg.py` +- npm command: `npm run generate:multi-family-svg` + +The SVG output is deterministic by design with fixed dimensions, fixed axes, fixed degradation level order, lexicographic family order, a hardcoded palette, no timestamps, no generated IDs, and no embedded JavaScript. + ## Validation commands Run the targeted protections plus the repository-wide check entrypoint: @@ -73,6 +84,7 @@ Run the targeted protections plus the repository-wide check entrypoint: pytest tests/test_multi_family_admissibility_artifact.py -q pytest tests/test_artifact_reproducibility.py -q pytest tests/test_manifest_fixture_families.py -q +pytest tests/test_multi_family_svg_renderer.py -q npm run check ```