mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 09:15:09 +00:00
26 lines
1.8 KiB
Markdown
26 lines
1.8 KiB
Markdown
# email-classification Specification
|
|
|
|
## MODIFIED Requirements
|
|
|
|
### Requirement: Классификация каждого нового письма
|
|
|
|
Классификация писем (Qwen3:8b через Ollama) MUST запускаться не только по
|
|
расписанию (cron `mail-classify-handlers`), но и по событиям из ChangeLog
|
|
(новое письмо / изменённое письмо), которые генерирует сервис
|
|
`email-imap-realtime-sync`. Механика классификации (теги info/urgent/task/meeting
|
|
+ `classification`/`classification_reason` в frontmatter) не меняется.
|
|
|
|
#### Scenario: Новое письмо после архивации
|
|
- **GIVEN** письмо заархивировано (`mail_archive.py`)
|
|
- **WHEN** `email_classifier.py` обрабатывает письмо
|
|
- **THEN** в frontmatter появляются `classification` и `classification_reason`
|
|
|
|
#### Scenario: Новое письмо классифицируется сразу
|
|
- **GIVEN** в ChangeLog появилось событие `added`
|
|
- **WHEN** анализатор `email-change-analyzer` обрабатывает событие
|
|
- **THEN** письмо классифицируется (тег + обоснование в frontmatter) без ожидания cron
|
|
|
|
#### Scenario: Событие обработано повторно (идемпотентность)
|
|
- **GIVEN** письмо уже классифицировано (есть `classification` в frontmatter)
|
|
- **WHEN** анализатор видит то же событие повторно (например, после рестарта)
|
|
- **THEN** классификация не выполняется заново (идемпотентно, как сейчас) |