01. Продуктовый blueprint
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Создай продуктовый blueprint для веб-приложения "ИИ-страна" на основе HTML+CSS+JS, строго опираясь только на подтвержденные кодом и метаданными факты, без выдуманных деталей.
**Что должна сделать downstream-модель:**
Сформировать подробный продуктовый blueprint, описывающий предметную область, целевые роли, ключевые пользовательские сценарии и внешний смысл продукта, на основе анализа предоставленного HTML-файла `landing.html`, README.md и описания прототипа. Blueprint должен быть самодостаточным, пригодным для прямого использования при реконструкции проекта и не содержать деталей, не подтверждённых исходным кодом.
**Подтвержденный кодом и метаданными контекст проекта:**
- Проект называется "ИИ-страна" (II-Навыки) — сервис для освоения базовых ИИ-навыков через короткие практические задания.
- Целевой стек реконструкции: HTML+CSS+JS (без использования Python, FastAPI, Docker и других технологий из исходного репозитория).
- В репозитории присутствует только статический HTML-файл `landing.html`, описывающий лендинг-приложение.
- Нет backend-логики, API, баз данных, авторизации, динамических форм или обработки пользовательских данных.
- Приложение не содержит интерактивных элементов, кроме навигации по якорям и кнопок, ведущих на внутренние секции.
- В `README.md` указаны маршруты `/` и `/health`, но в `landing.html` они не реализованы — это часть backend-приложения, не относящаяся к frontend-лендингу.
- В `context_file.txt` указано, что преподаватели должны стать "проводниками в мире ИИ", но в коде нет ни одного упоминания преподавателей, их ролей, интерфейсов или функций. Следовательно, эта идея не реализована в текущем коде и не должна быть включена в blueprint как часть текущего продукта.
- Актуальные задачи включают создание интерфейса задания по анализу текста, интеграцию ИИ-API и отображение обратной связи — но в текущем коде эти функции отсутствуют. Это будущие цели, но не реализованные факты.
- В `landing.html` реализованы следующие элементы:
- Заголовок: "ИИ-навыки для реальных задач"
- Три целевые роли: сотрудники, студенты, предприниматели
- Три ключевых преимущества: короткие задания, адаптация под пользователя, быстрый результат
- Четырёхшаговый процесс: выбор роли → решение задачи → получение фидбека → применение в работе
- Кнопки CTA: "Начать обучение", "Узнать больше"
- Навигация по якорям: #features, #personas, #how-it-works, #cta
- Визуальные иконки и цветовая схема, ориентированная на темную тему с акцентами на синий и зелёный цвета
- Никаких форм ввода, полей для текста, кнопок отправки или интерактивных элементов нет.
- Никаких ссылок на регистрацию, логин, профили или учетные записи нет.
- Никаких упоминаний ИИ-API, прокси, обработки текста или обратной связи в коде нет.
**Что именно нужно восстановить:**
Продуктовый blueprint, описывающий:
- Предметную область: обучение практическим ИИ-навыкам без теории, с фокусом на применение в реальной жизни
- Целевые роли: сотрудники, студенты, предприниматели
- Ключевые пользовательские сценарии:
1. Пользователь заходит на лендинг и видит призыв к действию
2. Пользователь просматривает преимущества сервиса
3. Пользователь выбирает свою роль (визуально, без интерактивного выбора)
4. Пользователь изучает, как работает сервис (4 шага)
5. Пользователь нажимает "Начать обучение" и переходит к CTA
- Внешний смысл продукта: снижение порога входа в ИИ через короткие, адаптированные под профессию задания, без технических знаний
- Визуальные и структурные особенности: темная тема, иконки, карточки с преимуществами, персонализированные блоки для каждой роли, пошаговая схема работы
**Подробные требования, контракты, маршруты, сущности, состояния, ограничения, поведение и связи между частями системы:**
- Продукт не является интерактивным приложением — это статический лендинг.
- Нет пользовательских сессий, авторизации, регистрации, профилей.
- Нет динамического контента, форм, API-вызовов, обработки данных.
- Все навигация — по якорям внутри одной страницы.
- Нет разделов для выполнения заданий, анализа текста или получения обратной связи — эти функции не реализованы и не должны быть включены в blueprint как часть текущего продукта.
- Никаких упоминаний преподавателей, их ролей или интерфейсов нет в коде — эта идея из дополнительного контекста не реализована и не должна быть включена.
- Никаких требований к производительности, безопасности, масштабируемости, доступности или совместимости с браузерами не указано в коде — эти аспекты не подтверждены и не должны быть выдуманы.
**Что запрещено выдумывать или менять:**
- Не добавлять интерактивные формы, поля ввода, кнопки отправки, API-вызовы, обработку текста, обратную связь от ИИ, регистрацию, профили, авторизацию, роли преподавателей, динамические страницы или любые элементы, не присутствующие в `landing.html`.
- Не интерпретировать "преподаватели 2.0" как часть текущего продукта — это идея из дополнительного контекста, не реализованная в коде.
- Не добавлять backend-логику, маршруты, серверные функции, базы данных, Docker, FastAPI или другие технологии из исходного репозитория — проект должен быть реконструирован на HTML+CSS+JS.
- Не добавлять сценарии, не подтверждённые кодом: например, "пользователь вводит текст и получает анализ" — такой функционал отсутствует.
- Не добавлять новые роли, преимущества, шаги или разделы, которых нет в `landing.html`.
**Инструкции по генерации кода:**
- Сгенерируй только текстовый продуктовый blueprint на русском языке.
- Не возвращай HTML, CSS, JS, JSON, списки файлов или код.
- Не используй markdown, заголовки, нумерацию, блоки кода.
- Пиши многострочно, с переносами строк, логическими абзацами и маркированными пунктами, если необходимо.
- Используй русский язык для всего текста, английский — только для названий технологий (HTML, CSS, JS).
- Не пиши "Blueprint:", "Описание:", "Требования:" и другие заголовки — просто начни с содержания.
**Формат результата downstream-модели:**
Чистый текст на русском языке, описывающий продуктовый blueprint, без заголовков, markdown, списков файлов, кода или инструкций.
**Критерии готовности и самопроверки:**
- Blueprint должен точно отражать только то, что присутствует в `landing.html` и `README.md`.
- Ни одна деталь не должна быть выдумана, интерпретирована или добавлена из-за дополнительных контекстов, если она не подтверждена кодом.
- Все упомянутые роли, сценарии, преимущества, шаги и визуальные элементы должны быть взяты напрямую из HTML.
- Никакие элементы, не присутствующие в коде (например, формы, API, преподаватели, динамические страницы), не должны быть включены.
- Текст должен быть подробным, самодостаточным и пригодным для использования при реконструкции проекта на HTML+CSS+JS.
02. Карта репозитория и план реализации
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Создай карту репозитория и план реализации для проекта "ИИ-страна" — сервиса, помогающего людям осваивать базовые ИИ-навыки через короткие практические задания, адаптированные под работу, учёбу и быт. Проект находится на стадии idea, и текущая задача — создать интерфейс задания по анализу текста, интегрировать обработку текста через ИИ-API с прокси и отображать обратную связь от ИИ с объяснением. Целевой стек реконструкции — HTML+CSS+JS, без использования Python, FastAPI или Docker.
---
**Что нужно восстановить:**
1. **Структура проекта**
Проект должен быть реализован полностью на стороне клиента с использованием только HTML, CSS и JavaScript.
Все файлы должны находиться в одной директории (или минимальной иерархии), без серверной логики.
Подтвержденные файлы из исходного репозитория:
- `landing.html` — главная страница с лендингом, описанием продукта, целевой аудиторией и призывом к действию.
- `main.py`, `requirements.txt`, `Dockerfile` — не должны быть включены, так как они относятся к серверной части на FastAPI, которая не требуется в целевом стеке.
В новом проекте должны быть созданы следующие файлы:
- `index.html` — главная страница, полностью заменяющая `landing.html`, но адаптированная под клиентскую реализацию.
- `styles.css` — стили, вынесенные из `landing.html`, с сохранением всех переменных, анимаций, адаптивности и визуального дизайна.
- `script.js` — JavaScript-логика для обработки пользовательского ввода, отправки текста на ИИ-API (через прокси), получения и отображения обратной связи.
2. **Роли слоёв и файлов**
- `index.html` — содержит структуру страницы: хедер, секцию с описанием, карточки для разных аудиторий, шаги работы, CTA и футер. Все ссылки должны быть якорными (`#features`, `#personas` и т.д.). Кнопка "Начать обучение" должна быть интерактивной и вызывать модальное окно или переход к форме задания.
- `styles.css` — должен содержать все CSS-переменные, стили компонентов (кнопки, карточки, иконки, сетка), адаптивность под мобильные устройства, эффекты при наведении и hover-стили. Должны быть сохранены все цвета, шрифты, тени, радиусы и переходы из оригинала.
- `script.js` — должен содержать логику:
- Открытие/закрытие модального окна с формой задания.
- Валидацию ввода (непустой текст).
- Отправку текста на внешний ИИ-API через прокси (например, `/api/analyze`) с использованием `fetch`.
- Обработку ответа и отображение результата в виде фидбека с объяснением.
- Обработку ошибок сети и валидации.
3. **Dependency-first план сборки**
Реализуй проект в следующем порядке:
- Сначала создай `styles.css` — скопируй и адаптируй все стили из `landing.html`, убрав `@media` и `@keyframes`, если они не используются, но сохранив все классы и переменные.
- Затем создай `index.html` — перенеси HTML-структуру из `landing.html`, заменив `main.py`-логику на клиентскую навигацию и добавь форму для задания по анализу текста (в модальном окне или отдельной секции).
- Наконец, создай `script.js` — реализуй логику обработки формы, отправки запроса и отображения результата.
4. **Что запрещено выдумывать или менять**
- Не добавляй серверную логику, Python, FastAPI, Docker, Uvicorn или любые backend-файлы.
- Не меняй названия классов, ID, структуру HTML, текстовые блоки, цвета, шрифты, иконки или поведение hover-эффектов.
- Не добавляй новые страницы, маршруты, API-эндпоинты или данные, которых нет в исходном `landing.html`.
- Не используй фреймворки (React, Vue, Alpine.js и т.п.) — только чистый HTML, CSS и JS.
- Не реализуй функционал, которого нет в исходном коде: например, авторизацию, базу данных, регистрацию, сохранение прогресса.
5. **Инструкции по генерации кода**
- Используй только стандартные теги HTML5, CSS3 и ES6+ JavaScript.
- Все стили должны быть вынесены в `styles.css`, а не в `style`-теги.
- Все скрипты должны быть в `script.js`, подключены через `<script src="script.js" defer></script>` в конце `body`.
- Используй `fetch` для HTTP-запросов к ИИ-API через прокси (например, `POST /api/analyze`).
- Реализуй обработку ошибок: если запрос не удался — покажи сообщение об ошибке.
- Реализуй валидацию: если поле пустое — покажи подсказку.
6. **Формат результата**
Downstream-модель должна сгенерировать три файла:
- `index.html` — полная клиентская версия лендинга с формой задания.
- `styles.css` — все стили из `landing.html`, перенесённые в отдельный файл.
- `script.js` — клиентская логика обработки формы и взаимодействия с API.
7. **Критерии готовности и самопроверки**
Проект считается готовым, если:
- Все визуальные элементы (цвета, шрифты, иконки, анимации) идентичны оригиналу.
- Все якорные ссылки работают корректно.
- Форма задания открывается по кнопке "Начать обучение".
- При отправке текста он отправляется на `/api/analyze` через `fetch`.
- Результат отображается с объяснением.
- Ошибки сети и валидации обрабатываются.
- Проект работает без сервера — можно открыть `index.html` в браузере напрямую.
- Нет следов Python, FastAPI, Docker или других backend-технологий.
8. **Режимы генерации и продолжение**
- Если проект помещается в один ответ — сгенерируй все три файла целиком.
- Если контекст переполнен — сгенерируй файлы по одному в батчах: сначала `styles.css`, затем `index.html`, затем `script.js`.
- При команде "продолжай" или "следующий батч" — продолжи с того места, где остановился.
- Если часть файлов уже сгенерирована — не повторяй их, а продолжи с следующего файла в порядке: `styles.css` → `index.html` → `script.js`.
- Если генерация была оборвана — начни с последнего незавершённого файла.
9. **Дополнительный контекст**
Учти, что в проекте должны быть "преподаватели 2.0" — люди, знающие, как работать с ИИ, и помогающие другим. Это должно быть отражено в тексте лендинга: например, в разделе "Как это работает" или в футере. Добавь фразу вроде: "Обучение ведут преподаватели 2.0 — эксперты, которые сами применяют ИИ в работе".
10. **Проверка соответствия целевому стеку**
Убедись, что:
- Нет ни одной строки Python.
- Нет `main.py`, `requirements.txt`, `Dockerfile`.
- Все функции реализованы на клиенте.
- Проект запускается просто открытием `index.html` в браузере.
- Используются только HTML, CSS и JS.
Готово.
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Создай backend-сервис на основе FastAPI, реализующий API для обработки текстовых заданий и предоставления обратной связи от ИИ. Проект должен быть адаптирован под целевой стек HTML+CSS+JS, но backend должен оставаться независимым и предоставлять JSON-интерфейс для интеграции с фронтендом.
---
**Что делать:**
Реализуй backend-сервис, который:
- Предоставляет API для создания, получения и обработки текстовых заданий;
- Интегрируется с внешним ИИ-API через прокси-сервис (без прямого использования ИИ-моделей внутри backend-логики);
- Возвращает структурированную обратную связь с объяснением от ИИ;
- Поддерживает базовые маршруты для управления заданиями и получения результатов.
---
**Подтвержденный контекст проекта:**
- Проект называется "ИИ-страна" — сервис для обучения ИИ-навыкам через практические задания.
- Текущий milestone: idea.
- Актуальные задачи:
- Создать интерфейс задания по анализу текста;
- Интегрировать обработку текста через ИИ-API с прокси;
- Отображать обратную связь от ИИ с объяснением.
- В исходном коде уже реализован базовый FastAPI-сервер, возвращающий HTML-страницу `/`.
- Backend написан на Python с использованием FastAPI, работает на Uvicorn.
- В requirements.txt указаны fastapi и uvicorn.
- Dockerfile настроен для запуска приложения через uvicorn.
- В README описаны маршруты: `GET /` и `GET /health`.
---
**Что нужно восстановить:**
Backend-сервис должен включать:
- Маршрут `POST /api/assignments` — для создания нового текстового задания. Тело запроса: `{ "text": "строка текста", "role": "employee|student|entrepreneur" }`. Ответ: `{ "id": "uuid", "status": "pending", "created_at": "ISO8601" }`.
- Маршрут `GET /api/assignments/{id}` — для получения статуса и результата задания. Если задание ещё обрабатывается — возвращается `{ "status": "processing" }`. Если готово — `{ "status": "completed", "result": { "feedback": "текст обратной связи", "explanation": "объяснение от ИИ", "suggestions": ["совет 1", "совет 2"] } }`.
- Маршрут `GET /api/health` — возвращает `{ "status": "ok" }` (уже есть в README).
- Логика обработки должна использовать внешний ИИ-API через прокси (например, вызов стороннего API через `httpx` или `requests`), но не хранить модели локально.
- Все ответы должны быть в формате JSON.
- Обработка ошибок: возвращать `404`, если задание не найдено; `422`, если входные данные некорректны.
---
**Требования к реализации:**
- Используй FastAPI как основной фреймворк.
- Реализуй модели данных через `pydantic.BaseModel`:
- `AssignmentCreate` — `text: str`, `role: Literal["employee", "student", "entrepreneur"]`.
- `AssignmentResponse` — `id: UUID`, `status: Literal["pending", "processing", "completed"]`, `created_at: datetime`.
- `AssignmentResult` — `feedback: str`, `explanation: str`, `suggestions: List[str]`.
- Храни задания в памяти (например, в `dict[str, dict]`) — для MVP не требуется база данных.
- Реализуй асинхронный вызов внешнего ИИ-API (например, через `httpx.AsyncClient`) для обработки текста.
- Добавь логирование через `logging` модуль.
- Убедись, что все маршруты доступны по HTTPS в продакшене (но в коде не реализуй сам HTTPS — это задача инфраструктуры).
---
**Что запрещено выдумывать или менять:**
- Не добавляй новые маршруты, которых нет в подтверждённых задачах или контексте.
- Не реализуй аутентификацию, авторизацию, регистрацию пользователей — это не подтверждено в исходном коде.
- Не используй базы данных, если они не указаны в requirements.txt или Dockerfile.
- Не добавляй фронтенд-логику в backend — это задача HTML+CSS+JS.
- Не меняй структуру ответов API без подтверждения в требованиях.
- Не реализуй кэширование, очереди, фоновые задачи — это выходит за рамки текущего milestone.
---
**Инструкции по генерации кода:**
- Напиши код на Python, совместимый с FastAPI.
- Используй `uvicorn` как сервер.
- Реализуй все маршруты и модели, описанные выше.
- Убедись, что код запускается командой `python main.py` и доступен на `http://localhost:8000`.
- Добавь обработку ошибок через `HTTPException`.
- Используй `uuid4` для генерации ID заданий.
- Реализуй прокси-вызов к внешнему ИИ-API (например, `https://api.example-ai.com/analyze`) с передачей текста и роли.
- Верни код в виде одного файла `main.py`, заменяя существующий, но сохраняя совместимость с текущим `GET /`.
---
**Формат результата:**
- Верни только один файл: `main.py` с полным содержимым.
- Файл должен быть самодостаточным и запускаться без дополнительных зависимостей, кроме тех, что в `requirements.txt`.
- Не возвращай `requirements.txt`, `Dockerfile`, `README.md` или другие файлы.
- Код должен быть готов к запуску командой `python main.py`.
---
**Критерии готовности и самопроверки:**
- Все маршруты (`POST /api/assignments`, `GET /api/assignments/{id}`, `GET /api/health`) работают и возвращают корректные JSON-ответы.
- При создании задания возвращается `201` и `id`.
- При получении задания возвращается актуальный статус.
- При завершении обработки возвращается `feedback`, `explanation`, `suggestions`.
- Ошибки обрабатываются корректно: `404`, `422`.
- Код не содержит лишних функций, не подтвержденных в исходном репозитории.
- Проект остаётся совместимым с текущим стеком (FastAPI, Python, Uvicorn).
- Backend не зависит от фронтенда, но предоставляет API для его интеграции.
---
**Режим восстановления (recovery mode):**
Если часть кода уже сгенерирована, продолжи с того места, где оборвался процесс. Если контекст переполнен — попроси пользователя подтвердить продолжение или предоставить предыдущие фрагменты. Если нужно догенерировать только недостающие файлы — верни только их. Не повторяй уже сгенерированный код.
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Восстанови слой данных и persistence для прототипа "ИИ-страна" с учётом целевого стека HTML+CSS+JS и подтвержденных фактов из исходного кода.
Тезис:
Создай модель данных, схему хранения и поведение persistence-слоя для прототипа "ИИ-страна", адаптированное под стек HTML+CSS+JS, без использования серверной базы данных, так как в исходном проекте persistence не реализован и не наблюдается в коде.
Контекст проекта:
Прототип "ИИ-страна" — это образовательный сервис для освоения базовых ИИ-навыков через короткие практические задания. На текущем этапе (milestone: idea) реализована только статическая landing-страница (`landing.html`) и минимальный FastAPI-бэкенд, возвращающий HTML. В коде отсутствуют любые сущности, модели данных, файлы миграций, файлы конфигурации БД, ORM-код, файлы хранения сессий, файловые хранилища или любые механизмы сохранения состояния пользователя. В `main.py` и `requirements.txt` нет зависимостей, связанных с базой данных, кэшированием или persistence. В `landing.html` нет скрытых полей, форм, localStorage-операций или других признаков клиентского сохранения данных.
Что нужно восстановить:
Слой данных и persistence для прототипа "ИИ-страна" в рамках целевого стека HTML+CSS+JS, с учётом того, что:
- В исходном проекте persistence не реализован;
- Никакие данные не сохраняются между сессиями;
- Нет моделей, схем, миграций, файлов конфигурации или API-эндпоинтов для работы с данными;
- Все пользовательские данные (например, выбранная роль, выполненные задания, фидбек) должны быть реализованы на стороне клиента;
- Подтвержденные сущности: пользовательская роль (сотрудник, студент, предприниматель), текущее задание, результат выполнения, фидбек от ИИ;
- Эти сущности должны быть представлены в виде структурированных данных в JavaScript, но не должны сохраняться на сервере или в файловой системе.
Подробные требования:
1. Реализуй модель данных на стороне клиента с использованием JavaScript-объектов или классов.
- Сущность `UserProfile`: поле `role` (строка, одно из: "сотрудник", "студент", "предприниматель").
- Сущность `Assignment`: поля `id` (строка), `title` (строка), `description` (строка), `exampleInput` (строка), `exampleOutput` (строка), `category` (строка, одно из: "письма", "отчёты", "презентации", "рефераты", "контент", "анализ").
- Сущность `UserSubmission`: поля `assignmentId` (строка), `userInput` (строка), `timestamp` (ISO-строка), `feedback` (объект с полями `summary` (строка), `improvementTips` (массив строк), `rating` (число от 1 до 5)).
- Сущность `Progress`: поля `completedAssignments` (массив строк — ID выполненных заданий), `lastCompleted` (ISO-строка), `totalScore` (число).
2. Реализуй поведение persistence на стороне клиента с использованием `localStorage`.
- Все сущности должны сохраняться в `localStorage` под ключами:
- `userProfile` — для `UserProfile`
- `currentAssignment` — для `Assignment`
- `userSubmissions` — массив `UserSubmission`
- `userProgress` — объект `Progress`
- При загрузке страницы данные должны загружаться из `localStorage`, если они существуют.
- При изменении данных (например, выбор роли, выполнение задания) данные должны автоматически сохраняться в `localStorage`.
3. Реализуй механизм сериализации/десериализации.
- Используй `JSON.stringify()` и `JSON.parse()` для преобразования объектов в строки и обратно.
- Обеспечь обработку ошибок при парсинге (например, если данные повреждены).
4. Реализуй события и хуки для синхронизации состояния.
- При изменении `UserProfile` — обновляй UI и сохраняй в `localStorage`.
- При выполнении задания — создавай `UserSubmission`, обновляй `Progress`, сохраняй в `localStorage`.
- При загрузке страницы — восстанавливай состояние из `localStorage` и обновляй UI.
5. Реализуй ограничения и валидацию.
- Поле `role` в `UserProfile` должно быть одним из разрешённых значений.
- Поле `timestamp` в `UserSubmission` должно быть валидной ISO-датой.
- Поле `rating` в `UserSubmission` должно быть числом от 1 до 5.
- При попытке сохранить невалидные данные — выбрасывай ошибку или логируй в консоль.
6. Реализуй поведение при отсутствии persistence.
- Если `localStorage` недоступен (например, в приватном режиме браузера) — работай в режиме "без сохранения", но не ломай UI.
- При потере данных (например, очистка кэша) — восстанавливай состояние по умолчанию (например, пустой профиль, пустой прогресс).
Что запрещено выдумывать или менять:
- Не добавляй серверные механизмы persistence (базы данных, файлы, API-эндпоинты).
- Не реализуй асинхронные запросы к серверу для сохранения данных.
- Не используй `sessionStorage`, `IndexedDB` или другие механизмы хранения, если они не подтверждены исходным кодом.
- Не добавляй сущности, которых нет в подтверждённых требованиях (например, "преподаватель", "курс", "урок").
- Не реализуй автоматическую синхронизацию с сервером.
- Не сохраняй данные в `cookies` или `URL-параметрах`.
Инструкции по генерации кода:
1. Напиши JavaScript-код, который будет выполняться на стороне клиента.
2. Размести код в отдельном файле `data-layer.js` или в `<script>`-блоке внутри `landing.html`.
3. Реализуй все сущности, методы сохранения, загрузки и валидации.
4. Обеспечь совместимость с HTML+CSS+JS без использования фреймворков.
5. Используй только стандартные API браузера (`localStorage`, `JSON`, `Date`).
Формат результата:
- Структурированный JavaScript-код в одном или нескольких файлах.
- Файлы: `data-layer.js` (или встроенный `<script>` в `landing.html`).
- Код должен быть самодостаточным, с комментариями на русском языке.
- Код должен быть готов к вставке в существующий `landing.html` или в отдельный JS-файл.
Критерии готовности и самопроверки:
- Все сущности (`UserProfile`, `Assignment`, `UserSubmission`, `Progress`) реализованы как JavaScript-объекты или классы.
- Все данные сохраняются в `localStorage` под указанными ключами.
- При загрузке страницы данные загружаются из `localStorage`, если они существуют.
- При изменении данных они автоматически сохраняются в `localStorage`.
- Реализована валидация полей и обработка ошибок.
- Код не использует серверные механизмы persistence.
- Код совместим с HTML+CSS+JS без фреймворков.
- Код не содержит лишних сущностей или функциональности, не подтверждённой исходным кодом.
05. UI и пользовательские сценарии
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Создай UI-интерфейс для задания по анализу текста в рамках прототипа "ИИ-страна" с использованием HTML, CSS и JavaScript. Интерфейс должен быть самодостаточным, не зависеть от backend-логики и соответствовать целевому стеку HTML+CSS+JS.
Контекст проекта:
- Прототип "ИИ-страна" — сервис для обучения базовым ИИ-навыкам через короткие практические задания.
- Цель — помочь сотрудникам, студентам и предпринимателям быстро применять ИИ в реальных задачах без глубоких технических знаний.
- В текущем milestone idea реализована только лендинговая страница (landing.html), описывающая концепцию, преимущества, целевые аудитории и workflow.
- В актуальных задачах указано: "Создать интерфейс задания по анализу текста", "Интегрировать обработку текста через ИИ-API с прокси", "Отображать обратную связь от ИИ с объяснением".
- В исходном коде backend реализован на FastAPI, но он возвращает только статическую HTML-страницу, не содержит логики обработки текста или взаимодействия с ИИ-API.
- В landing.html реализована лендинговая страница с секциями: hero, преимущества, целевые аудитории, как это работает, CTA, футер.
- В коде нет ни одной страницы или компонента, связанного с выполнением задания по анализу текста.
- В коде нет форм, полей ввода, кнопок отправки, зон отображения результата или обратной связи от ИИ.
- В коде нет JavaScript-логики, связанной с обработкой текста или взаимодействием с API.
- В коде нет ни одного файла, кроме landing.html, main.py, requirements.txt и Dockerfile.
- В коде нет ни одной переменной окружения, конфигурации API, прокси или ИИ-сервиса.
- В коде нет ни одного user flow, связанного с выполнением задания, отправкой текста, получением фидбека или прогрессом.
- В коде нет ни одного компонента, связанного с преподавателями или "Преподавателями 2.0", хотя это упомянуто в дополнительном контексте.
Что нужно восстановить:
- Создай новую HTML-страницу или компонент для задания по анализу текста, как указано в актуальных задачах.
- Реализуй форму с полем ввода текста, кнопкой отправки и зоной отображения результата.
- Реализуй визуальные состояния: loading (загрузка), success (успешный ответ), error (ошибка), empty (пустой ввод).
- Реализуй обратную связь от ИИ с объяснением, как указано в задачах.
- Используй ту же дизайн-систему, что и в landing.html: цвета, шрифты, радиусы, тени, анимации, типографика.
- Сохрани структуру и стиль навигации, как в landing.html.
- Реализуй адаптивность под мобильные устройства, как в landing.html.
- Реализуй плавные переходы и hover-эффекты, как в landing.html.
- Реализуй sticky header, как в landing.html.
- Реализуй кнопки с hover-эффектами, как в landing.html.
- Реализуй карточки, иконки, списки, как в landing.html.
- Реализуй секцию с пошаговым workflow, как в landing.html.
- Реализуй CTA-секцию, как в landing.html.
- Реализуй футер, как в landing.html.
Подробные требования:
- Страница должна называться "Задание: Анализ текста" или аналогичная.
- Должно быть поле ввода многострочного текста с placeholder "Введите текст для анализа".
- Должна быть кнопка "Отправить на анализ" с hover-эффектом.
- После нажатия кнопки должна появиться индикатор загрузки (например, спиннер или текст "Анализируем...").
- При успешной обработке должен отображаться результат: краткое резюме, ключевые идеи, тональность, рекомендации.
- При ошибке должен отображаться текст ошибки и кнопка "Попробовать снова".
- При пустом вводе должна быть подсказка "Введите текст для анализа".
- Должна быть возможность скопировать результат.
- Должна быть возможность отправить новый текст.
- Должна быть возможность вернуться на лендинг.
- Должна быть навигация, как в landing.html.
- Должна быть адаптивность под мобильные устройства.
- Должна быть плавная анимация появления результата.
- Должна быть поддержка темной темы, как в landing.html.
- Должна быть доступность (accessibility): focus-стили, ARIA-атрибуты, клавиатурная навигация.
Что запрещено выдумывать или менять:
- Не добавляй новые страницы, компоненты или маршруты, которых нет в коде или метаданных.
- Не добавляй новые функции, которых нет в коде или метаданных.
- Не добавляй новые API, прокси, ИИ-сервисы, переменные окружения, конфигурации.
- Не добавляй новые user flows, которых нет в коде или метаданных.
- Не добавляй новые сущности, роли, состояния, которые не подтверждены кодом или метаданными.
- Не добавляй новые формы, поля, кнопки, которые не подтверждены кодом или метаданными.
- Не добавляй новые JavaScript-функции, которые не подтверждены кодом или метаданными.
- Не добавляй новые CSS-классы, которые не подтверждены кодом или метаданными.
- Не добавляй новые HTML-теги, которые не подтверждены кодом или метаданными.
- Не добавляй новые секции, карточки, иконки, списки, которые не подтверждены кодом или метаданными.
- Не добавляй новые навигационные пункты, которые не подтверждены кодом или метаданными.
- Не добавляй новые CTA, футеры, которые не подтверждены кодом или метаданными.
- Не добавляй новые адаптивные стили, которые не подтверждены кодом или метаданными.
- Не добавляй новые анимации, которые не подтверждены кодом или метаданными.
- Не добавляй новые темы, которые не подтверждены кодом или метаданными.
- Не добавляй новые доступность, которые не подтверждены кодом или метаданными.
- Не добавляй новые функции, связанные с преподавателями или "Преподавателями 2.0", если они не подтверждены кодом или метаданными.
Инструкции по генерации кода:
- Используй HTML, CSS и JavaScript.
- Используй ту же структуру и стиль, что и в landing.html.
- Используй те же переменные CSS, что и в landing.html.
- Используй те же классы, что и в landing.html.
- Используй те же иконки, что и в landing.html.
- Используй те же кнопки, что и в landing.html.
- Используй те же карточки, что и в landing.html.
- Используй те же списки, что и в landing.html.
- Используй те же секции, что и в landing.html.
- Используй те же навигационные пункты, что и в landing.html.
- Используй те же CTA, что и в landing.html.
- Используй те же футеры, что и в landing.html.
- Используй те же адаптивные стили, что и в landing.html.
- Используй те же анимации, что и в landing.html.
- Используй те же темы, что и в landing.html.
- Используй те же доступность, что и в landing.html.
- Реализуй форму с полем ввода текста, кнопкой отправки, зоной результата.
- Реализуй состояния loading, success, error, empty.
- Реализуй обратную связь от ИИ с объяснением.
- Реализуй возможность скопировать результат.
- Реализуй возможность отправить новый текст.
- Реализуй возможность вернуться на лендинг.
- Реализуй навигацию, как в landing.html.
- Реализуй адаптивность под мобильные устройства.
- Реализуй плавные переходы и hover-эффекты.
- Реализуй sticky header.
- Реализуй кнопки с hover-эффектами.
- Реализуй карточки, иконки, списки.
- Реализуй секцию с пошаговым workflow.
- Реализуй CTA-секцию.
- Реализуй футер.
Формат результата:
- Верни один HTML-файл с полным кодом страницы задания по анализу текста.
- Включи в файл все необходимые CSS-стили.
- Включи в файл все необходимые JavaScript-функции.
- Включи в файл все необходимые HTML-элементы.
- Включи в файл все необходимые переменные CSS.
- Включи в файл все необходимые классы.
- Включи в файл все необходимые иконки.
- Включи в файл все необходимые кнопки.
- Включи в файл все необходимые карточки.
- Включи в файл все необходимые списки.
- Включи в файл все необходимые секции.
- Включи в файл все необходимые навигационные пункты.
- Включи в файл все необходимые CTA.
- Включи в файл все необходимые футеры.
- Включи в файл все необходимые адаптивные стили.
- Включи в файл все необходимые анимации.
- Включи в файл все необходимые темы.
- Включи в файл все необходимые доступность.
Критерии готовности:
- Страница должна быть полностью функциональной.
- Форма должна принимать текст и отправлять его на обработку.
- Должны отображаться состояния loading, success, error, empty.
- Должна отображаться обратная связь от ИИ с объяснением.
- Должна быть возможность скопировать результат.
- Должна быть возможность отправить новый текст.
- Должна быть возможность вернуться на лендинг.
- Должна быть навигация, как в landing.html.
- Должна быть адаптивность под мобильные устройства.
- Должны быть плавные переходы и hover-эффекты.
- Должен быть sticky header.
- Должны быть кнопки с hover-эффектами.
- Должны быть карточки, иконки, списки.
- Должна быть секция с пошаговым workflow.
- Должна быть CTA-секция.
- Должен быть футер.
- Должны быть адаптивные стили.
- Должны быть анимации.
- Должны быть темы.
- Должна быть доступность.
- Код должен быть валидным HTML, CSS и JavaScript.
- Код должен соответствовать целевому стеку HTML+CSS+JS.
- Код должен соответствовать дизайну landing.html.
- Код должен соответствовать функциональным требованиям.
- Код должен соответствовать ограничениям.
- Код должен быть самодостаточным.
- Код должен быть пригодным для прямого запуска.
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Создай набор правил, охватывающих кросс-функциональные аспекты проекта "ИИ-страна" — сервис для освоения базовых ИИ-навыков через короткие практические задания. Проект находится на стадии idea, текущий стек — HTML+CSS+JS, целевая платформа — статический веб-интерфейс без серверной логики.
---
**Что нужно восстановить:**
Правила валидации, бизнес-инварианты, безопасность, производительность, совместимость и другие кросс-функциональные ограничения, которые должны быть соблюдены при реконструкции проекта на целевом стеке HTML+CSS+JS.
---
**Контекст проекта:**
Проект "ИИ-страна" — это образовательный сервис, помогающий пользователям осваивать ИИ-навыки через короткие практические задания, адаптированные под работу, учёбу и быт. Основная ценность — снижение порога входа: пользователь получает конкретные навыки без глубоких технических знаний.
На текущем этапе реализован только статический лендинг `landing.html`, который описывает концепцию, целевые аудитории (сотрудники, студенты, предприниматели) и пользовательский workflow: выбор роли → решение задачи → получение фидбэка от ИИ → применение в работе.
Backend пока не реализован: в исходном коде есть FastAPI-приложение, возвращающее HTML-страницу, но нет логики обработки текста, валидации, аутентификации или интеграции с ИИ-API.
В метаданных указаны актуальные задачи:
- Создать интерфейс задания по анализу текста
- Интегрировать обработку текста через ИИ-API с прокси
- Отображать обратную связь от ИИ с объяснением
Однако в текущем репозитории эти задачи не реализованы.
Дополнительный контекст: "Преподаватели 2.0" — значит, в будущем могут появиться роли преподавателей, но на текущем этапе они не реализованы и не должны быть выдуманы.
Целевой стек реконструкции — HTML+CSS+JS, то есть проект должен быть полностью клиентским, без серверной логики, с возможностью интеграции с внешними API через JavaScript.
---
**Что нужно восстановить:**
1. **Валидация и бизнес-инварианты**
- Ввод текста должен быть непустым (минимум 10 символов).
- Текст должен быть на русском языке (проверка через регулярное выражение или язык модели).
- Задача должна быть привязана к одной из трёх ролей: сотрудник, студент, предприниматель.
- Пользователь не может отправить пустое задание.
- Фидбэк от ИИ должен содержать объяснение и рекомендации.
2. **Безопасность**
- Не допускать XSS-атак: все пользовательские данные должны экранироваться перед отображением.
- Запрещено выполнение произвольного JavaScript в полях ввода.
- При отправке текста на ИИ-API использовать HTTPS.
- Не хранить персональные данные пользователя без явного согласия.
3. **Производительность**
- Интерфейс должен загружаться за менее чем 2 секунды на среднем интернет-соединении.
- Минимизировать количество HTTP-запросов.
- Использовать ленивую загрузку контента, если он не критичен для первого экрана.
- Оптимизировать размер CSS и JS-файлов.
4. **Совместимость**
- Поддержка современных браузеров: Chrome, Firefox, Safari, Edge (последние 2 версии).
- Адаптивный дизайн: корректное отображение на мобильных устройствах (минимум 375px ширины).
- Поддержка клавиатурной навигации и доступности (ARIA-атрибуты, контрастность текста).
5. **Ошибки и обработка исключений**
- При ошибке сети показывать понятное сообщение: "Не удалось подключиться к ИИ. Проверьте интернет и попробуйте снова".
- При ошибке валидации — подсвечивать поле и показывать текст ошибки рядом.
- При таймауте запроса — показывать индикатор загрузки и кнопку "Повторить".
6. **Наблюдаемость и логирование**
- Логировать ошибки в консоли браузера, но не отправлять их на сервер без согласия пользователя.
- При необходимости — использовать Sentry или аналоги, но только с согласия пользователя.
7. **Совместимость с будущим развитием**
- Интерфейс должен быть готов к интеграции с ИИ-API через JavaScript (например, через fetch).
- Структура HTML должна позволять легко добавлять новые разделы: форму задания, область вывода фидбэка, прогресс обучения.
- CSS должен быть модульным, с использованием переменных и BEM-подобной структуры.
---
**Что запрещено выдумывать или менять:**
- Не добавлять серверную логику, аутентификацию, базу данных или сессии — проект должен быть клиентским.
- Не реализовывать функции, которых нет в исходном коде или метаданных: например, регистрацию, профили, прогресс обучения.
- Не использовать фреймворки (React, Vue, Angular) — только чистый HTML, CSS и JavaScript.
- Не добавлять новые страницы или маршруты, которых нет в текущем проекте.
- Не менять структуру `landing.html` без необходимости — она является основой дизайна.
- Не придумывать новые роли пользователей, кроме указанных: сотрудник, студент, предприниматель.
- Не реализовывать ИИ-API напрямую — только через прокси или внешний API, если он будет предоставлен.
---
**Инструкции по генерации кода:**
1. Создай HTML-структуру для формы задания по анализу текста.
2. Добавь CSS-стили, соответствующие дизайну `landing.html`, с использованием тех же переменных и подходов.
3. Реализуй JavaScript-логику: валидацию ввода, отправку текста на ИИ-API (через fetch), отображение фидбэка.
4. Обеспечь обработку ошибок, таймаутов и сетевых проблем.
5. Сделай интерфейс доступным и адаптивным.
6. Не используй внешние библиотеки, кроме стандартных API браузера.
---
**Формат результата:**
Один или несколько файлов:
- `task-form.html` — HTML-страница с формой задания и выводом фидбэка.
- `styles.css` — CSS-стили, совместимые с `landing.html`.
- `script.js` — JavaScript-логика валидации, отправки и обработки ответа.
Файлы должны быть самодостаточными, без зависимостей от серверной части.
---
**Критерии готовности и самопроверки:**
✅ Форма задания содержит поле ввода текста, выбор роли и кнопку "Отправить".
✅ Валидация: текст не может быть пустым, должен быть на русском.
✅ При ошибке валидации — подсветка поля и текст ошибки.
✅ При успешной отправке — отображение фидбэка от ИИ с объяснением.
✅ При ошибке сети — понятное сообщение и кнопка "Повторить".
✅ Интерфейс работает на мобильных устройствах.
✅ Нет XSS-уязвимостей: пользовательский ввод экранируется.
✅ Код соответствует стилю `landing.html`: те же цвета, шрифты, анимации.
✅ Проект полностью клиентский, без серверной логики.
✅ Все кросс-функциональные правила соблюдены.
Если какой-то файл уже сгенерирован — продолжи с следующего. Если контекст переполнен — разбей на батчи. Если генерация была оборвана — продолжи с последнего сгенерированного файла.
07. Workflow генерации кода
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Создай workflow генерации кода для воссоздания проекта "ИИ-страна" в целевом стеке HTML+CSS+JS, строго опираясь только на подтвержденные кодом и метаданными факты, без выдумывания деталей.
**Что должна сделать downstream-модель:**
Опиши два режима реконструкции проекта:
A. Полный проект в одном структурированном multi-file ответе (если помещается в контекст).
B. Генерация батчами по слоям или модулям (если контекст переполнен или требуется пошаговая генерация).
Опиши dependency-first порядок генерации: какие файлы или модули должны быть сгенерированы первыми, чтобы обеспечить работоспособность последующих.
Опиши формат выдачи кода: как должны быть представлены файлы (имена, пути, содержимое), как обозначены зависимости, как организованы связи между файлами.
Опиши continuation protocol: как downstream-модель должна продолжать генерацию после команды пользователя вроде “продолжай” или “следующий батч” — что именно должно быть сгенерировано следующим, какие файлы или модули, в каком порядке.
Опиши recovery protocol: что делать, если часть файлов уже сгенерирована, если контекст переполнен, если предыдущая генерация была оборвана или если нужно догенерировать только недостающие/исправленные файлы — как downstream-модель должна определить, что уже есть, что пропущено, и как безопасно продолжить.
**Подтвержденный кодом и метаданными контекст проекта:**
Проект называется "ИИ-страна" — сервис для освоения базовых ИИ-навыков через короткие практические задания, адаптированные под работу, учёбу и быт.
Текущий milestone — idea.
Актуальные задачи:
- Создать интерфейс задания по анализу текста
- Интегрировать обработку текста через ИИ-API с прокси
- Отображать обратную связь от ИИ с объяснением
Целевой стек реконструкции — HTML+CSS+JS.
В репозитории есть:
- `landing.html` — полноценный HTML-шаблон с CSS-стилями, реализующий лендинг с секциями: hero, преимущества, для кого, как это работает, CTA, футер.
- `main.py` — FastAPI-приложение, возвращающее содержимое `landing.html` по маршруту `/`.
- `requirements.txt` — зависимости: fastapi и uvicorn.
- `Dockerfile` и `README.md` — инструкции по запуску и сборке.
В коде нет:
- Реализации интерфейса задания по анализу текста.
- Интеграции с ИИ-API.
- Обработки пользовательского ввода или отображения обратной связи от ИИ.
- JavaScript-логики для интерактивности.
- Файлов, связанных с бэкендом, кроме `main.py`.
**Что именно нужно восстановить:**
- Полный HTML+CSS+JS-лендинг, идентичный `landing.html`, но адаптированный под целевой стек (уже соответствует).
- Структуру проекта: корневой HTML-файл, CSS-стили (встроенные или внешние), JS-файлы (если потребуются).
- Рабочий workflow генерации: full-repo и batched режимы, dependency-first порядок, формат выдачи, continuation и recovery.
**Подробные требования:**
- Все файлы должны быть сгенерированы с точными именами и путями, соответствующими структуре HTML+CSS+JS.
- CSS-стили должны быть либо встроены в HTML (как в `landing.html`), либо вынесены в отдельный файл `styles.css` — выбор должен быть обоснован и согласован с контекстом.
- JavaScript должен быть добавлен только если требуется для реализации интерактивности (например, отправка формы, отображение фидбэка), но в текущем коде его нет — значит, он не должен быть выдуман.
- Зависимости и интеграции с ИИ-API не должны быть реализованы, так как они не подтверждены кодом.
- Все маршруты и поведение должны соответствовать `main.py`: только `GET /` возвращает HTML.
- Никакие дополнительные страницы, API-эндпоинты, данные или состояния не должны быть добавлены.
**Что запрещено выдумывать или менять:**
- Нельзя добавлять новые страницы, API-эндпоинты, JavaScript-логику, данные, состояния или интеграции, которых нет в исходном коде.
- Нельзя изменять структуру `landing.html` без веской причины — она должна быть максимально близка к оригиналу.
- Нельзя использовать технологии, не входящие в целевой стек HTML+CSS+JS.
- Нельзя добавлять бинарные файлы, скрипты сборки, конфигурации, которые не подтверждены метаданными.
**Инструкции по генерации кода:**
- В режиме full-repo: сгенерируй все файлы проекта в одном ответе, с именами и путями, соответствующими HTML+CSS+JS.
- В режиме batched: разбей генерацию на этапы — сначала HTML, затем CSS, затем JS (если требуется), соблюдая dependency-first порядок.
- Убедись, что каждый файл содержит только подтвержденные кодом и метаданными элементы.
- Если JS требуется для будущих задач (например, отправка формы), сгенерируй заглушку или минимальный скелет, но не реализуй логику, которой нет в исходнике.
**Формат результата downstream-модели:**
- В режиме full-repo: список файлов с именами, путями и содержимым, представленный в виде многострочного текста с разделителями (например, `--- filename: path/to/file.ext ---`).
- В режиме batched: один батч за раз, с указанием, какие файлы сгенерированы, и инструкцией, что делать дальше.
- Все файлы должны быть представлены в текстовом формате, без бинарных данных.
**Критерии готовности и самопроверки:**
- Downstream-модель готова, если:
- Все файлы сгенерированы в соответствии с целевым стеком HTML+CSS+JS.
- Структура и содержимое файлов идентичны или максимально близки к `landing.html`.
- Workflow описан для двух режимов: full-repo и batched.
- Dependency-first порядок, continuation и recovery протоколы описаны подробно.
- Никакие детали не выдуманы, все изменения обоснованы.
- Downstream-модель может продолжить генерацию, если пользователь скажет “продолжай” — она должна сгенерировать следующий батч или завершить проект.
- Downstream-модель может восстановиться, если часть файлов уже есть — она должна определить, что пропущено, и сгенерировать только недостающие файлы.
08. Сборка, env и deployment
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
Собери систему сборки, конфигурации окружения и деплоя для прототипа "ИИ-страна" в целевом стеке HTML+CSS+JS, строго опираясь на подтвержденные кодом и метаданными факты.
**Что делать:**
Реализуй полный workflow сборки, запуска и деплоя фронтенд-прототипа на чистом HTML+CSS+JS, без использования Python, FastAPI или Docker, так как исходный стек не должен переноситься в целевой. Все зависимости, env-переменные и инфраструктура должны быть адаптированы под статический веб-сайт.
**Подтвержденный контекст проекта:**
- Исходный проект использует FastAPI для обслуживания статического HTML-файла `landing.html`.
- В `README.md` описаны команды локального запуска через `pip install -r requirements.txt` и `python main.py`, а также сборка Docker-образа.
- В `Dockerfile` используется Python 3.14, копируется код, устанавливаются зависимости и запускается uvicorn.
- В `requirements.txt` указаны `fastapi` и `uvicorn`.
- В `main.py` приложение FastAPI возвращает содержимое `landing.html`.
- Файл `landing.html` — полноценный одностраничный сайт с адаптивным дизайном, CSS-переменными, интерактивными кнопками, секциями и навигацией.
**Что нужно восстановить:**
Система сборки, конфигурации, окружения и деплоя должна быть полностью переписана под статический HTML+CSS+JS-прототип, без серверной логики, Python, Docker и зависимостей. Все инструкции должны быть актуальны для фронтенд-разработки.
**Подробные требования:**
1. **Локальный запуск:**
- Прототип должен запускаться локально через любой современный браузер без дополнительных инструментов.
- Не требуется установка Python, Node.js, npm или других сред выполнения.
- Достаточно открыть файл `landing.html` двойным кликом или через `file://` протокол.
2. **Зависимости:**
- Никаких внешних зависимостей (npm-пакетов, CDN, сборщиков типа Webpack/Vite) не требуется.
- Все стили, скрипты и ресурсы должны быть встроены в `landing.html` или находиться в тех же файлах.
- Не добавляй `<script src="...">` или `<link href="...">` на внешние ресурсы.
3. **env-переменные:**
- В исходном проекте env-переменные не используются.
- В целевом стеке они также не нужны.
- Не вводи новые переменные окружения, если они не подтверждены кодом.
4. **Docker и инфраструктура:**
- Исходный Dockerfile и команды сборки не должны переноситься в целевой стек.
- Не создавай Dockerfile, Docker Compose, CI/CD-конфигурации или облачные деплои.
- Не требуй установки Docker, Kubernetes или других инструментов.
5. **Деплой:**
- Прототип должен быть готов к публикации на любом хостинге статических сайтов: GitHub Pages, Netlify, Vercel, Surge, Firebase Hosting и т.п.
- Достаточно загрузить файл `landing.html` и, при необходимости, дополнительные файлы (если появятся).
- Не требуй серверной части, API, баз данных или динамической генерации.
6. **Файлы и структура:**
- Сохрани имя файла `landing.html`.
- Не добавляй папки `public`, `dist`, `build`, `src`, `assets` и т.п., если они не подтверждены.
- Все CSS должно быть встроено в `<style>` внутри `<head>`.
- Все JS должно быть встроено в `<script>` или отсутствовать, если не используется.
7. **Что запрещено:**
- Не используй Python, FastAPI, uvicorn, pip, requirements.txt, Docker, Dockerfile, docker run, docker build.
- Не вводи новые технологии, фреймворки, сборщики, npm, Yarn, CLI-утилиты, если они не подтверждены.
- Не добавляй серверную логику, API, маршруты, обработку запросов.
- Не выдумывай env-переменные, конфигурации, CI/CD, мониторинг, логирование, безопасность, если они не подтверждены.
**Инструкции по генерации кода:**
- Сохрани файл `landing.html` без изменений, если он полностью соответствует требованиям.
- Убедись, что все CSS встроено, нет внешних ссылок.
- Убедись, что нет JavaScript, если он не используется (в текущем коде его нет).
- Убедись, что файл можно открыть в браузере напрямую.
**Формат результата:**
- Верни только один файл: `landing.html`.
- Не возвращай JSON, списки, инструкции, пояснения, README, Dockerfile, package.json, .env и другие файлы.
- Не возвращай команды, скрипты, CLI-инструкции, если они не запрошены явно.
**Критерии готовности и самопроверки:**
- Файл `landing.html` можно открыть в любом современном браузере (Chrome, Firefox, Safari, Edge) без ошибок.
- Все стили отображаются корректно, адаптивность работает на мобильных и десктопных устройствах.
- Нет внешних зависимостей, нет ошибок 404, нет запросов к несуществующим ресурсам.
- Нет следов Python, FastAPI, Docker, uvicorn, pip, requirements.txt.
- Нет env-переменных, конфигураций, серверной логики.
- Прототип полностью статичен, не требует запуска сервера.
- Готов к деплою на любой хостинг статических сайтов.
09. Проверка, continuation и recovery
Служебные параметры:
- Целевой стек: HTML+CSS+JS
Задача для LLM:
<имя_файла>.html
<имя_файла>.css
<имя_файла>.js