Browse Source

docs: close Sprint 5/5.5, prepare Sprint 6

- fix: CeoBlock padding 40px 48px → 40px 0 (v1.2)
- fix: BlockMetaBar.saveFullVersion() used defaultVersion instead of meta.version, causing version rollback in DB on snapshot save
- docs: mark Sprint 5 and 5.5 as completed in SPRINTS.md
- docs: update LLM_CONTEXT v4.5 — all 8 blocks documented, Sprint 6 current
- chore: Sidebar version → Sprint 6 · v0.6.0
- chore: add .vercel to .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
main
AR 15 M4 2 months ago
parent
commit
eda348deea
  1. 1
      .gitignore
  2. 11
      apps/web/app/blocks/ceo/CeoPageClient.tsx
  3. 2
      apps/web/components/blocks/CeoBlock.tsx
  4. 2
      apps/web/components/layout/Sidebar.tsx
  5. 7
      apps/web/components/ui/BlockMetaBar.tsx
  6. 19
      docs/LLM_CONTEXT.md
  7. 13
      docs/SPRINTS.md

1
.gitignore vendored

@ -29,3 +29,4 @@ prisma/migrations/*.sql.bak
# Claude
.claude/
.vercel

11
apps/web/app/blocks/ceo/CeoPageClient.tsx

@ -51,6 +51,13 @@ const LLM_CEO_TEXT = `
const CHANGELOG: ChangelogEntry[] = [
{
version: "v1.2",
date: "25.03.2026",
changes: [
"Убраны горизонтальные отступы: padding 40px 48px → 40px 0 (как на реальном сайте)",
],
},
{
version: "v1.1",
date: "24.03.2026",
@ -79,7 +86,7 @@ export default function CeoPageClient() {
</h1>
<BlockMetaBar
path={BLOCK_PATH}
defaultVersion="v1.1"
defaultVersion="v1.2"
defaultIsInPreview={false}
defaultChangelog={CHANGELOG}
onSnapshotSelect={setSnapshot}
@ -179,7 +186,7 @@ export default function CeoPageClient() {
</section>
{/* LLM блок */}
<LlmBlock path="/blocks/ceo" version="v1.1" specText={LLM_CEO_TEXT}>
<LlmBlock path="/blocks/ceo" version="v1.2" specText={LLM_CEO_TEXT}>
<LlmSection title="Структура блока" />
<LlmTable
headers={["Часть", "Содержимое", "Примечание"]}

2
apps/web/components/blocks/CeoBlock.tsx

@ -15,7 +15,7 @@ export function CeoBlock() {
fontSize: 14,
lineHeight: 1.75,
color: "#374151",
padding: "40px 48px",
padding: "40px 0",
}}
>
<p>

2
apps/web/components/layout/Sidebar.tsx

@ -167,7 +167,7 @@ export function Sidebar() {
color: "var(--bb-sidebar-text-muted)",
}}
>
Sprint 5.5 · v0.5.5
Sprint 6 · v0.6.0
</div>
</aside>
);

7
apps/web/components/ui/BlockMetaBar.tsx

@ -134,8 +134,9 @@ export function BlockMetaBar({ path, defaultVersion, defaultIsInPreview, default
if (apiDown || !apiUrl) return;
setSavingVersion('saving');
try {
// 1. Update block metadata
const updated = await patch({ version: defaultVersion, changelog: defaultChangelog });
// 1. Update block metadata (prefer current API version over hardcoded default)
const currentVersion = meta?.version ?? defaultVersion;
const updated = await patch({ version: currentVersion, changelog: defaultChangelog });
if (updated) {
setMeta(updated);
setVersionInput(updated.version);
@ -147,7 +148,7 @@ export function BlockMetaBar({ path, defaultVersion, defaultIsInPreview, default
await fetch(`${apiUrl}/blocks/snapshots?path=${encodeURIComponent(path)}`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ version: defaultVersion, changelog: defaultChangelog, html, css }),
body: JSON.stringify({ version: currentVersion, changelog: defaultChangelog, html, css }),
});
await fetchSnapshots();
} catch { /* snapshot capture may fail if container not found */ }

19
docs/LLM_CONTEXT.md

@ -2,9 +2,9 @@
## Клиника ухо, горло, нос им. проф. Е.Н.Оленевой
**Версия контекста:** 4.4
**Версия контекста:** 4.5
**Дата обновления:** 2026-03-25
**Актуальный спринт:** Sprint 5.5
**Актуальный спринт:** Sprint 6
**Сайт клиники:** https://oclinica.ru
**Брендбук (локально):** http://localhost:3001
**Брендбук (production):** https://web-oclinica.vercel.app
@ -291,10 +291,16 @@ SVG-версия ожидается (не получена от клиники).
| `/components/forms` | ✅ Готова | Форм-контролы — Input/Textarea/Select/Checkbox/Radio/Toggle |
| `/components/cards` | ✅ Sprint 4 | Карточки — врач, услуга, новость, отзыв, цена + бейджи/теги/алерты |
| `/components/*` | 🔜 Sprint 4–5 | Модалки, таблицы, навигация |
| `/blocks/hero` | ✅ Sprint 5.5 v1.2 | Hero-баннер: H1 36px #cb9768, заголовок 22px #333, кнопка pill, фон #f9f4e7 |
| `/blocks/doctors` | ✅ Sprint 5.5 v1.2 | Врачи: H2 36px #000, статистика #60959c без фона, 6 реальных фото |
| `/blocks/*` | 🔜 Sprint 5 | Отзывы, формы, новости, footer |
| `/pages/*` | 🔜 Sprint 9–11 | Главная, заболевание, врачи, цены, контакты |
| `/blocks/navigation` | ✅ Sprint 5 v1.3 | Шапка: топ-бар, логотип, главное меню с подменю |
| `/blocks/hero` | ✅ Sprint 5 v1.3 | Hero-баннер: H1 36px #cb9768, заголовок 22px #333, кнопка pill, фон #f9f4e7 |
| `/blocks/ceo` | ✅ Sprint 5 v1.2 | Вводный текст: специализация клиники, вопросы-стимулы |
| `/blocks/doctors` | ✅ Sprint 5 v1.2 | Врачи: H2 36px #000, статистика #60959c без фона, 6 реальных фото |
| `/blocks/reviews` | ✅ Sprint 5 v1.1 | Отзывы: карусель, кавычка, стрелки навигации |
| `/blocks/contact-forms` | ✅ Sprint 5 v1.2 | Формы записи: «Будьте здоровы!» + «Узнайте стоимость» |
| `/blocks/news` | ✅ Sprint 5 v1.1 | Новости: 4 карточки, фон #f2fee6 |
| `/blocks/contact` | ✅ Sprint 5 v1.1 | Footer: 4 колонки ссылок, адреса, соцсети |
| `/pages/preview` | ✅ Sprint 5.5 | Просмотр страницы: сборка блоков с toggle «В превью» |
| `/pages/*` | 🔜 Sprint 6 | Главная, заболевание, врачи, цены, контакты |
---
@ -484,6 +490,7 @@ CSS-классы в `globals.css`. Компонент: `@/components/ui/Button`
| 4.2 | 2026-03-23 | Sprint 5: блоки Hero v1.1, Doctors v1.1 |
| 4.3 | 2026-03-24 | Sprint 5.5: исправлены CSS-стили блоков по реальному сайту (H1 #cb9768 36px, H2 #000 36px, фоны форм #d4f6f8, фон новостей #f2fee6, CTA-кнопка pill) |
| 4.4 | 2026-03-25 | Sprint 5.5: кнопка «Сохранить версию» (snapshot HTML+CSS в PostgreSQL), dropdown переключения между версиями блоков, навигация v1.3 с подменю, блоки обновлены из предыдущей сессии |
| 4.5 | 2026-03-25 | Sprint 5/5.5 завершены: все 8 блоков /lor задокументированы, CEO v1.2, исправлен баг saveFullVersion() (откат версии), таблица блоков обновлена |
---

13
docs/SPRINTS.md

@ -178,7 +178,7 @@
---
## Sprint 5 — Все блоки текущего сайта
## Sprint 5 — Все блоки текущего сайта ✅ ЗАВЕРШЁН
**Цель:** Задокументировать ВСЕ блоки страницы perm.oclinica.ru/lor за один спринт.
Источник: скриншот страницы + CSS сайта. Только фронтенд, mock-данные.
@ -234,7 +234,7 @@
- [x] FE: LLM-блоки на hero v1.1 и doctors v1.1
- [x] Docs: Типографика сайта — реальные стили на 23.03.2026 (новый раздел в /foundation/typography)
- [x] Docs: Цвета — исправлен #f9f4e7 (Hero), #b8e6ed (форма), #e9e4d4 (пилюли)
- [ ] FE: Убрать `soon` у Hero и Doctors в Sidebar
- [x] FE: Убрать `soon` у Hero и Doctors в Sidebar
- [x] FE: CEO-блок v1.1
- [x] FE: Блоки отзывов, форм записи, новостей — компоненты + страницы документации
- [x] FE: Сравнение ВСЕХ блоков с реальным сайтом и синхронизация (24.03.2026)
@ -256,13 +256,16 @@
- BlockMetaBar: загружает version + changelog из API, fallback на defaultVersion/defaultChangelog
- Компонент BlockChangelog: отображает историю версий из API или из кода
- Надпись «API офлайн» заменена на серую точку
- [ ] FE: Footer
- [x] FE: Footer (блок `/blocks/contact` готов)
**Результат спринта:** Hero v1.2, Doctors v1.2, Reviews v1.1, ContactForms v1.1, News v1.1 — стили синхронизированы с реальным сайтом. Метаданные блоков хранятся в БД.
- [x] FE: CEO-блок v1.2 — убраны горизонтальные отступы (padding 40px 48px → 40px 0)
- [x] FE: Исправлен баг BlockMetaBar.saveFullVersion() — использовал defaultVersion вместо meta.version, что откатывало версию в БД при сохранении снапшота
**Результат спринта:** Hero v1.3, Doctors v1.2, CEO v1.2, Reviews v1.1, ContactForms v1.2, News v1.1, Navigation v1.3, Contact v1.1 — все блоки /lor задокументированы. Метаданные блоков хранятся в БД. Система снапшотов работает корректно.
---
## Sprint 5.5 — «Просмотр текущей страницы» (внеочередной)
## Sprint 5.5 — «Просмотр текущей страницы» (внеочередной) ✅ ЗАВЕРШЁН
**Цель:** Добавить интерактивный раздел брендбука, который собирает главную страницу из уже задокументированных блоков.
Показывает живой превью того, как выглядит сайт на основе данных брендбука.

Loading…
Cancel
Save