Because apps and databases don’t last. Formats change, companies fold, subscriptions lapse, schemas migrate. Plain files on disk — text and standard image formats — are readable in fifty years with nothing but a text editor and an image viewer. The database (a SQLite index) still exists here; it’s just a disposable cache rebuilt from the files, never the truth.
Because AI is enormously useful for the labor of genealogy — reading a census page, extracting claims from an interview, surfacing connections you missed — and useless as a source of truth. So the spec uses it exactly there: AI drafts, a human reviews, and nothing AI produces becomes a fact without a person accepting it. The AI is an interface and a research assistant, never the store of record.
No. It’s an operating spec and a scaffold. The tools are specified in enough detail to build them, but in this version they’re not yet written — building them (with an AI coding agent) is the first task. This is deliberate: the durable assets are the format and the process, and those are what the documents pin down.
Those are genealogy applications — excellent, but database- or service-first: your data lives in their store or schema. Plainfile inverts that. The archive is plain files you own; a genealogy app can be fed from it (via GEDCOM export) but never owns it. If you love an app’s tree view, generate a GEDCOM and use it — the truth stays in your files.
They’re never renamed or moved by the system (so your catalog stays intact).
They can live anywhere — an external drive, your existing library — and fha.yaml maps to them.
Identity rides in embedded metadata (a keyword), not the filename, so reorganizing them never breaks anything.
Three ways. Every factual statement cites a source, or it’s explicitly marked as story/context/speculation. Claims carry a confidence level and a review status. And guesses live as hypotheses — a separate, clearly-labeled state — until evidence promotes them to sourced claims. The linter flags anything that drifts.
No. The agent instructions live in AGENTS.md, a plain document any capable agent can read; CLAUDE.md is a one-line pointer to it.
Claude Code is the reference harness, but the design deliberately avoids locking to it.
Yes — that’s built into the export tools. The static-site generator produces a self-contained snapshot containing only publication-eligible material: living (and possibly-living) people are redacted, sensitive material (including all DNA) is excluded by default.