docs(stammbaum): layout glossary + AC3 deferral SQL (#361)
All checks were successful
CI / Unit & Component Tests (pull_request) Successful in 3m41s
CI / OCR Service Tests (pull_request) Successful in 23s
CI / Backend Unit Tests (pull_request) Successful in 3m51s
CI / fail2ban Regex (pull_request) Successful in 45s
CI / Semgrep Security Scan (pull_request) Successful in 23s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m4s
All checks were successful
CI / Unit & Component Tests (pull_request) Successful in 3m41s
CI / OCR Service Tests (pull_request) Successful in 23s
CI / Backend Unit Tests (pull_request) Successful in 3m51s
CI / fail2ban Regex (pull_request) Successful in 45s
CI / Semgrep Security Scan (pull_request) Successful in 23s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m4s
@Elicit on PR #693: two doc gaps that block traceability on this PR. 1. docs/GLOSSARY.md: add a Stammbaum section with the layout vocabulary introduced by #689 and #361 — Stammbaum, seeded rank, sibling block, loose spouse, parented, anchor index, intra-family marriage, marriage dot, canonical fixture. Removes the Pending placeholder. 2. docs/adr/026: commit the AC3 reachability probe (the SQL that returned "0 of 942 unseeded persons match the predicate" in May 2026) directly into the ADR. A future architect re-evaluating the deferral can rerun it verbatim — reproducibility of the decision is itself a requirement. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -86,7 +86,27 @@ threshold, so `packBlocks.ts` is **not** yet warranted.
|
||||
with `generation`, P themselves was not) and belongs in the canonical import
|
||||
sheet rather than `buildLayout`. **Revisit trigger:** first canonical fixture
|
||||
containing a parented unseeded spouse — at which point this ADR is updated
|
||||
in place or superseded by an ADR-027.
|
||||
in place or superseded by an ADR-027. **Reproducible verification query**
|
||||
(PostgreSQL — paste into a read-only psql session against
|
||||
`familienarchiv_archive`):
|
||||
|
||||
```sql
|
||||
-- AC3 reachability probe. Returns one row per unseeded person who has at
|
||||
-- least one parent edge whose parent IS seeded. A non-zero count means the
|
||||
-- AC3 layout branch becomes reachable for that person and ADR-026 should
|
||||
-- be revisited. Last run May 2026: 0 rows.
|
||||
SELECT p.id, p.display_name
|
||||
FROM persons p
|
||||
WHERE p.generation IS NULL
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM person_relationships r
|
||||
JOIN persons parent ON parent.id = r.person_id
|
||||
WHERE r.relation_type = 'PARENT_OF'
|
||||
AND r.related_person_id = p.id
|
||||
AND parent.generation IS NOT NULL
|
||||
);
|
||||
```
|
||||
- **AC6 — Bundle-impact gate (≤ 40 kB gzipped on `/stammbaum`).** Moot under
|
||||
this ADR; reactivates only under ADR-027 (dagre adoption).
|
||||
- **AC7 — Visual regression at 320 / 768 / 1440.** `toHaveScreenshot()`
|
||||
|
||||
Reference in New Issue
Block a user