| name | dnv-documents |
| description | Заполнение форм и черновиков DNV строго из профиля кейса через реестр полей. fill_forms.py для механической заливки, field_qa.py для самопроверки. Значение поля = значение профиля; нет данных → [ТРЕБУЕТСЯ], не выдумка. |
Заполнение форм и черновиков — инструменты и правила
Когда нужно заполнить формы или подготовить черновики документов, используй
скрипты engine/scripts/ и реестр полей knowledge_base/forms/registry.json.
Все значения — только из user/case-profile.json. Ничего не выдумываешь.
Если профиля ещё нет или он неполный — заполняй то, что можно, и помечай
остальное как [ТРЕБУЕТСЯ]. Не блокируй работу: черновик с пропусками полезнее
пустоты.
Механическая заливка форм (детерминированно)
python engine/scripts/fill_forms.py user/case-profile.json knowledge_base/forms/registry.json --out-dir user/drafts --allowed-root user
Создаёт user/drafts/<форма>.md (лист заполнения: поле → значение) и
user/drafts/drafts.json. Правила, которые гарантирует скрипт:
- значение поля = значение профиля по
profile_key;
- нет значения →
[ТРЕБУЕТСЯ: <поле>] (никогда не подставляется догадка);
- значения доменных полей (напр.
sexo) берутся как есть из профиля —
корректность проверит ревью (field-QA).
Сами официальные формы MI-T/MI-F заполняются человеком на sede по этому листу.
Листы — это «что вписать в каждое поле».
Неприменимые формы
В реестре у них стоит applies_when, поэтому fill_forms.py выводит их со
строкой ⏸️ не применяется, а field_qa.py не считает их [ТРЕБУЕТСЯ]
пропусками. Условие двух родов:
- этап —
EX-17, EX-17-familiar, tasa-790-012
(case.resolution_notified): относятся к этапу после одобрения;
- состав —
MI-F, EX-17-familiar (family.present): у
соло-заявителя семейной формы нет вовсе.
Разница важна в одном месте: форму этапа стоит назвать «пока рано», форму
состава — «к вашему кейсу не относится», иначе соло-заявитель будет ждать этап,
который для него не наступит.
Самопроверка черновиков (field_qa.py)
python engine/scripts/field_qa.py user/case-profile.json knowledge_base/forms/registry.json user/drafts/drafts.json --out-dir user/drafts --allowed-root user
Гарантии: вердикт на КАЖДОЕ поле реестра, корректность не правдоподобие,
контролируемые словари (ловит sexo=indefinido), галлюцинации (профиль пуст,
а в черновике значение → WRONG). Отчёт: user/drafts/field_qa_report.md.
Ненулевой выход = есть WRONG.
Текстовые документы из шаблонов (escritos, queja)
Для свободнотекстовых документов используй templates/:
templates/escrito_*.template.md, templates/queja_defensor.template.md —
подставь {{ПЛЕЙСХОЛДЕРЫ}} из профиля. Плейсхолдеры, которых нет в профиле
(например {{REGAGE_SOLICITUD}} до подачи) — оставь как [ТРЕБУЕТСЯ: …],
не выдумывай REGAGE/expediente.
Пиши результат в user/drafts/<имя>.md (frontmatter A4/2.5cm уже в шаблонах).
Контроль качества
Перед тем как считать черновики готовыми:
- Не осталось ли
{{...}}-плейсхолдеров (должны быть подставлены или помечены
[ТРЕБУЕТСЯ]).
- Все обязательные поля форм либо заполнены, либо явно
[ТРЕБУЕТСЯ].
- Никаких значений «от себя»: каждое значение прослеживается к профилю.
Это черновики, требующие независимой экспертной/официальной проверки.