fix(tickets): 16 Tickets der Züchterin — Genetik, Importer, Daten, Akte
Genetik-Engine (bde4ec70, f89e95ad, 2322c2a8):
- Saphir/Platin/Platin-Hell unterscheiden sich NUR in der C-Zygotie und waren im
Katalog identisch (locusToken reduziert auf das dominante Allel) → Saphir war
unerreichbar. Token darf jetzt ein exaktes, ungeordnetes Allelpaar "x/y"
verlangen: Platin C/C, Saphir C/cchm, Platin-Hell C/ch. TS- und Python-Mirror
identisch, Seeds regeneriert, Migration ReseedColorVarietiesGen6Saphir.
- c[hm] wird als Alias auf c[chm] normalisiert (Tippfehler in zwei Charts) —
vorher war Jays Gencode unparsebar und ergab "Zobel-Hell".
- 6 Tiere wechseln den errechneten Farbschlag (5x Platin→Saphir, Jay→Zobel).
Importer-Logik:
- renameTo-Notiz-Sweep: der alte Name blieb in Wurf-Notizen stehen ("Blacky +
Kruke") — jetzt wortgenau ersetzt, mit vier Guards gegen Kollateralschaden.
- Neuer Resolution-Schlüssel goHomeDate (autoritativ, zieht GivenAway nach) und
spottingType; Gencode-Overrides gewinnen jetzt bei präzisem Match (vorher
wurden Entscheidungen stumm verschluckt, z. B. Eliza und Chris).
- parse_date verwirft implausible Jahre (JackJack hatte 1310-05-13).
- extract.py erkennt Stammbaum-Blöcke auch ohne Stern vor dem Geburtsdatum
(Bijou bekam dadurch den Nachbar-Ast als Mutter).
- Backend-Ingest überträgt SpottingType (nur bei Payload-Wert).
Daten (conflict-decisions.json, re-ingest-stabil): Kuke-Merge + Zuchtname,
Jamie- und Sakura-Dubletten, Phantom-Tier "Unbekannt", Eltern von Kathlin,
Fast Boy/Ziwa und dem Q4-/TS-Wurf, Eliza-Gencode, Merle-Abgabe, JackJack.
Frontend (24522f5f): Abgabedatum steht in der Tier-Akte jetzt direkt unter dem
Abnehmer und hängt nicht mehr am Status.
Tests: +25 Checks test_merge_resolve, +7 test_genotype, +8 genetics.test.ts,
neuer Extract- und Ingest-Test, e2e GOHOME-ROW. Alles grün.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -345,11 +345,19 @@
|
||||
"decision": "father is Danny von Privatzucht Maintal (Wurfchronik J-Wurf: 'Eltern: Danny + Jana'). Chart-position had wrong/age-impossible parents.",
|
||||
"father": "Danny von PZ Maintal",
|
||||
"mother": "Jana of little longnoses",
|
||||
"source": "Züchterin 2026-06-22 — Ticket #31 + Tickets 06b6734d/e96db323/c092f8d2 (Merge Stub)",
|
||||
"source": "Züchterin 2026-06-22 — Ticket #31 + Tickets 06b6734d/e96db323/c092f8d2 (Merge Stub) + Tickets 66ef9bdd/3bbd6ab4 (restliche Wurfchronik-Elternstubs page_0017/page_0023)",
|
||||
"mergeExternalRefs": [
|
||||
[
|
||||
"stammbaum-jamiekleinenchaoten-27122010",
|
||||
"Wurfchronik Teil 1_page_0022.md-page_0022_parent_jamie"
|
||||
],
|
||||
[
|
||||
"stammbaum-jamiekleinenchaoten-27122010",
|
||||
"Wurfchronik Teil 1_page_0017.md-f651e1cf-54bc-4d8b-9be0-4b6298e7ab48"
|
||||
],
|
||||
[
|
||||
"stammbaum-jamiekleinenchaoten-27122010",
|
||||
"Wurfchronik Teil 1_page_0023.md-7cbb62c5-7a46-4cb4-a3ad-bf7f94080e14"
|
||||
]
|
||||
]
|
||||
},
|
||||
@@ -983,11 +991,19 @@
|
||||
{
|
||||
"name": "Kruke",
|
||||
"isResident": true,
|
||||
"decision": "'Kruke' war ein Wurfchronik-Tippfehler; korrekt 'Kuke' (rpro3). Bestandstier. Todesdatum 06.04.2011 (Ausbruch-Unfall, rpro3). Farbe/Genotyp (Anthrazit-Schecke vs. Schwarz) folgt separat via Ticket f89e95ad, sobald die Zuechterin Saphir/Platin geklaert hat. KEIN Merge mit dem Ahnen-Record 'Kuke von Marion Knoss' — der Merge nullte die Mutter-Verknuepfung aller Blacky-x-Kuke-Wuerfe.",
|
||||
"source": "KI-Triage 2026-07-12 — Ticket 34220307-23bc-420c-80f8-d273615caffd + b7016e5f-9985-4f17-a3f6-2048289958aa + Tickets e0a0c304/a50116bf",
|
||||
"decision": "'Kruke' war ein Wurfchronik-Tippfehler; korrekt 'Kuke von Marion Knoss' (so heisst sie in ihren eigenen Stammbaeumen Danako/Hana/Jin/Unit/Uriana/Wildfire; rpro3-Herkunft 'M.Knoss GG', Eltern Marc x Sara). Bestandstier, Todesdatum 06.04.2011 (Ausbruch-Unfall, rpro3). Der Chart-Ahnenrecord wird jetzt HIER hineingemergt (keep = decision-kruke): der Keeper behaelt bis zum Parent-Resolver den Quellnamen 'Kruke', renameTo setzt danach _pre_rename_name (Namensindex) und die Chart-Wuerfe des gedroppten Zwillings werden ueber _premerged_ids umgebogen -> die Mutter-Verknuepfung der Blacky-x-Kuke-Wuerfe bleibt erhalten (das war 2026-07-12 der Grund, den Merge auszulassen). Gencode/Farbschlag kommen bewusst AUS DEM MERGE (ihre eigenen Stammbaum-Charts: 'aa CC DD Ee Uwuw[d] Pp Spsp' = aa CC DD Ee Gg Pp Spsp), NICHT als rpro3-Override 'aa CC DD Ee gg Pp Spsp'/Anthrazit: die beiden Quellen widersprechen sich im G-Locus und in der Farbe, und die Stammbaum-Charts sind in diesem Projekt die primaere Quelle. Fuer Ticket f89e95ad zaehlt nur, dass Kuke ueberhaupt einen Gencode hat — den liefert der Merge.",
|
||||
"source": "KI-Triage 2026-08-19 - Tickets 24006ccd (Zuchtname) + ea803c3d (ueberall 'Kuke') + f89e95ad (Gencode der A-Wurf-Mutter); zuvor e0a0c304 / a50116bf / 34220307 / b7016e5f",
|
||||
"externalRef": "decision-kruke",
|
||||
"dateOfDeath": "06.04.2011",
|
||||
"renameTo": "Kuke"
|
||||
"deceased": true,
|
||||
"originBreeder": "Marion Knoss",
|
||||
"renameTo": "Kuke von Marion Knoss",
|
||||
"mergeExternalRefs": [
|
||||
[
|
||||
"decision-kruke",
|
||||
"stammbaum-kukemarionknoss-18092009"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Genna",
|
||||
@@ -1087,6 +1103,7 @@
|
||||
{
|
||||
"name": "JackSack",
|
||||
"dob": "18.02.2010",
|
||||
"externalRef": "Wurfchronik Teil 1_page_0013.md-g1000000-0000-0000-0000-000000000002",
|
||||
"mergeExternalRefs": [
|
||||
[
|
||||
"Wurfchronik Teil 1_page_0013.md-g1000000-0000-0000-0000-000000000002",
|
||||
@@ -1094,8 +1111,9 @@
|
||||
]
|
||||
],
|
||||
"renameTo": "JackJack",
|
||||
"decision": "Dublette JackSack/JackJack = dasselbe Tier (A-Wurf, *18.02.2010). Zusammenfuehren, richtiger Name JackJack.",
|
||||
"source": "Zuechterin - Ticket 0cf6b838"
|
||||
"decision": "Dublette JackSack/JackJack = dasselbe Tier (A-Wurf, *18.02.2010). Zusammenfuehren, richtiger Name JackJack. Abgabedatum aus der Wurfchronik-Notiz '-> Larissa Draeger + Nicolas 13.5.10' = 13.05.2010 (die Transkription baut daraus faelschlich '1310-05-13'). Adressiert ueber die ExternalRef, weil Wurfchronik-Jungtiere ihr Geburtsdatum erst NACH dem Override-Block aus dem Wurfdatum erhalten — der (name,dob)-Key greift dort nie (deshalb feuerte auch renameTo bisher nicht).",
|
||||
"source": "Zuechterin - Tickets 0cf6b838, 24522f5f",
|
||||
"goHomeDate": "13.05.2010"
|
||||
},
|
||||
{
|
||||
"name": "Montana v.d. Kleinen Chaoten",
|
||||
@@ -1199,14 +1217,6 @@
|
||||
"mother": "Scarlett of Ulmer Strolche",
|
||||
"motherDob": "05.09.2012"
|
||||
},
|
||||
{
|
||||
"name": "Merle",
|
||||
"originBreeder": "Clan of Black Forest",
|
||||
"source": "Ticket a8f11ac0 + Ticket 00715df9",
|
||||
"externalRef": "decision-merle",
|
||||
"genotype": "Aa c[chm]c[chm] D- ee GG P- Spsp",
|
||||
"decision": "Gencode aus Merles eigenem Ticket a8f11ac0. Eltern Akane x Bonaparte bereits über addLitter verknüpft. Geburtsdatum in keiner lesbaren Quelle -> offen."
|
||||
},
|
||||
{
|
||||
"name": "Gino",
|
||||
"dob": "25.10.2010",
|
||||
@@ -1273,8 +1283,10 @@
|
||||
"externalRef": "Wurfchronik Teil 1_page_0013.md-g1000000-0000-0000-0000-000000000011",
|
||||
"isResident": false,
|
||||
"notes": "Schwarz-Schecke; Tochter von Blacky x Kuke (E-Wurf 2010); verstorben 06.04.2011 (Ausbruch-Unfall). War nie Zuchttier. NICHT die Mutter des J5-Wurfs — das ist die spätere Eliza (*13.02.2014).",
|
||||
"decision": "Zweite/2010er Eliza von der J5-Mutter getrennt; irreführende 'Mutter des J5-Wurfs'-Notiz entfernt.",
|
||||
"source": "Ticket aa5238b6"
|
||||
"decision": "Zweite/2010er Eliza von der J5-Mutter getrennt; irreführende 'Mutter des J5-Wurfs'-Notiz entfernt. Gencode + Scheckungsart von der Züchterin: aa C- DD E- G- P- Spsp, Ansatzschecke (der bisherige Wert war nur Kanon-Fill aus dem Farbschlag 'Schwarz-Sp').",
|
||||
"source": "Ticket aa5238b6 + Ticket a547be62",
|
||||
"genotype": "aa C- DD E- G- P- Spsp",
|
||||
"spottingType": "Ansatzschecke"
|
||||
},
|
||||
{
|
||||
"externalRef": "stammbaum-gwengensakuralittleangels-17122011",
|
||||
@@ -1282,12 +1294,16 @@
|
||||
[
|
||||
"gwengensakuralittleangels-17122011",
|
||||
"page_0022_parent_sakura"
|
||||
],
|
||||
[
|
||||
"gwengensakuralittleangels-17122011",
|
||||
"Wurfchronik Teil 1_page_0023.md-7cbb62c5-7a46-4cb4-a3ad-bf7f94080e15"
|
||||
]
|
||||
],
|
||||
"originBreeder": "Clan of little Angels",
|
||||
"isResident": true,
|
||||
"decision": "Sakura (Wurfchronik-Elternteil A2/D2/H2, ohne DOB) und 'Gwen gen. Sakura of little Angels' (*17.12.2011, +05.01.2015, Eltern Chap of little Angels x Julietta gen. Becky of LennyLengo) sind dasselbe Tier. Gwen-Record kanonisch, Wurfchronik-Sakura einmergen. Herkunft Clan of little Angels.",
|
||||
"source": "Ticket 7f9b3724"
|
||||
"source": "Ticket 7f9b3724 + Ticket 6c9539d2 (zweiter Wurfchronik-Stub page_0023)"
|
||||
},
|
||||
{
|
||||
"name": "Marty v.d. Kleinen Chaoten",
|
||||
@@ -1322,9 +1338,49 @@
|
||||
{
|
||||
"name": "Merle",
|
||||
"dob": "18.06.2023",
|
||||
"externalRef": "stammbaum-merle-18062023",
|
||||
"isResident": true,
|
||||
"decision": "Merle (Tochter Akane × Bonaparte, bei Clan of Black Forest geboren) ist Zuchttier. Das Geburtsdatum 18.06.2023 kommt aus „Stammbaum von Pukas Kids“ — seit der addAnimals-Stub mit dem Chart-Datensatz verschmilzt, braucht die Residenz einen expliziten Override (der isResident-Sweep würde sie sonst auf false setzen).",
|
||||
"source": "Ticket 36a3fcde + Ticket a8f11ac0 (Züchterin: Merle = Zuchttier)"
|
||||
"originBreeder": "Zucht der Kleinen Chaoten",
|
||||
"receiver": "Swen Pulinckx",
|
||||
"goHomeDate": "22.12.2024",
|
||||
"notes": "Tochter von Akane von den Kleinen Chaoten × Bonaparte von den Schlossmäusen, geboren bei Clan of Black Forest (Akane war dort nur im Zuchttier-Austausch). Herkunft laut Züchterin: Zucht der Kleinen Chaoten. Am 01.04.2024 zurück zu den Kleinen Chaoten (Gewicht 62,1 g), Zuchttier mit Smoke (Würfe 12.07.2024 und 19.08.2024). Am 22.12.2024 zusammen mit ihrer Tochter Speedy an Swen Pulinckx abgegeben und dort in „Schneewittchen“ umbenannt. Weitere Daten siehe Stammbaum Pukas Kids.",
|
||||
"decision": "Ticket 7037f5d8: Herkunft = Zucht der Kleinen Chaoten (Züchterin-Angabe, ersetzt die frühere Angabe „Clan of Black Forest“). Merle bleibt Zuchttier (isResident=true, eigener Wurf mit Smoke in der Wurfchronik), ist aber seit 22.12.2024 abgegeben → Status GivenAway + Abnehmer + Abgabedatum, damit sie nicht mehr in der Bestandsansicht (isResident && status=Breeding) auftaucht. Konsolidiert die alte name-only-Decision, die nach dem Chart-Import auf „Merle of Samsimar“ geleakt hat.",
|
||||
"source": "Ticket 7037f5d8 (Züchterin 2026-07-31) + Ticket a8f11ac0 + Ticket 00715df9 + Ticket 36a3fcde"
|
||||
},
|
||||
{
|
||||
"name": "Jay",
|
||||
"dob": "24.10.2021",
|
||||
"decision": "C-Locus = c[chm]c[chm] — die Quell-Charts schreiben 'c[hm]' (fehlendes c, Tippfehler); das Farbschlag-Label beider Charts ist 'Zobel', und c[h] ist genetisch unmoeglich, da beide Eltern kein c[h] tragen (Hagrid Rubeus Cc[chm], Arya Stark c[chm]c[chm]).",
|
||||
"genotype": "aa c[chm]c[chm] Dd Ee gg P- spsp",
|
||||
"source": "Zuechterin-Ticket 2322c2a8 (2026-08-19) — „Falsche Farbe. Er ist ein Zobel“"
|
||||
},
|
||||
{
|
||||
"name": "Kathlin von den Kleinen Chaoten",
|
||||
"dob": "20.04.2021",
|
||||
"decision": "Eltern sind Yuki von den Kleinen Chaoten (*03.02.2020, Vater) x Ella (*10.06.2019, Mutter) — so in allen 6 Stammbaum-Charts (z. B. 'Stammbaum von CP-Fuchs, CP-Sa Sp von Unity.xlsx' K79 -> N80/N81, Grosseltern Q79 Camaro + Q80 Izumi / Q81 Louis + Q82 Roswitha). Die Chart-Position hatte die Grossmutter Izumi als Mutter gesetzt und keinen Vater (Zeilen-Offset wie im Akane-Fall 88389f8e).",
|
||||
"father": "Yuki von den Kleinen Chaoten",
|
||||
"fatherDob": "03.02.2020",
|
||||
"mother": "Ella",
|
||||
"motherDob": "10.06.2019",
|
||||
"source": "Ticket 8a51ac73 — Stammbaum-xlsx (Zuechterin verweist ausdruecklich darauf)"
|
||||
},
|
||||
{
|
||||
"name": "Fast Boy of Golden Lights",
|
||||
"dob": "31.03.2017",
|
||||
"decision": "Eltern sind Charly of Golden Lights x Ziwa of Golden Lights, NICHT Danjo (= Ziwas Vater, also der Grossvater) + Xtra Bounty (= Zuleikas Mutterlinie) — Chart-Position um eine Zeile verrutscht.",
|
||||
"father": "Charly of Golden Lights",
|
||||
"fatherDob": "05.04.2016",
|
||||
"mother": "Ziwa of Golden Lights",
|
||||
"motherDob": "29.04.2016",
|
||||
"source": "Ticket 6c89082e — RennmausPro III (_rpro3.db: Vater Charly / Mutter Ziwa) + Paarzelle R35 in 'Stammbaum von CP-Fuchs, CP-Sa Sp von Unity.xlsx' + Q74/Q75 in 'Stammbaum von Kid von Cassy & Blaster.xlsx'"
|
||||
},
|
||||
{
|
||||
"name": "Ziwa of Golden Lights",
|
||||
"dob": "29.04.2016",
|
||||
"decision": "Vater = Danjo of Golden Lights, Mutter = Isiri of Golden Lights (rpro3); die Paarzelle R61 'Isiri of Golden Lights & Danjo of Golden Lights' in 'Stammbaum von Akio Kids.xlsx' ist rollenvertauscht. Haengt Danjo/Isiri dort ein, wo sie hingehoeren (Fast Boys Grosseltern), statt den Stammbaum bei Ziwa abzubrechen.",
|
||||
"father": "Danjo of Golden Lights",
|
||||
"mother": "Isiri of Golden Lights",
|
||||
"source": "Ticket 6c89082e — RennmausPro III (_rpro3.db)"
|
||||
}
|
||||
],
|
||||
"addAnimals": [
|
||||
@@ -1797,9 +1853,10 @@
|
||||
"Wurfchronik Teil 1_page_0054.md-6a1a1054-0002-4000-8000-000000000002",
|
||||
"Wurfchronik Teil 1_page_0054.md-6a1a1054-0003-4000-8000-000000000003",
|
||||
"stammbaum-verpaarungchevroletcamarotopolino",
|
||||
"Stammbaum-virtual-a7c4a776-e7fc-5672-a004-8aaf5534db97"
|
||||
"Stammbaum-virtual-a7c4a776-e7fc-5672-a004-8aaf5534db97",
|
||||
"Wurfchronik Teil 1_page_0009.md-90e23e20-3051-4048-b4b1-e2bc00b21736"
|
||||
],
|
||||
"_doc_suppress": "suppressExternalRefs: ExternalRefs von bestätigten Phantom-/OCR-Fehllesungs-Dubletten, die final aus dem Payload entfernt werden. Hier: 'Muga' (OCR-Fehllesung von 'Nduga' aus Wurfchronik Seite 0054, Ticket a9c0d0f9, von der Züchterin bestätigt) samt ihrem kinderlosen Phantom-Wurf 'Muga × Benjiro'. Die echten Kinder (Luna/Cleo/Izumi/Pinky) gehören bereits korrekt zum echten Wurf H13 (Nduga × Benjiro, 07.02.2018).",
|
||||
"_doc_suppress": "suppressExternalRefs: ExternalRefs von bestätigten Phantom-/OCR-Fehllesungs-Dubletten, die final aus dem Payload entfernt werden. Hier: 'Muga' (OCR-Fehllesung von 'Nduga' aus Wurfchronik Seite 0054, Ticket a9c0d0f9, von der Züchterin bestätigt) samt ihrem kinderlosen Phantom-Wurf 'Muga × Benjiro'. Die echten Kinder (Luna/Cleo/Izumi/Pinky) gehören bereits korrekt zum echten Wurf H13 (Nduga × Benjiro, 07.02.2018). Ausserdem das namenlose Q3-Jungtier von Seite 0009 (Ticket 4f890829), das fälschlich als Platzhalter-Vater „Unbekannt“ des Q4-Wurfs aufgelöst wurde — die echten Q3-Jungtiere stehen mit Namen auf Seite 0028 (Pünktchen/Quebec/Kai-Uwe).",
|
||||
"addLitters": [
|
||||
{
|
||||
"name": "Akanes Wurf (bei Clan of Black Forest)",
|
||||
@@ -2143,6 +2200,24 @@
|
||||
"mother": "Skarlett von den Kleinen Chaoten",
|
||||
"motherDob": "14.07.2013",
|
||||
"source": "Ticket 44a9b677: April-Wurf hatte fälschlich Ahnin Skarlett *2009 als Mutter"
|
||||
},
|
||||
{
|
||||
"litterName": "TS-Wurf",
|
||||
"date": "03.04.2015",
|
||||
"father": "Jack Jr. von den Kleinen Chaoten",
|
||||
"fatherDob": "19.06.2013",
|
||||
"mother": "Lila",
|
||||
"motherDob": "13.02.2014",
|
||||
"source": "Ticket 5851bb94: Wurfchronik-xlsx sheet1 Z.162 (T5-Wurf *03.04.2015, Lila x Jack Jr.) + Overview 'Wurfchronik Teil 1_page_0044.md' ('TS-Wurf (Jack Jr + Lila)'); die Seiten-Extraktion 0044 liefert fuer alle Wuerfe fatherId/motherId=null"
|
||||
},
|
||||
{
|
||||
"litterName": "Q4-Wurf",
|
||||
"date": "10.12.2014",
|
||||
"father": "Earl",
|
||||
"fatherDob": "22.04.2013",
|
||||
"mother": "Nelly",
|
||||
"motherDob": "12.07.2013",
|
||||
"source": "Ticket 4f890829: Wurfchronik-xlsx sheet1 row 131 (Earl [Kleine Chaoten] x Nelly [Kleine Chaoten]); rpro3 bestaetigt das Paar (Wade *14.01.2015). Ersetzt den faelschlich aufgeloesten Platzhalter-Vater 'Unbekannt'."
|
||||
}
|
||||
],
|
||||
"_doc_litterParents": "litterParents: erzwingt Vater/Mutter eines BESTEHENDEN Wurfs (Match litterName+date), via name+dob. Für Namensvetter-/verstorbenes-Elternteil-Korrekturen, die der Resolver nicht selbst trifft.",
|
||||
|
||||
Reference in New Issue
Block a user