# План этапа 10 — дизайн-перенос (Kimi WebSites → каркас Astro) Дата: 2026-08-06. Ветка интеграции: main. ## Контекст Пользователь получил от Kimi WebSites переносной пакет дизайна («васи + гобан», светлая тема, индиго + терракота). Эталон распакован и сохранён в `docs/design/kimi-export/`. Задача — натянуть дизайн на существующий каркас, не трогая логику, контент, API и тесты. Контракт: `docs/INTERFACES.md`, раздел «Дизайн-перенос (этап 10)» — токены (с 3 правками контраста), каркас Layout, тема доски, изображения, паттерны страниц, критерии приёмки. ## Стадии ### Стадия 0 (оркестратор, сделано) - Распаковка пакета, сжатие изображений в `apps/web/public/assets/` (hero 53КБ / ink 118КБ / stones 24КБ). - Эталон в `docs/design/kimi-export/`, контракт в INTERFACES.md. ### Стадия 1 — параллельные кодеры (3 ветки) - **design-a (фундамент)**: Layout.astro (глобальные стили = адаптация kimi-export/style.css + правила [hidden]/go-task, шапка/подвал/проп section/мобильное меню/шрифты), packages/board render.ts DEFAULT_THEME → светлая, index.astro (hero+features+ink-band+home-strip). Файлы: `apps/web/src/layouts/Layout.astro`, `packages/board/src/render.ts`, `apps/web/src/pages/index.astro`, при необходимости `apps/web/src/ui/strings.ts` (только новые строки главной). - **design-b (контентные страницы)**: learn.astro, learn/[id].astro, tsumego.astro, progress.astro — разметка по паттернам контракта, логика/id/data-атрибуты не меняются. - **design-c (страницы приложения)**: play.astro, account.astro, register.astro, password-reset.astro — то же правило. Пересечений по файлам нет (Layout только у A). Общий API — проп `section` Layout, описан в контракте. ### Стадия 2 — интеграция (оркестратор) - Слияние веток в main, разрешение конфликтов. - Гейты, точечные правки (wiring/тема-тесты). - Проверка веса страниц dist и контраста. - Сборка dist → `/mnt/agents/output/app`, НОВАЯ версия превью (website_version_manager) — старая рабочая версия остаётся для сравнения. ### Стадия 3 — ритуал закрытия - PROJECT_STATE.md (0.3.0), отчёт session-10, docs(sync) коммит, zip. ## Риски - Слияние: Layout меняет только A — конфликтов не ожидается; strings.ts могут трогать A и B — B не трогает strings (правило в брифе). - Контраст исправлен на уровне токенов — регрессий быть не должно. - Вес главной: hero 53КБ + CSS/JS — в бюджете.