87 промптов за вечер: субагенты Claude Code

Sergey Golubev 2026-03-25 5 мин чтения
🌐 Read in English

87 типов UX-интервью. Каждому нужен свой промпт для анализа и пример JSON-выхода. Я думал, что раскидаю по шаблону за пару вечеров - оказалось, что без системы это 174 файла ручной работы на три недели. За 4 часа с субагентами Claude Code собрал пайплайн, который генерирует их сам.

Контекст: делаю платформу для AI-анализа UX-исследований. Discovery, usability, JTBD, exit-интервью - 87 подтипов. Каждый подтип анализируется по-своему. Нужен промпт + пример выхода с computed metrics типа satisfaction_score, feature_demand_score, usability_score.

Сел с Claude Code в 20:00. Встал в 00:00 с готовым пайплайном.

Фаза 1: JSON-структура выхода (~1 час)

Первый час ушёл на согласование формата. Скучная работа, но один кривой формат размножится на 87 кривых выходов.

7 открытых вопросов решили через AskUserQuestion с визуальным превью прямо в терминале. Ключевые развилки:

  • Один массив sections[] вместо двух отдельных - проще парсить на бэкенде
  • Flat topics + иерархический mindmap с ID - и поиск, и визуализация
  • confidence: 0-1 обязательный на каждый блок - фильтрация шума
  • Computed metrics: envelope + полиморфные scores - общая обёртка, но внутри каждый тип интервью добавляет свои метрики

9 архитектурных решений задокументированы. Звучит бюрократично. Но когда субагент на 80-м промпте спросит “а какой формат confidence?” - ответ уже есть в _common/schema.md.

Фаза 2: Архитектура массовой генерации (~30 мин)

Главное решение: один ассистент на бэкенде, 87 подставляемых промптов. Одна JSON-схема для всех. Меняется только промпт. Я выбрал единую схему, хотя для некоторых типов интервью (скажем, diary study vs. card sorting) различия существенные - зато бэкенд не превращается в зоопарк парсеров.

Структура папок:

prompts/
├── _common/           # Общие файлы
│   ├── schema.md      # JSON-схема
│   └── metrics.md     # Формулы метрик
├── discovery/
│   └── general/
│       ├── prompt.md   # Промпт для анализа
│       └── example.json # Пример выхода
├── usability/
│   └── moderated/
│       ├── prompt.md
│       └── example.json
└── ... (85 подтипов)

Фаза 3: Субагент-генератор

Создал .claude/agents/insights-prompt-agent.md - автономный агент на Opus. Каждый экземпляр получает один подтип и создаёт два файла: промпт + пример JSON.

Ключевые решения в дизайне агента:

Агент не задаёт вопросов. Всё нужное берёт из _common/ и документа-синтеза по метрикам. При 87 запусках любой вопрос к человеку - это bottleneck, который убивает всю автономность.

Документ-синтез по метрикам - 53KB. Читать целиком бессмысленно: контекст засоряется, галлюцинации растут. Агент грепает по названию подтипа. Первый прогон показал, что без этого ограничения агент начинает путать метрики соседних подтипов.

Каждый example.json прогоняется через python3 -m json.tool. Битый JSON обнаружится сразу, а не когда бэкенд упадёт на 93-м подтипе.

Оркестрация: 18 батчей по 5 субагентов параллельно. Трекер обновляет только оркестратор - субагенты не трогают. Иначе race condition.

Фаза 4: Ресёрч метрик (~40 мин)

Прежде чем генерировать 87 промптов, нужно было понять, какие computed metrics вообще существуют для UX-исследований.

40 источников через Exa + 5 запросов в Perplexity + синтез в Claude. Результат - 53KB документ с классификацией метрик по типам интервью.

Нашёл 10 новых типов метрик, которые не планировал:

  • satisfaction_trend - динамика удовлетворённости по интервью
  • feature_advocacy - насколько пользователь готов рекомендовать фичу
  • task_completion_confidence - уверенность в завершении задачи

Паттерн: envelope + discriminated union. Общая обёртка с metric_type, value, confidence. Внутри - специфичные поля для каждого типа метрики.

Пороги confidence: >=0.70 показываем, 0.50-0.70 мягкое предупреждение, <0.50 подавляем. За основу взял практики Gainsight по health scores, адаптировал для UX-контекста.

Фаза 5: Агентное ревью через /btw - 8 багов без усилий

Лайфхак, который усиливает любую сессию с Claude Code. Команда /btw запускает параллельного агента прямо из терминала - он работает в фоне, пока ты занят основной задачей. Я попросил его детально проанализировать все созданные файлы, найти ошибки и несоответствия. Через пару минут получил отчёт, скопировал в основной терминал - и Claude сам всё поправил. 8 проблем:

  1. Интерактивный скилл в автономном агенте - скилл задаёт вопросы, агент автономный. Убрал, вшил логику прямо в промпт
  2. Race condition на трекере - субагенты обновляли трекер параллельно. Перенёс обновление в оркестратор
  3. Нет mkdir -p - агент пытался писать в несуществующие папки
  4. Чтение 53KB целиком - заменил на grep по подтипу
  5. Нет JSON-валидации - добавил python3 -m json.tool
  6. Специфика первого подтипа в общей схеме - обобщил
  7. Нет обработки ошибок - добавил статус FAILED + список на retry
  8. Нет примера с низким confidence - добавил пример с confidence: 0.48

Три из восьми потенциально критичные на масштабе. Race condition на трекере сломал бы половину батчей. Чтение 53KB в каждом из 87 агентов - это примерно 4.5MB лишнего контекста, что означает больше галлюцинаций и медленнее работу. А отсутствие mkdir приводит к тому, что агент падает молча, без ошибки.

Результат

За 4 часа:

  • 9 архитектурных решений
  • 25+ файлов
  • 40+ источников ресёрча
  • 1 из 87 промптов готов полностью (шаблон для остальных)
  • Пайплайн для массовой генерации остальных 86

Один автономный субагент + оркестратор с трекером = масштабирование без потери качества. Написать один хороший промпт - полдела. Спроектировать систему, которая произведёт 87 с предсказуемым качеством - вот где архитектура решает.

И ещё: параллельное ревью через /btw нашло 8 багов, которые основной агент пропустил. Часто забываю запускать - но каждый раз, когда запускаю, находится что-то критичное.


Источники