From gedcom-skills
Use when the user asks to generate, build, or write a genealogy report, ancestor report, ancestry report, or family tree report from a GEDCOM file — particularly one organized by generation with categorized immigrant tables (e.g., "report all my ancestors back N generations", "make a markdown report of [person]'s ancestry", "list immigrants in my tree by region", "build a colonial ancestors report"). Outputs a single markdown file with Ahnentafel-numbered generations, optional alternate family trees for FAMC conflicts, and tables grouped by region of origin and (optionally) by colonial-era status.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gedcom-skills:ancestor-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generates a categorized markdown report of direct ancestors. Walks the tree
Generates a categorized markdown report of direct ancestors. Walks the tree using Ahnentafel (Sosa-Stradonitz) numbering, optionally applies parent overrides for FAMC conflicts, and emits:
--alternate.
Numbered with letter prefixes (A1, A2, …, B1, …).--no-colonial for non-US-focused reports) with three subsections:
--root @I1@ --depth 7.Do not use when:
search-gedcom --ancestors-of directly.search-gedcom.update-gedcom.This skill is a thin wrapper around the gedcom-ancestor-report console
script published by gedcom-reports. Run it via uvx:
uvx --from gedcom-reports gedcom-ancestor-report FILE --root @I1@ --depth 10 [options]
If gedcom-reports is already installed (pip install gedcom-reports),
invoke gedcom-ancestor-report directly.
--root @I1@ Root individual xref. (required)
--depth N Generations to walk (default: 7).
--override "@C@=@F@,@M@" Pick parents @F@ and @M@ for child @C@. Repeatable.
Either parent may be empty: "@C@=@F@," (no mother).
--alternate @C@ Render an Alternate Family Tree section for child @C@
from any FAMC entries that weren't chosen. Repeatable.
Without this flag, the un-chosen FAMC is silently dropped.
--regions PATH Path to regions.yaml or regions.json (default: bundled).
--colonial / --no-colonial Include or suppress the Colonial Ancestors section
(default: included). Pass --no-colonial for
non-US-focused reports.
--alt-depth N Cap depth of alternate family trees (default: --depth).
--show-conflicts Include a FAMC Conflicts section before the tables.
--print-default-regions Print the path to the bundled regions.yaml and exit.
Handy as a starting point for `--regions` overrides.
--output PATH Write to a file (default: stdout).
By default, the script follows only the first FAMC of each individual
(matching gedcom-search --primary-famc-only). This keeps the main tree
unambiguous. To choose a different FAMC for an individual, use --override.
--override is silent by default — the parent set you didn't pick is
dropped. To explicitly render the un-chosen FAMC entries as an Alternate
Family Tree section, pass --alternate @C@ for the child whose alt tree
you want shown.
This split lets you handle two distinct cases cleanly:
--override alone to merge them silently.--override and --alternate so both the chosen and rejected parent
sets are visible in the report.If you want to see which ancestors have multiple FAMC entries before
deciding on overrides, use --show-conflicts.
A YAML/JSON config file controls how birth places are bucketed. The default
config ships inside the gedcom-reports package and includes these
buckets:
The classification is two-pass:
To customize, copy the bundled regions.yaml (find its path with
gedcom-ancestor-report --print-default-regions), edit it, and pass
--regions path/to/your.yaml. To handle ambiguous tokens (e.g.,
"Middlesex" exists in both England and New Jersey), avoid bare keywords —
include disambiguating context like middlesex, england, or rely on the
country-level keyword (england, united kingdom) being present.
# Basic 7-generation report
uvx --from gedcom-reports gedcom-ancestor-report \
tree.ged --root @I1@ --depth 7 --output report.md
# Show every FAMC conflict so you can decide on overrides
uvx --from gedcom-reports gedcom-ancestor-report \
tree.ged --root @I1@ --show-conflicts > conflicts.md
# Override two ambiguous FAMC entries and walk 10 generations, surfacing
# the un-chosen parent sets as alternate trees
uvx --from gedcom-reports gedcom-ancestor-report tree.ged \
--root @I322367362260@ --depth 10 \
--override "@I322367362470@=@I322367362647@,@I322367362648@" \
--override "@I322367362647@=@I322410457996@,@I322548366731@" \
--alternate @I322367362470@ \
--alternate @I322367362647@ \
--output report.md
# Silently fix a split-FAMC data-entry error (no alternate tree wanted)
uvx --from gedcom-reports gedcom-ancestor-report tree.ged \
--root @I1@ --depth 7 \
--override "@I322404467221@=@I322471147822@,@I322404467237@" \
--output report.md
# Suppress the Colonial Ancestors section for a non-US-focused report
uvx --from gedcom-reports gedcom-ancestor-report tree.ged \
--root @I1@ --depth 10 --no-colonial --output report.md
# Use a custom region config that adds an "Asian Settlers" bucket
uvx --from gedcom-reports gedcom-ancestor-report tree.ged \
--root @I1@ --depth 7 --regions ./my_regions.yaml --output report.md
**#42**); alternate-tree entries use a letter prefix
(**#A1**).gedcom-reports — the package providing the
gedcom-ancestor-report console script and its bundled regions.yaml.gedcom-ancestor-report --help for the authoritative flag reference.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub vaelen/gedcom-skills --plugin gedcom-skills