Add arm A1B carrying the ordered flag contour with the battery wired, keeping the paid canon-only A1 cells intact as a descriptive arm

This commit is contained in:
heaven 2026-08-11 03:57:59 +03:00
parent cf85678e2a
commit 415f54f098

View file

@ -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"