Prompt file imported from bogomolovf/workyy (
.cursor/commands/tasks/describe-bug.md). Copyright stays with the author.
Describe Bug
Анализирует контекст чата, определяет что было предпринято для исправления бага, объясняет почему это не сработало, и создает детальное описание проблемы с указанием всех связанных файлов и элементов.
Prompt
Проанализируй историю этого чата и создай детальное описание бага/проблемы/дефектного поведения.
КРИТИЧЕСКИ ВАЖНО:
- Изучи ВСЮ историю чата от начала до текущего момента
- Определи что было предпринято для исправления
- Объясни почему попытки исправления не сработали
- Найди ВСЕ файлы и элементы, связанные с багом (даже косвенно)
- Создай структурированное описание для последующей обработки командой
fix-bug
Контекст проекта (кратко)
Workyy — браузерная платформа аналитики на бесконечном холсте с SQL/Python узлами и реалтайм коллаборацией.
Архитектура:
apps/web- Next.js 14+ (App Router), React, ReactFlow, Zustandapps/realtime-server- Fastify, y-websocket, Prisma, PostgreSQLpackages/core-domain- Доменные схемыpackages/dag-executor- Исполнитель DAG
Ключевые особенности:
- Реалтайм синхронизация через Yjs (автоматическая)
- Выполнение узлов: SQL (DuckDB-WASM), Python (Pyodide) в браузере
- Execution Store (Zustand) для результатов выполнения узлов
- DAG (Directed Acyclic Graph) для зависимостей узлов
Подробнее: См. .cursor/commands/agents/developer-agent.md для полного контекста.
Процесс анализа бага
Шаг 1: Анализ истории чата
Изучи всю историю чата:
-
Первоначальное описание проблемы:
- Что было описано пользователем?
- Какое дефектное поведение наблюдалось?
- Какие шаги воспроизведения были указаны?
- Какой был ожидаемый результат?
-
Предпринятые попытки исправления:
- Какие изменения были внесены?
- Какие файлы были модифицированы?
- Какие подходы были опробованы?
- Что было добавлено/удалено/изменено?
-
Результаты попыток:
- Сработало ли исправление?
- Если нет - почему?
- Какие ошибки появились?
- Что изменилось в поведении?
-
Контекст обсуждения:
- Какие гипотезы выдвигались?
- Какие вопросы задавались?
- Какая дополнительная информация была получена?
Шаг 2: Поиск связанных файлов и элементов
Найди ВСЕ связанные компоненты:
-
Прямо связанные файлы:
- Файлы, которые были изменены
- Файлы, упомянутые в чате
- Файлы с ошибками в консоли/логах
-
Косвенно связанные файлы:
- Импорты измененных файлов
- Файлы, импортирующие измененные компоненты
- Сервисы/утилиты, используемые проблемным кодом
- Типы и схемы, связанные с проблемой
-
Связанные элементы системы:
- API endpoints (если проблема в backend)
- React компоненты (если проблема в frontend)
- Store состояния (Zustand stores)
- Сервисы и утилиты
- Типы и интерфейсы
- Конфигурация (env, схемы БД)
Используй codebase_search для поиска:
codebase_search: "How does [проблемная функциональность] work?"
codebase_search: "Where is [затронутый компонент] used?"
codebase_search: "What files import [измененный файл]?"
Используй grep для точного поиска:
grep: найти все использования измененных функций/компонентов
grep: найти все импорты измененных модулей
grep: найти все места, где используются затронутые типы
Шаг 3: Анализ причин неудачи
Определи почему исправление не сработало:
-
Корневая причина:
- Была ли устранена настоящая причина бага?
- Или исправлялись только симптомы?
- Есть ли более глубокие проблемы в архитектуре?
-
Побочные эффекты:
- Появились ли новые проблемы?
- Нарушилась ли другая функциональность?
- Есть ли конфликты с существующим кодом?
-
Недостающая информация:
- Что не было учтено?
- Какие зависимости не были проанализированы?
- Какие edge cases не были покрыты?
-
Специфика Workyy:
- Проблема с Yjs синхронизацией?
- Проблема с executionStore?
- Проблема с DAG зависимостями?
- Проблема с выполнением узлов?
Шаг 4: Создание детального описания
Создай структурированное описание в следующем формате:
Описание бага
Краткое резюме
[1-2 предложения о сути проблемы]
Дефектное поведение
Что происходит:
- [Конкретное описание наблюдаемого поведения]
- [Шаги воспроизведения]
- [Условия, при которых возникает]
Ожидаемое поведение:
- [Как должно работать]
Фактическое поведение:
- [Что происходит на самом деле]
Воспроизведение
Шаги для воспроизведения:
- [Шаг 1]
- [Шаг 2]
- [Шаг 3]
Условия воспроизведения:
- Окружение: [dev/prod/staging]
- Браузер: [если применимо]
- Версия: [если применимо]
- Предварительные условия: [если есть]
Анализ попыток исправления
Попытка 1: [описание]
- Что было сделано: [конкретные изменения]
- Файлы: [список файлов]
- Почему не сработало: [анализ причин]
- Результат: [что изменилось/не изменилось]
Попытка 2: [описание]
- [аналогично]
Попытка N: [описание]
- [аналогично]
Связанные файлы и элементы
Прямо связанные:
path/to/file1.ts- [описание связи]path/to/file2.tsx- [описание связи]
Косвенно связанные:
path/to/file3.ts- [описание связи]path/to/file4.ts- [описание связи]
Связанные компоненты системы:
- API endpoints:
/api/...- [если применимо] - React компоненты:
ComponentName- [если применимо] - Stores:
storeName- [если применимо] - Сервисы:
serviceName- [если применимо] - Типы:
TypeName- [если применимо]
Корневая причина
Гипотезы о корневой причине:
- [Гипотеза 1] - [обоснование]
- [Гипотеза 2] - [обоснование]
- [Гипотеза 3] - [обоснование]
Наиболее вероятная причина:
- [Описание наиболее вероятной корневой причины]
- [Почему она наиболее вероятна]
Специфика Workyy
Связано ли с:
- Yjs реалтайм синхронизацией
- Execution Store (Zustand)
- DAG зависимостями узлов
- Выполнением узлов (SQL/Python)
- WebSocket соединением
- Prisma/PostgreSQL
- Next.js App Router
- Другое: [описание]
Дополнительный контекст
Логи/ошибки:
[Здесь цитаты ошибок из консоли/логов]
Скриншоты/примеры: [Если были упомянуты в чате]
Связанные issues/PR: [Если были упомянуты]
Рекомендации для исправления
Предполагаемый подход:
- [Какой подход, вероятно, должен сработать]
- [Что нужно учесть]
- [Какие файлы нужно изменить]
Важные замечания:
- [Что нельзя упустить]
- [Потенциальные побочные эффекты]
- [Риски исправления]
Формат использования
Пользователь применяет команду в чате, где уже была попытка исправления:
/describe-bug
Команда автоматически анализирует всю историю чата и создает описание выше.
Или с дополнительным контекстом:
/describe-bug
Дополнительный контекст:
- Проблема возникла после последнего коммита
- Воспроизводится только в Chrome
- Связана с выполнением Python узлов
Пример вывода
После анализа чата команда выводит детальное описание в формате выше, которое затем можно использовать с командой /fix-bug:
/fix-bug
[Вставь сюда описание бага, созданное командой describe-bug]
Готов к анализу
Проанализирую историю чата и создам детальное описание бага со всеми связанными файлами и элементами для последующего исправления.