# content-pipeline Оркестратор контентного конвейера + CMS-слой для управления публикациями. **Не CMS как таковая, а развитие editor-pro + GEO через более глубкую интеграцию.** ## Что это Гибрид двух слоёв в едином UI: ``` ┌─────────────────────────────────────────┐ │ UI-панель (один экран) │ ├─────────────────────────────────────────┤ │ 1. Pipeline-оркестратор │ ← управление конвейером │ (editor-pro → GEO → публикация) │ запуск, статус, ретрай │ │ │ 2. CMS-слой │ ← удобная правка │ (список статей / редактор / │ BlockNote + превью │ превью / публикации) │ ├─────────────────────────────────────────┤ │ FastAPI-оркестратор на 9876 │ │ (уже есть для SEO-проектов) │ └─────────────────────────────────────────┘ ``` ## Архитектура ### Единая модель данных (`src/types.ts`) Один объект «статья» используют оба слоя: - `slug`, `title`, `body` — базовые поля - `utm` — UTM-теги для персонализации hero - `geo` — GEO-мета (сущности, ключевые запросы) - `status` — draft / in-review / published / archived - `editorProTaskId` — связь с editor-pro Валидация и slugify — единые для обоих слоёв (никакого дублирования). ### Pipeline-оркестратор (`src/pipeline.ts`) Шаги: `generate` (editor-pro) → `optimize` (GEO) → `publish`. - Запуск конвейера для списка статей - Статусы шагов (pending/running/success/failed) - Ретрай до 3 раз при ошибке (экспоненциальный backoff) - Делегирует тяжёлую работу шагам (не выполняет сам) ### Хранилище (`src/store.ts`) Единый источник данных для обоих слоёв: - CRUD статей - Фильтрация по статусу (для CMS) - Поиск по заголовку/тексту - В MVP — in-memory Map; в прода — SQLite/Postgres (тот же интерфейс) ## Почему не форк CMS Готовые CMS (AstroAdmin, astro-cms, EmDash) — CRUD для контента, не pipeline-оркестратор. Они не знают про editor-pro, GEO, UTM-теги. Им пришлось бы писать слой адаптации — свой слой проще и точнее. ## Roadmap - [ ] FastAPI-оркестратор (9876) — запуск pipeline - [ ] SQLite-репозиторий вместо in-memory - [ ] Блок-редактор (BlockNote/TipTap) для CMS-слоя - [ ] Превью через iframe dev-сервера - [ ] Привязка к deploy-пайплайну (rsync на хостинг) - [ ] Статусы pipeline в UI (отслеживание задач) ## License Приватный. Концепт: развитие editor-pro + GEO.