Нейросети

Лестница продуктов на теме нейросетей: гайды → закрытый TG-клуб. Вайбкодинг, AI-контент, автоматизация
Этап: SEO-контент-завод
⏱ 14 ч/нед 👤 только Юрий 📢 органика 🗓 без сроков

🎛 Инструменты проекта

загружаю…

🗺 План

Планирование ведёт Юрий. Ниже — снимок карты, правится она только в редакторе. Я забираю её напрямую и превращаю в работу.
Открыть карту →
1 · SEO-контент-завод → открытый TG-каналв работе
Начинаем отсюда. SEO раскручивается дольше всего — пока набирает обороты, делаем всё остальное.
Что уже есть у меня
Наработки по заводу и автоматизированному SEO — описать, что умеет.
Блог на viberendered.ru/blog
Темы и кластеры
Автопубликация и перелинковка
CTA в открытый канал + метки источников
Метки настроить до первой статьи, иначе не понять, что сработало.
2 · Автоматизированное видео для YouTube
Обзоры и обучающие. Тоже долго раскручивается — поэтому вторым, сразу за SEO.
Что уже есть из наработок
Пайплайн: тема → сценарий → видео → обложка → публикация
Форматы: обзоры, обучающие
3 · Наполнение открытого TG-канала
Параллельно с SEO и YouTube. ПОКА БЕЗ ПРОДАЖ — только наполнение и рост.
Новости как основа контента
Новости от трендвотчера — часть контента канала и по сути идут везде.
Создать и оформить канал
Анонсы статей из блога
4 · Трендвотчер — питает всё
Уже есть. Три выхода: темы для SEO, темы для роликов, новости для публикации.
→ темы для SEO-завода
→ новости для канала и остальных площадок
→ подсказывает, о чём снимать короткие видео
5 · Короткие видео — руками
Снимаю сам. Трендвотчер говорит, о чём снимать.
Площадки: Instagram, YouTube Shorts, TikTok
6 · Контент-завод для клуба
Наполнение клуба + то, что делаю сам.
7 · Гайды
8 · Клуб
Дашборд проекта
Сюда подрубается всё: трендвотчер, контент-заводы, метрики по каждой площадке.

📥 Что нужно от тебя сейчас

Название и бренд
Финальное название проекта. Плюс фото для аватара, если хочешь личный бренд в оформлении.
Формат: Текст + фото.
Без названия нельзя создать канал, занять юзернеймы и начать постить. Это блокирует старт.
Домен под блог
Купить домен и поставить A-запись на 45.12.73.217. Хостинг не нужен — блог встанет статикой на твой сервер.
Формат: Имя домена. Зона любая нейтральная — .pro подходит, .ru не берём. Регистратор Beget, домен и сервер в одной панели.
Первый блок — SEO-завод, а публиковать пока некуда. Это сейчас главный стопор.
Доступ к серверу SEO-завода
SSH к 45.12.72.227, где живёт /opt/seo-factory. Понадобится, когда будем заводить Нейроклуб как клиента завода.
Формат: Ключ или подтверждение, что подойдёт тот же id_ed25519.
Без доступа настроить завод под нас нельзя. Пока можно работать с тем, что на нашем сервере.
Ключи OpenRouter и Segmind
Ключи для модельного стенда. Положу в bench/.env с правами 600, в git они не попадут.
Формат: Два ключа.
Без них стенд не запустится, а он даёт готовый материал под статьи и посты.
SEO: семантика и темы
Всё, что уже есть: выгрузки запросов, списки тем, конкуренты в нише, старые статьи.
Формат: CSV, таблица, просто список — не важно, приведу к структуре сам.
Без этого я бы собирал семантику вслепую. С твоими данными кластеры будут точнее.
Понадобится позже: Твои тексты для калибровки стиля · API нейронок: что доступно · Tribute: что умеет твой кабинет · Референсы визуала

🔧 Технический долг · 14

Стенд не запускает сгенерированный код, только разбирает статически
Проверка кода ограничена ast.parse и структурными условиями. Запуск показал бы больше — компилируется ли, делает ли то, что просили.
Почему так: Запускать код от модели без изоляции опасно. Нужен контейнер без сети и файловой системы, а его пока нет.
Чинить: Когда появится место на сервере — поднять изолированный раннер и добавить тип проверки run.
Картинки в стенде оцениваются слабо
Для Segmind измеримы скорость, цена и разрешение. Следование промпту можно проверить vision-моделью, но это ориентир. Эстетика не автоматизируется.
Почему так: Объективной метрики красоты не существует.
Чинить: Собрать контактный лист изображений для просмотра глазами — для статьи это работает лучше любых баллов.
На сервере свободно 2,4 ГБ — меньше, чем было
Диск заполнился до 94%, свободно 2,4 ГБ против 3,5 ГБ ранее. Инстанс SEO-завода и блог туда не встанут спокойно.
Почему так: Юрий сказал, что расширит место, но пока не расширил.
Чинить: Дождаться расширения диска. До этого разворачивать инстанс нельзя — рискуем уронить чужие проекты на том же сервере.
Прогресс задач хранится в браузере, а не в tasks.json
Галочки на веб-дашборде живут в localStorage. Чтобы попасть в общий прогресс, Юрий жмёт «Скопировать сделанное» и присылает список, я переношу в tasks.json.
Почему так: Полноценная синхронизация требует бэкенда, а на сервере 1,9 ГБ RAM и он общий.
Чинить: Когда появится бот с БД (эпик e-botcore) — сделать endpoint /api/tasks и хранить статусы там.
Оценки часов в задачах приблизительные
est проставлены на глаз, без замеров. Особенно у производства гайдов и видео.
Почему так: Нет фактических данных — ничего ещё не делали.
Чинить: После первых 20 закрытых задач сверить факт с оценкой и откалибровать остальные.
Конверсии в плане взяты по отраслевым нормам, а не по своим данным
Churn 12%, конверсия канал→клуб 1,5–2,5%, CAC ≤2500 ₽ — все цифры экономики отраслевые.
Почему так: Своих данных нет и не будет до первых продаж.
Чинить: После этапа 3 (трипвайр) заменить на фактические. После первого месяца клуба — пересчитать всю экономику.
Возможности Tribute не проверены
Вся лестница продуктов предполагает, что Tribute умеет разовые продажи цифровых товаров и отдаёт события отмены. Не подтверждено.
Почему так: Нет доступа к кабинету.
Чинить: Задача inp-07 и fin-03. Если не умеет — нужен второй способ приёма разовых платежей.
Дашборд не защищён паролем
aiclub.viberendered.ru открыт всем, кто знает адрес. Стоит только noindex.
Почему так: Быстрее было выкатить без авторизации.
Чинить: Basic auth в блоке Caddyfile, когда на дашборде появятся живые цифры выручки.
API карты защищён только токеном, а токен лежит в открытой странице
PUT /api/map требует X-Token, но токен вшит в /map/, а страница доступна всем, кто знает адрес. Кто найдёт дашборд — сможет переписать карту.
Почему так: Нормальная защита — basic_auth на весь поддомен, но пароль выбирает Юрий, а Claude не должен придумывать и хранить его пароли.
Чинить: Юрий задаёт пароль, добавляем basic_auth в блок Caddyfile. Пока защита — версионирование: хранятся последние 40 версий, любую затирку можно откатить кнопкой «Версии».
Список из 207 задач не соответствует карте Юрия
Задачи в tasks.json собраны Claude до того, как Юрий начал планировать сам. Структура разойдётся с картой.
Почему так: Планирование перешло к Юрию (d15), карта только начата.
Чинить: Когда карта наполнится — пересобрать tasks.json из неё через pull_map.py. Старые задачи не удалять, а сверить: часть пригодится как подзадачи.
Автосохранение карты может сработать после ручного вмешательства в состояние
touch() ставит таймер на 3 секунды. Если состояние поменяли в обход интерфейса (например, из консоли) и не дождались, отложенное сохранение запишет промежуточную версию.
Почему так: Вылезло на тестах: мои скрипты в консоли сбили порядок веток верхнего уровня, пришлось восстанавливать.
Чинить: В обычной работе через интерфейс проблемы нет. Если правлю карту скриптом — только через API, не через консоль страницы. Порядок восстанавливается из «Версии».
На viberendered.ru robots.txt не отдаётся
В блоке корневого домена директива respond /robots.txt перекрыта блоком handle с try_files — по /robots.txt возвращается HTML главной страницы. Домен держится от индексации только заголовком X-Robots-Tag.
Почему так: Нашёл попутно, разбираясь с блогом. К нашему проекту отношения не имеет — это чужой блок, трогать без спроса нельзя.
Чинить: Сказать Юрию: если он хочет рабочий robots.txt на корне, надо перенести respond внутрь handle или дать ему отдельный handle. Заголовок noindex работает, так что критичного ничего.
Сервер российский, читателям вне РФ отдаётся медленнее
Задержка для Европы и США примерно на 100 мс больше. Для статики некритично, на ранжирование влияет слабо.
Почему так: Другого сервера нет, а поднимать отдельный ради этого сейчас незачем.
Чинить: Если SEO раскрутится и Core Web Vitals просядут на зарубежной аудитории — поставить CDN перед блогом.
Нет доступа к серверу SEO-завода
Завод живёт на 45.12.72.227, ключа туда у Claude нет. Настроить Нейроклуб как клиента без доступа не получится.
Почему так: Юрий давал доступ только к 45.12.73.217.
Чинить: Попросить доступ, когда дойдём до настройки завода. До этого работаем с тем, что на нашем сервере.

📌 Решения · 35

d01Позиционирование: «результат каждый месяц», а не «про нейронки»
Клуб = мастерская, где участник каждый месяц собирает и запускает одну работающую штуку. Не курс, не новостная лента.
d02Открытый TG-канал — единственная точка конверсии
YouTube, вертикалки, карусели, SEO, реклама ведут только в открытый TG-канал. Продажа — только оттуда.
d03Продажи окнами, а не постоянно
Окна продаж 3–5 дней раз в месяц, с ограничением мест.
d04Квартальный и годовой тарифы
Месяц 1500 / 3 мес 3900 / год 12 900. Цель: 30% годовых.
d05Порог запуска клуба
Не запускать раньше 2500 подписчиков канала И 100 покупателей гайдов.
Уточнено: Изначально порог был 3000 подписчиков без гайдов. После d08 условие стало двойным: 2500 канала + 100 покупателей.
d06Правило «1 из 5» для AI-контента
Максимум 1 из 5 постов клуба — полностью сгенерированный текст. Мнение, цифры, провалы — руками.
d07Ограничения: 14 ч/нед, всё сам, органика, старт с нуля
План пересобран под 14 ч/нед и нулевой рекламный бюджет.
d08Лестница продуктов: сначала гайды, клуб позже
Не «вместо», а «сначала». Гайды на этапе 3, клуб на этапе 5 — на базе покупателей гайдов.
d09Аудитория глобальная: Instagram первым, VK убран, SEO под Google
Приоритет вертикалок: Instagram Reels → YouTube Shorts → TikTok. VK Клипы убраны. SEO под Google.
d10Реклама только с денег клуба
Первые месяцы клуба — чистая органика. Дальше реинвест 20–25% выручки в закупку в TG-каналах.
d12Убрать сроки и календарное планирование
Все даты и дедлайны убраны. Остались 7 этапов по порядку и вехи — условия по цифрам.
d13Иерархия задач: этап → направление → эпик → задача → подзадача
Задачи получили поле parent и признак epic. Вложенность любой глубины.
Уточнено: Иерархия задач осталась, но источником плана стала майндкарта Юрия — см. d15.
d14Система памяти проекта
CLAUDE.md с обязательным протоколом начала и конца сессии + журнал сессий + реестр техдолга + решения со статусами. Всё дублируется на сервер.
d15Планирование ведёт Юрий, в майндкарте на дашборде
Юрий строит план в майндкарте на aiclub.viberendered.ru/map/. Claude забирает её через API и превращает в задачи. Планирование — за Юрием, исполнение и структурирование — за Claude.
d16Порядок работ: начинаем с SEO-контент-завода под открытый TG-канал
Первым — SEO-контент-завод, который продвигает открытый бесплатный TG-канал. Вторым — автоматизированное видео для YouTube. Параллельно — наполнение открытого канала без продаж. Короткие видео Юрий снимает руками, темы подсказывает трендвотчер. Новости от трендвотчера — сквозная часть контента на всех площадках.
d17Дашборд станет операционным центром проекта
Со временем в дашборд подключаются трендвотчер, контент-заводы (продвижение и наполнение клуба), метрики по площадкам. Делаем по порядку, а не сразу.
d18Дашборд — пульт управления, а не витрина плана
Дашборд сокращён до пульта: плитки инструментов вверху (каждая ведёт на свою страницу), снимок карты Юрия, что нужно от него сейчас, техдолг, решения, журнал. Инструменты Юрий заводит сам на странице — реестр хранится на сервере в /api/tools.
d19Память проверяется механически, а не держится на дисциплине
tools/audit.py проверяет систему памяти и запускается автоматически из sync.py. git хранит историю всех правок. BRIEF.md — единственный компактный файл на входе в сессию, не растущий со временем. Файлы блоков помечены как справочные, чтобы не выдавать себя за план.
d20Два слоя памяти: глобальная — тонкая, глубина — в проекте
В глобальной памяти остаётся только то, что нужно знать ДО открытия проекта: где он лежит и что читать первым, правило «планирует Юрий», правило про superseded, доступ и правила сервера. Всё, что имеет глубину и меняется, живёт в проекте и перечитывается заново.
d21SEO-блог — на отдельном тематическом домене
Блог ставим на отдельный тематический домен под проект, а не на viberendered.ru/blog и не на поддомен.
d22Домен покупаем на Beget, зона нейтральная (не .ru)
Регистратор — Beget. Зона — любая географически нейтральная gTLD, .pro подходит. .ru и .рф отклонены.
d24Свои инстансы на том же сервере, чужие клиентские системы не трогаем
Переиспользуем код и методологию систем Юрия, но разворачиваем СВОИ инстансы под Нейроклуб на 45.12.73.217. Клиентские VideoOS и trend-watcher, которые там уже крутятся, остаются нетронутыми. Свой контент-завод поднимаем сами, а не заводим профиль в чужом.
d25Порядок работ: SEO поднимаем и оставляем расти, параллельно канал и вертикалки
SEO-завод поднимаем сейчас и оставляем накапливать — это работа Claude, разовая настройка. Параллельно Юрий наполняет открытый TG-канал и снимает вертикалки. Формат вертикалок — говорящая голова, она у Юрия получается.
d26Цель по подписчикам — метрика социального доказательства, не денег
Цель принимается как есть, но фиксируем: подписчик с вирусного ролика конвертится в платного хуже, чем пришедший со статьи про вайбкодинг.
d27YouTube ведём двумя стратегиями: под ключевые запросы и под упаковку
Две параллельные линии. Поисковая: видео под конкретные запросы, живёт годами, растёт медленно, приводит людей с намерением. Просмотровая: видео под рекомендации, ставка на заголовок и обложку, даёт всплески и подписчиков.
d28Задача блога — трафик в TG-канал, а не демонстрация экспертизы
Уникальность статьи обеспечивается собственным прогоном по теме этой статьи: скриншот своего экрана, промпт целиком, реальное время, что не сработало. Бизнес-кейсы из клиентских проектов в тексты не идут. Регалии автора живут только на странице автора и в подписи — этого достаточно для E-E-A-T.
d29Типы статей и CTA под каждый тип
Ядро — обучающие и полезные статьи, они конвертят в канал. Информационные идут как слой охвата и каркас хабов. Развлекательные откладываем, пока домен не набрал тематический авторитет. CTA-блок в шаблоне делается не один, а под тип страницы.
d30Статья как лид-магнит для поста в канале
Механику берём. Условие: статья сама по себе — полный законченный ответ, а пост в канале даёт БОЛЬШЕ ТОГО ЖЕ, а не недостающую часть. В статье публикуются лучшие десять, а не остатки. Разрыв называется цифрой. CTA ставится и в середине статьи, не только в конце. Пост в канале открытый, без гейта, но живой — обновляется, чтобы была причина остаться.
d31Новости — в канал, в блог только разборы вокруг новости
Новостной поток идёт в открытый TG-канал, его собирает трендвотчер. В блог новости на старте не публикуем. Вместо них — разборы вокруг новости: не «вышла новая модель», а «протестировал на трёх реальных задачах, вот где ломается».
d32Модельный стенд — инструмент производства контента, не бенчмарк
Стенд прогоняет модели по фиксированной батарее и собирает ЗАГОТОВКУ СТАТЬИ: таблицу с цифрами, подсветку задач где модели разошлись, сырые выводы под скриншоты. Вердикт пишет Юрий. Модель-судья не используется.
d33Стоп-сигнал по индексации оговорён до старта
Еженедельно меряем долю проиндексированных страниц от опубликованных. Падение ниже 70% — публикация останавливается до выяснения. Две недели подряд падающей индексации — полный стоп, независимо от очереди статей.
d34Метрика SEO — переходы в канал, не визиты
Успех SEO меряем переходами в открытый TG-канал по меткам источников, а не объёмом визитов. Приоритет обучающим статьям над определительными.
d35Поисковые видео — скринкастом, связка с одноимённой статьёй
Поисковая линия YouTube делается скринкастом с озвучкой, без Юрия в кадре — говорящая голова остаётся в просмотровой линии. Длина 5-8 минут, ровно на один запрос. Там, где формат подходит обоим, видео и статья делаются в связке: видео встраивается в статью, статья ссылается из описания видео и там же CTA в канал.
d36Работаем итерациями: одна доведённая до конца вещь за раз
Одна итерация — это одна вещь, доведённая до работающего состояния и видимая глазами, после чего останавливаемся и смотрим. Не начинаем следующую, пока предыдущая не закрыта. Порядок итераций берётся из карты Юрия.
d37Два проекта: общие инструменты, раздельные данные
Один комплект инструментов на оба проекта, данные полностью раздельные. У каждого своя карта, свои решения, свой техдолг, свой журнал, свой набор плиток. На пульте переключатель проектов вверху.
d09-old [отменено] Instagram не приоритет из-за блокировки в РФ → d09
d11 Домен блога — viberendered.ru/blog → d21
d12-old [отменено] Календарный роадмап до февраля 2028 → d12
d23 Не строим с нуля — заводим себя клиентом в существующие системы Юрия → d24

📓 Журнал сессий

#18Разделение дашборда по проектам
  • Юрий обозначил второй проект: личный, про мышление и саморазвитие, с отдельными аккаунтами
  • Перестроил структуру: projects/ai/ и projects/personal/ с раздельными данными и документами, tools/ и server/ остались общими
  • Токен API вынесен в корень как общая инфраструктура, а не данные проекта
  • Инструменты стали проектными: общий резолвер путей tools/proj.py, флаг -p <project> у render, audit, sync, pull_map
  • sync.py теперь обходит все проекты разом: проверяет данные каждого, рендерит, коммитит один раз, прогоняет аудит по каждому отдельно
  • API переписан под проекты: /api/<project>/<key>, добавлен /api/projects. Старые пути /api/map и /api/tools оставлены псевдонимом проекта по умолчанию, чтобы ничего не сломалось
  • На сервере данные мигрированы в /opt/aiclub/data/ai/ без потерь — карта на месте, 25 узлов, версия 26
  • В дашборде вверху переключатель проектов, карта открывается через /map/?p=<id> и показывает, чей это план
  • Аудит научился искать файлы техдолга относительно каталога проекта — иначе после переезда все пути оказались битыми
  • Заведён каркас личного проекта: пустые реестры и один блокирующий вопрос — о чём он на самом деле
  • Аудит нашёл дефект моего же дизайна: правка общего инструмента требовала записи в журнал каждого проекта. Исправил — общая инфраструктура (tools, server) отчитывается только перед основным проектом
  • Поправил косметику пустого проекта: чип с блогом показывается только если домен задан, пустые блоки «понадобится позже» и «что нужно от тебя» скрываются
#17Правило итераций
  • Юрий обозначил принцип работы: делать понемногу и постепенно, по одной итерации, иначе запутаемся
  • Признал, что в этой сессии делал наоборот — за один заход выкатывал модельный стенд, выжимки из курсов, конфиги и по нескольку решений сразу
  • Определил, что считать одной итерацией: одна вещь, доведённая до работающего состояния и видимая глазами, после чего останавливаемся и смотрим
  • Правило вынесено в CLAUDE.md отдельным блоком, чтобы подхватывалось автоматически в начале каждой сессии
  • Заготовки впрок — стенд, выжимки, конфиг завода — остаются как есть, но в работу берутся по одной, а не параллельно
#16Поисковые видео и связка со статьями
  • Разобрал вопрос про массовые видео под ключевики: масштабировать можно, и это самая конвейерная часть YouTube
  • Ключевое наблюдение: поисковые видео не требуют Юрия в кадре. Запрос «как сделать X» отвечается скринкастом, личность там мешает. Говорящая голова остаётся в просмотровой линии
  • Назвал разницу ограничений: в SEO риск вылететь из индекса, на YouTube санкций нет — видео с плохим удержанием просто перестаёт раздаваться. Обратная связь быстрее и безжалостнее: статья с плохим дочтением сидит месяцами, видео умирает за дни
  • Отсюда требование: 5-8 минут ровно на один запрос. Длинное видео под узкий запрос убивает удержание
  • Главная находка — связка усиливает обе стороны: встроенное в статью видео поднимает время на странице, а слабое поведенческое это ровно то, из-за чего разваливается масс-контент. То есть связка лечит главную уязвимость завода тем, что мы и так производим
  • Плюс Google показывает видео-блок по процедурным запросам — один запрос занимается дважды
  • Правило разделения: процедурное и визуальное в видео, определительное и обзорное в текст. В связку только там, где формат честно подходит обоим
  • Правила связки зашиты в profile.yaml: для каких типов страниц пара обязательна, для каких запрещена, встраивание видео в статью и ссылка на статью из описания, длина 5-8 минут
#15Потенциал SEO и защита от деиндекса
  • Оценил потенциал честно: длинный хвост в нише почти не занят, высокочастотка держится Хабром и школами. Вилка 15-25 тыс. визитов к полугоду, 40-80 тыс. к году
  • Назвал структурный сдвиг 2026: AI Overviews срезали CTR топовых результатов примерно на 58%, информационный трафик уходит из кликов в цитирования. Потолок информационного SEO ниже, чем был
  • Следствие: GEO становится обязательным слоем, а обучающие статьи живут лучше определительных — их не закрыть ответом в выдаче
  • Разложил риски деиндекса по реальной опасности: scaled content abuse, страницы-сироты (вылет за 60-90 дней, коварны тем что первые месяцы всё выглядит нормально), заливка залпом, тонкие страницы, отсутствие E-E-A-T
  • Главный вывод: правила в конфиге не защищают, защищает измерение. Добавил стоп-сигнал по индексации — ниже 70% проиндексированных публикация встаёт, две недели падения подряд означают полный стоп
  • Обосновал асимметрией: вылететь легко, возврат занимает полгода-год, часть сайтов не возвращается. Осторожный старт рационален, а не робок
  • Метрика SEO переопределена: переходы в канал по меткам, а не визиты
  • Стоп-сигнал и метрика успеха зашиты в profile.yaml
#14Модельный стенд как контент-двигатель
  • Юрий спросил, может ли нейросеть тестировать за него новые модели. Развёл честно: механику автоматизируем, суждение оставляем человеку
  • Уточнение Юрия: это в первую очередь инструмент создания контента, а не бенчмарк — перестроил акцент с метрик на готовую заготовку статьи
  • Написал bench/bench.py на stdlib, как в заводе: обнаружение новых моделей через список OpenRouter, прогон батареи, сборка отчёта
  • Батареи задач: код (телеграм-бот, разбор кривого JSON, оконный SQL, рефакторинг) и текст (строгий JSON, жёсткий лимит слов, отказ от воды, честность при нехватке данных)
  • Проверки только объективные: парсится ли код, валиден ли JSON, уложился ли в лимит, есть ли обязательные элементы. Модель-судью не используем — она предвзята
  • Выход — article-draft.md: таблица сравнения, раздел «Где разошлись» с указанием что именно сломалось, список не ответивших, пустые места под вердикт и скриншоты
  • Проверил логику отчёта на синтетических данных без ключей — собирается корректно
  • Стенд заведён отдельной плиткой на пульте
  • Записал два ограничения в техдолг: код не запускается (нужен изолированный контейнер), картинки оцениваются слабо (нужен контактный лист)
#13Механика статья→пост и место новостей
  • Юрий предложил механику: в статье 10 промптов, ссылка на пост в канале со 100
  • Механику взяли с условием: статья должна быть законченным ответом сама по себе, иначе читатель возвращается в поиск — худший сигнал для Яндекса и признак дорвея для Google. Пост даёт больше того же, а не недостающую часть
  • Усиления: в статью идут лучшие экземпляры а не остатки, разрыв называется цифрой, CTA ставится и в середине статьи
  • Гейт решили не ставить — закрытый список промптов раздражает там, где нужно доверие. Пост открытый, но живой и обновляемый, чтобы лечить забрал-и-ушёл
  • Новости: идут в канал, их собирает трендвотчер. В блог на старте не пускаем — молодой домен не выиграет новостные запросы у крупных площадок, а статьи устареют за неделю
  • Замена новостям в блоге: разборы вокруг новости, они живут годами и ранжируются по обычным запросам
  • Правила CTA и запрет на новости зашиты в profile.yaml
#12Поправка: блог гонит трафик, а не показывает экспертизу
  • Юрий поправил: контент-завод в этом проекте не продаётся, цель блога — трафик в открытый TG-канал
  • Убрал из базы знаний бизнес-кейсы как источник уникальности — это была подмена понятий с моей стороны
  • Требование методички про свои данные переформулировано правильно: уникальность даёт собственный прогон по теме конкретной статьи — скриншот экрана, промпт целиком, реальное время, что не сработало
  • Регалии автора оставлены только для страницы автора и подписи, в тело статей не идут
  • Правило для завода: пишем статью — делаем то, о чём пишем, и снимаем экран. Нет прогона — статья не выходит
  • Следствие для кластеров: темы подбираются по тому, что ищет будущий подписчик канала, а не по тому, что показывает экспертизу
  • Запрос кейсов с цифрами убран из списка того, что нужно от Юрия
  • Юрий определил типы статей: информационные, обучающие, полезные, возможно развлекательные
  • Разложил их по конверсии в канал: обучающие лучше всех (застают человека в процессе), полезные вторые (плюс их чаще цитируют нейросети), информационные дают охват но не подписчиков, развлекательные отложены — размывают тематический авторитет молодого домена
  • Ключевая механика: CTA под тип статьи, а не один на всё. Информационную конвертит лид-магнит, обучающую — обещание промпта и репозитория в канале
  • Типы страниц и карта CTA зашиты в profile.yaml
#11Начали SEO: профиль клиента для завода
  • Юрий выбрал: SEO поднимаем и оставляем расти, параллельно он наполняет TG-канал и снимает вертикалки. Говорящая голова у него получается — значит ежедневный формат реалистичен
  • Разобрал модель клиента в заводе: клиент это profile.yaml плюс kb.md плюс плейбук архетипа. Никакого кода писать не нужно
  • Наш архетип — infobusiness_experts, ложится точно: доминирует информационный интент, приоритетные типы страниц это how-to, разборы, кейсы, страница автора
  • Составил seo-client/profile.yaml: ниша, три трека, тон, запреты по стилю и заявлениям, гео выключено (аудитория глобальная, целевой движок Google)
  • В профиль зашиты жёсткие требования из методички 2026: минимум 500 уникальных слов, дифференциация 30%, свои данные обязательны, самодостаточные блоки, hub-and-spoke, первый батч 20 статей
  • Автоматизация на старте выставлена в L1 — всё через ручную вычитку, автопубликацию не включаем
  • Заготовил seo-client/kb.md — каркас базы знаний с пометками TODO там, где нужны данные от Юрия
  • Диск на сервере ужался до 2,4 ГБ (94%) — разворачивать инстанс пока нельзя, записал как техдолг
  • Юрий уточнил: клиент завода — он сам, делает для себя. Переписал базу знаний под это
  • Главное следствие для позиционирования: его экспертность не «изучил нейросети», а «строю на них системы, которые работают в проде у платящих клиентов» — контент-завод, трендвотчер, платформа генерации. Это редкий и проверяемый аргумент, зашит в базу знаний как несущий
  • Гайд №2 про AI-контент-конвейер — не теория, а описание работающей у автора системы. Это и есть лучший продукт лестницы
#10Доразбор материалов: карусели, копирайтинг, тренды
  • Разобрал банки для каруселей: нашёл раздел «Нейросети и автоматизация» — 35 готовых заголовков прямо под нашу нишу, плюс 100 универсальных
  • Вытащил PDF в текст, сохранил в knowledge/ как рабочие активы, чтобы не зависеть от повторной распаковки
  • Записал признаки виральной обложки из разбора постов, обошедших норму в 30-70 раз: фото человека, выделенное цветом слово, 7-11 слов, конфликт с ожиданием
  • Зафиксировал таксономию: 12 виральных категорий и 23 формата подачи. Одна тема даёт 3-4 карусели, значит 135 заголовков превращаются в 400+ постов
  • Тест трёх вопросов для отбора тем: узнает ли себя незнакомый человек, есть ли поворот, кому перешлёт
  • Разобрал структуру продающего текста из восьми блоков — каркас для лендинга клуба и страниц гайдов
  • Формула заголовков 4U с правилом писать заголовок последним из 10-20 вариантов — в промпты генерации
  • Алгоритм работы с трендами: тренд берётся как форма, содержание подставляется своё — ровно то, что делает контент-пайплайн трендвотчера
  • Выжимки: channels/07-carousel-methods.md и product/07-content-methods.md. Индекс базы пересобран
#9Разбор базы знаний: индекс и правила SEO-завода
  • Проиндексировал выгрузки курсов: 149 файлов, 41 МБ. Индекс в KNOWLEDGE.md, пересборка через tools/index_knowledge.py
  • Читать 800 МБ целиком бессмысленно — сделал карту с оглавлениями, чтобы открывать точечно
  • Разобрал методичку по контент-фабрикам 2026 и гайд по GEO — из них выжимка в automation/06-seo-rules.md
  • Ключевое, что меняет подход: объём сам по себе теперь штрафуется, среди деиндексированных сайтов у 100% был AI-контент
  • Критичный факт: страницы без входящих внутренних ссылок с хаба деиндексируются за 60-90 дней — значит hub-and-spoke обязателен с первого дня, иначе объём просто исчезнет
  • Норматив по статьям получил цифры: минимум 500 уникальных слов, 30-40% дифференциации, свои данные в каждой
  • GEO: каждый смысловой блок должен быть самодостаточным, JSON-LD и llms.txt обязательны — иначе нас для нейросетей не существует
  • Заливка только батчами по 100-500 с мониторингом индексации, для старта — первые 20 статей и пауза
  • Поправка Юрия принята: VideoOS не используем, поднимаем свои инстансы на том же сервере, место он расширит
#8Разведка систем Юрия: строить нечего, всё уже есть
  • Изучил папки SEO, Стартап-парсер и VideoOS — оказалось, это три работающие в проде системы, которые Юрий делает для клиентов, а не наработки
  • SEO-завод: сервер 45.12.72.227, контейнеры seo-api и seo-web, 50+ модулей — семантика, кластеры, брифы, quality gate, публикация, IndexNow, линк-граф, картинки, вебмастер, geo для ответов нейросетей
  • trend-watcher: крутится на НАШЕМ сервере, три пайплайна. Третий, content_daily в 11:00, делает ровно то, что нужно нам — вирусные TikTok превращает в готовые русские бриф-сценарии
  • VideoOS: тоже на нашем сервере, 3.6 ГБ, videoos.viberendered.ru. Умеет карусели, сторис, видео, кружки, озвучку, тексты, календарь и публикацию. Главная сущность — профиль, под который всё настраивается
  • Написал инвентаризацию в automation/00-existing-systems.md: что где живёт, что берём, чего намеренно не читал
  • Пульт обновлён: SEO-завод, трендвотчер, VideoOS и карусели переведены в «в работе» и ведут на реальные системы, а не на пустые страницы
  • Конструктор каруселей отдельной задачей снят — он часть VideoOS
  • Диск уточнён: VideoOS занимает 3.6 ГБ при 3.5 ГБ свободных, запаса под блог почти нет
#7Проверка перед первым блоком: домен для SEO не годится
  • Перед запуском SEO-блока проверил viberendered.ru: домен отдаёт X-Robots-Tag noindex на каждый ответ, /blog наследует — SEO-завод там дал бы ноль
  • Заодно нашёл, что robots.txt на корне не отдаётся: respond перекрыт handle. Чужой блок, не трогал
  • Юрий выбрал отдельный тематический домен под блог
  • Решение d11 (viberendered.ru/blog) помечено superseded, заменено на d21
  • Техдолг td05 про слабую SEO-позицию поддомена закрыт этим решением
  • Аудит научился проверять полноту записей: каждое решение и каждый техдолг должны быть привязаны к сессии, пункты короче 40 символов и формулировки-отписки («поработали», «разное») отклоняются
  • Техдолг td05 был удалён при закрытии — это нарушало собственное правило проекта «не стирать, а помечать». Восстановлен со статусом closed и ссылкой на решение, которое его закрыло
  • У техдолга появился статус open/closed; аудит теперь ругается, если закрыли без указания, чем именно
  • Разобрал, что нужно под блог: только домен, хостинг не нужен — статика встаёт на существующий сервер, свободно 3,5 ГБ
  • Рекомендация по зоне: .com, не .ru — аудитория русскоязычная глобально, а .ru для Google мягкий геосигнал в сторону России
  • Зона домена: Юрий берёт на Beget, скорее всего .pro. Для Google .pro и .com равнозначны, важно было только отклонить .ru как геосигнал
#6Система памяти получила проверку и историю
  • tools/audit.py — проверяет саму память: задокументирована ли сессия (по времени правки файлов), связны ли решения, живы ли файлы из техдолга, не пора ли уплотнять журнал
  • Аудит встроен в sync.py — запускается сам при каждой синхронизации, молча деградировать память не даст
  • git init: вся история правок под контролем, 44 файла; data/secrets.json исключён из истории
  • sync.py коммитит автоматически — откатиться можно к любому состоянию
  • BRIEF.md — один компактный файл на входе в сессию: проект, план, все решения, техдолг, что ждём от Юрия, последние 3 сессии. Не растёт с числом сессий
  • 23 файла блоков помечены как СПРАВОЧНЫЙ МАТЕРИАЛ, не план — писались под старую схему, вводили бы в заблуждение
  • Аудит на 20-й сессии потребует уплотняющую запись, чтобы журнал не превратился в свалку
  • Глобальная память Claude Code разделена по принципу «что нужно знать до открытия проекта»: там остались только указатель на BRIEF.md, правило «планирует Юрий», правило про superseded и доступ к серверу
  • neuroclub-tooling.md удалён — пересказывал список инструментов, который живёт в проекте и меняется; такие пересказы молча устаревают
#5Дашборд стал пультом управления
  • Дашборд урезан: убраны 207 задач, 20 направлений, вехи, прогресс-бары на нулях, риски, решённые вопросы — 203 КБ → 40 КБ
  • Вверху пульт: плитки инструментов, каждая ведёт на свою страницу; готовые кликабельны, остальные видны, но неактивны
  • Инструменты Юрий заводит и правит прямо на странице — реестр на сервере, /api/tools
  • API обобщён под несколько документов (map, tools) с версионированием каждого; старая карта перенесена без потерь
  • Дашборд теперь показывает снимок карты Юрия вместо моего плана
  • «Что нужно от тебя» разделено: 5 пунктов под текущий этап SEO, остальные свёрнуты в «понадобится позже»
  • В карту добавлено перемещение веток: выше/ниже, внутрь, наружу
  • Карта: два пальца теперь прокручивают холст, масштаб — только щипком (различаем по ctrlKey, которым браузер помечает pinch)
  • Карта: перетаскивание веток мышью — на середину ветки вложить внутрь, к верхнему/нижнему краю встать соседом; запрещено тащить ветку в собственного потомка
  • Карта: плюсик справа на каждой ветке — добавляет подветку одним кликом
  • Карта: проверка целостности перед каждым сохранением (дубли, потерянные родители, число корней) — сломанная структура на сервер не уедет
  • Стресс-тест: 300 случайных перемещений подряд — структура не разъехалась, ветки не потерялись
#4Майндкарта и мини-API: планирование переходит к Юрию
  • Поднят мини-API на сервере: systemd aiclub-api, порт 8123, 9.5 МБ RAM, stdlib без зависимостей
  • В Caddyfile добавлен handle /api/* → 172.20.0.1:8123 (бэкап сделан, validate прошёл, чужие сайты проверены — живы)
  • Сделана майндкарта на /map/: дерево с автораскладкой, горячие клавиши, заметки, кто делает, часы, статус, цвета
  • Автосохранение на сервер + версионирование (последние 40 версий, восстановление кнопкой)
  • tools/pull_map.py — забираю карту напрямую, без копипаста
  • Карта засеяна скелетом со слов Юрия: SEO-завод → YouTube → открытый канал, трендвотчер питает всё
  • Добавлено перемещение веток: выше/ниже среди соседей, вложить внутрь, вынуть наружу — кнопками и с клавиатуры (Alt+стрелки, Shift+Tab)
#3Микрозадачи, иерархия, память
  • 199 микрозадач с зависимостями, часами и исполнителями
  • Раздел «Что нужно от тебя» — 10 пунктов данных вместо сбора семантики вслепую
  • Убраны все сроки, вместо траектории — вехи по цифрам
  • Введена иерархия: этап → направление → эпик → задача → подзадача, 31 эпик
  • Построена система памяти: CLAUDE.md, журнал, реестр техдолга, решения со статусами
  • Утилиты: tools/sync.py (проверка целостности + рендер + заливка) и tools/add_task.py
  • CLAUDE.md с обязательным протоколом начала и конца сессии — загружается автоматически
  • Память Claude Code обновлена: 4 записи о проекте, решениях, инструментах и сервере
  • data/decisions.md перенесён в data/decisions.json со статусами — старый файл удалён, чтобы не было двух источников правды
#2Пересчёт под реальные вводные
  • Пересобран план под 14 ч/нед, ноль бюджета, старт с нуля
  • Добавлена лестница продуктов: гайды перед клубом
  • Развёрнут веб-дашборд на aiclub.viberendered.ru
  • Получен доступ к серверу, правила записаны в память
#1Стратегия и структура проекта
  • Собрана стратегия: позиционирование, юнит-экономика, рубрики, механики удержания
  • Развёрнуто проектное пространство: 27 файлов по блокам
  • Заведены state.json, metrics.csv, decisions

Метрики

0канал TG 0платных 0 ₽
Пока нули — мерить нечего. Заполнятся, когда пойдут первые цифры.