presseportale/dev
Kevin Adametz a0ac32cf95 companies: Adress-Klassifizierung persistieren (Roadmap 1a.2, E1 = 3)
Die Klassifizierung aus dem Trockenlauf wird jetzt nach company_email_groups
geschrieben — eine Zeile je Adresse, denn ob zusammengeführt werden darf, ist
eine Eigenschaft der Adresse und nicht der Firma. Die Zusammenführung (1a.3)
und die laufende Zuordnung neuer API-Meldungen (1a.4) lesen dort, statt den
Trockenlauf jedes Mal neu zu rechnen.

Die Logik liegt jetzt in CompanyAddressClassifier und wird von Bericht und
Persistierung gleichermaßen benutzt. Beide müssen dieselbe Antwort geben —
sonst zeigt der Bericht etwas anderes, als die Zusammenführung später tut.

manual_classification übersteuert die berechnete Klasse und überlebt jede
Neuberechnung. Nötig für Grenzfälle, die nur ein Mensch entscheiden kann:
presse@pr4you.de ist eine echte Agentur, sieht in den Daten aber aus wie eine
Wegwerfadresse. effectiveClassification() ist die einzige Stelle, die
Abnehmer fragen dürfen.

Eigene Tabelle statt Spalten auf companies: Die Tabelle trägt einen
FULLTEXT-Index, jedes ADD COLUMN dort ist ein Rebuild. Die Zuordnung Firma →
Gruppe ist ohnehin nur die normalisierte Adresse, und die eine Stelle, die
festlegt, was "dieselbe Adresse" heißt, ist jetzt Company::emailKey().

E1 ist entschieden: Schwellwert 3, nach drei Live-Läufen. Bei 2 wird jede
zweite Schreibweise zur "Agentur", bei 4 wandern echte Mehrkunden-Adressen in
die Handarbeit. Konfiguriert in config/newsroom.php; Bericht und
Klassifizierung lesen den Wert von dort.

Die Ähnlichkeitsprüfung ist quadratisch und jetzt bei 25 Repräsentanten
gedeckelt — ab da steht die Klasse fest, und yahoo@yahoo.com mit über 4000
Namen hätte sonst neun Millionen Levenshtein-Aufrufe gekostet. Laufzeit über
den ganzen Bestand: 25 s → 3 s, Ergebnis unverändert.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-11 09:11:09 +00:00
..
2026-09-01 companies: Adress-Klassifizierung persistieren (Roadmap 1a.2, E1 = 3) 2026-09-11 09:11:09 +00:00
archive docs: dev-Doku für den Live-Betrieb neu sortiert — Archiv + Betrieb + Roadmap 2026-07-21 07:52:38 +00:00
betrieb docs: verschobene Doku-Pfade in Code-Kommentaren nachgezogen 2026-07-21 07:53:08 +00:00
README.md docs: dev-Doku für den Live-Betrieb neu sortiert — Archiv + Betrieb + Roadmap 2026-07-21 07:52:38 +00:00
roadmap.md docs: R6.5 in der Roadmap abgehakt (Merge nach main + Tag v1.0.0) 2026-07-21 07:58:20 +00:00

dev/ — Projekt- und Betriebsdokumentation

Stand: 20.07.2026 — das System ist live (pressekonto.com, presseecho.de, businessportal24.com). Die Struktur trennt aktive Betriebs-/Planungsdoku von abgeschlossenen Phasen (Archiv).

Aktiv

Pfad Inhalt
betrieb/deploy-runbook.md Deploy- und Betriebs-Runbook (SFTP-Deploy-Checkliste, Worker, Scheduler, Stripe-Webhook, Rollback) — erste Anlaufstelle für alles Operative
betrieb/api-legacy-paritaet.md Verhaltens-Referenz der Legacy-API-Kompatibilitätsschicht (/service/…) — lebendes Dokument, solange Alt-Integrationen (Connektar) die Pfade nutzen
betrieb/umami.md Umami-Analytics-Snippets je Domain
roadmap.md Offene Punkte und nächste Entwicklungen/Optimierungen

Lokal / gitignored (bleiben liegen, nicht committen)

Pfad Inhalt
migration/ Medien-Staging der Legacy-Migration (~7 GB Uploads beider Altportale) — Quelle für legacy:migrate-media; behalten, bis das Alt-System endgültig abgeschaltet und ein Server-Backup gezogen ist
api/ Postman-Collection (enthält API-Keys!) und Activity-Log-Auswertungen der Alt-APIs
archive/migration-2026/sql/ Legacy-DB-Dumps (Snapshots vom 23.04.2026)

Archiv (archive/)

Abgeschlossene Phasen, als Historie/Referenz erhalten:

  • optimize/ — System-Optimierungsphasen 0–6 und das Cutover-Runbook der Legacy-Migration (erledigt 20.07.2026; enthält weiterhin die Anleitung für --since-Delta-Läufe, falls das Alt-System noch einmal Daten liefert)
  • release/ — Release-Entwicklungsplan, manuelle QA-Checkliste, Boost-Platzierungs-Entscheidung
  • migration-2026/ — Analyse- und Planungsdoku der Legacy-Migration (Datenmodell, Merge-Strategie, API-Kunden, Fortschritt)
  • frontend/ + frontend-audits/ — Frontend-Konzepte und die Responsive-/Mobile-Audits vom 16.07.
  • agentur-attribution/, legacy_logging/, legacy_performance/, _old/ — ältere Einzelthemen bzw. Altsystem-Reste