6.0 KiB
План C17: перенос preview → корень + (old) → /v1/
СТАТУС: ВЫПОЛНЕН (2026-09-11) — устарел. Перенос завершён: preview-страницы на реальных маршрутах, старый дизайн на
/v1/*,app.css/app_v1.css, isolation-плагин на v1-путях, аудит-скрипты вscripts/archive/. C18 (правки импортов/редиректов, проверка билда) тоже выполнен. Следующий этап — C19–C21 (plan-redesign.md, §10).Оригинальный статус до выполнения: план к выполнению. Предпосылки: tech debt закрыт, backlog №14 (старые файлы → lib/old/) выполнен. Домен НЕ блокер (см. plan-redesign.md §10, plan-seo.md §6).
Цель
Новый дизайн становится основным на корневых маршрутах (/, /tools/[id],
/list-tools). Старый дизайн переезжает на /v1/* как архив для справки.
Удаление старого кода (C19) откладывается до полной приёмки нового дизайна.
Структура маршрутов (до → после)
До: (old)/ даёт URLs /, /demo, /list-tools, /tools/[id].
preview/ даёт /preview, /preview/list-tools, /preview/tools/[id],
/preview/kit.
После: v1/ даёт /v1/, /v1/demo, /v1/list-tools, /v1/tools/[id].
Корень даёт /, /list-tools, /tools/[id]. Витрина kit — на реальном
маршруте /kit (дизайн в стадии тестирования).
Решения
v1/— реальная папка, НЕ route group — group(v1)/не меняет URL, а нам нужно чтобы старые страницы жили по/v1/*.- Корневой layout: shell нового дизайна — TopBar, Footer, тема, хлебные
крошки, импорт
app.css,@layer app, design;. v1/+layout.svelte— только импортapp_v1.css— без header/footer/shell.- Тема: использовать
theme.svelte.ts(не дублировать локальный$state). @layer app, design;остаётся — design выигрывает у app везде.noindexостаётся наtools/[id]/+page.svelteдо покупки домена.- CSS-файлы переименовываются:
preview.css→app.css,old.css→app_v1.css. Все ссылки обновляются. kit/витрина →/kit— переносится на реальный маршрут вместе с остальными preview-страницами; отдельныйpreview/+layoutудаляется (/kitнаследует корневой shell).
Что делать (шаги)
1. Rename (old)/ → v1/
Переименовать папку. Обновить v1/+layout.svelte: убрать «Preview v2» ссылку,
обновить пути навигации, поправить импорт CSS.
2. Новый корневой +layout.svelte + rename CSS
Перезаписать текущий нейтральный layout содержимым из preview/+layout.svelte
(с правками: тема через theme.svelte.ts, путь к CSS). Переименовать
src/preview.css → src/app.css, src/old.css → src/app_v1.css. Обновить
все ссылки на эти файлы в проекте ( layout, лайнтеры, eslint-плагины, скрипты,
тесты).
3. Move preview pages → корень
Переместить страницы из preview/ в корень routes/: +page → /,
list-tools → /, tools/[id] → /, витрину kit → /kit. Удалить
preview/+layout.svelte (корневой shell заменяет его).
4. Update hardcoded /preview/ URLs
В компонентах с захардкоженными путями /preview/ заменить на корневые.
5. Flatten kit/ → components/
Перенести компоненты из lib/components/kit/ в lib/components/, обновить все
импорты, удалить пустую kit/.
6. Flatten preview/ → lib/
Перенести код из lib/previw/ в lib/, обновить все импорты, удалить пустую
preview/.
7. Перенести old/ → v1/
$lib/old/— переименовать вlib/v1/, обновить все импорты
8. E2E тесты + playwright config
Заменить /preview/... на /... во всех e2e файлах и конфиге playwright.
9. ESLint config + AGENTS.md
Обновить glob-паттерны: routes/preview/** → routes/**, components/kit/** →
components/**. Обновить AGENTS.md.
10. Isolation plugin
Обновить DEFAULT_OLD: routes/(old)/** → routes/v1/**. Убрать
routes/preview/** из DEFAULT_NEW.
11. Archive audit scripts
Перенести скрипты аудита в scripts/archive/, убрать вызовы из манифестов.
Что НЕ меняется
routes/+layout.ts— prerender = true остаётся- Слаги инструментов (
*-png) — без изменений /kit— витрина дизайна остаётся (в стадии тестирования)
Риски
- v1/ без shell — старый дизайн без header/footer.
@layerвзаимодействие — проверить что design-токены перекрывают app-токены на обоих маршрутах.- Isolation: shared-классификация — маршруты нового дизайна shared до C19.