Person registry with birth years and apparent-age dating #110
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: HIGH value
The idea
A registry of family members with birth years, manual "who is in this photo" tagging, and an
apparent-age estimate. Tag plus birth year plus apparent age yields a derived date range:
"Anna looks 8-12, born 1952, so 1960-1964."
Confirmed scope decision
The spec lists "facial recognition or person identification" as a non-goal. The user has
confirmed a manual person registry is acceptable — so this is manual-tag-first: no face
detection, no clustering, no embeddings. That constraint is also what keeps it private.
Family member birth years are separately a confirmed spec requirement (§10.5, §16) that is tracked
nowhere.
Why it fits
People are the one subject every family photo shares, and relatives can age-estimate at a glance
with better-than-decade accuracy. It converts each family member's uniquely held knowledge
("that's Uncle Pete, and he looks about ten") into machine-usable evidence. One tagged person with
a birth year often dates a whole event group.
It also produces the archive's people index for free — half of what makes the finished result
valuable to a family.
Scope
Personmodel: name, birth year, optional death year, notes.photo_persontag table; tag chips in the review workspace.photos only, and only if the privacy trade-off is acceptable at that point.
DateEvidencewith derived reliability and provenance linking the tag and the birth year.Done when
References
docs/circa-spec.md§10.5, §16Depends on: the multi-parent provenance schema issue.
Scope update. Face clustering has now been approved and is tracked separately in #128.
That changes how this issue should be built. Manual tagging remains the foundation and the fallback
— every name is still assigned by a human — but clustering becomes the primary path for getting
tags onto thousands of photos without opening each one.
Two implications for this issue:
photo_persontag model must accept tags created either individually or by naming a cluster,with no distinction in the resulting data. There is no "auto-tagged" tier.
including for the apparent-age dating path.
Keep this issue deliverable without #128 — clustering accelerates it but must not block it.