CommunityCodierung & Entwicklunggithub.com

usuyukiso/genealogie-biographie

Verfasst eine Biographie einer Person, meist aus Archivunterlagen – Geburten, Heiraten, Todesfälle, Volkszählungen, Beichtlisten, Taufen als Pate, Umzüge, Statusänderungen – oft als Chronologietabelle (.ods, .xlsx, .csv; lesen mit dem Chronologie-Tabellen-Skill), aber auch aus Notizen, Links oder Dokumenten. Erstellt eine narrative Biographie, die streng auf der Eingabe basiert, die Aufzeichnungen wörtlich zitiert (aus Transkriptionen und Yandex Archive-Scan-Text), als Personenseite der MkDocs-Site in family_tree_github/docs (ID P1000…), mit einer Seite pro Quelle unter typisierten IDs (A – Archivunterlage, B – Buch, F – Foto, W – Webseite, …) und Einträgen im gemeinsamen Personenindex. Verwenden Sie dies immer, wenn der Benutzer bittet, eine Biographie, Lebensgeschichte oder ein genealogisches Profil einer Person zu schreiben, zu erstellen oder zu aktualisieren.

Was ist genealogie-biographie?

Dieser Skill erstellt eine detaillierte und quellengetreue narrative Biographie aus genealogischen Rohdaten, wie sie in Chronologietabellen (ODS, XLSX, CSV), Notizen, Links oder Dokumenten vorliegen. Er ist speziell für die Integration in eine MkDocs-Material-Website unter `family_tree_github/` konzipiert. Der Skill liest die Eingabedaten, identifiziert und klassifiziert jede Quelle (Archivunterlage, Buch, Foto, Webseite) und weist ihr eine eindeutige ID zu (z.B. A1000, B1000). Anschließend generiert er eine strukturierte Personenseite (z.B. P1000) im Verzeichnis `docs/people/`, die alle Lebensereignisse chronologisch und mit wörtlichen Zitaten aus den Quellen darstellt. Gleichzeitig erstellt er separate Quellenseiten in den entsprechenden Verzeichnissen (z.B. `docs/sources/archives/`). Der Skill verwendet ein Skript (`next_id.py`), um die nächste freie ID zu ermitteln und sicherzustellen, dass keine IDs dupliziert werden. Zudem integriert er die Yandex Archive-API, um gescannte Dokumente zu lesen, Transkriptionen zu extrahieren und die Fakten aus der Tabelle zu verifizieren und zu ergänzen. Die Nützlichkeit liegt in der vollständigen Automatisierung des ansonsten sehr arbeitsintensiven Prozesses der manuellen Biographieerstellung aus komplexen genealogischen Quellen. Der Skill stellt sicher, dass alle generierten Seiten korrekt verlinkt sind und die Integrität des Familienforschungsprojekts gewahrt bleibt, indem er explizit anweist, keine veralteten Dateien zu beschreiben oder zu ändern. Er ist ideal für die Erstellung umfangreicher, belegter Biographien für Ahnenforschungsportale.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/usuyukiso/genealogy-skills/tree/main/genealogy-biography

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Biographie

Die Eingabe beschreibt das Leben einer Person — meistens eine chronologische Tabelle (ein Ereignis pro Zeile, erstellt aus metrischen Büchern, Beichtlisten, Volkszählungen, Gerichts-/Verwaltungsakten), es können aber auch Notizen, Links oder Dokumente sein. Die Ausgabe ist eine lesbare Biographie sowie Quellseiten. Genauigkeit ist wichtiger als Stil: Genealogen werden jede Behauptung anhand der Dokumente überprüfen.

Wohin die Ausgabe geht. Alles wird in das Site-Projekt family_tree_github/ (MkDocs Material; siehe dessen README.md) geschrieben:

WasWohin
Personenseitefamily_tree_github/docs/people/P1000-<slug>.md
Archivdokumentdocs/sources/archives/A1000-<slug>.md
Buch / Publikationdocs/sources/books/B1000-<slug>.md
Fotodocs/sources/photos/F1000-<slug>.md (Bild in docs/assets/images/people/)
Webseitedocs/sources/websites/W1000-<slug>.md
Ort (Siedlung)docs/places/PLC1000-<slug>.md
Ortsverzeichnisdocs/places/index.md
Personenverzeichnisdocs/people/index.md
Quellenverzeichnisdocs/sources/index.md
Menünav: in family_tree_github/mkdocs.yml

Die alten Stammdateien (sources.md mit den Nummern 3000–3011, people.md, *_biography.md) sind veraltet: nicht in sie schreiben. Die alten Nummern nirgendwo auf der Seite erwähnen – keine legacy_id, keine Spalte oder Zeile «Прежний №».

IDs. Ein Präfix plus eine vierstellige Nummer ab 1000, die vom Anfang des Dateinamens stammt. Eine ID ändert sich nie und wird nie wiederverwendet, selbst nachdem eine Seite gelöscht wurde. Die nächste freie ID holen und mit folgendem Befehl auf Duplikate prüfen:

python3 .claude/skills/genealogy-biography/scripts/next_id.py next A A P   # A1010, A1011, P1005
python3 .claude/skills/genealogy-biography/scripts/next_id.py find "23И, оп. 2, д. 24"   # ist sie schon vorhanden?
python3 .claude/skills/genealogy-biography/scripts/next_id.py list

Links. Nur die ID schreiben; der Hook der Site (hooks/id_links.py) wandelt sie in einen Link um: [A1006] → Link mit der Bezeichnung «A1006» zur Quellseite; [P1000] → Link mit dem Namen der Person; [жена](P1000) → Link mit eigenem Text. Niemals Dateipfade oder URLs zu internen Seiten schreiben. Eine unbekannte ID führt zu einem Baufehler.

1. Eingabe lesen

Wenn die Eingabe eine chronologische Tabelle (.ods, .xlsx, .csv) ist, zuerst die chronology-table-Fähigkeit laden und ihr folgen: Sie gibt die Tabelle aus, bildet die Spalten ab und liefert eine abgeglichene Faktenliste pro Zeile mit Quellen. Nicht jede Biographie beginnt mit einer Tabelle – wenn der Benutzer anderes Material (Notizen, Links, Dokumente) übergibt, von diesem ausgehen und den Tabellenschritt überspringen.

Prüfen, ob die Person bereits eine Seite hat (next_id.py find "<Nachname>", und die Tabelle am Anfang von docs/people/index.md). Eine Seite mit dem Vermerk !!! warning "Страница-заготовка" ist ein Platzhalter: die Biographie dort hineinschreiben, wobei deren ID und Dateiname beibehalten werden.

1a. Scans im Yandex-Archiv lesen

Für jeden Datensatz mit einem yandex.ru/archive/catalog/...-Link den erkannten Text des Scans abrufen:

python3 .claude/skills/genealogy-biography/scripts/yandex_archive.py page "<url>"

Es gibt den Dokumenttitel und den Katalogpfad (Archiv / Fond / Opis / Delo) sowie die erkannten Zeilen der Seite aus. Diese verwenden, um:

  • den Eintrag zur Person zu finden und zu zitieren (siehe „Quellen zitieren" weiter unten);
  • Details zu erfassen, die der Tabelle fehlen: Eintragsnummer, Taufdatum vs. Geburtsdatum, Name und Eltern des Kindes, Paten, Trauzeugen bei einer Hochzeit, Priester, Todesursache, Alter;
  • eine fehlende Archivreferenz (Fond/Opis/Delo) aus dem Katalogpfad zu ergänzen.

Der Text ist maschinell erkannte Handschrift. Tabellenspalten erscheinen als separate Zeilen, daher Daten und Alter durch Reihenfolge ihren Spalten zuordnen und Zahlen und seltene Namen mit Vorsicht behandeln. Um nach Datensätzen zu suchen, die keinen Link in der Tabelle haben (z. B. ein Todesdatensatz), yandex_archive.py search "<Namensformen, Ort>" versuchen. Die Ausschnitte stammen aus strukturiertem Markup und sind manchmal besser lesbar als die Seitenzeilen (z. B. ein Alter). Jede versuchte Suche protokollieren, damit ein negatives Ergebnis gemeldet werden kann.

Jede Archivdurchsicht protokollieren. Vor der Durchsicht eines Delo oder einer Reihe von Scans family_tree_github/internal/checks/reviewed_documents.md (intern, nicht auf der Seite) prüfen – es könnte bereits durchsucht worden sein. Nach der Durchsicht – eines metrischen Buches für diese Person, einer Yandex-Archivsuche, eines nach einem fehlenden Eintrag durchsuchten Delo – den Eintrag dort hinzufügen oder erweitern, einschließlich negativer Ergebnisse: was (Archiv, Fond, Opis, Delo oder Scan-Pfad), Datum, wie (alle Blätter / Stichprobe / nur Suche), was gesucht wurde (Namen, Orte), Ergebnis (gefunden → [A…] oder Bilder; nicht gefunden → «искали …, не нашли»), was ungelesen bleibt. Große Scansammlungen werden mit der Fähigkeit zur Archiv-Scan-Suche durchsucht; ganze metrische Bücher werden mit der Fähigkeit zur metrischen Buch-Indexierung indiziert.

2. Fakten extrahieren und abgleichen

Vor dem Schreiben eine Faktenliste pro Ereignis mit der dazugehörigen Quellenangabe (aus der Fähigkeit zur chronologischen Tabelle, wenn die Eingabe eine Tabelle ist) mit Alter, Namensvarianten, Statusänderungen, Familie und Lücken abgeglichen haben. Statusübergänge klar erklären; siehe references/terms.md.

3. Biographie schreiben

Die Eingabetabelle ist keine Quelle – sie niemals erwähnen. Die chronologische Tabelle (und alle anderen vom Benutzer gegebenen Arbeitsnotizen) ist die private Forschungsdatei des Benutzers; Leser der Site wissen nicht, dass sie existiert, und wissen nichts über Genealogie oder Archivsuche. Daher im gesamten Ausgabetext:

  • Niemals „в таблице", „по таблице", „из таблицы", „в исходных данных", „столбец", „строка N" und dergleichen schreiben. Nur echte Quellen zitieren: Archivdokumente, Scans, Publikationen, Webseiten.
  • Wo nichts bekannt ist, allgemein formulieren: „в имеющихся источниках об этом не сказано", „дословный текст записи недоступен", „архивный шифр неизвестен", „скан найти не удалось".
  • Eine Transkription aus der Kommentarspalte wird nur „расшифровка" (der Text des Eintrags) genannt, nicht „расшифровка из таблицы".
  • Fehler und Lücken in der Tabelle selbst (falsche Präfektur, Geburtsdatum statt Taufdatum, Zeilen ohne Ort, falsch geschriebene Namen) werden in der Biographie nicht thematisiert: den korrekten Wert im Text verwenden und das Tabellenproblem dem Benutzer im Chat melden (Schritt 6). Eine abweichende Schreibweise nur in den Anmerkungen erwähnen, wenn sie in einer echten Quelle vorkommt.
  • Alles für den Laien erklären: was ein Eintragstyp ist, was eine Abkürzung oder ein Status bedeutet.

Jede faktische Behauptung in den Eingabedaten verankern. Niemals Daten, Orte, Verwandte, Berufe, Ursachen oder Motive erfinden. Wo die Daten schweigen, entweder schweigen oder klar sagen, dass die Aufzeichnungen es nicht zeigen. Ausdrücke wie „wahrscheinlich", „vermutlich" sind nur für vernünftige Schlussfolgerungen erlaubt, die direkt durch die Daten gestützt werden (z. B. ein aus Aufzeichnungen an einem neuen Ort erschlossener Umzug), und müssen als Schlussfolgerungen gekennzeichnet werden. Eine Arbeitshypothese (z. B. dass zwei Aufzeichnungen dieselbe Person betreffen) gehört unter «Исследовательские заметки», beginnend mit Предположение (не подтверждено документами).

Verwandtschaftsverhältnis Glied für Glied nachweisen. Jede Eltern-Kind- und Ehepartner-Verbindung ist eine separate Behauptung mit eigenen Quellen; ein Großelternteil oder entfernterer Vorfahr wird nur durch eine Kette nachgewiesener Verbindungen belegt. Beim Schreiben über eine Verbindung:

  • Sagen, worauf sie beruht. Eine in einem Eintrag genannte Verbindung wird als solche geschrieben («по записи о рождении 1919 г.»), nicht als gesicherte Tatsache aus vielen Quellen. Sie gilt nur dann als durch mehrere Dokumente bestätigt, wenn diese unabhängig sind: eine Kopie, ein Auszug, eine Bescheinigung oder Nacherzählung desselben Eintrags ist dieselbe Quelle.
  • Ein Vatersname nennt nur den Vater („Яковлевич" = Vater namens Яков); er zeigt nicht, welcher Яков. Geteilter Nachname, Dorf oder Haushalt ist ebenfalls kein Hinweis auf Verwandtschaft.
  • Namensvettern (gleicher Name und Vatersname, gleiches Dorf) als separate Personen führen, bis Aufzeichnungen sie unterscheiden; ein Namensvetter außerhalb des Stammbaums erhält eine eigene Vergleichsseite.
  • Wenn Aufzeichnungen widersprechen (z. B. der Vatersname einer Mutter), beide Versionen nebeneinander angeben mit der Angabe, wer die Informationen wann geliefert hat: Ein Eintrag, der zum Zeitpunkt des Ereignisses oder von der Person selbst erstellt wurde, wiegt in der Regel mehr als ein späterer von anderen. In research_open_questions.md protokollieren.
  • Eine Familiengeschichte oder die Notiz des Erstellers ist ein Hinweis, kein Dokument: sie als «по заметкам составителя» kennzeichnen und niemals als Aufzeichnung präsentieren.

Ein kurzer historischer Kontext ist willkommen, wenn er dem Leser hilft, einen Eintrag zu verstehen (was die Strafkolonie Sachalin war, was Tschechows Volkszählung von 1890 war, was es bedeutete, Pate zu sein, was der Status „ссыльнопоселенец" erlaubte). Kurz, allgemein und klar über die Epoche halten – niemals als Tatsache über diese Person darstellen.

Besuchte Orte immer beschreiben. Immer wenn die Person einen bestimmten Ort besuchte – einen Tempel, Schrein, eine Kirche, ein Kloster, Museum, Schloss, einen Bauernhof, eine Fabrik, einen Park, eine Schule, eine Gedenkstätte usw. – eine kurze Beschreibung davon hinzufügen (2–5 Sätze): was es ist, wo genau es sich befindet, wann und von wem es gegründet wurde, wofür es bekannt ist, was ein Besucher dort sieht. Die Fakten nachschlagen (offizielle Website, Wikipedia, Enzyklopädien) und genau halten; die eigene Verbindung der Person zum Ort (mit wem, was sie dort getan hat) stammt nur aus den Daten. Eine Stadt, ein Dorf oder eine Region für sich allein braucht keine Beschreibung (eine kurze Kontextzeile ist optional). Wenn ein Ortsname in den Daten falsch geschrieben aussieht oder nicht gefunden werden kann, den wahrscheinlichsten wirklichen Namen im Text verwenden und die ursprüngliche Schreibweise im Anmerkungsbereich notieren.

Quellen zitieren. Wo immer der Text eines Eintrags verfügbar ist (eine Transkription in der Kommentarspalte der Tabelle oder erkannter Text aus dem Scan), diesen wörtlich zitieren, in der Form: Согласно записи в метрической книге: «Корсаковской тюрьмы ссыльно-каторжная Евдокія Андреева Лапина…» [A1000]. Dies gilt für jedes Ereignis: Geburten, Todesfälle (einschließlich Ursache und Alter wie geschrieben), Heiraten, Patenschaften, Volkszählungen und Beichtlisten.

  • Die ursprüngliche Schreibweise beibehalten, einschließlich vorreformatorischer Rechtschreibung und Namensvarianten.
  • In der Biographie offensichtliche OCR-Fehler stillschweigend korrigieren. Auf der Quellseite in eckigen Klammern zeigen: Корсаковскаго [в распознании: «Корожковскаго»].
  • Interpretation und Erklärung sind willkommen und bleiben im Text. Sie neben das Zitat setzen, nicht an seiner Stelle, z. B. «…(старости)» — то есть умерла от старости.
  • Wenn kein Text existiert (keine Transkription in der Tabelle und kein Scan oder ein unlesbarer), dies im Text klar sagen: "Дословный текст записи недоступен, скан найти не удалось." Niemals einen Eintrag so paraphrasieren, als wäre er zitiert worden.
  • Woher ein Zitat stammt, wird auf seiner Quellseite angegeben, nicht in der Biographie (siehe "Textherkunftsbezeichnung" in Schritt 4). Die allgemeine Erklärung dieser Bezeichnungen und der Zeichen [?], […], [неразборчиво], [в распознании: «…»] steht einmal im Abschnitt «Откуда взяты цитаты» von docs/sources/index.md; nicht auf Personenseiten wiederholen.

Inline zitieren. Nach jeder Behauptung die Quellen-ID in eckigen Klammern hinzufügen: ...родились близнецы Иван и Мария [A1000]. Mehrere hintereinander: [B1000][A1005]. Jede verwendete ID muss eine Seite haben, und jede Quellseite dieser Person sollte mindestens einmal zitiert werden.

Personen verlinken. Wenn eine Person, die eine eigene Seite hat, erwähnt wird, diese verlinken: [Егор Почеревин](P1001) im Fließtext, [P1001] in Listen (wird als vollständiger Name dargestellt). Personen ohne Seite bleiben als reiner Text – keine Seiten für alle erwähnten Personen erstellen.

Sprache. In der Sprache schreiben, die der Benutzer angefordert hat. Wenn nicht angegeben, die Sprache des Tabelleninhalts verwenden (für russische Tabellen – Russisch). Namen und zitierter Aufzeichnungstext in ihrer ursprünglichen Form belassen; beim Schreiben in einer anderen Sprache Namen transliterieren und bei erster Erwähnung das Original in Klammern angeben.

Struktur (die Überschriften an das Leben der Person anpassen; Abschnitte ohne Daten überspringen):

---
person_id: P1005
name: "Имя Отчество Фамилия"
name_variants:
  - "<wie in den Dokumenten geschrieben>"
birth_date: "1885-07-15"        # ISO; "1851/1857" für einen Bereich; "" wenn unbekannt
birth_date_status: confirmed    # confirmed | probable | unknown
death_date: ""
death_date_status: unknown
parents: [P1000]                # nur IDs von Personen, die Seiten haben
spouses: []
children: []
sources: [A1000, A1005]
---

# <Vollständiger Name> (<Geburtsjahr oder -bereich> – <Sterbejahr>)

<Eine Absatzzusammenfassung: wer, wo, der Lebensbogen in 3–4 Sätzen.>

KEINEN Absatz hinzufügen, der Quellcodes erklärt ("Коды в квадратных скобках — ...", Quellentypen, OCR-Einschränkungen). Diese allgemeine Erklärung lebt einmal in `docs/research-method.md` und `docs/sources/index.md`, nicht auf Personenseiten.

## <Lebensabschnitt 1, z. B. Herkunft>
## <...>
## <Letzte Jahre und Tod>

## Семья
<Ehepartner und Kinder mit Daten, als kurze Liste; diejenigen mit Seiten verlinken.>

## Хронология
| Дата | Событие | Место | Источник |
<Kompakte Tabelle, eine Zeile pro Eingabezeile.>

## Замечания о документах
<Abweichungen bei Alter, Namen, Daten; Lücken; offene Fragen, die weitere Forschung verdienen; welche Einträge keinen verfügbaren Text haben; OCR-Lesungen, die gegen den Scan geprüft werden müssen.>

## Исследовательские заметки
<Hypothesen und Forschungshinweise, jede mit «Предположение» markiert. Überspringen, wenn keine.>

## Источники
- [A1000] — <Kurzbeschreibung>
- ...

## Связанные персоны
- <Rolle> — [P1000]

4. Quellseiten (obligatorisch, wenn Quellen vorhanden)

Eine Seite pro eindeutigem Dokument, von allen Biographien geteilt. Wenn mehrere Zeilen denselben Eintrag zitieren, dieselbe ID zitieren. Vor dem Erstellen einer Seite danach suchen (next_id.py find nach Archivreferenz, Scan-URL, ursprünglichem Code): wenn sie vorhanden ist, die ID wiederverwenden, neue Details oder Zitate zu dieser Person auf dieser Seite hinzufügen und die Person zu deren related_people und «Связанные персоны» hinzufügen.

Präfixwahl – nach der Rolle des Materials, nicht wo es gespeichert ist:

  • A — ein Archiveintrag: metrischer Bucheintrag, Beichtliste, Volkszählungskarte, Akte. Die Seite enthält die Archivreferenz (Archiv, Fond, Opis, Delo, Blatt) und den Scan-Link. A auch dann verwenden, wenn die Referenz unbekannt ist, es sich aber eindeutig um einen Archiveintrag handelt.
  • D — eine konkrete Akte oder ein Dokument (lokaler Scan/PDF, Notizen des Erstellers, eine Bescheinigung). D-Quellen werden vorerst nicht veröffentlicht: Keine […] erstellen

Verwandte Skills