Summary
benchmark/baseline.json's findingMetricsByType object preserves insertion order from the runner, which follows actual-emission order. This causes cosmetic diff noise across PRs whenever the set of emitted finding types changes (PR-2 removed cache, PR-4 removed rate_limit — each refresh reshuffles the remaining rows).
Evidence
What to do
- In
benchmark/runner.ts main() (around the --update-baseline write), sort the keys of findingMetricsByType alphabetically before serialization. Same for any other dynamic-key map in the JSON.
- Pure runner change; does not touch the metrics computation.
Acceptance criteria
Reference
Final code review on PR #111.
Summary
benchmark/baseline.json'sfindingMetricsByTypeobject preserves insertion order from the runner, which follows actual-emission order. This causes cosmetic diff noise across PRs whenever the set of emitted finding types changes (PR-2 removedcache, PR-4 removedrate_limit— each refresh reshuffles the remaining rows).Evidence
What to do
benchmark/runner.tsmain()(around the--update-baselinewrite), sort the keys offindingMetricsByTypealphabetically before serialization. Same for any other dynamic-key map in the JSON.Acceptance criteria
findingMetricsByTypekeys appear in alphabetical order in baseline.json after--update-baseline.Reference
Final code review on PR #111.