Depends on:
#236
#237
#238
Populate DiagnosticIssue.score with iteration-impact fractions for typical bottlenecks and stragglers. Replace the fixed Step Time kind-priority table with severity, score, and scope tie-breaking. Preserve all qualifying secondary issues.
Minimal code surface:
diagnostics/step_time/api.py
diagnostics/common.py only if the shared ordering helper needs adjustment
reporting/primary_diagnosis.py
- primary-selection and final-summary tests
Acceptance:
- A larger critical impact wins over a smaller warning impact.
- Within one severity, the larger iteration impact wins.
- A rank straggler wins only an exact impact tie with a typical bottleneck.
diagnosis == issues[0] remains true.
- Run-level primary evidence uses the same score and denominator.
Depends on:
#236
#237
#238
Populate
DiagnosticIssue.scorewith iteration-impact fractions for typical bottlenecks and stragglers. Replace the fixed Step Time kind-priority table with severity, score, and scope tie-breaking. Preserve all qualifying secondary issues.Minimal code surface:
diagnostics/step_time/api.pydiagnostics/common.pyonly if the shared ordering helper needs adjustmentreporting/primary_diagnosis.pyAcceptance:
diagnosis == issues[0]remains true.