# Full-denominator audit completion

**Status:** `COMPLETE_WITH_HARD_FAILURE`
**Product pass:** `false`
**Frozen audit:** 17 AOIs, 3 arms, 51 slots

The original conditional audit left one AOI unassessed because the geometry
gate refused all three arms. That was correctly disclosed, but it left the
completion denominator open.

This addendum closes the accounting without changing the model, thresholds, or
the original measured metrics:

- `SN7-c6cca556a3ca` remains in the denominator.
- A geometry refusal is treated as **no detection**, not as missing data.
- The reference-visible support is eroded with the same 9×9 ellipse and zero
  border used by the delivery policy.
- Its `9,922` truth pixels become false negatives in every arm.
- All `51/51` algorithm-by-AOI slots now have an explicit outcome.

This is deliberately a **hard-failure** completion, not a success claim. The
context arm's full-denominator F1 becomes `0.269402`; the original assessed-only
F1 remains `0.276745`. The difference is the cost of refusing geometry instead
of silently dropping the scene.

| Arm | Full-denominator F1 | IoU | TP | FP | FN |
|---|---:|---:|---:|---:|---:|
| ORB/default | 0.087469 | 0.045735 | 14,147 | 89,192 | 205,989 |
| SIFT/MAGSAC classical | 0.088396 | 0.046242 | 14,368 | 90,489 | 205,859 |
| SIFT/MAGSAC + Context | **0.269402** | **0.155670** | 50,366 | 103,317 | 169,861 |

The original conditional metrics remain in
`submission/quality/AUDIT_METRICS.json`; this addendum is separate so the
historical evidence is not rewritten.

Machine-readable evidence:

- `submission/FULL_DENOMINATOR_COMPLETION.json`
- truth mask SHA-256:
  `29a751e4f05c48adf2e92503bf259aca787fd5799b732a203a377fe175748deb`
- support mask SHA-256:
  `4d3664a3ea5c31d03f7a0e9b14ad0229bc25f9e1ab551b5d79add483c50cc5b5`

**Boundary:** the scene still fails registration. This completion does not
make it a successful detection, does not establish product readiness, and does
not change `product_pass=false`.
