Прежняя git-история утрачена при переносе проекта на машину владельца (снапшот без .git). Хэши коммитов в docs/reports/* относятся к утраченной истории. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
59 lines
3.4 KiB
Markdown
59 lines
3.4 KiB
Markdown
# План этапа 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 — в бюджете.
|