Nishi FamilyCompare › The Nishi Family Atlas vs FamilySearch / Ancestry / Gramps / MyHeritage

Nishi Compare · measured, not asserted

The Nishi Family Atlas vs FamilySearch / Ancestry / Gramps / MyHeritage

Nishi vs the field — every Nishi cell is measured against real organ source at emit time; each gap names the watch contract that will close it.

HONEST INTAKE after the operator's "garbage right now" verdict: the atlas has real bones (16,222 complete person pages, mechanical classification, judged explorer, one-call regen) but misses the VIEWS that make family-history systems great -- multi-generation pedigree, fan chart, descendancy, couples, timelines. This matrix is the judged build order.

Layer 1 · Executive

Where we are. The atlas has real bones: 16,222 complete person pages with machine-verified evidence on every person (exceed -- provenance by construction), mechanical classification, a judged one-hop explorer, on-demand lineage portraits, population tallies, mechanical research hints, instant directory search, API-mintable pages, and one-call regeneration of all 32,472 artifacts from ground truth (exceed). It misses the VIEWS that make family-history systems great: multi-generation pedigree, fan chart, descendancy, couples, timelines, fuzzy search, print and export.

Where we need to go. The views FamilySearch and Ancestry are defined by, emitted zero-JS from the same living graph: a landscape pedigree expandable per line, the iconic fan chart, the descendancy view (what builds on this, transitively), couple units from the partners data every fam JSON already carries, a timeline from the journals, record-linkage-grade name matching, and chart export -- each regenerated in the one-call rebuild so it can never go stale.

The unit. 1 u = one measured session-leg (estate calibration: graphics R21 in one leg 2026-08-15). Local evidence: the judged explorer (841 permil) and the per-seed lineage render each landed in one leg; estimates are relative to those.
Where we are: 7 open rungs. Data complete and machine-verified; the defining views absent. Counts measured at emit below this line.
Cost to the defining view: 1.5 u. FA1 the multi-generation pedigree chart -- THE family-history view, and the one the explorer's one hop is not.
Cost to the rest of the tree UX: 4 u. FA2 fan chart, FA3 descendancy, FA4 couple units -- all emitters over the same graph walk FA1 builds.
Cost to history, search and export: 4 u. FA5 timeline from journals, FA6 fuzzy name match, FA7 chart export.

Research bar. FamilySearch is measured on pedigree, fan chart, descendancy, person timeline, record hints. Theirs: the view bar. Ours: FA1 FA2 FA3 FA5 measured on this page.

Research bar. Gramps is measured on open-source reports and export engine. Theirs: the export bar. Ours: FA7.

Research bar. Fellegi-Sunter 1969 is measured on probabilistic record linkage. Theirs: the name-matching bar. Ours: FA6.

9 of 17 capabilities measured|2 of them measured exceeds|8 open|coverage 529/1000|adoption 2 full / 7 partial

Layer 2 · Roadmap

Do this next — computed by the ranker, never chosen by a seat

Order from nx_compare_rank (nx_dr_ocm: (deficit + cost-of-delay + option + enables) x sponsor x self-sufficiency x momentum / cost). FINISH rows are rungs whose symbol is present but whose organ is short of full adoption: the cheapest closures on this board, listed before any new work. Stamp: # asof=1787883507 domain=familyatlas target_version=0.1 rungs=10 done=2 open=8 finish=2 ranker=nx_dr_ocm

#StageRungPriorityDerivation
FFINISHComplete person card (FB0) card_emitREGISTERED-DARKcallable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
FFINISHOne-call regeneration (FB1) s_eqREGISTERED-DARKcallable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
#10.1Multi-generation pedigree chart (FA1) ap_pedigree_svg3200v=16 m=3 c=15
#2laterPerson timeline (FA5) at_timeline_view1600v=12 m=2 c=15
#3laterCouple and family units (FA4) ac_couple_unit1200v=12 m=1 c=10
#4laterFan chart (FA2) af_fan_svg1000v=10 m=1 c=10
#5laterDescendancy view (FA3) ad_descend_view900v=9 m=1 c=10
#6laterFuzzy name search (FA6) az_fuzzy_match800v=12 m=1 c=15
#7laterPrint and export charts (FA7) ax_export_chart600v=6 m=1 c=10
#8laterLineage render (FB2) write_png0v=0 m=1 c=100

Critical path — contract, done-rule, executor, cost

RungCloses withDefinition of done (pre-declared)ExecutorEst.
Complete person card (FB0)card_emitEvery person's immediate family, never truncated -- LANDEDOrgan0 u
One-call regeneration (FB1)s_eqAll 32,472 artifacts rebuilt from the living graph -- LANDEDOrgan0 u
Lineage render (FB2)write_pngOn-demand per-seed lineage PNG -- LANDEDOrgan0 u
Multi-generation pedigree chart (FA1)
after FB0,FB1
ap_pedigree_svgA landscape pedigree SVG to N generations from one focus, expandable per line, zero-JS, emitted by the one-call rebuild; gate proves a 4-generation chart of a known person lists exactly the ancestors the graph holds and a person with no parents renders a single node, never an empty fileOrgan1.5 u
Fan chart (FA2)
after FA1
af_fan_svgThe radial ancestor wheel, 4 to 7 generations, color by generation, over the same walk as FA1; gate proves the wedge count per ring equals the ancestor count per generationOrgan1 u
Descendancy view (FA3)
after FA1
ad_descend_viewN-generation descendants of a focus (what builds on this, transitively), emitted from the reverse edges the graph already answers; gate proves the transitive set equals the graph's reverse closureOrgan1 u
Couple and family units (FA4)
after FA1
ac_couple_unitGroup partners as units on every view using the partners data in each fam JSON; gate proves a known couple renders as one unit with shared children and a single parent renders aloneOrgan1 u
Person timeline (FA5)
after FB0
at_timeline_viewLife events from the sovereign git and journal history of an organ rendered as a dated timeline; gate proves a person with three recorded changes shows three dated events in order and a person with no journal shows UNOBSERVED, never an empty timeline presented as a quiet lifeOrgan1.5 u
Fuzzy name search (FA6)az_fuzzy_matchRecord-linkage-grade matching (bounded edit distance plus token overlap, Fellegi-Sunter-style weights from the corpus) over the 16k names; gate proves a known misspelling finds its person at rank 1 and a neg-control nonsense name finds nothingOrgan1.5 u
Print and export charts (FA7)
after FA1,FA2
ax_export_chartExport any emitted chart as standalone SVG and PNG through the existing sovereign raster path; gate proves the exported PNG pixel-matches the rendered SVG at the declared sizeOrgan1 u

Milestones

MilestoneRungsCumulative
M1 · The defining viewFA11.5 u
M2 · A real tree UXFA2,FA3,FA45.5 u
M3 · History, search, exportFA5,FA6,FA79.5 u
Layer 3 · Engineering
How this is scored. Every Nishi mark is measured: the generator reads the real organ source on disk and requires the implementing symbol to exist (no self-grading). A watching tag names the organ and symbol contracted to close a gap — the mark flips itself on the next compare beat when that workstream ships, and the comparewatch- plane row flips with it. The flip is necessary, not sufficient: it proves the symbol exists, never that the capability is good. The bar is the rung's pre-declared done-rule, proven by its gate — a symbol shipped without the behaviour behind it is a defect, and the flip is exactly what makes that defect visible instead of quiet. Competitor marks record documented capability presence — presence, not depth or scale. Adoption is measured too: every measured row carries where its organ stands on the estate's ladder (source → built → promoted → registered → invoked; libraries by importer reach minus validation importers; gates by the execution surfaces that run them). A row is fully adopted only at the top of its ladder; anything short is tagged partial with the exact remedy, so a build nobody promoted can no longer read as shipped. Census stamps: importers asof 1787849099, gate census asof 1787855507 (unix seconds; -1 = census absent).

Capability matrix — measured against source

leads / measured exceed present partial absent · click any capability for its evidence

CapabilityNishiFamilySearchAncestryGrampsMyHeritage
Interactive family explorer (1-hop, judged 841permil)Measured: nx-grad exists in ../sites/nishifamily/compare/atlas/atlas_explore.html, verified at emit. FamilySearch/Ancestry/MyHeritage ship multi-view interactive trees as Best [myheritage]; ours is ONE hop (focus+parents+children) -- real but a fraction of their tree UX Adoption: ABSENT — PARTIAL: no source and no binary: this is a build contract, not a partial deploy.
adoption ABSENT
Person page
complete immediate familyMeasured: card_emit exists in runtime/_hdl_build/nx_eco_graph_card.nx, verified at emit. FamilySearch person page (vitals/sources/memories/family panel) is the reference [familysearch]; our cards are COMPLETE (never truncated) but flat chip-lists, not a designed person view Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
Mechanical sources per person (gates=citations)Measured exceed: is_test in runtime/_hdl_build/nx_eco_graph_card.nx, verified at emit. THE exceed candidate: their citations are human-attached documents; every Nishi person carries MACHINE-VERIFIED evidence (6,604 gates/tests classified + linked) -- provenance by construction Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
Portrait per person (lineage render)Measured: main exists in runtime/_hdl_build/nx_eco_graph_png.nx, verified at emit. Their portraits are photos; our on-demand lineage render is the analog -- present, only 80 pre-rendered of 16k (on-demand via MCP) Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
Population statistics dashboardMeasured: gs_run exists in runtime/nx_gensota.nx, verified at emit. Gramps has real stats reports; the big services show hints-counts not population dashboards; our class tallies are honest but shallow Adoption: RUN-BY:cron — fully adopted (top of its ladder).
Research hints (mechanical gap suggestions)Open — watching runtime/nx_atlas_hints.nx : ah_gap_hints, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Their hint engines (record matches) are Best-in-class ML pipelines [ancestry]; our orphan/untested quarantine is a real mechanical analog, far shallower
watching ah_gap_hints
Directory + instant searchMeasured: nstatus exists in runtime/_hdl_build/nx_eco_graph_card.nx, verified at emit. Theirs: fuzzy, filtered, indexed search over billions; ours: instant substring over 16k with status colors -- works, basic Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
One-call regeneration from living dataMeasured exceed: s_eq in runtime/_hdl_build/nx_eco_graph_card.nx, verified at emit. NO genealogy system regenerates its whole tree from ground truth in one API call (their data is manual entry); --all-live rebuilds all 32,472 artifacts from the real dependency graph in seconds Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
API-mintable person pages (MCP)Measured: main exists in runtime/_hdl_build/nx_eco_graph_card.nx, verified at emit. FamilySearch/Ancestry have partner APIs [familysearch-api]; ours mints cards/renders via tools/call -- parity in kind, tiny in scope Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
Multi-generation pedigree chart (4+ gen)Open — watching runtime/nx_atlas_pedigree_chart.nx : ap_pedigree_svg, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. THE defining family-history view (landscape pedigree, expandable per line) -- we do not have it; the explorer shows one hop
watching ap_pedigree_svg
Fan chart (radial ancestor wheel)Open — watching runtime/nx_atlas_fan_chart.nx : af_fan_svg, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. FamilySearch's fan chart (color-coded, 4-7 gen) is iconic; absent
watching af_fan_svg
Descendancy view (N-gen descendants)Open — watching runtime/nx_atlas_descendancy.nx : ad_descend_view, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The inverted question ("what builds on this, transitively?") -- absent as a VIEW though the graph answers it
watching ad_descend_view
Couple/family-unit groupingOpen — watching runtime/nx_atlas_couples.nx : ac_couple_unit, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Family-history trees group couples as units; our partners data exists in every fam JSON but no view uses it [gedcom7]
watching ac_couple_unit
Person timeline (journal change history)Open — watching runtime/nx_atlas_timeline.nx : at_timeline_view, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Their life-event timelines are core; our organs HAVE history (sovereign git/journals) with no timeline view
watching at_timeline_view
Fuzzy name searchOpen — watching runtime/nx_atlas_fuzzy.nx : az_fuzzy_match, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Record-linkage-grade name matching is their bread and butter [fellegi-sunter1969]; ours is exact substring
watching az_fuzzy_match
Print/export chartsOpen — watching runtime/nx_atlas_export.nx : ax_export_chart, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Gramps' report/export engine is Best (open-source strength) [gramps]; absent here
watching ax_export_chart
Ancestor line query, transitive and cycle-safeMeasured: eg_ancestors exists in runtime/nx_eco_graph.nx, verified at emit. The big services walk ancestor lines interactively as Best and Gramps computes them locally; ours answers the same question mechanically over the whole 16,222-person graph, cycle-safe by construction, returning the full transitive line rather than a fixed generation count -- this is the engine under the pedigree, fan-chart and descendancy views this board still reports as absent Adoption: LIB-WIRED importers=37 nonval=30 — fully adopted (top of its ladder).

Risk register

RiskLikelihood x impactMitigation
Views emitted outside the one-call rebuild go stale the way the 80 pre-rendered portraits didlikely x highEvery FA rung's done-rule includes emission inside the rebuild; an out-of-band emitter is refused by design.
A fuzzy matcher tuned on the one misspelling that motivated it fires on everythingpossible x mediumFA6 reports precision on a held-out labelled set before it may return ranks (the uncalibrated-classifier law).
On these two registers. Rows are declared in the domain's plan file and carry the debt id, which is the join key back to the sovereign debt plane — that plane, not this page, is the authority on state. Reconciling them automatically (the regen reading the plane and refreshing these rows) is a named, owed rung; until it lands, treat an id here as a pointer to look up, not a status to trust.
Honest verdict. The coverage above is capability presence measured against source — not depth, scale, or polish, where mature rivals may lead. Exceeds are claimed only where a mechanism backs them. Every open gap is a watch contract: it names the organ and symbol that closes it, and this page flips the cell itself when that workstream ships.

Person · product · place — not yet measured for this domain

Every compare carries this layer. Declare knowledge/compare/familyatlas.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain familyatlas, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).

References

Beyond a link list. Every reference below resolves twice — the publisher's copy and, where banked, the estate's own non-rottable library mirror with a content pin — and carries its evidence class plus the exact claim on this page it grounds. Keyed marks like [key] in the matrix notes jump here. A dash means honestly absent, never assumed.
  1. [gedcom7] FamilySearch International. The FamilySearch GEDCOM Specification, version 7 (FamilySearch GEDCOM 7.0.x, gedcom.io; document dated 2026-02-17). The interchange standard for individuals, families, events, sources and multimedia. publisher · read in our library knowledge/fetched/cmp_familyatlas_gedcom7.html · pin h35742e0479726fc79952250791140ffbc0f53f36bd3d0ea4b041a3c8a0c1e426 · accessed 2026-08-18 · published-standardGrounds: Print/export charts and Couple/family-unit grouping -- the family-history field's exchange format: GEDCOM 7 defines the INDI and FAM records (couples as family units, pedigree links, source citations) that every column can import and export, so it is the contract an nx_atlas_export or nx_atlas_couples view would have to speak to be interoperable rather than a one-off render.
  2. [familysearch] FamilySearch International. FamilySearch.org -- the free collaborative Family Tree, person pages (vitals, sources, memories, family panel), pedigree, fan-chart and descendancy views, record hints. Accessed August 2026. publisher · read in our library knowledge/fetched/cmp_familyatlas_familysearch.html · pin h68854fb2856ba28ab4e2055b79e190941463113f4aedf1819636c68d29c6b25a · accessed 2026-08-18 · vendor-docGrounds: The FamilySearch column: Interactive family explorer, Person page: complete immediate family (the FamilySearch person page is the named reference), Multi-generation pedigree chart (4+ gen), Fan chart (radial ancestor wheel) (FamilySearch's fan chart is iconic) and Descendancy view are all coded Best -- the views the matrix names as the build order.
  3. [ancestry] Ancestry.com. Ancestry -- family trees, record collections and the hints engine (record matches). Accessed August 2026. publisher · read in our library knowledge/fetched/cmp_familyatlas_ancestry.html · pin ha528272daa140ea7aba1a17a4335c256be2fa4b6d1f9b51d072fd5662c3e9296 · accessed 2026-08-18 · vendor-docGrounds: The Ancestry column: Research hints (mechanical gap suggestions) (their record-match hint engines are the Best-in-class ML pipelines the note names), Directory + instant search (fuzzy indexed search over billions of records) and Multi-generation pedigree chart coded Best.
  4. [gramps] Gramps project. Gramps -- free open-source genealogy program (repository README, GPL); reports, charts and export engine, statistics reports. Accessed August 2026 via GitHub because gramps-project.org served a Cloudflare challenge to the sovereign fetcher. publisher · read in our library knowledge/fetched/cmp_familyatlas_gramps.html · pin h5635ea759a551ecfb4dcab4aba9dbd4d667dc5b8bbe95071240ccc99c86e6d3b · accessed 2026-08-18 · vendor-docGrounds: The Gramps column: Print/export charts is coded Best for Gramps (the note calls its report and export engine the open-source strength) and Population statistics dashboard coded Yes (Gramps has real stats reports); the open-source rival our nx_atlas_export gap is measured against.
  5. [myheritage] MyHeritage Ltd. MyHeritage -- family trees, Smart Matches and Record Matches, historical records, DNA. Accessed August 2026. publisher · read in our library knowledge/fetched/cmp_familyatlas_myheritage.html · pin h1c17c6253e81e09db538eecf93f70769e4baf80bdde49f0579b156a63eb80ad6 · accessed 2026-08-18 · vendor-docGrounds: The MyHeritage column: Interactive family explorer, Research hints (mechanical gap suggestions), Directory + instant search and Fan chart coded Best -- the fourth multi-view interactive tree the one-hop explorer is a fraction of.
  6. [familysearch-api] FamilySearch International. FamilySearch API developer portal (developers.familysearch.org) -- partner APIs over the Family Tree, persons, relationships, sources and memories. Accessed August 2026 (www.familysearch.org/developers/ redirects there). publisher · read in our library knowledge/fetched/cmp_familyatlas_familysearch-api.html · pin h22b82b5d9def3d53f907476d5d35a84e8653d37989a6950b36c6993f49d06458 · accessed 2026-08-18 · vendor-docGrounds: API-mintable person pages (MCP) -- the note says FamilySearch and Ancestry have partner APIs and ours mints cards and renders via tools/call, parity in kind and tiny in scope; this portal is the partner API the parity is measured against.
  7. [fellegi-sunter1969] Fellegi, I.P., Sunter, A.B. A Theory for Record Linkage. Journal of the American Statistical Association 64(328):1183-1210, 1969. doi 10.1080/01621459.1969.10501049. publisher · read in our library knowledge/fetched/cmp_familyatlas_fellegi-sunter1969.html · pin hc0e3dcdef4e29b2b237c97d92a35bdd0f9e1d0e1004dc9013fce8a95cff69b40 · accessed 2026-08-18 · published-paperGrounds: Fuzzy name search -- the note says record-linkage-grade name matching is the incumbents' bread and butter and ours is exact substring; this is the founding probabilistic record-linkage model (match and non-match weights over comparison vectors at stipulated error levels) that the field's matching descends from and that an nx_atlas_fuzzy would implement.

generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/familyatlas.matrix · every Nishi cell verified against organ source at emit time · watch cells re-measured on every compare beat · zero JS, zero trackers