---
name: dnv-tie
description: Внутренний справочник по последней миле DNV — от resolución до физической карты TIE. Расчёт дедлайна запроса TIE, черновик EX-17 из профиля с field-QA, чеклист визита (tasa 790-012, фото, что нести), recogida, autorización de regreso. Движок НЕ записывает на cita, НЕ платит tasa, НЕ подаёт.
---

# Последняя миля: от одобрения до карты TIE — внутренний справочник

Когда пользователь получил положительное решение, ты ведёшь
`user/tie-checklist.md` — чеклист последней мили. Логика каждого обращения: что
изменилось → пересчитать → что делать сейчас.

Разделение со справочником по трекингу: трекинг ведёт кейс **до** резолюции
(сроки, silencio, escritos), TIE — **после** (карта). Escritos и эскалацию здесь
не дублируй — если резолюции ещё нет, это зона трекинга.

## 🚫 Необратимые действия — не твои

Движок **не записывается на cita, не платит tasa, не подаёт документы и не
выдумывает номера, суммы и даты**. Он не имитирует эти действия и не сообщает,
что они выполнены. Всё, что ниже, — подготовка, которую исполняет пользователь.

Факт одобрения, дату уведомления и всё, что происходило в отделении, сообщает
**пользователь**. Нет данных → `[ТРЕБУЕТСЯ: …]`, никогда не правдоподобная
догадка.

## Входные данные

Этот справочник применяется, когда пользователь сообщил, что пришла
`resolución favorable` или `certificado de acto presunto`. Спроси прямо.

- Решения **нет** → скажи, что пока решения нет — ведение сроков и escritos
  в справочнике по трекингу. Возвращайтесь, когда придёт resolución или
  certificado de acto presunto.
- Нет `user/case-profile.json` → без профиля черновик EX-17 заполнять нечем;
  сначала нужно собрать профиль (через интервью с пользователем).

## Что изменилось?

- `user/tie-checklist.md` **нет** — первый запуск. Спроси: дата **уведомления** о
  решении (запиши и дату, напечатанную в самой резолюции, если она другая —
  норма считает срок не от уведомления, а «с момента, когда разрешение
  предоставлено или вступает в силу», см. норм-файл §2), тип решения
  (INICIAL/RENOVADA — сверь с `applicant.tipo_solicitud` в профиле), подавался
  ли член семьи.
- **Запиши дату уведомления в профиль** как `case.resolution_notified`
  (ISO `YYYY-MM-DD`, схема — `../dnv-intake/profile.schema.json`). Это не
  лишний вопрос: без неё реестр форм считает `EX-17` / `EX-17-familiar` /
  `tasa-790-012` / `tasa-790-012-familiar` **неприменимыми** (`applies_when`), и
  field-QA не гейтит их обязательные поля. Записал — формы включились.
- Файл **есть** — прочитай его и спроси, что нового: взята ли cita и на какую
  дату, оплачена ли tasa, сдал ли отпечатки, выдали ли справку со сроком,
  получена ли карта. **Не затирай файл молча** — обнови его по ответам.

## Дедлайн запроса TIE

По `knowledge_base/norms/tie-huellas.md` (§2) посчитай **конкретную календарную
дату** от сообщённой пользователем даты. Это арифметика из его даты, не
«типичный срок». Основание — **RD 1155/2024 art. 209**, один месяц.

Скажи вслух две вещи, обе есть в норм-файле:
- **точку отсчёта норма формулирует не как «от уведомления»**, а как «с въезда в
  Испанию либо с момента, когда разрешение предоставлено или вступает в силу».
  Если дата уведомления и дата в резолюции разошлись — не выбирай прочтение за
  пользователя: посчитай от той даты, которую он назвал, и **явно скажи**, что
  какая из дат его — сверяется по тексту резолюции и в отделении;
- в практике сообщают, что наказания за просрочку не наблюдали — это
  наблюдение, **не норма и не основание тянуть**; до карты буксуют смежные шаги.

Норм-файл несёт `as-of`. Старше текущего года → пометь «(проверить вживую)»
рядом с рассчитанной датой.

## Черновик EX-17

```
python engine/scripts/fill_forms.py user/case-profile.json knowledge_base/forms/registry.json --out-dir user/drafts --allowed-root user
```

Заполнятся все формы реестра; на этом шаге нужны `EX-17` и (если член семьи
подавался) `EX-17-familiar`, плюс `tasa-790-012` — **и, если член семьи
подавался, `tasa-790-012-familiar`**.

> ⚠️ **Tasa 790-012 — на КАЖДОГО, кому выдают карту.** Карта TIE персональная,
> значит и пошлина за выдачу своя: **два бланка и два платежа**, а не один на
> дело. Реестр это выражает парой форм; `tasa-790-012-familiar` гейтуется
> `case.resolution_notified` + `family.present`, поэтому у соло-заявителя её нет
> вовсе. Приходить на huellas с одним оплаченным бланком на двоих — недоплата.

**Поля, которых в профиле обычно ещё нет** — их не спрашивали в интейке
намеренно (`branch: tie`): `applicant.father_name`, `applicant.mother_name`,
`applicant.comisaria_provincia`, `tasa.epigrafe_012`. Они выйдут как
`[ТРЕБУЕТСЯ: …]`. **Спроси их у пользователя и допиши в `user/case-profile.json`,
затем перегенерируй.** Не подставляй правдоподобное.

Дальше — field-QA двухслойным механизмом:

**Слой A — механический baseline:**
```
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
```
Вердикт на КАЖДОЕ поле реестра (молчание = бага ревью), контролируемые словари,
галлюцинации (профиль пуст, а в черновике значение → WRONG).

**Слой B — независимая ре-деривация (two-process):**

1. Вызови субагента **field-qa-reviewer**, передав в делегирующем сообщении
   **только** содержимое `user/case-profile.json` и
   `knowledge_base/forms/registry.json`. **Путь черновика НЕ передавай.** Он
   вернёт ожидаемые значения по каждому полю (вслепую).
2. Затем в этом (неограниченном) шаге **сам** прочитай `user/drafts/drafts.json`
   и сдиффай ожидаемые значения с фактическими. Расхождение → WRONG/UNCERTAIN.
3. Изоляция проверяема: ожидаемые значения сгенерированы ДО того, как черновик
   попал в контекст диффа. Если field-qa-reviewer запросил черновик — это
   нарушение, переспроси без него.

Отдельно проговори грабли EX-17 из `common_errors` реестра, которые скрипт не
ловит — он печатает `common_errors` только рядом с `MISSING`/`WRONG`, а эти поля
выходят `OK` (значение есть и совпадает с профилем; беда не в значении):
галочки Sexo / Estado civil / RENOVACIÓN стоят в данных формы, но не
рисуются частью просмотрщиков PDF — открыть в другом; номер паспорта должен быть
**действующего**, не предыдущего; в `Lugar de nacimiento` в реальном прогоне
однажды оказался телефон из соседнего поля бланка.

**EX-17 или MI-TIE — не решай за пользователя.** Практика расходится по
отделениям (см. норм-файл §4 и `../practice/digest.md`, тема `TIE_huellas`).
Скажи, что расхождение есть, и что распространённый в сообществе ход — принести
обе формы.

## Tasa 790-012

- Эпиграф выбирается под **тип решения**: `applicant.tipo_solicitud` = RENOVADA
  → строка renovación; INICIAL → primera concesión. Это разные строки с разными
  суммами.
- **Сумму не называй — ни свою, ни «ориентировочную».** В норм-файле §5 сумм нет
  намеренно: они установлены отдельным актом (**Orden PJC/617/2025**) и
  пересматриваются. Дай пользователю два способа получить актуальную: посмотреть
  действующую редакцию Orden на BOE — или, проще, **выбрать эпиграф в бланке и
  прочитать сумму, которую бланк подставит сам**. Самопроверка отсюда же: не та
  сумма = вероятно, не та строка.
- **Своя tasa на каждого.** Если член семьи тоже получает карту — бланков
  **два**: `tasa-790-012` (титуляр) и `tasa-790-012-familiar` (член семьи), с
  его именем и его NIE. Один платёж «за обоих» не проходит. Реестр генерирует
  оба листа, field-QA помечает пропущенный.
- Оплата — **до визита**. По практике: нести **оригинал** квитанции (со сканом
  сообщают о развороте); способы оплаты различаются по банкам. Оригиналов,
  соответственно, тоже два.

## Пакет и визит

Собери чеклист из норм-файла §3, §6, §7 под конкретный кейс: подтверждение
записи, EX-17 (и MI-TIE рядом), tasa + оригинал квитанции, паспорт + копия,
резолюция, фото 32×26 мм, падрон (если отделение просит или адрес изменился),
предыдущая TIE при продлении.

Отметь два места, где практика расходится и надо **сверить со своим
отделением**: название трамита для записи и требование падрона.

## После сдачи

- Спроси, дали ли справку со сроком готовности.
- Скажи, что **о готовности не уведомляют**: отслеживать по номеру партии (lote)
  на портале записи.
- В части отделений `recogida` — **отдельная запись** (свой трамит). Уточнить
  на месте при сдаче отпечатков — это дешевле, чем узнать потом.

## Ветка regreso (только по запросу)

Спроси **один раз**: планируется ли выезд из Испании до получения карты?

- **Нет** → не разворачивай. Одной строкой: «если планы изменятся — вернитесь,
  есть autorización de regreso».
- **Да** → разверни норм-файл §9: основание (**RD 1155/2024 art. 5**), форма
  EX-13, tasa (790-052 через Oficina de Extranjería, 790-012 через Comisaría),
  фото, отдельная cita. Дальше — три вещи, каждую назови явно:
  - **Срок — до 90 дней, но точка отсчёта зависит от случая** (норм-файл §9.1):
    продление запрошено **до истечения** → от **caducidad**; запрошено **после
    истечения** → от **выдачи regreso**; первичное разрешено favorable + поездка
    по необходимости при исключительных обстоятельствах → от **выдачи regreso**.
    Не называй один срок «типичным» — спроси, какой случай у пользователя.
  - **Ограничения на число пересечений НЕТ.** В течение 90 дней въезды и выезды
    не ограничены, документ один. Если пользователь пришёл с убеждением «одно
    пересечение» — поправь прямо: это было в **отменённом** RD 557/2011.
  - **Ограничена точка въезда:** только через **habilitated испанские
    Pasos Fronterizos**, не через пограничные пункты других стран Шенгена.
    Практическая формулировка того же — regreso **не виза**.

## Структура `user/tie-checklist.md`

Пиши/перезаписывай файл (gitignored; значения — только здесь):

```markdown
# TIE: последняя миля — обновлено <дата>

## Ключевые факты (от пользователя)
- Решение: <resolución | certificado de acto presunto> · уведомление: <дата>
- Тип: <INICIAL | RENOVADA> · член семьи: <да | нет>
- Отделение/провинция: <… | [ТРЕБУЕТСЯ]>

## Дедлайн
| Дата | Что наступает | Основание (норм-файл, as-of) | Статус |

## Шаги
- [ ] Cita на huellas — трамит: <название> · взята на: <дата | [ТРЕБУЕТСЯ]>
- [ ] Tasa 790-012 (титуляр) — эпиграф: <… | [ТРЕБУЕТСЯ]> · оплачено: <дата | нет>
- [ ] Tasa 790-012 (член семьи) — <не применяется, если подаётся соло> · эпиграф: <… | [ТРЕБУЕТСЯ]> · оплачено: <дата | нет>
- [ ] EX-17 — черновик: user/drafts/EX-17.md · field-QA: <OK/WRONG/MISSING>
- [ ] Фото 32×26 мм
- [ ] Пакет на визит (см. ниже)
- [ ] Сдача отпечатков — <дата>
- [ ] Recogida — отдельная cita? <да | нет | уточнить>

## Что нести
| Что | Есть | Комментарий |

## Regreso
<не требуется | развёрнуто: EX-13, tasa, cita, ограничения>

## Сверить вживую
- <суммы/эпиграф tasa, название трамита, требование падрона — по своей провинции>
```

## Выход

Обновлённый `user/tie-checklist.md` + короткий ответ в чат: **ближайший дедлайн**
и одно-два конкретных действия. Явно повтори: это черновик и чеклист, суммы и
названия трамитов сверяются вживую, движок ни на что не записывает и ничего не
оплачивает.
