From 9c1a9e0f178eb67d9f626152318f79dce053fe68 Mon Sep 17 00:00:00 2001 From: Claude Opus 5 Date: Tue, 8 Sep 2026 14:23:35 +0200 Subject: [PATCH] ARCH-02: M7's evidence was filtered out by its own finding kind The mutation battery prints the distinct findings each mutation caused, matched on the finding's KIND. The pattern's character class was `[A-Z -]`, which has no underscore - so `UNIQUE_ID DRIFT:` did not match, and M7, the mutation that renames `mqtt.BASE`, printed its verdict with no evidence under it at all. A filter that silently drops the very finding a mutation exists to produce is the same defect as the rest of this card, at display scale. No behaviour change: M7 was red before and is red now, and it now shows why. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU --- goodwe_controller/test_rehearse.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/goodwe_controller/test_rehearse.py b/goodwe_controller/test_rehearse.py index e68d0c6..7ae1ec2 100644 --- a/goodwe_controller/test_rehearse.py +++ b/goodwe_controller/test_rehearse.py @@ -493,7 +493,13 @@ for mid, control, what, edits, must_say in MUTATIONS: seen = [] for line in out.splitlines(): text = line.strip() - if text.startswith("⚠️ ") and re.match(r"⚠️ [A-Z][A-Z -]+[A-Z()]:", text): + # ⚠️ `_` IS IN THE CLASS. Without it `UNIQUE_ID DRIFT:` does not match + # its own finding kind, and M7 - the mutation that renames `mqtt.BASE` + # - printed its verdict with NO evidence under it. A filter that + # silently drops the very finding the mutation exists to produce is a + # small version of the same defect this file is about. + if text.startswith("⚠️ ") and re.match(r"⚠️ [A-Z][A-Z _-]+[A-Z()]:", + text): if text not in seen: seen.append(text) for text in seen: