ADR-0011: База знань правил вступу — citation-grounded трирівнева структура
Статус: accepted · 2026-06-07 · власник @Vladbandurin
Контекст
Section titled “Контекст”AI-агент Abitly має відповідати абітурієнтам на питання про вступну кампанію, спираючись на офіційні документи МОН і цитуючи конкретний пункт. Джерела: «Порядок прийому на навчання для здобуття вищої освіти в 2026 році» (Наказ МОН №373 від 26.02.2026, зареєстрований у Мін’юсті за №374/45768, zakon.rada) — 137-сторінкова нормативка — та «Гід вступника 2026».
Жорсткі вимоги: пінпойнт-цитата (Розділ X, пункт N) + лінк; щорічне версіонування (2026 ≠ 2027); машиночитані й дослівні дати/квоти/мінбали/формула КБ; українська мова.
Рішення
Section titled “Рішення”Трирівнева гібридна структура з єдиним джерелом правди (vstup-rules/2026), скомпільованим у дві проєкції.
- Три рівні, правило «норма — король».
- NormUnit (Рівень 1) — дослівний текст пункту/абзацу/глосарій-терміна; єдиний цитований атом зі стабільною адресою
2026:rozdil-III:p-9. - Fact (Рівень 2) — типізовані точні значення (дати, квоти, мінбали, формула КБ); кожен
citesназад на NormUnit (NOT NULL) — факт без цитати = помилка збірки. - GuideStep (Рівень 3) — людська покрокова надбудова;
is_authoritative=false, ніколи не джерело цитати.
- NormUnit (Рівень 1) — дослівний текст пункту/абзацу/глосарій-терміна; єдиний цитований атом зі стабільною адресою
- Одне джерело → дві проєкції. YAML-корпус компілюється у (а) Starlight-markdown (
/vstup/2026/на хабі, з якорями#p-9) і (б) Postgres-схемуvstupна shared RDS (FTS українською + jsonb-фасети). Усуває дрейф: хаб і бот не можуть цитувати різні дати. - Без нового датастору. Детермінований доступ: фасетний lookup фактів + Postgres FTS через наявний
abitly-mcp. Вектор-сховище не вводимо; за потреби —pgvectorна тій самій RDS (ADR-0010), ніколи як джерело цитати. - Рік — first-class партиція. Кожен
unit_id/fact_idnamespace-ований роком;2026/заморожується,2027/авторується як нова тека → агент не може змішати роки. - Grounding-гард fail-closed. LLM пише лише україномовну обгортку; усі числа/дати — зі сховища; цитата обчислюється детерміновано з адреси (fact-merge boundary ADR-0003); відмова без резолвабельної цитати, заборона admission-guarantee лексики (ADR-0009).
Наслідки
Section titled “Наслідки”- + Кожна відповідь має перевірювану пінпойнт-цитату на офіційне джерело;
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/.