Files
easy-png-tools2/docs/agent-workflow.md
T
2026-10-04 07:18:50 +05:00

6.5 KiB
Raw Blame History

Workflow для агентов

Статус: active. Порядок исследования, изменения и проверки. Обязательные инварианты — в AGENTS.md, этот документ не заменяет source of truth подсистемы.

1. Подготовка к задаче

  1. Прочитать AGENTS.md и выбрать документ по карте «что читать под задачу».
  2. Найти релевантный активный план, backlog или checklist.
  3. Проверить git status: не перезаписывать чужие незакоммиченные изменения.
  4. Определить границу изменения: production UI, shared-модуль или инфраструктура — AGENTS.md, раздел «Границы изменений». Изменение shared-кода требует проверки production-потребителей.
  5. Не добавлять исключения линтера ради отдельных модулей: осознанные отступления живут в конфиге правила (allowPaths, allowWords, ignoreMissingPatterns, allowDefaultProject — web/eslint-plugins/README.md), а не в самих проверяемых файлах.

2. Порядок изменения

  • Сначала исправляются тесты или контракт, который фиксирует неверное поведение, затем production-код — если это не отдельная продуктовая задача.
  • Не начинать следующий этап плана в том же шаге: изменение атомарное, ревью идёт между шагами (раздел 6).

3. Проверки

Матрица «изменение → минимальный набор проверок», состав pnpm verify, политика warnings и чтение CI — в docs/quality-gates.md. Здесь только то, что относится к работе агента.

lint:all роняет gate на любых ESLint warnings (--max-warnings=0). Единственное, что он пропускает, — unused-token сообщения (неблокирующие). Поэтому «команда прошла» не равно «нечего чинить»: нужно отдельно показать число errors, warnings и token warnings.

E2E запускается отдельно от быстрых проверок, потому что поднимает build и статический сервер. Для UI-изменений сначала выбирается минимальный пользовательский поток, затем при необходимости расширяется smoke.

Нагрузка на машину

Агент работает на компьютере пользователя, поэтому тяжёлые прогоны не запускаются «по умолчанию»:

  • Playwright-прогоны запускаются только по явной команде пользователя: один прогон за раз, без циклов повторов и без фонового запуска.
  • Локально workers: 1 (web/playwright.config.ts). Browser matrix проходит медленно, зато не забирает память и не мешает работе пользователя. Скорость проверки уступает отзывчивости компьютера.
  • Нельзя запускать тяжёлый прогон параллельно с другим прогоном или в момент, когда пользователь работает с приложением.
  • Диагностика флаков идёт от меньшего к большему: один spec, один проект, --workers=1, и только затем полный прогон.
  • Таймауты не подбираются под конкретную машину. Если проверка падает из-за нехватки ресурсов, это фиксируется как ограничение окружения, а не лечится увеличением expect.timeout (обоснование — docs/decisions.md, раздел 7).
  • При необходимости повторного прогона сначала спрашивается пользователь.

4. Работа с тестами

Политика locator-ов, запрещённые зависимости, fixtures, browser matrix и test.fixme — в docs/testing-strategy.md. Здесь только рабочая рутина:

  • Поведенческий тест проверяет пользовательский контракт, а не текущую реализацию.
  • Спецификация вызывает общие операции из web/e2e/helpers/page.ts, а не повторяет raw-селекторы.
  • Не фиксировать абсолютное число инструментов, если проверка не связана с этим инвариантом.
  • Новые fixtures должны быть воспроизводимыми и не требовать ручного создания больших бинарных файлов.

5. Документация

Порядок работы с документами и карта источников истины — docs/README.md. Архивирование — docs/archive/README.md.

6. Протокол ревью между шагами

После каждого шага плана агент:

  1. останавливается и не начинает следующий этап;
  2. перечисляет изменённые файлы и принятые решения;
  3. указывает выполненные проверки и их фактический результат;
  4. отдельно перечисляет warnings, fixme, долги и вопросы;
  5. ждёт подтверждения на продолжение.

Коммит и пуш делает разработчик. Следующий шаг начинается только после ревью текущего изменения; после пуша результат CI читается по процедуре из docs/decisions.md, раздел 10.