План подготовки универсального TXT-промпта для внешней AR-страницы GIP VISION ## Краткое резюме Собираем один финальный промпт в формате plain text, который можно отправить любому человеку. Этот человек вставляет его в любую ИИ и получает минимальную веб-страницу: загрузка модели через API, получение one-time code, кнопка Открыть в GIP VISION, и обработка ограничений CORS. ## Что уже зафиксировано по фактам 1. В вашем фронте уже есть аналогичный flow: [quick-start.vue](c:\Users\shMarina\OneDrive\Рабочий стол\AVA\gip_group_superapp_vue\src\pages\gv\quick-start.vue). 2. Целевой endpoint для загрузки модели: POST /api/gip-vision/v1/session/by_plane/. 3. Схема API доступна в YAML: https://api-cpsk-superapp.gip.su/api/gip... 4. Ответ содержит поля deeplink, onetime_code, expires_at (тип SessionResponse). 5. Проверка 27 февраля 2026: CORS разрешён для https://gip-vision.pro, но не для произвольных origin (например, https://example.com). ## Важные API/интерфейсные требования для будущей страницы 1. Вход: файл .ifc | .glb | .usdz (multipart/form-data, поле model_file). 2. Опциональный заголовок: X-API-Key (если пользователь его имеет). 3. Выход на UI: one-time code, expires_at, deeplink. 4. Поведение открытия: попытка auto-open deeplink + явная кнопка открытия. 5. Fallback при CORS: режим через минимальный proxy (например, Cloudflare Worker) в том же финальном промпте. ## Детальный план создания итогового промпта 1. Зафиксировать формат результата: ИИ должна вернуть один файл index.html без фреймворков и сборки. 2. Встроить в промпт строгий API-контракт: base URL, endpoint, multipart, поля ответа. 3. Встроить в промпт требования к UX: дропзона/выбор файла, кнопка создания кода, блок результата, кнопка открытия GIP VISION. 4. Встроить в промпт логику deep link: window.location.href = deeplink по кнопке, авто-попытка после успешного ответа. 5. Встроить в промпт двухрежимную сетевую стратегию: 1. Режим A: прямой вызов API (если origin разрешён). 2. Режим B: вызов через proxy endpoint (если прямой вызов блокируется CORS). 6. Добавить в промпт обработку ошибок: пустой файл, неподдерживаемое расширение, 4xx/5xx, отсутствие onetime_code, CORS TypeError. 7. Добавить в промпт обязательный self-check блок: ИИ должна сама проверить, что страница действительно выводит код, expiry и deeplink-кнопку. 8. Подготовить финальный текст промпта в русском языке, максимально конкретный, без двусмысленностей, совместимый со “слабой” ИИ. ## Тест-кейсы и сценарии приемки (для страницы, которую сгенерирует ИИ) 1. Успешная загрузка валидного файла возвращает one-time code и отображает его на экране. 2. После успешного ответа отображается кнопка Открыть в GIP VISION. 3. При клике на кнопку выполняется попытка открытия gipvision://.... 4. Невалидный файл (расширение/размер/пустой) даёт понятную ошибку. 5. При CORS-блокировке пользователь получает явную инструкцию: перейти в proxy-режим. 6. В proxy-режиме страница получает тот же результат (onetime_code, expires_at, deeplink). ## Явные допущения и выбранные по умолчанию решения 1. Итоговый артефакт от меня: один готовый промпт в формате plain text. 2. Язык промпта: русский. 3. Базовый API URL: https://api-cpsk-superapp.gip.su. 4. Основной endpoint: только by_plane (достаточно для вашей цели “загрузить и открыть по коду”). 5. CORS-стратегия по умолчанию: двухрежимная (прямой вызов + proxy fallback), так как пользователь может быть на любом домене и без доступа к вашей инфраструктуре. 6. Навыки skill-creator и skill-installer не применяются, потому что задача не про создание/установку навыков Codex