vibepp: "0.1" project: name: "RubiksCubeCodeBackdrop" type: "single-file-web-demo" summary: "Самодостаточная демонстрационная HTML-страница с кубиком Рубика в центре и кодом этой же страницы в качестве фоновой текстуры." purpose: goal: "Создать одну тестовую HTML-страницу, демонстрирующую генерацию кода и визуальный результат одновременно." problem: "Нужен наглядный артефакт для сравнения качества генерации между чатами и моделями." outcome: "Пользователь получает один файл index.html, который можно сразу открыть локально в браузере и увидеть эффектное демо." audience: users: - "разработчики" - "авторы технических статей" - "пользователи LLM" target_audience: - "люди, сравнивающие качество генерации кода" - "читатели статьи про структурированный промптинг и Vibe++" context: domain: "фронтенд-демо / демонстрация генерации кода" business_context: "пример для статьи на Habr" assumptions: - "страница должна быть самодостаточной" - "результат должен быть визуально понятным сразу после открытия" - "это демонстрационная заглушка, а не полноценный симулятор кубика Рубика" style: product_vibe: - "чистый" - "технологичный" - "минималистичный" - "слегка игривый" - "в духе демо" writing_style: "кратко и без лишних пояснений" ui_style: - "светлый фон" - "ненавязчивый код на фоне" - "центр композиции - кубик Рубика" code_style: - "читабельность важнее избыточной изощренности" - "минимум лишней сложности" - "аккуратная структура в рамках одного файла" technology: frontend: - "HTML" - "CSS" - "JavaScript" backend: [] database: [] infrastructure: [] tooling: [] constraints: - "без внешних библиотек" - "без CDN" - "без внешних ресурсов" - "только один файл" architecture: approach: "самодостаточный единый документ" patterns: - "слоистая визуальная композиция" - "фоновый текстовый слой + слой анимации на переднем плане" - "встроенный CSS и встроенный JS" boundaries: - "вся логика и стили должны находиться внутри одного HTML-файла" - "фоновый слой не должен мешать взаимодействию и анимации" decisions: - "страница должна запускаться локально без сборки" - "допустима упрощённая визуальная имитация механики кубика Рубика, если она выглядит убедительно" project_structure: style: "single-file" modules: - name: "background-code-layer" purpose: "отображение кода этой же страницы как фонового текстового слоя" - name: "rubiks-cube-render" purpose: "визуальное отображение кубика Рубика" - name: "animation-engine" purpose: "случайные вращения кубика" directories: - path: "index.html" purpose: "единственный файл проекта" features: core: - "Полноэкранная HTML-страница." - "Фон страницы состоит из кода этой же страницы." - "Фоновый код отображается как сплошной текст без переносов строк." - "Фоновый код отображается светло-серым моноширинным шрифтом." - "Фон должен визуально заполнять страницу текстом." - "В центре страницы расположен узнаваемый кубик Рубика." - "Кубик Рубика имеет цветные квадраты и ощущение 3D." - "Кубик автоматически и непрерывно вращается случайным образом." - "Желательно имитировать случайные повороты граней/слоёв." - "Если полноценная симуляция слишком тяжела, допустима упрощённая, но убедительная визуальная имитация." secondary: - "Можно добавить мягкое общее вращение всего куба для лучшей визуальности." - "Можно добавить лёгкую тень или перспективу." out_of_scope: - "полноценный математически точный симулятор кубика Рубика" - "внешние зависимости" - "сборка, bundler, npm" - "объясняющий текст на самой странице" quality: priorities: - "самодостаточность" - "наглядность" - "визуальная аккуратность" - "простота запуска" constraints: - "один файл index.html" - "никаких внешних ресурсов" - "страница должна работать при локальном открытии" non_functional: - "анимация запускается автоматически" - "фон не отвлекает чрезмерно от центрального объекта" - "результат должен выглядеть как качественное демо" documentation: required_files: [] code_comments: policy: "умеренные комментарии" rules: - "комментировать только неочевидные части" - "не перегружать код комментариями" api_docs: required: false architecture_docs: required: false changelog: required: false instructions: implementation: - "Вернуть только один HTML-файл." - "Весь CSS и JS разместить inline." - "Использовать содержимое текущей страницы как источник фонового кода." - "Перед отображением фона убрать переносы строк из текста кода." - "Повторять или масштабировать текст фона так, чтобы он визуально заполнял экран." - "Разместить кубик точно по центру экрана." - "Обеспечить непрерывную случайную анимацию кубика." naming: - "использовать понятные имена переменных и функций" testing: - "результат должен открываться в браузере как обычный локальный HTML-файл" delivery: - "Вернуть только содержимое файла index.html" - "Не добавлять пояснений" - "Не добавлять markdown-обёртки вокруг ответа, если это не требуется платформой" rules: hard: - "Вернуть ровно один самодостаточный HTML-файл." - "Не использовать внешние библиотеки, CDN, шрифты, изображения или другие внешние ресурсы." - "Фон должен состоять из кода этой же страницы." - "Фоновый код должен отображаться как одна непрерывная строка без переносов." - "Фоновый текст должен быть светло-серым и моноширинным." - "Кубик Рубика должен находиться в центре экрана." - "Кубик Рубика должен автоматически анимироваться случайными вращениями." - "Вернуть только содержимое файла." firm: - "Предпочитать визуально убедительный 3D-вид." - "Предпочитать случайные повороты граней и слоёв вместо простого вращения всего куба." - "Сохранять читаемость кода." soft: - "Сделать страницу элегантной и слегка впечатляющей." - "Сохранять минималистичную и современную визуальную композицию." accept: - "Открытие файла локально в браузере сразу показывает рабочую страницу." - "На фоне виден код этой же страницы как светло-серый моноширинный текст без переносов." - "Фон выглядит как текстовая текстура и не доминирует над сценой." - "В центре экрана находится узнаваемый кубик Рубика." - "Кубик анимирован и вращается случайным образом." - "Весь результат содержится в одном файле index.html."