---
name: resolve-wrapper-conflict-toward-shared-body
description: "When one branch splits a gate fn into wrapper + shared body and the other adds a check to the old body, the check belongs in the SHARED body — and the existing tests will not tell you"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: a23c7b56-1bb5-41b1-b880-05d40c1daffc
  modified: 2026-07-29T22:15:13.532Z
---

Merging two branches where **A** split a function into a thin wrapper plus a wider-signature body, and **B** added a security check to the old single body, looks like a textual conflict and is actually a live gate-placement decision. Put the check in the **shared body**, then pin the entry point with a test.

Measured 2026-07-29 crossing W2b (sender stamp) into W3 (engine room): W2b split `access_check` into a wrapper + `access_check_with_sender`; W3 had added the engine room's inbound lock as step 0 of `access_check`. `wan.rs` — the MSG family, the exact traffic the inbound lock exists to refuse — calls `access_check_with_sender` directly. A lock left in the wrapper would have been **dead on the only family the lock targets**, and every existing lock test (all of which call the wrapper) would have stayed green.

**Why:** conflict resolution is judged by "does it compile and do the tests pass", and both properties hold for the wrong answer. The wrapper/body split moves the real callers off the path the tests exercise, so test coverage stops being evidence of reachability.

**How to apply:** at any wrapper/body conflict over a gate, grep the callers of BOTH entry points and ask which one the adversary's traffic uses (`grep -rn "fn_name\|fn_name_with_" --include=*.rs crates/`). Resolve toward the shared body. Then add a unit that calls the wider signature directly and asserts the refusal, plus an assert that wrapper and body agree — otherwise nothing stops a later refactor from hoisting the check back up. Same family as the W1 tier-1 finding and ADR-0052's two false clauses: [[verdict-from-probe-competence]], [[ff-only-absorbs-one-sibling-lane]], [[w3-engine-room-progress]].
