Виправлено дефекти маршрутизації в деревах рішень, посилено валідатор
Аудит усіх алгоритмів лікування через engine walker, а не через лоадер, виявив дефекти маршрутизації, через які обрані індикації мовчки зникали зі згенерованих планів.
Написано ретроспективно, опубліковано 19 липня 2026.
База знань проходила валідацію чисто, а плани в окремих гілках усе одно виходили неправильними. Причина в тому, що лоадер перевіряє, чи файл коректно сформований, а engine проходить дерево рішень — і це різні питання. Обхід кожного алгоритму так, як це робить engine, виявив клас дефектів, який лоадер і не мав шансу побачити.
Дефекти
- Колізія id кроку через вісімкове число в YAML. В одному алгоритмі фолікулярної лімфоми
step: 01розпарсився як ціле 1 і зіткнувся з наявнимstep: 1. Engine мовчки викидав крок про рефрактерність до ритуксимабу в другій лінії й спрямовував перший рецидив у гілку третьої лінії. - 34 відсутні записи в
output_indicationsу 25 файлах. Ці індикації були досяжні черезresult, default або альтернативу в дереві рішень, але були відсутні у спискуoutput_indicationsалгоритму. Plan engine будує треки лише з цього списку, тому такі індикації зникали зі згенерованих планів — це справжній функціональний баг, не косметичний. - 6 мертвих заглушок з однією гілкою, які використовували поле
branch_target, що engine ніколи не читає, один недосяжний порожній крок і одне зламане посилання на джерело.
Як аудит став запобіжником
Разовий аудит, який ніхто не змушує дотримуватися, з часом знецінюється. Тепер валідатор трактує пʼять із цих проблем як жорсткі помилки контракту: дублікати id кроків, посилання next_step в нікуди, result поза output_indications, default або альтернативу поза output_indications та result, що вказує на неіснуючу індикацію. Недосяжні кроки й порожні результати позначаються попередженнями. Перевірки покриті девʼятьма тестами.
Деталі — у коміті 3f0b0d7e9f, злитому в master як 161534aa73 (PR #629). Після виправлень кількість помилок контракту в алгоритмах дорівнює нулю.
Що свідомо не виправляли автоматично
Близько 237 гілок лікування керуються вільним текстом у полі condition: замість структурованих правил, через що вони недосяжні для walker. Виправлення потребує структурованого авторингу red flags і клінічного підпису двох рецензентів, тому вони залишаються в backlog, а не переписуються інструментом.
Коментарі
Гілки публічні й індексуються — будь ласка, не пишіть у них персональні медичні дані. Знайшли клінічну помилку? Відкрийте issue.
Коментарі ще не увімкнено — бекенд потрібно налаштувати.