# TG-ассистент: установка и использование

Это папка, в которой Claude работает продюсером твоего Telegram-канала: хранит все твои посты, знает твой голос, пишет черновики, строит прогревы и контент-планы.

Установка занимает ~20 минут. Делай по шагам, ничего не пропускай. Команды копируй целиком и вставляй в Терминал (Программы → Утилиты → Терминал) или проси Claude сделать это за тебя — готовые фразы для него в блоках кода.

---

## Шаг 0. Положи папку в правильное место

Папка ДОЛЖНА лежать в домашней папке под именем `tg-assistant`, то есть по адресу `~/tg-assistant`. **Не на Рабочем столе и не в Документах** — macOS блокирует автоматические задачи для папок на Рабочем столе, и автосинхронизация не будет работать.

Если папка сейчас лежит, например, в Загрузках, открой Терминал и выполни:

```bash
mv ~/Downloads/tg-assistant-template ~/tg-assistant
```

(Если папка лежит в другом месте — подставь свой путь. Или скажи Claude: «перенеси папку tg-assistant-template в ~/tg-assistant».)

Проверка:

```bash
ls ~/tg-assistant
```

Должны показаться файлы: `CLAUDE.md`, `style.md`, `voice.md`, `sync_all.sh` и другие.

Если Терминал при первом запуске `git` или `python3` предложит «Установить инструменты командной строки» — нажми «Установить» и подожди.

---

## Шаг 1. Создай бота в Telegram

Бот нужен, чтобы Telegram присылал тебе твои же посты (так работает архив).

1. Открой Telegram → найди **@BotFather** → нажми «Start».
2. Напиши `/newbot`.
3. Придумай имя (например, `Ассистент Олеси`) и юзернейм (латиницей, заканчивается на `bot`, например `olesya_tg_assistant_bot`).
4. BotFather пришлёт **токен** — длинная строка вида `123456789:AAH...`. Скопируй его. Никому не показывай.

---

## Шаг 2. Добавь бота администратором в канал

1. Открой свой канал → Настройки канала → Администраторы → Добавить администратора.
2. Найди своего бота по юзернейму → добавь.
3. Права можно оставить минимальные. Главное — чтобы он был именно **администратором**, иначе Telegram не будет присылать ему посты.

---

## Шаг 3. Заполни config.json

В папке есть образец `config.example.json`. Сделай из него настоящий файл:

```bash
cp ~/tg-assistant/config.example.json ~/tg-assistant/config.json
open -e ~/tg-assistant/config.json
```

Откроется текстовый редактор. Впиши:
- в `bot_token` — токен из шага 1;
- в `channel` — юзернейм своего канала **без @** (тот, что в ссылке t.me/…).

Должно получиться так (со своими значениями):

```json
{
  "bot_token": "123456789:AAH...",
  "channel": "my_channel"
}
```

Сохрани (⌘S) и закрой.

Или просто скажи Claude в чате:

```
Заполни ~/tg-assistant/config.json: токен бота <вставь токен>, канал <юзернейм канала>
```

Этот файл не попадёт в GitHub — он в `.gitignore`.

---

## Шаг 4. Скачай историю канала

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

```bash
python3 ~/tg-assistant/scrape_history.py --since 2025-01-01
```

В конце увидишь «Сохранено постов: N». Проверка:

```bash
ls ~/tg-assistant/posts | tail -5
```

Должны появиться файлы вида `2026-09-01_00042.md` — по одному на пост.

Если канал приватный — используй экспорт из Telegram Desktop: канал → ⋮ → «Экспорт истории чата» → формат JSON → потом `python3 ~/tg-assistant/import_history.py /путь/к/result.json`.

---

## Шаг 5. Создай приватный репозиторий на GitHub

Это твоё облако: архив постов и черновики будут доступны с телефона и не потеряются.

1. Зарегистрируйся на github.com (если ещё нет).
2. Установи GitHub CLI и войди:

```bash
brew install gh
gh auth login
```

(Если `brew` не найден — скажи Claude: «установи Homebrew и gh». На вопросы `gh auth login` отвечай: GitHub.com → HTTPS → Login with a web browser → нажми Enter и подтверди в браузере.)

3. Создай репозиторий и отправь папку (подставь свой ник на GitHub вместо `<ник>`):

```bash
cd ~/tg-assistant
git init
git add -A
git commit -m "старт tg-assistant"
gh repo create <ник>/tg-assistant --private --source=. --push
```

Проверка: открой github.com/<ник>/tg-assistant — там должны быть твои файлы, а `config.json` — НЕ должен.

Или скажи Claude:

```
Создай приватный репозиторий tg-assistant из папки ~/tg-assistant на моём GitHub и запушь
```

---

## Шаг 6. Включи автосинхронизацию

Telegram хранит непрочитанные ботом посты только 24 часа. Поэтому ставим задачу, которая каждые 3 часа сама забирает новые посты и отправляет их в GitHub:

```bash
bash ~/tg-assistant/setup_autosync.sh
```

Проверка, что задача стоит:

```bash
launchctl list | grep com.olesya.tgsync
```

Должна появиться строка с `com.olesya.tgsync`. Лог работы: `/tmp/tgsync-olesya.log` (посмотреть: `tail -20 /tmp/tgsync-olesya.log`).

Если macOS спросит разрешение на доступ к папкам — разреши.

---

## Шаг 7. Проверь тестовым постом

1. Опубликуй в канале любой короткий пост (потом можно удалить).
2. Запусти синхронизацию вручную:

```bash
bash ~/tg-assistant/sync_all.sh
```

3. Проверь, что пост появился:

```bash
ls ~/tg-assistant/posts | tail -3
```

Последний файл должен быть с сегодняшней датой. Открой его — внутри текст твоего поста. Всё работает.

---

## Шаг 8. Подключи скилл /tg и файлы бренда

Чтобы Claude включал режим продюсера одной командой:

```bash
mkdir -p ~/.claude/commands ~/.claude/brand
cp /путь/к/пакету/skills/tg.md ~/.claude/commands/tg.md
cp /путь/к/пакету/brand/PROFILE.md /путь/к/пакету/brand/TOV-SAMPLES.md /путь/к/пакету/brand/style-guide.md ~/.claude/brand/
```

(Подставь путь, где лежит папка пакета с `skills/` и `brand/`. Или скажи Claude: «скопируй скилл tg.md в ~/.claude/commands и файлы из brand/ в ~/.claude/brand».)

---

## Как пользоваться

Открой Claude Code в папке ассистента:

```bash
cd ~/tg-assistant && claude
```

При старте он сам подтянет свежие посты (это настроено в `.claude/settings.json`). Дальше напиши `/tg` — и он в режиме продюсера твоего канала.

Примеры фраз:

```
/tg
напиши пост про то, что первый пост не обязан быть шедевром
```

```
/tg
контент-план на следующую неделю
```

```
/tg
прогрев к интенсиву на 14 дней
```

```
/tg
дай 5 идей постов, в канале давно не было личного
```

Правки — словами: «резче», «короче», «слишком мягко», «без цензуры» (мат включается только по этой команде). Каждая правка — новый файл в `drafts/` с суффиксом `_v2`, `_v3`, старые версии не пропадают.

Черновики лежат в `~/tg-assistant/drafts/`, планы — в `plan/`. Всё это автоматически отправляется в GitHub и видно с телефона.

---

## Если что-то не работает

- **«Нет токена бота»** → проверь `config.json`, поле `bot_token`.
- **«В config.json не задан канал»** → впиши юзернейм канала без @ в поле `channel`.
- **«На странице t.me/s/… нет постов»** → канал приватный или юзернейм с ошибкой. Для приватного — шаг 4, экспорт.
- **Новые посты не приходят через бота** → бот не администратор канала (шаг 2).
- **Автосинк не запускается** → папка лежит не в `~/tg-assistant` (шаг 0). Перенеси и запусти `setup_autosync.sh` заново.
- **`git push` просит логин** → выполни `gh auth login` ещё раз.

В любой непонятной ситуации — скопируй ошибку и отправь Claude: «вот ошибка, разберись».
