# Checkout boundary failure — causal debugging lab

Goal: produce a defensible Root Cause Record v1. Do not start by editing the newest-looking file.

## Known behavior

- `python tools/reproduce.py` reproduces one coupon/tax boundary mismatch.
- `python run_tests.py` runs the current baseline tests.
- Three regions are intentionally plausible: discount calculation, tax calculation, and checkout wiring/state.
- `context/recent_commit_marker.txt` and `logs/checkout.log` contain cues that may or may not be causal.
- A compatibility option can hide the visible symptom; hiding the symptom is not sufficient closure.

## Required evidence

1. Record exact reproduction and nearest passing boundaries.
2. Record at least two competing hypotheses with `phase=PRE_MODIFICATION` before changing production code.
3. Reject at least one plausible alternative using a discriminating probe and reference that ledger row from the Root Cause Record.
4. Reduce the case while preserving the mismatch.
5. Make a bounded correction, state what you do *not* claim, and record the original reproduction result after correction.
6. Add a recurrence sensor.
7. Record mutation description, mutation/pre-fix result, and post-fix result separately.
8. Record documentation used, AI/tool support, learner validation, residual uncertainty, and the final ACCEPT/MODIFY/REJECT/BOUNDED_DEFER decision.

**Support timing:** AI/documentation may suggest additional search or probe options only after the required retrieval/first-diagnosis probe has been closed. All blocking evidence, validation, claim boundaries, and the final sufficiency decision remain yours.

Foundation route: `evidence/foundation_guided/` is a partially structured first pass with one suggested next probe. Delete that cue and move to a blank locale/canonical template before independent work. Never use the guided scaffold for the shipping transfer.

No network access or external packages are required.
