| name | update-guide |
| description | Обновление гайда по визе цифрового кочевника в Италии из нового дампа основного Telegram-чата (nomadvisaitaly). Используй этот скил когда пользователь просит: обновить гайд, обработать новый дамп, разобрать result.json из основного DN-чата, извлечь информацию из nomadvisaitaly, обновить разделы гайда из чата. Также триггерь когда пользователь упоминает папку .datasource/ с дампом nomadvisaitaly или говорит о новых сообщениях в основном чате. НЕ триггерь на внешние чаты (emigrantista, rutoitaly, immigrazia_IT) — для них есть отдельный скил extract-sparse-data.
|
Обновление гайда из основного DN-чата
Ты обновляешь существующий гайд на основе нового дампа Telegram-чата Digital nomad Italy. Гайд уже наполнен — твоя задача извлечь новую и изменившуюся информацию из последнего дампа и обновить соответствующие разделы.
Входные данные
Дампы чата хранятся в .datasource/. Каждая папка — экспорт за определённый период:
.datasource/
ChatExport_2026-02-26/ <- первый полный дамп
ChatExport_2026-03-15/ <- сообщения от 2026-02-26 по 2026-03-15
ChatExport_YYYY-MM-DD/ <- и так далее
При обновлении:
- Обрабатывай самую новую папку — основной источник новых данных
- Предыдущие папки — референс для контекста (начало треда из прошлого периода, ответы в новом)
- Сообщения в день оверлапа могут дублироваться между папками — не обрабатывай повторно
Каждая папка содержит result.json. Формат сообщения:
{
"id": 1234,
"type": "message",
"date": "2026-02-15T10:30:00",
"from": "Имя",
"from_id": "user123456",
"text": "текст или массив объектов с text_entities",
"reply_to_message_id": 1230,
"reactions": [{"emoji": "...", "count": 3}]
}
Порядок работы
Шаг 1: Разбивка дампа на треды
Преобразуй result.json из новой папки в набор тредов (бесед). Сохрани в .datasource/ChatExport_YYYY-MM-DD/threads/.
Работа с reply на старые сообщения: Если в новом дампе есть reply_to_message_id на сообщение из предыдущего периода — загрузи то сообщение (и его тред) из предыдущей папки.
Правила группировки:
- По reply_to_message_id — транзитивно: если C -> B -> A, все три в одном треде
- По смежности и теме — последовательные сообщения (~30 мин) об одной теме, даже без reply:
- Один автор продолжает мысль несколькими сообщениями
- Другой автор отвечает по смыслу
- Общая тема обсуждения
- Разрыв треда (без reply-связи) — новый тред при:
- Пауза > 2 часов без reply-связи
- Явная смена темы
- Новый участник с несвязанным вопросом
- Возобновление треда — reply_to_message_id приоритетнее временного разрыва. Reply через часы/дни = продолжение старого треда.
Фильтрация: пропускай "type": "service", спам, одиночные стикеры/гифки без текста.
Формат треда:
{
"thread_id": 1,
"messages": [...],
"date_start": "2026-02-15T10:30:00",
"date_end": "2026-02-15T11:05:00",
"participants": ["Имя1", "Имя2"]
}
Шаг 2: Поиск полных кейсов (ПРИОРИТЕТ)
Перед обновлением гайда — пройди все треды и найди полные кейсы подачи/получения визы DN или ВНЖ DN. Вставь их в 18-cases.md. Это приоритетнее всего остального.
Что считается полным кейсом (достаточно одного из):
- Получение визы DN от начала до конца (документы -> подача -> решение)
- Получение ВНЖ DN после приезда (квестура -> permesso -> итог)
- Значимый этап с деталями: консульство, тип занятости, даты, результат
Сигналы в тексте: полная библиотека regex-паттернов в references/case-patterns.md (~60 паттернов по категориям: получение визы, ВНЖ, nulla osta, подача, квестура, консульство, личный опыт, таймлайны).
Правило: исходный текст от автора, без переработки. Кейсы от новых к старым. Не дублировать уже имеющиеся (проверяй по ID сообщения).
Шаг 3: Извлечение информации из тредов
Для каждого треда извлеки полезную информацию, учитывая весь контекст беседы:
- Итоговый вывод треда важнее отдельных реплик. Если неточность исправили — фиксируй скорректированную версию.
- Реакции (3+ штук) = подтверждение от сообщества, повышают достоверность.
| Категория | Примеры | Приоритет |
|---|
| Конкретные кейсы | «подал в Белграде, получил за 3 недели» | Высший |
| Изменения процедур | «теперь квестура Милана требует X» | Высший |
| Документы и требования | «нужен апостиль на DDV в Тбилиси» | Высший |
| Сроки и стоимость | «перевод стоил 5000р», «ждал 45 дней» | Высший |
| Контакты и ресурсы | переводчики, консультанты, ссылки | Средний |
| Практические советы | «записывайтесь через бот», «берите копии» | Средний |
| Проблемы и решения | «потеряли документы — вот что делать» | Средний |
| Общие рассуждения без конкретики | «в Италии всё сложно» | Игнорировать |
| Оффтопик, флуд, эмоции без фактов | | Игнорировать |
Обязательный контекст для каждого извлечения:
- Консульство / визовый центр / квестура / город
- Тип занятости (ИП / наёмный)
- Дата события или сообщения
- ID сообщения(й) для ссылки
[nomadvisaitaly #ID]
Шаг 4: Обновление гайда
На основе извлечённого обнови файлы гайда (01-overview.md ... 21-costs.md):
- Не переписывай существующий текст без причины. Исключение: запись на основе сообщения вне контекста, которое в полном треде было исправлено — перепиши с новым источником.
- Новая информация -> добавь в соответствующий раздел с маркировкой и ссылкой.
- Противоречие -> сохрани оба варианта, пометь 🔴, укажи даты. Если новая явно отменяет старую — обнови основной текст, старую в примечание.
- Подтверждение -> добавь дополнительный источник/кейс.
- Устаревшая информация -> пометь как устаревшую с датой.
Обработка ссылок
- Telegram-ссылки: переходи по ссылкам на другие сообщения, учитывай пересланные.
- Официальные источники: если в треде есть ссылки на сайты консульств, integrazionemigranti.gov.it, законодательство — переходи и проверь, подтверждают или опровергают они обсуждаемое. Данные из официальных источников -> маркировка 🟢.
Маркировка и ссылки
Каждое утверждение = маркер + источник + дата:
- 🟢 Официально — законодательство, сайты консульств, integrazionemigranti.gov.it
- 🟡 Из опыта — реальные кейсы, не закреплено официально
- 🔴 Спорно — противоречивая информация, разные исходы
Формат: 🟢/🟡/🔴 Текст. | [Источник] | Дата
Формат ссылок — обязательно кликабельные markdown-ссылки с URL: [nomadvisaitaly #1234](https://t.me/nomadvisaitaly/1234). Для внешних чатов: [rutoitaly #1234](https://t.me/rutoitaly/1234), [emigrantista #1234](https://t.me/emigrantista_answers/1234), [immigrazia_IT #1234](https://t.me/immigrazia_IT/1234). Для нечатовых: [VMS Москва], [Консульство Москва], URL. НЕ писать [rutoitaly #1234] без (https://t.me/...).
Контекстуализация
Информация сильно варьируется по регионам:
- Где — консульство, визовый центр, квестура, город
- Кто — тип занятости (ИП / наёмный), гражданство если влияет
- Когда — дата (процедуры меняются)
- Визовый центр ≠ консульство (центр — посредник, решение за консульством)
- «Виза D» ≠ DN-виза (виза D — общая категория)
Шаг 5: Проверка саммари
После обновления фактов в файлах — проверь блоки > **Коротко:** в начале каждого затронутого файла. Саммари — производное от фактов, и должно оставаться актуальным.
Если добавленный факт:
- Противоречит саммари → обновить саммари
- Добавляет важную оговорку (новое консульство, изменение сроков, новый порядок) → дополнить саммари
- Не влияет на саммари → оставить как есть
Пример: если в 10-consulates.md появился факт «Москва теперь требует контракт на год», а саммари говорит «Москва принимает Booking» — саммари нужно обновить.
Чеклист перед финализацией