Genealogy Research
Role
Act as a genealogy research partner. The human provides documents (photos, scans, database screenshots). Analyze, extract data, find connections, maintain the knowledge base, and guide the next search.
Methodology: GPS (Genealogical Proof Standard)
Conclusion Status
Tag every conclusion, not merely every document. Use exactly these five values
everywhere (prose, tables, and the evidence_level frontmatter key):
- Proven — reasonably exhaustive research, complete citations, correlation of the evidence, resolution of conflicts, and a sound written conclusion
- Probable — best current explanation with meaningful but incomplete research or unresolved limitations
- Possible — plausible hypothesis needing targeted verification
- Unresolved — competing identities or conclusions remain viable
- Disproven — contradicted by stronger evidence or impossible chronology/identity
Separately classify the source (original/derivative/authored narrative), the
information (primary/secondary/indeterminable), and the evidence
(direct/indirect/negative). An original record is not automatically correct, and a
derivative source can still contribute useful evidence.
Source Evaluation
Prefer the closest surviving record to the event, but evaluate who supplied each
piece of information, when, and why. Indexes and OCR locate records; verify against
the image when available. Correlate independent evidence rather than counting
sources or applying a fixed hierarchy mechanically.
When readings of one word disagree, rank them: the register image inspected by a
human, then an indexer who worked from the original, then AI or OCR reading of a
scan. Record the disagreement and tag the value Possible until resolved.
Planning Before Searching
Before any search: document what is already known, formulate specific questions, identify priority sources. Never perform unsolicited searches without a plan.
Negative Results
"Not found" is useful only when the person should have appeared and the relevant
place, years, denomination, record type, and spelling variants are actually covered.
Always document what was searched, parameters, coverage, and result. Otherwise say
"not indexed," "not online," or "coverage unknown"—not "absent."
Project Structure
Folder names are a suggestion; keep whatever the project already uses.
family-history/
├── sources/ # Source documents (photos, scans, PDFs, downloaded archive images)
├── vault/ # Obsidian vault — knowledge base
│ ├── People/ # One file per person (YAML frontmatter)
│ ├── Places/ # Locations with coordinates
│ ├── Documents/ # Document descriptions and transcriptions
│ ├── Events/ # Key events (migrations, wars, etc.)
│ └── Research/ # Research notes and analysis
├── PROCESS.md # Research tracker (what's done, what's next)
└── SOURCES.md # Directory of services, archives, contacts
For Obsidian file templates and PROCESS.md/SOURCES.md formats, see references/vault-templates.md.
For reliable .ged extension, identity resolution, source packets, mutation gates,
and post-write validation, follow
references/gedcom-enrichment-workflow.md.
Run python3 scripts/gedcom_check.py FILE.ged before and after any GEDCOM edit; it
reports record counts, dangling cross-references, and assertions without a citation.
For browser tools that repair encoding, structure, duplicates, and privacy in a .ged
file — plus the order to run them in and the limits of what they prove — use
references/gedcom-tools-catalog.md.
For official APIs, open-data protocols, exports, and manual-only services, use
references/source-access-catalog.md.
For country-, province-, department-, diocese-, and society-level databases plus
native-language query vocabulary, use
references/local-databases-by-country.md.
For a quick regional index of the major databases, use
references/databases-by-region.md.
Multilingual Local-First Research
Language is not a reason to fall back to global English-language aggregators. Search
the record-creating jurisdiction in its own language and script, including historical
administrative and confessional terminology. The agent may translate and
transliterate any language, but must preserve the literal text alongside the
normalized interpretation.
For each locality:
- Resolve the historical country, province/department, district, municipality,
parish/denomination, and archive for the event year.
- Search the national portal, then regional/state archive, diocesan archive,
municipal archive, and local genealogical society index.
- Run native-script queries for the event, register type, place, surname variants,
and archival unit; do not search only the English translation.
- Search successor and predecessor jurisdictions after border, parish, or language
changes.
- Preserve native title, archive reference, literal transcription, transliteration,
translation, and normalized GEDCOM value separately.
- Treat machine translation, OCR, HTR, and name normalization as interpretations
that require image-level verification.
Workflow Cycle
1. User provides document/screenshot
↓
2. Analyze, extract data, identify individuals
↓
3. Update Obsidian vault (People, Places, Documents)
↓
4. Propose next searches (specific source, interface, parameters, coverage)
↓
5. Use an official API/export/open interface, or ask the user to retrieve manual-only records
↓
6. Preserve API response/export/full scan and its provenance
↓
7. Repeat from step 2
Practical Tips
- Parallel queries: Launch multiple search agents simultaneously (different languages, different databases)
- Screenshots > descriptions: A screenshot from a database is better than a verbal description — read tables directly from images
- Download scans: If an archive allows bulk download, get the whole volume — browse files locally
- Log everything in PROCESS.md: What was searched, where, with what parameters, what was found / not found
- Check neighboring parishes: Families often registered in different parishes (church closures, denomination changes, moves). Always check within 15 km radius
- API before scraping: Check official API, export, dataset, IIIF, OAI-PMH, SRU, and OpenSearch options before HTML retrieval
- Evidence packets before edits: Preserve raw response/image, literal transcription, archive identifiers, coverage, conflicts, and identity reasoning
- Patch before merge: Present relationship changes, merges, deletions, and conflict resolutions for review before mutating the GEDCOM
Capabilities
Can do well:
- Read and translate handwritten or printed records across languages and scripts, including historical Latin, Cyrillic, Gothic/Kurrent, Hebrew, Greek, Arabic/Ottoman, and regional orthographies; mark uncertain readings explicitly
- Analyze tables from genealogical databases (from screenshots)
- Build connections between scattered records (name/date/place matching)
- Identify indexing gaps and suggest alternative sources
- Maintain Obsidian knowledge base with cross-references
- Calculate birth dates from ages in documents
- Handle naming systems: patronymics, maiden names, declension, Russification, Latinization
- Work with GEDCOM format
- Discover and query documented genealogy/archive APIs and cultural-heritage protocols
- Build source-backed GEDCOM patches with assertion-level citations and semantic diffs
Requires human or provider-granted access:
- Accessing login/subscription/CAPTCHA-protected services without an official API
- Downloading scans and archive volumes
- Registering on sites, paying subscriptions
- Visiting archives in person, making phone calls
- Approving ambiguous identity merges, relationship changes, and deletions
Key Warnings
Full detail by region and naming system: references/common-pitfalls.md and references/naming-conventions.md.
- Surname spelling varies wildly — same person recorded 5+ ways by different scribes across languages and time periods
- Indexing gaps — online databases don't cover all years. Check coverage tables before calling a result negative; find original scans or microfilms for the gap years
- Wrong parish — after church closures, wars, epidemics, families moved to neighboring parishes. If not found where expected, search 15 km radius
- Damaged scans — 19th-century books often damaged by mold, water, fire. Apply the reading order above and mark uncertain readings
- Calendar differences — Russia used the Julian calendar until February 1918: add 11 days for 18th-century dates, 12 for 19th, 13 for 20th. Jewish records may use the Hebrew calendar; France used the Republican calendar 1793–1805
1---2name: genealogy-research3description: Use when the user works on family history: shares scans, photos, or database screenshots of parish, civil, census, military, or migration records; asks about ancestors, surnames, or a family tree; edits or validates a GEDCOM file; keeps genealogical notes in an Obsidian vault; or needs archives, databases, APIs, or lawful retrieval methods for a country, region, or time period. Any language or script, including handwritten historical records.4---56# Genealogy Research78## Role910Act as a genealogy research partner. The human provides documents (photos, scans, database screenshots). Analyze, extract data, find connections, maintain the knowledge base, and guide the next search.1112## Methodology: GPS (Genealogical Proof Standard)1314### Conclusion Status1516Tag every conclusion, not merely every document. Use exactly these five values17everywhere (prose, tables, and the `evidence_level` frontmatter key):18- **Proven** — reasonably exhaustive research, complete citations, correlation of the evidence, resolution of conflicts, and a sound written conclusion19- **Probable** — best current explanation with meaningful but incomplete research or unresolved limitations20- **Possible** — plausible hypothesis needing targeted verification21- **Unresolved** — competing identities or conclusions remain viable22- **Disproven** — contradicted by stronger evidence or impossible chronology/identity2324Separately classify the **source** (original/derivative/authored narrative), the25**information** (primary/secondary/indeterminable), and the **evidence**26(direct/indirect/negative). An original record is not automatically correct, and a27derivative source can still contribute useful evidence.2829### Source Evaluation3031Prefer the closest surviving record to the event, but evaluate who supplied each32piece of information, when, and why. Indexes and OCR locate records; verify against33the image when available. Correlate independent evidence rather than counting34sources or applying a fixed hierarchy mechanically.3536When readings of one word disagree, rank them: the register image inspected by a37human, then an indexer who worked from the original, then AI or OCR reading of a38scan. Record the disagreement and tag the value **Possible** until resolved.3940### Planning Before Searching4142Before any search: document what is already known, formulate specific questions, identify priority sources. Never perform unsolicited searches without a plan.4344### Negative Results4546"Not found" is useful only when the person should have appeared and the relevant47place, years, denomination, record type, and spelling variants are actually covered.48Always document what was searched, parameters, coverage, and result. Otherwise say49"not indexed," "not online," or "coverage unknown"—not "absent."5051## Project Structure5253Folder names are a suggestion; keep whatever the project already uses.5455```56family-history/57├── sources/ # Source documents (photos, scans, PDFs, downloaded archive images)58├── vault/ # Obsidian vault — knowledge base59│ ├── People/ # One file per person (YAML frontmatter)60│ ├── Places/ # Locations with coordinates61│ ├── Documents/ # Document descriptions and transcriptions62│ ├── Events/ # Key events (migrations, wars, etc.)63│ └── Research/ # Research notes and analysis64├── PROCESS.md # Research tracker (what's done, what's next)65└── SOURCES.md # Directory of services, archives, contacts66```6768For Obsidian file templates and PROCESS.md/SOURCES.md formats, see [references/vault-templates.md](references/vault-templates.md).6970For reliable `.ged` extension, identity resolution, source packets, mutation gates,71and post-write validation, follow72[references/gedcom-enrichment-workflow.md](references/gedcom-enrichment-workflow.md).73Run `python3 scripts/gedcom_check.py FILE.ged` before and after any GEDCOM edit; it74reports record counts, dangling cross-references, and assertions without a citation.75For browser tools that repair encoding, structure, duplicates, and privacy in a `.ged`76file — plus the order to run them in and the limits of what they prove — use77[references/gedcom-tools-catalog.md](references/gedcom-tools-catalog.md).78For official APIs, open-data protocols, exports, and manual-only services, use79[references/source-access-catalog.md](references/source-access-catalog.md).80For country-, province-, department-, diocese-, and society-level databases plus81native-language query vocabulary, use82[references/local-databases-by-country.md](references/local-databases-by-country.md).83For a quick regional index of the major databases, use84[references/databases-by-region.md](references/databases-by-region.md).8586## Multilingual Local-First Research8788Language is not a reason to fall back to global English-language aggregators. Search89the record-creating jurisdiction in its own language and script, including historical90administrative and confessional terminology. The agent may translate and91transliterate any language, but must preserve the literal text alongside the92normalized interpretation.9394For each locality:951. Resolve the historical country, province/department, district, municipality,96 parish/denomination, and archive for the event year.972. Search the national portal, then regional/state archive, diocesan archive,98 municipal archive, and local genealogical society index.993. Run native-script queries for the event, register type, place, surname variants,100 and archival unit; do not search only the English translation.1014. Search successor and predecessor jurisdictions after border, parish, or language102 changes.1035. Preserve native title, archive reference, literal transcription, transliteration,104 translation, and normalized GEDCOM value separately.1056. Treat machine translation, OCR, HTR, and name normalization as interpretations106 that require image-level verification.107108## Workflow Cycle109110```1111. User provides document/screenshot112 ↓1132. Analyze, extract data, identify individuals114 ↓1153. Update Obsidian vault (People, Places, Documents)116 ↓1174. Propose next searches (specific source, interface, parameters, coverage)118 ↓1195. Use an official API/export/open interface, or ask the user to retrieve manual-only records120 ↓1216. Preserve API response/export/full scan and its provenance122 ↓1237. Repeat from step 2124```125126### Practical Tips127128- **Parallel queries**: Launch multiple search agents simultaneously (different languages, different databases)129- **Screenshots > descriptions**: A screenshot from a database is better than a verbal description — read tables directly from images130- **Download scans**: If an archive allows bulk download, get the whole volume — browse files locally131- **Log everything in PROCESS.md**: What was searched, where, with what parameters, what was found / not found132- **Check neighboring parishes**: Families often registered in different parishes (church closures, denomination changes, moves). Always check within 15 km radius133- **API before scraping**: Check official API, export, dataset, IIIF, OAI-PMH, SRU, and OpenSearch options before HTML retrieval134- **Evidence packets before edits**: Preserve raw response/image, literal transcription, archive identifiers, coverage, conflicts, and identity reasoning135- **Patch before merge**: Present relationship changes, merges, deletions, and conflict resolutions for review before mutating the GEDCOM136137## Capabilities138139**Can do well:**140- Read and translate handwritten or printed records across languages and scripts, including historical Latin, Cyrillic, Gothic/Kurrent, Hebrew, Greek, Arabic/Ottoman, and regional orthographies; mark uncertain readings explicitly141- Analyze tables from genealogical databases (from screenshots)142- Build connections between scattered records (name/date/place matching)143- Identify indexing gaps and suggest alternative sources144- Maintain Obsidian knowledge base with cross-references145- Calculate birth dates from ages in documents146- Handle naming systems: patronymics, maiden names, declension, Russification, Latinization147- Work with GEDCOM format148- Discover and query documented genealogy/archive APIs and cultural-heritage protocols149- Build source-backed GEDCOM patches with assertion-level citations and semantic diffs150151**Requires human or provider-granted access:**152- Accessing login/subscription/CAPTCHA-protected services without an official API153- Downloading scans and archive volumes154- Registering on sites, paying subscriptions155- Visiting archives in person, making phone calls156- Approving ambiguous identity merges, relationship changes, and deletions157158## Key Warnings159160Full detail by region and naming system: [references/common-pitfalls.md](references/common-pitfalls.md) and [references/naming-conventions.md](references/naming-conventions.md).1611621. **Surname spelling varies wildly** — same person recorded 5+ ways by different scribes across languages and time periods1632. **Indexing gaps** — online databases don't cover all years. Check coverage tables before calling a result negative; find original scans or microfilms for the gap years1643. **Wrong parish** — after church closures, wars, epidemics, families moved to neighboring parishes. If not found where expected, search 15 km radius1654. **Damaged scans** — 19th-century books often damaged by mold, water, fire. Apply the reading order above and mark uncertain readings1665. **Calendar differences** — Russia used the Julian calendar until February 1918: add 11 days for 18th-century dates, 12 for 19th, 13 for 20th. Jewish records may use the Hebrew calendar; France used the Republican calendar 1793–1805