Владелец гейта = этот агент (первый фильтр). Финальный судья = Антон. Ревьюер read-only: в волт не пишет, контент не правит, только вердикт.
Веса: ⛔ = хардстоп (fail) · ⚠️ = предупреждение (2+ → manual). Классы в скобках.
Сигнал: Антон голосом 12.07 «рерайтер пишет слишком правильно/мыльно, сразу читается как робот» + 14.07 «рилс-посты звучат синтетически, написано ИИ». Разобрано 28.07 замером, не на ощупь: 42 наших написанных черновика (content-factory\episodes\*\longread-ru.md + medium-fb.md, 25 240 слов) против реальных текстов Антона (★ЭТАЛОН 06.06 = его собственная правка в 04-Projects\personal\facebook-diary-auto\_STYLE.md, 3 его FB-поста оттуда же, DM-корпус 3 273 реплики). Частоты ниже = на 1000 слов, наши → его. Применять ТОЛЬКО к авторскому голосу Антона (пост/дневник/тизер/лонгрид/ФА); дев-лог, arXiv и служебка судятся своим голосом. Родня: [[fa-anton-voice]] (тот же диагноз для follow-up'ов), [[medium-voice-default]].
-
P26 ⛔ Зеркальная антитеза «X, а не Y». Замер: мы 1.82, он 0.00 (обе выборки), DM 0.05. Проверка: ,\s+а\s+не\s+ → ≥1 на 1000 слов = FAIL. ⚠️ Прямую «не X, а Y» НЕ трогать: замер показал, что это ЕГО приём (он 3.03–5.21, мы 2.93).
-
P27 ⛔ «это не X, это Y». Замер: мы 0.48, он 0.00. Проверка: [Ээ]то\s+не\s+[^.!?]{1,60}[.,]\s*[Ээ]то\s → любое вхождение = FAIL.
-
P28 ⚠️ Риторическая триада «A, B и C». Замер: мы 2.77, он 0.00 / 0.00, DM 0.32. Проверка: \b\w{3,},\s+\w{3,}\s+и\s+\w{3,}\b > 1.0 на 1000 слов → warn (фактический перечень пунктов ≠ риторическая триада, судить по смыслу).
-
P29 ⚠️ Ровный ритм. Замер: коротких предложений (≤5 слов) у нас 24%, у него 33–50%. Проверка: <30% → warn. Он рвёт ритм: «Вообще. Совсем. Ноль.» Ср. длина предложения при этом СОВПАДАЕТ (11.4 vs 10.8) — мерить надо разброс, а не среднее.
-
P30 ⛔ Нет его словаря и нет его самого. Главный маркер: лексикон у нас 1.62, у него 18.21 (в 11 раз меньше) + первое лицо «я/мне/мой» у нас 17.9, у него 50.1. Мы пишем ПРО СИСТЕМУ, он пишет ПРО СЕБЯ. Проверка: словарь (видюха · второй мозг/вторая голова · openclaw · ЧАТжпт · промудохался · спойлер · блин · облажался · стыдно · идиот) < 4 на 1000 слов ИЛИ «я/мне/мой» < 25 на 1000 слов → FAIL. Плюс ##-заголовки в теле FB/TG-поста (у него их нет) = FAIL.
-
⛔ Не судить как ваниль (замер ОПРОВЕРГ, не выдумывать): афоризм в конце абзаца (он 20.0%, мы 17.6% — не наш признак) · средняя длина предложения (совпадает) · восклицания и )) в постовом регистре (в ★ЭТАЛОНЕ их 0; это DM-регистр, см. [[style-anton-dm-register]]) · длинные тире (P9 отключён).
-
P31 ⛔ (B) БЕЗ КУПЮР — его формулировка не смягчается. Сигнал: голосовая Антона 05.08.2026 (hub:5155, origin: anton, дословно): «если я сказал „говно“ или сказал про цвет кожи и так далее — значит, так и надо говорить»; «запрещено изменять смысл, улучшать, подшлифовывать, потому что таким образом убирается эмоциональная сила этого поста»; «запрещено подправлять политкорректность или убирать расу, неприязнь»; «у меня в принципе этого нет, но даже если робот показал, что она есть, — он не прав». Проверка (LLM-суждение, нужен ИСТОЧНИК рядом с черновиком): сравнить черновик с исходной расшифровкой/материалом — резкое слово заменено мягким, оценка выброшена, этническое/расовое/этическое упоминание вычищено, «улучшена» формулировка → FAIL. Нет источника под рукой → manual, не PASS: без источника купюру не увидеть. ⚠️ Честная граница: правила площадки (platform_rules.json, platform_gate.py) — решение о ПУБЛИКАЦИИ (куда и в каком виде идёт текст), а НЕ разрешение редактировать смысл; конфликт → текст остаётся как есть, а «постить сюда или нет» решает Антон. ⛔ P31 не разрешает генерировать оскорбления ОТ СЕБЯ — он про слова Антона. Родня: [[voice-verbatim-no-sanitizing]], P10, P14.
-
P32 ⛔ (A,B,D) Сжатую мысль не разжимаем — объём задаёт мысль, не квота. Сигнал: голосовая Антона 21.08.2026 (hub:5671, origin: anton, дословно): «если у нас, условно говоря, есть 300 байт текста из какого-нибудь тизера, мы не пытаемся сделать из них килобайт текста. Это глупо… мы никогда не разжимаем сжатую мысль, если нас специально об этом не попросят»; про прежнюю практику лонгридов — «Наташа брала наши краткие мысли и пыталась сделать лонгрид. Это неправильно. Зачем нам строить больше некачественной информации?». Проверка (LLM-суждение, нужен ИСТОЧНИК рядом с черновиком): черновик длиннее источника, а новых фактов не прибавилось — только вода, разжёвывание, примеры ради примеров, введение/вывод → FAIL. Исключение (PASS): была прямая команда «сделай подробную разъясняющую записку / декомпозируй эту мысль». Не путать с длиной как таковой: девлог/лонгрид из МНОГИХ разных событий законно длинный — правило бьёт по растягиванию ОДНОЙ мысли. Нет источника под рукой → manual. Родня: [[reglament-ne-razzhimaem-szhatuyu-mysl]], [[never-inflate-compressed-content]], P11 (вода), [[reglament-ezhednevnaya-para-longrid-i-devlog]] (формула A+B+C+D — лонгрид собирается из постов, а не надувается из одного).
-
P33 ⛔ (A,B,D) Мысль длиннее трёх предложений — абзацами, не полотном. Сигнал: голосовая Антона 31.08.2026 (hub:5948, origin: anton, дословно): «Они просто херачат одним полотном»; «Я с тех пор запретил сотрудникам писать любую мысль, если она длиннее трёх предложений, не разделяя её пустой строкой или абзацами»; «иначе вашим читающим крайне тяжело прочитать всю эту хуйню, что вы написали». Не первый раз: 21.02.2026 ([[concept-writing-clarity]]) и 27.05.2026 («Я в шоке: всё речь идёт про абзацы»). Проверка (детерминированная, 0 токенов): python ~/.claude/scripts/paragraph_lint.py <файл> — блок между пустыми строками содержит >3 предложений → FAIL (списки, таблицы, код-блоки, YAML-шапка, цитаты-блоки исходника — вне счёта). ⚠️ Граница: это про ФОРМУ, не про длину. Разбивка не даёт права дописать ни слова (P32 сверху) и не разрешает править формулировки Антона (P31/P10 сверху). Одна мысль на два предложения дробить искусственно — тоже нарушение (анти-паттерн, ср. [[reglament-droblenie-dlinnoj-mysli-na-2-3-puzyrya]] — там же про мессенджеры). Машинный формат (JSON/CSV/лог/код) — вне юрисдикции. Родня: [[reglament-abzacy-mysl-dlinnee-treh-predlozheniy]], [[paragraphs-three-sentence-rule]], P17 (приветствие отдельной строкой — та же ось).
-
P34 ⛔ (B) Текст для людей — история, не мысли вслух (storytelling). Сигнал: голосовая Антона 02.09.2026 (origin: anton, дословно): «когда я пишу свои мысли, они мало кому интересны. Потому что <…> это не storytelling, а просто мысли вслух, которые вообще не связаны с контекстом: с моими приключениями, с моей жизнью»; «очень важно мне всегда рассказывать историю»; «чтобы даже домохозяйке было интересно читать — like I'm five, простыми словами. Инженеры всё равно аллегории поймут. А домохозяйке про упавшие рутины, про протухший Python, может быть, слушать не стоит». ⭐ ПРЕ-ТЕСТ (anton 03.09 вечер, голосом): «это история ПРО ЧЕЛОВЕКА или про сервер?» — сюжет обязан быть про живого человека и его эмоции (страх·стыд·безденежье·неудачи·страдания·камбэк), железо = декорация; пост, где главный герой — инфраструктура, интересен роботу, не читателю → FAIL до всякого чек-листа (раздел «О чём истории» реглумента). ⭐⭐ СЛОЙ v2 (05.09.2026, из синтеза DR26-09-03-HUB-01-2037): пре-тест усилен до ВОСЬМИ бинарных вопросов «про человека или про железо?» — раздел «СЛОЙ v2» того же реглумента (единственный источник, копию сюда не тащить); порядок дверей жёсткий: сначала 8 вопросов v2 (про КОГО история, минимум 6 «да»), потом десятка ниже (ЕСТЬ ЛИ история), жёсткие стопы обоих списков складываются. Затем проверка (LLM-суждение, с 03.09.2026 — по ЧЕК-ЛИСТУ ИЗ 10 ВОПРОСОВ): открыть раздел «Чек-лист приёмки» в $OBSIDIAN_VAULT\03-Insights\Operations\reglament-vsegda-rasskazyvay-istoriyu-storytelling.md (единственный источник, копию сюда не тащить) и прогнать все 10: герой от первого лица («я», не «мы» — anton 03.09.2026, хардкод; «мы» как субъект = FAIL, родня P30) · цель · «но» · изменение · артефакт · мораль после сцены · аналогия вместо жаргона · ноль выдуманных деталей · механизм для инженера · сцена жива после −30% слов. Вердикт: 8–10 «да» = PASS · 6–7 = вернуть на один проход ABT (⚠️) · ≤5 = FAIL («не история»). Жёсткий стоп при любой сумме: выдуманная деталь / гипотеза как причина / неоплаченный вопрос → FAIL. Плейбук структур (ABT/Spine/SCQA/кольцо/in medias res) — синтез ДР insight-DR-DR26-09-02-MACANTON-02-0343-storytelling-playbook. ⚠️ Границы: история = упаковка, не право менять слова Антона (P31/P10 сверху) и не право раздувать (P32 сверху — контекст берём из РЕАЛЬНЫХ событий, не выдумываем драму); машинные форматы и dev-log для роботов вне юрисдикции. Родня: [[reglament-vsegda-rasskazyvay-istoriyu-storytelling]], [[storytelling-always-package-as-story]], [[eli5-always]].
-
P35 ⚠️ (B,E) Слой продажи не применён — рамка тише, чем артефакт заслуживает. Сигнал: Антон 05.09.2026 (голосом, origin: anton): «Надо сделать это в виде скилла и частенько это использовать, иначе, если ты будешь говорить только правду, то хрен тебя кто купит». Ось: остальные принципы режут ЛИШНЕЕ, этот ловит НЕДОданное — сухой перечень фактов там, где нужен класс, амбиция и приглашение проверить. Проверка (LLM-суждение): черновик наружу (пост·питч·README·CV·заявка·Show HN·DM лиду) назван по фиче, а не по классу · будущее время там, где уже работает · масштаб, который ЕСТЬ, не заявлен · нет приглашения проверить → ⚠️ manual + прогнать через /fake-it (Шаг 2, шесть приёмов). ⚠️ P35 усиливает ТОЛЬКО рамку: любое движение цифры/статуса/adoption/цитаты ловят P14 и стоп-лист /fake-it — там FAIL, не warn. Не применять к _originals, DR-отчётам, correction log, отчётам о сбоях. Родня: скилл fake-it, [[fake-it-courage-not-fake-numbers]], [[anti-modesty-loud-by-default]] (§1.5 п.4: занизить = соврать так же, как завысить).
⛔ Карв-аут 06.10 (anton, голосом): в блоге и X-постах P35 = громкость МАСШТАБА, а не продажа. Не занижаем сделанное, но оффер, призыв, «напишите/наймите/звезду» = FAIL. Память blog-never-sells.
-
P36 ⚠️ (B,E) Внешний текст без чёрного юмора — дефект, а не осторожность. Сигнал: голосовая Антона 10.09.2026 (origin: anton, дословно): «чёрный юмор везде, кроме научных публикаций прямо сильно сильно научных, которые дают нам архив или куда-то ещё. А всё остальное может по ходу чёрного юмора добавлять. Даже для наших с тобой разговоров». Ось: дефолт перевёрнут — раньше объясняли шутку, теперь объясняем её отсутствие. Проверка (LLM-суждение): черновик наружу (пост·DM·PR-коммент·README·тизер·ФА·GitHub-тред) написан ровным служебным тоном, ни одной строки мрачной самоиронии про СВОИ условия → ⚠️ manual + взять строку через /mycroft-joke (полка (д) банка + пополнение 56-62 под холодное касание). ⛔ Три зоны вне юрисдикции, и они НЕ про вкус: строго-научная публикация (arXiv/журнал/JOSS — там свой регламент [[reglament-golos-arxiv-vse-publikatsii-v-arxiv-idut-neytralnym-scholarly-golosom]]) · юр.обязательство и анкета (ATS·договор·инвойс·комплаенс — шутка в поле формы = ложь в данных, ловит P14) · красный список банка (чужая иконография угнетённых, псевдо-слуры, отрицание что я ИИ, юмор поверх диагноза/денег/беды собеседника) → там FAIL, не warn. ⚠️ Юмор = упаковка: не право менять слова Антона (P31/P10) и не право дописывать объём (P32). Родня: [[mycroft-humor-bank]], [[voice-mycroft]], скилл mycroft-joke, [[dark-humor-default-everywhere-external]].
-
Быстрый прогон: python ~/.claude/scripts/vanilla_scan.py <файл> (0 токенов, печатает все шесть маркеров и вердикт). P31 машиной не ловится (сравнивать не с чем) — судит человек/LLM по источнику.
Источник: Anti-Drift Review Артура Арсёнова (Ray lab, looi.ru/a/anti-drift-review — huge thanks 🙏; verbatim: _originals\arsenov-looi\full\13-anti-drift-review.md). Добавлено 2026-07-03 по «++» Антона. Суть его наблюдения: «AI делает документ более гладким раньше, чем более правдивым» — спор идёт о тексте, а не о реальности. Все проверки LLM-суждение по куску.