Nishi Family › Compare › 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.
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.
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
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
| # | Stage | Rung | Priority | Derivation |
|---|---|---|---|---|
| F | FINISH | Complete person card (FB0) card_emit | REGISTERED-DARK | 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) |
| F | FINISH | One-call regeneration (FB1) s_eq | REGISTERED-DARK | 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) |
| #1 | 0.1 | Multi-generation pedigree chart (FA1) ap_pedigree_svg | 3200 | v=16 m=3 c=15 |
| #2 | later | Person timeline (FA5) at_timeline_view | 1600 | v=12 m=2 c=15 |
| #3 | later | Couple and family units (FA4) ac_couple_unit | 1200 | v=12 m=1 c=10 |
| #4 | later | Fan chart (FA2) af_fan_svg | 1000 | v=10 m=1 c=10 |
| #5 | later | Descendancy view (FA3) ad_descend_view | 900 | v=9 m=1 c=10 |
| #6 | later | Fuzzy name search (FA6) az_fuzzy_match | 800 | v=12 m=1 c=15 |
| #7 | later | Print and export charts (FA7) ax_export_chart | 600 | v=6 m=1 c=10 |
| #8 | later | Lineage render (FB2) write_png | 0 | v=0 m=1 c=100 |
Critical path — contract, done-rule, executor, cost
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| Complete person card (FB0) | card_emit | Every person's immediate family, never truncated -- LANDED | Organ | 0 u |
| One-call regeneration (FB1) | s_eq | All 32,472 artifacts rebuilt from the living graph -- LANDED | Organ | 0 u |
| Lineage render (FB2) | write_png | On-demand per-seed lineage PNG -- LANDED | Organ | 0 u |
| Multi-generation pedigree chart (FA1) after FB0,FB1 | ap_pedigree_svg | A 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 file | Organ | 1.5 u |
| Fan chart (FA2) after FA1 | af_fan_svg | The 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 generation | Organ | 1 u |
| Descendancy view (FA3) after FA1 | ad_descend_view | N-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 closure | Organ | 1 u |
| Couple and family units (FA4) after FA1 | ac_couple_unit | Group 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 alone | Organ | 1 u |
| Person timeline (FA5) after FB0 | at_timeline_view | Life 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 life | Organ | 1.5 u |
| Fuzzy name search (FA6) | az_fuzzy_match | Record-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 nothing | Organ | 1.5 u |
| Print and export charts (FA7) after FA1,FA2 | ax_export_chart | Export 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 size | Organ | 1 u |
Milestones
| Milestone | Rungs | Cumulative |
|---|---|---|
| M1 · The defining view | FA1 | 1.5 u |
| M2 · A real tree UX | FA2,FA3,FA4 | 5.5 u |
| M3 · History, search, export | FA5,FA6,FA7 | 9.5 u |
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
| Capability | Nishi | FamilySearch | Ancestry | Gramps | MyHeritage |
|---|---|---|---|---|---|
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. | ● | ◉ | ◉ | ● | ◉ |
| 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). | ● | ◉ | ◉ | ● | ● |
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). | ◉ | ● | ● | ● | ● |
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). | ● | ● | ● | ○ | ● |
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 — watchingruntime/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 | ○ | ◉ | ◉ | ○ | ◉ |
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). | ● | ◉ | ◉ | ● | ◉ |
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). | ◉ | ○ | ○ | ○ | ○ |
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). | ● | ● | ● | ◐ | ● |
Multi-generation pedigree chart (4+ gen)Open — watchingruntime/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 | ○ | ◉ | ◉ | ● | ◉ |
Fan chart (radial ancestor wheel)Open — watchingruntime/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 | ○ | ◉ | ● | ● | ◉ |
Descendancy view (N-gen descendants)Open — watchingruntime/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 | ○ | ◉ | ◉ | ● | ● |
Couple/family-unit groupingOpen — watchingruntime/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] | ○ | ◉ | ◉ | ● | ◉ |
Person timeline (journal change history)Open — watchingruntime/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 | ○ | ◉ | ◉ | ● | ◉ |
Fuzzy name searchOpen — watchingruntime/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 | ○ | ◉ | ◉ | ● | ◉ |
Print/export chartsOpen — watchingruntime/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 | ○ | ● | ● | ◉ | ● |
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
| Risk | Likelihood x impact | Mitigation |
|---|---|---|
| Views emitted outside the one-call rebuild go stale the way the 80 pre-rendered portraits did | likely x high | Every 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 everything | possible x medium | FA6 reports precision on a held-out labelled set before it may return ranks (the uncalibrated-classifier law). |
Person · product · place — not yet measured for this domain
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
- [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· pinh35742e0479726fc79952250791140ffbc0f53f36bd3d0ea4b041a3c8a0c1e426· 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. - [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· pinh68854fb2856ba28ab4e2055b79e190941463113f4aedf1819636c68d29c6b25a· 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. - [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· pinha528272daa140ea7aba1a17a4335c256be2fa4b6d1f9b51d072fd5662c3e9296· 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. - [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· pinh5635ea759a551ecfb4dcab4aba9dbd4d667dc5b8bbe95071240ccc99c86e6d3b· 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. - [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· pinh1c17c6253e81e09db538eecf93f70769e4baf80bdde49f0579b156a63eb80ad6· 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. - [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· pinh22b82b5d9def3d53f907476d5d35a84e8653d37989a6950b36c6993f49d06458· 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. - [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· pinhc0e3dcdef4e29b2b237c97d92a35bdd0f9e1d0e1004dc9013fce8a95cff69b40· 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