---
name: ceberspost-verify
description: >-
  Быстрая проверка контент-бота CebersPost (@cebersLog_bot, ведёт канал @CodoCeh
  и @vakhunterInfo) после ЛЮБОЙ доработки. Прогон на mac mini: конфиг-смоук
  (projects.yaml парсится, все enabled-репозитории существуют — ловит мёртвые
  пути вроде cebers-pulse), БД-смоук, антидубль рубрик (миф/факт не повторяются),
  гейт заголовков (нет «t»/«А вы знали?»), бренд по каналу (КодоЦех vs ВакХантер
  рендерятся разными), flux-cooldown, и опц. реальная генерация поста + доставка
  в Telegram владельцу. Брать когда: меняли ideas.py / drafter.py / images.py /
  storage.py / projects.yaml / channels.yaml CebersPost, или просят «проверь
  ceberspost», «прогони проверку контент-бота», «всё ли работает после доработки».
  НЕ для других ботов (VakHunter→vakhunter-e2e, zemlya→zemlya-report-e2e,
  podkapot/gaechkin→tg-web-e2e).
---

# CebersPost — самопроверка после доработки

Контент-агент КодоЦех на mac mini: git-коммиты + авто-идеи → LLM-черновик →
карточка владельцу с approve-gate → публикация. Подробности проекта — в
Obsidian `Projects/CebersPost/`.

## Когда брать
После правок `cebers_post/{ideas,drafter,images,storage,bot,collector,publisher}.py`,
`projects.yaml`, `channels.yaml`, схемы БД — прежде чем считать задачу готовой
(Правило 7: проверять реальным исполнением, не «должно работать»).

## Где живёт (mac mini)
- ssh: `ssh -i ~/.ssh/id_ed25519 -p 2222 cebers_mini@100.84.177.25`
- repo: `/Users/cebers_mini/Разработки/CebersPost`, venv `~/.venvs/cebers-post`
- launchd: `local.cebers-post` (бот), `local.cebers-post-ideas`/`-ideas-pm`/`-daily`/`-agents`
- recipient (владелец) для e2e-отправки: `1005954706`

## Как запускать
```
~/.claude/skills/ceberspost-verify/tools/verify.sh           # быстрые проверки (без LLM/отправки)
~/.claude/skills/ceberspost-verify/tools/verify.sh --llm     # + реальная генерация поста (без отправки)
~/.claude/skills/ceberspost-verify/tools/verify.sh --e2e факт # + отправка ОДНОЙ карточки владельцу
```
Скрипт сам копирует `tools/cp_verify.py` на mini и гоняет в венве. Быстрый режим
безопасен (ничего не шлёт, тестовые черновики удаляются). `--e2e` шлёт реальную
карточку в TG владельцу — использовать осознанно.

## Что проверяется (быстрый режим)
1. **Конфиг**: `projects.yaml` парсится; у всех `enabled` проектов `repo` существует
   (ловит мёртвые пути — был баг cebers-pulse→delor, который тихо убивал постинг).
2. **БД-смоук**: открывается, считает черновики и статусы.
3. **Антидубль**: 12 подряд `миф`/`факт` → 12 уникальных тем; свободные рубрики
   подмешивают hooks+seeds в «не повторяй».
4. **Гейт заголовков**: `_good_title` чинит «t»/«А вы знали?»/пусто/эмодзи.
5. **Бренд по каналу**: `resolve_brand` для `идея`→kodoceh, `идея:@vakhunterInfo`→
   vakhunter, `VakHunter`→vakhunter; рендер обоих брендов (вектор) — файлы >0 байт,
   палитры различаются.
6. **flux-cooldown**: если flux недоступен — 2й рендер быстрый (паузу поставили).

## После проверки
- Если что-то упало — чинить и гонять снова, пока зелёно.
- Обновить Obsidian `Projects/CebersPost/Changelog.md` (Правило 5).
- Зафиксировать на mini (`git commit`) и при необходимости перезапустить бота:
  `launchctl kickstart -k gui/$(id -u)/local.cebers-post`.

## Известные внешние ограничения (не баги бота)
- **flux/NVIDIA** гео-флапает с mini (HTTP 000) → картинка падает на брендовую
  векторную карточку; это штатно. Imagen/Gemini-image через OmniRoute не включены
  (нужен image-провайдер в админке шины).
- **proxy :2081** периодически роняет polling (на нём держатся все боты —
  трогать осторожно). Симптом в `state/bot.log`: `Couldn't connect to proxy`.
