关于 ex-ussr-kinship-research
ex-ussr-kinship-research 是用于研究前苏联地区家族关系的技能,面向需要可复核历史证据的家谱研究。它记录来源、区分材料与解释,并按证据强度评估关系。
主要功能
- 01记录材料来源与出处
- 02区分原始记录和解释
- 03追踪姓名及地名变体
- 04维护人物、材料和主张登记册
- 05评估证据并保留矛盾
- 06持续推进研究计划
适用场景
- 01核验历史人物之间的亲属关系
- 02整理档案文件和家族材料
- 03处理跨语言姓名与历史地名
- 04记录证据冲突和待查问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ denissergeevitch/ ex-ussr-kinship-research --skill ex-ussr-kinship-research安装后在 Claude Code 中输入/ex-ussr-kinship-research确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdLICENSE.gitignoreassets/claims-register.csvrelationship-register.csvphotos-readme.template.mdcase-intake.template.yamlperson-register.csvartifact-register.csvfinal-report.template.mdreport-pdf.template.htmlsearch-log.csvevals/marginal-notes.yamlclaim-dependence.yamlsearch-validation.yamlnext-research-questions.yamldiscovery-and-logic.yamlsource-acquisition.yamltree-and-parish.yamlregister-counts.yamlresearch-coordination.yamlreferences/browser-and-captcha.mdcorrespondence.mdevidence-protocol.mdfamilysearch-indexes.mdex-ussr-locale-guide.mdfield-lessons.mdchangelog.mdhabsburg-galicia-bukovina.mdphoto-search.md详细介绍
目的
通过可复现的研究确认或否定亲属关系。保留每件材料的来源,区分记录与对记录的解读,考虑历史边界和姓名变体,并按证据强度对结论排序。
沟通语言 / Language
始终使用用户的语言回复。 本文件以俄语撰写,但这不意味着回复也必须使用俄语。
- 使用用户最新消息的语言与用户沟通:英语、乌克兰语、俄语、波兰语、德语等。如果用户明确要求使用其他语言,则遵照要求。
- 引用来源时保留原文拼写(西里尔字母、拉丁字母、旧拼写)。如有助于理解,可在旁边附上用户语言的译文。
- 使用用户的语言填写
assets/中的模板(报告、登记表):翻译标题和说明。CSV 列名、标识符(person_id、claim_id、artifact_id)和状态(single-source、corroborated等)不翻译。 - 使用来源语言(俄语、乌克兰语、波兰语、罗马尼亚语、德语、意第绪语等)编写搜索查询,而不是使用沟通语言。
- 在
case-intake.yaml的requested_output_language字段中记录沟通语言。默认值为auto,即用户使用的语言。
技能更新
开始研究时,检查规范仓库是否有新变更,此项只需检查一次。如果有更新,通知用户并询问:“技能有更新。要更新吗?” 用户的 Agent 同意后会使用其常用且可用的方法执行更新。在用户回复前或拒绝后,继续使用当前版本研究,不要在每个周期反复提议更新。
自主研究
默认情况下,自主开展长期研究,必要时可持续数小时。不要在每个阶段结束时都询问“要继续吗?”。
- 通过一条消息或非阻塞工具一次性提出需要澄清的问题,不要等待回复。立即着手处理已知事实;将未知信息标记为未知,将假设标记为假设。没有回复不应阻碍研究。
- 重复以下循环:从队列中选择下一项核查 → 查找并阅读来源 → 保存材料及其来源信息 → 更新主张和日志 → 选择下一个有用步骤。没有新的依据时,不要重复已核查的搜索。
- 按照
references/browser-and-captcha.md第 5–5а 节处理 CAPTCHA 和登录。如果需要用户参与,且具备相应能力,则打开对应的标签页并将该步骤保留在队列中;仅阻塞这条路径。继续查找其他来源、姓名变体、家族支系,并分析已取得的材料。 - 将发现记录在登记表中,并在案件工作计划(例如
research-state.md)中记录尚未完成的核查和受阻事项。使用已有计划,不要将登记表的内容重写进计划。中断后,从下一个有用步骤继续。 - 只要仍有与任务相关且可执行的核查,就继续研究。在完成任务并覆盖所需范围、可用路径耗尽、用户明确要求停止或达到环境限制时结束。不得不中止前,保存当前状态和已取得的结果;一个问题未获回复或一个网站无法访问,都不意味着整个工作结束。
如果多个执行者共享同一案件,或事务性处理的增长速度快于有用成果的增长速度,请阅读 references/research-coordination.md。其中的内容是关于如何分工记录、传递结果和控制处理范围的条件性建议;它不要求启动其他 Agent,也不要求更改用户选择的存储位置。
Неподлежащие нарушению правила
- Считать любой новый материал артефактом, а не фактом. Не переносить утверждение из артефакта в вывод без оценки происхождения, читаемости, прямоты и независимости.
- Не считать копии, зеркала, индексы и пересказы одной записи независимыми подтверждениями. Назначать им общий
independence_group. - Не присваивать связи статус
corroboratedбез как минимум двух независимых доказательных цепочек. Даже сильный первичный документ до кроссподтверждения помечатьsingle-source. - Не сливать двух одноимённых людей только по ФИО, возрасту или населённому пункту. До разрешения личности вести отдельные
person_id. - Сохранять исходное написание имён, дат и мест. Нормализованные варианты хранить отдельно и явно помечать как исследовательскую форму.
- Не скрывать противоречия. Фиксировать их рядом с выводом и сохранять альтернативные гипотезы.
- Для живых людей минимизировать данные. Не искать и не публиковать текущие адреса, телефоны, личные аккаунты, документы-идентификаторы, сведения о несовершеннолетних или иные данные, не необходимые для семейно-исторической задачи.
- Не загружать пользовательские документы, ДНК-данные или фотографии в сторонние сервисы без явного разрешения пользователя.
- Не обходить ограничения доступа и лимиты. Для CAPTCHA допустима одна попытка через обычный интерфейс внутреннего браузера агента, если позволяют инструменты и правила сайта; вход выполняет пользователь. Порядок попытки, открытия вкладок и передачи заблокированного шага —
references/browser-and-captcha.md, разделы 5–5а. - Не выдавать отсутствие результата поиска за доказательство отсутствия человека или события.
- Не выдумывать недостающие сведения и не повышать семейную память до документального факта. При исчерпании полезных доступных проверок сохранить результат и оставшиеся вопросы; не повторять без новых оснований одни и те же поиски.
Рабочий процесс
Это опорный маршрут: возвращаться к нужным шагам по мере находок, а не ждать полного заполнения предыдущего этапа. Скрипты помогают вести дело; если инструмент недоступен, выполнить доступную часть работы средствами агента.
Шаг 1. Зафиксировать задачу и допустимый объём
- Сформулировать рабочую цель из запроса. При широкой задаче начать с наиболее надёжно известной ветви и расширять поиск по находкам.
- Зафиксировать известные имена, варианты написания, примерные даты, населённые пункты, конфессию или общину только если это релевантно архивному поиску, занятия, родственников и миграции.
- Отметить, какие лица могут быть живы. Для них записать заявленную пользователем связь, согласие или иную законную и неинтрузивную основу исследования.
- Учитывать уже указанные ограничения. Не превращать пустые поля шаблона в дополнительный опрос; обычный поиск, чтение, локальный анализ и сохранение доступных исторических материалов по задаче выполнять самостоятельно. Уже полученные разрешения не переспрашивать.
- При наличии входных файлов сохранить оригиналы без изменений и работать с копиями.
- Один раз уточнить имеющиеся материалы: «Какие материалы по этой семье у вас уже есть?» Если они уже описаны или приложены, не переспрашивать. Ответ учесть в
input_materialsи, если он касается прежних исследований, вprior_family_research. Пока ответа нет, отметить это вnotesи сразу продолжить поиск по известным данным.
Использовать структуру assets/case-intake.template.yaml. Подробные ограничения читать в references/privacy-and-safety.md.
Шаг 2. Инициализировать дело и реестры
Продолжить существующее дело или самостоятельно выбрать отдельную папку вне навыка, например в ~/kinship-cases/. Повторно инициализировать уже созданное дело не нужно. Для нового дела:
python scripts/init_case.py --case-dir <путь> --research-question "<вопрос>" --subject-label "<основной человек>"
Заполнять по мере работы, сохраняя неизвестные сведения как неизвестные:
case-intake.yaml— задача, рамки, исходные данные и ограничения;person-register.csv— отдельные кандидаты на личность;artifact-register.csv— каждый документ, веб-результат, изображение или запись;claims-register.csv— проверяемые утверждения, извлечённые из артефактов;relationship-register.csv— гипотезы о связях междуperson_id;search-log.csv— запросы, фильтры, неудачи, CAPTCHA и следующие шаги;- рабочий план, например
research-state.md, — оставшиеся проверки и блокировки; final-report.md— итоговое исследование по шаблону;photos/— найденные фотографии иREADME.mdс их описанием (шаг 6а);pdf-source/— исходник читаемой PDF-версии (шаг 12), создаётся в конце.
Для локального файла вычислить контрольную сумму:
python scripts/hash_artifact.py <путь-к-файлу>
Шаг 3. Разобрать материалы пользователя
- Извлечь текст, таблицы, подписи, штампы, номера актов, архивные шифры и оборотные пометы.
- Для сканов указать страницу, область и качество чтения. Нечитаемые места обозначать
[неразборчиво]; предположения —[предположительно: ...]. - Не исправлять молча фамилии, даты и географию. Сохранять
names_as_written,place_as_writtenи исходную дату. - Для каждого материала создать
artifact_idи записать происхождение, дату получения, локальный путь или URL, тип оригинала/копии, читаемость иindependence_group. - Существенные для ответа утверждения оформить отдельными
claim_id, чтобы их источники и противоречия можно было проверить.
Подробную схему оценки читать в references/evidence-protocol.md.
Шаг 4. Построить историко-географическую модель
- Для каждого события определить юрисдикцию на дату события, а не только современную страну.
- Установить нужные для поиска уровни юрисдикции и архив-преемник. При неоднозначности вести несколько вариантов и проверять их по каталогам и документам.
- Составить варианты старых и новых топонимов, языков и письменностей.
- Записать исходный календарь; не выполнять скрытую конвертацию дат.
- Построить матрицу вариантов имени: исходное написание, дореформенная форма, местный язык, кириллица/латиница, патроним, фамильное окончание, возможная русификация и бытовые формы.
- Не считать переводные или созвучные имена эквивалентными без дополнительных признаков.
- Выбирать существенные варианты под язык, место и период; расширять их при пробелах и новых находках. Например:
- е/ё и окончания -ев/-ов/-ёв, полное и сокращённое отчество («Данилович»/«Даниилович»), записи без отчества;
- женские формы (-ова/-ов, -ская/-ский, -ина/-ин) и для женщин — девичью и все брачные фамилии;
- польское, идишское, немецкое, румынское и латинское написание (
references/ex-ussr-locale-guide.md); - церковную форму имени и бытовую (Евдокия/Авдотья, Иоанн/Иван, Мордух/Мордко/Марк).
Читать references/ex-ussr-locale-guide.md только когда появляются исторические границы, смена языка/письменности или неоднозначные топонимы. Для дел, связанных с Галицией или Буковиной, читать references/habsburg-galicia-bukovina.md.
Шаг 5. Составить план поиска
- Начать с наиболее позднего надёжно установленного события и двигаться назад по одной связи за раз. Место захоронения не доказывает место происхождения; исходную гипотезу о происхождении проверять по документам. Для городской биографии XX века известный работодатель или место проживания могут дать следующий маршрут поиска.
- Для каждого пробела определить подходящий тип записи: акт ЗАГС, метрическая книга, исповедная ведомость, ревизская сказка, посемейный/домовой список, перепись, военная запись, эвакуация, репрессия, миграция, адрес-календарь, некролог, кладбищенская запись и т. п.
- Выбирать источник по вопросу, покрытию и доступности. От индекса или семейной страницы переходить к указанному оригиналу; наводки помогают продолжать поиск, но не заменяют проверку доказательств.
- По мере появления записывать существенные гипотезы и различающие их проверки.
- Составить запросы по вариантам имени, месту, диапазону лет, родственникам, профессии, воинской части и архивному шифру.
- Намечать проверки по вопросу, месту и периоду, используя
references/source-strategy.md, раздел 12, и подходящие источники каталога. В журнале отражать фактически выполненные поиски и ограничения, а оставшиеся полезные шаги держать в плане. - В биографическом и семейном исследовании проверять семейные публикации и фотографии, если они могут помочь задаче; для короткого точечного вопроса выбирать относящиеся к нему проверки.
- Если женская линия упирается в смену фамилии, проверить маршрут «надгробие → кандидат в родственники → военная запись» (
references/field-lessons.md, раздел 4). Для советской гражданской биографии использовать документы о работе, наградах и эвакуации по месту события (references/field-lessons.md, раздел 9); региональные примеры не ограничивают охват бывшего СССР.
Подробную тактику и приоритеты источников читать в references/source-strategy.md. Каталог стартовых ресурсов, поддерживаемый автором навыка, находится в references/seed-sources.md и не заменяет проверку актуальности и происхождения. Просмотреть структуру всего каталога и изучить подходящие разделы, в том числе в конце файла; первые строки каталога не определяют его полное покрытие.
Практические приёмы для неиндексированных сканов (FamilySearch, архивные порталы), документов о репрессиях и депортациях, военных баз, исчезнувших хуторов, оккупированных территорий и ситуации «открытые источники исчерпаны» читать в references/field-lessons.md.
Шаг 6. Искать доступными инструментами
Использовать веб-поиск, каталоги/API и браузер по возможностям источника:
- Использовать поиск, переходы, фильтры каталогов и просмотр документов последовательно; не отправлять массовые запросы.
- Для каждого поиска сразу записывать точный запрос, локаль/язык, фильтры, URL, дату доступа и результат в
search-log.csv. - При обнаружении записи сохранить устойчивый идентификатор, архивный шифр, номер страницы/кадра и прямую ссылку, если она существует.
- Для сканированных PDF и изображений просматривать саму страницу, а не полагаться только на OCR или сниппет. Для рукописных таблиц и спорных чтений использовать «Проверку визуального чтения» в
references/field-lessons.md, раздел 1. - Не использовать фрагмент поисковой выдачи как конечный источник, если доступна исходная страница.
- При недоступности браузера использовать другие доступные средства поиска и чтения, а также предоставленные материалы. Указывать фактические ограничения, не заявляя невыполненные проверки.
- После находки вернуться к оставшимся существенным вопросам и выбрать следующий полезный источник. Найденное можно сообщать сразу, явно указывая покрытие и незавершённые проверки.
- Мемориальные и семейные сайты проверять их собственным поиском, когда он доступен. Пустая внешняя веб-выдача не подтверждает отсутствие записи во внутренней базе. Форматы поисковых ссылок — в
references/source-strategy.md, раздел 12. - Для точечного поиска в индексах FamilySearch по месту/DGS и локального анализа разрешённых фрагментов читать
references/familysearch-indexes.md. Если индекса нет, использовать маршрут чтения сканов изreferences/field-lessons.md. - Для документов Первой мировой на GWAR читать
references/ww1-search.md: поиск человека и ограниченный поиск по местности с учётом правил источника. Полученные карточки помогают различить кандидатов, но не являются переписью населения и не доказывают родство. - Результаты этих скриптов добавлять в существующие
artifact-register.csvиsearch-log.csvчерезscripts/register_search.pyили вручную. Автоматический перенос сохраняет наводки и исходные данные; личности, утверждения, связи и независимость устанавливать по шагам 7–10. Не создавать отдельное дело для каждого источника.
При проверке охвата или смысла индексированной выдачи, повторном использовании поиска, библиографической находке или конфликте каталога читать references/search-result-validation.md. Этот же справочник использовать для проверки архивных ссылок, включая предполагаемые исправления шифров и перемещения дел.
6а. Фотографии человека
Искать фотографии в том же проходе, что и документы, а не после отдельной просьбы:
- Выбор источников, опознание, датировку и хранение вести по
references/photo-search.md. Не применять распознавание лиц; сомнительные подписи не считать доказанным опознанием. - Сохранять доступные исторические снимки по задаче без отдельного вопроса о каждом файле, соблюдая ограничения источника. Учитывать их как артефакты и описывать в
photos/README.md. - Записать покрытие поиска.
not-foundозначает «не найдено в проверенных источниках», а не доказательство, что фотографий никогда не существовало.
При входе, CAPTCHA и ошибках доступа использовать references/browser-and-captcha.md: недоступный маршрут отметить и продолжить другие проверки.
Шаг 6б. Запросить сведения у учреждения
Если ответ требует неопубликованной записи или помощи хранителя, можно подготовить и по поручению пользователя отправить запрос в архив, библиотеку, вуз, музей или другое подходящее учреждение.
- Выбрать хранителя и проверить официальный канал обращения; примеры адресатов, состав письма и порядок отправки — в
references/correspondence.md. - Использовать доступную почтовую интеграцию. Если её нет, предложить пользователю подключить почту через штатный интерфейс среды или передать готовое письмо для самостоятельной отправки. Подключение ящика само по себе не разрешает отправку.
- Выполнить уже разрешённую отправку без повторного согласования в пределах поручения; учитывать ограничения адресатов, вложений и платных действий. При отсутствии разрешения подготовить конкретное письмо и запросить согласие на его отправку, продолжая остальные проверки.
- Проверить результат, сохранить письмо/номер обращения и обработать ответ как источник. При неоднозначной ошибке сначала проверить, ушло ли письмо, чтобы не отправить дубль.
Шаг 7. Оценить артефакты и извлечь утверждения
Для каждого артефакта отдельно оценить:
- происхождение и архивную ссылку;
- оригинал, изображение оригинала, индекс, копию или пересказ;
- современность событию;
- информанта и его возможную осведомлённость;
- прямое или косвенное отношение к утверждению;
- читаемость и полноту;
- независимость от других артефактов;
- признаки ошибки, позднего исправления или заимствования.
Не использовать числовой «процент истины». Присваивать утверждениям только объяснимые статусы:
hypothesis— рабочая гипотеза;single-source— поддержана одной доказательной цепочкой;corroborated— поддержана минимум двумя независимыми цепочками без неразрешённого существенного конфликта;strongly-corroborated— несколько независимых цепочек, включая хотя бы одну прямую запись с установленным происхождением;contradicted— сильное противоречащее свидетельство;unresolved— данных недостаточно или конфликт не разрешён.
Шаг 8. Разрешить личности
- Сопоставлять не только имя, но и совокупность дат, мест, родственников, профессии, адреса, сословия/статуса, конфессии, свидетелей, воинской части и миграционного маршрута.
- Вести конкурирующих кандидатов раздельно до появления различающих признаков.
- Зафиксировать причины каждого слияния или разделения
person_id. - Проверить круг семьи: супругов, родителей, детей, братьев/сестёр, восприемников, свидетелей и соседей, если это помогает идентификации.
- Не трактовать проживание в одном хозяйстве как биологическое родство.
Шаг 9. Проверить родственную цепочку
- Строить сложную связь из отдельных рёбер: например, дед/внук требует двух независимо проверенных связей родитель–ребёнок.
- Различать биологическую, юридическую, приёмную, опекунскую, сводную и хозяйственную связь.
- Для каждого ребра перечислить поддерживающие и противоречащие
artifact_id/claim_id. - Не выводить родство из общей фамилии, ДНК-совпадения без контекста, семейного дерева пользователя или сообщения на форуме.
- Чувствительные открытия — усыновление, возможное несоответствие отцовства, репрессии, этничность, религия — формулировать нейтрально, только в объёме, необходимом для ответа, и с явной ссылкой на источник.
- Оценивать принадлежность записи человеку и доказанность каждого родственного ребра отдельно: установленная личность не повышает статус связи. Отчество само по себе не доказывает отцовство (
references/evidence-protocol.md, раздел «Разрешение личности»).
Шаг 10. Провести аудит доказательств
Запустить:
python scripts/audit_evidence.py --case-dir <путь>
Проверить ссылки между реестрами и отчётом, независимость источников и обоснования статусов. Ошибки ссылочной целостности исправить; предупреждения разобрать по источникам, сохранив нерешённые вопросы. Не повышать статус ради прохождения проверки. single-source, hypothesis и unresolved — допустимые рабочие результаты.
Перед выдачей убедиться, что существенные выводы имеют источники, противоречия видимы, покрытие описано честно, а лишние данные живых людей исключены. Неполное покрытие явно обозначить; оно не мешает сообщить уже установленное и продолжать поиск.
Шаг 11. Подготовить итоговое исследование
Использовать assets/final-report.template.md как ориентир под задачу. Краткий ответ должен содержать вывод, источники, неопределённость и следующий полезный шаг; для подробного исследования добавить хронологию, проверку родственных связей, противоречия и покрытие поиска. Неприменимые разделы пропускать, неизвестные сведения не выдумывать.
Фактические выводы сопровождать ссылками на артефакты [A-0001; A-0007]. Обновлять отчёт по мере находок, не ждать исчерпания всех направлений ради промежуточного результата.
При содержательном промежуточном отчёте или передаче дела можно добавить компактный упорядоченный список следующих проверок, если он помогает выбрать маршрут или продолжить работу. Число пунктов и подробность выбирать по задаче; после каждой операции такой список не требуется. Доступные проверки агент продолжает самостоятельно, сохраняя текущий план дела.
Для существенных пунктов пояснять, какой вопрос или родственное звено они помогут проверить, где источник, какова его фактическая доступность, кто выполняет проверку и от чего она зависит. Упорядочивать по ожидаемой пользе для исследовательского вопроса с учётом усилий и зависимостей. Стоимость и сроки указывать, если известны; непроверенный доступ и неизвестные затраты отмечать прямо, неприменимые поля пропускать. У родственников можно уточнять наличие документов и записывать семейные воспоминания, различая их происхождение и доказательную силу по references/evidence-protocol.md.
Задания и передачу результатов при уже согласованной параллельной работе оформлять по references/research-coordination.md.
Шаг 12. Подготовить удобную версию отчёта
Для короткого ответа достаточно текста или Markdown. Если PDF запрошен или полезен для передачи семье, самостоятельно использовать assets/report-pdf.template.html, адаптировав разделы под задачу.
- Объяснять надёжность понятными словами, сохраняя различие между подтверждением, гипотезой, нехваткой данных и противоречием. Архивные шифры и ссылки оставить.
- Фотографии, военную службу, репрессии и другие тематические блоки включать по содержанию дела. Отсутствие фото или полного ответа не мешает подготовить отчёт.
- Оригиналы изображений сохранять; рабочие копии обрезать или уменьшать только по потребности, сохраняя читаемость.
python scripts/build_pdf.py --html <дело>/pdf-source/report.html --out <дело>/report.pdf
Проверить читаемость и вёрстку готового PDF. Если этот способ сборки недоступен, использовать другой доступный инструмент или сохранить результат в доступном формате, продолжая исследование.
Обработка ошибок
- Если документ не читается, сохранить его как артефакт, описать дефект и при необходимости запросить лучшую копию; до ответа работать с другими материалами и источниками.
- Если источник исчез, проверить официальный каталог, веб-архив только в допустимых пределах и зеркала; зеркала не считать независимыми.
- Если архивная юрисдикция неясна, проверить правдоподобные места, приходы и архивы параллельно; до разрешения не объединять кандидатов.
- Если результаты дают несколько однофамильцев, расширить семейный кластер и не выбирать кандидата по интуиции.
- Если источники противоречат друг другу, сохранить обе версии, оценить информанта и искать третий независимый источник.
- Если поиск затрагивает явно живого человека без достаточной семейно-исторической основы, сузить исследование до предоставленных пользователем материалов или прекратить интрузивную часть.
- Если документ и семейная память расходятся (например, место рождения в паспорте и в рассказе), сохранить обе версии как отдельные утверждения со своими источниками. Не подгонять документ под рассказ и не наоборот. Различать «родился» и «вырос».
- Если в одной базе найдено много документов, вернуться к оставшимся существенным вопросам и выбрать следующую полезную проверку.
- Если все полезные доступные маршруты в рамках задачи исчерпаны, один раз перечислить установленное, неустановленное и покрытие. Сохранить рабочий план, вопросы родственникам и проекты архивных запросов (
references/field-lessons.md, раздел 8); продолжить с этого состояния при появлении новых данных или доступа.