• Joined on 2026-03-17
marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:22:33 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Felix Brandt — review concerns addressed

Pushed 5 commits (red→green TDD, each Refs #670). Full suite: 185 passed, 1 skipped (skip is the environmental one needing the source…

0398ebea2c docs(import): document file, date_end, personId contract fields
99d8229858 test(normalizer): reconcile tree personId with persons.xlsx 1:1
fee3c7e27d feat(normalizer): flag half-resolved RANGE for review
fa3f4167e9 refactor(normalizer): give date matchers a uniform MatchResult shape
a2b77e5bfa fix(normalizer): fail-closed on person_id zip length divergence
Compare 5 commits »
marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:12:15 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Leonie Voss — UX Design Lead & Accessibility Advocate

Verdict: Approved (nothing in my domain)

This PR touches only the tools/import-normalizer/ Python pipeline — date parsing, the…

marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:12:08 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

"Elicit" — Requirements Engineer & Business Analyst

Verdict: Approved with concerns

Brownfield lens. The PR maps cleanly to issue #670's three named gaps, and each has a stated…

marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:11:56 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Tobias Wendt — DevOps & Platform Engineer

Verdict: Approved

This is a Python/data-only change with no Compose, CI workflow, image tag, volume, secret, or infrastructure surface touched.…

marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:11:47 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Nora Steiner ("NullX") — Application Security Engineer

Verdict: Approved

I reviewed this for the injection and data-exposure classes relevant to an offline data-transformation tool:…

marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:11:37 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Sara Holt — Senior QA Engineer

Verdict: Approved with concerns

Textbook red/green: +10 tests, each pinning exactly one behavior. The collision-suffix test (`test_attach_person_ids_carries…

marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:11:25 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Felix Brandt — Senior Fullstack Developer

Verdict: Approved with concerns

Clean, disciplined Python. TDD evidence is solid — every behavior change has a paired test and the test names…

marcel commented on pull request marcel/familienarchiv#672 2026-05-27 08:11:12 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)

Markus Keller — Senior Application Architect

Verdict: Approved with concerns

Phase 1 is well-scoped: a Python-only change to the standalone tools/import-normalizer/, no backend/frontend…

marcel created pull request marcel/familienarchiv#672 2026-05-27 08:08:20 +02:00
feat(normalizer): complete canonical exports for the importer (Phase 1, #670)
e95c678271 chore(normalizer): commit regenerated canonical exports, track out/*.xlsx
b9f06f6c21 feat(normalizer): emit register person_id and fixed timestamp in tree JSON
1136294c1f feat(normalizer): capture RANGE end day and wire Roman-month ranges
9238cba06a feat(normalizer): carry file name into canonical document export
Compare 4 commits »
marcel created branch feature/670-normalizer-canonical-exports in marcel/familienarchiv 2026-05-27 08:08:04 +02:00
marcel commented on issue marcel/familienarchiv#667 2026-05-26 22:26:29 +02:00
As a reader I want a clean persons directory so I'm not overwhelmed by unconfirmed import entries

Decision Queue — Action Required

5 decisions need your input before implementation starts. Everything else in the body is resolved; personas made concrete recommendations elsewhere.

###…

marcel commented on issue marcel/familienarchiv#669 2026-05-26 22:26:22 +02:00
As the archive owner I want the importer rebuilt as modular loaders over the normalizer's canonical exports, so dates/people/tags import correctly and re-runs are idempotent

Decision Queue — Action Required

_5 decisions need your input before implementation starts. Two of them (#1, #3) gate acceptance criteria — the relevant tests cannot be written until they…

marcel commented on issue marcel/familienarchiv#666 2026-05-26 22:26:17 +02:00
As a reader I want imprecise and unknown dates rendered honestly (e.g. "Juni 1916", "ca. 1916", "Datum unbekannt") so a document never shows a precision the data doesn't have

Decision Queue — Action Required

3 decisions need your input before implementation starts. Everything else was a concrete recommendation, not a question.

UX / Localization

  • **Localize…
marcel commented on issue marcel/familienarchiv#667 2026-05-26 22:26:12 +02:00
As a reader I want a clean persons directory so I'm not overwhelmed by unconfirmed import entries

Requirements / Business Analysis — Elicit

Observations

  • The acceptance criteria are unusually complete: reader-default, pagination with a real server-side count, page-beyond-range, size…
marcel commented on issue marcel/familienarchiv#668 2026-05-26 22:26:06 +02:00
As a reader I want undated and imprecisely-dated letters to be honestly labelled in browse views so I always understand a document's date position

Decision Queue — Action Required

_2 decisions need your input before implementation starts. Everything else is already resolved or specified — the personas made concrete recommendations on…

marcel commented on issue marcel/familienarchiv#669 2026-05-26 22:26:04 +02:00
As the archive owner I want the importer rebuilt as modular loaders over the normalizer's canonical exports, so dates/people/tags import correctly and re-runs are idempotent

Leonie Voss — UX Designer & Accessibility Strategist

Observations

  • This is a backend/data-pipeline issue with no new UI surface. The issue is explicit that the ImportStatus/`SkippedFile…
marcel commented on issue marcel/familienarchiv#666 2026-05-26 22:26:00 +02:00
As a reader I want imprecise and unknown dates rendered honestly (e.g. "Juni 1916", "ca. 1916", "Datum unbekannt") so a document never shows a precision the data doesn't have

Elicit — Requirements Engineer & Business Analyst

Observations

  • The issue is well-formed: clear re-scope banner, explicit in/out-of-scope, file-level breakdown, 12 Gherkin scenarios, and…
marcel commented on issue marcel/familienarchiv#670 2026-05-26 22:25:58 +02:00
As the archive owner I want the normalizer's canonical exports to carry every field the importer needs (file, date-range end, person ids in the tree) so the loaders have a complete, joinable contract

Decision Queue — Action Required

3 decisions need your input before implementation starts. Everything else in the persona comments is a concrete recommendation needing no sign-off.

###…