diff --git a/eval/dovodka/contour.py b/eval/dovodka/contour.py index 173e1b93..5faadbbd 100644 --- a/eval/dovodka/contour.py +++ b/eval/dovodka/contour.py @@ -20,7 +20,7 @@ флагует потери для фиксера (вход A1/A4), и печатается отдельной осью результата. Политика владельца 10.08: потеря канона = дефект безусловно; художественность — отдельная ось. -Запуск: contour.py --plan | --selftest | --run [A1 A2 A3 A4 A6] | --floor +Запуск: contour.py --plan | --selftest | --run [A1B A2 A3 A4 A6F] | --floor """ from __future__ import annotations @@ -69,7 +69,15 @@ OUT = MONEY.OUT ANCHOR = "deepseek-v4-flash" # якорный черновик FIXER = "deepseek-v4-pro" # фиксер и критик — боевой редакторский движок DRAFT2 = "deepseek-v4-pro" # «качественный черновик» H-1 (арм D2 эксп-22) -ARMS = ("A1", "A2", "A3", "A4", "A6", "A6F") +ARMS = ("A1", "A1B", "A2", "A3", "A4", "A6", "A6F") + +# ⚠ ПОЧЕМУ A1 И A1B — ДВА АРМА, А НЕ ПЕРЕ-ПОКУПКА ОДНОГО. Куплённые 30 клеток `A1` получили список +# мест ТОЛЬКО от канон-гейта: батарея падала на 32/32 и ошибку глотал голый except (эррата Э-4). +# Переименовать их значило бы разойтись с полем `tag` внутри самих записей, а править оплаченное +# сырьё нельзя. Поэтому арм, объявленный заказом («батарея + канон-гейт»), покупается под НОВЫМ +# тегом `A1B` и он же несёт H-2а в первичном семействе; `A1` остаётся как есть и объявляется +# ОПИСАТЕЛЬНЫМ армом «только канон-флаги». Побочная выгода честная: разница A1B/A1 меряет, что +# добавляет батарея к канон-гейту, и это ответ на ту же гипотезу с другой стороны. # ⚠ ПОПРАВКА ФАЗЫ Д (11.08, после ревью 82 находок). Пре-рег Д0.5 называет A6 армом «dspro-черновик # + ОБА контура». Один арм двух контуров нести не может: контур — это способ получить выход, и @@ -479,7 +487,7 @@ def cmd_run(which: list[str]) -> None: if arm == "A2": # однопроходка уравненного мандата _buy(led, tag(arm, uid), a2_msgs(src), role="onepass", uid=uid, arm=arm) continue - if arm in ("A1", "A4", "A6F"): # детерминированные контуры + if arm in ("A1", "A1B", "A4", "A6F"): # детерминированные контуры target = base_a0(uid) if arm == "A4" else draft places = ([f"КАНОН: термин {g} передан не канонной формой либо пропущен" for g in canon_gaps(src, target)] if arm == "A4"