ex-USSR Kinship Research: 증거부터 쌓는 구소련 가족사 조사 스킬
Claude Code로 교구 기록 스캔 약 330장을 읽어 한 성씨 기록 약 25건을 찾은 사람이 깃허브에 과정을 남겼어요
- 누가
- Denis Shiryaev(@DenisSergeevitch)가 만들었어요. 구소련과 러시아 제국 쪽 조상을 문서로 찾는 사람을 위한 스킬이에요.
- 언제
- 2026년 10월 25일에 공개됐고, 최신 릴리스는 10월 29일의 v1.22.0이에요.
- 어디서
- Codex, Claude Code 같은 Agent Skills 런타임에서 돌아요. 스크립트는 Python 3 표준 라이브러리만 쓰고, 사건 폴더는 내 PC에 남아요.
이게 불편했어요
1902년 혼인 기록을 하나 찾았는데 같은 내용이 색인 사이트와 남이 만든 가계도에도 올라와 있으면, 증거가 세 개인 것처럼 보여요. 이웃 마을에 이름과 나이가 비슷한 사람이 있으면 같은 사람으로 묶고 싶어지고요. 이런 착각이 한 번 들어가면 그 위에 쌓은 가계도 전체가 흔들려요.
그래서 이렇게 풀어요
이 스킬은 새로 찾은 것을 사실이 아니라 '자료'로 먼저 등록하게 해요. 같은 기록의 사본, 색인, 미러에는 같은 independence_group을 붙여서, 서로 독립된 갈래가 두 개 모이기 전에는 관계를 corroborated로 올리지 않아요. 동명이인은 구별할 근거(집 번호, 부모, 대부모, 정확한 생일, 부대)가 나올 때까지 따로 둬요. 마지막엔 스크립트가 레지스터를 다시 읽고, 갈래가 모자란데 확인됐다고 적힌 주장을 짚어 내요.

이걸로 만든 사람들
페름 지방 옐로보 교구 사건을 Claude Code로 조사하면서, 이름 색인이 없는 1887–1894년 교구 기록 스캔 약 330장을 눈으로 읽게 해 한 성씨 기록 약 25건을 얻었어요. 스캔이 맥락과 사용량을 많이 먹는다는 점과 그 해법도 함께 적었어요.
Контекст: дело по Еловскому приходу (Осинский уезд), Claude Code, версия навыка 1.8.0.
한 가족 조사에 에이전트 열 개 넘게 동시에 붙여 가지마다 하나씩 맡겼어요. 그러다 얻은 관찰을 작업 끝에 따로 모아 내놓게 하는 규칙을 PR로 보냈어요.
В нашем деле одновременно работали больше десяти агентов, каждый над своей веткой семьи.
알타이 농민과 크림 타타르 가족, 두 갈래를 실제로 조사하며 얻은 규칙을 PR로 보냈어요. 이름이 여러 표기로 적혔을 때 읍 단위로 찾기, 출생지 마을이 그 날짜에 있었는지 확인하기 같은 것들이에요.
Lessons from a real two-branch case (Altai peasants and a Crimean Tatar family).
안에서는 이렇게 돌아가요
- 1
사용자 → Codex · Claude Code
가족에 관한 질문, 스캔, 아는 사실SKILL.md는 러시아어지만, 답은 사용자의 언어로 하고 검색어는 기록의 언어로 만들라고 정해 둬요.SKILL.md - 2
Codex · Claude Code → init_case.py
init_case.py --case-dir ~/kinship-cases/…assets의 템플릿을 사건 폴더로 복사하고, 스킬 폴더 안에 사건을 만들려 하면 거절해요.scripts/init_case.py - 3
Codex · Claude Code → 사건 레지스터 CSV
artifact-register.csv에 자료와 SHA-256찾은 기록마다 출처, 원본 여부, 직접성, independence_group을 적고 파일 해시를 남겨요.scripts/hash_artifact.py - 4
Codex · Claude Code → 사건 레지스터 CSV
claims-register.csv에 주장과 상태독립된 갈래가 둘 모이기 전까지 관계는 single-source에 머물러요.assets/claims-register.csv - 5
audit_evidence.py → 사건 레지스터 CSV
레지스터 4개 교차 검사corroborated인데 갈래가 둘보다 적으면 경고하고, 자료 없이 선언한 그룹은 오류로 잡아요.scripts/audit_evidence.py - 6
Codex · Claude Code → report.html
report.html머리에 가계도를 두고, 관계마다 근거로 한 번에 넘어가는 HTML 보고서를 만들어요.assets/report.template.html
넣으면 이렇게 나와요
나한테 맞을까요
이럴 때 좋아요
- 구소련이나 러시아 제국 지역 조상을 문서로 확인하고 싶을 때
- 모아 둔 증명서와 스캔이 같은 사람을 가리키는지 가려야 할 때
- 가족에게 근거가 달린 보고서를 건네고 싶을 때
- 기존 가계도를 출처가 붙은 GEDCOM으로 정리하고 싶을 때
이건 안 돼요
- 살아 있는 사람의 현재 주소, 전화번호, 계정은 찾지 않아요.
- 캡차는 한 번만 시도하고 로그인은 사용자가 직접 해요. 페이월이나 지역 차단은 우회하지 않아요.
- PDF는 요청할 때만 내보내고, Chrome·Chromium·Edge 중 하나가 필요해요.
- 가계도 앱 설치, MCP 연결, 외부 가계도 자동 동기화는 이 스킬의 범위 밖이에요.
발행 전에 Devalley 편집자가 검토했어요. 칼럼은 어떻게 만드나요
ex-USSR Kinship Research: evidence-first genealogy skill
One user had Claude Code read about 330 parish-book scans and came away with about 25 records of a single surname.
- Who
- Made by Denis Shiryaev (@DenisSergeevitch) for people tracing ancestors through records of the former USSR and the Russian Empire.
- When
- Published on 25 October 2026; the latest release is v1.22.0 from 29 October.
- Where
- Codex, Claude Code and other Agent Skills runtimes. Scripts need only Python 3's standard library; case folders stay on your machine.
What was hard
You find a 1902 marriage record, then the same entry turns up on an index site and in someone else's tree, and it starts to feel like three pieces of evidence. A man of the same name and age in the next village looks like a match too. Once one of those slips in, everything built on top of it is shaky.
What it does about it
The skill has the agent log every new find as an artifact, not a fact. Copies, indexes and mirrors of one record share an independence_group, so no relationship becomes corroborated until two independent lines of evidence agree. Namesakes stay separate people until something distinguishes them: a house number, parents, godparents, an exact birth date or a military unit. At the end a script rereads the registers and flags any claim marked as confirmed without enough independent groups behind it.

What people made with it
On an Elovo parish case in Claude Code, they had it read about 330 unindexed parish-book scans from 1887–1894 and got about 25 records of one surname, then wrote up what the scans cost.
Контекст: дело по Еловскому приходу (Осинский уезд), Claude Code, версия навыка 1.8.0.
They ran more than ten agents on one family at once, each on its own branch, and sent a pull request so the agent hands over its notes on the skill at the end of the work.
В нашем деле одновременно работали больше десяти агентов, каждый над своей веткой семьи.
From a real two-branch case, Altai peasants and a Crimean Tatar family, they sent rules such as searching by volost and checking that a birthplace existed on the event date.
Lessons from a real two-branch case (Altai peasants and a Crimean Tatar family).
How it runs inside
- 1
You → Codex · Claude Code
A family question, scans, known factsSKILL.md is in Russian but tells the agent to reply in your language and search in the records' languages.SKILL.md - 2
Codex · Claude Code → init_case.py
init_case.py --case-dir ~/kinship-cases/…Copies the templates from assets into a case folder, and refuses to put a case inside the skill folder.scripts/init_case.py - 3
Codex · Claude Code → Case registers (CSV)
Artifact and SHA-256 into artifact-register.csvEach find gets its provenance, originality, directness and independence_group, plus a file hash.scripts/hash_artifact.py - 4
Codex · Claude Code → Case registers (CSV)
Claim and status into claims-register.csvA link stays single-source until two independent groups support it.assets/claims-register.csv - 5
audit_evidence.py → Case registers (CSV)
Cross-checks the four registersWarns when a corroborated claim has fewer than two groups and errors on a group no cited artifact belongs to.scripts/audit_evidence.py - 6
Codex · Claude Code → report.html
report.htmlBuilds an HTML report with a family tree on top and each relationship one click from its evidence.assets/report.template.html
What goes in, what comes out
Is it for you
Good for
- Confirming ancestors from the former USSR or the Russian Empire with documents
- Working out whether a pile of certificates and scans points to one person
- Handing your family a report where every link shows its evidence
- Turning an existing tree into a GEDCOM file with sources attached
Not for
- It will not look up current addresses, phones or accounts of living people.
- It tries a CAPTCHA once and leaves sign-ins to you; it does not get around paywalls or geo-blocks.
- PDF is exported only on request and needs Chrome, Chromium or Edge.
- Installing tree apps, configuring MCP connections and syncing external trees are outside its scope.
Reviewed by Devalley’s editor before publishing. How the column is made