Performance rules
Performance optimization must preserve the accepted scientific implementation.
Rules:
measure before optimizing;
keep science acceptance separate from runtime acceptance;
use the same model/input/data/compiler when comparing timings;
record CPU features and thread settings;
prefer generic source-equivalent optimizations over element/model-specific shortcuts;
do not reopen frozen Type50, trajectory, matrix, or transport semantics merely for speed;
after a behavior-affecting optimization, qualify one fast model before broadening coverage.
Historical performance reports remain available through version-control history and release tags. They are useful attribution evidence, not current user-facing performance guarantees.