Initial content-pipeline: pipeline orchestrator + CMS layer, unified Article model

This commit is contained in:
n1kt4r committed 2026-09-09 22:51:29 +05:00
commit 9ff486c19a
6 files changed
+431

No files matched your search

+76
View File
@@ -0,0 +1,76 @@
# 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.