Session 2026-09-13: unify directions (canon+LLM-fallback, 966/1019), publisher dry_run fix, git repo, archive 8 changes, candidates-mail-ui WIP, docs

This commit is contained in:
kpa39l
2026-09-13 17:48:06 +00:00
parent c3f59f7b7a
commit 71fd48aa06
40 changed files with 305 additions and 7 deletions
@@ -0,0 +1,35 @@
## Why
Канонический список направлений проекта: **linux, tech, politics, games, electronics, llm**
(AGENT.MD, веб-форма fan-out). Но классификатор и веб используют ДРУГОЙ список:
`linux, dev, ai, tech, games, electronics, media` (classify.py:87, web/app.py:130,
keywords.py). Из-за этого:
- LLM получает на выбор dev/ai/media и никогда не предложит politics/llm;
- по факту в БД у своих постов появились направления dev (102), media (50), ai (33),
которых нет в каноне; при публикации fan-out по ним не сработает (веб-форма их не предлагает);
- 466 из 847 своих постов остались БЕЗ направления (не нашлось ни совпадения по словарю
под канон, ни LLM-варианта) — классификатору некорректно задавали список.
Нужно привести все места к единому канону направлений.
## What Changes
- Единый список направлений: `["linux", "tech", "politics", "games", "electronics", "llm"]`.
- `classifier/classify.py:87` — промпт LLM: использовать канон вместо локального списка.
- `web/app.py:130` — фильтр веба: канон.
- `classifier/keywords.py` — DIRECTIONS: привести к канону (dev/media/ai → убрать или
переименовать в tech/llm; добавить politics), чтобы словарь ставил только канонические.
- Переклассифицировать 466 своих постов без направления (limit большой) — LLM теперь
ставит politics/llm корректно.
- Legacy-значения в БД (dev/media/ai) — не удалять (правило: физически ничего не удаляем),
но при публикации они сами собой не выберутся (форма не предложит).
## Why Not
- Не удалять физически посты/направления — только корректно классифицировать дальше.
## Open Questions
- Маппинг старых dev/media/ai → новые? (пользователь сможет вручную поменять direction
при approve; авто-маппинг не делаем пока.)