feat: Add research block to person entity schema#210
feat: Add research block to person entity schema#210isaacschepp wants to merge 79 commits intomainfrom
Conversation
Add a research block to the person entity for tracking open questions like unknown parents or unconfirmed identity. Each research topic has a status, summary, leads with confidence levels, and completed searches (including null results). This enables multi-session brickwall research without repeating searches. Updates JSON schema, Go types, spec documentation, and tests. Fixes #137
Deploying genealogix with
|
| Latest commit: |
1b38a8b
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://fdfbeaf4.genealogix.pages.dev |
| Branch Preview URL: | https://feat-research-block-schema.genealogix.pages.dev |
There was a problem hiding this comment.
Pull request overview
Adds first-class support for a research block on Person entities across the specification, Go library types, and CLI validation tests, enabling archives to store ongoing “brickwall” research notes/leads without failing schema validation.
Changes:
- Extend the Person JSON schema to allow a structured
researchmap keyed by topic. - Add
ResearchTopic/ResearchLeadfields togo-glxPersontypes for YAML deserialization. - Document the
researchblock in the Person spec and add CLI + deserialization tests.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| specification/schema/v1/person.schema.json | Adds the research property and nested topic/lead structure to the Person schema. |
| specification/4-entity-types/person.md | Documents the new research block with example structure and confidence levels. |
| go-glx/types.go | Introduces ResearchTopic/ResearchLead types and wires them into Person. |
| glx/testdata/valid/person-with-research.glx | Adds a representative valid archive snippet using the research block. |
| glx/research_test.go | Verifies Go YAML deserialization of the research block into go-glx types. |
| glx/cmd_validate_test.go | Ensures glx validate accepts persons containing a research block (regression for #137). |
| CHANGELOG.md | Notes the new spec capability in the current “Added / Specification” section. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…-block-schema # Conflicts: # CHANGELOG.md
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
Add a
researchblock to the person entity for tracking open questions like unknown parents or unconfirmed identity. This enables multi-session brickwall research without repeating searches.Changes
person.schema.json) — addresearchproperty with structured lead trackingtypes.go) — addResearch,ResearchTopic, andResearchLeadtypes toPersonperson.md) — document the research block with examples and confidence levelsResearch block structure
Real-world motivation
During active Mary Green brickwall research,
glx validaterejected the research block:The research block stores leads, eliminated hypotheses, and null results that prevent duplicate searches across sessions.
Fixes #137
Test plan
TestRunValidate_PersonWithResearchBlock— person with research block passes validationTestResearchBlockDeserialization— Go struct correctly deserializes all research fields