Catalog ID: EL-25
Public issue: #122
Reviewed baseline: 71abaf4067d4118f28910a22c20524b4e0282b28
Core objective: Provide a desktop workspace for creating, reviewing,
updating, and archiving research-person records with provenance, validation,
and encrypted local persistence.
Priority / phase: P1 / Existing-module desktop parity
Publication status: Published as #122 .
Dependency mapping
UX/UI requirements
Provide searchable person cards, structured editing, provenance fields,
unsaved-change protection, duplicate warnings, and accessible archival
confirmation.
Separate asserted facts, hypotheses, citations, and model suggestions.
Mask sensitive living-person fields in list views and notifications.
Public interfaces
Add ResearchPersonSummary, ResearchPersonRecord, EvidenceReference,
ProvenanceEntry, and optimistic-concurrency revisions.
Require explicit create, update, archive, and restore operations with schema
validation and coded conflicts.
Never return database keys, encryption material, or unrestricted paths.
Underlying app changes
Add encrypted persistence and migrations for research-person records.
Add revision checks, audit metadata, archival semantics, and conflict-safe
updates.
Keep research records independent from GEDCOM or RootsMagic mutation.
Acceptance criteria
Users can create, inspect, update, archive, and restore a record.
All sensitive persisted fields are encrypted at rest.
Concurrent edits fail with a revision conflict and recoverable
comparison UX.
Every factual field can carry source and provenance metadata.
Model suggestions remain distinct from accepted facts.
Living-person data is excluded from notifications, logs, telemetry, and
crash breadcrumbs.
Migration, rollback, backup, and corruption tests cover the schema.
Keyboard and screen-reader flows cover editing, validation, conflict,
and archive confirmation.
Security mitigations and rejected anti-patterns
Applies TM-L02, TM-S01, TM-C01, TM-O01, and TM-F02.
Reject plaintext JSON persistence, browser storage, secrets in records,
silent last-write-wins, payload logging, automatic source writeback, and
treating LLM claims as authoritative.
Workspace mapping
Exclusive owned paths: desktop/src/features/research-people/**,
src/ancestryllm/api/routes/research_people/**,
src/ancestryllm/services/research_people/**,
tests/services/research_people/**, and
desktop/tests/research-people/**.
Shared-file rule: Database migration registry, generated contracts,
navigation, and lockfile changes require a coordinator request.
Base rule: Branch from updated main after all dependencies merge.
Branch: feature/electron-el-25-research-person-workspace
Worktree: /Users/justinsoderberg/Development/worktrees/ancestryllm-electron-el-25-research-person-workspace
Validation: make test; make lint; make typecheck; make security;
pnpm --dir desktop test; pnpm --dir desktop typecheck
Catalog ID: EL-25
Public issue: #122
Reviewed baseline:
71abaf4067d4118f28910a22c20524b4e0282b28Core objective: Provide a desktop workspace for creating, reviewing,
updating, and archiving research-person records with provenance, validation,
and encrypted local persistence.
Priority / phase: P1 / Existing-module desktop parity
Publication status: Published as #122.
Dependency mapping
UX/UI requirements
unsaved-change protection, duplicate warnings, and accessible archival
confirmation.
Public interfaces
ResearchPersonSummary,ResearchPersonRecord,EvidenceReference,ProvenanceEntry, and optimistic-concurrency revisions.validation and coded conflicts.
Underlying app changes
updates.
Acceptance criteria
comparison UX.
crash breadcrumbs.
and archive confirmation.
Security mitigations and rejected anti-patterns
silent last-write-wins, payload logging, automatic source writeback, and
treating LLM claims as authoritative.
Workspace mapping
desktop/src/features/research-people/**,src/ancestryllm/api/routes/research_people/**,src/ancestryllm/services/research_people/**,tests/services/research_people/**, anddesktop/tests/research-people/**.navigation, and lockfile changes require a coordinator request.
mainafter all dependencies merge.feature/electron-el-25-research-person-workspace/Users/justinsoderberg/Development/worktrees/ancestryllm-electron-el-25-research-person-workspacemake test;make lint;make typecheck;make security;pnpm --dir desktop test;pnpm --dir desktop typecheck