Звено, которого не видно, — то же самое, что его нет
Вывод: за эти двенадцать часов четыре раза подряд выяснялось, что работа сделана, но её нельзя ни найти, ни посчитать. Разделы /fluency, /fluency/cert и /en/essays — 1697 строк готового кода — лежали вне гита, и три ссылки из карты вели в 404. По всему сайту нашлось 17 страниц, на которые не ведёт ни одной ссылки. До /offer не доходили не потому, что цена отпугивает, а потому что дороги туда не было вовсе. Счётчик шаблонной «пользы» ловил только заглавную «Оператор входа» и не видел ещё 111 грязных карточек. Ошибка одна и та же: отсутствующее звено — ссылка, коммит, флаг -i — обнуляет всё, что за ним стоит.
Окно: 28.07 03:46 → 14:56 по тому же счёту времени, что и в прошлых записях. Двадцать один коммит, 222 файла. Разрыв 05:36 → 13:40 — восемь часов без коммитов.
Локальная main и origin/main совпадают на 88c4ec0: всё, что прошлая запись числила незапушенным, ушло на прод. Проверить состояние деплоя из облачной сессии не вышло — buyanov.io/sostoyanie оттуда не открывается, [уточнить] глазами.
Отдельно: коммиты в этом окне пришли с двух машин с разными часовыми поясами (+00:00 и +09:00). В git log без явного UTC порядок читается неверно. Здесь всё сведено к одному счёту.
1. Сделано
Работа прошлого окна дошла до сайта
cef8dc2, 42b0baa, 75a1d84 — партии 1а и 1б дизайн-системы и запись дневника пересобраны после ребейза (были 635169b, 248fae2, d6f0702 — этих хешей в истории больше нет, содержимое цело). Прошлая запись заканчивалась строкой «дизайн-системы на сайте нет». Теперь она в origin/main.
Признак — buyanov.io/?v=28: светлый тёплый фон, текст крупнее прежнего, у карточек и кнопок одно скругление вместо разнобоя.
Цвет и статус разведены
dee7f3f. Зелёный статуса и зелёный акцента были одним цветом, из-за чего «применил в деле», «бесплатно» и «без VPN» читались как одно состояние. «Доверие» получило свой цвет в палитре данных, три метки переведены с цвета на знак и контраст. Затронуты palette.ts, RazborNote.tsx, Toolbox.tsx, ModelPicker.tsx — семь строк.
Признак — buyanov.io/besplatno?v=28: «бесплатно» и «без VPN» различаются знаком, а не оттенком зелёного.
c12ad1b — акцент означает действие. Посчитано по коду: акцент стоял в разметке 430 раз, из них на кнопках и ссылках 45. Остальные 385 — надзаголовки, метки, цифры, рамки. Первый проход сделан централизованно: .eyebrow, .stage-tag, .ex-cat, .routenode-code и маркеры списков уведены в --dim. Шесть строк CSS перекрасили 95 мест.
Признак — buyanov.io/?v=29 и /marshruty?v=29: терракотовым покрашены только кнопки и ссылки; надзаголовки и метки серые.
Шкала: откат по факту
5c7e2a3. Герой возвращён с 48px на 56px — 48 срезало заголовки на широком экране. Замер по коду этого не показывал, увидено глазами.
Признак — buyanov.io/?v=29 на широком экране: заголовок первого блока не обрезан.
Страница разбора
2ce9cf3. Русский заголовок вместо английского, суть первой, блок «что из этого моё». Заголовки страниц приведены к шкале кеглей.
9468134. Дубль глав убран, введены три плотности и шкала таймкодов; /instrumenty пересобрана — ToolsPanel.tsx (100 строк) удалён целиком, page.tsx ужат. Итог по коммиту: +170 строк, −398.
Признак — buyanov.io/lenta/0fgJPhYcbVk?v=29: заголовок русский, главы идут одним списком без повтора, у главы справа время со стрелкой. buyanov.io/instrumenty?v=29 открывается без отдельной панели.
Дорога к работе и недостижимые страницы
9c0bec8. На /offer теперь ведёт с главной, из подвала и с каждой из 1043 страниц разбора. До этого страница существовала, а войти в неё было неоткуда.
7cbeaae, 8074570. Недостижимых страниц было 17, стало 0 — двумя коммитами: сначала подвал и /instrumenty, потом /prizmy.
323434c. Разделы /fluency, /fluency/cert и /en/essays — девять файлов, 1697 строк — лежали вне гита. Три ссылки в карте вели в 404.
Признак — buyanov.io/fluency?v=29 открывает список из шести навыков, а не «не найдено». buyanov.io/?v=29 — на первом экране есть вход в «Работать со мной».
Витрина материалов
afa0f3e. Список вынут из окна с внутренней прокруткой, строка сжата примерно со 175 до 121 px. Причина «бесячего окна» была в двух строках globals.css: .mat-grid { height: min(600px, 72vh) } и .mat-list { overflow-y: auto }. На телефоне это сняли 27.07, на десктопе забыли — оттого и разное ощущение с разных устройств. Расчётная плотность (по кеглям, не замер в браузере): на экране 1080 px было три разбора, стало восемь.
0e45093. В строке показываются три редких тега вместо трёх самых общих. оркестрация стоит на 663 карточках из 1043 и как признак не работает.
Признак — buyanov.io/materialy?v=29: колесо мыши над списком листает страницу, а не список внутри рамки; у верхнего разбора про FuzzyAI видно «регрессионное тестирование», а не «автоматизация».
Шапка и числа
643cb97. «Журнал» убран из шапки, пятая дверь названа «Работать со мной». /dnevnik получил тот же фильтр служебных коммитов, что и /changes. В changelog-data.ts сейчас 858 записей, из них 77 служебных — обе страницы показывают 781 правку вместо прежних 777 и 850.
Признак — buyanov.io/dnevnik?v=29 и /changes?v=29: число правок совпадает; в шапке пять дверей, «Журнала» среди них нет.
Лента — партия 5
16bf5de. polza переписана в 98 карточках, tldr в 18. Шаблонных по старому счётчику 344 → 286 при 1043 карточках.
Главное в партии — не карточки. Открытый вопрос партии 4 закрыт: релизным карточкам отдельный формат не нужен, «правило, переживающее релиз» выдержало 21 карточку подряд — 21 правило, 0 «связи нет», 0 повторов. Но выдержало на пределе: правила сложились в три семейства (экономика выбора, приёмка и итерация, инфраструктурный риск), базовых правил всего восемь-десять, и они почти выбраны.
Честных «связи нет» — 16 из 100, как в партии 4. Дали их трейдинг, гормоны, микробиота, хлеб, генная терапия, геополитика.
Признак — buyanov.io/lenta/0gRKheksF6Q?v=29: блок «что из этого моё» начинается со «Забрать порядок постановки задачи», а не с «Оператору входа в AI».
2. Хотел, но не успел
- Тест перегенерации на 14 карточках не запущен. Команда лежит в
СВЯЗЬ.md, блок «00:17 · разработка → конвейеру». Запускает владелец. - Словарь тегов — черновик на 57 позиций подан 28.07 (
СВЯЗЬ.md, блок 00:44), не утверждён. Пока не утверждён, промптlenta_common.summarizeне трогается, лимитtags[:4]не поднимается, перетегирование не идёт. - Облако тегов с мультивыбором не начато — стоит за словарём.
- Второй проход по цвету — 176 мест, где акцентом покрашен обычный текст inline, и 97 рамок. Массово не заменяются, каждое смотреть отдельно.
- Слипшиеся и единичные теги — 945 уникальных на 1043 карточки, 667 встречаются ровно один раз, 101 слипшийся (
аппаратноеобеспечение,контролькачества). Найдено, не чинилось. - Аккаунты — блокер прежний и он на владельце: OAuth-клиент, три переменные в Vercel, SQL, флаг последним. Пока флага нет, отметка «применил» остаётся командой в терминале, и операторский слой не наполняется.
scripts/regen_yersham.pyиЗАДАЧА_качество-ленты.mdдо сих пор вне гита — лежат нетронутыми с 25–26.07. Та же ошибка, что с/fluency, только ещё не выстрелила.- Панель «тема / время / сила» налезает на текст, майндкарты, карта задач в Miro, Midjourney — статус «не сделано» без движения.
- Три карточки-пустышки, которые договорились удалить, не удалены —
[уточнить].
3. Решил иначе
Шапка: прежнее решение отменено прямо в коде. Было записано «цены намеренно не в шапке — цена как фильтр, её находит заинтересованный сам». Аудит показал обратное: до /offer доходили единицы, потому что дороги туда не было вовсе. Фильтр оставлен — пятая дверь названа работой, а не ценой. Тупик убран.
Журнал из шапки снят. Он остаётся доказательством, но доказательству место в сноске, а не второй дверью из пяти. Посетителю нужен не автолог коммитов, а куда идти.
Спор чисел 777 против 850 закрыт фильтром, а не выбором. Обе страницы читают один файл; расхождение было ровно в служебных коммитах, которыми журнал обновляет сам себя. Сайт, который продаёт проверяемость, не может давать два числа на один вопрос — поэтому фильтр продублирован, а не выбрано «правильное» число.
Цвет чинится централизованно, а не заменой по файлам. Шесть строк CSS накрыли 95 мест из 385. Остальное — inline, там централизованно не выйдет, и это осознанно оставлено на второй проход.
Счётчик шаблонности переведён на регистронезависимый. «Для оператора входа в AI…» со строчной проскакивала мимо замера: 286 карточек по старому счёту против 397 по grep -qiE. Так нашлись карточки, помеченные как чистые, у которых polza грязная. Все замеры ленты дальше — с флагом -i.
Механика фильтра тегов выбрана «1+2»: строгое пересечение сверху, ниже блок «близкие» с ранжированием по числу совпавших тегов. Причина — при tags[:4] строгий AND глубже четырёх тегов даёт ноль всегда, и обещание «выбрал пять — осталось пять тем» было бы ложью.
Правило подачи дизайна задано владельцем: любое предложение показывается парой «было — стало», макет рисуется в чате артефактом, на прод уходит только то, по чему сказано «берём».
4. Перехотел
Тёмная тема в проходе по цвету — намеренно не тронута. Притушить #ff6a3d одной строкой нельзя: там --acc-ink: var(--bg), то есть текст на кнопке тёмный. С приглушённым фоном он перестанет читаться, и вместе с цветом надо менять чернила на белые. Правка требует проверки глазами на живом экране, а из облачной сессии тёмная тема не видна.
Консолидация двенадцати файлов памяти отложена намеренно. AGENTS.md, CODE_MAP.md, АРХИТЕКТУРА.md, ДЕРЕВО.md, ПЕРЕДАЧА.md, МАЯКИ.md, HANDOFF.md, ХЕНДОФФ_26-07.md, TASK.md, README.md, КОНТЕКСТ_телефон.md плюс CLAUDE.md из одной строки. Часть противоречит друг другу. Причина отказа названа: не приближает ни к чему платящему. Когда вернёмся — сводить в CLAUDE.md, остальное в архив, а не дописывать тринадцатый файл.
Копия репозитория в облаке отменена: автотест уже существует — это npm run build на машине владельца. Зеркало дублировало бы одну локальную команду и расходилось с оригиналом на каждом коммите.
Противоречие, не разрешённое: СВЯЗЬ.md блоком 02:21 фиксирует «шестинедельный стоп принят, всё внутреннее заморожено», а карта задач ~/Desktop/ЧТО_Я_ПРОСИЛ.md — «заморозить сайт на 6 недель — отменено, было ошибкой Claude, сайт не заморожен». Два файла говорят разное, и работа последних суток идёт по второму. Что считать правдой — [уточнить].
5. Что дальше
- Проверить прод глазами:
buyanov.io/sostoyanie?v=2— задеплоен ли88c4ec0. Из облачной сессии это не проверяется. - Утвердить или переписать словарь тегов (57 позиций,
СВЯЗЬ.md, блок 00:44). Без него стоят три вещи разом: перетегирование, лимит тегов, облако. - Второй проход по цвету — 176 inline-мест и 97 рамок, и отдельно тёмная тема, только с живым экраном.
- Партия 6 ленты. Перед ней — прогнать разводку одинаковых начал сразу по всем чищеным карточкам, а не внутри партии: чищеных уже около трёхсот из пяти партий, а проверка ни разу не гонялась между ними.
- Закоммитить
scripts/regen_yersham.pyиЗАДАЧА_качество-ленты.md— лежат вне гита третьи сутки. /dnevnikдержит по одной записи на дату: эта запись вытеснила из списка2026-07-28-zamer-do-raboty, та открывается только прямым адресом. Чинится одной строкой — ключ по slug, а не по дате.