Files
email-assistant/openspec/changes/imap-realtime-sync/specs/email-classification/spec.md
T

1.8 KiB

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 классификация не выполняется заново (идемпотентно, как сейчас)