[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content-post-kak-chitat-ocenku-na-avtomatizaciyu":3},{"post":4,"related":161,"status":10},{"id":5,"title":6,"slug":7,"excerpt":8,"cover_alt":9,"cover_position":10,"reading_time":11,"seo_title":12,"seo_description":13,"date_published":14,"date_modified":10,"source_lead":10,"tag":15,"blocks":19,"cover":158},"d838d857-9efe-47b4-b6c3-6b68650b2773","Оценка, которой можно верить: как читать смету на автоматизацию","kak-chitat-ocenku-na-avtomatizaciyu","\"Разработка - от 150 до 400 часов\" - это не оценка, а надежда. Разбираю с позиции заказчика, что должно быть в смете на автоматизацию, чтобы её можно было проверить: одна вилка, буфер отдельной строкой, чужая зона ответственности вне часов и четыре вопроса подрядчику.","Ряд ровных строк-полос, нижняя подсвечена, рядом линейка",null,3,"Как читать оценку трудозатрат подрядчика: признаки честной сметы","Что должно быть в оценке задачи на автоматизацию, чтобы ей можно было верить: одна вилка, буфер отдельной строкой, зона чужой ответственности вне часов. Разбор изнутри.","2026-08-27T17:49:48.000Z",{"name":16,"slug":17,"color":18},"Продажи","prodazhi","#C10000",[20,26,30,35,39,43,47,51,55,59,63,67,71,75,79,83,87,102,106,110,114,118,122,126,130,134,138,142,154],{"sort":21,"collection":22,"item":23},1,"block_text",{"body":24,"is_lead":25,"footnote":10},"Собственник получает от подрядчика оценку: \"Разработка - от 150 до 400 часов\". Что с этим делать, непонятно. Разброс в два с половиной раза, из чего он складывается - неизвестно, а торговаться не о чем: цифра монолитная.",false,{"sort":27,"collection":22,"item":28},2,{"body":29,"is_lead":25,"footnote":10},"Я пишу такие оценки регулярно - и для крупного заказчика с проектным офисом, и для небольших клиентов. За это время сложился набор требований к документу, и почти все они на самом деле нужны не исполнителю, а тому, кто платит. Разберу их с позиции заказчика: что должно быть в оценке, чтобы её можно было проверить.",{"sort":11,"collection":31,"item":32},"block_heading",{"heading":33,"level":34},"Одна вилка, а не три","h2",{"sort":36,"collection":22,"item":37},4,{"body":38,"is_lead":25,"footnote":10},"Самый частый дефект - несколько чисел в одном документе. В шапке \"ориентировочно 200 часов\", в тексте \"чистой работы дней двадцать\", в таблице сумма даёт 260, а в письме звучит \"ну, месяца полтора\".",{"sort":40,"collection":22,"item":41},5,{"body":42,"is_lead":25,"footnote":10},"Каждое из этих чисел получено по-своему, и ни одно не отвечает за остальные. Разговор об объёме превращается в спор о том, какую цифру считать настоящей.",{"sort":44,"collection":22,"item":45},6,{"body":46,"is_lead":25,"footnote":10},"Правило простое: в документе ровно одна вилка, и она везде одинаковая. Строки таблицы обязаны суммироваться ровно в итог. Если подрядчик не может сложить свою же смету - он не разобрал задачу, а прикинул на глаз.",{"sort":48,"collection":31,"item":49},7,{"heading":50,"level":34},"Буфер - отдельной строкой",{"sort":52,"collection":22,"item":53},8,{"body":54,"is_lead":25,"footnote":10},"В любой оценке есть неизвестное: чужой сервис поведёт себя не так, данные окажутся грязнее, чем обещали, вылезет ошибка в стороннем модуле. Это нормально, и на это закладывается запас.",{"sort":56,"collection":22,"item":57},9,{"body":58,"is_lead":25,"footnote":10},"Ненормально - когда запас растворён внутри строк. Тогда каждая позиция выглядит раздутой, заказчик начинает резать по живому, а подрядчик защищает воздух, не называя его вслух.",{"sort":60,"collection":22,"item":61},10,{"body":62,"is_lead":25,"footnote":10},"Честный формат: строки - реальное время работы, буфер - отдельная строка процентом от итога. Я обычно закладываю тридцать процентов и пишу это прямым текстом. Тогда торг идёт предметно: можно обсуждать риск, а можно сознательно его снять и работать без запаса, понимая последствия.",{"sort":64,"collection":22,"item":65},11,{"body":66,"is_lead":25,"footnote":10},"Отдельно: если заказчик сам называет потолок (\"у нас девять часов, больше нет\"), буфер не добавляется, а под цифру подгоняется объём работ. Это его право - решать, сколько задача стоит. Задача подрядчика - честно сказать, что в эти часы влезет, а что нет.",{"sort":68,"collection":31,"item":69},12,{"heading":70,"level":34},"Реальные часы, а не \"стандарт-разработчик\"",{"sort":72,"collection":22,"item":73},13,{"body":74,"is_lead":25,"footnote":10},"Я оцениваю фактическое время связки инженер плюс ИИ-ассистент - то, за сколько работа реально будет сделана. Без пересчёта на условного среднего разработчика и без накруток \"потому что бывает всякое\".",{"sort":76,"collection":22,"item":77},14,{"body":78,"is_lead":25,"footnote":10},"Для заказчика это важнее, чем кажется. Оценка в реальных часах проверяема: по факту сдачи видно, попал подрядчик или нет, и следующая оценка от него стоит дороже или дешевле доверия. Оценка в абстрактных единицах непроверяема никогда.",{"sort":80,"collection":31,"item":81},15,{"heading":82,"level":34},"Что не входит в часы",{"sort":84,"collection":22,"item":85},16,{"body":86,"is_lead":25,"footnote":10},"Отдельный раздел, которого почти никогда нет, а он самый ценный. В любом проекте есть работа, которая часами не измеряется, потому что зависит не от исполнителя:",{"sort":88,"collection":89,"item":90},17,"block_list",{"list_style":91,"items":92},"dash",[93,96,98,100],{"lead":94,"text":95,"highlight":25},"","ожидание доступов;",{"lead":94,"text":97,"highlight":25},"чужой сервис, который должен доработать другая команда;",{"lead":94,"text":99,"highlight":25},"регламентные окна выкатки;",{"lead":94,"text":101,"highlight":25},"согласования на стороне заказчика.",{"sort":103,"collection":22,"item":104},18,{"body":105,"is_lead":25,"footnote":10},"Это не часы, это календарь. Смешивать их с трудозатратами нечестно в обе стороны: подрядчик либо прячет простой в свои часы, либо потом объясняет, почему \"двадцать часов работы\" заняли месяц. Гораздо честнее написать отдельно: вот наши часы, вот зона вашей ответственности, вот от чего зависит срок.",{"sort":107,"collection":31,"item":108},19,{"heading":109,"level":34},"Опциональное - вне итога",{"sort":111,"collection":22,"item":112},20,{"body":113,"is_lead":25,"footnote":10},"В любой задаче есть \"хорошо бы ещё\": вторая интеграция, админка для настройки, отчётность. Место этому - отдельная строка с пометкой, что в основной объём оно не входит.",{"sort":115,"collection":22,"item":116},21,{"body":117,"is_lead":25,"footnote":10},"Когда желательное подмешано к обязательному, заказчик платит за то, чего не заказывал, а подрядчик получает вечно растущий скоуп. Разделение снимает обе проблемы и, что важно, даёт заказчику управление: пилот сегодня, расширение - после того как первый этап себя оправдал.",{"sort":119,"collection":31,"item":120},22,{"heading":121,"level":34},"Почему всё таблицей и почему в конце",{"sort":123,"collection":22,"item":124},23,{"body":125,"is_lead":25,"footnote":10},"Две мелочи, которые сильно влияют на восприятие.",{"sort":127,"collection":22,"item":128},24,{"body":129,"is_lead":25,"footnote":10},"Всё, что можно, - таблицей: блок работ, объём, комментарий, итоговая строка. Прозаический вывод в конце (\"в целом, думаю, недели три\") не нужен: итог - это строка таблицы, и она одна.",{"sort":131,"collection":22,"item":132},25,{"body":133,"is_lead":25,"footnote":10},"А сама оценка идёт в конце документа, а не в начале. Сначала разбор задачи: что понято, какие есть развилки, что предлагается делать и почему. Тот, кто принимает решение, всё равно листает в конец - но, дойдя туда, он уже видит, за что именно платит. Оценка, поставленная первой строкой, читается как ценник без товара.",{"sort":135,"collection":31,"item":136},26,{"heading":137,"level":34},"Что забрать себе",{"sort":139,"collection":22,"item":140},27,{"body":141,"is_lead":25,"footnote":10},"Когда получаете оценку, задайте четыре вопроса. Они безошибочно отделяют разобранную задачу от прикидки на глаз:",{"sort":143,"collection":89,"item":144},28,{"list_style":91,"items":145},[146,148,150,152],{"lead":94,"text":147,"highlight":25},"Складываются ли строки в итог?",{"lead":94,"text":149,"highlight":25},"Где буфер и сколько он?",{"lead":94,"text":151,"highlight":25},"Что в этом сроке зависит не от вас?",{"lead":94,"text":153,"highlight":25},"Что из перечисленного можно не делать в первом этапе?",{"sort":155,"collection":22,"item":156},29,{"body":157,"is_lead":25,"footnote":10},"Если подрядчик отвечает на все четыре не задумываясь - он задачу разобрал. Если начинает объяснять, что \"так не считают\" - вы держите в руках не оценку, а надежду.",{"id":159,"modified_on":160},"f0323b71-f5ac-48ff-98d1-5da4a4970269","2026-08-27T18:12:41.977Z",[162,250,340],{"id":163,"title":164,"slug":165,"excerpt":166,"cover_alt":167,"cover_position":10,"reading_time":11,"seo_title":168,"seo_description":169,"date_published":170,"date_modified":10,"source_lead":10,"tag":171,"blocks":172,"cover":247},"21f2cadf-a9dd-4c74-b1bc-b51af271c23c","Кейс: 134 воркфлоу в проде и один инженер","134-workflow-v-prode","AI-направление закрытой community-платформы я спроектировал и собрал с нуля практически в одиночку. Этот кейс - о том, как один инженер держит 134 продакшн-воркфлоу так, чтобы система развивалась, а не осыпалась.","Карта продакшн-воркфлоу: десятки узлов, соединённых линиями, часть маршрутов горит красным","134 воркфлоу n8n в проде: как их строит и ведёт один инженер","Кейс: один инженер собрал AI-направление low-code платформы с нуля и держит его в проде - документация внутри воркфлоу, код в git, стенды dev\u002Fstage\u002Fprod и AI-ассистент вместо второго инженера.","2026-07-29T07:00:00.000Z",{"name":16,"slug":17,"color":18},[173,176,179,182,185,188,191,195,198,201,204,207,210,213,216,219,222,225,228,231,234,236],{"sort":21,"collection":22,"item":174},{"body":175,"is_lead":25,"footnote":10},"Последние годы я веду AI-направление закрытой community-платформы (проект под NDA, поэтому без имён и деталей продукта). Веду - потому что сам его и сделал: спроектировал и собрал с нуля, практически в одиночку. AI-агент клуба, рекомендации знакомств, поиск людей под запрос, рассылки, схемы данных и прикладная архитектура - и примерно 134 продакшн-воркфлоу n8n, которые всё это исполняют.\n\nСтек: Directus + n8n + React, поиск на векторной базе Qdrant, пять арендаторов на одной кодовой базе, полный набор стендов - dev, stage, prod. Стенды, промоушен и дисциплину сопровождения, о которых пойдёт речь дальше, я тоже довёл до нынешнего вида сам.",{"sort":27,"collection":22,"item":177},{"body":178,"is_lead":25,"footnote":10},"Этот кейс - не про то, как построить 134 воркфлоу. Построить как раз несложно. Он про то, как один инженер держит их в проде так, чтобы система развивалась, а не осыпалась.",{"sort":11,"collection":31,"item":180},{"heading":181,"level":34},"Где на самом деле потолок low-code",{"sort":36,"collection":22,"item":183},{"body":184,"is_lead":25,"footnote":10},"Low-code продаётся как \"быстро собрал - работает\". Это правда, но потолок наступает не при сборке, а при сопровождении. Сто с лишним воркфлоу невозможно держать в голове: через полгода собственная схема читается как чужая, любое изменение может задеть соседний процесс, а онбординг нового человека занимает недели.",{"sort":40,"collection":22,"item":186},{"body":187,"is_lead":25,"footnote":10},"Обычный финал такой истории - \"у нас есть человек, который знает, как оно работает, не трогайте его\". Это не масштабируется и делает проект заложником одной головы. Меня такой финал не устраивал, потому что эта голова - моя.",{"sort":44,"collection":31,"item":189},{"heading":190,"level":34},"Что держит систему",{"sort":48,"collection":31,"item":192},{"heading":193,"level":194},"Документация живёт внутри воркфлоу","h3",{"sort":52,"collection":22,"item":196},{"body":197,"is_lead":25,"footnote":10},"У каждого воркфлоу есть заметка \"О процессе\" прямо на холсте: зачем процесс существует, откуда приходят данные, куда уходят, какие есть неочевидные места. Та же заметка зеркалится в markdown-базу знаний проекта.",{"sort":56,"collection":22,"item":199},{"body":200,"is_lead":25,"footnote":10},"Правило простое: заметка пишется для того, кто открыл воркфлоу впервые. На практике \"тот, кто открыл впервые\" - это я сам через полгода и AI-ассистент, которому нужен контекст. Расследование \"почему тут так\" сокращается с часа археологии по нодам до двух минут чтения.",{"sort":60,"collection":31,"item":202},{"heading":203,"level":194},"Воркфлоу - это код в git",{"sort":64,"collection":22,"item":205},{"body":206,"is_lead":25,"footnote":10},"Изменения в воркфлоу идут через репозиторий, а не мышкой на проде. Экспорт в файлы, версии, диффы, откат - всё, к чему привыкли в обычной разработке, работает и для low-code. Когда что-то сломалось, я смотрю дифф, а не вспоминаю, \"что я там вчера кликал\".",{"sort":68,"collection":31,"item":208},{"heading":209,"level":194},"Стенды и управляемый промоушен",{"sort":72,"collection":22,"item":211},{"body":212,"is_lead":25,"footnote":10},"Dev - верстак: здесь можно ломать. Stage - репетиция. Prod - только то, что прошло первые два. Идентификаторы воркфлоу и учёток на стендах выровнены, поэтому перенос изменения - это управляемая процедура, а не ручное пересобирание \"по образцу\".",{"sort":76,"collection":22,"item":214},{"body":215,"is_lead":25,"footnote":10},"Скучно? Да. Но именно скучные процедуры позволяют одному человеку спокойно катить изменения в систему, которой ежедневно пользуются живые люди у пяти арендаторов.",{"sort":80,"collection":31,"item":217},{"heading":218,"level":194},"AI-ассистент как второй инженер",{"sort":84,"collection":22,"item":220},{"body":221,"is_lead":25,"footnote":10},"Рутину сопровождения я отдаю AI-агенту: инвентаризация воркфлоу, сверка стендов между собой, поиск \"куда ещё ходит эта коллекция\", черновики тех самых заметок \"О процессе\". Здесь замыкается круг: агент эффективен ровно потому, что первые три пункта дали ему читаемую систему - документацию, файлы в git, предсказуемые стенды.",{"sort":88,"collection":22,"item":223},{"body":224,"is_lead":25,"footnote":10},"Это, пожалуй, главный вывод кейса: AI-ассистент не компенсирует бардак, он умножает порядок. На хаосе он умножает хаос.",{"sort":103,"collection":31,"item":226},{"heading":227,"level":34},"Результат",{"sort":107,"collection":22,"item":229},{"body":230,"is_lead":25,"footnote":10},"Один инженер спроектировал, построил и ведёт AI-направление платформы на пять арендаторов: развитие, сопровождение и прод-инциденты - без \"человека-энциклопедии\" в единственном экземпляре, потому что знание о системе лежит в самой системе. Новая фича начинается с чтения заметок, а не с раскопок. Инцидент - с диффа, а не с паники.",{"sort":111,"collection":22,"item":232},{"body":233,"is_lead":25,"footnote":10},"Отдельный бонус всплыл позже: когда понадобилось передавать часть процессов коллегам, онбординг свёлся к \"открой воркфлоу и прочитай заметку\". Документация, написанная для себя-через-полгода, оказалась готовой документацией для кого угодно.",{"sort":115,"collection":31,"item":235},{"heading":137,"level":34},{"sort":119,"collection":89,"item":237},{"list_style":91,"items":238},[239,241,243,245],{"lead":94,"text":240,"highlight":25},"Если у вас в n8n, Make или Zapier больше двадцати сценариев и ни у одного нет описания - у вас уже техдолг, просто он ещё не предъявлен к оплате.",{"lead":94,"text":242,"highlight":25},"Документация внутри инструмента работает лучше, чем вики \"где-то рядом\", - потому что её видно в момент работы.",{"lead":94,"text":244,"highlight":25},"Стенды нужны low-code так же, как обычному коду. \"Поправим на проде, там одна нода\" - так начинается каждая вторая авария.",{"lead":94,"text":246,"highlight":25},"Порядок в системе - это не эстетика. Это условие, при котором и человек, и AI-агент могут её обслуживать дёшево.",{"id":248,"modified_on":249},"92803fba-04d2-4d4e-8bf0-32a5579b5d3e","2026-08-12T12:31:57.022Z",{"id":251,"title":252,"slug":253,"excerpt":254,"cover_alt":255,"cover_position":10,"reading_time":11,"seo_title":256,"seo_description":257,"date_published":258,"date_modified":10,"source_lead":10,"tag":259,"blocks":260,"cover":338},"1c2466c3-e456-46c8-8ab8-4645622e31f9","Кейс: движок Telegram-ботов, где новый бот - это записи в базе","telegram-boty-na-state-machine","В 2025 году я делал серию Telegram-ботов для AI-генерации изображений и видео. Боты похожи, но не одинаковы: разные сценарии диалога, разные тарифы, разные наборы кнопок. Классическая ситуация, в которой второй бот делается копипастой первого, а к четвёртому у тебя четыре...","Конечный автомат из блоков-записей, собирающийся в силуэт Telegram-бота, один блок подсвечен красным","Telegram-боты на конечном автомате: сценарий в данных","Кейс: движок Telegram-ботов на Directus и n8n. Сценарий диалога хранится записями в базе, и новый бот запускается без переписывания воркфлоу.","2026-07-27T07:00:00.000Z",{"name":16,"slug":17,"color":18},[261,264,267,270,273,276,279,282,291,294,297,300,303,314,317,320,323,326,329,332,335],{"sort":21,"collection":22,"item":262},{"body":263,"is_lead":25,"footnote":10},"В 2025 году я делал серию Telegram-ботов для AI-генерации изображений и видео. Боты похожи, но не одинаковы: разные сценарии диалога, разные тарифы, разные наборы кнопок. Классическая ситуация, в которой второй бот делается копипастой первого, а к четвёртому у тебя четыре расползшихся копии одной и той же логики.",{"sort":27,"collection":22,"item":265},{"body":266,"is_lead":25,"footnote":10},"Этот кейс - про то, как я вместо четырёх ботов сделал один движок. И про принцип, который окупается почти в любом проекте: изменчивое надо выносить из кода в данные.",{"sort":11,"collection":31,"item":268},{"heading":269,"level":34},"Как это делается обычно - и где ломается",{"sort":36,"collection":22,"item":271},{"body":272,"is_lead":25,"footnote":10},"Стандартный путь: сценарий диалога зашивается прямо в воркфлоу n8n или в код бота. Пользователь нажал \"Старт\" - ветка, выбрал стиль - ветка, оплатил - ещё ветка. Пока бот один и сценарий короткий, всё отлично.",{"sort":40,"collection":22,"item":274},{"body":275,"is_lead":25,"footnote":10},"Ломается это в двух местах. Первое - тираж: новый бот означает копию воркфлоу, и с этого момента любую правку нужно вносить во все копии. Второе - правки сценария: поменять текст шага или добавить вопрос может только тот, кто умеет редактировать воркфлоу. Каждая мелочь превращается в задачу разработчику.",{"sort":44,"collection":31,"item":277},{"heading":278,"level":34},"Решение: конечный автомат, сценарий - в базе",{"sort":48,"collection":22,"item":280},{"body":281,"is_lead":25,"footnote":10},"Я построил движок на связке Directus + n8n с конечным автоматом (state machine) в основе. Идея простая:",{"sort":52,"collection":89,"item":283},{"list_style":91,"items":284},[285,287,289],{"lead":94,"text":286,"highlight":25},"Сценарий диалога - это данные, а не код. В Directus живут коллекции этапов и переходов: у этапа - текст сообщения, кнопки, действие (например, запустить генерацию картинки); у перехода - из какого этапа в какой и по какому событию.",{"lead":94,"text":288,"highlight":25},"Состояние пользователя - тоже данные. У каждого пользователя хранится текущий этап диалога.",{"lead":94,"text":290,"highlight":25},"n8n - универсальный исполнитель. Один набор воркфлоу на все боты: пришло сообщение - читаем текущее состояние пользователя - выполняем действие этапа - переводим по подходящему переходу - отвечаем.",{"sort":56,"collection":22,"item":292},{"body":293,"is_lead":25,"footnote":10},"Воркфлоу при этом ничего не знает о конкретном сценарии. Он умеет ровно одно: исполнять любой сценарий, описанный в базе.",{"sort":60,"collection":31,"item":295},{"heading":296,"level":34},"Что это дало",{"sort":64,"collection":22,"item":298},{"body":299,"is_lead":25,"footnote":10},"Главный результат: новый бот заводится записями в базе, без переписывания воркфлоу. Завести этапы, тексты, кнопки и переходы - и бот работает. Движок получился переиспользуемым: запуск следующего бота - это работа с данными, а не новая разработка.",{"sort":68,"collection":22,"item":301},{"body":302,"is_lead":25,"footnote":10},"Побочные эффекты оказались не менее ценными:",{"sort":72,"collection":89,"item":304},{"list_style":91,"items":305},[306,308,310,312],{"lead":94,"text":307,"highlight":25},"Правки сценария перестали быть задачей разработчика. Поменять текст шага или добавить кнопку можно прямо в админке Directus.",{"lead":94,"text":309,"highlight":25},"Отладка стала прозрачной. Состояние каждого пользователя видно в базе: на каком он этапе, как сюда попал. Не нужно реконструировать путь по логам.",{"lead":94,"text":311,"highlight":25},"Логика перестала расползаться. Исправление бага в исполнителе автоматически чинит все боты сразу - копий больше нет.",{"lead":94,"text":313,"highlight":25},"Появилась воронка бесплатно. Раз состояние каждого пользователя лежит в базе, ответ на вопрос \"сколько людей дошло до оплаты и где отваливаются\" - это один запрос к базе, а не отдельный проект по аналитике.",{"sort":76,"collection":31,"item":315},{"heading":316,"level":34},"Границы подхода",{"sort":80,"collection":22,"item":318},{"body":319,"is_lead":25,"footnote":10},"Честности ради - конечный автомат нужен не всегда.",{"sort":84,"collection":22,"item":321},{"body":322,"is_lead":25,"footnote":10},"Если бот - это три линейных шага и он один, автомат избыточен: вы потратите время на движок, который не окупится. Прямолинейный воркфлоу будет дешевле.",{"sort":88,"collection":22,"item":324},{"body":325,"is_lead":25,"footnote":10},"С другой стороны, для свободного диалога автомата мало: когда пользователь пишет что угодно, нужна LLM. Но и здесь автомат не мешает, а помогает: агент со свободным диалогом хорошо живёт поверх автомата, который держит каркас сценария - оплату, лимиты, обязательные шаги. LLM отвечает за разговор, автомат - за то, чтобы бот не потерял пользователя и деньги.",{"sort":103,"collection":22,"item":327},{"body":328,"is_lead":25,"footnote":10},"Точка окупаемости подхода - второй похожий бот или первый сценарий, который придётся часто править. У меня оба условия сработали.",{"sort":107,"collection":31,"item":330},{"heading":331,"level":34},"Вывод",{"sort":111,"collection":22,"item":333},{"body":334,"is_lead":25,"footnote":10},"Принцип старше меня: то, что часто меняется, должно жить в данных, а не в коде. Новизна в том, что связка low-code инструментов - Directus как админка и хранилище, n8n как исполнитель - делает этот принцип дешёвым в реализации. Не нужно писать свою админку и свой интерпретатор сценариев: 80 процентов инфраструктуры уже готово.",{"sort":115,"collection":22,"item":336},{"body":337,"is_lead":25,"footnote":10},"Если у вас в планах \"нам нужен бот, а потом ещё пара похожих\" - закладывайте автомат сразу. Второй бот скажет вам спасибо деньгами и сроками.",{"id":339,"modified_on":249},"e0f5ea2b-4959-4185-9d66-d24283607218",{"id":341,"title":342,"slug":343,"excerpt":344,"cover_alt":345,"cover_position":10,"reading_time":36,"seo_title":346,"seo_description":347,"date_published":348,"date_modified":10,"source_lead":10,"tag":349,"blocks":353,"cover":466},"5961ca87-2b6f-4c60-9d4d-3677f34b294f","Претензия за фотографию: как мы заменили 211 картинок на живом сайте","pretenziya-za-fotografiyu","Клиенту пришла досудебная претензия за одну фотографию на сайте: 60 000 рублей за картинку, которую в 2018 году поставил подрядчик. Рассказываю, как мы вместо выплаты и паники заменили 211 изображений нейросетевыми - кадр в кадр, вместе с 1123 миниатюрами, не тронув ни строчки в базе и не сдвинув вёрстку.","Сетка одинаковых кадров на тёмной стене, несколько из них подсвечены","Досудебная претензия за фото на сайте: как заменить картинки без потерь","Кейс: претензия правообладателя за фотографию на корпоративном сайте. Как мы нашли 359 картинок, заменили 211 нейросетевыми кадр в кадр и пересобрали 1123 миниатюры, не тронув вёрстку и SEO.","2026-08-27T18:10:09.000Z",{"name":350,"slug":351,"color":352},"Разборы задач","razbory-zadach","#4A4A4A",[354,357,360,363,366,369,372,375,378,381,384,387,390,393,402,405,408,411,414,417,420,423,426,429,432,435,438,441,444,447,451,454],{"sort":21,"collection":22,"item":355},{"body":356,"is_lead":25,"footnote":10},"Клиенту пришла досудебная претензия: на сайте используется фотография, права на которую принадлежат не ему. Требование - 60 000 рублей за одно изображение на одной странице, со скидкой до 35 000, если заплатить в течение пяти рабочих дней. Фотография попала на сайт в 2018 году вместе с материалами подрядчика, который давно не работает с компанией, и это, к сожалению, не аргумент: отвечает владелец сайта.",{"sort":27,"collection":22,"item":358},{"body":359,"is_lead":25,"footnote":10},"История настолько типовая, что её стоит разобрать целиком. Заканчивается она обычно одинаково: либо платят, либо судятся, либо в панике сносят полсайта и ломают себе вёрстку и поисковый трафик. Мы пошли четвёртым путём.",{"sort":11,"collection":31,"item":361},{"heading":362,"level":34},"Почему \"просто удалить\" не работает",{"sort":36,"collection":22,"item":364},{"body":365,"is_lead":25,"footnote":10},"Первая реакция собственника - убрать картинку и забыть. Она понятна, но закрывает только часть вопроса.",{"sort":40,"collection":22,"item":367},{"body":368,"is_lead":25,"footnote":10},"Во-первых, претензия уже предъявлена, и удаление не отменяет прошлого использования - это разговор для юриста, и его надо вести отдельно. Во-вторых, снятая картинка оставляет дыру: у неё есть размеры, и вёрстка рассчитана на них. В-третьих, и это главное - если одна чужая фотография попала на сайт случайно, там почти наверняка есть и другие. Правообладатели работают системно: находят одно нарушение и проверяют весь домен.",{"sort":44,"collection":22,"item":370},{"body":371,"is_lead":25,"footnote":10},"Поэтому задача формулируется не как \"убрать эту картинку\", а как \"убрать с сайта весь чужой визуальный материал, ничего при этом не сломав\".",{"sort":48,"collection":31,"item":373},{"heading":374,"level":34},"Почему нельзя просто взять новые фотографии",{"sort":52,"collection":22,"item":376},{"body":377,"is_lead":25,"footnote":10},"Два очевидных варианта отпадают сразу.",{"sort":56,"collection":22,"item":379},{"body":380,"is_lead":25,"footnote":10},"Скачать новые фотографии из интернета - это ровно то, с чего началась история. Купить сток - вариант рабочий, но дорогой на трёх сотнях картинок, и он всё равно требует подобрать снимки той же композиции, иначе поедет вёрстка.",{"sort":60,"collection":22,"item":382},{"body":383,"is_lead":25,"footnote":10},"Отдельно стоит сказать про соблазн сделать нейросетью попиксельную копию исходного кадра. Так делать нельзя. Узнаваемая копия остаётся переработкой чужого произведения - это прямо описано в статье 1270 ГК РФ - и требует согласия правообладателя ровно так же, как оригинал. Технически вы вроде бы ничего не скачивали, юридически ничего не изменилось.",{"sort":64,"collection":22,"item":385},{"body":386,"is_lead":25,"footnote":10},"Рабочая формулировка оказалась другой: тот же кадр, снятый заново. Не копия и не новая картинка на ту же тему, а самостоятельный снимок той же сцены - как если бы на то же место приехал другой фотограф.",{"sort":68,"collection":31,"item":388},{"heading":389,"level":34},"Сначала инвентаризация, потом всё остальное",{"sort":72,"collection":22,"item":391},{"body":392,"is_lead":25,"footnote":10},"Найти все картинки сайта сложнее, чем кажется. Одного источника не хватает, их нужно три:",{"sort":76,"collection":89,"item":394},{"list_style":91,"items":395},[396,398,400],{"lead":94,"text":397,"highlight":25},"обход живых страниц - что реально видит посетитель, включая фоны, заданные стилями;",{"lead":94,"text":399,"highlight":25},"база данных - тексты материалов, настройки модулей, меню, медиатека;",{"lead":94,"text":401,"highlight":25},"файлы на диске - поиск по всем папкам с изображениями, включая шаблон и слайдеры.",{"sort":80,"collection":22,"item":403},{"body":404,"is_lead":25,"footnote":10},"Пересечение этих трёх списков дало карту: 359 картинок, у каждой известно, где она встречается, живая она или осталась только в базе, и есть ли у неё дубликаты. Отдельной строкой - 1434 файла, которых нет ни в одном источнике: старьё, забытое прежними подрядчиками. Их мы не трогали вообще. Удалять то, о чём не знаешь, - лучший способ сломать что-нибудь неожиданное.",{"sort":84,"collection":31,"item":406},{"heading":407,"level":34},"Разметка: не всё подряд",{"sort":88,"collection":22,"item":409},{"body":410,"is_lead":25,"footnote":10},"Дальше начинается работа глазами. Я смотрел все картинки контактными листами по 24 штуки и раскладывал на три стопки.",{"sort":103,"collection":22,"item":412},{"body":413,"is_lead":25,"footnote":10},"**Перегенерить** - стоковые постановки: техника на идеальном газоне, человек в каске на фоне заката, руки с чертежом, каталожные снимки приборов, чужие промзоны. Это и есть основной источник риска.",{"sort":107,"collection":22,"item":415},{"body":416,"is_lead":25,"footnote":10},"**Удалить** - демо-контент шаблона, который никто не убрал при запуске: чашки кофе, гамаки, картинки с подписью Sample Image, логотипы платёжных систем, которыми компания не пользуется.",{"sort":111,"collection":22,"item":418},{"body":419,"is_lead":25,"footnote":10},"**Оставить** - собственная полевая съёмка, чертежи, обложки документации, сотрудники, своё оборудование.",{"sort":115,"collection":22,"item":421},{"body":422,"is_lead":25,"footnote":10},"Здесь была ловушка, в которую я попал на первом заходе. Портреты сотрудников, снятые в студии, выглядят как чистый сток - ровный свет, белый фон, дежурная улыбка - и уехали в стопку на замену. Это свои люди, снятые за свои деньги, менять их нельзя. Вывод: спорные кадры показывать владельцу, а не решать за него.",{"sort":119,"collection":31,"item":424},{"heading":425,"level":34},"Где всё ломается",{"sort":123,"collection":22,"item":427},{"body":428,"is_lead":25,"footnote":10},"Самое хрупкое место - формулировка задания для генератора. Первая версия звучала разумно: \"сними эту сцену заново, другой ракурс, другой свет\" плюс описание сюжета из подписи к картинке. Результат был отличный и совершенно негодный. Модель приняла подставленный сюжет за задание и начала дорисовывать: на пустом галечном берегу появились пятеро геодезистов и грузовик, а в другом кадре берег превратился в поле с нефтяными качалками.",{"sort":127,"collection":22,"item":430},{"body":431,"is_lead":25,"footnote":10},"Рабочая формулировка получилась занудной и подробной: сохранить композицию, ракурс, границы кадра, все объекты и их положение, количество людей и техники, позы, цвета, свет и время года; ничего не добавлять и не убирать; отличия допускаются только в мелкой фактуре. Скучно - зато на выходе тот же кадр, и вёрстка стоит как стояла.",{"sort":131,"collection":31,"item":433},{"heading":434,"level":34},"Миниатюры, о которых все забывают",{"sort":135,"collection":22,"item":436},{"body":437,"is_lead":25,"footnote":10},"Заменить исходный файл мало. Движок сайта хранит нарезанные копии каждой картинки под разные места - превью в списке, картинка в шапке, миниатюра в галерее. Если их не пересобрать, посетитель ещё месяцами будет видеть старое изображение в анонсах, а сайт - продолжать нарушение.",{"sort":139,"collection":22,"item":439},{"body":440,"is_lead":25,"footnote":10},"На этом сайте таких копий оказалось 1123 штуки. Все пересобраны из новых оригиналов.",{"sort":143,"collection":22,"item":442},{"body":443,"is_lead":25,"footnote":10},"Ещё одно правило, которое экономит недели: имя файла не меняется. Тогда база, кэш вёрстки и внешние ссылки не трогаются вообще - в базе данных не правится ни одной строки, а поисковые адреса картинок остаются прежними.",{"sort":155,"collection":31,"item":445},{"heading":446,"level":34},"Итог",{"sort":448,"collection":22,"item":449},30,{"body":450,"is_lead":25,"footnote":10},"Проверены все 418 страниц сайта и вся библиотека изображений: 359 картинок в аудите, 211 заменено, 7 удалено, 1123 миниатюры пересобраны. База не тронута, вёрстка не поехала. Полный бэкап базы и папок с картинками сделан до первой правки. Владелец получил документ, где по каждой замене стоят рядом старая и новая картинка - и как отчёт, и как аргумент в переговорах с правообладателем: нарушение прекращено добровольно и в полном объёме, а не только по спорному кадру.",{"sort":452,"collection":31,"item":453},31,{"heading":137,"level":34},{"sort":455,"collection":89,"item":456},32,{"list_style":91,"items":457},[458,460,462,464],{"lead":94,"text":459,"highlight":25},"Проверьте, откуда взялись картинки на вашем сайте. Если ответ \"подрядчик ставил\" - это ваш риск, а не его.",{"lead":94,"text":461,"highlight":25},"Демо-контент шаблона надо вычищать при запуске. Это самая частая находка и самый глупый способ получить претензию.",{"lead":94,"text":463,"highlight":25},"Замена картинки без пересборки миниатюр не считается заменой.",{"lead":94,"text":465,"highlight":25},"Нейросеть здесь - не про творчество, а про повторяемость: задача сформулирована как \"тот же кадр, снятый заново\", и проверяется тем, что посетитель не заметил подмены.",{"id":467,"modified_on":468},"acbf6596-6ae4-44e5-b6c6-54c5326c8011","2026-08-27T18:12:21.832Z"]