# Numeric price ordering&\#58; a reproducible fix

Status: reproduction-now-passing

Symptom: Prices such as 20, 3 and 100 are returned in string order.

Expected: Return numbers in ascending numeric order, retaining duplicates and negative values.

Declared root cause: The supplied helper converts each number to a string in its sort key, making digit text determine ordering.

Change: Remove the string key so numeric values use their natural ordering; preserve the original regression tests.

## Proof

- pass: Concrete failing reproduction — Baseline completed with nonzero exit and the specified failure marker
- pass: Fresh passing check — Post-change command completed with zero exit and no specified marker
- pass: Same reproduction command — Exact argv and working directory match
- pass: Observation order — Post-change capture started after baseline finished
- pass: Stable inputs during each run — Watched sources stayed unchanged while each command ran
- pass: Bounded complete log capture — Neither captured stream was truncated
- pass: Same watched scope with a source change — The same paths were watched, with at least one declared source hash changed
- pass: Preserved reproduction inputs — Declared regression tests and reproduction inputs have identical before/after hashes

## Remaining scope

- Passing evidence covers the selected reproduction, not all regressions or production behavior
- A captured command exit is not independent attestation, root-cause proof or a security certification
- Root cause, expected behavior and hypotheses are supplied interpretations to verify against code
- Only selected watched files are hashed; dependencies, environment and unlisted files can also affect results
- Input evidence is private local material; redaction and path removal are best effort, so review before sharing

Inspect the actual diff, run the relevant wider checks and verify the target environment before declaring the whole feature complete.