Три недели на весь проект, включая согласование, планирование, запуск, аналитику и отчёт. Шесть человек в исследовательской команде.
Дневниковое исследование: 32 респондента 7 дней записывают каждую поездку — голосовые, фото, геолокации — в Telegram. Без автоматизации два исследователя тратили бы по часу на каждый дневник каждый день. За один день собрана вся инфраструктура: Telegram-бот, транскрипция через Whisper, автозагрузка в Google Drive.
День 1 проекта «Дневники навигация». Исследовательское агентство готовится запустить дневниковое исследование: 32 респондента в течение 7 дней будут фиксировать каждую поездку по городу в Telegram-группах. Методология сложная, команда распределённая, данных будет много.
Руководитель проекта — не разработчик. Опыт с кодом: нулевой. Инструмент: Cursor (IDE с AI-ассистентом). Задача: за один день собрать рабочую инфраструктуру, которая будет работать всю неделю поля.
/kb)Весь диалог — это ~5800 строк переписки в Cursor. Руководитель проекта описывала задачи голосовыми и текстом, AI-ассистент писал код, объяснял каждый шаг, дебажил ошибки по скриншотам и логам. Каждое решение принималось совместно: AI предлагал варианты, человек выбирал.
Ключевые принципы, которые сложились в процессе:
Это не история про то, как программист написал бота. Это история про то, как исследователь, никогда не писавший код, за один день получил рабочую инфраструктуру для полевого этапа.
Методология дневникового исследования — это десятки страниц: как описывать проблемы и драйверы, что говорить на установочной встрече, как фиксировать находки, форматы записей, чек-листы, примеры и анти-примеры. Команда распределённая: исследователи, рекрутеры, заказчик.
Что было неудобно:
Что нужно:
Архитектура:
/kb <вопрос> → ответ из базы знанийВыбор модели: gpt-4.1-mini. Для FAQ-бота с retrieval — достаточно. Можно переключить одной строкой позже.
Исследователям — спросить «как описываем барьер?» и получить точную выдержку из методологии за 3 секунды, не открывая Google Drive.
Руководителю проекта — не отвечать на одни и те же вопросы. Бот отвечает точнее, потому что цитирует документ, а не пересказывает по памяти.
Код бота написан, но он лежит на локальном компьютере. Руководитель проекта никогда не деплоила приложения, не работала с GitHub.
Пошаговый процесс: GitHub → Git config → Push → Render → Webhook → Дебаг. Два бага решились за минуты (старая версия SDK, неоплаченный API).
Решение: Render Free. Задержки при пробуждении не критичны для исследовательского бота.
Google Drive for Desktop для методологии (двусторонняя синхронизация) + rclone для дневников (Drive → локальный диск, только копирование).
Автоматический сбор всего контента из 32 чатов: текст, фото, аудио, видео → Google Drive в структурированные папки. Транскрипция через Whisper.
Две ключевые команды: «я обновила методологию» и «синхронизируй дневники». Пайплайн-памятка для команды.
32 респондента будут вести дневники в Telegram-группах: текст, голосовые сообщения, фото, видео-кружочки. Каждый — в отдельном чате с исследователем. Это ~150–200 записей в день, раскиданных по 32 группам.
Что было неудобно:
Что нужно:
1. Бот опрашивает историю чата 3 раза в день
Плюсы: можно задать расписание, ничего не пропустишь. Минусы: Telegram API не позволяет боту читать историю чата. Бот получает только то, что приходит в реальном времени через webhook.
Решение: отклонено. Это ограничение Telegram API — бот видит только новые сообщения.
2. Сбор в реальном времени через webhook (выбрали)
Плюсы: ничего не теряется, каждое сообщение обрабатывается сразу. Минусы: если сервер упал — сообщения потеряны (Telegram повторяет webhook несколько раз, но не бесконечно).
Неожиданная трудность: сервисный аккаунт Google видит только «Мой диск», а Google Drive for Desktop синхронизирует файлы в раздел «Компьютеры». Это разные места.
Руководитель удивилась: «Бот, который у нас работает, он же будет нести на Google Диск, на мой диск, правильно?» — правильно, но не в «Компьютеры», а в «Мой диск».
Решение: создать папку для дневников в «Мой диск», расшарить её с сервисным аккаунтом. Но сервисный аккаунт не мог писать в личный Drive (нет Shared Drive на бесплатном аккаунте).
Финальное решение: OAuth-доступ вместо сервисного аккаунта. Получили refresh_token через скрипт авторизации, добавили в Render.
1. Отключили Privacy Mode
В BotFather: /setprivacy → Disable. Без этого бот видит только команды (/kb), а обычные сообщения игнорирует.
2. Создали структуру папок 33 папки: по одной на каждого респондента + тестовая. Латиницей — кириллица вызывала ошибки. Подпапки с датами создаются автоматически при первом сообщении.
3. Настроили сбор всех форматов
| Формат | Что делает бот | Что сохраняется |
|---|---|---|
| Текст | Сохраняет как .md | файл с текстом записи |
| Фото | Скачивает файл | фото в формате .jpg |
| Голосовое | Скачивает + транскрибирует | аудио + текстовый транскрипт |
| Кружочек | Скачивает + транскрибирует аудиодорожку | видео + текстовый транскрипт |
| Видео | Скачивает файл | видео в формате .mp4 |
Транскрипция — OpenAI Whisper (whisper-1).
4. Эволюция формата в процессе
5. Нейминг файлов
Первая версия: message_1.md, message_2.md. Руководитель попросила: «сначала имя респондента, потом дата, номер и время». Итог: структурированные имена с идентификатором респондента, датой и временем.
Тестировали на тестовой группе, где руководитель была «респондентом»:
1. Респондент пишет в Telegram-группу (текст/фото/аудио/кружочек)
↓
2. Telegram отправляет webhook на Render
↓
3. Бот определяет респондента по chat_id
↓
4. Создаёт папку дня, если её нет
↓
5. Скачивает медиа-файл с серверов Telegram
↓
6. Если аудио/видео → отправляет в Whisper → сохраняет транскрипт
↓
7. Загружает всё в Google Drive в папку респондента
↓
8. По команде «синхронизируй дневники» → rclone копирует на локальный диск
Исследователям — все записи респондента в одной папке, с транскрипциями. Не нужно переслушивать голосовые — текст уже есть.
Руководителю проекта — структурированный архив для анализа. Каждая поездка — в файле с понятным именем.
Для анализа — на основе этих данных потом будут строиться карточки мониторинга, таблица трекинга поездок и аналитические сводки.
У рекрутера 208 анкет кандидатов — ручная проверка каждой занимала 5 минут, а 60 лучших нуждались в углублённом скоринге по 20 минут. Параллельно каждый баг Telegram-бота требовал час на объяснение контекста разработчику. Автоматический скоринг обработал все 208 анкет за 15 минут. Контекст ошибок стал передаваться за 4 минуты вместо часа.
К концу первого дня контекстное окно AI-ассистента в Cursor заполнилось: ~5800 строк диалога. Ассистент начал «забывать» ранние договорённости. Нужно было открыть новую сессию — но как передать ей всё, что было сделано?
Структурированное summary из 7 блоков: база знаний, бот, дневники, Render ENV, OAuth, rclone, правила. Руководитель скопировала summary в начало нового диалога — и новый агент сразу понял контекст.
Этот паттерн «передачи смены» позже превратился в постоянную систему: файл MEMORY.md (загружается автоматически при каждой сессии Claude Code) и CLAUDE.md (инструкции проекта).
4 последовательных коммита, каждый по конкретной ошибке из логов Render:
UnboundLocalError: media_pathsInvalid file formatВесь цикл «баг → фикс → деплой → проверка» занимал 3–5 минут на каждый баг.
Решение «не чинить сейчас» сэкономило время для более важных задач. Три варианта оптимизации были готовы, но вместо того чтобы усложнять архитектуру заранее, выбрали мониторинг (YAGNI).
В Cursor руководитель была оператором: AI говорил «нажми сюда», она нажимала. В Claude Code руководитель стала дирижёром: она говорит «обнови мониторинг» — и всё происходит.
| Аспект | Cursor | Claude Code |
|---|---|---|
| Коммит и пуш | AI пишет код, просит сделать commit | AI делает commit + push сам |
| Запуск скриптов | «Вставь эту команду в PowerShell» | AI запускает скрипт напрямую |
| Контекст между сессиями | Ручное копирование summary | MEMORY.md загружается автоматически |
Автор: руководитель проекта + Claude Code (Opus 4.6)
Дневниковое исследование, 32 респондента. Рекрутеры присылают поток кандидатов из скрининговой анкеты — десятки человек, каждого нужно оценить по нескольким параметрам: география, поведенческий профиль, частота контакта с предметом исследования, разнообразие ситуаций, используемые инструменты, вовлечённость.
Что было неудобно:
Что нужно:
Плюсы: быстро, не нужны инструменты. Опытный рекрутер чувствует «своего» кандидата. Минусы: невоспроизводимо (два рекрутера оценят одного человека по-разному), нет обоснования для заказчика, ошибки классификации не ловятся, усталость при большом потоке.
Решение: отклонено как единственный метод. Но живая экспертиза рекрутера сохраняется на следующих этапах (дозвон).
Плюсы:
Минусы: нужно время на разработку рубрики и скрипта. Скрипт не видит того, что видит живой рекрутер (интонацию, мотивацию, нюансы). Поэтому это дополнение к рекрутеру, а не замена.
Каждый критерий привязан к задачам исследования, а не к абстрактному «качеству кандидата»: география, поведенческий профиль, частота контакта, разнообразие ситуаций, используемые инструменты, частота использования, вариативность условий, вовлечённость. Вес каждого критерия отражает его значимость для целей проекта.
Ключевое решение: ситуативные пользователи (используют инструмент не всегда, а в зависимости от контекста) получают максимальный балл по поведенческому профилю. Не «всегда» (предсказуемый, без барьеров) и не «никогда» (мало материала), а именно тот, кто иногда включает, иногда нет. У него самые интересные переключения и триггеры.
Скрипт на Python (+ openpyxl):
Пороги: >=18 = рекомендован, 15–17 = условно (уточнить при звонке), <15 = не рекомендован.
Через скрипты обновления результаты скоринга записывались в рабочую таблицу рекрутера — файл расписания интервью. Пять колонок: ГЕО-сегмент, квота, комментарий с обоснованием, рекомендация, числовой балл. Рекрутер открывает привычный документ и видит по каждому кандидату: почему он получил такой балл, на что обратить внимание при звонке.
Скоринг — это первый фильтр. Дальше рекрутер звонит кандидатам из зон «рекомендован» и «условно» и проверяет то, что скрипт не поймает:
Если скоринг пометил что-то как «уточнить при звонке» — рекрутер целенаправленно проясняет именно это.
1. Кандидат заполняет скрининговую анкету
↓
2. Данные попадают в Excel (Предварительный отбор)
↓
3. Скрипт прогоняет 8 критериев + скринеры
↓
4. В Excel записываются: балл, рекомендация, комментарий по критериям
↓
5. Результаты переносятся в таблицу расписания интервью
↓
6. Рекрутер видит балл и флаги → звонит кандидату с конкретными вопросами
↓
7. Финальное решение: скоринг + впечатление рекрутера от звонка
Самый тяжёлый день по экономии. Мониторинг дневников: два исследователя тратили по часу в день на каждого из 32 респондентов — проверка записей, оценка качества, заметки. Трекинг поездок: 45 минут на ввод каждой поездки в таблицу вручную. Два решения автоматизировали 789 часов рутинной работы.
Автор: руководитель проекта + Claude Code (Opus 4.6)
На второй день полевого этапа исследования у нас 6 активных респондентов (+ 1 тестовый), каждый из которых фиксирует по 1–5 поездок в день. За неделю это ~150–200 записей в Telegram-группах.
Что было неудобно:
Что нужно:
Плюсы: полностью автоматически, без участия человека. Минусы: GPT-4.1-mini слишком слабая модель для качественного исследовательского анализа. Поверхностные выводы, нет глубины, не выловит тонкие паттерны. Нужен как минимум GPT-4 или Claude Opus — а это требует API-ключ и дополнительные расходы.
Решение: отложено. Не тот уровень качества для исследовательского анализа.
Плюсы: высокое качество анализа (Claude Opus), автоматически по расписанию. Минусы: нужен API-ключ Anthropic (отдельная оплата), настройка промптов, дополнительные расходы на каждый запрос.
Решение: отложено. Нет API-ключа, и на данном этапе это избыточно.
Плюсы:
Минусы: не полностью автоматически — нужно запустить руками. Но это 1 минута: открыть Claude Code → написать «обнови мониторинг» → готово.
Изначально планировали загружать карточки на Google Drive. Но сервисный аккаунт Google не может создавать файлы (нет квоты хранилища).
Итоговое решение: карточки хранятся в репозитории бота, при пуше в main Render автоматически деплоит обновлённый сайт. Дополнительно копия сохраняется локально.
Добавлены два новых режима:
Режим 8 — Карточка мониторинга респондента. Компактный живой документ: кто это, что видим (паттерны, барьеры, драйверы, расхождения), что значит для бизнеса, что доспросить, хронология поездок. Обновляется ежедневно, каждое обновление = дельта.
Режим 9 — Дневная сводка инсайтов. Telegram-пост для команды: кросс-респондентный анализ за день, ключевые находки, тренды, задачи для исследователей. (Пока не реализован технически, формат готов.)
Скрипт для мониторинга:
Защищённая страница мониторинга:
У каждого респондента — своя карточка мониторинга. В ней: профиль, накопленные паттерны, барьеры и драйверы, ключевые инсайты за каждый день и вопросы для глубинного интервью. Карточки обновляются ежедневно по мере поступления новых записей.
Исследователям — видеть накопленное понимание по респонденту перед тем, как задавать вопросы. Не перечитывать все записи заново, а открыть карточку и за 2 минуты понять картину.
Руководителю проекта — быстро оценить прогресс: у кого интересные паттерны, у кого мало данных, где расхождения с квотой.
Подготовка к интервью — блок «Что доспросить» с привязкой к конкретным поездкам = готовая основа для гайда глубинного интервью.
Для заказчика — блок в каждой карточке показывает, что находки значат для продукта.
1. Респонденты пишут в Telegram-группы
↓
2. Бот сохраняет записи на Google Drive
↓
3. Claude Code синхронизирует дневники на локальный компьютер
↓
4. Claude Code (Opus 4.6) читает записи и генерирует/обновляет карточки
↓
5. Карточки сохраняются локально и в репозитории для сайта
↓
6. Git push → Render автодеплой → сайт обновлён
↓
7. Команда открывает страницу мониторинга
Карточки мониторинга дают общую картину по респонденту, но для финального отчёта и подготовки к интервью нужно работать с данными на уровне отдельных поездок.
Что было неудобно:
Что нужно:
1. Локальный Excel/CSV
Плюсы: просто создать, привычный формат. Минусы: нет совместного доступа, исследователи не видят и не могут комментировать. Нужно пересылать файл после каждого обновления.
Решение: не подходит. Командная работа важнее.
2. Google Sheets с ручным заполнением
Плюсы: совместный доступ, комментарии, фильтры. Минусы: ручное заполнение ~30 колонок на каждую поездку — нереалистично при 5–10 поездках в день. Аналитический слой требует экспертного заполнения по таксономии.
Решение: не подходит. Слишком трудоёмко вручную.
3. Google Sheets + автоматическое заполнение через Claude Code (выбрали)
Плюсы:
Минусы: заполнение не полностью автоматическое — нужно запустить руками. Но это та же модель, что и с мониторингом: команда → результат.
Создали отдельный скилл Claude Code (diary-tracking)
Скилл отделён от аналитического — разные роли, разные ритмы. Аналитик глубоко разбирает записи. Data-инженер структурирует их в таблицу.
Три режима работы:
Спроектировали структуру таблицы
Одна вкладка = один респондент. Три зоны на вкладке:
| Зона | Колонки | Что содержит |
|---|---|---|
| Портрет (sidebar) | A–D | Карточка респондента: сегмент, город, квота, стиль, исследователь |
| Таблица поездок | E–V | 18 колонок: маршрут, цель, контекст, навигация, транскрипция, полный текст |
| Аналитический слой | W–AD | 8 колонок: тип инсайта, формулировка, сила, группа функционала, вопрос к интервью |
Плюс сводка по респонденту (паттерны, барьеры, драйверы, расхождения) — в отдельных колонках справа.
Протестировали на одном респонденте
Итерировали лейаут по обратной связи
Первый вариант: портрет вверху (10 строк), потом пустые строки, потом таблица. Проблема: таблица не помещается на экране, неудобно.
Второй вариант: портрет — компактный сайдбар слева (колонки A–D, закреплены). Таблица поездок начинается с первой строки. Строка заголовков с фильтрами закреплена. Всё видно сразу при открытии.
Оповестили команду
Отправили в командный чат инструкцию: что в таблице, как устроена, как оставлять комментарии, порядок ежедневного обновления.
Ежедневный цикл (~12:00 МСК):
Для финального отчёта — структурированные данные по каждой поездке с аналитическим слоем. Не нужно перечитывать 500+ сообщений — всё в одной таблице с фильтрами.
Для подготовки к интервью — сводка по респонденту + приоритизированные вопросы с привязкой к конкретным поездкам. Открыл вкладку — готов к интервью.
Для исследователей — возможность видеть аналитику и влиять на неё через комментарии. Не «чёрный ящик», а совместная работа.
Для кросс-респондентного анализа — одинаковая структура по всем респондентам позволит в конце проекта сравнивать, группировать и строить типологии.
Отличие от мониторинга — мониторинг даёт быструю картину «что происходит». Таблица даёт полные данные «что именно и почему» — для глубокого анализа и отчёта.
День трёх операционных решений. Аналитические дневные сводки за 5 минут вместо 30. Мгновенная проверка квот рекрутера в Telegram. Экспресс-анализ пачек кандидатов — за 5 минут вместо 30.
Автор: руководитель проекта + Claude Code (Opus 4.6)
На четвёртый день полевого этапа запущено 16 из 32 дневников. Рекрутеры набирают респондентов по квотной матрице с несколькими измерениями — целевое число респондентов в каждой ячейке.
Что было неудобно:
Что нужно:
/квотыПлюсы: быстро реализовать, доступно всей команде в Telegram, не требует Claude Code. Минусы: показывает только текущее состояние. Не помогает оценить кандидата, создать профиль или найти расхождения. Отчёт статичный — парсит готовый файл, не анализирует.
Решение: частично — реализовали как быстрый инструмент для команды.
Плюсы: глубокий анализ, скоринг, создание профилей, кросс-проверка — всё в одном месте. Минусы: доступен только тому, у кого запущен Claude Code. Рекрутеры и администраторы не увидят отчёт без руководителя.
Решение: частично — реализовали для аналитических задач.
Плюсы:
/квоты → HTML-отчёт за 3 секунды) и глубокий (скилл, 5 режимов анализа)Минусы: два инструмента вместо одного — нужно помнить, когда что использовать.
/квотыНовый модуль для Telegram-бота:
Изменены 5 существующих файлов: обработчик команды, распознавание команды, конфиг Google Drive, метод скачивания, зависимости (openpyxl).
recruitment-analyst (5 режимов)| Режим | Триггер | Что делает |
|---|---|---|
| 1. Скоринг кандидата | «оцени кандидата» | 8 критериев из скорингового скрипта, таблица баллов, рекомендация по порогам |
| 2. Анализ квот | «проверь квоты» | Парсит профили, сопоставляет с матрицей, находит дефициты и перекосы |
| 3. Создание профиля | «создай профиль» | Берёт данные из Excel/рекрутера, заполняет шаблон, обновляет квотный контроль |
| 4. Кросс-проверка | «кросс-проверка» | Сверяет папки дневников с профилями: кто есть, кого нет |
| 5. Генерация поста | «напиши пост для рекрутеров» | Человечный HTML-пост для командного чата |
4 reference-файла: скоринговая система (25-балльная), квотная матрица (целевая), шаблон профиля, структура Excel-файлов.
write-case-studyОбнаружили, что скилл для написания кейсов лежал в корне проекта, а не в .claude/skills/. Переместили — скилл подхватился автоматически.
Таблица команд расширена с 5 до 10 строк + отдельная секция команд Telegram-бота.
/квоты), без доступа к Claude Code./квоты в Telegram1. Член команды пишет /квоты в командный чат
↓
2. Бот скачивает «Профили респондентов.md» с Google Drive
↓
3. Парсит таблицу, классифицирует по квотной матрице
↓
4. Генерирует HTML-отчёт с дефицитами
↓
5. Отправляет в чат (3 секунды)
1. Руководитель говорит «оцени кандидата» / «проверь квоты» / ...
↓
2. Claude Code подгружает скилл recruitment-analyst
↓
3. Читает данные из Excel / профилей / папок дневников
↓
4. Применяет 25-балльный скоринг / квотную матрицу / шаблон профиля
↓
5. Выдаёт структурированный результат
День 4 полевого этапа. Рекрутер присылает в рабочий чат список из 8 кандидатов с просьбой проверить, «все ли гео подходят». Кажется простым — но на деле нужно одновременно держать в голове:
Что сложно сделать вручную:
Оценка трудозатрат: ~30 минут ручной работы — открыть профили, квотную матрицу, портрет ЦА, посчитать, перепроверить, написать ответ.
Плюсы: мгновенно, не нужны инструменты. Минусы: легко ошибиться. Именно так рекрутер записала Пермь и Ростов в «крупные» — по ощущению они большие. Ошибки в классификации ведут к перекосу квот, который обнаружится только в конце.
Решение: отклонено. Слишком высокий риск ошибки при 12 ячейках и 16 переменных.
Плюсы: точно, надёжно. Минусы: ~30 минут работы. Руководитель проекта тратит время на механическую работу вместо исследовательской.
Решение: так делали до этого момента.
Плюсы:
Минусы: нужно проверить результат — AI может ошибиться в нюансах. Но проверить готовый анализ быстрее, чем делать с нуля.
Скопировали сообщение рекрутера из Telegram в Claude Code: «Посмотри на респондентов, дай рекомендацию».
Claude Code автоматически:
Рекрутер записала всех четырёх кандидатов на «крупный город» — но двое по нашей сетке попадают в «средний/малый». Это не интуитивно: оба города — миллионники.
Без проверки: 4 кандидата ушли бы в одну ячейку, 2 из них — в неправильную.
После того как анализ был готов и посты отправлены, руководитель рекрутинга обратила внимание на то, что AI не предусмотрел: гендерный и возрастной баланс выборки.
Формально в договорённости с заказчиком нет требования к равному распределению по полу и возрасту. Поэтому ни квотная матрица, ни скилл рекрутера, ни Claude Code этот параметр не отслеживали. Но руководитель рекрутинга — опытный рекрутер — заметила перекос интуитивно.
Что показала проверка:
В текущей выборке был заметный перекос по гендеру — значительное преобладание одного пола. По возрасту: одна возрастная группа не была представлена вообще, а другая была перепредставлена.
Это не ошибка — так сложилось по скринингу. Но если не следить, перекос будет нарастать.
Claude Code быстро нашёл возрасты всех 8 кандидатов в скрининговом Excel и построил прогноз.
Что изменилось в рекомендации:
Один из запасных респондентов поднялся до рассмотрения, так как он попадал в уникальную квотную ячейку, которая до этого не была представлена в выборке.
Почему это важно для кейса:
AI отработал задачу в рамках формализованных критериев (квоты, гео, ячейки). Но человек — руководитель рекрутинга — увидел то, что не было в ТЗ: демографический баланс. Это классический пример того, как человеческий мозг задаёт направление, а AI ускоряет исполнение. Без руководителя рекрутинга мы бы не посмотрели на пол и возраст. Без Claude Code проверка заняла бы ещё 30 минут вместо 5.
1. Рекрутер присылает список кандидатов в рабочий чат
↓
2. Руководитель копирует сообщение в Claude Code
↓
3. Claude Code читает квотную матрицу + профили + портрет ЦА
↓
4. Анализ: классификация городов, подсчёт слотов, поиск конфликтов
↓
5. Руководитель проверяет и корректирует рекомендации
↓
6. Команда дополняет: гендер, возраст, другие неформализованные критерии
↓
7. Готовые посты отправляются в рабочий чат
━━━ Расчёт D4-EXPRESS ━━━━━━━━━━━━━━━━━━━━━━━━━━━
Было: ~35 мин × 3 батча = 105 мин ≈ 1.75 ч (исследователь)
Стало: ~5 мин × 3 батча = 15 мин = 0.25 ч (руководитель + Claude Code)
Частота: 3 раза за проект
Экономия: 1.75 - 0.25 = 1.5 ч
Бонус: поймана ошибка классификации городов,
которую вручную бы пропустили.
→ HRS saved: 1.5 ч
→ PPL involved: 1 (исследователь — освобождён)
→ Confidence: high
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
14 респондентов ведут дневники 1–2 дня. Карточки мониторинга обновлены, таблица трекинга заполнена. Но у команды нет общей картины: что происходит в исследовании в целом, какие паттерны формируются, что это значит для продукта.
Что было неудобно:
Что нужно:
Запустили режим 9 и прошли 4 итерации правок с руководителем
| Итерация | Было | Стало | Принцип |
|---|---|---|---|
| 1 | «дни 1–3» | «дни 1–2 дневников» | Точность: день проекта ≠ день дневников |
| 2 | Блок «Тенденции» | «Первые наблюдения и гипотезы» | На 1–2 день данных мало для тенденций |
| 3 | «Расхождение квот — системное» | «Понятие навигации размыто» | Фрейминг: инсайт, а не проблема |
| 4 | Блок «На заметку исследователям» | Ссылка на мониторинг | Не дублировать карточки |
Зафиксировали 3 новых принципа в промпте:
Обновлён промпт для режима дневной сводки: шаблон формата, секция «Первые дни», принципы №6–8.
Команде — видеть общую картину исследования каждый день за 3 минуты чтения.
Руководителю — 10 минут на ревью сводки вместо 60 минут на написание. Правила калибровки зафиксированы — следующие сводки точнее сразу.
Для проекта — единый ритм коммуникации: ежедневная сводка + мгновенный доступ к ресурсам.
Закрепов в рабочем чате накопилось столько, что найти нужную ссылку (таблицу, инструкцию, расписание) — квест. Пароли от сайта, ссылки на Google Drive документы, роли — всё разбросано по переписке.
Что нужно:
5 новых команд бота — простые, без обращений к API, отдают статический HTML.
Ограничение по безопасности: команды работают только в рабочем чате. В группах респондентов бот их молча игнорирует — пароли и внутренние ссылки не утекут.
Всей команде — получить любую ссылку проекта за 3 секунды прямо в Telegram вместо поиска в закрепах.
Для безопасности — пароли от мониторинга и внутренние документы доступны только в рабочем чате, не в группах респондентов.
Итого в боте: 6 команд для команды + 3 служебные.
Рекрутер сообщил, что квота респондента не совпадает с системой. Оказалось, часть квот была основана на предварительных данных. Аудит 26 респондентов, каскадное обновление. Плюс извлечение карты фича-реквестов из 26 дневников — 15 кластеров продуктовых запросов за 30 минут вместо 10 часов.
На пятый день полевого этапа рекрутер сообщил, что квота одного из респондентов не совпадает с тем, что у нас в системе.
Начали разбираться и обнаружили системную проблему: мы брали квоты из одной колонки, но эта колонка заполнялась до голосового скрининга. После звонка данные обновлялись на другом листе, а колонка оставалась старой.
Гипотеза: часть наших квот была основана на предварительных, а не финальных данных.
1. Доверять нашему алгоритму скоринга
Плюсы: алгоритм объективен, работает по формулам из анкетных данных. Минусы: алгоритм анализирует текст анкеты, а не живой разговор. Навигационное поведение — не бинарная характеристика: человек может искренне ответить по-разному в зависимости от формулировки.
Решение: отвергнут — алгоритм полезен для первичного скрининга, но не может быть источником правды.
2. Доверять колонке от рекрутера
Плюсы: данные в структурированном виде, легко парсить. Минусы: заполняется до голосового скрининга. Руководитель рекрутинга прямо сказала: «эту колонку я заполняла до скрина, она ненадёжна».
Решение: отвергнут.
3. Лист «Квотирование» как единственный источник правды (выбрали)
Плюсы: заполняется после финального голосового скрининга, отражает итоговое решение рекрутера. Структурирован по квотным ячейкам — сразу видно, кто в какой группе. Минусы: нужно каждый раз открывать Excel и сверять вручную.
Решение: приняли. Формализовали правило и встроили в пайплайн.
Аудит всех 26 респондентов. Сверили квоты каждого запущенного с листом квотирования.
Каскадное обновление. Исправили квоты во всех местах, где они хранятся.
Формализовали правило. В конфигурацию проекта и скилл добавлен раздел «Источник правды»:
Для достоверности данных — квота респондента определяет, в какую аналитическую группу он попадает. Неправильная квота → неправильная интерпретация его поведения в дневнике.
Для команды — теперь у каждого, кто работает с квотами, есть однозначный ответ: «где посмотреть правильную квоту?» Не нужно гадать, какой из трёх источников актуален.
Для будущих проектов — урок: в рекрутинге данные проходят несколько стадий (анкета → предварительный анализ → голосовой скрининг → финальное решение). На каждой стадии оценка может измениться. Нужно точно знать, на какой стадии фиксируется «правда».
На третий день полевого этапа (26 респондентов, ~100+ записей о поездках) в данных накапливаются неявные запросы на функциональность: люди описывают неудобства, обходные пути, переключения между приложениями — но эти сигналы разбросаны по записям.
1. Ручной анализ исследователями
Плюсы: глубокое понимание контекста каждого респондента. Минусы: при 26 респондентах и ~100 записях — дни работы. Сложно удержать кросс-респондентную картину.
Решение: отвергнут. Слишком трудоёмко для промежуточного среза на 3-й день поля.
2. GPT-анализ на сервере (автоматически)
Плюсы: без участия человека, по расписанию. Минусы: GPT-4.1-mini не справляется с тонкой классификацией (фича-реквест vs проблема vs барьер). Не видит контекст скрининга. Не может отделить «незнание ценности» от реального запроса.
Решение: отвергнут. Качество анализа критично — это идёт заказчику.
3. Claude Code + страница анализа на сайте (выбрали)
Плюсы: максимальное качество анализа (Claude Opus), привязка к профилям и скринингу, гибкий формат (markdown → HTML с табами), масштабируемость (новый .md = новый таб).
Минусы: запуск вручную. Но анализ — не ежедневная задача, а по запросу.
Извлекли фича-реквесты из всех дневников. Параллельно проанализированы дневники 26 респондентов (5 агентов, ~370 файлов). Для каждого запроса: кто, что хочет, зачем, что без этого, цитата.
Кластеризовали в 15 тем.
Создали страницу анализа на сайте. Вход по паролю, вкладки-табы, адаптивный дизайн. Цветовая схема — teal (#0d9488). Автообнаружение: новый .md в директории анализа → новый таб.
Настроили workflow. Руководитель проекта просит проанализировать → Claude Code анализирует → показывает результат → если да → .md, коммит, пуш, автодеплой.
Для заказчика — структурированная карта запросов с контекстом и цитатами. Видно, что массовое, что единичное, что уже есть, но не находят.
Для исследователей — кросс-респондентный взгляд по темам, которого нет в индивидуальных карточках мониторинга.
Для финальных интервью — список фич для проверки «незнания ценности» (Блок 4 гайда).
Для руководителя — возможность быстро запросить анализ по любой теме и сразу получить результат на сайте.
.md в директорию анализа → git push → Render автодеплой → новый таб на странице анализаОтбор респондентов на глубинные интервью: три исследователя по 7 часов вручную оценивали дневник каждого. Проверка статуса дневников: руководитель тратила 30 минут на каждого респондента. 100-балльный скилл отбора сократил работу до 1.25 часа. Статус — за 20 минут вместо 16 часов.
Автор: руководитель проекта + Claude Code (Opus 4.6)
На шестой день полевого этапа дневникового исследования 32 респондента ведут дневники поездок в 32 отдельных Telegram-группах. Дневник длится 7 календарных дней, но каждый респондент стартовал в свою дату. Через 1–2 дня первые начнут завершать — и нужно планировать отбор на глубинные интервью.
Что было неудобно:
Что нужно:
Плюсы: привычный формат, команда может редактировать. Минусы: нужно вручную считать дни и поездки для каждого респондента. При 32 людях это 2+ часа работы, причём каждый день заново. Человеческий фактор — легко ошибиться в подсчёте.
Решение: отклонено. Не масштабируется при 32 респондентах и ежедневном обновлении.
Плюсы:
Минусы: зависит от синхронизации дневников с Google Drive (нужно синкнуть перед запуском). Детектор поездок приблизительный (~80% точности) — считает на основе паттернов текста, не на основе ручной разметки.
Ключевая задача — автоматически определить, сколько поездок описал респондент в каждом дневниковом сообщении. Проблема: респонденты пишут в свободной форме — кто-то нумерует, кто-то описывает текстом, кто-то отправляет голосовые.
Реализовали три метода детекции, применяемых последовательно.
Точность: ~80%. Для задачи «общая картина прогресса» этого достаточно.
Ключевой инсайт от руководителя проекта: «Благодаря тому, что исследователи активно задавали дополнительные вопросы, даже на одной поездке удалось получить очень много важного контекста. Это полезно для целей исследования и целей бизнеса.»
Из 32 респондентов нужно отобрать 24 на финальное глубинное интервью. Скрипт автоматически раскладывает по квотной сетке и определяет три уровня: кого нельзя отсеять (единственный в сегменте), кого лучше оставить, и где можно выбирать. Руководитель принимает решение, видя всю картину.
Компактная ASCII-таблица в терминале: все 32 респондента на одном экране, сгруппированные по типу (пешеходы / водители). Колонки: код респондента, город, день N/7, количество поездок, дата окончания, осталось дней, поездки по дням.
Критически важное UX-решение: !! рядом с «осталось дней» для тех, кто завершает через ≤2 дня. Это визуальный маркер срочности.
1. Синхронизация дневников с Google Drive → локальная папка
↓
2. Скрипт сканирует все подпапки респондентов
↓
3. Детектор поездок: шаблон нумерации → маркеры → keywords
↓
4. Определение Day 1: первый день с ≥1 поездкой
↓
5. Расчёт: день дневника, дата окончания, поездки по дням
↓
6. Квотная сетка: раскладка 32 респондентов по сегментам
↓
7. Вывод: ASCII-таблица + секция отбора на интервью
Автор: руководитель проекта + Claude Code (Opus 4.6)
Дневниковое исследование навигации: 32 респондента ведут дневники 7 дней, из них 24 отбираем на финальные 70-минутные интервью. Формат интервью — детальный разбор конкретных поездок из дневника. Это значит, что отбирать нужно не «хороших респондентов», а тех, чьи дневники дадут максимум материала для продуктивного разговора.
Что было неудобно:
Что нужно:
Плюсы: быстро, руководитель и так знает материал. Минусы: непрозрачно для заказчика.
Решение: отклонено. Заказчик ожидает аргументированное обоснование.
Плюсы: объективная метрика, легко посчитать. Минусы: количество != качество. 20 записей «всё нормально, доехала» бесполезнее, чем 5 записей с рефлексией и скриншотами. Не учитывает квоты — можно потерять целый сегмент. Штрафует «редко»-пользователей, которые ценны именно своим невключением навигации.
Решение: отклонено. Противоречит принципу «ценность для интервью > формальная активность».
Плюсы:
Минусы: трудоёмко — полный скоринг одного респондента занимает 5-10 минут. Нужна актуальная карточка мониторинга как входные данные.
100-балльная система, каждое измерение оценивает конкретный аспект ценности для интервью:
| Измерение | Макс | Что оценивает |
|---|---|---|
| Активность | 25 | Сколько дней и поездок, стабильность ведения |
| Разнообразие поездок | 20 | Виды транспорта, цели, контексты, знакомость маршрутов |
| Качество комментариев | 20 | Рефлексия, «почему», эмоции, скриншоты, голосовые |
| Исследовательская ценность | 25 | Инсайты, барьеры, расхождения, фича-реквесты |
| Потенциал интервью | 10 | Материал для 70-минутного разбора: противоречия, гипотезы |
Ключевое решение: исследовательская ценность весит столько же, сколько активность (25 баллов). Три глубокие записи с инсайтами ценнее двадцати формальных.
Два респондента проскорены первыми — как якоря шкалы: верхний (высокая активность, много инсайтов) и нижний (минимум данных). Каждый последующий скоринг калибруется относительно этих двух.
Правило: скорить респондента только когда он на 5-м дне дневника или дальше. 5 дней — достаточно для надёжной оценки, остаётся 2 дня запаса для планирования интервью.
Описали 5 измерений, шкалу, логику принятия решений — простым языком, без внутренней кухни. Отправили в рабочий чат команды, чтобы все понимали, как работает отбор.
1. Карточка мониторинга обновлена (свежие данные дневника)
|
2. Проверяем день дневника: >=5? Если нет — ждём
|
3. Запускаем скоринг: «оцени респондента для интервью»
|
4. Claude Code читает карточку + дневник + квотную сетку
|
5. Оценивает по 5 измерениям, проверяет red flags
|
6. Определяет квотную позицию (обязательный / конкурентный)
|
7. Выдаёт карточку скоринга с баллом и решением
|
8. Результат сохраняется в файл результатов
|
9. Когда вся ячейка проскорена — финальный отсев по баллу
Финишная прямая. Гайд интервью v2.0 — полная переработка методологии за 2 часа вместо 19.5. Авария бота: OAuth-токен Google истёк, диагностика и починка за 20 минут вместо 4 часов. Страница анализа с фича-реквестами и гипотезами для команды.
Автор: руководитель проекта + Claude Code (Opus 4.6)
На 6-й день полевого этапа дневникового исследования (32 респондента, 32 Telegram-группы) бот перестал сохранять записи на Google Drive. Респонденты продолжали писать, но файлы не появлялись.
Что произошло:
RefreshError: invalid_grant: Token has been expired or revokedПочему это критично:
Корневая причина: OAuth consent screen в Google Cloud Console был в режиме "Testing". В этом режиме Google автоматически отзывает refresh token через 7 дней. Проект запущен неделю назад, токен протух ровно через 7 дней.
Плюсы: сервисные аккаунты не требуют refresh token, не протухают.
Минусы: сервисные аккаунты не имеют квоты хранения на Google Drive и не могут загружать файлы на личный диск пользователя. Получаем ошибку storageQuotaExceeded. Работает только с Shared Drives (Team Drives).
Решение: отклонено после попытки — получили 403 от Google Drive API.
Плюсы:
Минусы: нужен доступ к Google Cloud Console и хостинг-панели.
Плюсы: можно использовать сервисный аккаунт, токены не протухают. Минусы: нужно мигрировать ~2000 файлов, менять все скрипты (rclone, синк, бот), риск потери данных при миграции.
Решение: отложено. Непропорциональный объём работ для горящей ситуации.
Цепочка проверок:
getWebhookInfo → 500 Internal Server Error, 224 pending updates → бот падаетRefreshError: invalid_grant → OAuth token expiredОбернули OAuth-авторизацию в try/except. При падении OAuth — бот логирует предупреждение и пробует сервисный аккаунт. Это страховка на будущее: если OAuth снова упадёт, бот не будет падать с 500, а попытается альтернативный путь.
try:
if not creds.valid:
creds.refresh(Request())
except Exception:
logging.warning("OAuth refresh failed, falling back to service account")
return None
После деплоя кода с fallback'ом — получили новую ошибку: storageQuotaExceeded. Сервисные аккаунты не могут создавать файлы на личном Google Drive. Вариант 1 не работает — нужен OAuth.
Написали скрипт перегенерации токена:
Обновили переменную окружения на хостинге → Manual Deploy.
В Google Cloud Console → OAuth consent screen → Audience → нажали "Publish App". Статус сменился с "Testing" на "In production". Теперь refresh token бессрочный.
| Метрика | Значение |
|---|---|
| Время от обнаружения до фикса | ~20 минут |
| Сообщений в очереди | 224 |
| Сообщений потеряно | 0 |
| Скорость разбора очереди | ~30 сообщений/минуту |
| Очередь разобрана за | ~7 минут |
1. Обнаружение: синк показал 0 новых файлов
|
2. Проверка Drive: файлов нет → проблема на стороне бота
|
3. Проверка webhook: getWebhookInfo → 500, N pending
|
4. Логи сервера: идентификация ошибки
|
5. Фикс: перегенерация токена + деплой
|
6. Telegram переотправляет очередь → файлы на Drive
GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET, GOOGLE_OAUTH_REFRESH_TOKEN — все три нужны на сервере.getWebhookInfo — если pending_update_count > 0 и last_error_message содержит 500 — бот лежит.Автор: руководитель проекта + Claude Code (Opus 4.6)
Дедлайн: утверждение гайда финальных интервью с заказчиком. Первые интервью — на следующий день. В наличии — черновик гайда на 70 минут, 7 блоков, написанный в начале проекта. Но за неделю полевого этапа многое изменилось:
Что нужно: за выходные превратить черновик в рабочий инструмент, который гарантирует получение данных по ВСЕМ исследовательским задачам, и проверить его на реальном материале.
Плюсы: быстро, структура уже есть. Минусы: критические пробелы останутся. Без фич от заказчика блок 4 (ценность навигации) неработоспособен. Без приоритизации Задача 4 не закрыта. Вопросы не привязаны к данным дневников. Решение: отклонено.
Плюсы: можно учесть всё, что знаем из дневников. Минусы: риск «ресёрчерского перфекционизма» — бесконечная доработка. Структура черновика рабочая — ломать её нет смысла. Нет времени. Решение: отклонено.
Плюсы:
Минусы: трудоёмко — нужно вытащить данные из 30 вкладок, провести review, доработать, протестировать. Но результат — проверенный инструмент.
Использовали скилл review — оценка по 8 блокам (вводное слово, скрининг, связь с задачами, формулировки, структура, инструменты, хронометраж, пилот). Составили матрицу покрытия: исследовательские задачи x вопросы гайда.
Общая оценка: «Требует доработки».
Критические пробелы:
Сильные стороны (сохранили):
Это был ключевой вызов. Заказчик не предоставил список фич, и неизвестно, появится ли он. Первая версия блока 4 — мертва без этого списка.
Решение — перевернуть логику: вместо «сверху вниз» (фичи → респондент) идём «снизу вверх» (респондент → его ментальная модель):
Так мы получаем ментальную модель респондента без подсказок — а потом сравниваем с реальными возможностями продукта при анализе.
Приоритизация направлений — важна, но съедает 15-20 минут интервью. При 70-минутном лимите это критично.
Решение: упражнение на приоритизацию выполняется в последний день дневника, НЕ на интервью:
Карточки сформировали из реальных данных дневников, отдельно для водителей и пешеходов. Формулировки на языке респондентов, не исследовательском.
Для формулировки гипотез и карточек нужна консолидация данных всех 30 респондентов. Написали скрипт, который вытаскивает аналитический слой из трекинговой таблицы Google Sheets — паттерны, барьеры, драйверы, фича-реквесты, вопросы к интервью.
Результат: структурированный JSON с данными по 8 секциям x 30 респондентов. Из этих данных:
Точечные правки по результатам review:
| Блок | Что изменили |
|---|---|
| Блок 1 (разогрев) | Добавили запрос на запись, проверку времени |
| Блок 3 | Маркеры MUST/IF TIME, убрали наводящие формулировки, добавили 2 паттерна из данных |
| Блок 4 (ценность) | Полная переделка: снизу вверх, 4 шага, привязка к упражнению |
| Блок 5 (гипотезы) | 6 гипотез из дневников вместо пустого TODO. Три MUST, три IF TIME |
| Блок 7 (закрытие) | Добавили ключевой вопрос |
| Тайминг | Приоритеты по каждому блоку: что обязательно, что можно пропустить |
Самое нестандартное решение сессии. Вместо того чтобы ждать первого интервью для проверки гайда, мы провели «виртуальное интервью» — прошли по гайду, используя данные одного реального дневника.
Для каждого блока: какой вопрос задаём → что можем предсказать из дневника → чего нет и что даст только живое интервью.
Что показала обкатка:
Что не покрывает гайд: обкатка выявила уникальные паттерны поведения, которые гайд не покрывает — они специфичны для конкретного респондента и идут в индивидуальную подготовку исследователя перед интервью.
Главный вывод: дневник даёт «что», интервью даст «почему» и «что если». Гайд работает именно на этот переход.
Автор: руководитель проекта + Claude Code (Opus 4.6)
К 7-му дню проекта накопился большой объём аналитических данных из дневников 32 респондентов (~400+ поездок). Два ключевых артефакта — карта фича-реквестов и гипотезы для финальных интервью — существовали, но в разных местах:
Что нужно: единая точка доступа к фича-реквестам и гипотезам, актуальная по всем 32 респондентам, с доказательной базой.
1. Обновить фича-реквесты в текущем файле, гипотезы оставить в гайде
Плюсы: быстро, минимум изменений. Минусы: команда не увидит гипотезы без чтения 10-страничного гайда. Перед интервью нужен быстрый доступ. Решение: отклонено.
2. Создать два отдельных документа на сайте (выбрали)
Плюсы:
.md файлов — достаточно положить второй файлМинусы: трудоёмко — нужно пересмотреть данные всех 32 респондентов и 87 рабочих сессий.
Шаг 1. Обновили карту фича-реквестов.
Исходные данные: дневники 32 респондентов за 7 дней, карточки мониторинга, аналитический слой трекинговой таблицы, кросс-респондентные паттерны.
Результат:
Шаг 2. Создали файл гипотез.
Источники: гайд интервью v2.0, трекинговая таблица, карточки мониторинга, количественный слой.
10 гипотез с доказательной базой из полного дневникового этапа. Каждая гипотеза: суть, доказательная таблица, объяснение «почему важно», формулировка вопроса для интервью.
Шаг 3. Деплой и оповещение.
Страница анализа на сайте проекта — два таба:
Единая ссылка для команды к странице анализа на сайте проекта.
Дневники закончились — начинаются интервью. Исследователи не успевают прочитать сотни файлов каждого респондента за вечер. Система нарративной аналитики: портрет человека, диалоги, зоны для интервью — три файла вместо часов чтения. Pipeline от дневника до бизнес-статьи, переиспользуемый между проектами.
Автор: руководитель проекта + Claude Code (Opus 4.6)
Дневники заканчиваются - начинаются интервью. Исследователям нужно подготовиться: погрузиться в данные каждого респондента, понять его поведение, знать, что уточнять на интервью.
На входе — 7 дней дневниковых записей: десятки текстовых сообщений, голосовых, фото, скриншотов, диалогов с исследователем. Ни один исследователь не сможет прочитать всё за вечер перед интервью.
Мониторинговая карточка (которая уже существует на сайте) — хороший инструмент для ежедневного трекинга, но это структурированная сводка: паттерны, барьеры, драйверы, хронология. Для подготовки к интервью нужно другое — понимание человека: как он думает, почему так ездит, что стоит за цифрами. И конкретные цитаты, конкретные ситуации, конкретные вопросы.
Дальше — после интервью — нужно что-то для клиента. Не просто «респондент использует навигатор в 33% поездок», а ответ на вопрос: как поведение этого человека соотносится с целями бизнеса? Что работает, что не работает, и почему.
Что нужно: система создания аналитических статей про респондентов, которая работает на всех этапах исследования и переиспользуется между проектами.
1. Расширить мониторинговую карточку
Добавить в существующий формат нарративный блок, цитаты, вопросы для интервью. Плюсы: один файл, одно место. Минусы: карточка станет огромной, смешаются два формата (структурированная сводка и нарратив), карточка обновляется ежедневно — нарратив будет мешать. Решение: отклонено.
2. Создать отдельные аналитические статьи по респондентам (выбрали)
Три отдельных файла в персональной папке респондента: нарративная аналитика, диалоги, зоны для интервью. После интервью — обогащение транскриптом + бизнес-статья. Плюсы: каждый артефакт — отдельный файл с понятным назначением, не загрязняет мониторинг, масштабируется. Минусы: больше файлов. Решение: выбрали.
3. Делать подготовку к интервью каждый раз вручную
Исследователь сам читает дневник, выписывает цитаты, формулирует вопросы. Плюсы: глубокое погружение. Минусы: 24 респондента × часы чтения = нереалистично при сжатых сроках. Каждый раз с нуля. Решение: отклонено.
Не хронология дня за днём (респонденты не делали ничего необычного — жили обычной жизнью). Не сухая сводка (это уже есть в мониторинге). А аналитика через сюжет: скелет — механизмы, причины, структура поведения; тон — конкретные ситуации, цитаты, контекст.
Фокус:
Длина — ровно такая, чтобы раскрыть поведение и его причины. Не 3 абзаца и не 30 — сколько нужно.
32 персональных папки — по одной на каждого респондента. В каждой:
Источники: 177 файлов дневника (7 дней), мониторинговая карточка, аналитический слой из таблицы трекинга.
Результат — три файла:
Определили три этапа, которые применимы к любому исследовательскому проекту:
| Этап | Когда | Что создаётся | Входные данные |
|---|---|---|---|
| Нарратив | До или после интервью | Нарративная аналитика | Дневник, и/или транскрипт |
| Подготовка | Перед интервью | Диалоги + зоны для копания | Любые pre-data |
| Бизнес | После нарратива | Бизнес-статья | Нарратив + цели бизнеса |
Ключевое решение: скилл адаптируется к входным данным, а не к методу исследования. Одна команда покрывает:
Исследователь не выбирает «режим дневника» или «режим интервью». Он говорит: «напиши нарратив» — и скилл сам определяет, какие данные доступны.
Для исследователей:
Для проекта:
Для будущих проектов: