Phase 1: Plot and figure generation pipeline #78
No reviewers
Labels
No labels
bug
cli
core
docs
event
experiment
figure
invariant
metrics
oracle
phase-0
phase-1
phase-2
phase-3
phase-4
phase-5
phase-6
provenance
revocation
tests
workload
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erikinkinen/AES!78
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "1-plot-and-figure-generation-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #38
Summary
This PR adds a deterministic, script-driven Phase 1 figure pipeline that
generates all required figures directly from sweep raw tables
(
runs.csv+metrics_long.csv) with no manual plotting steps.It introduces:
tools/regen-figures.shworkflow,Scope
Included
tools/figures/phase1/plot_phase1_figures.pypython3 .../plot_phase1_figures.py --cost-dir <dir> --depth-dir <dir> --fanout-dir <dir> --out-dir <dir> [--formats png,svg]runs.csv,metrics_long.csv, required columns)completeness_holds_total / revocation_requests_totalmax
edges_scanned_cumulativecost_vs_completeness_by_workloaddepth_sensitivity_completenessdepth_sensitivity_costfanout_sensitivity_completenessfanout_sensitivity_costCanonical configs under
tools/figures/phase1/:sweep_cost_completeness.jsonsweep_depth_sensitivity.jsonsweep_fanout_sensitivity.json_smokevariants for CI smoke generationtools/regen-figures.shartifacts/phase1/rawartifacts/phase1/figuresaes sweep --config ... --out-dir ...commandsTests:
tests/phase1_figures_tests.pytests/phase1_figures_smoke.shtools/regen-figures.shtests/CMakeLists.txtCI update:
.forgejo/workflows/ci.ymlinstallspython3andpython3-matplotlibso figure smoke runs in CI.
Docs:
docs/phase1.mdnow documents the figure pipeline, input contract,canonical generation commands, one-command regen, and expected outputs.
Explicitly excluded
Design intent
The figure pipeline is a pure, deterministic transform from sweep raw tables
to figure files. This keeps experiment execution and presentation decoupled:
sweeps produce canonical raw data, and plotting consumes only those tables.
Determinism is enforced via stable sorting, fixed strategy ordering, fixed
Matplotlib rcParams, and stable save metadata configuration.
Phase discipline
This is Phase 1 tooling only. It builds directly on Phase 1 sweep outputs
without altering core simulation semantics or introducing a new metrics
version.
Verification
aes_phase1_figures_testspassesaes_phase1_figures_smoke_testpassesaes_cli_sweep_testsaes_cli_simulate_testsaes_metrics_runner_testsaes_revocation_outcome_metrics_testsNotes
Review focus: