DenisSergeevitch/ex-ussr-kinship-research

★ 1,398⑂ 147

Evidence-first genealogy skill for AI agents (Codex, Claude Code): church books, civil, military, deportation and repression records across the former USSR. Replies in your language.

About DenisSergeevitch/ex-ussr-kinship-research

DenisSergeevitch/ex-ussr-kinship-research is an open-source project on GitHub, mainly written in Python. Evidence-first genealogy skill for AI agents (Codex, Claude Code): church books, civil, military, deportation and repression records across the former USSR. It currently holds 1,398 stars and 147 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository DenisSergeevitch/ex-ussr-kinship-research · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

ex-USSR Kinship Research

ex-USSR Kinship Research cover

Languages: English / Русский / Беларуская / Қазақша / Українська / Polski / Deutsch / Română / Eesti / Latviešu / Lietuvių / ქართული / Հայերեն / Azərbaycanca / Кыргызча / Тоҷикӣ / Türkmençe / O‘zbekcha / 日本語

An evidence-first genealogy skill for AI agents (Codex, Claude Code and other Agent Skills runtimes). It turns an agent into a careful family-history researcher for the former USSR, the Soviet Union and the Russian Empire. The agent reads church books and civil records, military, deportation and repression files, and unindexed archive scans. It keeps every find traceable, separates records from interpretation and says plainly what is proven and what is not.

Coverage includes all 15 former Soviet republics: Russia, Ukraine, Belarus, Moldova, Estonia, Latvia, Lithuania, Georgia, Armenia, Azerbaijan, Kazakhstan, Kyrgyzstan, Tajikistan, Turkmenistan and Uzbekistan. Archives are chosen by the event's historical jurisdiction and current record custodian; a regional example does not replace local research.

The skill's instructions are written in Russian, but the agent talks to you in your language: English, Ukrainian, Russian, Polish, German and so on. It quotes sources in their original spelling with a translation, and builds search queries in the languages of the records.

---

What it does

Release history: changelog.

Install

With Node.js installed, you can use the optional Skills CLI:

npx skills add https://github.com/DenisSergeevitch/ex-ussr-kinship-research

The CLI lets you choose your agent and installs into the current project by default; add -g for a personal installation across projects. See its documentation for current Node.js requirements.

Alternatively, clone the repository directly into your agent's skills folder:

# Codex
git clone https://github.com/DenisSergeevitch/ex-ussr-kinship-research ~/.codex/skills/ex-ussr-kinship-research

Claude Code (personal skills)

git clone https://github.com/DenisSergeevitch/ex-ussr-kinship-research ~/.claude/skills/ex-ussr-kinship-research

For a single project, put the folder in .claude/skills/ inside the repository. Most scripts need only Python 3 and the standard library. The optional scan_montage.py helper needs Pillow; build_pdf.py needs a Chromium-based browser.

Use

Describe the family question. The agent works from available information and continues while questions or access requests await a reply. For example:

Keep private case data outside the skill's Git checkout. From the skill folder:

python scripts/init_case.py --case-dir ~/kinship-cases/my-case --research-question "Who were Maria's parents?" --subject-label "Maria"
python scripts/hash_artifact.py ~/kinship-cases/my-case/scans/marriage-1902.jpg   # SHA-256 for every saved artifact
python scripts/audit_evidence.py --case-dir ~/kinship-cases/my-case             # check registers before the final report

init_case.py refuses to create a case inside the skill folder, including with --force. Git ignores common legacy case-folder names as an additional safeguard; check staged files before contributing, especially if moving an existing case.

The agent prepares a complete HTML report, for example my-case/report.html, using assets/report.template.html or its existing tools. The default editorial layout puts a family tree in the header, with relationship evidence one click away, readable multilingual system-font fallbacks, and layouts for small screens and print. The tree follows the available evidence; missing relatives do not delay the report. Open it directly in a browser or share the HTML with its local images. Short answers may remain text or Markdown; an explicitly requested format takes precedence. A family-facing report does not imply PDF.

Only when you explicitly request PDF, the agent can export the same HTML:

python scripts/build_pdf.py --html ~/kinship-cases/my-case/report.html --out ~/kinship-cases/my-case/report.pdf

This optional export needs Chrome, Chromium or Edge installed (or CHROME_PATH). With --png-dir it also renders pages to PNG for review if pypdfium2 is available. HTML delivery needs no PDF renderer.

For PDF export, use static HTML with local or embedded images. The exporter rejects active HTML and network image sources; source links remain clickable. A failed render preserves any existing output PDF.

Family trees in GEDCOM

GEDCOM is a standard format for exchanging genealogical data between programs. When you ask the agent to build or export a tree, it prepares a local .ged file with source citations and evidence notes. The default is GEDCOM 5.5.1 in UTF-8 for compatibility; use another supported version, such as GEDCOM 7, when you or your chosen program require it.

An existing tree is research input and a set of leads, not proof of its relationships. The agent preserves the original file and keeps unresolved claims, unsupported details, evidence registers and the search log in the case folder. Exports follow the evaluated evidence and do not overwrite your files.

You choose the software. Installing tree applications, configuring MCP connections and automatically synchronizing external trees are outside the skill's scope. See the GEDCOM workflow.

Repository layout

SKILL.md                         main instructions (workflow, hard rules, language policy)
references/
  source-strategy.md             source hierarchy, query patterns, catalogs, archive requests
  correspondence.md              recipients, mail integration, authorized sending and replies
  government-portals.md          civil-registration services and request delivery routes
  evidence-protocol.md           artifact assessment, statuses, identity resolution, conflicts
  ex-ussr-locale-guide.md        jurisdictions, name variants, calendars, record types by period
  browser-and-captcha.md         browsing, sign-in, one CAPTCHA attempt and hand-off, rate limits
  privacy-and-safety.md          living people, minors, DNA, sensitive findings
  seed-sources.md                curated starting resources with reliability classes
  field-lessons.md               practical lessons from a real case
  changelog.md                   release history
  photo-search.md                finding, identifying, dating and storing photos
  habsburg-galicia-bukovina.md   Galicia and Bukovina under the Habsburgs and after
  chechnya-deportation.md        Chechen families: 1944 deportation, special settlement, names and renamed villages
  germany-forced-labour.md       Forced labourers in Germany 1941-1945: Arolsen Archives and German civil registers

bessarabia-moldova.md Bessarabia, Moldova, MASSR and the Dniester borderland familysearch-indexes.md targeted browser research, permitted local snapshots and coverage familysearch-mcp.md connected tools, structured reads, scoped writes and verification ww1-search.md GWAR WWI person/locality search and source-image locators gedcom.md portable family-tree exports with sources and evidence notes assets/ case intake, CSV registers, final report template, photos README template, research-state template, HTML report template (report.template.html) scripts/ init_case.py, hash_artifact.py, audit_evidence.py, build_pdf.py familysearch.py, gwar.py, register_search.py, scan_montage.py (needs Pillow) and shared local analysis modules evals/discovery-and-logic.yaml trigger and reasoning test cases tests/ unit tests (python3 -m unittest discover -s tests)

Responsible use

Contributing

New sources are welcome in references/seed-sources.md. Record verified owner, jurisdiction, collection, provenance, IDs, access, restrictions and check date where known; mark gaps instead of guessing. Keep personal data out of examples.

Source-search helpers use Python's standard library and the existing case registers. Run python3 -m unittest discover -s tests to check local parsing, GWAR checkpoints, access failures, unresolved coverage and evidence registration against synthetic data. FamilySearch discovery and targeted viewing use the existing lawful browser session; its Python helpers analyze saved fragments. Keep private research files outside this checkout.

License

MIT © 2026 Denis Shiryaev.

---

Maintained by Denis Shiryaev (@DenisSergeevitch).

GitHub Stars & Activity

1,398Stars
147Forks
0Open issues
PythonLanguage

GitHub Popularity

GitHub stars1,398
Forks147
Open issues0
Primary languagePython
License-
Stars gained today0
Created-
Last pushed-

Trending History

Weekly boardrank #99 · ▲ 0 stars

Related AI Projects

1

anthropics / skills

Python★ 185,808⑂ 21,939▲ 756 stars
→
2

Graphify-Labs / graphify

Python★ 139,947⑂ 13,346▲ 686 stars
→
3

calesthio / OpenMontage

Python★ 73,905⑂ 9,685▲ 564 stars
→
4

MemPalace / mempalace

Python★ 60,188⑂ 7,628▲ 49 stars
→
5

The-PR-Agent / pr-agent

Python★ 13,842⑂ 2,031▲ 118 stars
→
6

superdesigndev / treg

Python★ 6,839⑂ 595▲ 276 stars
→
7

0x0funky / agent-sprite-forge

Python★ 4,750⑂ 471▲ 51 stars
→
8

ethanplusai / harvey

Python★ 3,673⑂ 760▲ 213 stars
→

More AI Rankings