전기
입력은 한 사람의 생애를 설명합니다. 가장 흔한 형태는 연대표 스프레드시트(메트릭 북, 고해명부, 인구조사, 법원/행정 파일에서 컴파일된, 각 행이 하나의 사건인 형태)이지만, 메모, 링크 또는 문서일 수도 있습니다. 출력은 읽기 쉬운 전기와 출처 페이지입니다. 정확성이 문학적 표현보다 중요합니다. 계보 연구자들은 모든 주장을 문서와 대조하여 확인할 것입니다.
출력이 저장되는 위치. 모든 내용은 사이트 프로젝트 family_tree_github/ (MkDocs Material; README.md 참조)에 기록됩니다:
| 대상 | 위치 |
|---|---|
| 사람 페이지 | family_tree_github/docs/people/P1000-<slug>.md |
| 기록물 | docs/sources/archives/A1000-<slug>.md |
| 서적/간행물 | docs/sources/books/B1000-<slug>.md |
| 사진 | docs/sources/photos/F1000-<slug>.md (이미지는 docs/assets/images/people/에) |
| 웹 페이지 | docs/sources/websites/W1000-<slug>.md |
| 장소 (정착지) | docs/places/PLC1000-<slug>.md |
| 장소 색인 | docs/places/index.md |
| 사람 색인 | docs/people/index.md |
| 출처 색인 | docs/sources/index.md |
| 메뉴 | family_tree_github/mkdocs.yml의 nav: |
이전 루트 파일들(sources.md(번호 3000–3011), people.md, *_biography.md)은 레거시입니다. 여기에 쓰지 마십시오. 사이트 어디에서도 이전 번호를 언급하지 마십시오. legacy_id, «Прежний №» 열 또는 행을 사용하지 마십시오.
ID. 접두사와 1000부터 시작하는 네 자리 숫자로 구성되며, 파일 이름의 시작 부분에서 가져옵니다. ID는 절대 변경되지 않으며, 페이지가 삭제된 후에도 재사용되지 않습니다. 다음 빈 번호를 가져오고 중복을 확인하십시오:
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" # 이미 존재하는가?
python3 .claude/skills/genealogy-biography/scripts/next_id.py list
링크. ID만 작성하십시오. 사이트의 훅(hooks/id_links.py)이 이를 링크로 변환합니다: [A1006] → 출처 페이지에 «A1006» 레이블이 붙은 링크; [P1000] → 사람 이름이 레이블로 붙은 링크; [жена](P1000) → 사용자 지정 텍스트가 있는 링크. 내부 페이지에 대한 파일 경로나 URL을 절대 작성하지 마십시오. 알 수 없는 ID는 빌드를 중단시킵니다.
1. 입력 읽기
입력이 연대표 스프레드시트(.ods, .xlsx, .csv)인 경우, 먼저 chronology-table 스킬을 로드하고 따르십시오. 스킬은 표를 덤프하고, 열을 매핑하며, 행별로 조정된 사실 목록과 출처를 제공합니다. 모든 전기가 표에서 시작하는 것은 아닙니다. 사용자가 다른 자료(메모, 링크, 문서)를 제공하는 경우 이를 사용하고 표 단계를 건너뛰십시오.
해당 인물에 대한 페이지가 이미 있는지 확인하십시오(next_id.py find "<성>", 그리고 docs/people/index.md 상단의 표). !!! warning "Страница-заготовка"라고 표시된 페이지는 플레이스홀더입니다. 해당 페이지의 ID와 파일 이름을 유지하면서 전기를 그 페이지에 작성하십시오.
1a. Yandex Archive 스캔 읽기
yandex.ru/archive/catalog/... 링크가 있는 모든 기록에 대해, 스캔 이미지의 인식된 텍스트를 가져오십시오:
python3 .claude/skills/genealogy-biography/scripts/yandex_archive.py page "<url>"
스크립트는 문서 제목과 카탈로그 경로(Архив / Фонд / Опись / Дело), 그리고 페이지의 인식된 행들을 출력합니다. 이를 사용하여:
- 해당 인물에 대한 기록을 찾고 인용합니다(아래 "기록 인용" 참조);
- 표에 없는 세부 정보를 얻습니다: 기록 번호, 세례일 대 출생일, 자녀 이름과 부모, 대부모, 결혼식의 증인, 신부, 사망 원인, 나이;
- 카탈로그 경로에서 누락된 기록물 참조(фонд/опис/дело)를 채웁니다.
텍스트는 기계가 인식한 필기체입니다. 표의 열은 별도의 행으로 출력되므로, 날짜와 나이를 순서대로 해당 열에 매칭하고, 숫자와 희귀한 이름은 주의하여 처리하십시오. 표에 링크가 없는 기록(예: 사망 기록)을 찾으려면 yandex_archive.py search "<이름 형태, 장소>"를 시도하십시오. 이 스니펫은 구조화된 마크업에서 가져오므로 페이지 행보다 더 잘 읽힐 때도 있습니다(예: 나이). 시도한 모든 검색을 기록하여 결과가 없음을 보고할 수 있도록 하십시오.
모든 기록물 검토를 기록하십시오. 델로 또는 스캔 세트를 검토하기 전에 family_tree_github/internal/checks/reviewed_documents.md(사이트에 공개되지 않음)를 확인하십시오. 이미 검색되었을 수 있습니다. 하나의 검토(이 사람에 대해 읽은 메트릭 북, Yandex Archive 검색, 누락된 기록을 위해 찾아본 델로)를 완료한 후에는 해당 항목을 추가하거나 확장하십시오. 부정적인 결과를 포함하여: 무엇(Архив, Фонд, Опис, Дело 또는 스캔 경로), 날짜, 방법(모든 리프 / 샘플 / 검색 전용), 검색 내용(이름, 장소), 결과(찾음 → [A…] 또는 프레임; 찾지 못함 → «искали …, не нашли»), 읽지 않은 부분. 대규모 스캔 컬렉션은 archive-scan-search 스킬로 검색되고, 전체 메트릭 북은 metric-book-index 스킬로 색인됩니다.
2. 사실 추출 및 조정
작성하기 전에 각 사건에 대한 사실 목록을 관련 출처와 함께 준비하십시오(입력이 표인 경우 chronology-table 스킬에서). 나이, 이름 변형, 신분 변경, 가족 관계, 공백을 조정하십시오. 신분 전환을 명확하게 설명하십시오. references/terms.md를 참조하십시오.
3. 전기 작성
입력 표는 출처가 아닙니다. 절대 언급하지 마십시오. 연대표(및 사용자가 제공하는 기타 작업 노트)는 사용자의 개인 연구 파일입니다. 사이트 독자는 그 존재를 모르며, 계보나 기록물 검색에 대해 아무것도 모릅니다. 따라서 모든 출력 텍스트에서:
- "в таблице", "по таблице", "из таблицы", "в исходных данных", "столбец", "строка N" 등과 같은 표현을 절대 사용하지 마십시오. 실제 출처(기록물, 스캔, 간행물, 웹사이트)만 인용하십시오.
- 아무것도 알려져 있지 않은 경우, 일반적인 용어로 표현하십시오: "в имеющихся источниках об этом не сказано", "дословный текст записи недоступен", "архивный шифр неизвестен", "скан найти не удалось".
- 주석 열의 필사본은 "расшифровка"(기록의 텍스트)라고만 부르고, "расшифровка из таблицы"라고 부르지 마십시오.
- 표 자체의 오류 및 공백(잘못된 현, 출생일이 세례일 대신 제공됨, 장소가 없는 행, 철자가 틀린 이름)은 전기에서 논의하지 마십시오. 텍스트에서는 올바른 값을 사용하고, 사용자에게 표 문제를 채팅으로 보고하십시오(6단계). 실제 출처에 나타나는 경우에만 참고 사항에서 철자 변형을 언급하십시오.
- 일반 독자를 위해 모든 것을 설명하십시오: 기록 유형이 무엇인지, 약어나 신분이 무엇을 의미하는지.
모든 사실적 주장을 입력 데이터에 근거하십시오. 날짜, 장소, 친척, 직업, 원인 또는 동기를 절대 창작하지 마십시오. 데이터가 침묵하는 경우, 침묵을 유지하거나 기록이 그것을 보여주지 않는다고 명확히 말하십시오. "아마도", "추정컨대"와 같은 표현은 데이터에 의해 직접적으로 뒷받침되는 합리적인 추론(예: 새 장소의 기록에서 추론된 이주)에만 허용되며, 추론임을 표시해야 합니다. 작업 가설(예: 두 기록이 동일 인물임)은 «Исследовательские заметки» 아래에 Предположение (не подтверждено документами) 로 시작하여 배치하십시오.
친족 관계를 연결고리별로 증명하십시오. 각 부모-자식 및 배우자 연결은 고유한 출처가 있는 별도의 주장입니다. 조부모 또는 더 먼 조상은 입증된 연결의 연쇄를 통해서만 증명됩니다. 연결에 대해 작성할 때:
- 그 연결이 무엇에 기반하는지 말하십시오. 하나의 기록에 명명된 연결은 그렇게 기록하십시오(«по записи о рождении 1919 г.»), 여러 출처에서 확정된 사실로 기록하지 마십시오. 여러 문서에 의해 확인된 것으로 간주되려면 독립적인 문서여야 합니다. 동일한 기록의 사본, 발췌, 증명서 또는 재진술은 동일한 출처입니다.
- 부칭은 아버지를 지칭할 뿐입니다("Яковлевич" = 아버지 이름이 Яков). 어떤 Яков인지는 보여주지 않습니다. 동일한 성, 마을 또는 가구는 친족 관계의 증거가 아닙니다.
- 완전한 동명이인(동일한 이름과 부칭, 동일한 마을)은 기록이 구분할 때까지 별도의 인물로 유지하십시오. 계보 밖의 동명이인은 자체 비교 페이지를 얻습니다.
- 기록이 불일치하는 경우(예: 어머니의 부칭), 두 버전을 제공하고 누가 언제 정보를 제공했는지 명시하십시오. 사건 당시 또는 본인으로부터의 기록은 일반적으로 다른 사람으로부터의 후기 기록보다 비중이 큽니다.
research_open_questions.md에 기록하십시오. - 가족 이야기나 편집자의 메모는 단서일 뿐, 문서가 아닙니다. «по заметкам составителя`라고 표시하고 절대 기록으로 제시하지 마십시오.
간략한 역사적 맥락은 독자가 기록을 이해하는 데 도움이 될 때 환영합니다(사할린 유형지가 무엇인지, 체호프의 1890년 인구조사가 무엇인지, 대부모가 무엇을 의미하는지, "ссыльнопоселенец" 신분이 허용한 것이 무엇인지). 짧고 일반적이며 시대에 관한 것임을 명확히 하십시오. 이 사람에 대한 사실로 제시하지 마십시오.
방문한 장소를 항상 설명하십시오. 특정 장소(사원, 신사, 교회, 수도원, 박물관, 성, 농장, 공장, 공원, 학교, 기념관 등)를 방문한 경우, 간략한 설명(2–5문장)을 추가하십시오: 그것이 무엇인지, 정확히 어디에 있는지, 언제 누구에 의해 설립되었는지, 무엇으로 유명한지, 방문객이 무엇을 보는지. 사실을 조사하십시오(공식 사이트, Wikipedia, 백과사전)하고 정확하게 유지하십시오. 사람과 장소의 연결(누구와, 그들이 그곳에서 무엇을 했는지)은 데이터에서만 비롯됩니다. 도시, 마을 또는 지역 자체는 설명이 필요하지 않습니다(한 줄의 맥락은 선택 사항). 데이터의 장소 이름이 철자 오류처럼 보이거나 찾을 수 없는 경우, 텍스트에서 가장 가능성 있는 실제 이름을 사용하고 참고 사항 아래에 원래 철자를 기록하십시오.
기록 인용. 기록 텍스트를 사용할 수 있는 경우(표의 주석 열에 있는 필사본 또는 스캔에서 인식된 텍스트), 그대로 인용하십시오: Согласно записи в метрической книге: «Корсаковской тюрьмы ссыльно-каторжная Евдокія Андреева Лапина…» [A1000]. 이는 모든 사건에 적용됩니다: 출생, 사망(사망 원인과 나이를 기록된 대로 포함), 결혼, 대부모 역할, 인구조사, 고해명부.
- 철자 오류, 개혁 전 철자 및 이름 변형을 포함한 원래 철자를 유지하십시오.
- 전기에서는 명백한 OCR 오류를 조용히 수정하십시오. 출처 페이지에서는 대괄호로 표시하십시오:
Корсаковскаго [в распознании: «Корожковскаго»]. - 해석과 설명은 환영하며 텍스트에 유지됩니다. 인용문 옆에 배치하고, 인용문을 대체하지 마십시오. 예: «…(старости)» — то есть умерла от старости.
- 텍스트가 없는 경우(표에 필사본이 없고 스캔이 없거나 읽을 수 없는 경우), 텍스트에서 명확히 말하십시오: "Дословный текст записи недоступен, скан найти не удалось." 인용된 것처럼 기록을 의역하지 마십시오.
- 인용문이 어디서 왔는지는 출처 페이지에 명시되며, 전기에는 명시되지 않습니다(4단계의 "텍스트 출처 레이블" 참조). 이러한 레이블 및 표시 [?], […], [неразборчиво], [в распознании: «…»]에 대한 일반적인 설명은
docs/sources/index.md의 «Откуда взяты цитаты` 섹션에 한 번만 있으며, 사람 페이지에 반복하지 마십시오.
인라인 인용. 각 주장 후에 대괄호 안에 출처 ID를 추가하십시오: ...родились близнецы Иван и Мария [A1000]. 연속: [B1000][A1005]. 사용된 모든 ID는 페이지가 있어야 하며, 이 사람의 모든 출처 페이지는 적어도 한 번 인용되어야 합니다.
사람 링크. 자신의 페이지가 있는 사람이 언급될 때, 링크하십시오: [Егор Почеревин](P1001) (본문 텍스트에서), [P1001] (목록에서, 전체 이름으로 렌더링됨). 페이지가 없는 사람은 일반 텍스트로 남깁니다. 언급된 모든 사람에 대해 페이지를 만들지 마십시오.
언어. 사용자가 요청한 언어로 작성하십시오. 지정되지 않은 경우, 표 내용의 언어를 사용하십시오(러시아어 표의 경우 러시아어). 이름과 인용된 기록 텍스트는 원래 형태로 유지하십시오. 다른 언어로 작성할 때는 이름을 음역하고 첫 번째 언급 시 원어를 괄호 안에 제공하십시오.
구조 (해당 인물의 생애에 맞게 제목을 조정하고, 데이터가 없는 섹션은 생략):
---
person_id: P1005
name: "Имя Отчество Фамилия"
name_variants:
- "<문서에 기록된 대로>"
birth_date: "1885-07-15" # ISO; 범위의 경우 "1851/1857"; 알 수 없는 경우 ""
birth_date_status: confirmed # confirmed | probable | unknown
death_date: ""
death_date_status: unknown
parents: [P1000] # 페이지가 있는 사람의 ID만
spouses: []
children: []
sources: [A1000, A1005]
---
# <Full name> (<출생 연도 또는 범위> – <사망 연도>)
<한 단락 요약: 누구인지, 어디에서, 생애의 흐름을 3–4문장으로.>
출처 코드를 설명하는 단락을 추가하지 마십시오("Коды в квадратных скобках — ...", 출처 유형, OCR 주의 사항). 이 일반 설명은 `docs/research-method.md` 및 `docs/sources/index.md`에 한 번만 있으며, 사람 페이지에는 없습니다.
## <생애 기간 1, 예: 기원>
## <...>
## <마지막 해와 죽음>
## Семья
<배우자와 자녀를 날짜와 함께 간략한 목록으로; 페이지가 있는 사람은 링크.>
## Хронология
| 날짜 | 사건 | 장소 | 출처 |
<간결한 표, 입력의 각 행을 한 줄로.>
## Замечания о документах
<나이, 이름, 날짜의 불일치; 공백; 추가 연구가 필요한 미해결 질문; 텍스트를 사용할 수 없는 기록; 스캔과 대조해야 할 OCR 판독값.>
## Исследовательские заметки
<가설 및 연구 단서, 각각 «Предположение»으로 표시. 없으면 건너뜁니다.>
## Источники
- [A1000] — <간략한 설명>
- ...
## Связанные персоны
- <역할> — [P1000]
4. 출처 페이지 (출처가 있을 때 필수)
각 개별 문서별로 하나의 페이지이며, 모든 전기에서 공유됩니다. 여러 행이 동일한 기록을 인용하는 경우, 동일한 ID를 인용하십시오. 페이지를 만들기 전에 검색하십시오(next_id.py find by archive reference, scan URL, original code): 존재하는 경우 ID를 재사용하고, 해당 인물에 대한 새로운 세부 정보나 인용문을 해당 페이지에 추가하고, related_people 및 «Связанные персоны»에 해당 인물을 추가하십시오.
접두사 선택 — 자료의 역할에 따라, 저장 위치가 아닙니다:
A— 기록물: 메트릭 북 항목, 고해명부, 인구조사 카드, 파일. 페이지는 기록물 참조(Архив, Фонд, Опись, Дело, Лист) 및 스캔 링크를 보유합니다. 참조를 알 수 없지만 명백히 기록물인 경우에도A를 사용하십시오.D— 구체적인 파일 또는 문서(로컬 스캔/PDF, 편집자 메모, 증명서). 현재D출처는 게시되지 않습니다: <...>