OpenSpec: разнести openspec по проектам

This commit is contained in:
2026-09-11 17:30:17 +00:00
parent 757f3413e9
commit f44bc27ce1
20 changed files with 1846 additions and 0 deletions
@@ -0,0 +1,55 @@
# Proposal: Анализ хранения писем — ФС vs Maildir
## Why
Пользователь хранит письма в файловой системе как `email.md` (YAML-frontmatter + тело)
в `/opt/hermes/email/<folder>/YYYY/MM/UID/`. Мотивация — **использовать локальную
нейросеть (Qwen3:8b через Ollama) как инструмент в обычных скриптах**, без облака
и трат. Но перед развитием веб-интерфейса (и вообще проекта) нужно **объективно
оценить**, удобен ли текущий формат хранения по сравнению с **Maildir** и
аналогичными (MBOX, notmuch) — чтобы не закладывать архитектуру на неправильном
фундаменте.
Пользователь явно сказал: «анализировать насколько мой подход в хранении писем
в файловой системе удобен по сравнению с maildir и ему подобными способами.
Последняя задача в приоритете, пока мы не ушли далеко».
## What Changes
Создаётся документ `STORAGE_ANALYSIS.md` в корне `/opt/hermes/email-assistant/` —
объективное сравнение подходов к хранению писем:
1. **Текущий формат** (`email.md`: YAML-frontmatter + тело в `/YYYY/MM/UID/`)
2. **Maildir** (стандарт: `cur/`, `new/`, `tmp/`, имя файла = `host.timestamp.pid_uid.size:2,S`)
3. **MBOX** (один mbox-файл на папку)
4. **notmuch** (индексный слой поверх Maildir/почты)
Критерии сравнения (таблица):
- **Производительность** инкрементального чтения (LLM-анализ в скриптах)
- **Устойчивость** к сбоям (атомарность, потеря данных)
- **Интеграция** с инструментами (grep/find/jq/obsidian)
- **Пригодность для LLM** (быстрое чтение тела без парсинга MIME)
- **Совместимость** со стандартными MUA (mutt/neomutt/thunderbird)
- **Масштабируемость** (10k, 100k писем)
- **Резервное копирование** (Yandex Disk, git)
## Capabilities
### New Capabilities
- `email-storage-format`: Документированное обоснование выбора формата хранения писем
(текущий vs Maildir vs MBOX vs notmuch) и рекомендация по дальнейшему развитию.
### Modified Capabilities
<!-- нет -->
## Impact
- **Код:** нет изменений кода, только документация
- **Документация:** новый файл `STORAGE_ANALYSIS.md`, ссылка из `README.md`
- **Риск:** анализ может порекомендовать миграцию на Maildir — тогда это
отдельный change (следующий шаг). Пока — только документ, **ничего не мигрируем**.
## Rollback
- Удалить `STORAGE_ANALYSIS.md` и ссылку из `README.md`.
- Данные не трогаются — откат тривиален.