Внутренняя автоматизация · Team OS
Каждая встреча сама доезжает до нужной команды
Записал созвон в Fireflies — дальше ноль ручной работы. Транскрипт сам классифицируется, ложится в репозиторий нужного отдела и пингует меня в Telegram. Если система не уверена — спрашивает одной кнопкой.
опрос каждые 15 мин
окно ~6 часов
2 контура
stack: Fireflies · GitHub Actions · Cloudflare · Telegram
Контур A
Опрос по расписанию
Фоновый процесс. Раз в 15 минут забирает свежие встречи, раскладывает по командам и оставляет уведомление. Меня не дёргает, пока всё понятно.
1
Источник
Fireflies записал встречу
На входе — транскрипт, список участников и дата. Это единственное, что делается «руками»: просто провести созвон.
2
Триггер · cron
GitHub Actions опрашивает Fireflies
Воркфлоу meeting-router-poll.yml запускается каждые 15 минут и берёт встречи за последние ~6 часов. Уже обработанные отсекаются по реестру .processed-meetings.json — один и тот же созвон не попадёт в команду дважды.
3
Классификация
Куда это отнести?
По ключевым словам в названии и составу участников встреча получает destination (команда), confidence (уверенность) и решение, что делать дальше:
write · уверенно
Сразу пишем в папку нужной команды. Тишина — ничего спрашивать не надо.
ask · неясно
Кладём во входящие _inbox и спросим человека в Telegram.
4
Маршрутизация · манифест
Определяем физическое место
Манифест repos.json знает, в какой репозиторий писать каждую команду:
отделы-хабpilots, people, internal-projects → пишутся локально в os-hub
мигрированныеproduct, operations, sales-marketing, strategy → в свой репо os-<dept> через GitHub API
private:*приватные — только пинг, поллер туда не пишет
_inboxспорные — остаются в хабе до решения
5
Запись
Транскрипт сохраняется как .md
Файл с frontmatter: meeting_id, routed_to, action и прямая ссылка на Fireflies. Всё версионируется в гите.
6
Уведомление · @meetings_bot
Сообщение в Telegram
когда уверенно
✅ Транскрипт записан →
product↗ ссылка на встречу
когда неясно
Куда отнести встречу?
product
sales
strategy
operations
↓
я тапаю кнопку или пишу боту — и включается второй контур
Контур B
Мой ответ — мгновенно
Здесь cron уже не при делах. Cloudflare Worker ловит webhook от Telegram и реагирует в реальном времени через Claude tool-use loop.
7
Обработчик · Cloudflare Worker
telegram-agent
Получает webhook от Telegram и решает, что я хочу, тремя инструментами:
route_meetingтап по кнопке или текст → переносит встречу из _inbox в команду
add_rule«впредь так же» → заводит правило в routing-rules, чтобы дальше не спрашивать
read_transcriptссылка + «о чём встреча / выпиши задачи» → пересказ и задачи прямо в чат Фаза 1
Если коротко
Пять шагов без меня и один — со мной
- Fireflies записал созвон — это весь ручной труд.
- Cron каждые 15 минут забирает новые встречи и отсекает дубли.
- classify() решает: уверен → пишет в команду, не уверен → в _inbox и спрашивает.
- resolveTarget() кладёт транскрипт в правильный репозиторий и шлёт пинг в Telegram.
- Я тапаю кнопку — Worker мгновенно переносит встречу или заводит правило на будущее.
- Бонус: прошу пересказ или задачи по ссылке — и получаю их в чате.