Я пришёл Тимлидом в новую компанию и собрал её в файлы вместо двадцати вкладок

от автора

Третья неделя в новой компании. Меня спрашивают, кто в соседней команде отвечает за конфиги админки и где лежит контракт по realtime-интеграции с витринами партнёров. Я отвечаю без открытия браузера.

Не потому что гений. Просто всё это уже лежит у меня в одном каталоге, и я быстрее читаю свой файл, чем переключаюсь между Slack и Confluence.


Контекст

Я тимлид в B2B-компании с довольно типичным для продуктовой разработки обвесом: Jira, GitLab-группа с несколькими десятками подгрупп и сотней репозиториев, Confluence с кучей спецификаций по архитектуре, Slack с парой десятков активных каналов и транскрипты звонков через свою поделку.

Классический тимлидский день в такой конфигурации выглядит так:

  • 20 вкладок Jira (спринт, мой борд, чужие борды, несколько тикетов команды)

  • 15 вкладок Confluence (спеки, ADR, онбординг-гайд)

  • GitLab на каждый репозиторий отдельной вкладкой

  • Slack с уведомлениями из пяти каналов параллельно

  • Jira-комментарии по QWER-123 пишешь в одной вкладке, а спек из Confluence — в соседней

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

Вариант “я буду внимательнее” я пробовал. Не сработало. Поэтому попробовал другое.

Идея

Перестать открывать браузер как основной интерфейс работы. Вместо этого — директория проекта с документацией и Claude Code с подключёнными интеграциями.

Каталог устроен так:

docs/  people/          # Профиль на каждого человека в контуре  meetings/        # Саммари встреч по датам  1on1s/           # Заметки с 1:1  plans/           # Планы спринтов, roadmap, execution plans  adrs/            # Architectural Decision Records  processes/       # Как у нас устроены ретро, релизы, дежурства  knowledge-base/  # Research, discovery, сложные технические вопросы  reviews/         # Чеклисты и заметки по MR-ревьюsprint-cheatsheet.mddaily-teleprompter.mdCLAUDE.md          # Правила работы для Claude

На человека в people/ лежит файл: Jira-handle, GitLab-handle, роль, области ответственности, свежая активность в репозиториях, ключевые фразы из онбординга, текущие TODO по общению с этим человеком. Не HR-карточка. Операционный профиль, который я читаю перед разговором.

Реальная цитата одного ex-тимлида, которую я записал в его файл после онбординга:

«У тебя хорошая команда — у меня отобрали самые сливки. Не влезай в процессы сразу, наблюдай.»

На следующем синке я её не забыл — она лежит в файле, рядом с “глубокое знание Kafka, schema-registry, кеширования; принимает решения по крупным техническим направлениям”. Это меняет тон разговора сильнее, чем кажется.

Интеграции

Никакой магии. Всё собирается из штатных инструментов Atlassian и GitLab.

Jira — через acli jira. CLI от Atlassian, умеет то же что и веб, только отдаёт JSON. У Claude Code правило в CLAUDE.md: дефолтный проект и борда прописаны в конфиге, если не указан спринт — берёт текущий открытый, если не указан статус — всё кроме Done.

Confluence — тоже acli. Логинишься один раз, дальше поиск по спейсам, чтение страниц, создание новых. По референсу на страницу Claude подтягивает её содержимое — не надо copy-paste из браузера.

GitLabgit через HTTPS с токеном, glab для всего остального. Все операции — от поиска открытых MR до чтения диффа и комментариев ревью — идут из терминала.

Slack — через MCP-сервер. Чтение каналов, поиск обсуждений, отправка сообщений. В правилах у Claude прописаны дефолтные каналы — “не спрашивать в какой отправлять, если из контекста ясно (основной канал команды / канал инфры)”.

Записывалка звонков — приложение, которое записывает и транскрибирует звонки локально. Сессии лежат в ~/Documents/Calls/sessions/. Claude их читает и раскладывает по файлам. Я как-то писал свою, ей и пользуюсь. Подойдет любая.

Всё это обёрнуто в пару своих скиллов — команд, которые Claude знает как выполнить.

Подготовка к дейлику

За 10 минут до дейлика: Подготовь дейли или /standup.

Claude собирает docs/daily-teleprompter.md, где на каждого человека структура:

  • Active Tasks: номер тикета + описание + кликабельная ссылка в Jira

  • Open MRs: номер MR + заголовок + кликабельная ссылка в GitLab

  • Questions: 2-3 конкретных вопроса по статусу

  • Blockers: список заблокированных задач с причинами

Правило жёсткое: никогда не показывать тикет PROJ-XXX или MR !XXX без текстового описания и прямой ссылки. Потому что “PROJ-447 висит” — бесполезно, а “PROJ-447: вынос секции в отдельный бандл, MR ждёт ревью 3 дня” — уже конкретика.

На сам дейли я прихожу с листом конкретных вопросов по конкретным людям вместо общего “ну что там у тебя”.

Обработка транскрипта после звонка

После любого звонка я говорю: Ну мы там созвонились, подтяни. Дальше Claude:

  1. Обновляет docs/meetings/YYYY-MM-DD-<тема>.md — саммари с решениями и action items

  2. Если это был 1:1 — дополняет docs/1on1s/<имя>-<дата>.md

  3. Если узнали что-то новое о человеке — обновляет его файл в people/

  4. Если обсуждались статусы или блокеры — предлагает оставить комментарий в Jira или поменять статус

  5. Если изменились приоритеты — обновляет sprint-cheatsheet.md

Раньше я это делал через раз, а через раз просто забывал. Теперь не забываю — потому что протокол прописан в файле, а не держится в моей голове.

Два кейса где это реально окупилось

Онбординг

Моя первая неделя выглядела как марафон звонков. Человек пятнадцать, все рассказывают своё, контекстов — сотни.

Я всё это наговорил через Spokenly и вместе с Claude разложил по people/*.md. Через две недели, когда на очередном синке спросили “а ты уже в курсе кто у нас ведёт вот этот сервис?” — я сходил в файл, а не в память. Там было: имя, последние коммиты, что человек делал на последнем релизе и в каких каналах Slack он активен.

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

Код-ревью с полным контекстом

Стандартное тимлидское ревью выглядит так: открываешь MR, смотришь дифф, пытаешься вспомнить “а мы же что-то обсуждали про это”. Идёшь в Slack искать по ключевым словам. Потом в Jira — смотреть связанные тикеты. Потом в Confluence — искать спеку. К моменту когда всё нашёл, уже забыл зачем начинал.

Сейчас я говорю: “Разбери MR !473 в таком-то репо, проверь на соответствие обсуждению в канале команды и плану из docs/plans/<план-фичи>.md”. Claude подтягивает дифф, находит релевантный тред в Slack, сверяет с планом, и выдаёт мне список точек — что соответствует, что расходится, какие вопросы к автору.

Я даже ввел шуточного персонажа, от лица которого все эти комменты потом публикуются после моего ревью (ревью ревью, получается, хех)

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

Возражения

“Нормальный тимлид держит всё в голове.” Возможно. Я видел тимлидов которые “держат всё в голове” и пропускают критический блокер после трёх дней отпуска. Мне проще положить это в файл.

“Это слишком просто чтобы делегировать ИИ.” Простое плюс регулярное выжирает больше всего времени в неделю. Разложить транскрипт на пять файлов вручную — не сложно, просто долго и скучно, и поэтому ты этого не делаешь.

“Это слишком сложно чтобы делегировать ИИ, он напутает.” Иногда путает. Поэтому он не принимает решений, а готовит вводные. Решения я принимаю сам.

И одно возражение от самого себя: “работает пока у тебя 20 человек и 100 реп, в большой компании не масштабируется”. Не знаю. Пока работает. Когда сломается — напишу об этом отдельно.

Чего Claude тут не делает

Не принимает решений. Не пишет за меня комменты в MR которые я подписываю не глядя (ладно, кого я обманываю — иногда все же пишет). Не выдаёт план спринта, который я транслирую команде слово в слово.

Он достаёт контекст. Не умнее меня — просто быстрее и не пропускает то, что я уже один раз видел и поэтому у меня “а, знаю, дальше”.

Иногда подсвечивает пересечения, которые я и команда пропустили на самостоятельно: “в плане написано X, в Slack на прошлой неделе обсуждали что X не подходит из-за Y, в MR сделано X, вопрос автору”. Ничего магического: просто перечитывает все пять источников вместо того чтобы довериться своей памяти на втором из них.

Человеческий фактор в работе никуда не делся. Я всё так же могу принять спорное решение, поссориться на ретро или неловко провести 1:1. Просто контекст вокруг этих решений собран полнее, чем я бы собрал сам.

Минимальная версия для себя

Если хочется попробовать:

  1. Папка в git, рядом с кодом (важно: и документация, и репозитории — в одной директории, чтобы Claude видел обе стороны)

  2. CLAUDE.md в корне — правила (проект Jira по умолчанию, борда, имена каналов Slack, язык по каналам)

  3. docs/people/ — один файл на человека в команде и в соседних, с которыми общаешься

  4. docs/meetings/ — саммари встреч, даже если сначала просто копипаста транскрипта

  5. Atlassian CLI, glab, любой транскрибатор звонков (SummitNotes / Cluely / Granola / whisper.cpp локально)

Дальше — наращиваешь правила по мере того как замечаешь повторяющиеся операции.


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

А у вас как устроена работа с контекстом команды — вручную, в голове, или тоже что-то собрали вокруг себя?

Пдпшс

ссылка на оригинал статьи https://habr.com/ru/articles/1028198/