---
name: assert-string-identity-must-include-the-predicate-subject
description: "Two \"exact-signature repeat\" reds were two mechanisms — the assert message survived a fix that changed the polled SUBJECT; a \"respelling\" logged as cosmetic was the semantic fix itself"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 0af19067-cc1a-4f14-99d2-fa3727d6d6b6
  modified: 2026-08-04T20:41:34.592Z
---

USHER #150 triage (2026-08-04): the `a_tree_teardown_reaches_a_grandchild` pair — byte-similar assert bodies at 184f2ac and 4b37512 — was classified a cross-sha exact-signature repeat. Source check showed the first red (10.176s) fired the PRE-fix bare-pid `provably_gone(grandchild)` poller (pid-reuse mechanism, retired by a5042ec `pin_process`), and it is the cited motivating incident in the fix's own comment; the second (10.225s) fired POST-fix on a pinned identity. The "provably_gone respelling" logged as a line-mover WAS the fix. One assert string, two mechanisms; the repeat count was wrong and the disposition tree keyed on it.

**Why:** assert-body diffing (the ruled repeat-detection method after line numbers proved nothing) still under-identifies: the message string can survive a change to WHAT the assert measures. The failing frame's identity is (message × the predicate's SUBJECT), not the message alone. Kin: [[announce-token-from-the-failing-frame-not-the-register]], [[verify-the-subject-not-just-the-measurement]].

**How to apply:** When calling two reds at different shas "the same signature", diff the assert's INPUT chain (what expression feeds the condition, what process/artifact it reads), not just the assert text. Any commit between the two shas that touches the predicate's subject — especially one whose message cites the FIRST red as its motivation — splits the pair into pre-fix and post-fix observations. A pre-fix specimen retires with its fix; only post-fix observations count toward "repeating".
