c9f3eed8ed
- classify(): bestScore стартует с 0 (нужно совпадение>0), иначе берётся явный fallback (последнее правило), а не первое. Чинит свал theory-statements→§15 и word-problems→проценты. - optsText(): анализ текста вариантов ответа (формат пар [label, html]) — theory-statements размечаются по содержанию утверждений. - alg-word-problems fallback → algebra-7-ch3 §16 (задачи уравнением), не проценты. - Таксономия §: перенесена с gitignore-пути data/ на отслеживаемый backend/scripts/exam-textbook-sections.json + генератор gen-exam-textbook-sections.js. - Результат: 784/800 (98%) размечено, спреды по подтемам корректны. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>