Анти-отпечаток

Last updated: 2026-08-18Почему код, написанный без стандарта, узнаётся мгновенно, какие тики запрещены — и что GRAIN сознательно не регламентирует.

Анти-отпечаток

Отдельная глава, потому что это отдельная проблема.

Код, написанный языковой моделью без стандарта, узнаётся мгновенно: не по ошибкам, а по тяготению к середине распределения. Модель выбирает самое вероятное имя (handleData, processItems, utils.ts), самый вероятный комментарий (пересказ следующей строки), самую вероятную защиту (try/catch вокруг чистой функции). Получается код без автора.

Ровно то же происходит с человеком, который пишет «как принято» и ни разу не спросил, почему принято именно так.

Правила стандарта убирают это как побочный эффект: закрытый словарь глаголов физически не содержит handle, теговые комментарии не позволяют пересказ, роли файлов не оставляют места для utils.ts. Дополнительно запрещено:

ТикПочему
Эмодзи в коде, логах, коммитахЛог читает grep
// Шаг 1:, // Step 2:Пересказ потока управления
JSDoc, повторяющий сигнатуруТипы уже написаны и проверяются компилятором
const result = await x(); return resultПеременная на одну строку
?. там, где тип не допускает nullЗащита от невозможного маскирует настоящие баги
try/catch вокруг чистой функцииЧистая функция не отказывает
// ============Структуру задаёт разбиение на файлы
Enhanced, Advanced, V2 в именахОценка вместо описания

Что GRAIN сознательно не регламентирует

Стандарт, который лезет во всё, перестаёт быть инженерным документом.

Не наше делоПочему
Отступы, кавычки, точки с запятой, длина строкиРабота форматтера. Спор об этом не стоит ни одной минуты
Выбор библиотек и фреймворковЗависит от задачи и меняется чаще, чем стандарт
Слоистая архитектура, DDD, гексагоныGRAIN задаёт направление зависимостей и роли файлов; какую школу строить поверх — решает команда
Стиль коммитов и ветвлениеДругой документ, другая дисциплина
Покрытие тестами в процентахМетрика, которой легко соврать

Как спорить со стандартом

Правило, которое мешает, — повод его изменить, а не тихо обойти.

  1. Приведи код, где правило делает хуже. Не описание, а код.
  2. Предложи правку словаря grain.synx и документа — одним изменением, они меняются только вместе.
  3. Пока правка не принята — работает // grain:allow <правило> — <причина>. Причина обязательна: она и есть аргумент в споре.

Стандарт без процедуры изменения превращается в скрижаль, а скрижаль обходят молча.

Анти-отпечаток | AS Docs