237 lines
9.7 KiB
Markdown
237 lines
9.7 KiB
Markdown
---
|
||
created: 2024-12-19
|
||
updated: 2024-12-19
|
||
tags:
|
||
- планирование
|
||
- roadmap
|
||
- развитие
|
||
- улучшения
|
||
parent: "[[Second Mind Pipeline/index|Second Mind Pipeline]]"
|
||
status: "активный"
|
||
priority: "средний"
|
||
---
|
||
|
||
# 🚀 План развития Second Mind Pipeline
|
||
|
||
## 🎯 Практические цели развития
|
||
|
||
Фокус на улучшении личной системы работы с заметками, без коммерциализации и лишней сложности.
|
||
|
||
### Основные направления развития
|
||
|
||
1. **Переписать webhook на Go**
|
||
- Улучшение производительности
|
||
- Более надежная обработка Git событий
|
||
- Упрощение деплоя
|
||
|
||
2. **Кастомизация Quartz**
|
||
- Настройка под личные потребности
|
||
- Улучшение внешнего вида
|
||
- Оптимизация для русского языка
|
||
|
||
3. **Обработка Dataview запросов**
|
||
- Парсинг dataview синтаксиса
|
||
- Генерация динамических списков
|
||
- Поддержка сложных запросов
|
||
|
||
4. **Контроль видимости контента**
|
||
- Скрытие служебных папок (Templates, Private)
|
||
- Фильтрация черновиков
|
||
- Настраиваемые правила публикации
|
||
|
||
5. **Инкрементальная сборка**
|
||
- Анализ Git diff для определения изменений
|
||
- Пересборка только измененных страниц
|
||
- Кеширование неизмененного контента
|
||
|
||
6. **AI-помощник для заметок**
|
||
- Чатбот для поиска по заметкам
|
||
- Помощь в создании связей
|
||
- Предложения по структурированию
|
||
|
||
## 📅 Практический роадмап
|
||
|
||
### Фаза 1: Улучшение backend (1-2 месяца)
|
||
|
||
#### Переписывание webhook на Go
|
||
- **Неделя 1-2**: Базовая структура Go сервиса
|
||
- [ ] Создание Go модуля для webhook
|
||
- [ ] HTTP сервер с обработкой Git webhook'ов
|
||
- [ ] Базовое логирование и health checks
|
||
|
||
- **Неделя 3-4**: Интеграция с Git и Quartz
|
||
- [ ] Парсинг Git webhook payload
|
||
- [ ] Запуск Quartz сборки из Go
|
||
- [ ] Миграция с Node.js на Go в Docker
|
||
|
||
#### Настройка инкрементальной сборки
|
||
- **Неделя 5-6**: Анализ Git изменений
|
||
- [ ] Получение diff'а между коммитами
|
||
- [ ] Определение измененных markdown файлов
|
||
- [ ] Маппинг файлов на страницы сайта
|
||
|
||
- **Неделя 7-8**: Кеширование и селективная сборка
|
||
- [ ] Кеш-система для неизмененных страниц
|
||
- [ ] Сборка только затронутых страниц
|
||
- [ ] Обновление индексов и навигации
|
||
|
||
### Фаза 2: Кастомизация Quartz (2-3 недели)
|
||
|
||
#### Персональные настройки
|
||
- **Неделя 1**: Базовые настройки
|
||
- [ ] Настройка русской локализации
|
||
- [ ] Кастомные CSS стили
|
||
- [ ] Логотип и брендинг
|
||
|
||
- **Неделя 2**: Скрытие служебного контента
|
||
- [ ] Исключение папок Templates, Private из сборки
|
||
- [ ] Фильтр файлов по паттернам
|
||
- [ ] Настройка правил видимости
|
||
|
||
- **Неделя 3**: Улучшение навигации
|
||
- [ ] Кастомная структура меню
|
||
- [ ] Breadcrumbs для заметок
|
||
- [ ] Теги и категории
|
||
|
||
### Фаза 3: Dataview интеграция (3-4 недели)
|
||
|
||
#### Парсинг Dataview запросов
|
||
- **Неделя 1-2**: Базовый парсер
|
||
- [ ] Распознавание dataview блоков в markdown
|
||
- [ ] Парсинг простых LIST и TABLE запросов
|
||
- [ ] Извлечение метаданных из frontmatter
|
||
|
||
- **Неделя 3-4**: Генерация динамического контента
|
||
- [ ] Выполнение dataview запросов
|
||
- [ ] Генерация HTML таблиц и списков
|
||
- [ ] Интеграция в процесс сборки Quartz
|
||
|
||
### Фаза 4: AI-помощник (1-2 месяца)
|
||
|
||
#### MVP чатбота
|
||
- **Неделя 1-2**: Базовая архитектура
|
||
- [ ] Telegram бот или веб-интерфейс
|
||
- [ ] Индексация содержимого заметок
|
||
- [ ] Простой поиск по тексту
|
||
|
||
- **Неделя 3-4**: Умный поиск
|
||
- [ ] Семантический поиск (embedding)
|
||
- [ ] Поиск по связям между заметками
|
||
- [ ] Контекстные ответы
|
||
|
||
- **Неделя 5-6**: Расширенные функции
|
||
- [ ] Предложения новых связей
|
||
- [ ] Анализ структуры заметок
|
||
- [ ] Помощь в создании контента
|
||
|
||
## 📊 Личные метрики успеха
|
||
|
||
### Производительность системы
|
||
- **Время сборки**: с 45s до <10s (инкрементальная сборка)
|
||
- **Время отклика сайта**: <100ms
|
||
- **Стабильность**: 99%+ uptime
|
||
- **Объем кеша**: эффективное использование дискового пространства
|
||
|
||
### Удобство использования
|
||
- **Скорость публикации**: от commit'а до обновления сайта <30s
|
||
- **Качество поиска**: точность результатов AI-помощника
|
||
- **Покрытие Dataview**: поддержка 90%+ используемых запросов
|
||
- **Мобильность**: корректное отображение на всех устройствах
|
||
|
||
## 🔧 Технические детали реализации
|
||
|
||
### Go webhook сервис
|
||
```go
|
||
// Примерная структура Go сервиса
|
||
type WebhookServer struct {
|
||
gitRepo *git.Repository
|
||
quartzPath string
|
||
cache *BuildCache
|
||
}
|
||
|
||
func (w *WebhookServer) handleWebhook(payload GitPayload) {
|
||
changedFiles := w.getChangedFiles(payload.Before, payload.After)
|
||
if w.needsRebuild(changedFiles) {
|
||
w.incrementalBuild(changedFiles)
|
||
}
|
||
}
|
||
```
|
||
|
||
### Dataview парсер
|
||
```go
|
||
// Парсинг dataview запросов
|
||
type DataviewQuery struct {
|
||
Type string // LIST, TABLE, TASK
|
||
From string // источник данных
|
||
Where string // условия фильтрации
|
||
Sort string // сортировка
|
||
}
|
||
|
||
func parseDataviewBlock(markdown string) []DataviewQuery {
|
||
// Извлечение и парсинг dataview блоков
|
||
}
|
||
```
|
||
|
||
### Правила видимости
|
||
```yaml
|
||
# Конфигурация исключений
|
||
exclude_paths:
|
||
- "📋 Templates/"
|
||
- "Private/"
|
||
- "Draft/"
|
||
|
||
exclude_patterns:
|
||
- "*.private.md"
|
||
- "temp-*"
|
||
|
||
include_only_published: true
|
||
```
|
||
|
||
## 🎯 Приоритеты реализации
|
||
|
||
### Первоочередные задачи
|
||
1. **Go webhook** - основа для всех улучшений
|
||
2. **Инкрементальная сборка** - критично для производительности
|
||
3. **Скрытие служебных папок** - важно для чистоты публикации
|
||
|
||
### Вторичные задачи
|
||
1. **Dataview поддержка** - расширение функциональности
|
||
2. **Кастомизация Quartz** - улучшение внешнего вида
|
||
3. **AI-помощник** - качественное улучшение workflow
|
||
|
||
### Опциональные улучшения
|
||
1. Расширенная аналитика использования
|
||
2. Дополнительные форматы экспорта
|
||
3. Интеграция с другими сервисами
|
||
|
||
## 📋 Конкретные следующие шаги
|
||
|
||
### Немедленно (эта неделя)
|
||
- [ ] Создать Go модуль для webhook сервиса
|
||
- [ ] Настроить базовую структуру проекта
|
||
- [ ] Реализовать простейший HTTP сервер
|
||
- [ ] Протестировать получение webhook'ов от Gitea
|
||
|
||
### Ближайшие 2 недели
|
||
- [ ] Завершить базовый Go webhook сервис
|
||
- [ ] Интегрировать с существующим Git репозиторием
|
||
- [ ] Добавить запуск Quartz сборки из Go
|
||
- [ ] Начать работу над Git diff анализом
|
||
|
||
### Ближайший месяц
|
||
- [ ] Реализовать инкрементальную сборку
|
||
- [ ] Настроить исключение служебных папок
|
||
- [ ] Оптимизировать кеширование
|
||
- [ ] Начать работу над Dataview парсером
|
||
|
||
### Ближайшие 3 месяца
|
||
- [ ] Полная поддержка Dataview запросов
|
||
- [ ] Кастомизация Quartz под личные потребности
|
||
- [ ] MVP AI-помощника для поиска
|
||
- [ ] Все основные функции работают стабильно
|
||
|
||
---
|
||
|
||
*Связано с: [[Second Mind Pipeline/index|Главная страница проекта]]*
|
||
*Последнее обновление: 2024-12-19*
|