Claude Code для продакта сквозной workshop: лендинг → skill → агент → бот → публикация → прод
Формат: вертикальный playbook Логика: каждый блок = шаг домашки Фокус: конечный рабочий результат
Версия для продакта, а не для инженера

Как войти в vibe coding через Claude Code и собрать реальный проект, а не просто посмотреть на слайды

В этом workshop итог не абстрактный. На выходе у тебя есть публичный лендинг, контентный агент в Claude Code, skill под Telegram-посты, Telegram-бот как канал доставки и понятный путь деплоя: либо бот присылает черновик тебе в личку, либо публикует готовый пост в канал.

Финал: working MVP Стиль: простой продуктовый язык Режим: каждый блок = шаг домашки Главная мысль: сначала руками, потом делегируешь Claude
Ключевая честная оговорка. Для этого workshop не тащим отдельный серверный контур. Claude Code — это место, где ты создаёшь контент через skill и subagent прямо в терминале, а Telegram-бот нужен как понятный и практичный канал доставки: в личку, в канал или в review.

Что именно соберём

  • Публичный лендинг с оффером и CTA в Telegram
  • Рабочий бот, который получает готовый текст из проекта и отправляет его в Telegram
  • Skill /tg-post — единый playbook для оформления постов
  • Subagent tg-content-agent — отдельный редактор под Telegram
  • Режим публикации: draft в личку или post в канал
  • Git → preview → prod с историей, commit, push, preview URL и production URL
  • /insights как отчёт о том, где процесс тормозит
Финальный результат

Что реально будет работать в конце

Не “у нас есть идея бота”, а “у нас есть собранный микро-продукт, который можно показать команде, руководителю или первым пользователям”.

1. Точка входа

Лендинг

Одна живая страница с простым оффером: кому нужен бот, какую боль решает, что получит пользователь, и кнопка “Открыть в Telegram”.

2. Основной сценарий

Бот

Владелец продукта даёт brief в терминале Claude Code, получает готовый черновик через agent + skill, а бот отправляет утверждённый текст в личку или в канал.

3. Качество ответа

Skill

/tg-post держит единый стандарт: структура поста, hook, CTA, длина, тональность, запреты и формат результата.

4. Специализация

Агент

tg-content-agent работает как отдельный редактор: придумывает angle, усиливает подачу и не раздувает основной контекст лишними размышлениями.

5. Куда идёт результат

Публикация

На старте бот безопасно отдаёт пост тебе в личку. Следующий шаг — добавить публикацию в канал, когда бот получает нужные права администратора.

6. Production-контур

История и деплой

Есть git-история, GitHub-репозиторий, preview-ссылки на каждую итерацию и production-версия после merge или явного прод-деплоя.

Самая полезная рамка

Не путай создание контента и доставку

Слой 1. Где рождается текст

Claude Code в терминале

  • Помогает собрать структуру проекта
  • Создаёт и улучшает CLAUDE.md
  • Создаёт skill и subagent
  • Генерирует версии поста по brief
  • Может запустить проектный скрипт отправки после твоего ok
Слой 2. Куда текст уезжает

Telegram-бот как доставка

  • Получает готовый текст из проекта
  • Отправляет draft тебе в личку
  • Может публиковать в канал при нужных правах
  • Не обязан сам вести диалог и придумывать контент
  • Для курса не требует отдельного backend-сервиса
Почему это важно для понимания. Когда ты создаёшь агента через /agents и skill через SKILL.md, это уже рабочий учебный контур прямо в терминале. Отдельный backend нужен позже — когда захочешь, чтобы бот сам принимал brief, помнил диалог и жил как автономный продукт.
Сквозной операционный сценарий

Как выглядит один полный проход от brief в терминале до поста в Telegram

Шаг 1Владелец продукта открывает проект

Заходит в Claude Code и работает в папке проекта.

Шаг 2Даёт brief в терминале

Тема, цель поста, аудитория, тон, CTA.

Шаг 3Claude собирает версии

При необходимости вызывает tg-content-agent и skill /tg-post.

Шаг 4Ты выбираешь финальный вариант

Смотришь short / standard / punchy и утверждаешь нужный текст.

Шаг 5Проект запускает отправку

Claude или твой script шлёт утверждённый текст через Telegram Bot API.

Шаг 6Результат уходит туда, куда нужно

Либо тебе в личку как draft, либо прямо в канал, либо в очередь на review.

Минимальная структура проекта

/app/page.tsx                          → лендинг
/scripts/publish-telegram-post.ts      → отправка через Telegram Bot API
/lib/telegram/send-message.ts          → helper для sendMessage / sendPhoto
/.claude/skills/tg-post/SKILL.md       → единый playbook поста
/.claude/agents/tg-content-agent.md    → редактор под Telegram
/CLAUDE.md                             → правила и контекст проекта
/.env.local                            → TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID

Опционально:
 /lib/supabase.ts
 /supabase/migrations/*
Стек без перегруза

Какой стек берём, чтобы не утонуть на старте

Маршрут по умолчанию

Самый короткий MVP

Next.js + Vercel для лендинга + Claude Code в терминале + Telegram Bot API для отправки. Этого хватает, чтобы собрать витрину, генерировать посты через agent + skill и отправлять их в Telegram без отдельного backend-сервиса.

Стартуй отсюда Подходит для курса
Когда нужен state

Добавляем Supabase

Нужен, если ты хочешь хранить briefs, drafts, publish log, пользователей, каналы, пресеты, статусы review и историю публикаций.

DB Auth Storage
Когда нужен отдельный backend

Выносим автоматизацию позже

Отдельный сервис нужен уже не для обучения, а когда бот сам принимает входящие сообщения, держит очереди, cron, multi-user state и тяжёлые интеграции. До этого этапа можно спокойно жить в одном репозитории.

Webhook Очереди Автономность
Практическая рекомендация. Не начинай с отдельного автономного backend-а. Для первого погружения важнее собрать короткий путь: brief в терминале → готовый пост → отправка через бота. База и отдельный backend — следующий уровень, а не стартовая обязанность.
Шаг 1

Запускаем Claude Code так, чтобы он сразу строил проект, а не просто “генерил что-то”

Что делаем

Открываем пустую или новую папку проекта, запускаем claude, просим сначала собрать definition of done и предложить простой каркас MVP.

Если хочешь быстрый старт памяти проекта — запускаешь /init.

Что говорим Claude
Мы делаем один проект:
1) лендинг,
2) Telegram-бот для отправки draft/post,
3) content-agent и skill,
4) путь до preview и prod.

Контент создаём в Claude Code в терминале.
Не уводи нас в отдельный автономный backend или тяжёлую серверную схему.
Сначала предложи definition of done, структуру папок и самый короткий стек без лишних сущностей.
Что получаем

Не набор разрозненных идей, а конкретный проектный каркас: что создаём, в какой последовательности, и какой финальный результат должен быть виден пользователю.

Принцип старта. Сначала зафиксируй, что должно заработать в конце. И только потом переходи к экранам, боту и деплою. Так vibe coding становится управляемым, а не хаотичным.
Шаг 2

Делаем CLAUDE.md коротким operating manual проекта, а не длинной простынёй

Anthropic рекомендует относиться к CLAUDE.md как к месту, куда ты кладёшь то, что иначе пришлось бы объяснять снова и снова. Чем текст короче и конкретнее, тем стабильнее Claude его соблюдает.

Что сюда действительно стоит класть
  • Что это за продукт и какой у него сценарий успеха
  • Какой стек мы считаем базовым, а какой опциональным
  • Что для нас считается “готово”
  • Что Claude должен делать перед началом работы
  • Какие вещи нужно упрощать, а не раздувать
Чего сюда тащить не надо
  • Длинные пошаговые инструкции, которые лучше вынести в skill
  • Случайные идеи “на всякий случай”
  • Повторение всей документации проекта
  • Слишком общие фразы вроде “пиши хороший код”
  • Текст, который не помогает принимать решения в сессии
# CLAUDE.md — пример для этого workshop

Мы делаем один сквозной MVP:
- публичный лендинг
- Telegram-бот
- content-agent и skill для Telegram-постов
- preview и production deployment

Главная ценность:
владелец продукта отправляет brief Claude в терминале и получает готовый пост,
который потом уходит через Telegram-бота.

Рабочий путь по умолчанию:
Next.js + Vercel + Telegram Bot API + Claude Code subagent/skill.
Supabase добавляем только когда нужна история, review и publish log.

Принципы:
- сначала показывай пользователю видимый результат
- не усложняй архитектуру раньше времени
- каждую значимую итерацию заканчивай commit
- перед изменениями коротко формулируй ожидаемый user-visible output
- длинные повторяемые процедуры выноси в skills
Простое правило. CLAUDE.md отвечает на вопрос “как вести себя в этом проекте?”. Skill отвечает на вопрос “как выполнять конкретную повторяемую процедуру?”. Не смешивай эти роли.
Шаг 3

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

Что делаем

Просим Claude собрать одну простую страницу: оффер, кому подходит, как работает, 2–3 сценария пользы, CTA в Telegram и резервный waitlist или форму.

Что говорим Claude
Сделай простой лендинг для Telegram-бота, который помогает быстро получать черновики постов.
Нужны блоки:
- hero
- для кого это
- как работает в 3 шага
- примеры результата
- CTA "Открыть в Telegram"
- резервный waitlist на случай, если бот недоступен

Пиши простым продуктовым языком. Без маркетингового перегиба.
Что получаем

Первую публичную точку входа в продукт. Уже на этом шаге у тебя появляется объект, который можно показать и обсудить, а не только пересказывать идею на словах.

Критерий качества лендинга здесь очень простой: после страницы пользователь должен понимать, зачем ему этот бот, и нажимать не “узнать больше”, а “попробовать прямо сейчас”.
Шаг 4

Подключаем Git: commit и push — это не техрутина, а память и история проекта

Перевод на человеческий

Что такое commit

Commit — это зафиксированная глава истории проекта. Он отвечает на вопрос: что именно изменилось и зачем. Это ваша точка возврата, ревью и объяснимости.

Перевод на человеческий

Что такое push

Push — это публикация этой истории в удалённый репозиторий. После этого историю видят GitHub, команда и Vercel. Для самого Claude важны и локальные файлы, и git history; push нужен прежде всего для удалённого бэкапа, совместной работы и preview-деплоев.

Что делаем

После первого видимого результата — например, каркаса лендинга — делаем первый осмысленный commit. Первый раз лучше пройти руками, чтобы почувствовать маршрут.

git status
git add .
git commit -m "init landing and bot project skeleton"
git push origin main
Что говорим Claude
Покажи, что изменилось, предложи 3 хороших commit message и объясни,
что именно мы сейчас фиксируем как отдельный шаг проекта.
Первый commit я делаю руками.
Что получаем

Историю решений. Claude сможет быстро понять проект, глядя на ключевые файлы и git history, а push даст удалённую точку восстановления, командную видимость и preview/deploy flow.

Важно. Claude действительно может выполнять git-команды, если ты дал ему на это права. Но на старте полезнее самому прожить путь status → add → commit → push. Тогда дальше делегирование становится осознанным, а не слепым.
Шаг 5

Подключаем GitHub и Vercel: после push получаем preview, после merge — production

Что делаем

Публикуем репозиторий на GitHub, подключаем его в Vercel и проверяем, что после push появляется preview URL. Дальше настраиваем production flow через merge или явный прод-деплой.

Что говорим Claude
Подготовь проект к деплою на Vercel.
Проверь, что:
- у нас понятная структура
- env variables перечислены отдельно
- нет лишних файлов
- есть короткий README с шагами запуска
- landing открывается без ошибок
Что получаем

У тебя появляется не просто локальный проект, а нормальный продуктовый контур: удалённый репозиторий, preview для проверки каждой итерации и production-версия после принятого изменения.

ЛокальноПравка

Что-то изменили в проекте.

GitCommit

Зафиксировали главу истории.

GitHubPush

История ушла в remote.

VercelPreview

Получили живую ссылку на проверку.

ReleaseProd

Слили approved-изменение в production.

Шаг 6

Делаем Telegram-бота: превращаем его в канал доставки, а не в отдельный мозг

Что делаем руками

Создаём бота

Через @BotFather создаём бота, получаем token и сохраняем его как секрет. Для канала потом отдельно добавляем бота админом с правом публикации.

Что делаем в проекте

Добавляем отправку в Telegram

В проекте появляется простая функция или script, который берёт готовый текст и отправляет его через Bot API в личку, канал или review-чат.

Что делаем

Просим Claude добавить минимальный publish helper: env-переменные, функцию sendTelegramPost и тестовый script для отправки сообщения.

Что говорим Claude
Добавь минимальный Telegram publish helper.
Нужно:
- TELEGRAM_BOT_TOKEN в env
- TELEGRAM_CHAT_ID или CHANNEL_USERNAME
- функцию sendTelegramPost(text)
- тестовый script scripts/publish-telegram-post.ts

Пока без webhook, без входящих сообщений и без базы.
Нужен максимально короткий working path.
Что получаем

Первый живой контур доставки. Бот умеет принять готовый текст из проекта и отправить его в Telegram без ручного копипаста.

Простой тест результата. Если бот может отправить тебе тестовое сообщение в личку, контур публикации уже собран. Интеллект и генерация живут в Claude Code, а бот отвечает за доставку.
Шаг 7

Делаем skill /tg-post: превращаем “как писать пост” в повторяемую систему

Skill — это не “ещё один агент” и не “ещё один prompt”. Это проектный playbook, который Claude может вызвать сам или по команде. Самая полезная роль skill в этом кейсе — стабилизировать качество и формат Telegram-постов.

Что делаем

Создаём папку .claude/skills/tg-post/ и кладём туда SKILL.md с описанием, когда этот skill нужен, и что он должен вернуть на выходе.

Что говорим Claude
Создай project skill /tg-post.
Он должен:
- превращать brief в Telegram-пост
- выдавать 3 версии: short / standard / punchy
- добавлять hook и CTA
- избегать лишнего пафоса
- писать простым продуктовым языком
Что получаем

Один источник правды для постов. Дальше и Claude в сессии, и ты сам в следующих итерациях опираетесь на одну и ту же логику, а не каждый раз придумываете формат заново.

---
name: tg-post
description: Пиши и улучшай Telegram-посты для этого проекта. Используй, когда нужно превратить brief в короткий, ясный и полезный пост.
---

Когда используешь этот skill:
1. Сначала найди главный angle поста.
2. Дай 3 версии: short, standard, punchy.
3. Для каждой версии добавь:
   - hook
   - основной текст
   - CTA
4. Не пиши канцеляритом.
5. Не раздувай объём ради “умности”.
6. Если данных мало, делай разумные предположения и явно помечай их.
Самая простая формула: CLAUDE.md = факты и правила проекта. Skill = воспроизводимая процедура. В этом кейсе skill нужен для качества постов, а не для общей архитектуры проекта.
Шаг 8

Создаём tg-content-agent: отдельного специалиста под Telegram-контент

Agent / subagent — это отдельный специалист со своей ролью, своим контекстом и, при желании, своими ограничениями по инструментам. Он полезен, когда ты не хочешь, чтобы весь основной диалог превращался в бесконечный редакторский брейншторм.

Как понять по-простому

Когда нужен агент

Когда задача повторяется и требует своей “профессии”. Например: Telegram-редактор, который ищет angle, усиливает первый абзац, режет лишнее и следит за tone of voice.

Как создать без боли

Самый понятный путь

Открываешь /agents внутри Claude Code и создаёшь tg-content-agent через интерфейс. Это самый наглядный способ понять сущность subagent на практике.

Что делаем

Создаём агента с понятным описанием роли: когда его использовать, какую задачу он берёт, что считает хорошим результатом.

Что говорим Claude
/agents

Создай subagent tg-content-agent.
Роль: Telegram content editor.
Используй его, когда нужно:
- придумать angle поста
- усилить hook
- сократить текст
- сделать версию более понятной и цепкой
- сохранить простой продуктовый тон
Что получаем

Понятную специализацию внутри проекта. Основной агент больше не тянет на себе весь редакторский шум — он делегирует эту часть отдельному “редактору”.

---
name: tg-content-agent
description: Telegram content editor. Use proactively when a brief needs angle, sharper hook, stronger CTA, or tighter editing.
tools: Read, Skill
model: sonnet
---

Ты редактор Telegram-контента.
Твоя задача:
- находить сильный angle
- сокращать лишнее
- делать первый экран цепким
- сохранять простой продуктовый язык
- не скатываться в пустой маркетинг
Полезная связка для понимания. Внутри Claude Code /agents — это уже и учебный, и практический способ выделить отдельного редактора. Для этого workshop этого достаточно: агент живёт в проекте и помогает собирать посты прямо из терминала.
Шаг 9

Генерируем контент в терминале и отправляем его через бота

Здесь убираем лишнюю сложность. В этом workshop Claude Code делает основную интеллектуальную работу: ты даёшь brief в терминале, Claude при необходимости вызывает tg-content-agent и skill /tg-post, а потом утверждённый текст уходит через Telegram-бота.

Сначала

Brief в терминале

Ты работаешь в проекте через Claude Code и формулируешь задачу человеческим языком: тема, аудитория, тон, CTA, ограничения.

Потом

Agent + skill собирают пост

Claude может сам вызвать tg-content-agent, а тот использует /tg-post как playbook, чтобы дать несколько сильных версий текста.

И в конце

Бот отправляет готовый вариант

После твоего ok проект запускает отправку через Telegram Bot API: в личку владельцу, в review-чат или прямо в канал.

Что делаем

Просим Claude собрать связку generate → review → send. Сначала он показывает draft в терминале, потом после подтверждения отправляет выбранную версию через script проекта.

Что говорим Claude
Работаем без отдельного автономного backend-слоя.

Сценарий такой:
1) я даю brief в терминале,
2) при необходимости используй tg-content-agent и skill /tg-post,
3) покажи 3 версии поста,
4) после моего ok отправь выбранную версию через Telegram-бота
   скриптом проекта.

Сначала реализуй безопасный draft mode в личку.
Что получаем

Практичный end-to-end flow для обучения: из brief в готовый Telegram-пост без отдельного backend-слоя и без ручного копипаста.

Схема на человеческом языке

1. Ты пишешь brief в Claude Code
2. Claude при необходимости вызывает tg-content-agent
3. Skill /tg-post возвращает short / standard / punchy
4. Ты выбираешь или правишь финальный вариант
5. Claude запускает script отправки
6. Бот отправляет текст в личку, канал или review-чат
Минимальная связка

package.json
"scripts": {
  "tg:send": "tsx scripts/publish-telegram-post.ts"
}

.env.local
TELEGRAM_BOT_TOKEN=your-bot-token
TELEGRAM_DRAFT_CHAT_ID=your-chat-id
TELEGRAM_CHANNEL_ID=your-channel-id

Логика:
- draft mode → отправляем в личку
- publish mode → отправляем в канал
Самая частая ошибка. Смешать этапы и пытаться сразу “автоматизировать всё”. Для обучения лучше держать порядок: сначала Claude создаёт текст и ты его видишь в терминале, потом бот отправляет уже утверждённую версию.
Итог в одной фразе. Claude Code пишет, агент улучшает, skill держит формат, а Telegram-бот доставляет результат.
Шаг 10

Куда бот публикует результат: три режима, от безопасного MVP до живого канала

Режим по умолчанию

Draft mode

Бот отдаёт готовый пост тебе в личку. Это лучший старт: быстро, безопасно и без риска случайной публикации.

Следующий уровень

Channel mode

Бот публикует пост в канал, если ты добавил его туда как администратора с правом публиковать сообщения.

Командный вариант

Review queue

Бот сохраняет draft в базу, а публикация случается только после подтверждения. Это хороший режим для командного контент-процесса.

Что делаем

Для курса выбираем сначала draft mode. Как только основной цикл заработал, добавляем channel mode или review queue.

Что говорим Claude
Сначала реализуй безопасный режим:
из терминала выбранный пост уходит мне в личку через бота.

После этого подготовь второй режим:
после подтверждения бот может опубликовать пост в Telegram-канал,
если включён publish mode и настроен канал.
Что получаем

Очень понятный progression path: сначала безопасная отправка в личку, потом публикация в канал, потом полноценный командный контур с review.

Это важный product move. Когда пользователь не уверен в качестве автоматизации, draft mode снижает страх и ускоряет adoption. Публикацию в канал лучше открывать как второй этап, а не как обязательный старт.
Шаг 11

Когда добавить Supabase и когда выносить backend отдельно

Если нужна база данных

Что отдаём Supabase

  • Briefs и drafts
  • Статусы review и publish
  • Список каналов и пользовательские настройки
  • Историю публикаций и логи продукта
  • Auth и storage, если проект растёт
Если бот должен стать автономным

Когда нужен отдельный backend

  • Бот сам принимает входящие сообщения и команды
  • Нужны webhook, очереди или cron
  • Есть много пользователей и важен state между сессиями
  • Появляются тяжёлые интеграции
  • Сервису уже тесно жить только как набор scripts в репозитории
Нормальная взрослая связка. Лендинг можно оставить на Vercel, данные отдать в Supabase, а отдельный backend поднимать только тогда, когда бот становится автономным продуктом. Для курса и первых итераций terminal + send script обычно достаточно.
Шаг 12

Vercel MCP и Vercel Plugin: ускорители, а не обязательная основа

Когда это полезно

Vercel MCP

Подключаешь, когда хочешь, чтобы Claude прямо из сессии видел deploys, project status, docs и deployment logs, а не бегал глазами по панели.

Когда это полезно

Vercel Plugin

Подключаешь, когда хочешь готовый пакет из skills, agents, slash-команд и best practices по работе с Vercel внутри Claude Code. Plugin и MCP не взаимоисключают друг друга — они могут жить рядом.

Что делаем

Сначала проходим базовый путь сами: GitHub → Vercel → preview → prod. И только потом, когда контур понятен, добавляем MCP или Plugin как ускорители.

Что говорим Claude
После того как базовый deploy path заработает,
подключим Vercel MCP и/или Plugin, чтобы:
- смотреть статус деплоев
- быстро разбирать логи
- не ходить каждый раз в панель руками
Что получаем

Более гладкий workflow. Но главное — ты не путаешь ускоритель с фундаментом: основа всё равно остаётся Git, commit, push, preview и production.

Vercel MCP:
claude mcp add --transport http vercel https://mcp.vercel.com

Идея подключения:
Claude видит Vercel изнутри сессии, а не только по твоим словам.
Шаг 13

/insights запускаем не в начале, а после первого полного цикла

Что делаем

Когда уже прошли маршрут от старта проекта до рабочего бота и preview/prod, запускаем /insights.

Что говорим Claude
/insights

После отчёта:
1) выдели 3 главных friction point,
2) предложи, что вынести в CLAUDE.md,
3) предложи, какой следующий skill стоит создать,
4) скажи, где я зря делал руками то, что уже можно делегировать.
Что получаем

Не только собранный продукт, но и улучшенный процесс сборки. То есть второй проход по похожему проекту будет быстрее и спокойнее первого.

Главная польза /insights. Он превращает разовый опыт в систему: что запомнить, что автоматизировать, что вынести в память проекта, а что можно смело убрать как лишнюю суету.
Быстрый словарь

Что есть что в этом проекте

CLAUDE.md

Короткие постоянные правила и факты проекта. То, что ты не хочешь объяснять заново в каждой сессии.

Skill

Повторяемая процедура. В нашем кейсе — как делать Telegram-посты одинаково качественно.

Agent

Отдельный специалист со своей ролью. В нашем кейсе — Telegram-редактор.

Telegram Bot API

Канал доставки. Нужен, чтобы готовый текст из проекта уехал в личку, канал или review-чат.

Git

Память проекта: что менялось, зачем, когда и к какому состоянию можно вернуться.

Сущность Вопрос, на который она отвечает Какую пользу даёт в этом кейсе
CLAUDE.md Как вести себя в этом проекте? Не даёт Claude каждый раз изобретать процесс заново.
Skill /tg-post Как делать Telegram-пост качественно и одинаково? Держит структуру, стиль и итоговый формат результата.
tg-content-agent Кому отдать редакторскую часть задачи? Выносит angle, hook и tightening текста в отдельного специалиста.
Telegram Bot API / send script Как пост уходит наружу? Отправляет утверждённый текст из проекта в личку, канал или review-чат без ручного копипаста.
/insights Что тормозило процесс и что теперь автоматизировать? Помогает превращать первый проход в более взрослый второй проход.
Финальный чек

Definition of done: когда можно честно сказать “я погрузился в vibe coding через Claude Code”

Есть живой лендинг
Не макет и не идея, а открывающийся URL с CTA в Telegram.
Есть рабочий Telegram-бот
Он получает готовый текст из проекта и доставляет его в нужный чат или канал.
Есть project skill /tg-post
Один раз описали playbook — дальше используем повторяемо.
Есть tg-content-agent
Понятно, зачем он нужен и где приносит пользу.
Есть место назначения результата
Draft в личку, пост в канал или review queue — но не “когда-нибудь потом”.
Есть git-история
Несколько осмысленных commit, а не одна большая “final-final-v2”.
Есть preview и production path
Понимаешь, как изменение доезжает от локальной правки до живой ссылки.
Есть пост-мортем через /insights
Ты не просто собрал проект, а понял, как ускорить следующий.
Итоговая упаковка проекта. Это уже можно показывать как нормальный мини-продукт: страница привлекает, агент и skill объяснимы, бот доставляет пост, публикация понятна, история изменений прозрачна, а путь в прод не магический.
Официальная база

На каких официальных материалах это основано

Ниже — не просто “полезные ссылки”, а именно те материалы, на которые опирается логика этого workshop.

Claude Code Memory / CLAUDE.md
Почему CLAUDE.md должен быть конкретным, коротким и что туда стоит класть.
Claude Code Skills
Что такое skill, как устроен SKILL.md и как skill превращается в slash-команду.
Claude Code Subagents
Как создавать subagent через /agents и как выглядит его markdown-файл.
Claude Code Commands
/init, /insights, /permissions, /mcp и другие встроенные команды.
Claude Code Permissions
Почему Claude может работать с git-командами и scripts только в рамках одобренных прав.
Vercel Getting Started
CLI, deploy flow, preview/prod логика и Git-интеграция.
Vercel MCP
Зачем и когда подключать MCP к Vercel, чтобы Claude видел deploys и логи.
Vercel Plugin
Готовый пакет skills, agents и slash-команд для Claude Code.
Telegram Bots FAQ
Как создать бота через @BotFather и базовая модель работы Telegram bots.
Telegram Bot API
Как отправлять сообщения, публиковать посты и работать с Bot API без ручного копипаста.
Telegram Deep Links
Как вести пользователя с лендинга в бота, группу или канал.
Telegram Chat Admin Rights
Какие права нужны боту, если ты хочешь публикацию в канал.