feat(entities): add Phase 1 entity validation framework
Implements name pattern heuristics, local name database, and
coherence checks to catch entity type misclassifications.
New files:
- name-validator.js: validateEntityType(), classifyNamePattern(),
isLikelyPersonName() — detects CamelCase brands, org suffixes,
honorifics, ALL_CAPS, The X pattern, URL-like names
- data/names.json: ~1400 first names + ~1000 surnames for
person name validation (24KB)
Integration:
- entity-matcher.js: validates type claims before storing,
re-types or skips invalid entities
- structured-data.js: coherence checks in jsonLdItemToEntity()
and extractOpenGraph() — cross-validates person claims against
name patterns
- datastore.ts: migration migrateInvalidPersonEntities() cleans
existing misclassified person entities (CamelCase brands,
single-word non-names, org suffixes retyped to organization)