Convergence Profile Migration Guide¶
This guide explains how to move safely between strict, balanced, and robust convergence profiles.
Profile Contract¶
| Profile | Goal | Typical use | Risk posture |
|---|---|---|---|
strict |
deterministic diagnostics, bounded recovery | CI reproducibility, bug triage, regression isolation | lowest tolerance for implicit recovery |
balanced |
broad robustness with bounded cost | default program gate (Gate B/C) | moderate adaptive behavior |
robust |
maximize convergence on hard cases | deep stress debugging and extreme scenarios | highest adaptive tolerance |
Migration Path¶
- Start in
strictand ensure baseline reproducibility and typed telemetry coverage. - Move to
balancedonly after Gate A is stable. - Enable Gate B budgets (
--phase-key gate_b) and require stable-class non-regression. - Move to
robustonly for targeted stress classes and keep artifacts isolated.
Python API Snippet¶
import pulsim as ps
opts = ps.SimulationOptions()
opts.fallback_policy.convergence_profile = ps.ConvergenceProfile.Balanced
opts.fallback_policy.policy_dry_run = True
opts.fallback_policy.anti_overfit_check = True
opts.fallback_policy.anti_overfit_stable_budget = 0
Gate Expectations by Profile¶
strict- prioritize deterministic failures over aggressive recovery
- require complete typed diagnostics for each fallback event
balanced- require Gate B pass with stable-class guard metrics
- allow bounded policy recommendations and dry-run comparison
robust- allowed for targeted stress tracks
- must still satisfy cross-class non-regression budgets before promotion
Rollback Guidance¶
Rollback immediately when any of these occur:
policy_stable_mismatch_rateregresses over budgetpolicy_stable_anti_overfit_violation_rateregresses over budgettyped_convergence_schema_coverage_ratedrops below baseline budget
Recommended rollback sequence:
- revert profile to
strict - capture fresh artifacts (
benchmark_runner,stress_suite,kpi_gate) - inspect fallback trace deltas before re-enabling
balanced