Files
vesti/openspec/changes/archive/2026-09-16-own-content-hub/specs/classifier/spec.md
T

2.1 KiB

Purpose

Классификация постов по направлениям локальным LLM + словарный фильтр. Дополняется приоритетом «своего контента» и поддержкой мультинаправлений для fan-out.

ADDED Requirements

Requirement: Приоритет своего контента

Классификатор MUST обрабатывать посты с is_own=1 как «сильные кандидаты»: при наличии направления по словарю — relevance=critical, classified=True — даже если LLM недоступна (фолбэк без LLM, пост не теряется). Для внешних постов поведение без изменений.

Scenario: Свой пост, LLM недоступна

  • WHEN пост is_own=1, словарь дал направление, но Ollama недоступна
  • THEN пост получает direction (словарь), relevance=critical, classified=True, method='dict-own' (не требует LLM)

Scenario: Свой пост без направления по словарю

  • WHEN пост is_own=1, словарь не дал направление
  • THEN классификации нет (classified=False) до LLM; пост не теряется (остаётся в очереди)

Requirement: Мультинаправления

Классификатор MUST уметь возвращать несколько направлений для поста (для маппинга fan-out); основное направление хранится в posts.direction, дополнительные — в classifications (таблица уже позволяет несколько классификаций на пост).

Scenario: Пост про Linux + AI

  • WHEN пост упоминает и линукс, и нейросети
  • THEN в classifications может быть несколько записей (linux, ai); fan-out использует оба при подтверждении