From 72d80dfd609e49072efb39be465e7186ab3c2f26 Mon Sep 17 00:00:00 2001 From: m17hr1l Date: Mon, 18 May 2026 21:02:32 +0200 Subject: [PATCH] =?UTF-8?q?stage-6:=20psyc-v4=20=E2=80=94=20well-posed=20s?= =?UTF-8?q?everity=20input=20(source-agnostic=20status)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _ex_severity_classification copied only URLhaus's `url_status` into the task input, so Feodo botnet cases lost the online/offline signal their label depends on — v3 severity eval stuck at 7/8 with one unlearnable example. The input now carries a normalized `status` (url_status or status), matching the field classify.py already uses for the label. Co-Authored-By: Claude Opus 4.7 --- src/psyc/lines/train.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/psyc/lines/train.py b/src/psyc/lines/train.py index 0ebadd7..3610c94 100644 --- a/src/psyc/lines/train.py +++ b/src/psyc/lines/train.py @@ -105,7 +105,7 @@ def _ex_severity_classification(case: Case) -> Optional[Example]: "summary": case.summary, "source_type": case.source_type, "incident_type": case.classification.incident_type.value if case.classification.incident_type else None, - "url_status": case.source_metadata.get("url_status", ""), + "status": case.source_metadata.get("url_status") or case.source_metadata.get("status", ""), "victim_country": case.victim.country, "critical_infrastructure": case.victim.critical_infrastructure, "url_count": len(case.observables.urls),