Перейти до вмісту

ADR-0011: База знань правил вступу — citation-grounded трирівнева структура

Статус: accepted · 2026-06-07 · власник @Vladbandurin

AI-агент Abitly має відповідати абітурієнтам на питання про вступну кампанію, спираючись на офіційні документи МОН і цитуючи конкретний пункт. Джерела: «Порядок прийому на навчання для здобуття вищої освіти в 2026 році» (Наказ МОН №373 від 26.02.2026, зареєстрований у Мін’юсті за №374/45768, zakon.rada) — 137-сторінкова нормативка — та «Гід вступника 2026».

Жорсткі вимоги: пінпойнт-цитата (Розділ X, пункт N) + лінк; щорічне версіонування (2026 ≠ 2027); машиночитані й дослівні дати/квоти/мінбали/формула КБ; українська мова.

Трирівнева гібридна структура з єдиним джерелом правди (vstup-rules/2026), скомпільованим у дві проєкції.

  1. Три рівні, правило «норма — король».
    • NormUnit (Рівень 1) — дослівний текст пункту/абзацу/глосарій-терміна; єдиний цитований атом зі стабільною адресою 2026:rozdil-III:p-9.
    • Fact (Рівень 2) — типізовані точні значення (дати, квоти, мінбали, формула КБ); кожен cites назад на NormUnit (NOT NULL) — факт без цитати = помилка збірки.
    • GuideStep (Рівень 3) — людська покрокова надбудова; is_authoritative=false, ніколи не джерело цитати.
  2. Одне джерело → дві проєкції. YAML-корпус компілюється у (а) Starlight-markdown (/vstup/2026/ на хабі, з якорями #p-9) і (б) Postgres-схему vstup на shared RDS (FTS українською + jsonb-фасети). Усуває дрейф: хаб і бот не можуть цитувати різні дати.
  3. Без нового датастору. Детермінований доступ: фасетний lookup фактів + Postgres FTS через наявний abitly-mcp. Вектор-сховище не вводимо; за потреби — pgvector на тій самій RDS (ADR-0010), ніколи як джерело цитати.
  4. Рік — first-class партиція. Кожен unit_id/fact_id namespace-ований роком; 2026/ заморожується, 2027/ авторується як нова тека → агент не може змішати роки.
  5. Grounding-гард fail-closed. LLM пише лише україномовну обгортку; усі числа/дати — зі сховища; цитата обчислюється детерміновано з адреси (fact-merge boundary ADR-0003); відмова без резолвабельної цитати, заборона admission-guarantee лексики (ADR-0009).
  • + Кожна відповідь має перевірювану пінпойнт-цитату на офіційне джерело; npm run build (validate + link-check) — безкоштовний CI-гейт цілісності.
  • + Нуль нової інфри (reuse shared RDS + abitly-mcp); MVP (строки/мінбали/квоти) корисний одразу.
  • Дослівне наповнення нормтексту — ручна робота з людським sign-off (дослівність не можна автоматизувати «наосліп»).
  • Межа скоупу: правила конкретних ЗВО (прохідні, ваги, ціни) — поза корпусом; Порядок задає «підлогу» (мінбали 130/150), ЗВО-специфіка живе в ЄДЕБО.

Деталі — spec docs/superpowers/specs/2026-06-07-mon-vstup-rules-structure-design.md; структура — vstup-rules/; контракт runtime — vstup-rules/contract/.