Dogfood
Исследовательское QA веб-приложений: поиск багов, доказательства, отчёты.
Метаданные навыка
| Источник | Встроенный (установлен по умолчанию) |
| Путь | skills/dogfood |
| Версия | 1.0.0 |
| Платформы | linux, macos, windows |
| Теги | qa, testing, browser, web, dogfood |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое Hermes Agent загружает при его активации. Именно эти инструкции видит агент во время работы навыка.
Dogfood: систематическое QA-тестирование веб-приложений
Обзор
Навык ведёт агента через систематическое исследовательское QA-тестирование веб-приложений с помощью набора браузерных инструментов. Агент обходит приложение, взаимодействует с элементами, фиксирует доказательства проблем и формирует структурированный отчёт о багах.
Требования
- Должен быть доступен браузерный набор инструментов:
browser_navigate,browser_snapshot,browser_click,browser_type,browser_vision,browser_console,browser_scroll,browser_back,browser_press - Целевой URL и область тестирования от пользователя
Входные данные
Пользователь передаёт:
- Целевой URL — точка входа для тестирования
- Область — какие разделы/функции тестировать (или «full site» для полного охвата)
- Директория вывода (опционально) — куда сохранять скриншоты и отчёт (по умолчанию:
./dogfood-output)
Рабочий процесс
Следуй пятифазному систематическому рабочему процессу:
Фаза 1: Планирование
- Создай структуру директории вывода:
{output_dir}/
├── screenshots/ # Evidence screenshots
└── report.md # Final report (generated in Phase 5)
- Определи область тестирования на основе данных от пользователя.
- Составь предварительную карту сайта — запланируй, какие страницы и функции тестировать:
- Лендинг/главная страница
- Навигационные ссылки (шапка, подвал, боковая панель)
- Основные пользовательские сценарии (регистрация, вход, поиск, оформление заказа и т.д.)
- Формы и интерактивные элементы
- Граничные случаи (пустые состояния, страницы ошибок, 404)
Фаза 2: Исследование
Для каждой страницы или функции из плана:
-
Перейди на страницу:
browser_navigate(url="https://example.com/page") -
Сделай снапшот, чтобы понять структуру DOM:
browser_snapshot() -
Проверь консоль на наличие ошибок JavaScript:
browser_console(clear=true)Делай это после каждого перехода и после каждого значимого взаимодействия. Скрытые JS-ошибки — находки высокой ценности.
-
Сделай аннотированный скриншот, чтобы визуально оценить страницу и выявить интерактивные элементы:
browser_vision(question="Describe the page layout, identify any visual issues, broken elements, or accessibility concerns", annotate=true)Флаг
annotate=trueнакладывает на элементы пронумерованные метки[N]. Каждый[N]соответствует рефу@eNдля последующих команд браузера. -
Проверяй интерактивные элементы методично:
- Кликай по кнопкам и ссылкам:
browser_click(ref="@eN") - Заполняй формы:
browser_type(ref="@eN", text="test input") - Тестируй клавиатурную навигацию:
browser_press(key="Tab"),browser_press(key="Enter") - Прокручивай контент:
browser_scroll(direction="down") - Тестируй валидацию форм с невалидными данными
- Тестируй отправку пустых форм
- Кликай по кнопкам и ссылкам:
-
После каждого взаимодействия проверяй:
- Ошибки консоли:
browser_console() - Визуальные изменения:
browser_vision(question="What changed after the interaction?") - Ожидаемое vs фактическое поведение
- Ошибки консоли:
Фаза 3: Сбор доказательств
Для каждой найденной проблемы:
-
Сделай скриншот, фиксирующий проблему:
browser_vision(question="Capture and describe the issue visible on this page", annotate=false)Сохрани
screenshot_pathиз ответа — он понадобится в отчёте. -
Запиши детали:
- URL, где возникает проблема
- Шаги для воспроизведения
- Ожидаемое поведение
- Фактическое поведение
- Ошибки консоли (если есть)
- Путь к скриншоту
-
Классифицируй проблему по таксономии (см.
references/issue-taxonomy.md):- Серьёзность: Critical / High / Medium / Low
- Категория: Functional / Visual / Accessibility / Console / UX / Content
Фаза 4: Категоризация
- Просмотри все собранные проблемы.
- Удали дубли — объедини проблемы, которые являются одним и тем же багом, проявляющимся в разных местах.
- Присвой каждой проблеме итоговые серьёзность и категорию.
- Отсортируй по серьёзности (сначала Critical, затем High, Medium, Low).
- Подсчитай количество проблем по серьёзности и категории для управленческой сводки.
Фаза 5: Отчёт
Сформируй итоговый отчёт по шаблону templates/dogfood-report-template.md.
Отчёт должен содержать:
- Управленческую сводку с общим числом проблем, разбивкой по серьёзности и охватом тестирования
- Раздел по каждой проблеме с:
- Номером и заголовком проблемы
- Бейджами серьёзности и категории
- URL, где обнаружена проблема
- Описанием проблемы
- Шагами для воспроизведения
- Ожидаемым vs фактическим поведением
- Ссылками на скриншоты (используй
MEDIA:<screenshot_path>для встроенных изображений) - Ошибками консоли, если применимо
- Сводную таблицу всех проблем
- Примечания по тестированию — что тестировалось, что нет, любые блокеры
Сохрани отчёт в {output_dir}/report.md.
Справочник инструментов
| Инструмент | Назначение |
|---|---|
browser_navigate | Перейти по URL |
browser_snapshot | Получить текстовый снапшот DOM (дерево доступности) |
browser_click | Кликнуть по элементу по рефу (@eN) или тексту |
browser_type | Ввести текст в поле ввода |
browser_scroll | Прокрутить страницу вверх/вниз |
browser_back | Вернуться назад в истории браузера |
browser_press | Нажать клавишу |
browser_vision | Скриншот + AI-анализ; annotate=true добавляет метки на элементы |
browser_console | Получить вывод JS-консоли и ошибки |
Советы
- Всегда вызывай
browser_console()после перехода и после значимых взаимодействий. Скрытые JS-ошибки — одни из самых ценных находок. - Используй
annotate=trueвместе сbrowser_vision, когда нужно разобраться с позицией интерактивных элементов или когда рефы из снапшота неоднозначны. - Тестируй как с валидными, так и с невалидными данными — баги валидации форм встречаются часто.
- Прокручивай длинные страницы — контент ниже «линии сгиба» может иметь проблемы с отрисовкой.
- Тестируй навигационные сценарии — проходи многошаговые процессы от начала до конца.
- Отслеживай адаптивное поведение, обращая внимание на проблемы с раскладкой на скриншотах.
- Не забывай про граничные случаи: пустые состояния, очень длинный текст, специальные символы, быстрые клики.
- При передаче скриншотов пользователю используй
MEDIA:<screenshot_path>— так он увидит доказательства прямо в сообщении.