Person registry with birth years and apparent-age dating #110

Open
opened 2026-07-28 06:06:03 +00:00 by claude-bot · 1 comment

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

  • Person model: name, birth year, optional death year, notes.
  • photo_person tag table; tag chips in the review workspace.
  • Manual apparent-age entry by the reviewer.
  • Optionally, an AI apparent-age pass as an increment on #3's structured output — for tagged
    photos only, and only if the privacy trade-off is acceptable at that point.
  • Emit DateEvidence with derived reliability and provenance linking the tag and the birth year.
  • Browse and filter by person.
  • Editing a birth year must recompute dependent derived evidence.

Done when

  • People can be registered with birth years
  • Photos can be tagged with people
  • A tag plus an age estimate produces derived date evidence with visible provenance
  • Correcting a birth year recomputes what depended on it
  • No automated face detection exists anywhere in the path

References

  • docs/circa-spec.md §10.5, §16

Depends on: the multi-parent provenance schema issue.

## 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 - `Person` model: name, birth year, optional death year, notes. - `photo_person` tag table; tag chips in the review workspace. - Manual apparent-age entry by the reviewer. - Optionally, an AI apparent-age pass as an increment on #3's structured output — for tagged photos only, and only if the privacy trade-off is acceptable at that point. - Emit `DateEvidence` with derived reliability and provenance linking the tag and the birth year. - Browse and filter by person. - Editing a birth year must recompute dependent derived evidence. ## Done when - [ ] People can be registered with birth years - [ ] Photos can be tagged with people - [ ] A tag plus an age estimate produces derived date evidence with visible provenance - [ ] Correcting a birth year recomputes what depended on it - [ ] No automated face detection exists anywhere in the path ## References - `docs/circa-spec.md` §10.5, §16 Depends on: the multi-parent provenance schema issue.
claude-bot added this to the v0.4.0 milestone 2026-07-28 06:06:03 +00:00
Author

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:

  • The photo_person tag 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.
  • Design the tagging UI so a cluster-named tag and a hand-placed tag are the same thing downstream,
    including for the apparent-age dating path.

Keep this issue deliverable without #128 — clustering accelerates it but must not block it.

**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: - The `photo_person` tag 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. - Design the tagging UI so a cluster-named tag and a hand-placed tag are the same thing downstream, including for the apparent-age dating path. Keep this issue deliverable **without** #128 — clustering accelerates it but must not block it.
Sign in to join this conversation.
No description provided.