← все проекты

ИИ Полигон

Тренажёр-песочница для тестирования ИИ-агентов: подключаешь бота по MCP/HTTP, задаёшь роль → симуляция сотен диалогов (обычные/злые/мошенники/джейлбрейк) → карта косяков + датасет для дообучения. РФ-бичхед, приз глобал.

repo: E:\\Проекты для Гитхаба\\agent-sandboxdocs: docs/память: ii-poligon-project
готовS1 · Лендинг2/2

Цель: Показываемый лендинг (тёмный технический SaaS, прайс, форма заявки)

Лендинг: герой + живая анимация прогона
LIVE https://ai-poligon.ru, GPT Image 2 персонажи+фон, TLS certbot
feature
Прайс (4 тарифа) + форма заявки + разделы
на проде, форма заявки -> mailto
feature
готовS2 · Онбординг + подключение агента6/6

Цель: Регистрация, дашборд, подключение агента по MCP/HTTP, probe-вызов

Каркас Next.js + дизайн-система
Next 15 + своя CSS-дизайн-система, dev-сервер работает
feature
Prisma схема (Org/User/Agent) мультитенантно
SQLite, Org/User/Agent/Role/Run, db push ок
feature
Auth: регистрация/вход + сессия в cookie
scrypt пароли + HMAC-сессия в httpOnly cookie, register/login работают
feature
Оболочка дашборда + меню (Агенты/Роли/Прогоны/Косяки/Датасеты)
сайдбар-меню + Обзор с плитками, скриншот снят
feature
Подключение агента по HTTP + probe-вызов
probe end-to-end: агент на связи, ответ распознан
feature
Подключение агента по MCP (SDK-клиент, список инструментов)
askAgentMcp+probeMcp: SDK connect-listTools-callTool, выбор chat-инструмента. MCP-live валидирован.
feature
готовS3 · Роль + канвас сценариев3/3

Цель: Конфигуратор роли (шаблоны+свои поля), канвас, генерация сценариев

Конфигуратор роли: шаблоны (поддержка/продажи) + свои поля
шаблоны поддержка/продажи + свои поля, spec JSON, мультитенантно
feature
Канвас настройки персон и правил
канвас: роль + 7 персонажей с картинками + сценарии по 4 уровням (детерминированно)
feature
Генерация сценариев из роли (policy graph, IntellAgent)
Реально есть в live-движке: genScenarios() через LLM (scenarioGenMessages, тиры 1-4). Детерминированное превью — бесплатный предпросмотр; настоящая генерация в live-прогоне.
feature
готовS4 · Движок прогона10/10

Цель: Реальная симуляция персона↔агент↔судья, cost-gate, red-team

Оркестратор прогона + cost-gate (предпросмотр цены)
live.ts: pool() ограниченная параллельность + estimateLive() cost-gate (calls/цена ДО запуска, UI RunButton). ⚠️ синхронный (без async-очереди) — на больших N риск таймаута; async — отдельная доводка.
feature
Симуляция персона↔агент↔судья, параллельно
demo-движок (mock, без затрат): персона×ситуация→диалог→судья, агрегаты, готовность%
feature
Red-team персоны: злой клиент, джейлбрейк (DeepTeam/PyRIT)
Флаг redTeam: сценарии враждебные т3-4 (джейлбрейк/социнженерия/провокация). Валидировано.
feature
Дизайн-документ движка симуляций (Sim2Real, судья, policy-graph)
docs
Механика EnvironmentDefinition + универсальное ядро (любые агенты)
среда=данные, движок=интерпретатор; типы агентов=пресеты
chat+ops работают: расширенная модель (kind/world/redFlags/events), пресеты директолог+аналитик, движок ветвится persona/event, канвас обобщён. Проверено скриншотами.
feature
Live-режим прогона (реальные LLM) за cost-gate
Валидирован на реальном Авито-агенте (промпт из бэкофиса, sonnet-4.5 через NL-прокси): готовность 50%, поймал обещание скидки/неверную цену/уход из воронки. ~8р.
feature
Операционные среды: пресеты директолог + аналитик (демо)
feature
Взрослые отчёты + выгрузки (датасет/CSV/JSON, разрез по уровням)
feature
МОАТ: персоны из реальных логов клиента (Sim2Real)
feature
Фикс: бейдж live-прогона + честная стоимость
feature
готовS5 · Результат + экспорт3/3

Цель: Дашборд косяков, отчёт, экспорт датасета SFT/DPO, сравнение прогонов

Дашборд косяков + человеческий отчёт
страница прогона: плитки, карта слабых мест, провальные диалоги
feature
Экспорт датасета SFT/DPO из провалов
GET /api/runs/:id/dataset — SFT-форма провалов, скачивается
feature
Сравнение двух прогонов (регресс)
/api/runs/:id/compare + DialogCompare + webqa compare (ушло/новых/осталось). Валидировано.
feature
готовS6 · W1 Web QA: матрица и протык8/8

Цель: Прогон веб-приложения без ИИ в рантайме: краулер, ~8 профилей устройств (Chromium+WebKit), layout-audit, фаззер кнопок, скорость, скрины, отчёт в ЛК. Прогоны почти бесплатные.

Prisma: модели WebProject / WebQaRun / WebQaFinding + миграция
db push локально и на проде (SQLite)
feature
Матрица устройств: iPhone SE/15 (WebKit), Pixel/Xiaomi, iPad (WebKit), ноут 1366, десктоп 1920 (+Яндекс UA), широкий 2560
lib/webqa/devices.mjs, 8 профилей, дескрипторы Playwright с фолбэками
feature
Краулер same-origin: карта страниц до maxPages
lib/webqa/crawler.mjs, BFS, скип трекинг-параметров и опасных путей
feature
layout-audit на каждой точке страница×устройство (геометрия=код) + консоль + тайминги + скрины
lib/webqa/audit.mjs (порт из feature-tester + фильтр скрытых предков checkVisibility), скрины в public/webqa/<runId>
feature
Фаззер: протык кнопок/табов/модалок на desktop+mobile, безопасный режим
lib/webqa/fuzz.mjs: DANGER-фильтр, dismiss диалогов, возврат после навигации
feature
Воркер отдельным Node-процессом, прогресс в БД
webqa-worker.mjs, spawn из API, stage/checksDone/issues живьём
feature
API /api/webqa/* + страницы ЛК: запуск прогона и отчёт со скринами по severity
projects/runs/runs[id] + /dashboard/webqa и /dashboard/webqa/[id] (сводка, находки, матрица, зум скринов)
feature
Деплой на cfru (playwright chromium+webkit) + живой прогон на своём сайте
прод-прогон myvision.su: 40 проверок, 21 находка (реальный overflow-x на мобиле). Nginx: /webqa = static alias
feature
готовS7 · W2 Web QA: глаза и персоны6/6

Цель: Vision-судья скринов + генерация 3-5 персон × 5-10 сценариев + исполнение browser-use + компиляция стабильных сценариев в Playwright-код (Playwright Agents).

Vision-судья: ключевые экраны + подозрительное из W1, вердикты со скринами
lib/webqa/vision.mjs (gpt-4o-mini vision через NL-прокси), до 40 скринов/прогон, находки «Глазами» в отчёте. Валидирован на myvision.su: поймал склейку заголовков /policy и бледную кнопку; точность ~50%, промпт ужесточён (v2 задеплоен, проверится следующим прогоном). Факт: 0.56 ₽/скрин
feature
Генератор персон и сценариев из карты приложения
POST /api/webqa/projects/:id/personas — строит по РЕАЛЬНОЙ карте прогона + описанию владельца; 5 персон × 5 сценариев с реальными URL; хранится на проекте; UI-блок в /dashboard/webqa. Валидирован: 0.05 ₽
feature
Исполнение сценариев через browser-use (агент-юзер)
Свой Node-агент (lib/webqa/agent.mjs) вместо browser-use: наблюдение (элементы+заголовки+пометка [В МОДАЛКЕ]) → LLM решает шаг → Playwright исполняет; трейс сохраняется. Валидирован 3 итерациями на myvisionagency.ru (~1.2 руб): сценарий «заполнить форму заявки» проходит end-to-end (реальный POST в LeadForge), ретраи/escape/обходные пути работают. Известное ограничение: click-таймауты по перекрытым кнопкам (добавлен scrollIntoView+force, ждёт перевалидации). ~0.2 руб/сценарий
feature
Компиляция сценариев в Playwright-код (Planner/Generator/Healer) = регресс-набор
Сделано в спринте 9 (3.1): lib/webqa/compile.mjs + /api/webqa/runs/:id/spec.
feature
Cost-gate прогона с ИИ (предпросмотр цены)
/api/webqa/estimate + confirm:true в API + окно цены в UI. Калиброван по факту: 0.6 ₽/скрин × буфер 1.3. Плюс: авто-провал зависших прогонов >30 мин
feature
Тестовые аккаунты + автологин + бюджет продукта для агента
WebProject.accounts (роли: новый/платный клиент), автологин кодом (login.mjs, storageState во все контексты - краулер/матрица/агент ходят в ЛК), мягкий бюджет продукта в промпте агента (учет по ценам UI, стоп на лимите, пополнение/оплату не трогать). UI: управление аккаунтами, выбор при запуске, поле бюджета. Валидировано на Контент Заводе: тест-аккаунт new-client создан через регистрацию сайта (email подтвержден через Supabase-админку), агент ходил по /dashboard под логином. Пароли в SQLite открытым текстом - только тестовые аккаунты
feature
готовS8 · W3 Web QA: MCP и петля4/4

Цель: MCP-сервер Полигона (подключи проект → прогон → отчёт), перепрогон после фикса, наши проекты подключены как демо-кейсы, feature-tester = пульт.

MCP-сервер: register project / run / status / report
Сделано в спринте 9 (3.3): /api/mcp JSON-RPC, 5 инструментов Web QA.
feature
Регресс-петля: перепрогон после фикса, сравнение прогонов
Сделано в спринте 9 (3.2): /api/webqa/runs/:id/compare, блок сравнения в отчёте.
feature
Подключить Контент Завод, ДомСервис, LeadForge
Все три подключены как Web QA проекты и прогнаны: Контент Завод (24contentzavod.ru), LeadForge (24leadforge.ru), ДомСервис (myvision.su/home-service). Плюс сам ai-poligon.ru (dogfood).
feature
Скилл feature-tester переключить на Полигон
Скилл feature-tester переключён на Полигон (пульт к продукту).
feature
готовS9 · Качество и полировка продукта5/5

Цель: Довести Полигон до крутого качества: закрыть дыры безопасности, убрать незавершённость, дожать фичи.

Фаза 1 безопасность: IDOR-скрины за авторизованный роут, SESSION_SECRET обязателен+срок токена, шифрование паролей аккаунтов at-rest, границы ошибок error.tsx/404, seed.mjs, включены проверки типов
Все 5 пунктов задеплоены и проверены. IDOR закрыт сквозняком: скрин 200 с сессией, 401 без, 404 чужой, 400 traversal. Скрины вне public/, отдаются /api/webqa/shot с проверкой orgId. Nginx: /api приоритетный (^~) над regex .png. Пароли AES-256-GCM, существующий перешифрован. Токен со сроком 30д + secure cookie.
feature
Фаза 2 UX: сайдбар в 2 группы (агенты/сайты), раздел «Данные» из заглушки в реальный список выгрузок, дубль блока аккаунтов убран, favicon+OG-превью (статик PNG, т.к. ImageResponse не тянет кириллицу на cfru), техножаргон LLM→ИИ, скелетоны загрузки, онбординг с двумя продуктами, опечатка «Полигon»
Задеплоено, проверено скринами. Навигация читаемая, значок и OG на месте, «Проверка сайтов» вместо «Web QA».
feature
Фаза 3.1: компиляция удачных сценариев агента в Playwright-код (бесплатный регресс)
lib/webqa/compile.mjs + /api/webqa/runs/:id/spec (скачивание .spec.ts). Агент теперь пишет в трейс текст элемента → локаторы getByText/getByPlaceholder. Проверено: код запускаемый, для новых прогонов реальные локаторы (compiled-AI: ИИ нашёл путь раз, дальше детерминированный код).
feature
Фаза 3.2: сравнение двух прогонов (регресс — стало лучше/хуже)
/api/webqa/runs/:id/compare матчит находки по тип+страница vs предыдущий завершённый прогон того же режима. Блок «Сравнение с прошлым прогоном» в отчёте (ушло/новых/осталось). Проверено вживую: 29 vs 30 → починено 1, новых 0, осталось 23 (корректно поймал ушедший click-error).
feature
Фаза 3.3: W3 MCP-сервер Полигона (register/run/status/report)
MCP-сервер (JSON-RPC 2.0 поверх HTTP) /api/mcp: initialize/tools/list/tools/call, авторизация Bearer pol_-ключами (модель ApiKey, секрет только хэшем). 5 инструментов: list/add project, start_run, run_status, get_report. UI /dashboard/settings: генерация ключей + инструкция claude mcp add. Проверено сквозняком: полный цикл add→start→status(done)→report через MCP, без ключа 401. Внешний агент (Claude Code/Cursor) управляет Web QA целиком.
feature
готовS10 · SaaS-готовность для клиентов19/19

Цель: Довести до уверенного SaaS: витрина под оба продукта, юр-страницы, самотестирование, фиксы найденного.

Прод-фикс аудитора: ложные наезды от inline-элементов (Полигон нашёл сам в dogfood)
audit.mjs: наезды считаем только между блочными детьми (display!=inline). Убирает ложные срабатывания на нормальном тексте у всех клиентов.
feature
Лендинг: блок «Проверка сайтов» (второй продукт) + фикс overflow-x шапки на мобиле
Секция Web QA с 4 карточками+CTA, ссылка в навигации, футер под 2 продукта. Overflow iPhone SE 405→377px (медиа-запрос шапки). Задеплоено, проверено скрином.
feature
Страница политики конфиденциальности (152-ФЗ, для сбора контактов)
/policy на статике cfru, ссылка в футере. Покрывает сбор данных, хранение (хэш+шифрование), права, cookie.
feature
Диалоговое направление: сравнение прогонов + MCP-live-агент + red-team + async — доводка
Async-движок прогонов (run-worker.ts через tsx, прогресс-поллинг, до 500 сценариев без таймаута) — валидирован живым прогоном (1₽). Red-team режим (все сценарии враждебные т3-4) — валидирован (мошенник/торопыга т4). Сравнение диалог-прогонов (/api/runs/:id/compare по готовности+кластерам) — валидировано (25→75, кластеры ушли). ИИ-авитолог ops-пресет добавлен (+ директолог/аналитик). Остаётся MCP-live-агент (сейчас HTTP) — нужен MCP-агент для валидации.
feature
Скилл feature-tester → тонкий пульт к Полигону
SKILL.md: для web QA гонит прогон в Полигоне (API/MCP), забирает отчёт; Playwright — фолбэк. Инструкции по авторизованной зоне, сравнению, платным режимам.
feature
Самотестирование: внешнее (страницы) + внутреннее (регистрация+ЛК агентом)
Внешний: перепрогон ai-poligon.ru — ложные наезды ушли (фикс аудитора подтверждён), политика в обходе, overflow 320px добит. Внутренний: свежий аккаунт selftest, Web QA заходит в ЛК под ним — вскрыл баг автологина (клик до гидратации SPA не сабмитит), ПОЧИНЕН (гидратация+Enter-фолбэк), перегон вглубь ЛК.
feature
Async-движок прогонов (тысячи сценариев)
Валидировано живым/demo прогоном на проде.
feature
Red-team режим
Валидировано живым/demo прогоном на проде.
feature
Сравнение диалог-прогонов
Валидировано живым/demo прогоном на проде.
feature
ИИ-авитолог ops-песочница
Валидировано живым/demo прогоном на проде.
feature
Прод-фикс аудитора: ложные наезды inline
Ночная сессия: сделано и проверено на проде.
feature
Async-движок (тысячи сценариев)
Ночная сессия: сделано и проверено на проде.
feature
Фикс автологина для SPA-входов
Ночная сессия: сделано и проверено на проде.
feature
Лендинг: секция Web QA + overflow 320/375
Ночная сессия: сделано и проверено на проде.
feature
Политика конфиденциальности
Ночная сессия: сделано и проверено на проде.
feature
Фикс: React #418 hydration на /dashboard/settings
window.location в mcpUrl → useState+useEffect. Проверено: ошибка ушла.
feature
Адаптив ЛК под мобилу (overflow-x webqa/settings/формы)
Сайдбар→горизонтальная полоса на мобиле (навигация не пропадает), pre/код переносятся, формы/строки сжимаются. Все страницы ЛК влезают в 375px (было webqa +420, settings +395). Проверено скрином + measurement. Грабля: лишний scp создал файл-мусор → упала сборка, убрано.
feature
MCP-live-агент: прогон агента, подключённого по MCP
askAgentMcp (SDK-клиент: connect→listTools→выбор chat-инструмента по имени→callTool→извлечь текст). Снято ограничение только-HTTP. Построен свой тест-MCP-агент (SDK server, Streamable HTTP, инструмент respond→avito-shim). Валидировано живым прогоном: движок дозвонился по MCP, провёл 4 диалога через respond, судья оценил (1р). Транскрипт с реальными ответами агента.
feature
Функциональный смоук: агент→роль→прогон→отчёт под свежим аккаунтом
probe дозвонился (ответ агента), demo-прогон 17 диалогов/готовность 59% с разбором. Не только рендер — реальная работа.
feature
готовS11 · Взрослый SaaS · Фаза 1 — доверие и безопасность6/6

Цель: Убрать риск навредить клиенту и ложные срабатывания: безопасный фаззер, надёжный судья, крепкий коннектор, свой вход.

Безопасный фаззер: read-only по умолчанию, стоп на разрушающих действиях (RU+EN), не сабмитить формы, тумблер safe-mode
Безопасный фаззер: сетевой read-only guard (POST/PUT/DELETE блок при аккаунте), DANGER RU+EN, не сабмитит формы. GET200/POST-blocked PASS.
feature
Надёжный судья: сильная модель опцией + перекрёстная проверка вердикта (голосование) + резать ложные срабатывания
Диалог-судья: голосование 2/3 на провалах (self-consistency t>0), прошёл не оспариваем; кросс-вендор судья через env. 2 сценария FAIL подтверждены большинством.
feature
Калибровка судьи: разметка выборки, метрика согласия, видно точность
Калибровка судьи: панель на прогоне — человеческая сверка ✓/мимо (% согласия, golden set в localStorage) + self-consistency health-check (пересуд 3×, API /judge-health, cost-gate). Валидировано на реальном прогоне (100%, 0.10р).
feature
Точность vision-судьи: проверочный проход против ложных багов
Vision verification-pass: скептик-рецензент перепроверяет находки по скрину, отсёк ~33% ложных, помечает verified. Валидировано на реальных скринах.
feature
Крепкий коннектор агента: маппинг ответа, авторизация, состояние сессии, диагностика подключения
Коннектор HTTP+MCP: probe, гибкий маппинг ответа, askAgentMcp (выбор chat-инструмента), сессия во все контексты. Работает live.
feature
«Свой вход» Web QA: импорт готовой сессии (cookies/storageState) для SSO/2FA-зон
Свой вход: импорт storageState (SSO/2FA) — шифрование AES-GCM, инъекция во все контексты, кука доставлена. Валидировано.
feature
готовS12 · Взрослый SaaS · Фаза 2 — реальное покрытие4/4

Цель: Тестировать реальное приложение и реальные действия агента.

Умный обход SPA: карта роутов через агент-исследователя (клики навигации) + приём sitemap/списка страниц
SPA-обход завершён: sitemap.xml+index + pushState-клики по меню (nav/header, ловим смену URL, возврат). Краулер захарденен до read-only (мутации блокируются). Regression PASS на реальном сайте.
feature
Настоящая ops-песочница: агенту фейковые инструменты + состояние мира, ловим сжёг-бюджет/выдумал-цифру по факту
ops-песочница AdsWorld: детерминир. состояние+фейк-тулы+инварианты (budget_overspend, hallucinated_number по provenance, paused_live, bid-hike, broken-data). 8/8 детекторов + E2E tool-loop PASS. Вердикт по факту, без LLM.
feature
User-simulator для ops (многошаговое взаимодействие в мире)
User-simulator для ops: агент зовёт confirm_with_client → отвечает смоделированный клиент (одобряет/отказывает по позиции сценария), clientConfirmed динамический (dual-control τ²-bench). Валидировано: клиент отказал в превышении бюджета, агент уважил.
feature
Персоны из логов клиента (Sim2Real) — довести и упростить загрузку
Лог-персоны Sim2Real: добавлена загрузка файла (.txt/.csv/.json, парсинг JSON-выгрузок) поверх ручной вставки. Извлечение типажей + прогон уже работали.
feature
готовS13 · Взрослый SaaS · Фаза 3 — вид и стабильность4/4

Цель: Чтобы выглядело и работало как взрослый SaaS.

Клиентский отчёт: PDF/расшаренная ссылка, exec-summary, severity, скрины, шаги повтора
Клиентский отчёт /report/webqa/[id]: OWASP/PTES (exec-summary/severity/repro/чем грозит/рекомендация/скрины/методология), печать в PDF, светлая тема. Рендер валидирован.
feature
Управление прогонами: поиск, фильтры, организация по проектам, история
Управление прогонами: поиск + фильтры (статус/режим/проект) + история с датами — и Web QA, и диалоговые прогоны. Валидировано рендером.
feature
Стабильность: ретраи, обработка rate-limit LLM, все пути ошибок, без падений
Стабильность: ретраи LLM (chat+vision) на 429/5xx/таймаут (3 попытки, бэкофф). Ошибки агента/сценария ловятся пер-сценарно (не роняют прогон).
feature
Онбординг нового клиента + ревью мультитенантной изоляции + реальные лимиты/тарифы
Онбординг (2 карточки+next-step на хоуме) + страница Тарифы (Free/Starter/Business/Agency + использование, без фейк-чекаута) + аудит мультитенантной изоляции: все data-роуты фильтруют orgId, [id]-роуты через findFirst — IDOR нет.
feature
В РАБОТЕS14 · Backlog — по желанию (после взрослого SaaS)2/4

Цель: Необязательные улучшения, отложены осознанно. Брать по мере надобности.

Серверный golden-set калибровки судьи (вместо localStorage) + метрика kappa/α
Сейчас отметки согласия хранятся в браузере. Сделать серверное хранение размеченных вердиктов + расчёт Cohen kappa/Krippendorff alpha по орге.
LIVE: POLIGON_JUDGE_PANEL=openai/gpt-4o-mini,meta-llama/llama-3.3-70b-instruct,mistralai/mistral-small (кросс-вендор PoLL активен). Golden-set: Finding.humanVerdict + POST /api/runs/[id]/label + JudgeCalibration на сервере.
feature
Кросс-вендорная панель судей (PoLL)
Судить панелью из 2-3 моделей РАЗНЫХ провайдеров (Claude+GPT+open-weight), агрегация голосов — надёжнее и дешевле, снимает self-preference.
LIVE: POLIGON_JUDGE_PANEL=openai/gpt-4o-mini,meta-llama/llama-3.3-70b-instruct,mistralai/mistral-small (кросс-вендор PoLL активен). Golden-set: Finding.humanVerdict + POST /api/runs/[id]/label + JudgeCalibration на сервере.
feature
Автоплатёж картой (ЮKassa) вместо заявки
Сейчас тариф включается по mailto-заявке. Подключить эквайринг и自оматическую смену плана.
feature
Self-hosted судья + масштаб сервера
Свой инференс-судья для приватных данных клиента и вынос прогонов на более мощный сервер/очередь. Отложено пользователем.
feature
готовS15 · Прод · Админка (супер-админ)7/7

Цель: Полное понимание и управление: клиенты, расходы, агенты, аналитика, вход в аккаунт клиента.

Роль/гард super-admin: скрытый раздел /admin только для нас (не виден клиентам)
lib/admin.ts requireAdmin (User.isAdmin) + nginx ^~ /admin. Не-админ -> redirect /login (307). Аккаунт admin@ai-poligon.ru.
feature
Клиенты: список организаций-кабинетов + карточка (контакты, дата, план, активность)
/admin/clients (тариф, юзеры, агенты, прогоны, COGS, активность) + карточка /admin/clients/[id] (контакты, агенты с probe, прогоны, проекты). LIVE.
feature
Расходы: учёт LLM-трат по клиенту и по продукту, за период, маржа, топ-транжиры
COGS = sum(Run.costRub+WebQaRun.costRub) по клиенту и суммарно; MRR по Org.plan; платящих. Обзор + per-client. groupBy orgId.
feature
Аналитика: прогоны/активность/конверсия, что работает и что нет
Обзор /admin: клиенты/платящие/MRR/COGS/юзеры/агенты/прогоны + лента последней активности.
feature
Управление агентами клиента: просмотр подключений и их состояния
В карточке клиента список агентов с транспортом/endpoint и статусом probe (на связи/ошибка/не проверен).
feature
Вход в аккаунт клиента (impersonation) с аудитом — посмотреть, что у него не так
Impersonation: /api/admin/impersonate -> подписанный cookie poligon_imp + сессия клиента + AdminAudit. Баннер Режим просмотра клиента + выход. Провалидировано сквозняком.
feature
Обзор админки: ключевые метрики бизнеса на одном экране
/admin — ключевые метрики бизнеса на одном экране (плитки + активность).
feature
готовS16 · Прод · Поддержка5/5

Цель: Клиент пишет из кабинета, обращение падает в админку и в Telegram (Лия), отвечаем из админки.

Модель обращений/сообщений (клиент <-> мы), статусы открыто/в работе/закрыто
SupportThread+SupportMessage (одна ветка/орг), статусы open/pending/closed, unreadForStaff/User.
feature
Виджет Написать в поддержку в кабинете клиента
/dashboard/support — чат-виджет SupportChat (шлёт/поллит /api/support/*), в сайдбаре Аккаунт->Поддержка.
feature
Инбокс поддержки в админке + ответ клиенту
/admin/support список веток + /admin/support/[id] переписка + ответ. Бейдж новое. Провалидировано сквозняком.
feature
Пуш нового обращения в Telegram (Лия-бот)
notifyStaff() Telegram sendMessage со ссылкой на ветку — включается при SUPPORT_TG_TOKEN+SUPPORT_TG_CHAT (Лия). Код готов, ждёт creds.
feature
Уведомление клиента об ответе (в кабинете/на email)
Ответ виден клиенту в его чате /dashboard/support (unreadForUser). Email-уведомление опционально позже.
feature
готовS17 · Прод · Юридическое, реквизиты, тарифы6/6

Цель: Легально принимать деньги: политики, оферта, согласие ПДн, реквизиты, финальные тарифы.

Реквизиты (ИП/ООО, ИНН/ОГРН, банк) с 24контентзавод.ру в конфиг
lib/requisites.ts — ИП Шамрай/ИНН/Точка/адрес/email из КЗ. ОГРНИП пустой (нет нигде) — рендерится по наличию, ждёт от владельца.
feature
Политика конфиденциальности 152-ФЗ (доработать /policy)
/legal/privacy — 152-ФЗ (данные/цели/основания/cookie/третьи лица/защита/права), из реквизитов. LIVE 200.
feature
Публичная оферта / условия использования
/legal/oferta — предмет/тарифы(из lib/plans)/оплата Точкой/ответственность/реквизиты. LIVE 200.
feature
Согласие на обработку ПДн + чекбокс при регистрации
/legal/consent + чекбокс в регистрации (кнопка заблокирована без галки). LIVE, провалидировано.
feature
Cookie-consent баннер
CookieConsent баннер в root-layout (localStorage). LIVE, виден на регистрации.
feature
Финализировать тарифы (числа, лимиты) + страница
Согласованы Free/9900/29000/79000, лимиты 1500/5000/20000. lib/plans.ts единая точка; billing+оферта читают оттуда. Overage 2р.
feature
готовS18 · Прод · Оплата через Точку + счета5/5

Цель: Выставление счетов юрлицам через банк Точка (по образцу Контент Завода), активация тарифа по оплате.

Интеграция Точка-банк: выставление счёта (по коду Контент Завода)
lib/tochka/client.ts (копия КЗ, тот же ИП): create/status/pdf/email/delete. Живой тест create->waiting->PDF(41КБ,валидный)->delete PASS.
feature
Счёт из выбора тарифа (реквизиты плательщика, позиция, сумма)
InvoiceButton-модалка в тарифах: ООО/ИП + ИНН(10/12) + наименование -> /api/billing/tochka/invoice -> PDF /invoice/[id]/pdf (прокси, токен на сервере).
feature
Статус оплаты / вебхук, квитанция/акт
getInvoiceStatus (waiting/paid/expired); PDF-счёт как квитанция; крон опрашивает.
feature
Платежи и счета в админке
/admin/invoices: все счета (клиент/тариф/сумма/плательщик/статус/активирован), суммы оплачено. В навигации.
feature
Автоактивация плана после оплаты
Крон /api/billing/tochka/activate (секрет x-cron-secret, crontab */5) -> при payment_paid ставит Org.plan + пуш стаффу.
feature
готовS19 · Прод · Блог + SEO/GEO5/5

Цель: Раздел блог под SEO/GEO, техническое SEO сайта, Метрика+Вебмастер, привести лендинг в порядок.

Блог: модель + роуты /blog, /blog/[slug] + админ-редактор
БД BlogPost + публичный /blog + /blog/[slug] (generateMetadata + JSON-LD BlogPosting/Breadcrumb) + админ /admin/blog (список/редактор/создать/публиковать/удалить). nginx ^~ /blog.
feature
SEO-инфра: sitemap.xml, robots.txt, canonical, meta, OG, JSON-LD
app/robots.ts (allow ИИ-ботов, disallow dashboard/api/admin) + app/sitemap.ts (динамич., со статьями) + canonical/OG/meta на страницах + JSON-LD Organization/WebSite/SoftwareApplication на лендинге.
feature
GEO: FAQ, факты, сравнения, llms.txt — цитируемость ИИ-поисками
llms.txt в корне (факты/тарифы/приватность для ИИ-поисковиков) + JSON-LD с offers + фактические формулировки.
feature
Метрика + Вебмастер (подключить когда придут счётчики)
Метрика 111432976 (лендинг+кабинет) + Вебмастер (файл yandex_...html). Логотип+favicon+OG кастомные (эмблема Kie). [19a]
feature
SEO-полировка лендинга + первые 3-5 статей ниши
Лендинг: кастомный логотип-эмблема, OG-картинка, мета/OG, JSON-LD. 2 стартовые статьи опубликованы и в sitemap.
feature
В РАБОТЕS20 · Прод · Чеклист качества + backlog5/7

Цель: Финальная перепроверка, надёжность судьи (backlog), мониторинг, бэкапы.

Кросс-вендорная панель судей (backlog: PoLL, разные провайдеры)
LIVE: POLIGON_JUDGE_PANEL=openai/gpt-4o-mini,meta-llama/llama-3.3-70b-instruct,mistralai/mistral-small (кросс-вендор PoLL активен). Golden-set: Finding.humanVerdict + POST /api/runs/[id]/label + JudgeCalibration на сервере.
feature
Серверный golden-set калибровки судьи (backlog, вместо localStorage) + kappa
LIVE: POLIGON_JUDGE_PANEL=openai/gpt-4o-mini,meta-llama/llama-3.3-70b-instruct,mistralai/mistral-small (кросс-вендор PoLL активен). Golden-set: Finding.humanVerdict + POST /api/runs/[id]/label + JudgeCalibration на сервере.
feature
Полная перепроверка всех сценариев продукта (сквозной QA)
Сквозной QA: 16 публичных роутов 200, все закрытые гейтятся (dashboard/admin 307, API 401/403). Процесс здоров.
feature
Мониторинг ошибок + автобэкап SQLite
Автобэкап SQLite (backup-db.sh, крон 4:00, .backup+gzip, храним 14) + pm2-logrotate (20M/7) + pm2 auto-restart + автофейл зависших прогонов >30мин.
feature
Финал по лимитам/rate-limit/нагрузке
feature
SEO Контент Завод подключён (статьи по ключам + новости из RSS)
aipoligon-профиль в bo-content-machine (API-ветка через ingest, webp) + bo-seo-team (Wordstat). Первая статья и новость LIVE. Кроны: статья 13:10 ежедневно, новости Пн/Чт 15:10. Рерайт конкурентов отложен (нет SERP).
feature
Сброс пароля + email (SMTP)
Отложено до создания ящика no-reply@ai-poligon.ru на timeweb (сейчас есть только no-reply@24contentzavod.ru — чужой домен, спам-риск). SMTP smtp.timeweb.ru:465 с cfru достижим. Нужно: nodemailer + поля resetToken/exp у User + /forgot и /reset страницы+API. nodemailer НЕ установлен.
feature

Ворклог (места остановки)

09.08.2026, 16:17:20 · · claude

Довёл Web QA до рабочего состояния: (1) vision-судья реально покрывает кабинет — прогон под тест-аккаунтом обошёл /dashboard + agents/roles/runs/issues (maxPages>=20 для авторизованных + приоритет ЛК-сидов в краулере); (2) откалибровал vision — был шум (~40 находок, слипся/близко/не центрирован), переписал PROMPT+VERIFY_PROMPT на только явные поломки, проверил перепрогоном шотов: 14 придирок→1 по-делу; (3) починил реальное — cookie-баннер (контраст/отступы/воздух), выровнял пляшущую форму прогона. visionShots считается.

Сброс пароля ждёт ящик. Можно поднять качество судьи ещё (модель сильнее gpt-4o-mini) если понадобится.

09.08.2026, 15:43:20 · · claude

Добил бэклог: enforcement лимитов на vision-скрины (/api/webqa/runs) и проекты (/api/agents + /api/webqa/projects) — модель подписка+лимиты теперь enforce-ится полностью (диалоги+vision+проекты, 402 при исчерпании). Докрутка тестера: контент-проверки (техтекст/undefined-картинка/дубли), чек-лист vision-судьи, засев входа в ЛК в краулер + приоритет ЛК-сидов (dashboard теперь обходится). Подсказка у поля Инструменты. Фиксы UI: нечитаемые кнопки-переключатели, пляшущая форма прогона, отдельная аватарка Заблуждающегося.

Сброс пароля ждёт ящик no-reply@ai-poligon.ru. Можно поднять дефолт maxPages для глубины ЛК-скана.

09.08.2026, 14:26:02 · · claude

Внутренний QA под тест-аккаунтом: рега/кабинет/все разделы/Web QA сквозняком/диалоговый прогон — работает (бот 17% готовности, персоны поймали ошибки). Модель биллинга: ПОДПИСКА+лимиты. Убрал клиентские ₽ per-прогон (тайл Потрачено, Стоимость в отчёте, кост-гейт→диалоги). Виджет остатка лимитов (lib/usage.ts + UsagePanel) на Обзоре и Тарифах. visionShots колонка+счётчик. Enforcement live-диалогов в /api/runs (Free=0→402). Починил пустую аватарку Обычного клиента.

Enforcement vision-скринов и лимита проектов; подсказка по англ. инструментам; дубль аватарки misinformed; сброс пароля (ждёт ящик).

09.08.2026, 13:20:40 · · claude

Web QA прогон по себе: нашёл 18, починил major(overflow-x на статье — word-break), minor(clip в hero лендинга — grid min-width:0 + перенос кнопок), чекбокс регистрации 18px. Обложки 2 старым статьям (webp) — все 5 постов с обложками. Рерайт через RSS для myvision+leadforge (1/день, файлово) с глобальным дедупом источников по 3 сайтам; тематические фиды+фильтры подогнаны.

Сброс пароля отложен до ящика no-reply@ai-poligon.ru (задача заведена). Остались косметич. тап-таргеты в подвале legal.

09.08.2026, 10:53:50 · · claude

Подключил SEO Контент Завод к ai-poligon.ru: статьи по ключам (Wordstat) и новости из реального RSS (Habr/the-decoder/HF) через ingest в Next-приложение, картинки в webp (292КБ вместо 4МБ/стр), кроны. Активировал кросс-вендор судью (OpenAI+Meta+Mistral) и серверный golden-set. Починил хедер блога и legal: эмблема как на лендинге (был favicon.svg).

Прогнать Web QA по себе; обложки 2 старым статьям; сброс пароля + SMTP; решить источник для рерайта топ-конкурентов (нет SERP).

09.08.2026, 06:04:47 · · claude

Полигон: закрыт ВЕСЬ роадмап взрослого SaaS (спринты 11/12/13). Добавлено и провалидировано на проде: (1) управление прогонами — поиск/фильтры/история для webqa и диалогов; (2) страница Тарифы + аудит мультитенантной изоляции (IDOR нет, все роуты по orgId); (3) user-simulator для ops (клиент одобряет/отказывает рискованные действия, dual-control); (4) SPA-обход pushState-кликами + краулер захарденен read-only; (5) лог-персоны Sim2Real — загрузка файла логов; (6) калибровка судьи — человеческая сверка %согласия + self-consistency health-check (пересуд 3×). Расход платных прогонов ~8р из 50р.

Роадмап взрослого SaaS выполнен целиком. Дальше по желанию: серверный golden-set (сейчас localStorage), кросс-вендорная панель судей, автоплатёж по картам вместо заявки, self-hosted судья/масштаб сервера (были отложены).

08.08.2026, 05:56:56 · · claude

Взрослый SaaS Полигон, автономная сессия. ФАЗА 1 закрыта: сетевой read-only guard (не навреди данным клиента), безопасный фаззер, импорт сессии SSO/2FA, надёжный судья (vision verification-pass -33% ложных + голосование 2/3 в диалоге). ФАЗА 2: настоящая ops-песочница AdsWorld (детерминир. мир+фейк-тулы+инварианты budget_overspend/hallucinated_number-по-provenance/paused_live/bid-hike/broken-data, 8/8 детекторов+E2E PASS, вердикт по факту а не LLM) + sitemap-обход краулера. ФАЗА 3: клиентский PDF-отчёт /report/webqa (OWASP/PTES: exec-summary/severity/repro/рекомендации/скрины) + ретраи LLM на 429/5xx. Всё задеплоено на прод ai-poligon.ru и провалидировано. Расход платных прогонов ~9р из 50р.

Роадмап (не сегодня): pushState-клики для SPA, user-simulator для ops (многошаг), лог-персоны Sim2Real, управление прогонами (поиск/фильтры), онбординг+тарифы+ревью мультитенантности, калибровка судьи (golden set/kappa) + self-consistency health-check.

08.08.2026, 04:43:37 · SaaS-готовность (спринт 10) ЗАКРЫТ · claude

Спринт SaaS-готовности закрыт. Адаптив ЛК под мобилу (сайдбар→гориз.полоса, overflow добит везде). MCP-live-агент построен И протестирован своим тест-MCP-агентом (живой прогон через инструмент respond, судья оценил). Функционал подтверждён работой (probe+demo+live+webqa+red-team+MCP). React #418 на settings починен. Полигон = универсальная песочница ЛЮБЫХ агентов (диалог+ops: директолог/авитолог/аналитик), тысячи сценариев (async до 500). Расход валидации ~4р из 50р.

Готово к пилотным клиентам на обоих направлениях. Остаётся по желанию: масштабные платные прогоны (по да), контент блога.

07.08.2026, 18:57:50 · SaaS-готовность (спринт 10) · claude

Ночь: универсальная песочница агентов доведена (async-движок до 500 сценариев валидирован живьём, red-team, сравнение диалогов, ИИ-авитолог). SaaS: лендинг с Web QA + политика + feature-tester пульт. Dogfood Полигоном себя нашёл и починил 3 бага фичи (аудитор inline-наезды, автологин до гидратации, краулер без сессии) + React #418 на settings. Внутр. самотест обошёл все 10 страниц ЛК под свежим аккаунтом. Расход валидации ~2р из 50р.

ГЛАВНОЕ по самотесту: ЛК не адаптивен под мобилу (overflow-x webqa +420px, settings +395px) — отдельная задача, десктоп-первый кабинет. MCP-live-агент (нужен тест-агент). Масштабные платные прогоны по да.

07.08.2026, 18:40:47 · SaaS-готовность (спринт 10) · claude

Диалоговое/агентское направление доведено: async-движок (тысячи сценариев без таймаута, tsx-воркер) валидирован живым прогоном; red-team режим (все враждебные) валидирован; сравнение диалог-прогонов (готовность+кластеры) валидировано; ИИ-авитолог ops-песочница добавлена к директологу/аналитику. Универсальная песочница для ЛЮБЫХ агентов (диалоговые + ops). Расход валидации ~2₽ из 50₽ бюджета.

MCP-live-агент (нужен тестовый MCP-агент). Скилл feature-tester → пульт к Полигону. Самотестирование (внешнее+внутреннее). Блог опционально.

07.08.2026, 15:57:16 · Качество (спринт 9) · claude

Спринт качества ЗАКРЫТ. Фаза 3 добита полностью: 3.1 компиляция сценариев в Playwright-код, 3.2 сравнение прогонов (регресс), 3.3 MCP-сервер Полигона (/api/mcp, JSON-RPC, ключи per-org, 5 инструментов Web QA, UI подключения). Всё задеплоено на ai-poligon.ru и проверено сквозняком. Полигон доведён до крутого качества: безопасность закрыта, UX отполирован, три новые фичи. Тестовый мусор с демо-аккаунта почищен.

Продукт готов к показу/тестированию. Опционально позже: MCP-агенты в диалоговом направлении live (сейчас только HTTP), Content-Disposition на выгрузках датасета, платная валидация бюджет-режима генераций (ждёт решения владельца). Пользователь сам протестирует Полигон Полигоном.

07.08.2026, 10:38:05 · Качество (спринт 9) · claude

Инвентаризация продукта (Explore-агент) + Фазы 1-2 доведения до качества. Фаза 1 безопасность: закрыта реальная IDOR-утечка скринов Web QA (были в public/ по угадываемому URL, включая скрины чужих закрытых ЛК) — перенесены за авторизованный роут с проверкой orgId, проверено сквозняком; сессии со сроком+обязательным секретом; пароли аккаунтов зашифрованы AES-GCM; границы ошибок; seed.mjs; включены проверки типов (была 1 ошибка, починена). Фаза 2 UX: навигация в 2 группы, «Данные» из заглушки в рабочий список, дубль блока аккаунтов убран, favicon+OG, техножаргон убран, скелетоны, онбординг с двумя продуктами. Всё задеплоено на ai-poligon.ru и проверено скринами.

Фаза 3 (фичи): компиляция сценариев в Playwright-код, сравнение прогонов (регресс), W3 MCP-сервер. Мелочи из инвентаризации: MCP-агенты live (сейчас только HTTP), выгрузки датасета с Content-Disposition.

07.08.2026, 05:41:42 · W2 Web QA (спринт 7) · claude

Фича по запросу владельца: тестовые аккаунты на проекте (несколько ролей), автологин перед прогоном (вся матрица и агент ходят в ЛК), мягкий бюджет продукта для агента (генерации до N руб по ценам UI, оплату не трогать). Валидировано на КЗ: аккаунт new-client (приветственные 100 руб), логин прошел, агент гулял по кабинету. Возможная находка: переключатель Ежемесячно/Ежегодно на /pricing не сработал у агента 3 раза - проверить руками.

Ждет решения владельца: бюджет-валидация (агент генерит контент на 100 руб приветственного баланса КЗ = ~30-50 руб себестоимости Kie). Остаток W2: компиляция трейсов в код. W3: MCP.

07.08.2026, 05:03:29 · W2 Web QA (спринт 7) · claude

Агент-исполнитель сценариев построен и валидирован (beta): свой Node-агент вместо browser-use, сценарий формы заявки проходит end-to-end с реальным POST в LeadForge. 3 итерации отладки: goto-URL из любого поля JSON, escape/ретраи, разметка [В МОДАЛКЕ] (после неё прошёл денежный сценарий), scrollIntoView+force-клик (не перевалидирован). Ложный «баг формы /lp/zayavki» разобран вручную — форма живая, у агента были дубли кнопок. Персоны сгенерированы для myvisionagency.ru (5x5). Заведены проекты 24contentzavod.ru и 24leadforge.ru, запущены бесплатные базовые прогоны.

Остаток W2: компиляция удачных трейсов в Playwright-код (регресс ~0 руб). Перевалидировать click-fix и vision-промпт v2. Затем W3 (спринт 8): MCP-сервер, регресс-петля, feature-tester как пульт. Разобрать находки прогонов КЗ и LeadForge. Удалить 2 тестовых лида «Тест Полигон» из LeadForge.

07.08.2026, 04:14:34 · W2 Web QA (спринт 7) · claude

W2 наполовину готов: vision-судья скринов (валидирован живым прогоном, 5.58 руб; ловит реальное — склейка заголовков, бледные кнопки; промпт ужесточён после разбора мусорных вердиктов), генератор персон+сценариев по реальной карте сайта (валидирован, 0.05 руб), кост-гейт с калиброванной ценой. Инцидент: деплой во время прогона убил воркер — добавлен авто-провал зависших прогонов. Handoff по вёрстке обоих сайтов передан человеку (Downloads/FIX-verstka-myvision-sites.md).

Остаток W2: исполнение сценариев персон агентом (browser-use) + компиляция стабильных сценариев в Playwright-код (Playwright Agents). Затем W3: MCP-сервер, регресс-петля, подключение наших проектов. Перевалидировать vision-промпт v2 следующим платным прогоном.

06.08.2026, 08:45:23 · W1 Web QA (спринт 6) · claude

Запущено направление Web QA. Ресёрч OSS/рынка (5 веток, RESEARCH-LOG §6): берём Playwright + Playwright Agents + browser-use + reg-suit. Построен и задеплоен W1: краулер, матрица 8 устройств (Chromium+WebKit), layout-audit, фаззер, воркер, API, UI отчёта со скринами. Прод-валидация на myvision.su: 40 проверок, 21 реальная находка (горизонтальный скролл на iPhone/iPad/1366). Спринт 6 закрыт.

W2 (спринт 7): vision-судья скринов, персоны+сценарии, browser-use, компиляция сценариев в Playwright-код, cost-gate. Плюс: прогнать Web QA по остальным нашим сайтам; починить найденный overflow-x на myvision.su (ждёт решения человека).

26.07.2026, 20:06:27 · Спринт 4 · claude

Live-движок валидирован на реальном Авито-агенте (готовность 50%, реальные косяки, ~8р). Поправлены баги (бейдж/стоимость live). Построен МОАТ-кирпич: персоны из реальных логов клиента — вставляешь диалоги, LLM извлекает типажи, они кормят генерацию сценариев. Проверено: из 5 Авито-диалогов вытащил 5 реальных типажей.

Реальное подключение агента по MCP (не реплика промпта); калибровка судьи на человеке; async-очередь прогонов; фикс-луп (правка промпта из провалов).

26.07.2026, 14:09:40 · Спринт 4 · claude

Правка: демо было упрощённым. Написан НАСТОЯЩИЙ движок (LLM-генерация сценариев, многотуровый диалог с реальным вызовом агента, LLM-судья с проверками redFlags, учёт стоимости) + cost-gate preview + взрослые отчёты (готовность по уровням) + выгрузки датасет/CSV/JSON. Задеплоено на прод, демо и предпросмотр цены работают. Live ждёт OPENROUTER_KEY + валидирующий прогон за трачу.

Включить OPENROUTER_KEY, прогнать маленький валидирующий live-прогон (~2-15р), причесать промпты по результату. Затем сравнение прогонов, симулятор мира ops, очередь.

26.07.2026, 12:29:12 · Спринт 2 · claude

ЛК задеплоен в прод: https://ai-poligon.ru/login (и /register, /dashboard). nginx на том же домене: / = лендинг, пути приложения проксируются в Next (pm2 poligon-app :3210). Кнопки лендинга заведены в кабинет. Сквозной вход проверен (register ok, dashboard 200).

Live-режим прогона за cost-gate; реальный симулятор мира ops; сравнение прогонов.

26.07.2026, 12:13:44 · Спринт 4 · claude

Достроена УНИВЕРСАЛЬНАЯ механика: EnvironmentDefinition расширен (kind/world/redFlags/events), пресеты чат (поддержка/продажи) и ops (директолог/аналитик), demo-движок ветвится персона↔агент↔судья / событие↔агент↔судья, канвас и результаты обобщены. Прогон директолога ловит «выдумал цифру / сжёг бюджет». Всё в demo (без затрат), проверено скриншотами.

Live-режим (OpenRouter) за cost-gate. Сравнение прогонов (регресс). Реальный симулятор мира для ops (сейчас mock-эффекты). Причесать cooperative-персону.