solcom / docs / LOG

Append-only Audit Log

Chronologische, append-only Aufzeichnung aller docs/-Operations (Karpathy-Wiki-Pattern, „Wiki is a persistent, compounding artifact"). Neueste Einträge oben. Wer einen Eintrag korrigieren will: neuen Eintrag mit supersede anlegen, alten nicht editieren.

Last synced: 2026-07-09  ·  Pflege: Skills html-doc-authoring, solcom-docs-context, solcom-adr-workflow, solcom-design-mapping

Operations-Vokabular

ingest
Neuer Context-/Design-Snapshot eingepflegt.
decide
ADR-Status auf accepted / rejected gesetzt.
supersede
Eintrag durch Nachfolger abgelöst (Meta solcom:supersedes).
sync
MAPPING.html / Design-Inventar nach Figma-Scan aktualisiert.
migrate
Doc von .md nach .html migriert.
lint-pass
solcom-docs-lint-Lauf clean (kein Befund).
Backfill-Hinweis (2026-05-11): Initialer Backfill aus existierenden Meta-Tags. ADRs 0001–0017 tragen solcom:date="2024-01-01" als Platzhalter — die tatsächlichen Entscheidungs-Daten liegen zwischen ca. April und Anfang Mai 2026. Für chronologische Reihung wurden diese ADRs unter 2024-01-01 gruppiert und sortieren am Ende der Liste. ADR 0018+ und alle Context-/Design-Snapshots tragen akkurate Daten.
Date Op Title Strand Path
2026-07-09 ingest Wiki-Entity angelegt: Neos-Login-Mail-Migration. Dokumentiert die heute lokal gegen eine Live-DB-Kopie verifizierte Trennung von Login-Kennung (neos_flow_security_account.accountidentifier) und Profil-Mail (contenance_solcom_domain_model_user.email) — 1.751 Accounts mit abweichenden Adressen konnten sich weder einloggen noch per Passwort-Reset wiederfinden (Support-Fall uid 23264). Entscheidung: Drupal-name := Neos-Login-Mail, mail bleibt Profil-Mail; Login authentifiziert nur über name, Passwort-Reset matcht beide. Implementation auf Branch feature/neos-login-mail-as-username (Commit abbe0362, noch nicht gemergt); Backfill-Script hat 1.750 von 1.751 Bestandsaccounts umbenannt, Live-Runbook für den produktiven Rollout dokumentiert, aber noch nicht ausgeführt. wiki wiki/neos-login-mail-migration.html
2026-07-07 ingest Go-Live-Runbook für den Cutover 08.07. angelegt: 20 abhakbare Schritte in vier Phasen (Vorbereitung → DNS-Switch 10:00 → Verifikation → Nachlauf) mit Owner-Zuordnung (SOLCOM IT / DEV / MARKETING), konkreten curl-Verify-Kommandos, Redirect-Stichproben-Tabelle über alle Klassen und localStorage-persistenten Checkboxen. Konsolidiert die offenen Cutover-Punkte aus dem Redirect-Plan (DNS ×4 Hosts, Deploy, trusted_host_patterns, SF-retURL, redirect_404-Monitoring, Neos-Abschaltung). plans plans/2026-07-07-003-golive-runbook-cutover.html
2026-07-07 sync Redirect-Cutover-Plan zweimal nachgeführt: (1) Cutover-Topologie bestätigt — Staging-Instanz a-q7fxvm geht selbst live, keine separate Prod-App (Pipeline-DeployProd ist Placeholder), damit entfällt der separate Prod-Import; (2) Karriere-Mechanik präzisiert — statt Webserver-Host-Map jetzt Custom-Modul solcom_karriere_redirect (kernel.request-Subscriber, Priorität 50, 301/410 aus 350-Zeilen-Map, Fallback /karriere-bei-solcom; 6 Kernel-Tests, PR 169471). Beide Module in core.extension.yml — Aktivierung beim Deploy. Bei SOLCOM IT verbleibt nur DNS. plans plans/2026-07-07-001-feat-neos-redirect-mapping-cutover.html
2026-07-07 sync Redirect-Cutover-Plan auf Umsetzungsstand gebracht (draft→active): Entscheidungsrunde vom Nachmittag eingearbeitet — Sektion 06 von offenen auf getroffene Entscheidungen umgeschrieben (Referenzen → /unternehmen/referenzen, Schulungskatalog → /solcom-akademie, Firmen-Seiten → /uber-solcom, News → 410, Kunden-Kampagnen → /experten-finden-lassen, Karriere → Host-Map), Stufen 1+2 als erledigt markiert (drei Import-Wellen, 1.163 Redirect-Entities auf Staging HTTP-verifiziert), Artefakte-Tabelle auf Repo-Pfade umgestellt (scripts/redirects/, solcom_gone mit 358 Gone-Pfaden). Offen nur noch: Prod-Einspielung am Cutover + Webserver-Umsetzung der Karriere-Host-Map (SOLCOM IT). plans plans/2026-07-07-001-feat-neos-redirect-mapping-cutover.html
2026-07-07 sync Mapping-Tabelle final regeneriert aus den Repo-Artefakten (drei Wellen-CSVs + Gone-Liste + Karriere-Host-Map): 1.950 Zeilen, keine OFFEN-Markierungen mehr — alle Entscheidungsblöcke aufgelöst; Statusline „Stufe 1+2 umgesetzt · 1.163 Redirects auf Staging verifiziert“; Klassen um welle2/welle2-alt/kunden-kampagne/gone-modul/karriere-host-map erweitert. plans plans/2026-07-07-002-feat-neos-redirect-mapping-tabelle.html
2026-07-07 ingest Mapping-Tabelle als Review-Anhang zum Redirect-Plan: alle 1.995 Redirect-Zeilen final aufgelöst (www 1.645 + karriere.solcom.de 350) mit Klassen-Filter und URL-Suche. Scope-Korrektur ggü. Erstfassung des Plans: karriere.solcom.de ist Teil der Drupal-Site (/karriere/*, vacancy-Nodes) und damit in scope — Neos-Multi-Site solcom-career (171 sichtbare URLs, 82 abgelaufene Stellen) extrahiert und gemappt; Host-Kollisions-Risiko dokumentiert (redirect-Modul matcht nur Pfade → Karriere via Webserver-Host-Map). plans plans/2026-07-07-002-feat-neos-redirect-mapping-tabelle.html
2026-07-07 ingest Implementation-Plan angelegt: Neos→Drupal Redirect-Mapping für den Go-Live-Cutover 08.07. Basis: Voll-Analyse des Neos-Prod-Dumps (06.07.) — 1.161 sichtbare Live-URLs aus nodedata rekonstruiert, 2.456 Einträge der Redirect-Tabelle ausgewertet, Trial-Match gegen 1.372 Drupal-Aliase (Staging). Ergebnis: ~40 % automatisch mappbar, ~46 % per Sektions-Regel (Projektangebote → Projektliste, Referenzen/Schulungskatalog → 410), ~170 manuell. Drei-Stufen-Rollout: Import-Paket via drush php:script, Stakeholder-OK für 410-Defaults, redirect_404-Monitoring als Netz. plans plans/2026-07-07-001-feat-neos-redirect-mapping-cutover.html
2026-07-06 ingest Implementation-Plan angelegt: Bauleitung-Formular-Austausch — contact_form wird Salesforce-Web-to-Lead-fähig (Feld-Kontrakt 1:1 nach SF-HTML, 13 Tracking-Hidden-Felder, lead_submit-DataLayer, Canvas-Seite 100 verliert beide SF-Embeds). Ergebnis der Grilling-Session 06.07.; Glossar-Begriffe Web-to-Lead-Pfad / Marketing-Form-Pfad / Tracking-Felder / Kunden Lead in CONTEXT.md ergänzt. Extern offen: 00N…-IDs (Fr. Baur), page_url-Feld. plans plans/2026-07-06-001-feat-bauleitung-web-to-lead-form.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Newsletter-Handler-/Double-Opt-In-Readiness-Smoke ergänzt. /form/newsletter-signup rendert lokal öffentlich mit Pflichtfeld email und ohne Console-Errors; webform.webform.newsletter_signup ist offen und hat lokal 1 Submission. Produktionsreife bleibt offen: handlers: [], Mailpit bleibt bei 9, sichtbare Double-Opt-In-/Datenschutz-/Abmelde-Copy fehlt, und Double-Opt-In-Code wurde nur für Projektpartner/Projektalert gefunden. Keine gültigen neuen Submits, keine Mails, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Website-Testing-Intro-Smoke ergänzt. we-intro ohne gültige Submits geprüft: Desktop-Navigation öffnet per Klick, synthetischer Hover nicht; Überschrift Für Unternehmen ist Button ohne Direkt-Href und sichtbarer Heading-Link zeigt auf Staging. Ungültige Registrierungs-Mail wird per nativer Browser-Validity blockiert, aber ohne sichtbaren Drupal-Fehlertext/aria-invalid. Datenschutz-/Nutzungserklärungsziel /datenschutz-und-nutzungsbedingungen rendert 404. Login-Erfolgsbanner wurde ohne Einmal-Link nicht neu getestet. Mailpit bleibt bei 9, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: NDA-/SOLCOM-Profil-Wording-Smoke ergänzt. 587 lokale Sitemap-URLs GET-only nach NDA/NDAs, ausgeschriebenen Vertraulichkeitsbegriffen und SOLCOM-Profil/Projektpartnerprofil geprüft. Treffer: NDAs bleibt auf /fur-freelancer-projektportal und /leistungen-branchen sichtbar unabgekürzt, SOLCOM-Profil bleibt auf /fortbildungen-mit-der-ibb ohne Erklärung, /mein-projektpartnerprofil ist nur Title-/Empty-Main-Treffer. Keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Mailpit-Signatur-/Abmeldelink-Smoke ergänzt. 9 vorhandene lokale Mailpit-Nachrichten per Detail-API read-only ausgewertet, ohne Bodies/Rohadressen/Sensitive Links zu speichern und ohne neue Mail zu erzeugen: 9/9 Text+HTML, 2/9 Attachments, 0/9 List-Unsubscribe, 0/9 Abmelde-/Unsubscribe-Textmarker, 5/9 vollständige Telefon-/Adress-/Datenschutz-Footer-Marker. Keine Projektalert-Bestätigungsmail vorhanden; konkreter Alert-Abmeldelink bleibt ohne Freigabe für neue Alert-Mail offen. Keine Submits, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Sammelbewerbung-mit-IDs-Readonly-Smoke ergänzt. /projektportal/merkliste/bewerben?ids=681 rendert H1, Projektanzahl, Formular, Gast-/Login-/Registrieren-Pfade und Hidden-Projektkontext project_offer_items. Teilweise offen bleiben kein erneuter Safe-Submit/Danke-Seiten-Test, breiter/anders wirkender Formularvertrag, kein sichtbarer Captcha-/Fake-Mail-Schutz, kein sichtbarer Telefon-Ländervorwahlvertrag und Nutzungserklärungsziel als bereits dokumentiertes lokales 404-Risiko. Keine Accounts, keine Submits, keine Uploads, keine Mails, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Registrierung-/Anti-Abuse-Readonly-Smoke ergänzt. Login und Einzelbewerbung zeigen sichtbare Registrierungslinks; Code-/Config-Evidence bestätigt blockierten Projektpartner-Account, Passwortpolicy und Double-Opt-In-Verifizierung bis gültigem Hash. Teilweise offen bleiben Registrierung ohne H1, kein sichtbarer Captcha-/Fake-Mail-Schutz vor Submit, kein sichtbarer Telefon-Ländervorwahlvertrag, breite Länderliste inklusive Anguilla und Sammelbewerbung ohne IDs ohne explizites Login-/Registrierungs-Gate. Keine Accounts, keine Submits, keine Uploads, keine Mails, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Secure-/IBB-Linkziel-Smoke ergänzt. Was ist Secure Contracting? zeigt weiter auf ein fehlendes #secure-contracting-Ziel und scrollt nicht; zwei sichtbare Secure-Contracting-CTAs zeigen auf Staging-Domains. Fördermöglichkeiten bei ibb prüfen zeigt weiter auf die IBB-Kontakt-/Anfrageseite. Externe Ziel-HEADs antworten mit 200; der Befund bleibt fachlich/semantisch offen. Keine Submits, keine Mails, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Offene-Stellen-KPI-/Link-Smoke ergänzt. Sichtbarer Karriere-CTA Offene Stellen entdecken navigiert per echtem Browser-Klick zur Stellenliste; 32 Treffer stimmt lokal mit 32 publizierten Vacancy-Nodes überein. Teilweise offen bleiben fehlende sichtbare klickbare Stellenzahl auf Start-/Karriere-Einstieg, statischer nicht klickbarer Trefferzähler auf der Liste und ein Slider-CTA Zur Initiativbewerbung, der auf die Stellenliste zeigt. Keine Submits, keine Mails, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Merkliste-UX-Remove/Count-Smoke ergänzt. Anonymer Browser-Flow Add → Merkliste öffnen → Remove funktioniert technisch mit solcom.watchlist=["681"] und danach []; Leerzustand und Toast Aus der Merkliste entfernt. sichtbar. Teilweise offen bleiben fehlender sichtbarer Count/Warenkorb-Badge, implizites Entfernen über In meiner Merkliste statt explizitem Entfernen-Label und ein im Empty-State-DOM verbleibender Für alle bewerben-Link. Keine Submits, keine Mails, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Legal-Link-Target-Matrix ergänzt. 12 lokale Routen read-only geprüft, 44 Legal-/Consent-Anker und 32 eindeutige Ziel-URLs inventarisiert. Kontakt und Expertenformular verlinken Datenschutz weiterhin auf alte www.solcom.de/de/datenschutz-und-nutzungsbedingungen-Ziele; Registrierung und Bewerbung führen Datenschutz-/Nutzungserklärungslinks auf lokale /datenschutz-und-nutzungsbedingungen-404-Ziele; /terms-service ist nur Placeholder, /nutzungsbedingungen ist 404. Keine Submits, keine Uploads, Mailpit bleibt bei 9, keine Fixes. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Projectalert-Keyword-Edge-Smoke ergänzt. Authentifizierter lokaler Projektpartner uid:22 prüfte /projektportal/projektalert ohne Speichern: Bau schlägt Bauleitung statt anlagen^bau vor, Kunde wird nach Enter als Custom-Exclude übernommen, aber Bauleitung kann gleichzeitig Include und Exclude sein und reduziert die Treffer auf 0 ohne Fehlermeldung. Keine neuen Mailpit-Nachrichten, keine Console-/Page-Errors, keine Fixes, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Consent-/Usercentrics-Smoke ergänzt. Frische lokale Browser-Session auf / zeigt UC_UI initialisiert, aber keinen sichtbaren Consent-Banner, keine Akzeptieren-/Ablehnen-/Speichern-Buttons, keine Consent-Cookies/Storage und keine dataLayer-Consent-Events. Diagnostisches UC_UI.showFirstLayer()/showSecondLayer() rendert nur COOKIE-EINSTELLUNGEN plus Schliessen; getServicesBaseInfo() liefert 0 Services. Consent-Bridge-Ressourcen laden lokal mit HTTP 200, keine Console-/Page-Errors. Reifegrad wegen hartem Legal-/Consent-Readiness-Risiko von 48 auf 46 gesenkt. Keine Fixes, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Form-/Auth-Validation-Smoke ergänzt. 9 priorisierte lokale Einstiege wurden nur mit leeren oder absichtlich ungültigen Eingaben geprüft: 8 blockieren per Pflichtfeld-/E-Mail-Validierung, /projektportal/projekt-alert/abonnieren zeigt anonym Login-/Registrieren-CTAs statt Formular. Der Experten-Lead-Pfad wurde auf die reale lokale Route /experten-finden-lassen korrigiert. Side-Effects bleiben null: Mailpit 9→9, Watchdog 1682→1682, Webform-Submission-Counts unverändert. Keine Fixes, keine gültigen Submits, keine Uploads, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Interaktions-State-Smoke mit agent-browser ergänzt. Vier reale State-Flows geprüft: Startseiten-Accordion/Slider, öffentliche Projektliste mit Filter/Sortierung/Mehr laden/Merkliste, Kontaktformular-Empty-Submit und mobiles Menü. Keine Page-Errors und keine Console-Ausgaben. Grün: Projektfilter öffnet, Sortierung setzt ?sort_by=created&sort_order=ASC, Kontaktformular blockt leeren Submit mit 6 nativen Validierungsfehlern. Offen: IT-Accordion-Panel sichtbar bei aria-expanded=false, Startseiten-Slider-Next bleibt bei 01 / 03, Projektlisten-Mehr laden bleibt nach gezieltem Klick bei 10 sichtbaren Karten, anonyme Merkliste ohne klaren Login-/Feedback-State. Reifegrad von 50 auf 48 gesenkt. Keine Fixes, keine gültigen Form-Submits, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Performance-/Vitals-Smoke mit agent-browser vitals ergänzt. 10 priorisierte lokale Einstiege geprüft, 10/10 erfolgreich; lokale DDEV-Lab-Maxima TTFB 480ms, LCP 556ms, FCP 540ms, CLS 0. Langsamste Route /projektportal/registrieren. Als lokale Stabilitätsevidenz dokumentiert, nicht als Produktions-Core-Web-Vitals; keine Score-Anhebung wegen offener fachlicher und integrationsbezogener Risiken. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Post-Runtime Mailpit-/Webform-/Watchdog-Snapshot ergänzt. Mailpit enthält weiter 9 lokale Nachrichten und 0 ungelesene; Snapshot redacted Domains/Betreff/Counts ohne Bodies oder Rohadressen. Webform-Submissions: contact_form=11, newsletter_signup=1, projektpartner_registration=12, rsm_project_offer_application=17, vacancy_application=3. Letzte 50 Watchdog-Einträge clustern weiter auf Salesforce-Testendpoint-Tokenfehler, Image-, Access-Denied-, User- und Webform-Einträge. Keine Fixes, keine Form-Submits, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Runtime-Konsole-Smoke mit agent-browser ergänzt. Dieselben 18 Kernrouten wie im Keyboard-Smoke wurden mit frischen Browserzuständen geprüft; alle öffnen, alle erreichen networkidle, Ergebnis 0 Page-Errors, 0 Console-Zeilen, 0 Network-Idle-Timeouts. Positive Stabilitätsevidenz, aber keine Score-Anhebung wegen offener Content-/Gating-/Integrationsrisiken. Keine Fixes, keine Form-Submits, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Keyboard-/Accessibility-Smoke mit agent-browser ergänzt. 18 Kernrouten read-only geprüft: 680 fokussierbare Elemente, 8 Formulare, 83 Felder, 0 namenlose interaktive Elemente, 0 unlabeled Fields, 0 ungültige ARIA-ID-Referenzen, 0 Skip-Link-Zielprobleme. Skip-Link funktioniert per Enter bis #main-content, Desktop-Hauptnavigation öffnet per Enter mit aria-expanded=true. Offen bleibt als Semantik-Paper-Cut: mobiler Menübutton öffnet per Enter, exponiert aber kein aria-expanded/aria-controls. Kein weiterer Score-Abzug; keine Fixes, keine Form-Submits, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Portal-Access-Gate-Matrix anonym vs. Projektpartner uid:22 ergänzt. 14 Portal-/Projektlisten-Routen read-only geprüft. Authentifiziert laden Dashboard, Profil, Profilbearbeitung, Konto-Einstellungen, Merkliste, Projektalert und Bewerbungsformulare. Drei bekannte Risiken formal bestätigt: /projektportal liefert anonym 403 mit Login-Form, /projektportal/registrieren hat anonym keinen H1, /projektportal/merkliste/bewerben zeigt anonym HTTP 200 ohne Formular und ohne hartes Login-Gate. Kein weiterer Score-Abzug, weil diese Befunde bestehende Gating-/Semantik-Risiken absichern. Keine Fixes, keine Form-Submits, keine destruktiven Kontoaktionen. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: interaktives CTA-/Button-/Input-Inventar ergänzt. 22 priorisierte user-facing Routen GET-only geprüft: 990 Links, 238 Buttons, 10 Formulare, 2074 Inputs, 123 Staging-Linktreffer, 13 alte www.solcom.de-Treffer, 2 Missing-H1-/Empty-Main-Routen und 18 belastbare No-Action-Button-Kandidaten nach False-Positive-Filter. Browser-Nachtest bestätigt repräsentativ keine URL-/Scroll-/Network-Aktion für ESG-Buttons Button label, Engagement ansehen, Nachweise ansehen, Startseiten-CTA SOLCOM in Zahlen und Über-SOLCOM-CTA Expert:innen finden lassen. Reifegrad wegen wiederkehrendem CTA-Komponentenvertrag-Risiko von 51 auf 50 gesenkt. Keine Fixes, keine Form-Submits, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Webform-/Formularinventar ergänzt. 7 aktive/offene Webforms inventarisiert; öffentliche /webform/*-Routen leiten auf /form/beispiel, /form/contact-form und /form/newsletter-signup, alle lokal HTTP 200. Browser-Evidence für Beispiel-, Kontakt- und Newsletterformular gesichert. Newsletter-Happy-Path lokal grün (POST 200, Bestätigung, Submission 0→1), Mailpit bleibt wegen fehlendem Handler 9→9. Public-Webform-Copy-Kerneltest grün (1 Test, 14 Assertions), Kontakt-/Newsletter-FJS grün mit Deprecations (7 Tests, 8 Assertions, 46 Deprecations). Reifegrad wegen Newsletter-Downstream-Lücke und öffentlichem /form/beispiel-Slug-/Provenienzrisiko von 52 auf 51 gesenkt. Keine Fixes, keine Produktionswrites, keine destruktiven Aktionen. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Endpoint-/API-Inventar und integrationsnahe Regression ergänzt. 15 externe bzw. integrationsrelevante Endpunkte sicher bewertet, darunter Salesforce FCSB/Web-to-Lead, Personio Feed/Application/Documents, SendGrid, Mailpit, FriendlyCaptcha, Usercentrics, Salesforce Marketing Cloud Forms Host und Google Maps. Lokale Regressionen grün: Salesforce Web-to-Lead 9 Tests / 52 Assertions, Personio Bewerbung/Queue/DLQ/Purge 36 / 306, Salesforce Projektangebote/FCSB 8 / 39, Usercentrics/Standortkarte 5 / 37; zusammen 58 Tests, 434 Assertions, 28 Deprecations. Mailpit redacted API-Snapshot mit 9 Nachrichten ergänzt. Keine produktiven Write-Tests und keine Secrets ausgegeben; Reifegrad bleibt 52/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Full-Sitemap-Smoke ergänzt. Alle 587 URLs aus /sitemap.xml wurden lokal GET-only geprüft: 586× HTTP 200, 1× 301 von /fur-unternehmen auf /, 59 Routen ohne H1, 49 Routen mit leerem <main>, 586/587 mit Staging-Links, 7 Routen mit alten www.solcom.de-Links und 19 Content-Red-Flag-Routen. 299 eindeutige lokale Bild-URLs technisch geprüft; zwei Routen enthalten src-URLs mit 404, Browser-Evidence für /automotive-transportation und /unternehmensverantwortung/compliance-rechtssicherheit-bei-solcom ergänzt. Reifegrad von 55 auf 52 gesenkt. Keine Fixes, keine externen Produktivaufrufe, keine destruktiven Aktionen. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Sitemap-Batch-2 ergänzt. 35 weitere Sitemap-Routen aus Werte-, Referenz-, Standort-, Branchen- und /page/*-Clustern geprüft: 35/35 HTTP 200, 33/35 ohne H1 und mit leerem <main>, 35/35 mit Staging-Links, 0 Broken Images, 1 Legacy-www-Link auf /page/64. Browser-Evidence für /unsere-werte-dafur-stehen-wir, /essen, /experten-fur-engineering, /page/67, /unternehmensverantwortung/nachhaltigkeit-esg und /page/64 ergänzt. Kombiniert Batch 1+2: 65/65 HTTP 200, 58/65 ohne H1, 38/65 leerer <main>, 65/65 Staging-Links. Reifegrad von 57 auf 55 gesenkt. Keine Fixes, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Sitemap-Toprouten-Smoke ergänzt. /sitemap.xml listet 587 URLs; 30 bisher schwach belegte Toprouten aus der Sitemap liefern lokal HTTP 200, aber 25/30 ohne H1 und alle 30 mit Staging-Links. Browser-Evidence für 8 repräsentative Routen ergänzt; /faqs-strang-1, /mein-projektpartnerprofil, /referenzen-stimmen-freiberufler, /reutlingen und /experten-fur-it haben leeren <main>. /newsroom enthält englischen Expense-Demo-Content, /fur-freelancer-projektportal weiterhin stätig. Reifegrad wegen appweitem Crawl-/Content-Risiko von 59 auf 57 gesenkt. Keine Fixes, keine Produktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Legacy-/Feed-/Crawler-Smoke ergänzt. 18 lokale Feed- und Robot-Endpunkte geprüft: 17× HTTP 200, 1× 301 von /feeds/gulp.html auf /asp/robots/gulplist.aspx, keine XML-Parse-Fehler bei echten XML-Endpunkten. GULP-Liste und vier Detailvarianten laden Projektinhalt; /rss/newsfeed.xml enthält weiterhin Expense-Demo-Titel und alte www.solcom.de-Ressourcen. Browser-Screenshots für GULP-Liste, Detailseite und RSS-Newsfeed ergänzt. Keine Fixes, keine externen Produktionsaufrufe. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Projektpartner-Deep-Dive mit aktivem lokalem uid:22 ergänzt. Browser-Evidence für /projektportal, Konto-Einstellungen, Profilübersicht, Profilbearbeitung und Projektlistenfilter zeigt weiterhin schwache Profilvalidierung (Anguilla, Telefon ohne Ländervorwahl, Alle+DE), fehlende Projektnummer in der Übersicht, nicht prominenten Projektalert, Konto-Löschlink nur in Konto-Einstellungen, fehlenden Passwort-Show-Control dort, sichtbares Projektpartner-Magazin, gemeinsam wählbare Remote/D7-Filter und Staging-Links in eingeloggten Portalrouten. Keine Fixes, keine destruktive Aktion. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Testinventar um alle 20 Projekt-Detail-/Bewerbungsrouten aus dem Project-Route-Smoke explizit erweitert. Maschinencheck gegen local-link-status.tsv deckt nun 51/51 eindeutige lokale Pfade ab; Statusmatrix bleibt unverändert. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Environment-/Config-Status ergänzt. DDEV läuft und Mailpit ist unter http://solcom.ddev.site:8025 erreichbar, aber Router-Warnung Router count mismatch: 30 loaded, 36 expected bleibt. drush config:status zeigt 6 Different-Objekte, darunter Canvas-/SDC-Komponenten und migrate_plus.migration.solcom_project_offer_alert_neos. Keine Config geändert. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: NEOS-/Easy-Email-Mailtemplate-Linkscan ergänzt. 77 easy_email*-Config-Dateien geprüft; 44 enthalten Legacy-Linktreffer, insgesamt 315 Matches: 153× www.solcom.de, 49× www.freiberufler-blog.de, 63× alte /de/...-Pfade und 10× solcom.de. Als Shared Cause für NEOS-/Mail-/Legacy-Link-Parität dokumentiert; keine Config geändert. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: aktuelle Mailpit-Summary ergänzt. Mailpit enthält 9 lokale Nachrichten: zwei interne Bewerbungsmails mit PDF-Anhang, zwei Eingangsbestätigungen, Projektpartner-Verifizierung, Passwort-Reset, E-Mail-Änderung sowie zwei Admin-Mails zu Registrierung/Datenaktualisierung. Profiländerungs-Passage im Report korrigiert, weil die frühere Zwischenbeobachtung „keine zusätzliche Mail“ durch die aktuelle Mailpit-API überholt ist. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: externe Linkprüfung als Summary verdichtet. 58 externe Ziele geprüft: 40× 200, 5× 403, 1× 429, 1× 500, 11× 000. Als offene Shared Causes dokumentiert: 9 absolute Staging-Ziele, 12 kaputte Mailto-/Obfuskations-URLs und alte www.solcom.de-Datenschutz-/Basis-URLs mit 403. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Watchdog/API-Summary nach den Browser-Smokes ergänzt. Die letzten 120 Watchdog-Einträge enthalten 8 fehlende responsive Bildquellen und 110 Salesforce-Testendpoint-Tokenfehler aus Cron/solcom_project_offer gegen https://test.salesforce.com/services/oauth2/token mit unsupported_grant_type. Als lokaler Integrations-Readiness-Blocker dokumentiert; keine produktive oder destruktive externe Aktion durchgeführt. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Project-Route-Smoke für 26 weitere lokale Routen aus local-link-status.tsv ergänzt. 10/10 Projekt-Detailseiten laden mit Projektdetails, 10/10 direkte Projekt-Bewerbungsrouten laden mit Formular, /user/password lädt das Reset-Formular, /projektportal/konto/einstellungen landet anonym auf Login. Offen dokumentiert: /einstiegsmoglichkeiten bleibt 404, Legacy-/Staging-Links bleiben auf allen geprüften Projekt-/Account-Routen, /fur-unternehmen und /page/63 zeigen Broken Images, /page/63 hat keinen H1. Keine Jan-Matrix-Zählung geändert; Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: erweiterter Route-Smoke für 10 weitere lokale user-facing Routen aus der Linkinventur ergänzt. Alle geprüften Routen liefern HTTP 200 und keine Console-Errors. Neu dokumentiert: persistente Broken Images nach Scroll auf /kontakt/kontaktdaten und /page/75, initiale Image-Warming-Auffälligkeiten auf Benefits/Vertrieb/Akademie, fehlende H1 auf drei Content-Routen und anonymer /projektportal/merkliste/bewerben-Leerzustand ohne Formular oder klares Login-Gate. Keine Jan-Matrix-Zählung geändert; Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: verbleibende Sonderstatus abgegrenzt. Legal-/Consent-Findings 29 und 45 bleiben fachlich/rechtlich offen, Passwort-Reset-/Einmal-Link-Finding 39 bleibt fachlich/security offen, PowerApp-E2E 4-2 bleibt ohne explizite externe/produktive Freigabe nicht getestet. Keine Statuszählung geändert; Grenze ist nun mit Evidence-JSON dokumentiert. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: alle bisherigen fachlich offen-Matrixzeilen erneut geprüft und in Ergebnisstatus überführt. C108, C6, C23 und Teresa #1 sind jetzt offen; C68 ist behoben, weil die alten Platzhalter Kundenname/Kundenfunktion und Julia Labudde/Funktion lokal durch echte Angaben ersetzt sind. Status jetzt: 26 behoben, 42 teilweise behoben, 57 offen, 0 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 0 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Leistungen/Branchen-Visual-Cluster C42/C46/C52/fe-note-2 nachgetestet. C42 von nicht eindeutig auf teilweise behoben, C46 und C52 auf offen, fe-note-2 auf behoben. Damit bleiben keine nicht eindeutig-Matrixzeilen übrig; PowerApp bleibt bewusst nicht getestet. Status jetzt: 25 behoben, 42 teilweise behoben, 53 offen, 5 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 0 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Startseiten-Visual-Cluster C14/C18/C19 gegen alte Jan-Screenshots nachgetestet. C14 und C18 sind jetzt von nicht eindeutig auf offen präzisiert, weil doppelte punktierte Divider und die vierzeilige mobile Wunschexperten-Headline reproduzierbar sichtbar sind. C19 ist wegen fehlendem Originaltitel nur teilweise behoben: Matching Rate, 03 / 03 und Rüstungsbezug sind nicht mehr sichtbar, die Projektsektion bleibt mobil auffällig. Status jetzt: 24 behoben, 41 teilweise behoben, 51 offen, 5 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 4 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Leistungen/Branchen-Doppelungen nachgetestet. C45 von nicht eindeutig auf offen präzisiert, weil Qualitätsmanagement sichtbar zweimal in Fachlisten vorkommt; zusätzlich bleiben wiederverwendete Bildquellen wie SOZIAL~1.PNG und bkuish-B_vertical-flat.webp belegt. Status jetzt: 24 behoben, 40 teilweise behoben, 49 offen, 5 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 7 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Teresa-Magazin/Initiativ-Findings lokal geprüft. SOLCOM Projektpartner-Magazin abonnieren ist in eingeloggten Konto-Einstellungen sichtbar, der alte Wortlaut Freiberufler Magazin nicht. /faqs-initiativbewerbung-strang-3 rendert nur Header/Footer ohne H1/Inhalt; Registrierung zeigt zwar Ihr Anschreiben für diese Bewerbung, aber keinen klaren Flow ohne konkreten Projektvorschlag. Status jetzt: 24 behoben, 40 teilweise behoben, 48 offen, 5 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 8 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Teresa-Content/Brand-Cluster gegen /, /experten-finden-lassen und /kontakt nachgetestet. Reproduziert offen: Ihr:e persönlicher Ansprechpartner:in, Bau statt Bauwesen und ein grüner Einfach kurz eine E-Mail schreiben-Button ohne echte Mail-/Weiterleitungsaktion. Teilweise behoben: ein Panzer-/Rüstungsbild ist in der aktuellen Startseiten-Bildmenge nicht mehr nachweisbar. Status jetzt: 24 behoben, 39 teilweise behoben, 47 offen, 7 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 8 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Experten-finden-lassen-Cluster C21/C26/C27/C28/C32/C35 lokal per Browser nachgetestet. Offen reproduziert bleiben Step-03-Satzbau Vertragswerk klärt, fehlendes Bau im Skill-Intro und starke mobile Headline-Umbrüche. Teilweise behoben: sichtbare Branchenkarten wirken konsistenter und die Kosten-FAQ enthält kein Urlaub/Krankheitstage mehr. Behoben: mobile Kachel-Swipe per Drag von 01 / 04 auf 02 / 04 verifiziert. Status jetzt: 24 behoben, 38 teilweise behoben, 44 offen, 10 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 9 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Carmen-weitere-Seiten C111/C112 auf /uber-solcom und lokaler /unternehmensverantwortung-Route geprüft. C111 teilweise behoben: Foto passt, Titel bleibt auf Horst M./CEO reduziert. C112 teilweise behoben: alte ESG-Hero-Situation auf /uber-solcom nicht mehr reproduzierbar, Zielroute existiert mit eigenem Hero und ESG-/Compliance-CTAs; finale Bildpassung bleibt redaktionell. Status jetzt: 23 behoben, 36 teilweise behoben, 41 offen, 13 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 12 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Home-Deep-Findings C6-C19 gegen alte Jan-Screenshots lokal per Browser nachgetestet. Reproduziert bleiben gemischte Projektkarten-Perspektiven, 89.5% statt Dezimalkomma, fehlende Punkte, Poll, Step-03-Satzbau Vertragswerk klärt und eine mobile Bau-Kachel-Kollision mit dem Expertenpool-Block. Status jetzt: 23 behoben, 34 teilweise behoben, 41 offen, 15 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 12 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100, weil keine Produktverbesserung erfolgt ist, sondern offene Risiken präziser belegt wurden. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Home-Wunschexperten-Block per Browser-DOM geprüft. Die zuvor fehlende Headline WIE KOMME ICH ZU MEINEN WUNSCHEXPERTEN? ist sichtbar und wurde als behoben gewertet. Weiter offen: lange CTA-/Accordion-Texte, ausfallsicher.., nicht erleben statt gewünschtem Wording und Ihr:e persönlicher Ansprechpartner:in. Status jetzt: 23 behoben, 33 teilweise behoben, 39 offen, 15 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 15 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Über-SOLCOM-Cluster lokal per Desktop/Mobile-Browser geprüft. Der SOLCOM in Zahlen-CTA funktioniert als lokaler Anker; die alte doppelte 30+-Kachel ist nicht mehr reproduzierbar; alte (N)/20(N)-Platzhalter sind entfernt. Weiter offen/teilweise: 11 sichtbare Staging-Links, (n) Prozent-Platzhalter, Copy-Typos gewinnen.., Deutsachland, de ganz genau und Dummy-Persona Maxi Musterfrau. Status jetzt: 22 behoben, 33 teilweise behoben, 39 offen, 15 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 16 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Karriere-Seiten-Cluster aus Carmens weiteren Findings lokal per Desktop/Mobile-Browser geprüft. Behoben gewertet: alter Reutlingen-Bildkartenblock, Nelja-Hensler-Balken, Karriere-Broschüre/PDF-Download/QR-/Basistraining-Kontext, alter Slider-Stand und alter Austausch..-Doppelpunkt sind im aktuellen DOM nicht mehr reproduzierbar; nach aktivem Scroll laden 19/19 Bilder. Weiter dokumentiert: doppelte Bildquellen, Alt-Text-Tippfehler REchtsmitarbeitende und Mobile-Carousel-Elemente außerhalb des Viewports. Status jetzt: 21 behoben, 31 teilweise behoben, 39 offen, 15 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 19 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 59/100 wegen unveränderter Kernrisiken. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Startseiten-Copy/KPI-Cluster lokal per Browser-DOM geprüft. Reproduziert bleiben 200 neben 48 Stunden, 135.000 Kunden, Poll statt Pool und eine:r im Daniel-Binder-Block; der exakte Tippfehler Stätig ist nicht mehr auffindbar und wurde als behoben gewertet. Status jetzt: 16 behoben, 32 teilweise behoben, 41 offen, 16 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 20 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt wegen niedrigem Gewicht des Fixes und weiter offener Kernrisiken 59/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Profilvalidierungs-Findings Teresa 18, 26, 28 und 33 in eingeloggter Projektpartner-Session nachgetestet. Reproduziert: Telefon ohne Ländervorwahl, Land Anguilla und Einsatzorte Alle, DE sind sichtbar/persistiert; Browser-checkValidity() und reportValidity() liefern true, relevante Felder haben keine pattern-Regeln. Status/Reifegrad bleiben 59/100, weil der Nachtest bestehende offene Risiken bestätigt. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Zusammenarbeit-Findings C54, C55 und C66-C72 gegen die lokale Route geprüft. Reproduziert: Hero-CTA führt real auf Staging /experten-finden-lassen, Mobile-Menü öffnet nach Klick nicht, mobile Headline-/Step-Slider-Zustände bleiben problematisch und unterer E-Mail-Button ändert weder URL noch Hash. Status jetzt: 15 behoben, 32 teilweise behoben, 42 offen, 16 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 20 nicht eindeutig, 1 nicht getestet. Reifegrad auf 59/100 gesenkt. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Leistungen/Branchen-Findings C42-C53 gegen die lokale Route geprüft. Nach aktivem Scroll laden alle 26 Bilder mit HTTP 200; sichtbare Bildbeschreibungen aus C43 sind nicht reproduzierbar. Offen bleiben Bildwiederholungen, nicht navigierender Hero-CTA und Alt-Text-Tippfehler. Status jetzt: 16 behoben, 33 teilweise behoben, 39 offen, 16 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 21 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 60/100. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter fortgeschrieben: Referenzen/Stimmen-Findings C36-C41 gegen aktuelle Routen geprüft. /referenzen-stimmen rendert weiter nur Header/Footer; /referenzen leitet auf /unternehmen/referenzen; Haupt-CTA führt real auf absolute Staging-URL /experten-finden-lassen; zweiter Button ist type=button ohne Navigation. Reifegrad bleibt 60/100, Statusverteilung unverändert. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report weiter nachgetestet: Expertenformular/FriendlyCaptcha, grüner E-Mail-Button, anonymer Projektalert und Passwortänderung mit Browser-, Network- und Datenbank-Evidence ergänzt. Status konsolidiert ohne blockierte Finding-Zeile: 15 behoben, 33 teilweise behoben, 36 offen, 17 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 24 nicht eindeutig, 1 nicht getestet. Reifegrad bleibt 60/100, weil die neue Evidenz Risiken bestätigt statt Produktreife zu erhöhen. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 sync Dogfood-Reifegrad-Report fortgeschrieben: Sammelbewerbung, E-Mail-Änderung, Profiländerung, Login nach Mailänderung, Desktop-/Mobile-Navigation und 375/768/1280-Responsive-Routen mit Browser/Mailpit/API-Evidence nachgetestet. Tabellenstatus konsolidiert auf Reifegrad 60/100: 15 behoben, 33 teilweise behoben, 34 offen, 16 fachlich offen, 2 fachlich/rechtlich offen, 1 fachlich/security offen, 24 nicht eindeutig, 3 blockiert, 1 nicht getestet. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-05 ingest Dogfood-Reifegrad-Report initial angelegt: Jan-Kroeger-UAT-Findings gegen aktuellen develop nach Staging-DB-Sync lokal geprüft. 129 Findings einzeln klassifiziert; initialer Zwischenstand Reifegrad 58/100, UAT-Beta nicht release-ready. Evidenz umfasst Browser-Screenshots, Route-/Link-Audits, Mailpit-Nachweise für Bewerbung/Registrierung/Reset, Projektalert-DB-Nachweis und offene Shared Causes: Staging-/Legacy-Links, schwache Profilvalidierung, leere Referenzen-Seite, Legal-Consent-Themen, Config-Drift und DDEV-Router-Warnung. reports reports/2026-07-05-jan-kroeger-dogfood-reifegrad-report.html
2026-07-03 decide ADR-0056 accepted: Projekt-Alert nur für registrierte Projektpartner — Site-Owner-Scope-Änderung mitten in der Umsetzung von ADR-0055. Auth-Gating (Anonyme sehen Teaser mit Login-/Registrieren-CTAs statt Formular), Gast-Alerts Hard Cut (7.314 aktive Gast-Abos werden NICHT migriert, nur user-gebundene Alerts), Minimal-Gating statt Rückbau des bereits gebauten Anonym-Codes (Follow-up nach Go-Live), Token-Abbestellen bleibt One-Click. Kern von ADR-0055 (ein System, Modul B, Freitext + Vorschläge, Modul-A-Stilllegung, URL-Kanon) unverändert. PRD + Plan tragen Amendment-Boxen, CONTEXT.md-Glossar neu gefasst, ADR-0055 mit Update-Hinweis. adr adr/0056-projekt-alert-nur-fuer-registrierte.html
2026-07-02 ingest PRD: Projekt-Alert-Konsolidierung P2503-275 — 30 User Stories in 4 Persona-Clustern (Anonyme, Projektpartner:innen, Bestands-Abonnent:innen, Redaktion/Betrieb), 11 Implementation Decisions aus ADR-0055, Test-Strategie mit EINEM Seam (öffentliche HTTP-Oberfläche + Cron + Mail-Collector, User-Entscheidung), Out-of-Scope-Abgrenzung (ODER-Gruppen, Frequenz-Wahl, Bookmarks). Jira: nur Label ready-for-agent, Description bleibt Stakeholder-Finding. via to-prd. prds prds/2026-07-02-projekt-alert-konsolidierung-prd.html
2026-07-02 decide ADR-0055 accepted: Projekt-Alert-Konsolidierung — solcom_project_offer_alert wird das einzige Alert-System (beherrscht anonym + eingeloggt), solcom_projektpartner_alert („Suchagent") wird stillgelegt. Schlagwort-Eingabe: Freitext + kuratierte Vorschläge (neues Vocabulary alert_suggestion, Seed aus Neos-Technology-Liste); Anonym-Verwaltung via Token-Edit-Links; Migration aller 12.912 aktiven Neos-Alerts (User + Gast, ohne Re-Opt-in, Bool-Gruppen zu OR-Listen abgeflacht); URL-Kanon /projektportal/projektalert. CONTEXT.md-Glossar („Suchagent / Projekt-Alert") neu gefasst. Kontext: Stakeholder-Findings P2503-275, Neos-Altsystem-Analyse (Quelltext + DB lokal). adr adr/0055-projekt-alert-konsolidierung-auf-project-offer-alert.html
2026-07-02 ingest Implementation Plan: Projekt-Alert-Konsolidierung P2503-275 — sechs Arbeitspakete sequenziert bis Go-Live 08.07. (Formular & Versand härten, Token-Edit-Route, Neos-Migration mit Feld-Mapping-Tabelle, Frontend-Slice, Modul-A-Stilllegung, Skill-Vocab-Hygiene), Risiko-Tabelle inkl. Massen-Versand-Schutz (Dedup-Vorbefüllung beim Cut-over), Test-Matrix Kernel/Functional/Browser. Aus Grilling-Session zu P2503-275; spiegelt ADR-0055. plans plans/2026-07-02-001-feat-projekt-alert-konsolidierung.html
2026-07-02 sync Funktionscheck-Report fortgeschrieben: Befunde 1+2 im selben Branch behoben. Alert-Migration auf echte Quelle contenance_solcom_domain_model_projectalert umgebaut (neuer Source-Plugin, Process-Plugin neos_alert_nested_array für verschachtelte Serialisierungen — alter Pfad hätte 0 Skills migriert), PppAlert um Location remote + field_excluded_skills erweitert (update_9003, Matcher-Exclusion-Filter, detectCountry-Token-Fix), Drush-Autowiring des Aktivierungs-Commands per FQCN-Alias gefixt. E2E: 21 Alerts migriert (0 failed), --dry-run findet 52 Projektpartner. Commits 2480b896/9e708f7d/0e146c2a auf PR 169025. Offen: Befunde 3–5 + DSGVO-Scope. report reports/2026-07-02-neos-user-migration-funktionscheck.html
2026-07-02 sync Neos-User-Migration Funktionscheck erstellt: Dokumente-Migration kopierte 0 von 100.931 Dateien (leere relativepublicationpath-Spalte im echten Dump; Neos legt private Files SHA1-content-adressiert ab). Fix: SHA1-Pfad-Auflösung im Source-Plugin NeosProjektpartnerProfile mit Setting solcom_projektpartner.neos_resources_path, Repro-Kernel-Test (red→green bewiesen), Negativ-Test, Warning-Logging bei fehlgeschlagener Auflösung. E2E-Evidenz mit --limit=50: 156 Dokumente kopiert, SHA1-Stichproben matchen, Resolution-Rate 500/500. Fünf neue Folge-Befunde dokumentiert (Alert-Migration-Tabelle, Aktivierungs-Command, Rollback-Duplikate, field_languages-Datenqualität, Skills-Abdeckung); DSGVO-Scope-Entscheidung offen. report reports/2026-07-02-neos-user-migration-funktionscheck.html
2026-06-29 sync Wiki-Entity analytics-stack um expliziten dataLayer-Event-Katalog erweitert: Legacy-Events Pageview, Impression, productClick, addToCart, checkout, transaction, purchase, begin_checkout, view_item sowie Drupal-Ziel-Events project_view, project_apply_start, project_apply_success, b2b_form_submit_success, salesforce_form_submit_success, project_alert_signup_success, registration_success, login_success und project_search. Bausteine Push/Event/Parameter/Trigger/Tag, Beispiel-Payload fuer lead_submit_success und PII-Grenze fuer Analytics-Payloads bleiben dokumentiert. wiki wiki/analytics-stack.html
2026-06-29 sync Wiki-Entity analytics-stack als Terminbriefing fuer GTM, Usercentrics-Consent, dataLayer/Legacy-Events und Salesforce-Marketing-Cloud-Formulare synchronisiert: Drupal-Ist mit GTM-54B6BWQP, aktiver Usercentrics-App Google Tag Manager, deaktivierter GA4-App-Konfig und SDC byte_theme:salesforce-marketing-form dokumentiert; Legacy-Kontext GTM-ND5SFNH, UA-Measurement-Protocol, UTM-/Ads-Cookies und gclid/msclkid aus context/0009 als Terminfragen aufgenommen. Index-Card und Wiki-Inventory nachgezogen. wiki wiki/analytics-stack.html
2026-06-22 ingest Full-Matrix-QA Fortschrittsreport angelegt: zentrale Matrix fuer die Kunden-QA am 24.06.2026 mit Status-Dashboard, Full-Matrix-Ziel statt 10er-Stop, 18 initialen P0/P1/P2-Szenarien, Streak-Zaehler, bekannten Blockern aus den Reports vom 18./19./22.06, Fail-/Fix-Log, Regressionstest-Log, Benchmark-/Evidence-Manifest und offenen Human-Decisions. Alle Szenarien bleiben initial Pending, bis sie im aktuellen Lauf live neu verifiziert wurden. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Full-Matrix-QA Fortschrittsreport nach FM-P0-06 synchronisiert: Profil-/Konto-Flow mit Browser-Evidence, drei neu gefundene User-facing-Fails dokumentiert und gefixt, Regressionen fuer Profilcopy, Profil-Save-Status, Cancel-Hard-Delete und Account-Purge ergaenzt, private Datei-Access mit Owner-Allowed und anonymem 403 belegt. Dashboard steht bei 18 Cases, 12 Pending, 2 Pass, 4 Fixed, Streak 1; naechster Fokus ist FM-P0-07 Merkliste. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Full-Matrix-QA Fortschrittsreport nach FM-P0-07 synchronisiert: Merkliste mit anonymem localStorage, Login-Merge nach user.data, Apply-All-Webform, Remove-Flow und 375px-Mobile-Benchmark durchgetestet. Zwei neue User-facing-Fails wurden gefixt: entfernte Merkliste-Karte blieb sichtbar, und Mobile-Card-Actions erzeugten Horizontal-Overflow. Regressionen: ProjectOfferListingBehaviorAssetsTest 7 Tests / 39 Assertions, WatchlistControllerJsonApiTest 14 Tests / 102 Assertions. Dashboard steht bei 18 Cases, 11 Pending, 2 Pass, 5 Fixed, Streak 1; naechster Fokus ist FM-P0-08 Suchagent / Projekt-Alert. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Full-Matrix-QA Fortschrittsreport nach FM-P0-08 synchronisiert: Projektpartner-Suchagent und oeffentlicher Projekt-Alert mit Browser-, DB- und Regressionsevidence durchgetestet. Ein neuer User-facing-Fail wurde gefixt: die Confirm-Route aktivierte den Projekt-Alert, zeigte aber den Aktivierungstext wegen eines fehlerhaften Render-Arrays nicht an. Regressionen: ProjectOfferAlertSubscriptionTest 7 Tests / 124 Assertions und solcom_projektpartner_alert/tests 28 Tests / 315 Assertions. Dashboard steht bei 18 Cases, 10 Pending, 2 Pass, 6 Fixed, Streak 1; naechster Fokus ist FM-P0-09 Verfuegbarkeit. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Full-Matrix-QA Fortschrittsreport nach FM-P0-09 synchronisiert: Availability-Route /projektportal/verfuegbarkeit live gegen id, hash und Direktaufruf geprueft. Ergebnis: kein implementierter Route-/Token-/Import-Flow, daher HD-002 als Human-Decision-Blocker. Der dabei sichtbare globale 404-Fallback wurde user-facing gefixt: deutsche Copy, Button Zur Startseite, echte Heading-SDC mit H1 und Mobile 375px ohne Overflow. Regression: NormalizeCanvasComponentDefaultsTest 3 Tests / 22 Assertions. Dashboard steht bei 18 Cases, 9 Pending, 2 Pass, 6 Fixed, 1 Blocked, Streak 0; naechster Fokus ist FM-P0-10 Navigation/Footer. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Full-Matrix-QA Fortschrittsreport nach FM-P0-10 synchronisiert: Navigation/Footer mit Desktop-Disclosure, Mobile-Menue, Consent-Button und 21 sichtbaren internen Header-/Footer-Zielen geprueft. Gefixt wurden Footer-#-Platzhalter, Standorte/Kontakt-Links auf leere Canvas-Stubs, sechs sichtbare Main-Navigation-Stubs und ein Canvas-Heading-RuntimeError auf Legal-Seiten. Regressionen: MenuLinkUriUpdateTest 5 Tests / 64 Assertions, NormalizeCanvasComponentDefaultsTest 4 Tests / 29 Assertions. FM-P0-10 bleibt wegen Legal-Platzhaltercopy in /datenschutz und /terms-service als HD-005 blockiert. Dashboard steht bei 18 Cases, 8 Pending, 2 Pass, 6 Fixed, 2 Blocked, Streak 0; naechster Fokus ist FM-P1-01 Karriere-Funnel. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Full-Matrix-QA Fortschrittsreport nach FM-P1-01 synchronisiert: Karriere-Funnel mit Stellenliste, Standortfilter Berlin, Vacancy-Detail, JobPosting-JSON-LD, Apply-Einstieg und Mobile 375px live geprueft. Ein neuer User-facing-Fail wurde gefixt: die Stellenlisten-View ueberschrieb den Page-Title mit leerem Wert und renderte als Browser-Title nur | SOLCOM. Fix: solcom_vacancy_update_9004 + Config-Sync setzen Offene Stellen. Regression: MenuLinkUriUpdateTest 3 Tests / 27 Assertions. Dashboard steht bei 18 Cases, 7 Pending, 2 Pass, 7 Fixed, 2 Blocked, Streak 1; naechster Fokus ist FM-P1-02 Vacancy-Bewerbung. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport nach FM-P1-02 synchronisiert: Vacancy-Bewerbung mit Apply-Form, CV-Upload, Datenschutz-Consent, lokaler Danke-Seite, Webform-Submission sid=4, Queue-Item submission_id=4 und privater CV-Ablage live geprueft. Ein neuer User-facing-Fail wurde gefixt: der lange Vacancy-Titel verbreiterte die mobile Apply-Seite auf bodyScrollWidth=388 bei 375px. Fix: .vacancy-apply-page__title mit overflow-wrap:anywhere; Theme-Build und Cache-Rebuild ausgefuehrt. Regressionen: VacancyApplicationAssetsTest 1 Test / 3 Assertions, ApplicationQueueWorkerTest 3 Tests / 29 Assertions, VacancyApplicationFormLayoutTest 7 Tests / 66 Assertions. Dashboard steht bei 18 Cases, 6 Pending, 2 Pass, 8 Fixed, 2 Blocked, Streak 2; naechster Fokus ist FM-P1-03 Unternehmen-/Content-Routen. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport nach FM-P1-03 synchronisiert: sechs oeffentliche Unternehmen-/Content-Routen bei 1280px und 375px live geprueft (/fur-unternehmen, /leistungen-branchen, /zusammenarbeit, /unternehmen/referenzen, /uber-solcom, /karriere-bei-solcom). Ein neuer User-facing-Fail-Cluster wurde gefixt: Demo-/Placeholder-Content, Button label, SOLCOIM, PLATZHALTER fuer VIDEO, falscher test@test.de-Link, alter Joblist-Link und mobile CTA-/Accordion-Overflows. Regressionen: NormalizeCanvasComponentDefaultsTest 5 Tests / 51 Assertions, CanvasContentLayoutAssetsTest 3 Tests / 14 Assertions; Theme-Build, Post-Updates und Cache-Rebuild ausgefuehrt. Dashboard steht bei 18 Cases, 5 Pending, 2 Pass, 9 Fixed, 2 Blocked, Streak 1; naechster Fokus ist FM-P1-04 Kontakt / Newsletter. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport nach FM-P1-04 synchronisiert: Kontakt-/Newsletter-Routen live geprueft (/kontakt, /form/contact-form, /form/newsletter-signup, /kontakt/kontaktdaten). Gefixt wurden deutsche Webform-Titel/CTA/Confirmations, sichtbare H1s auf direkten Webform-Seiten, Newsletter-Happy-Path mit Submission sid=5 und englische Canvas-Default-Copy auf /kontakt. Kontakt-Submit bleibt als B-017/HD-006 blockiert, weil FriendlyCaptcha automatisierte Browser mit .HEADLESS_ERROR abweist. Regressionen: PublicWebformCopyUpdateTest 1 Test / 14 Assertions, NewsletterSignupSmokeTest 4 Tests / 5 Assertions, WebformPageTemplateTest 1 Test / 4 Assertions, NormalizeCanvasComponentDefaultsTest 6 Tests / 61 Assertions. Dashboard steht bei 18 Cases, 4 Pending, 2 Pass, 9 Fixed, 3 Blocked, Streak 0; naechster Fokus ist FM-P1-05 Standort / Map / Consent. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport nach FM-P1-05 synchronisiert: Standort-/Map-/Consent-Routen live geprueft (/kontakt/kontaktdaten, /solcom-gmbh-standorte, /standorte-strang-3). Gefixt wurden generischer Standort-Titel/H1, kaputte Mail-Obfuscation, blanke Map ohne API-Key-Fallback, fehlendes Nutzeraktions-Gating fuer die interaktive Karte und zwei leere Legacy-Standort-Aliases. Browser-Retest bestaetigt Standortdaten, mailto:info@solcom.de, Google-Maps-Fallback-Link, kein maps.googleapis.com-Auto-Load, keine Page-/Console-Errors und keinen horizontalen Overflow. Regressionen: StandortDisplayBlockTest 2 Tests / 27 Assertions, NormalizeCanvasComponentDefaultsTest 8 Tests / 76 Assertions. Dashboard steht bei 18 Cases, 3 Pending, 2 Pass, 10 Fixed, 3 Blocked, Streak 1; naechster Fokus ist FM-P1-06 Vendor-/SEO-Schnittstellen. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport nach FM-P1-06 synchronisiert: Vendor-/SEO-Schnittstellen live geprueft (/feeds/freelancermap.xml, /feeds/freelance.xml, /feeds/gulp.html, /asp/robots/gulplist.aspx, /asp/robots/detail.aspx, Projekt-Detail-SEO). Gefunden und gefixt wurde ein Cache-Fail auf Legacy-Detail-Redirects: Nach einem bekannten SF-ID-Redirect konnte eine unbekannte SF-ID wegen fehlendem url.query_args-Cache-Context faelschlich denselben 301 erhalten. Regression erst rot, dann gruen: GulpLegacyRedirectTest 4 Tests / 51 Assertions; volle Feed-Kernel-Suite gruen mit 30 Tests / 340 Assertions / 4 PHPUnit-Deprecations. HTTP-/Browser-Evidence bestaetigt XML-/HTML-Header, X-Robots-Tag, UTM-Parameter, Gulp-Redirect, bekannte SF-ID 301, unbekannte SF-ID 404, Canonical und JobPosting. Dashboard steht bei 18 Cases, 2 Pending, 2 Pass, 11 Fixed, 3 Blocked, Streak 2; naechster Fokus ist FM-P2-01 Card-/SDC-Visuals. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport nach FM-P2-01 synchronisiert: Card-/SDC-Visuals auf echten Canvas-Routen live geprueft (/fur-unternehmen, /leistungen-branchen, /zusammenarbeit, /unternehmen/referenzen, /karriere-bei-solcom) jeweils bei 1280x900, 768x1024 und 375x900. 15 Screenshots liegen im Evidence-Ordner. Browser-DOM-Pruefung bestaetigt H1s, Card-/Slider-/Accordion-/CTA-Inhalte, keine Placeholder-Flags (Button label, Lorem ipsum, test@test.de, PLATZHALTER fuer VIDEO, SOLCOIM), keine Page-/Console-Errors und keinen horizontalen Page-Overflow. Offscreen-Elemente auf /zusammenarbeit sind intern geclippte Slider-Slides und verbreitern die Seite nicht. Dashboard steht bei 18 Cases, 1 Pending, 3 Pass, 11 Fixed, 3 Blocked, Streak 3; naechster Fokus ist FM-P2-02 Accessibility Smoke. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-23 sync Full-Matrix-QA Fortschrittsreport final nach FM-P2-02 synchronisiert: Accessibility-Smoke auf Home, Newsletter, Kontakt, Projektliste und Vacancy-Bewerbung geprueft. Verfeinerter DOM-Smoke fand keine unbenannten Focusables/Controls, keine sichtbaren Bilder ohne Alt, keine aria-hidden-Focusable, keine relevanten Duplicate IDs und keinen horizontalen Overflow. Tastatur-Evidence bestaetigt Skip-Link/Header-Fokus, Mobile-Menue per Tab/Enter, Newsletter-Required-Fokus auf E-Mail-Adresse und lokalen Consent-Fallback mit role=dialog, aria-modal=true, Label Cookie-Einstellungen und Fokus auf Schliessen. Kein lokales axe-Paket wurde eingefuehrt; Editoria11y ist konfiguriert, aber kein separater Editoria11y-Report wurde fuer den anonymen Smoke erzeugt. Dashboard final: 18 Cases, 0 Pending, 4 Pass, 11 Fixed, 3 Blocked, Streak 4. Alle Matrix-Cases sind abgearbeitet; bewusst offen bleiben die Human-Decisions fuer Verfuegbarkeit, Legal-Copy und Kontakt-Submit/FriendlyCaptcha. reports reports/2026-06-22-full-matrix-qa-progress.html
2026-06-22 sync Project Offer Scale Dogfood Report um @Browser-Nachtest der Unternehmen-Navigationsziele erweitert: /experten-finden-lassen, /unternehmen/referenzen, /leistungen-branchen und /zusammenarbeit wurden auf Desktop 1280x900 und Mobile 390x844 dokumentiert. B-015 haelt den 479px breiten Mobile-CTA auf /leistungen-branchen im 390px Viewport fest; B-016 haelt fehlenden H1 und fehlenden sichtbaren Main-Workflow auf /zusammenarbeit fest. Screenshot-Evidence liegt unter docs/reports/evidence/2026-06-22-unternehmen-nav-targets/; Report-Matrix, Buglog, Edge Cases, Repro-Schritte, Ziel-Audit und Manifest wurden nachgezogen. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um @Browser-Nachtest oeffentlicher Top-Level-Ziele erweitert: /fur-unternehmen, /karriere-bei-solcom und /uber-solcom rendern auf Desktop/Mobile ohne 404, Console-Errors oder horizontalen Overflow. B-013 dokumentiert den fachfremden englischen H1/CTA auf /fur-unternehmen; B-014 dokumentiert fehlenden H1 und Mobile-Typo SOLCOIM auf /karriere-bei-solcom. Screenshot-Evidence liegt unter docs/reports/evidence/2026-06-22-public-top-level/. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um @Browser-Nachtest der Freelancer-Portalziele erweitert: /projektportal und /projektportal/login rendern auf Desktop/Mobile als Login-Gates ohne 404, Console-Errors oder horizontalen Overflow; /mein-projektpartnerprofil zeigt keinen sichtbaren Profil-/Login-Inhalt und ist als B-012/EC-011 ohne Fix dokumentiert. Screenshot-Evidence liegt unter docs/reports/evidence/2026-06-22-freelancer-portal-targets/. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um @Browser-Nachtest der sichtbaren Freelancer-Menueziele erweitert: /fortbildungen-mit-der-ibb und /page/63 rendern auf Desktop 1280x900 und Mobile 390x844 ohne 404, ohne Console-Errors und ohne horizontalen Overflow. /page/63 bleibt als URL-Semantik-Risiko dokumentiert; Screenshot-Evidence liegt unter docs/reports/evidence/2026-06-22-freelancer-nav-targets/. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um weiteren @Browser-Nachtest erweitert: /fuer-freiberufler wurde auf Desktop 1280x900 und Mobile 390x844 als Page not found | SOLCOM belegt und als B-011/EC-009 ohne Fix dokumentiert. Screenshot-Evidence liegt unter docs/reports/evidence/2026-06-22-freelancer-overview/; Matrix, Repro-Schritte, Ziel-Audit und Evidence-Manifest wurden nachgezogen. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um Report-Verifikation per @Browser erweitert: lokaler Static-Server-Check belegt solcom:status=blocked, BLOCKED HANDOFF, Stop-Regel, B-007 bis B-011, visuelle Abstands-/Touch-Target-Kriterien, Handoff-Sektionen, Evidence-Manifest mit 17 Zeilen und 17/17 geladene Screenshot-Galerie-Bilder. Die Verifikation ist als eigenes PNG unter docs/reports/evidence/2026-06-22-report-verification/ versionierbar eingebunden. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um Repro-Schritte fuer aktuelle No-Fix-Bugs erweitert: B-007 bis B-010 enthalten jetzt Viewport, konkrete Browser-Schritte, erwartetes Verhalten, beobachtetes Verhalten und Screenshot-Evidence. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um endliche risikobasierte Edge-Case-Matrix erweitert: EC-001 bis EC-008 dokumentieren stale Clean-URL, wirkungslosen Filter-Submit, 404-Detail-Link, Mobile-Sort-Clipping, Mobile-Drawer-Abstaende, Tagify-Suggestion-Risiko, Navigation-Staging-Risiko und Pagination-Zustandswechsel jeweils mit Screenshot-Evidence und Handoff-Status. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um Rollen-/Routen-/Controls-/State-Matrix erweitert: dokumentiert den belegten anonymen Projektangebots-Scope mit Projektliste, Projektdetail, Projekt-Alert und Freelancer-Navigation sowie explizite NOT COVERED-Handoff-Punkte fuer eingeloggte Portalrollen und weitere lokal erreichbare user-facing Routen. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um Evidence-Manifest erweitert: alle 14 versionierbar eingebundenen Screenshot-Artefakte sind mit Pfad, Pixelmass, Dateigroesse und SHA-256-Prefix dokumentiert, damit die Screen-Pflicht des Handoffs pruefbar bleibt. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report um Ziel-Audit erweitert: dokumentiert, welche aktiven Zielanforderungen durch Screenshot-/Browser-Evidence belegt sind und welche partiell oder blockiert bleiben. Whole-App-Inventur aller lokal erreichbaren Rollen/Routen sowie Fix-/Re-Run-Anforderung bleiben wegen aktueller Stop-Regel NO FIXES, JUST DOKUMENTIEREN als Handoff-Punkte markiert. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report auf blockierten @Browser-Nachtest aktualisiert: keine weiteren Fixes nach User-Stop, nur Dokumentation. Neu dokumentiert sind stale Clean-URL mit 1000 Treffer versus Query-Zustand mit 157 Treffer, wirkungsloser Filter-Submit und Enter-Submit, 404-Detailpfad aus stale QA-Link sowie Mobile-Sort-Label-Clipping. Screenshot-Evidence liegt unter /tmp/solcom-projectlist-test-20260622/, /tmp/solcom-nav-internal-20260622/ und /tmp/solcom-scale-dogfood-20260622/; Report-Galerien nutzen docs/reports/evidence/2026-06-22-projectlist/, docs/reports/evidence/2026-06-22-navigation/ und docs/reports/evidence/2026-06-22-detail-alert/. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 sync Project Offer Scale Dogfood Report aktualisiert: Hauptnavigation-Freelancer-Strang in die Inventur aufgenommen, gespeicherte externe Staging-URI des Projektpartnerportal-Menu-Links per Post-Update auf internal:/projektportal korrigiert, Regressionstest ergänzt und per @Browser auf Desktop 1280x900 sowie Mobile 390x844 verifiziert. Dokumentiert sind interne gespeicherte Ziel-URI, sichtbare lokale Freelancer-Links, keine externen Staging-Links und Screenshot-Evidence unter /tmp/solcom-nav-internal-20260622/. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-22 ingest Project Offer Scale Dogfood Report erstellt: lokale synthetische Produktionslast auf develop inventarisiert (1000 veröffentlichte Projektangebote, 843 QA-Angebote), Projektliste/Desktop+Mobile, Projektdetail-CTAs und Projekt-Alert als Userpfade geprüft. Dokumentiert: echter Mehr laden-Hit-Test-Bug durch visually-hidden-Pager plus Sticky-Ende gefixt, QA-Mingo-Seed-URLs bereinigt, Sticky-CTA-External-Link-Vertrag abgesichert, Tagify-Submit per Kernel-Test belegt. Evidence unter /tmp/solcom-scale-dogfood-20260622/, Regressionstests grün. reports reports/2026-06-22-project-offer-scale-dogfood.html
2026-06-19 sync Drupal-Skill-Library aus skills.sh-Gap-Analyse erweitert: 44 externe Drupal-Skills (skills.sh) content-level gegen den eigenen Bestand gedifft (9 Theme-Agenten + Opus-Synthese). Ergebnis 1 have / 7 partial / 1 gap → fold-into-existing dominant. 13 additive Fold-ins (Cacheability/Search-API-Processor/Migrate-Sync/File-Upload/OOP-Hooks in drupal-module-development; Authoring-Grammar + upgrade-instances in drupal-canvas; Config-Reconcile + search_api-Export in drupal-config-workflow; Cache-Audit-Bullets, Cache-Debug-Loop, Security-/Contrib-Update, ADR-0032-Migrate-Checks, OOP-Hook-Hunt, Hard-Won-Test-Traps und Staging-DB-Pull über die Reviewer-Agents + solcom-diagnose + drupal-ci-cd). 2 neue Skills: drupal-security (proaktiver Authoring-time-SoT, den der Diff-time-Agent drupal-security-sentinel zitiert) und solcom-canvas-best-practices (byte_theme-abgeleitetes Playbook). Alle 15 berührten Files auf Englisch normalisiert (Skill-Konvention), Trigger bleiben bilingual; skills.html-Inventar um beide neuen Skills ergänzt. agents agents/skills.html
2026-06-19 ingest PR-Abnahme-Paket erstellt: vier priorisierte PRs nach develop inventarisiert, PR 167920 priorisiert, Azure-Builds und Review-Gaps dokumentiert. Status blocked, weil die verpflichtende visuelle Evidence fuer PR 167920 nicht erzeugt werden konnte und der PR inzwischen mergeStatus=conflicts meldet: DDEV/Drush bootet, aber /projektportal antwortet lokal weder fuer curl noch fuer agent-browser innerhalb der Timeouts. Google/Geocoder/Consent-Risiken pro PR ausgewiesen. reports reports/2026-06-19-pr-acceptance-pack.html
2026-06-19 sync SOLCOM Brand-Kit als self-contained HTML-Referenzseite erstellt (Farben dominant/supporting/Gradients, Typografie live, Komponenten-Swatches, zwei Page-Mockups, 43-SDC-Inventar), abgeleitet aus der Staging-Elementeübersicht und den Theme-Tokens (theme.brand.css, main.css). Daraus den solcom-styleguide-Skill zum Dual-Mode-Skill erweitert: bestehender Review-Modus (Brand-Compliance-Korpus für solcom-brand-reviewer/solcom-figma-reviewer) bleibt, neuer Build-Modus (Surface-Modell, Layout-Primitive, Routing zu solcom-build-frontend/drupal-canvas, Worked Example „SOLCOM Dashboard“) plus neuer 43-SDC-Komponenten-Katalog unter references/. Codex-Mirror per Path-Rewrite gespiegelt; stale Werte (H1 59px, Secondary Light-Gray, Phantom-Card-SDCs) korrigiert. design design/solcom-brand-kit.html
2026-06-19 sync Projektportal Architektur-Audit erstellt: Code-Architektur-Achse (Deepening + Schwachstellen) ergänzend zu den fünf Paritäts-/Journey-Reports. 33 verifizierte Befunde aus 10 Audit-Dimensionen mit adversarialem Verify-Pass (real / nicht ADR-settled / Deletion-Test); finale Liste als Vereinigung zweier Audit-Läufe per Titel-Diff. Schwerpunkte: Security-/Datenschutz-Punkte (JSON-LD-XSS via JSON_UNESCAPED_SLASHES, Alert-Mail-Bombing ohne Flood-Schutz, Private-File-Owner uid=0, latentes IDOR, DSGVO-Suchagent-Retention beim Konto-Löschen), SF-Sync-Cluster (Hard-Delete-Reconciliation als stiller No-op + high_water-Inkompatibilität + fehlendes ORDER BY), config/install↔config/sync-Divergenz (maskiert Permission-Lücke in Kernel-Tests), 5 ungetestete kritische Seams, 7 Deepening-Opportunities, 5 Idiom-Verstöße. 8 Verdachtsfälle im Verify verworfen. report reports/2026-06-19-projektportal-architektur-audit.html
2026-06-19 sync Projektportal-Formular-Paritätsreport erstellt: Webform-Referenz aus form.css und aktiven Webforms gegen Projektportal-Formulare gematcht. Dokumentiert Desktop-/Mobile-Screenshots für Webform-Beispiel, Vacancy-Bewerbung, Projektbewerbung, Registrierung, Projekt-Alert Canvas/Direct, Suchagent, Profilbearbeitung und Konto-Einstellungen. Findings: Projektbewerbung hat doppelte H1, Projekt-Alert/Suchagent sind nur token-paritätisch ohne webform_flexbox-Rows, Canvas-/Direct-Alert brechen bei Breite/H1 auseinander, Profil-Upload nutzt Entity-Tabelle statt Webform-Upload, Konto-Einstellungen fehlen Webform-Sections. report reports/2026-06-19-projektportal-form-webform-paritaet.html
2026-06-19 sync Projektportal-Neos-Paritätsreport erstellt: Zielbild für spätere vollständige Parität, ausgehende Neos-Verträge, aktueller Drupal-Iststand, Ersatzverträge, P0/P1/P2-Testzielbild und konkrete Prüfschritte. Dokumentiert zusätzlich Screenshot-Matrix für Formularvergleiche: ProPal-Registrierung als Fullpage und annotierter Screenshot erfasst; https://www.solcom.de/de/projektportal/registrieren blockiert Agent-Browser und integrierten Browser aktuell mit Cloudflare-Human-Check. Auto-Connect fand keine eingeloggte User-Chrome-Session für solcom.de; echte Screenshots brauchen geloeste Challenge, verbundene Chrome-Session oder Cookie-State. report reports/2026-06-19-projektportal-neos-paritaet-zielbild-tests.html
2026-06-18 sync Projektportal Code-Match-Report erstellt: korrigiert die zu grobe GAP-Liste aus früheren Audit-Ständen anhand aktuellem Code, aktiver Config, DDEV-Routen, SQL, Mailpit, agent-browser-Smoke und drei read-only Subagent-Strängen. Ergebnis: Projekt-Alert, Suchagent, Merkliste, Registrierung, Login, Profil, E-Mail-Wechsel, Account-Löschung und Projektbewerbung sind vorhanden. Echte Rest-GAPs: Availability-Hash-Link-Journey, PPP-ID-Vergabe für neue Selbstregistrierer, Bewerber-E-Mail-Bestätigung, externe Mailingwork-/Magazin-Anbindung und Suchagent-Mailtemplate-Link-Drift. report reports/2026-06-18-projektportal-code-match-rest-gap.html
2026-06-18 ingest Projektportal User-Journey-Report erstellt: Live-Durchlauf auf DDEV mit agent-browser, Screenshots/Videos, Mailpit und Drush/SQL-Belegen. Dokumentiert Abnahme-Prüfschritte für Registrierung, Login, Passwort-Reset, Profil, Konto-Einstellungen, Merkliste, Projektbewerbung, Suchagent/Projekt-Alert und Verfügbarkeit. Ergebnis: Kern-Journeys Registrierung/Login/Profil/Suchagent/Merkliste/Passwort-Reset bestanden; Projektbewerbung bis Upload belegt, Submit offen; Verfügbarkeitsroute fehlt und 404-Seite rendert mit SDC-Enum-Fehler. Enthält aktualisierte GAP-Matrix gegen das Legacy-Neos-Projektportal. report reports/2026-06-18-projektportal-user-journeys-pruefschritte-gap.html
2026-06-17 decide ADR-0054: Salesforce-Marketing-Cloud-Formulare als Canvas-SDC byte_theme:salesforce-marketing-form mit einem ungefilterten embed_code-Prop (pattern: '(.|\r?\n)*'string_textarea, kein filter_html), |raw-Render auf der server-gerenderten Canvas-Seite. Das konstante Host-Loader-Script wird in RenderCallbacks::preRenderComponent aus dem Snippet gestrippt und als dedupliziertes Header-Library byte_theme/salesforce-forms-host einmal pro Seite geladen; Lightning-Out-Script + <fragment-…> bleiben inline (onload-Handshake intakt). Consent CMP-agnostisch via Domain-Blocking auf solcom.my.site.com — Aktivierung wartet auf Usercentrics (F-300), „dormant by design". 3 Kernel-Tests grün + realer Render + Canvas-Tree-Preview verifiziert. adr adr/0054-salesforce-marketing-form-canvas-embed.html
2026-06-17 decide ADR-0053 Nachtrag: gebrandete Login-Landingpage unter /projektportal/login als canvas_page mit eingebettetem Core-Login-Block (block.user_login_block) zwischen redaktionell pflegbarem Inhalt — verfeinert Entscheidung 1 (keine zweite Auth-Route, nur ein zweiter Einstieg; /user/login bleibt nackt für Redakteure). Anonymer „Anmelden"-Menü-Link auf die Branded-Seite umgebogen (ProjektpartnerLoginLogoutMenuLink + hook_menu_links_discovered_alter). Dabei Produktiv-Bug behoben: Post-Login-Redirect las getValue('uid') statt get('uid') → Redirect feuerte nie; plus ?destination-Override des Login-Blocks neutralisiert. Browser-verifiziert + Functional-Tests grün. adr adr/0053-shared-login-clean-url-portal-integration.html
2026-06-17 ingest Parity-Audit Projektpartnerportal (Legacy-Neos → Drupal, Branch feature/p2503-226-projektpartnerportal): read-only Multi-Agent-Audit (10 Journey-Auditoren + Completeness-Critic, 11 Agenten, ~1,16 M Tokens) gegen die Soll-Snapshots 0009 + 0010. 143 Features klassifiziert (51 umgesetzt, 50 fehlen, 22 abweichend, 16 teilweise, 4 unklar). Gap-Matrix je Journey + Querschnitts-/Risiko-Findings des Critics (RMS-Nummer-Vergabe bei Neuregistrierung fehlt = höchstes Go-Live-Risiko, interne Recruiting-Mail an bewerbung@ mit Anhängen, Account-E-Mail-Wechsel-Double-Opt-In, Verfügbarkeitsmeldung als ganze Journey offen, Session-Härtung, CSRF auf Raw-Controller-Routen). Kein Code geändert. Treibt den Rest-Backlog bis Go-Live 08.07.2026. report reports/2026-06-17-projektportal-parity-audit.html
2026-06-17 ingest Projektportal-Formular-Mockups aus Legacy-Neos rekonstruiert: 10 Eingabeformulare (Login, dreistufige Registrierung, Passwort-vergessen/-zurücksetzen, Profil-Pflege, Zugangsdaten ändern, Projekt-Bewerbung, Projekt-Alert/Suchagent inkl. UND/ODER-Schlagwortlogik und Gebiets-Ausschluss, Suchagent-Abmeldung, Verfügbarkeitsmeldung) als originalgetreue, nicht-interaktive Mockups mit echten Feldern, Pflichtangaben, Validierungshinweisen und Abschnitts-Gruppierung. Plus zwei Token-Status-Seiten (Konto-Aktivierung, E-Mail-Bestätigung), die keine Eingabeformulare sind. Zentrale Erkenntnis: Registrierung, Projekt-Bewerbung und Profil teilen identische Feld-Cluster — Kandidat für wiederverwendbare Field Groups im Drupal-Nachbau. Quelle: Fluid-Templates aus Contenance.Solcom; ergänzt das Flow-Inventar 0009 um die UI-Ebene. context context/0010-neos-projektportal-formular-mockups.html
2026-06-17 decide ADR-0053: Geteilter Core-Login (/user/login, gin_login deinstalliert) statt gebrandeter Sonder-Login; ID-lose Clean-URLs unter /projektportal/* (Profil, Suchagent, Merkliste); Rollen-Trennung zur Admin-Shell via Verschieben der vier verwaltungsnahen Rechte von authenticated auf content_editor/content_manager; Bewerbungs-Prefill aus der profile-Entity (vorher stiller Bug nach ADR-0052). Datenmodell aus ADR-0052 unverändert. Browser-verifiziert als Testpartner (kein Admin-Chrome, /admin → 403, Titel/URL ohne ID). adr adr/0053-shared-login-clean-url-portal-integration.html
2026-06-17 ingest Legacy-Neos-Projektportal komplett inventarisiert: 10 end-to-end User-Journeys, ein Authentifizierungs-/Zugriffs-Modell (Auth-Zustände, vier Auth-Bereiche, Session-Lebenszyklus, Security-Findings inkl. drei hartkodierter Secrets), ein Feld-Datenmodell (6 Entities, 96 Felder mit Pflegbar/System-Markierung), 256 atomare Flows über 11 Domänen und 82 Datenfluss-Kanten, extrahiert aus Contenance.Solcom (Tarball-Stand 2026-06-10) als Referenz für den Drupal-Nachbau. Zwei Multi-Agent-Workflows (11 Flow-Reader + Completeness-Critic; 8 Datenfluss-Reader). Critic fand 13 Flows, die kein Reader erfasste, plus einen Phantom-Endpoint (ApiController::removeTempFile — Route ohne Action). context context/0009-neos-projektportal-flow-inventory.html
2026-06-16 decide P2503-238 Review persistiert: Standards clean und Spec clean für die persistente Projekt-Merkliste. Der Review bestätigt backend-persistente Projektpartner-Merkliste, anonyme localStorage-Variante, Login-Merge auch auf der leeren Merkliste-Seite, rollen-/CSRF-begrenzte JSON-Mutationen und robuste Boundary-Validierung. reports reports/2026-06-16-feature-p2503-226-projektpartnerportal-p2503-238-review.html
2026-06-16 decide P2503-237 Review persistiert: Standards clean und Spec clean für den finalen Projektpartner-Suchagent-Diff gegen 1e92bf0. Der Review bestätigt Modul-Aktivierung, Rollenpermission, Alert-Mail- und Migrationsconfig, Drupal-11-Constraint-Attribute sowie direkte Kernel-Coverage für Mail-Platzhalter, Fallback und HTML-Escaping. Restkontext: echter Neos-Dump noch nicht importiert. reports reports/2026-06-16-feature-p2503-226-projektpartnerportal-p2503-237-review.html
2026-06-16 sync Standards cleanup: Jira automation docs now draft stakeholder comments for user approval, use acli jira workitem comment add, and keep the P2503-226 story hub free of restricted organisation wording. agents/stories .agents/skills/auto-review-fix/SKILL.md · .agents/skills/jira-via-acli/SKILL.md · stories/p2503-226.html · index.html
2026-06-15 sync index.html Strand-Zähler + Status-Dashboard synchronisiert: alle drei Zähler-Stellen (Nav-Pill · Section-Header · Card/Row-Count) pro Strand auf die echte Datei-Zahl gebracht. ADR 47→49 (5 tote Phantom-Rows 0040–0043/0045 entfernt, 6 Kollisions-Files als Rows ergänzt + Nr-Dublette-Flag), Plans 16→17 (2 tote Orphan-Cards raus, 1 fehlende rein), PRDs 16→20 (4 fehlende Cards), Stories 55→56 (8 fehlende Files als „Nachgetragen"-Gruppe), Wiki 6→9 / Reports 11→14 (fehlende Cards aufgefüllt). Dashboard: Tage-bis-Go-Live 39→23 (Go-Live 08.07.2026), Jira-Snapshot P2503-Stories 61: 27 Fertig · 6 Review · 2 In Arbeit · 16 Zu erledigen · 10 Idee, Stand 2026-06-15; Effort-Modell (74 %) als Planungs-Baseline belassen. Galerie vollständig inkl. Infra-Files (User-Entscheidung). agent-browser-verifiziert (DOM-Counts + Screenshots). Folge-Cleanup: ADR-Nummern-Kollision (2×0027, 3×0033, 2×0048) + tote Cross-Refs 0030/0037→0045 renummerieren (Site-Owner). index index.html
2026-06-15 sync P2503-226 iteriert: PRD auf to-prd-Skill-Format vereinheitlicht (doc-owner/target-release/related-plans) + Persona-Cluster-Description nach Jira publiziert (4 Cluster); Plan um Jira-Ticket-Zuordnung + Slice 4b „Bestandsnutzer-Aktivierung" (password_policy + Willkommens-Mail) erweitert; index.html Card-Layout repariert (verschachtelte Anchors → Stretched-Link-Pattern, 72 Karten). prds/plans prds/…-prd.html · plans/…-plan.html · index.html
2026-06-15 ingest Implementation Plan: Projektpartnerportal Self-Service — 14 AFK-Tracer-Bullet-Slices mit Dependency-Reihenfolge + QA-Plan (21 AKs). Neu ggü. erstem Wurf: Salesforce-Sync-per-Mail (Profil-Diff), Frontend-Test-Harness (FunctionalJavascript/Chromedriver), Merkliste-Upgrade (bestehende localStorage-Lösung → backend-persistent). via solcom-to-plan. plans plans/2026-06-15-001-feat-projektpartnerportal-self-service.html
2026-06-15 ingest Grilling-Output P2503-226 Projektpartnerportal Self-Service: PRD + Story-Hub erstellt. Scope (Suchagent+Bookmarks rein, Verfügbarkeits-Flow raus), Datenmodell, Wizard, Migration (SqlBase) festgehalten; QA-Plan mit 19 testbaren Click-Pfaden (ralph-loop-fähig). CONTEXT.md um Projektpartner:in / projektpartner-Profil / Suchagent erweitert. prd/stories prds/2026-06-15-projektpartnerportal-self-service-prd.html · stories/p2503-226.html
2026-06-15 decide Projektpartner-Profil-Datenmodell: drupal/profile (Typ projektpartner) statt User-Base-Fields. User = Login-Anker (field_ppp_id), Profil = single source of truth. D11-Kompatibilität empirisch bestätigt (Profile 1.14.0 + Entity 1.6.0). customer-lens-reviewed vor Lock. Grilling P2503-226. adr adr/0052-projektpartner-profil-datenmodell.html
2026-06-10 decide ADR-0051 — Niederlassungs-Footer für Vacancy-Detailseiten (Figma-Frame 62975-23008). Fünf Sections unterhalb der Gehaltsspanne. Alle redaktionellen Sections (1, 2, 3, 5) als schlichte Felder am vacancy_office-Term (Section 2: bis zu 6 feste Bild-Text-Card-Feld-Sets, nur befüllte rendern), mit field_group gegliedert; Section 4 dynamisch als contextual Views-Block über field_recruiting_category. Bewusst ohne neue Moduleparagraphs und block_content verworfen zugunsten reiner Term-Felder (User-Entscheidung). Render via Erweiterung von node--vacancy--full.html.twig (Canvas ist node-only, verifiziert; alle SDCs existieren) mit explizitem Office-Term-Cache-Tag. Follow-up zu ADR-0014, customer-lens GO-WITH-CONCERN. adr adr/0051-vacancy-office-footer-sections.html
2026-05-30 sync docs/index.html — Gesamtfortschritt 63 % → 74 % (120/162 pts, F-440 Newsroom out-of-scope). Updates: F-90 ~75%, F-110 ~75%, F-120 100%, F-130 ~50%, F-150 ~50%, F-170 ~90%, F-180 ~50%, F-320 ~25%, F-140 100%. Verbleibendes Effort: ~42 pts. index index.html
2026-05-30 sync Personio Applications-Write-Contract live korrigiert und per Queue-Probe verifiziert: direkter Recruiting-Bearer + X-Company-ID, Dokument-Upload → JSON-Application-POST; drush queue:run solcom_personio_application_queue akzeptiert Testbewerbung mit 2xx und triggert GDPR-Purge. Response-ID ist optional; API-Read-back nicht verfügbar (v2 404, v1 GET 405). ADR-0050 und Story-Hub F-100 synchronisiert. adr/stories adr/0050-vacancy-application-direct-personio-api-post.html · stories/F-100-bewerber-flow.html
2026-05-30 sync docs/index.html — Gesamtfortschritt aktualisiert: 50 % → 63 % (104/166 pts). F-30 (XL, Erweiterte Inhaltselemente) auf ~90 %. F-50 (L, Content Types) auf ~75 %. F-390 (L, LEAD XPERIENCE) auf 100 %. Verbleibendes Effort: ~62 pts. index index.html
2026-05-30 qa-pass solcom-lfg Step-3 Dogfood: Bewerber-Flow Pfad A (P2503-90, PR #165066) — VERDICT PASS. Frontend-Journey (Apply/Thank-you/Access-Gating) funktional + real-Chrome verifiziert: apply 200 mit Webform ×14 Feldern, thank-you 200, non-vacancy + anon-DLQ 403, console-errors 0. Residual: Pixel-Screenshot (agent-browser-Tooling) + Live-Personio-POST (Credentials) durabel notiert, kein Blocker. reports reports/2026-05-30-mp-P2503-90-pfad-a-dogfood.html
2026-05-30 sync docs/index.html — Gesamtfortschritt aktualisiert: 47 % → 50 % (83/166 pts). F-100 (P2503-90 Bewerber-Flow, M) auf 100 %. F-20 (P2503-82 Theme, L) auf ~95 %. Jira-Snapshot: 13 Fertig · 2 In Arbeit · 8 Zu erledigen · 17 Idee. index index.html
2026-05-30 review solcom-lfg Step-4 Review: Bewerber-Flow Pfad A (P2503-90, PR #165066) — VERDICT CLEAN, keine Blockers; Security + State-Machine (S-5) sound, Kernel 24/183 OK, phpstan 0. 1 Advisory gefixt (cache-dep), 3 Worklog. Loest die C+-FAIL-Review (2026-05-28) ab. reports reports/2026-05-30-mp-P2503-90-pfad-a-review.html
2026-05-30 implement Build Bewerber-Flow Pfad A (P2503-90 / F-100) — Slices 184/186/187/188 + Simplify-Refactor gebaut & verifiziert (Kernel 24/183 OK, phpcs clean, phpstan level-6 0 Errors). Kill-Liste (Webhook/MailBuilder) exekutiert, Deep Modules PersonioApplicationClient/ApplicationPurger/DlqNotifier neu. PR #165066develop review-ready (Merge bleibt menschlich). stories stories/F-100-bewerber-flow.html
2026-05-29 ingest Implementation Plan: Bewerber-Flow Pfad A (F-100 / P2503-90) — vier AFK-Slices gemappt auf P2503-184/186/187/188, Code-Disposition-Kill-Liste, State+Retry-Mechanik (fix S-5/S-6/S-7), QA-Plan (ADR-0037). Supersedes den C+-Plan 2026-05-25-002-feat-vacancy-application-form.html. Spiegelt ADR-0050. plans plans/2026-05-29-001-feat-vacancy-application-personio-api-post.html
2026-05-29 ingest PRD: Bewerber-Flow — Drupal-native Bewerbung mit direktem Personio-API-POST (Pfad A). Fokussierter Apply-Flow-Slice zu P2503-90/F-100; Deep Modules PersonioApplicationClient + ApplicationPurger, Refactor-mit-Kill-Liste der C+-Implementierung, AK-15-Test-Scope. Spiegelt ADR-0050. prds prds/2026-05-29-vacancy-application-personio-api-post-prd.html
2026-05-29 decide Policy: KI merged nicht autonom — die autonome Pipeline endet am review-ready MR, der Merge bleibt menschlich. auto-review-fix auf Default-no-merge + opt-in --merge umgestellt; solcom-lfg Step 5/7 + Goal-Done auf MR-Endpoint; ADR-0049 amendet die ursprüngliche „Fix+CI+Merge"-Formulierung. Rationale: kein KI-Code nach develop ohne menschlichen Merge-Blick (Shared-Repo, Go-Live). Memory feedback_ki_merged_nicht_bis_mr. adr adr/0049-solcom-lfg-in-session-orchestrator.html
2026-05-29 sync Skill solcom-dogfood angelegt (Branch-weite Frontend-QA + Auto-Fix, adaptiert von EveryInc-ce-dogfood-beta: diff vs origin/develop, 3-Breakpoint+Figma-Verify, HTML-Report, pending-approvals/-Eskalation). solcom-lfg Step 3 von raw agent-browser auf solcom-dogfood umgestellt. implement mit vier ce-work-Mechaniken angereichert (Test-Szenario-Vollständigkeit, System-Wide-Test-Check, „don't reimplement"-Pre-Check, Simplify-Pass) — Drupal-adaptiert, sequenzielle Choreographie unangetastet. agents agents/skills.html
2026-05-30 ingest PRD: RSM-Fallback Projektangebote — Salesforce-Übergangslösung für Go-Live. Scope: 3 Module (solcom_rsm_import, Bewerbungs-Webform, solcom_user/field_ppp_id). 21 User Stories, Feldmapping RSM→project_offer, Email-Format (Power App), Dual-Apply, State Flag. Synthetisiert aus solcom-grill-Session 2026-05-30. Status: ready-for-agent. prds prds/2026-05-30-rsm-fallback-projektangebote-prd.html
2026-05-30 decide ADR-0048: RSM-Fallback-Architektur für Projektangebote — Salesforce-Übergangslösung für Go-Live (2–3 Monate). Entschieden: State Flag solcom_project_offer.rsm_fallback_enabled steuert Datenquelle (RSM-XML via SFTP statt SF-API) und Bewerbungsweg (Email-Webform + Minggo-Link parallel). lfdNr als primärer Migrations-Key; field_sf_id für späteren SF-Übergang. field_ppp_id auf User-Entity. UUID für anonyme Bewerber. 3 Story-Hubs angelegt: RSM XML Import, Bewerbungs-Webform, PPP-ID Feld. adr adr/0048-rsm-fallback-architecture.html
2026-05-30 sync docs/index.html — Gesamtfortschritt aktualisiert: 26 % → 47 % (78/166 pts). Stand 2026-05-30, Tage bis Go-Live 39. 5 Stories neu auf 100 % (F-40 Navigation, F-280 Personio XML, F-290 Salesforce Sync, F-340 ASP Feeds, F-360 Randstad). 3 Stories auf ~50 % (F-20 Theme, F-100 Bewerber-Flow, F-170 Personen CT). Jira-Snapshot: 12 Fertig · 3 In Arbeit · 5 Zu erledigen · 17 Idee. index index.html
2026-05-29 ingest PRD: Joblisting — Figma-Parity der Stellenanzeigen-Liste + Filter (P2503-195). Synthese aus der solcom-grill-Session: visueller Reskin der vacancies_listing-Seite gegen Figma 62309-47214 (Card) + 62309-47236 (Filter). 24 User-Stories, Implementation-/Testing-Decisions, Out-of-Scope. Korrigiert das ältere Vacancy-Integration-PRD (Filter 3 statt 5, Single-Select-Auto-Submit statt Multi-Select-Pills). Jira-Label ready-for-agent gesetzt. Story-Hub trägt AKs + QA-Plan. prds prds/2026-05-29-joblisting-figma-parity-prd.html
2026-05-29 ingest Agents-Doc solcom-lfg Ablauf-Seite angelegt (SVG-Flow-Diagramm der 7-Step-Pipeline: Decompose → Build → Dogfood → Review → Fix·CI·Merge → Learn → DONE). Visualisiert die ADR-0049-Entscheidung; Skill .claude/skills/solcom-lfg/. agents agents/solcom-lfg.html
2026-05-29 supersede ADR-0047 (Vacancy-Application Email-Inbox-Bridge, Pfad C+) superseded. Personio hat SOLCOM den Multiposting-Partner-Scope gewährt (P2503-191) → der in 0047 gegatete Pfad A (direkter API-POST) ist erreichbar; die Email-Inbox-Bridge inkl. Webhook-ACK-Layer ist obsolet. adr adr/0047-vacancy-application-email-inbox-bridge.html
2026-05-29 decide ADR-0050 (Vacancy-Application Submission via direktem Personio-API-POST, Pfad A) accepted, supersedes ADR-0047. Re-Grill P2503-90: async Core-Queue + PersonioApplicationClient, DelayedRequeueException-Backoff (Core-verifiziert), skalare Webform-Status-Elemente statt _meta-Array (fix S-6), Idempotency-Key aus recomputetem tracking_hash, status-differenzierte Retries (4xx → sofort DLQ), webform_views+VBO DLQ-UI (fix S-7), GDPR-delete() bei 2xx (fix S-12). customer-lens GO-WITH-CONCERN. adr adr/0050-vacancy-application-direct-personio-api-post.html
2026-05-29 decide ADR-0049 (/solcom-lfg realisiert die autonome Pipeline als in-session Skill-Orchestrator) accepted. Amendet ADR-0048: adScaile-Supersession von ralph.sh wird im Geist realisiert — als in-session-Choreograph über das Implement-Triple (solcom-to-issuesimplementagent-browser-Dogfood → solcom-reviewauto-review-fix → Learn), NICHT als JS-Workflow-Runtime. Kein Human-Gate. ralph.sh bleibt detached Mass-Loop (ADR-0037). adr adr/0049-solcom-lfg-in-session-orchestrator.html
2026-05-29 decide ADR-0048 (adScaile-Workflow ersetzt pipeline-crank und ralph-single-story) accepted. Autonome Plan→Build→Review→Merge-Choreographie als adScaile-Pipeline geführt; amendet durch ADR-0049 (in-session Skill-Orchestrator statt JS-Workflow-Runtime). adr adr/0048-adscaile-workflow-supersedes-crank-and-ralph.html
2026-05-28 decide solcom-review mp/P2503-90develop persistiert (SOLCOM Vacancy Application, Drupal-native Bewerber-Flow). Standards = FAIL (4 PHP-Fatals deterministisch gefixt: 3× missing-import + readonly-property-conflict; danach 4/17 Test-Failures wegen webform-_meta-Serialization-Bug, Re-Queue-Backoff strukturell nicht implementiert, DLQ-CSRF-Lücke). Spec = FAIL (3 AKs hart fail, 7 partial, 5 pass, 1 n/a; ACK-Flow scheitert an _meta-Persistenz). Canvas = skipped (kein Canvas-Touch). Fixes: imports + readonly-rename committed-ready; S-5/S-6/S-7 als BLOCKING outstanding. reports reports/2026-05-28-001-P2503-90-vacancy-application-review.html
2026-05-29 ingest P2503-195 — Story-Hub Joblisting via solcom-grill refined. Figma-Parity-Refinement der bestehenden vacancies_listing-Seite gegen zwei Frames (Card 62309-47214, Filter 62309-47236). 6 AKs + QA-Plan. Kern-Deltas: einspaltige horizontale Card statt 3-Spalten-Grid; Card-Meta auf 📅„ab sofort" (statisches Label, kein Personio-Feld — vgl. ADR-0035) + Ort reduziert; 2 CTAs („Details ansehen" + „Sofort bewerben" extern bis F-100/ADR-0047); Filter 5→3 + Auto-Submit + Result-Counter. Strategie: Canvas-Template-Rekomposition + neue card-frame-Variante, BEF bleibt (Reskin). Kein ADR (nicht hart-reversibel). MAPPING-Lücke für Joblisting bleibt offen (Folgeschritt). stories stories/P2503-195-joblisting.html
2026-05-25 decide P2503-90 — ADR-0047 (Vacancy-Application Submission via Personio-Inbox-Bridge mit Webhook-ACK / Pfad C+) accepted. Architektur-Lock für F-100-Bewerber-Flow: Drupal-Webform → Drupal Core Queue → SMTP an Personio-Inbox → Webhook application.created als deterministischer ACK → Conditional-Retention. Pfad A (direkter HTTP-POST) rejected wegen Multiposting-Partner-Scope-Gate (17 Live-Probes belegen HTTP 401), bleibt als Future-Refactor-Option an Sub-Task P2503-191. Pfad B (Hosted-Page-Redirect) als Notfall-Fallback via Engineering-only Drush-Switch. customer-lens-reviewer-Gate: APPROVE-WITH-CAVEATS, drei Caveats vor Lock adressiert (field_apply_url-Escape-Hatch, Pfad-B-Schalter, Figma-Frame-Lücke). adr adr/0047-vacancy-application-email-inbox-bridge.html
2026-05-25 ingest Implementation Plan: Vacancy-Application-Form (F-100 / P2503-90) — 7 vertikale Slices als Jira-Sub-Tasks P2503-184, P2503-186, P2503-187, P2503-188, P2503-189, P2503-190, P2503-191 (4 AFK + 3 HITL). Dependency: #1 → (#2 ∩ #3) → #4; HITL #5/#6/#7 parallel. Sub-Task-Descriptions in Stakeholder-Sprache (User Story + bulletList-Akzeptanzkriterien). Duplikat P2503-185 umgelabelt, ohne Delete-Permission als orphan offen. plans plans/2026-05-25-002-feat-vacancy-application-form.html
2026-05-25 ingest PRD: Vacancy-Application-Form (F-100 / P2503-90) — Drupal-natives Bewerbungsformular mit Personio-Inbox-Bridge. Synthese aus Grilling-Session + 17-Probe-Spike: Architektur auf Pfad C+ (Email-Inbox-Import + Webhook-ACK) fixiert, drei Deep Modules extrahiert (PersonioApiClient, PersonioMailBuilder, PersonioWebhookSignatureVerifier), Full-Suite Test-Strategy, 21 User-Stories über drei Personas (Karriere-Interessent:in, HR-Stakeholder:in, Redakteur:in/PO), 10 geplante Sub-Tasks P2503-90.1...10. ADR-0047 + Implementation-Plan folgen. prds prds/2026-05-25-vacancy-application-form-prd.html
2026-05-25 ingest Implementation Plan: Personen / Team Content-Type (F-170 / P2503-97) — 5 vertikale AFK-Slices als Jira-Sub-Tasks P2503-179, P2503-180, P2503-181, P2503-182, P2503-183. Sequenz 1a → 1b → 2 → (3 ∥ 4). Sub-Task-Descriptions in Stakeholder-Sprache (Default-1-US-+-AK-Liste-Variante). plans plans/2026-05-25-001-feat-personen-team-content-type.html
2026-05-25 ingest PRD: Personen / Team Content-Type — node.person + card-person SDC + CardPerson Canvas-Code-Component (P2503-97). Synthese aus Grilling 2026-05-25 und ADR-0046: 5 Module (Content-Type + View-Display + SDC + Canvas-Component + config_pages-Default-Recruiter), 17 User-Stories, vier Test-Scopes (Kernel-SDC, JSX-Component, Functional-Browser, Config-Import-Kernel). Decision-Authority delegiert an ADR-0046; PRD trägt fachliche Quelle, Story-Hub spiegelt QA-Plan. prds prds/2026-05-25-personen-team-content-type-prd.html
2026-05-25 decide P2503-97 — ADR-0046 (node.person Content-Type + card-person SDC als 4. Card-Sibling, prop-driven) accepted. Generischer Personen-Content-Type mit View-Mode card_quote, Canvas-Code-Component CardPerson.jsx als Editor-Platzierungs-Anker, simpler Default-Recruiter-Fallback via config_pages.career_settings.field_default_recruiter für MVP. Granulare Vacancy↔Person-Verknüpfung (Personio-Mapping per recruiter_id) deferred zu Folge-Story (ADR-0026-Verhandlung). Refinement via Skill solcom-grill + Sub-Agent customer-lens-reviewer. adr adr/0046-node-person-content-type-and-card-person-sdc.html
2026-05-25 supersede P2503-178 — ADR-0032 R1 (URL-Kanon /projektpartnerportal) supersedet durch ADR-0033 (kanonisch: /fuer-freiberufler/projektliste/<slug> per Sitemap-Node N16 unter N14). ADR-0032 R2-R4 bleiben in Kraft. Inline-Supersede-Note in ADR-0032 R1 verlinkt auf ADR-0033. adr adr/0033-project-offer-url-canon-correction.html
2026-05-25 decide P2503-178 — ADR-0033 (project_offer URL-Kanon-Korrektur) accepted. Pathauto-Pattern auf /fuer-freiberufler/projektliste/[node:title], Legacy-301-Redirect ueber hook_update_9007 in solcom_project_offer, idempotent. Aufloest Spec-Konflikt zwischen Memory project_projektliste_canonical_url und ADR-0032 R1. adr adr/0033-project-offer-url-canon-correction.html
2026-05-25 ship P2503-113 — Azure-DevOps-PR #165047 auto-completed (squash) gegen develop. Cutover-Ready: Gulp HTML-Feed unter /feeds/gulp.html + Legacy-Backlink-Redirect /asp/robots/detail.aspx?mode=GULP&id=<sf-id> → 301. 5 thematische Commits → 1 squash-merge auf develop. Source-Branch geloescht. stories stories/F-360-gulp-html-feed.html
2026-05-25 decide P2503-113 — solcom-review (3-Achsen, in-session) fuer feature/P2503-113. Findings: standards=5 (2 hard, 3 judgement), spec=3 (1 partial, 1 scope creep, 1 spec-vs-diff), canvas=skipped. Worst: Hard 1 — TrustedRedirectResponse 301 ohne addCacheableDependency(). Empfehlung: Fix vor PR-Open (3-Zeilen-Patch). reports reports/2026-05-25-feature-P2503-113-review.html
2026-05-25 qa-pass P2503-113 — DDEV-Live-QA-Report fuer feature/P2503-113 (Gulp HTML-Feed + Legacy-Backlink-Redirect). 11/12 strict pass, 1 deviation (AK2 URL-Pfad config-Drift, out-of-scope, eigenes Folge-Issue), 1 covered-via-PHPUnit (AK5 Cutover-Path). Triple-green Test-Gate: PHPUnit 25/25, PHPCS 10 files clean, PHPStan 0 errors. reports reports/2026-05-25-feature-P2503-113-qa.html
2026-05-22 ingest PRD: Big Numbers SDC — animierte Kennzahlen (P2503-173). Container+Item-Split, IntersectionObserver-Animation, strukturiertes Wertformat-Schema (animated_value + format + suffix), Figma-Frame 61447:26224. prds prds/2026-05-22-big-numbers-sdc-prd.html
2026-05-22 sync Story-Hub P2503-173-big-numbers angelegt — Grilling-Session: Big Numbers SDC (animierte Kennzahlen), Container+Item-Split (big-numbers + big-number-item), IntersectionObserver-Trigger, strukturiertes Wertformat-Schema (animated_value + format + suffix), Figma-Frame 61447:26224. story stories/P2503-173-big-numbers.html
2026-05-21 decide Plan 2026-05-21-002-feat-gulp-html-feed — Decomposition von P2503-113 (F-360 Gulp HTML-Feed) in zwei Sub-Tasks P2503-169 (Gulp-Linkliste live unter /feeds/gulp.html) und P2503-170 (Legacy-Backlinks 301 auf neue Detailseite). Beide Slices AFK, parallel startbar; additive Erweiterung des in F-340 etablierten Sub-Moduls solcom_project_offer_feeds. plan plans/2026-05-21-002-feat-gulp-html-feed.html
2026-05-21 decide ADR-0045 — Deprecate Git Worktrees and Switch to Sequential Primary-Only Workflow. Formelle Rückabwicklung der worktree-basierten parallelen Loop-Pipeline (ADR-0030). Alle automatischen und manuellen Entwicklungs-Loops laufen sequentiell direkt im Hauptverzeichnis. DDEV-Projektname wird fest auf solcom zurückgesetzt, auto-review-fix-Skill wird auf lokale Ausführung unter Schutz uncommitteter Änderungen umgestellt. adr adr/0045-deprecate-worktrees-sequential-primary-only.html
2026-05-21 supersede ADR-0030 (Worktree-basierte parallele Loop-Pipeline) wird durch ADR-0045 vollständig abgelöst und als veraltet markiert. adr adr/0030-worktree-based-parallel-pipeline.html
2026-05-21 decide Plan 2026-05-21-001-deprecate-worktrees-sequential-workflow — Implementation-Plan zur Umstellung auf sequentiellen Workflow und Rückbau der Git-Worktree-Infrastruktur. plan plans/2026-05-21-001-deprecate-worktrees-sequential-workflow.html
2026-05-21 ingest PRD: Gulp HTML-Feed für project_offer (F-360, P2503-113). Pattern-Spiegel zu F-340: Drupal liefert unter /feeds/gulp.html eine simple HTML-Linkliste auf die kanonischen Drupal-Detail-URLs der publizierten Projektangebote mit gesetztem field_sf_channel_gulp. Erweitert das bestehende Sub-Modul solcom_project_offer_feeds additiv (Route + Controller-Methode + Builder-Methode + Twig-Template). Bewerben passiert auf der Drupal-Detail-Seite via bestehenden Minggo-Flow (F-330). Separater dedizierter Controller für Legacy-URL /asp/robots/detail.aspx?mode=GULP&id=<sf-id> mit SF-ID-Lookup auf die kanonische Drupal-URL. prds prds/2026-05-21-gulp-html-feed-prd.html
2026-05-21 ingest Story-Hub F-360-gulp-html-feed — refined-Version der ehemals als „Randstad XML / API“ geführten Story P2503-113. Refinement-Pivot 2026-05-21: Vendor Randstad → Gulp; Pattern Push-Multiposting → Pull-HTML-Feed; Output XML → HTML. AKs, QA-Plan und Click-Pfade in Stakeholder-Sprache; PRD-Hub verweist auf 2026-05-21-gulp-html-feed-prd. stories stories/F-360-gulp-html-feed.html
2026-05-20 decide Plan 2026-05-20-001-anthropic-harness-adaption — 9-Slice-Implementation-Plan für die ADRs 0040–0043. Adaption von Anthropic's Harness design for long-running AI applications in den Ralph-Loop: Sprint-Contract-Phase + 4-Check-Eval, Implementation-Notes-Section im Story-Hub, Reviewer-Calibration (few-shot + post-mortem-Log), Refactoring-Pool als repo-lokaler Audit-Trail. Pilot in Worktree (Mode A per ADR-0030). plan plans/2026-05-20-001-anthropic-harness-adaption.html
2026-05-20 supersede ADR-0037 (Ralph-Loop-Architektur) wird partially superseded durch ADR-0040/0041 — das ursprünglich vorgesehene Handoff-File mit <section id="findings-log"> wurde in der Implementation weggelassen und ist durch die neue <section id="implementation-notes"> in den Story-Hubs ersetzt (ADR-0041). Status-Meta-Tag und Amendment-Section in ADR-0037 entsprechend gesetzt. adr adr/0037-ralph-loop-architecture.html
2026-05-20 decide ADR-0043 — Refactoring-Pool als docs/refactoring-pool.html: repo-lokaler, append-only Audit-Trail für Out-of-Scope-Funde aus dem Ralph-Loop. Bewusst kein Jira-Spawn pro Eintrag, weil Pool kein To-Do-Tracker ist (geringere Triage-Schwelle, Mensch triagiert via Git-Diff bei Bedarf). Einzige akzeptierte Ausnahme von der «Jira-als-kanonische-Senke»-Konvention. adr adr/0043-refactoring-pool.html
2026-05-20 decide ADR-0042 — Reviewer-Calibration via Few-shot-Examples plus Post-mortem-Lessons-Log unter docs/agents/reviewer-calibration.html. Mitigation gegen Anthropic-Warnung «Claude is a poor QA agent out-of-box» bei Sonnet-only-Ralph-Loop. Lessons werden ausschließlich von Menschen geschrieben (kein Self-Calibration), Loop liest die Datei bei jedem Run. adr adr/0042-reviewer-calibration.html
2026-05-20 decide ADR-0041 — Implementation-Notes-Section im Story-Hub als <section id="implementation-notes"> mit Sub-Task-<h3>-Granularität. Vier Sub-Sections pro Sub-Task (Design decisions / Deviations / Tradeoffs / Decisions under uncertainty), akkumuliert über implement-/review-/merge-Phasen. Bewusst gestrichen aus dem Anthropic-Original-Prompt: die «Open questions»-Kategorie, weil autonomer Loop keine Fragen-Akkumulation für abwesende Menschen leisten kann. adr adr/0041-implementation-notes-section.html
2026-05-20 decide ADR-0040 — Sprint-Contract-Phase im Ralph-Loop: zwei neue Phasen CONTRACT (Sonnet, ~20 Turns, schreibt <section id="sprint-contracts"> mit AKs mirrored + Out-of-Scope + Test-Skizze pro Sub-Task) und CONTRACT-EVAL (Sonnet, ~10 Turns, 4 deterministische Checks). Bis zu 3 Retry-Iterationen, danach STORY_BLOCKED:contract-thrice-rejected. Adaption von Anthropic's Sprint-Contract-Pattern. adr adr/0040-sprint-contract-phase.html
2026-05-20 decide Incident-Report: PR #164500 (mp/canvas-project-offer-template-refreshdevelop) gemerged mit net-diff = 0. Ursache: PR war inhaltlich redundant geworden (8c83708 auf develop hat zwischen 2026-05-18 und 2026-05-20 dieselben Änderungen unabhängig eingebracht — skills-pills + drop badge/industry/sf_parent_auto_number). Sekundär: zu grober git checkout --theirs <file>-Resolve. User-Impact: Null (End-State intendiert). Lessons: net-diff-shortstat-Pflicht-Check im solcom-review-Pre-Persist + neue Memory-Reference zu Konflikt-Resolve-Discipline. reports reports/2026-05-20-pr-164500-net-diff-zero-incident.html
2026-05-20 decide PR-Review #164388 (feature/P2503-112develop) persistiert. Drei Achsen, Canvas inaktiv. Standards: 1 hard (Test-Klassen unter tests/src/Functional/ erweitern KernelTestBase — PSR-4-Namespace-Drift) + 2 judgement. Spec: alle AKs erfüllt, 1 Sub-Task-AK-Drift (P2503-165 AK3 Config-Name) + 1 toter Code (Freelancermap-UTM-Config). Hard-Violation pre-merge auf feature/P2503-112 gefixt. reports reports/2026-05-20-feature-P2503-112-review.html
2026-05-20 ingest PRD P2503-168 — Akkordeon SDC Figma-Compliance-Fixes (Dark Context): 3 CVA-Änderungen (Borderfarbe border-brand-lime, py-6 Padding, pt-3 Content-Gap). Scope: accordion.twig, keine Schema-/JS-Änderung. prds prds/2026-05-20-akkordeon-figma-compliance-prd.html
2026-05-19 ingest Story Hub P2503-168 angelegt — Akkordeon SDC Figma-Compliance-Fixes (3 AKs: Borderfarbe, Padding, Content-Gap). Scope: Dark-Context only, kein Icon, kein Light-Mode. Figma-Node 61447:26220. QA-Plan mit Canvas-Testseite. stories stories/P2503-168-accordion-figma-compliance.html
2026-05-20 decide PR #164656 Review (P2503-157 Badge SDC). standards=7 (2 hard, 5 judgement), canvas=5 (2 hard, 3 judgement), spec=6 fails. Worst: Canvas-Registry active_version-Hash-Mismatch + default_value=primary ungültig → Badge rendert nicht nach Deploy. Blocking: Enum-Key weiß≠dark (Spec-Abweichung), fehlende abbreviation/percentage-Props, falsche Radien/Padding. reports reports/2026-05-20-feature-P2503-157-badge-sdc-review.html
2026-05-19 ingest PRD: Badge SDC — 5 SOLCOM-Varianten (P2503-157). Schema-Enum auf lime/dark/disabled/lined/matching reduziert, Twig-Fallback für Legacy-Werte, matching-Substruktur mit zwei neuen Props (abbreviation, percentage), Figma-Korrekturen gegenüber Jira-Ticket dokumentiert. prds prds/2026-05-19-badge-sdc-solcom-varianten-prd.html
2026-05-19 ingest Story-Hub P2503-157 angelegt — Badge SDC an SOLCOM Design System anpassen (5 Varianten: lime, dark, disabled, lined, matching). Grill-Session hat Figma-Spec direkt ausgelesen; Korrekturen gegenüber Jira-Ticket (Radius, Borderfarbe, Token-Namen), Deprecation-Strategie (Twig-Fallback), Matching-Props-Entscheidung und vollständiger QA-Plan dokumentiert. stories stories/P2503-157-badge-sdc-solcom-varianten.html
2026-05-18 sync Wiki-Entity card-family aktualisiert: card-frame als fünftes Familien-Mitglied aufgenommen (rechteckige Card mit Border-Achse × Background-Achse, Speaker-Tail-Geometrie, Bild-Hintergrund via SVG-clipPath). Auswahl-Heuristik um den Section-Karten-Fall ergänzt. Related-ADR-Tag um 0038 erweitert. wiki wiki/card-family.html
2026-05-18 decide ADR-0039 — Canvas-Config-Drift wird via hook_post_update_N in solcom_editorial generisch geheilt: (a) Orphan-Prop-Keys aus canvas.auto_save-Drafts entfernen, (b) Empty-Array default_value in prop_field_definitions für Non-Entity-Ref-Fields auf [[value => NULL]] patchen. Beide idempotent, laufen pro Deploy via drush updb. Generalisiert das einmalige Repair-Pattern aus ADR-0002. adr adr/0039-canvas-config-self-healing.html
2026-05-18 decide ADR-0038 — Card-Frame als rechteckiges Geschwister-SDC zu bubble-card-frame, kein Refactor. Vier Border-Varianten × vier Hintergrund-Varianten (Glass / Brand-Gradient / Foto via SVG-clipPath), optionaler Button-Notch via JS-Behavior card-frame-notch. Card-Familie wächst auf fünf Members (Wiki-Eintrag card-family aktualisiert). adr adr/0038-card-frame-rectangular-sdc.html
2026-05-18 ingest Brainstorm 0001 angelegt — LSP-Integration für Claude Code im SOLCOM-Setup (go/no-go-Bewertung). Ergebnis: Deferred — re-evaluate Q4 2026. Pilot falls go: Intelephense (PHP). brainstorms brainstorms/0001-lsp-evaluation.html
2026-05-18 ingest 90-Tage-Audit-Checklist + Shell-Script für Claude-Config-Drift. Script scripts/quarterly-claude-audit.sh prüft Skills-, Agents-, Hooks-, ADR-, Lint- und Permissions-Drift; HTML-Checklist unter docs/agents/quarterly-review.html; AGENTS.md-Verweis in DRI-Block. agents agents/quarterly-review.html
2026-05-18 ingest Codebase-Map als Onboarding-Referenz angelegt (Top-Level-Folder-TOC + 5 Custom-Module). Peer-Dev findet jeden Einstiegspunkt in unter 30 Sekunden. agents agents/codebase-map.html
2026-05-17 ingest PRD 2026-05-17-project-offer-xml-feeds-prd für P2503-112 (F-340) angelegt. Outbound-XML-Feeds /feeds/freelancermap.xml + /feeds/freelance.xml auf Basis von node.type.project_offer (Korrektur der ursprünglichen Story-Hub-Annahme vacancy). Sub-Modul solcom_project_offer/modules/solcom_project_offer_feeds/. Vendor-Config (Minggo-Workspace-ID, freelance-Suffix, UTM-Map) in solcom_project_offer.settings.yml. Cache-Tags + max-age 1h. Legacy-Pfade /asp/robots/* → 301-Redirect. Drei Pflicht-Tests (Builder-Kernel, Route-Functional, Redirect-Functional). Pattern-Spiegelung zu ADR-0035 (Personio-XML inbound). prds prds/2026-05-17-project-offer-xml-feeds-prd.html
2026-05-17 sync Story-Hub F-340-asp-xml-feeds-freelancermap-freelance refined: Quelle vacancyproject_offer, Modul-Heimat auf Sub-Modul solcom_project_offer_feeds umgeschrieben, 12 testbare Akzeptanzkriterien ergänzt, URL-/Cache-/Auth-/SEO-Strategie expliziert, Doku-Korrektur-Changelog dokumentiert. Status ideerefined. stories stories/F-340-asp-xml-feeds-freelancermap-freelance.html
2026-05-17 sync Wiki freelancer-feeds aktualisiert: Outbound-Feeds (F-340 + F-360) explizit an node.type.project_offer gebunden, Lead-Para korrigiert, Modul-Heimat-Sektion auf Sub-Modul-Pattern umgeschrieben, Apply-URL-Bildung (Minggo) und Description-URL-Bildung (entity.toUrl) ergänzt. Related-ADRs um 0029/0032/0035 erweitert, Tags um project-offer/freelance/gulp erweitert. wiki wiki/freelancer-feeds.html
2026-05-17 decide ADR-0037 ralph-loop-architecture angelegt (Status accepted). Mass-Implementation-Driver ist ein simples Bash-Skript scripts/ralph.sh <n> nach mattpocock/chrismdp-Pattern. Strikt sequenziell, kein Worktree, Sonnet-4.6-All (Orchestrator + drei via --agents-JSON definierte Sub-Agents: implementer / reviewer / verifier). Pickup-Selektor: Jira-Label agent-ready auf Story-Level, ORDER BY rank ASC. Per-Story PROD-DB-Snapshot-Restore (Skill mittwald-hosting). Pre-PR-Tail: solcom-review + einmaliger auto-review-fix-Pass; unfixed Findings im PR-Body. QA-Plan aus Story-Hub Refinement-Pflicht. Verworfen: Opus-Heavy-Brief (Kosten-Faktor 2.4×), Worktree-Parallel (ADR-0030 Mode B), Cron, PR-pro-Sub-Task, /loop-Skill. Konsequenzen: implement-Skill und ADR-0030 Mode B deprecated, Memory [[project_implement_pipeline_triple]]/[[project_parallel_loops_architecture]]/[[project_office_hours_cron]] warten auf Pilot-Erfolg. adr adr/0037-ralph-loop-architecture.html
2026-05-17 ingest Implementation Plan 2026-05-17-001-ralph-loop — Umsetzung der Ralph-Loop-Architektur aus ADR-0037 in neun Tracer-Bullet-Slices. Slices 1–4 bauen Infrastruktur (DB-Sync via mw + DDEV-Snapshot, PR-Body-Template, vier Phase-Prompts plan/implement/review/merge, Orchestrator-Prompt mit Streaming via --output-format stream-json). Slices 5–7 entkoppeln auto-review-fix (single-shot), solcom-review (no-persist via RALPH_LOOP=1) und erzwingen QA-Plan-Sektion in to-prd/to-plan/grill-with-docs. Slice 8 ist scripts/ralph.sh <n> als Mass-Loop mit Recovery-Pfad und Failure-Mode. Slice 9 ist Single-Story-Skill solcom-implement-story für /goal "implementier P2503-X". Pilot-Bedingung vor Memory-Updates und Skill-Deprecation. plans plans/2026-05-17-001-ralph-loop.html
2026-05-17 sync Pass-2-Review (PR #164354) auf resolved gesetzt — alle 8 empfohlenen Korrekturen abgearbeitet (Commit 666d638). Brand-Tokens (neuer --brand-gradient-blue nach Figma-MCP-Bestätigung von border-[#0050a0] auf Frame 985-50024 / Node 1013:68967), Canvas-Schema-Hygiene, Twig-Standards, Doku-Drift. Judgement calls (6) bewusst offen. reports reports/2026-05-17-feature-projektpartnerportal-figma-alignment-review-pass2.html
2026-05-17 decide ADR-0036 project_offer.field_matching_score als Phase-2-Stub akzeptiert — Field jetzt anlegen, Befüllung in Phase 2. Trigger ist Figma-Frame 985-50024 („Matching Rate"-Pill als feste Card-Komponente, nicht conditional). Stub: integer 0–100, default 0, kein Sync. SDC-Prop bleibt required; Twig rendert matching_score == 0 mit text-white/70 (gedimmt-aber-lesbar). Verankert via --brand-gradient-blue-Token (siehe Border-Fix). adr adr/0036-project-offer-matching-score-field-stub.html
2026-05-17 decide PR-Review (Pass 2, final) feature/projektpartnerportal-figma-alignment (PR #164354) persistiert — vollständiger HEAD inkl. der jüngsten 4 Commits (27e7b4b, c36bf5b, 58a64e5, f2fe027). Drei Achsen: standards=15 (11 hard, 4 judgement), canvas=3 (1 hard, 2 judgement), spec=8 (5 Scope-Creep, 1 Doku-Drift, 2 AK-Coverage-Lücken). Worst: card-bubble-profile.twig:13 border-[#0050A0] ist nicht in der SOLCOM-Brand-Palette. Superseded Pass 1. reports reports/2026-05-17-feature-projektpartnerportal-figma-alignment-review-pass2.html
2026-05-17 sync Agent-Cleanup: 5 redundante Agenten gelöscht (drupal-code-quality-reviewer, drupal-architecture-strategist, drupal-code-reviewer, config-schema-validator, migration-safety-guardian) — Überlappung mit kanonischen Diff-time-Reviewern (drupal-php-reviewer, drupal-config-architecture-reviewer). drupal-security-sentinel und drupal-performance-oracle als 6./7. Diff-time-Reviewer in agents/reviewers.html dokumentiert (manuell-getriggert, kein Glob). Inventar: 24 → 19 Agenten. agents agents/reviewers.html
2026-05-17 decide PR-Review feature/projektpartnerportal-figma-alignment (PR #164354) persistiert — drei Achsen: standards=10 (7 hard, 3 judgement), canvas=4 (3 hard, 1 judgement), spec=6 (1 missing-deferred, 4 scope-creep, 1 plan-drift). Worst: result-counter.component.yml status: experimental bei Canvas-Production-Registrierung (Eligibility-Block). reports reports/2026-05-17-feature-projektpartnerportal-figma-alignment-review.html
2026-05-16 ingest Implementation Plan 2026-05-16-001-feat-solcom-review-figma-axis — Erweiterung solcom-review um dritte parallele Sub-Agent-Achse „Figma-Parity". Trigger: SDC-File-Diff (web/themes/custom/byte_theme/components/** oder src/**). Anker: docs/design/MAPPING.html liefert SDC ↔ Figma-Frame-Tupel. Drei Vertical Slices: S1 MAPPING-Parser inline im Skill, S2 dritter Sub-Agent-Spawn (solcom-figma-reviewer) parallel zu Standards + Spec, S3 Report-Template + Persistierung um Figma-Section. ADR-0020-NEEDS_REAUTH-Pattern für Auth-Fail-Soft. Auslöser: PR-Review P2503-84 (Header/Main-Nav/Footer) — visueller Soll-Ist-Abgleich gegen Figma fehlte komplett, „Arrow als Inline-SVG statt ::before" und „Navbar verliert 1280-px-Container" landeten nur zufällig im Spec-Sub-Agent. plans plans/2026-05-16-001-feat-solcom-review-figma-axis.html
2026-05-16 ingest Alignment-Plan docs/plans/0001-projektpartnerportal-listing-figma-alignment.html angelegt — 12 Tracer-Bullet-Slices (Canvas-Chassis, BEF-Sidebar, Widget-Overrides, Custom-BEF-Plugin Laufzeit-Buckets, Card-Variante, watchlist-bar Rebuild, Matching-Rate-Stub, Visual-Verify Pass 1280 px) für Figma-Frame 985-50024; Go-Live 08.07.2026. plan plans/0001-projektpartnerportal-listing-figma-alignment.html
2026-05-16 sync Frame 985-50024 "Projektangebote" (Listing-Page-Komposition, /projektpartnerportal) als gap-Eintrag in docs/design/MAPPING.html aufgenommen — Customer-Lens-Verdict B-Hybrid (Canvas-Page-Chassis + BEF intern beibehalten, 2026-05-16). design design/MAPPING.html
2026-05-16 ingest supersede Agent-Doc agents/reviewers.html als neuer Hub für Code-Reviews angelegt — konsolidiert beide Achsen (Decision-time customer-lens-reviewer, Diff-time solcom-brand-reviewer / drupal-twig-sdc-reviewer / drupal-php-reviewer / drupal-config-architecture-reviewer / drupal-test-coverage-reviewer), manuell-getriggerten Sonderfall solcom-figma-reviewer, Orchestrator-Skill /solcom-review, plus Konventionen (Skill als Source-of-Truth, Reviewer-Prompts werden nicht angefasst). Strand-Tabelle in AGENTS.md/CLAUDE.md um Zeile „Code Reviews → docs/agents/reviewers.html" ergänzt, Reviewer-Kurzbeschreibung ersetzt durch Verweis auf den Hub. Gleichzeitig supersede: agents/sandcastle.html entfernt (AFK-Worktree-Pipeline-Erklärung), inhaltlich abgelöst von ADR-0030 + Wiki parallel-loops.html + Skills solcom-worktree / solcom-ddev-bootstrap. agents agents/reviewers.html
2026-05-15 sync docs/index.html Iteration 3: Hero-Widget oben (Gesamtfortschritt 26% + 54 Tage Countdown). Stories-Tabelle: Fortschritt-Spalte (ersetzt Erstellt, kompaktes %-Text), eigene T-Shirt-Spalte (XS–XXL Chips, 5 XS · 8 S · 14 M · 7 L · 2 XL · 1 XXL). Effort-Verteilung: 37 Stories, Σ 166 pts, davon ~43 erledigt. index index.html
2026-05-15 decide migrate sync Project-Offer-Sync-Hygiene (Branch feature/P2503-108) — fünf Drift-Klassen aus der Live-Site-Iteration adressiert: (a) Migrate-Title-Pipeline ohne SF-ID-Fallback, SOQL-Filter AND TR1__Job_Title__c != null; (b) SDC-Schema-Optional + Twig-Guards für sticky-apply-bar, badge, heading, meta-row; (c) View-Path-Konsolidierung /projektportal/projektpartnerportal; (d) Menü-Restruktur per Sitemap-IA: N14 „Für Freiberufler" + Sub-Item „Projektliste" → /projektpartnerportal; (e) High-Water-Reset + Re-Import (211 Records, 3 Orphan-Nodes hard-deleted). Plus zwei Bonus-Fixes während Browser-Verify aufgedeckt: (f) hook_views_query_alter auf LEFT JOIN + NULL-Toleranz (open-ended publish_end fielen still aus dem Listing — 0 sichtbar trotz 8 published); (g) SfRichTextSanitize: format: 'filtered_html''content_format' + 205 Records via SQL-Bulk auf neuem Format (Aufgaben + Anforderungen rendern wieder). Regeln verankert in ADR-0032 (decide); Plan-Worklog-Slice-1.6 angehängt; Module-README erweitert um „Re-Import Gotchas". adr / plan / module 0032-project-offer-sync-hygiene.html
2026-05-15 sync docs/index.html mit Jira-Realität synchronisiert: Workflow-Funnel (Refine 14/37, Progress 9/37, Done 7/37), Critical-Path-Timeline (Init 5/5 Fertig, M&K F-240 zu docs+code, Pr.partner F-290 In Arbeit), per-Row-Reife für 7 Fertig-Stories (P-10/-20/-45/-50/-55, F-220, F-240). Neues Top-Widget: Gesamtfortschritt 26% (effort-gewichtet, T-Shirt XS–XXL, Σ 166 pts) + 54 Tage bis Go-Live (08.07.2026). index index.html
2026-05-15 migrate AFK-Run abgeschlossen: alle 12 Slices des project_offer-Sync-Plans committed (Plan-Datei: 2026-05-14-001-feat-project-offer-sync-bh4sf.html). Backend-Slices via Hauptsession (Opus 4.7), mechanische Submodule-Builds via Sonnet-Subagents. Commits: 0551558 Slice 11 (Projekt-Alert-Submodul + Content-Entity + 3 Routen + DOI-Flow), d0410aa Slices 9+10 (Merkliste-LocalStorage-Behavior + Matching-Rate-V1-Hash), 03d5a86 Slice 8 (Geocoder OSM-Nominatim + field_geo + Pre-Seed-50-DE-PLZ + Suchradius-Stub), 5d3b9d3 Slice 7 (field_remote_share), 0c1d437 Slice 6 (Vocabulary skill + field_skills + SkillTextSplit-Plugin), df49db8 Slice 4 (page_listing-Display /projektportal + MAPPING-Update), 6835b0a Slices 2+3 (Lifecycle-Window + JSON-LD JobPosting), bef2e81 Re-Baseline config/sync. Test-Debt in todo.html dokumentiert (6 Tickets: 3 Test-Backlog + 3 Folgearbeit). Visuelle Display-Arbeit (Skill-Badges + Remote-Slider + Heart-Icon + Matching-Pill in Card-Twig) und BEF-Filter-Integration (Skills + Remote-Range + Suchradius) bleiben für serieller Card-Twig-Pass nach AFK-Run reserved. stories plans/2026-05-14-001-feat-project-offer-sync-bh4sf.html
2026-05-14 migrate Slice 4 abgeschlossen (Sub-Task P2503-143): views.view.project_offers_listing bekommt einen page_listing-Display unter /projektportal, Titel „Projektportal", inheriting Filter/BEF/Cache vom Default-Display. MAPPING.html für Frames 1019-78888 + 985-50077 auf das umbenannte project_offer-Naming gezogen. Partial: PPP-Cross-Sell-Block-Rendering auf /projektportal erfordert Canvas-Page-Integration — byte_theme ist Canvas-driven und ignoriert block_layout-Placement in der content-Region (siehe canvas/src/Plugin/DisplayVariant/CanvasPageVariant.php). Cross-Sell-Plugin + Template + 2-Card-Default bleiben aus P2503-144 in solcom_project_offer verfügbar — visueller Embed in Folge-Slot. stories plans/2026-05-14-001-feat-project-offer-sync-bh4sf.html
2026-05-14 migrate Slices 2+3 abgeschlossen (Sub-Tasks P2503-128 + P2503-129): Slice 2 Lifecycle-Window — neuer Service ProjectOfferWindowAccess prüft field_sf_publish_start <= now < field_sf_publish_end; hook_node_access forbidden bei outside-window + hook_views_query_alter restringiert project_offers_listing. Migrate-Process node.status nutzt nur noch static_map auf SC_PublicationStatus__c; combined-Plugin PublicationLifecycleStatus entfernt. Slice 3 JSON-LD — neuer Service ProjectOfferJsonLdBuilder baut schema.org/JobPosting JSON-LD; hook_node_view hängt <script type=application/ld+json> ans Build-Array im full-View-Mode, mergt Industry-Term-CacheTags. Slice-1-Restposten gefixt: hook_cron + hook_node_insert + hook_node_update referenzierten noch das alte Bundle sf_publication — Bundle-String + Docstrings auf project_offer migriert. Tests folgen separat (siehe docs/tasks/todo.html). stories plans/2026-05-14-001-feat-project-offer-sync-bh4sf.html
2026-05-14 ingest Pre-Build-Gate Slice 5 (Sub-Task P2503-146) abgeschlossen: Live-Describe gegen FCSB-Sandbox auf Skills + Remote-Anteil-Felder. SC_RemoteShare__c (percent) + TR1__Skills__c (textarea, primary) + TR1__Skills_Training_Experience__c + TR1__SEN_Additional_Experience__c (multipicklist) existieren first-class. Decision: Slices 6 (Skill-Badges) und 7 (Remote-Anteil) nutzen direktes Migrate-Mapping aus den existierenden Custom-Fields (Plan §05 Option a) — kein Tag-Parsing-Fallback nötig. Snapshot als sub-version 0008b versioniert, INVENTORY/index ergänzt. context context/0008b-fcsb-skills-remote-2026-05-14.html
2026-05-14 migrate Slice 1 Domain-Rename-Refactor abgeschlossen — atomarer Refactor von solcom_sf_publicationsolcom_project_offer, Bundle sf_publicationproject_offer, Vocabulary sf_industryindustry, View publications_listingproject_offers_listing, Pathauto sf_publication_contentproject_offer_content, Block-Plugin solcom_*_pp_cross_sell umbenannt. Phasen: (A) Modul-Verzeichnis + Namespace + Service-IDs für 35 Files; (B) 39 Config-Sync-YAMLs renamed + Inhalts-Update; (C) hook_update_N für DB-Migration (8 Nodes, 25 Terms, 24 bundle-cols in node__field_* + node_revision__field_*, migrate_map_solcom_* RENAME, bundle_field_map KeyValue-Cleanup, drupal_flush_all_caches), live verifiziert; (D) Module-Display-Name + Help-Text-Korrektur in field_sf_publish_start für FCSB-Drift (hohr__Publishing_start_date__c, datetime trotz Name — siehe context/0008a); (E) ADR-0031 amended (Layer-A/B-Auflösung + Naming-Update), CONTEXT.md + Modul-README + Plan-Worklog aktualisiert, 5 Jira-Sub-Task-Titles via acli umbenannt. Field-Renames (field_sf_*field_*) ausgegliedert nach Slice 1.5 (DB-Column-Migration-Risk). stories plans/2026-05-14-001-feat-project-offer-sync-bh4sf.html
2026-05-14 ingest Pre-Build-Gate Slice 0 (Sub-Task P2503-127) abgeschlossen: Live-Describe gegen FCSB-Sandbox (solcom--fcsbsolcom.sandbox.my.salesforce.com) via OAuth-Refresh-Flow erfolgreich (HTTP 200, 271 Felder am TR1__Job__c). RecordTypeId für Publication bestätigt: 012Wx000000C7ngIAC. SOQL-COUNT auf RecordType=Publication: 219 aktive Records — Cron-Quota-Verbrauch unkritisch. 22 Plan-Felder verifiziert; 4 Mapping-Doc-Drift-Felder identifiziert (SC_VISRequestNo__c, SC_SolcomExternalId__c, SC_BH4SFRequestNo__c, SC_JobType__c existieren in Sandbox nicht, sind aber im aktuellen Migrate-Mapping nicht referenziert — kein Code-Drift). 1 Help-Text-Korrektur in field_sf_publish_start für Slice 1 vorgemerkt. Snapshot als sub-version 0008a unter docs/context/ versioniert, INVENTORY.html-Eintrag ergänzt. context context/0008a-fcsb-live-describe-2026-05-14.html
2026-05-14 decide ADR-0031 sf-publication-frontend-decomposition als proposed angelegt — Frontend-Decomposition für Story F-290 / P2503-108 in zwei Lieferschichten: Layer A (MVP, Sub-Tasks P2503-137 bis P2503-145) enthält View-Mode-Configs, Pathauto /projektpartnerportal/, Canvas-Komposition sf_publication.full nach Figma-Frame 1019-78888, Canvas-Card-Template sf_publication.card nach Frame 985-50077, Drupal-View publications_listing mit 5 BEF-Filtern, Canvas-Page, Custom-Block PPP-Cross-Sell; Layer B (Post-MVP, P2503-147 bis P2503-152) enthält Skill-Badges, Remote-Anteil-Slider, Suchradius-Geo, Merkliste, Matching-Rate, Projekt-Alert. Vacancy-Parität als Implementierungs-Schablone (ADR-0014 als Blaupause, aber ohne Featured-Slot + ohne Related-View). 4 Rejected Alternatives dokumentiert (Alles-auf-einmal, eigenes Bundle ohne Parität, React/Vue für Filter, eigenes Card-SDC). Customer-lens-reviewer-Konsultation ausstehend — Status bleibt proposed, Konsultation nach Merge durch Orchestrator. adr adr/0031-sf-publication-frontend-decomposition.html
2026-05-14 sync MAPPING.html aktualisiert: 2 neue Frame-Zeilen unter partial ergänzt — Frame 1019-78888 (sf_publication Detail-Page, Mapping-Ziel canvas.content_template.node.sf_publication.full, P2503-140) und Frame 985-50077 (sf_publication List-Card, Mapping-Ziel canvas.content_template.node.sf_publication.card + views.view.publications_listing, P2503-141/143). Beide Frames manuell aus Figma Desktop ausgelesen (Node-ID aus URL). Status partial, da Canvas-YAMLs noch nicht in config/sync/ vorhanden. Partial-Count: 23 → 25. INVENTORY.html ergänzt um Sektion „Manuell erfasste Frames" mit beiden Frame-Rows. Quelle: ADR-0031 (P2503-145). design design/MAPPING.html
2026-05-14 implement Implement-Loop für Story P2503-108 gestartet auf Branch feature/P2503-108. Pre-Build-Gates P2503-127 + P2503-146 als blocked-external markiert (Live-Describe + Quota-Sizing). P2503-128 Module-Foundation (commit 36de8b1): Modul solcom_sf_publication mit 24 Feldern (gemäß Context-0008 BH4SF-Publication-Mapping), Taxonomy sf_industry mit 25 Term-Seeds via hook_install, env-var-Snippet in example.settings.local.php, Editor-Boundary via leere Permission-Map. Vorab-Hook-Fix (c735eb1): präzisere Regex (^|/)settings\.local\.php$, sodass das Template-File nicht mehr als sensitive geblockt wird. P2503-129 Auth-Foundation (commit e5eb771): drupal/key 1.22.0 aktiviert, 3 Key-Entities (env-provider) für FCSB-Credentials, SalesforceClient-Service mit State-cached Token und 401-Retry-Once-Logik, Kernel-Test deckt 4 Szenarien. Live-verifiziert gegen FCSB-Sandbox: getAccessToken() liefert echten Bearer-Token (env-vars aus DDEV web_environment). Story-Hub F-290 mit neuer Worklog-Sektion angereichert. stories stories/F-290-salesforce-bullhorn-integration-rest-pull.html
2026-05-14 ingest Story-Hub F-290 angereichert mit Sektion Frontend-Decomposition — 14 granulare, agent-ready Sub-Tasks unter P2503-108 (F1/P2503-137 bis F14/P2503-152). Layer-A/Layer-B-Cut: F1–F7 sind MVP-Pflicht zum 08.07.2026 (View-Mode + Pathauto, Canvas-Komposition sf_publication.full nach Figma-Frame 1019-78888, Canvas-Card-Template sf_publication.card nach Frame 985-50077, Drupal-View publications_listing mit 5 BEF-Filtern, Canvas-Page /projektpartnerportal, Custom-Block-Plugin PPP-Cross-Sell, MAPPING-Update + ADR-0030); F8–F14 sind Post-MVP-Vollparität (Pre-Build-Gate FCSB-Live-Describe, Skills-Badges, Remote-Anteil-Slider, Suchradius-Geo, anonyme Merkliste, Matching-Rate, Projekt-Alert). Initial-Mega-Sub-Task P2503-137 wurde zu F1 umgeschrieben, Race-Condition-Duplikate P2503-138/-139 als obsolete,duplikat closed. Refinement-Lessons: Figma-Pixel-Realität korrigierte naive Vacancy-Parität (kein Featured-Slot, kein Related-View, Card ist Variant von prop-driven card-SDC). stories stories/F-290-salesforce-bullhorn-integration-rest-pull.html
2026-05-14 ingest Agent-Doc agents/sandcastle.html angelegt — Erklärung der AFK-Worktree-Pipeline (.sandcastle/) mit 3-Phasen-Flow (Outer-Plan → Inner-Plan → Worktree-Loop), 2-Stages-Planner (Story-Auswahl + Sub-Task-Reihenfolge), 1-Worktree-pro-Parent-Story mit sequentiellen Sub-Tasks im selben Branch, Reviewer-Pass über das Gesamtpaket via /solcom-review-Skill, 1 PR pro Story. Sidebar mit Key-Files (main.ts, providers/worktree-ddev.ts, Prompts) und Gotchas (Port-Pool, Snapshot-Frische, Bootstrap-Hintergrund-Trick, Tool-Auth). Quellen-Anker: ADR-0030 + Skills solcom-worktree / solcom-ddev-bootstrap. agents agents/sandcastle.html
2026-05-14 decide ADR-0030 worktree-based-parallel-pipeline als proposed angelegt — Dev-Infrastruktur-Wende von „kein Worktree" (alte Memory project_sandcastle_host_only_architecture) zu „Worktree-Standard". Dual-Mode-Architektur: (1) In-Session via Claude-Code built-in Agent(isolation: "worktree", run_in_background: true) für sub-stündige Sub-Agent-Loops aus einer Master-Session; (2) Detached via neuem Skill solcom-worktree mit nohup claude --print --dangerously-skip-permissions für Multi-Stunden-Loops, die Master-Session-Ende überleben. Shared-Infrastruktur: .ddev/config.yaml ohne name:-Key (DDEV Auto-Name nach Verzeichnis, ddev-Blog-Pattern), Mini-Skill solcom-ddev-bootstrap (Snapshot-Restore + ddev start), peer-Worktree-Layout unter ../solcom-worktrees/<key>/. Rejected: Pure-In-Session (langlebige Loops gehen nicht), Pure-Detached (verzichtet auf Built-in), Multiple-Clones (Disk-Waste), Worktrees-Inside-Repo (DDEV-Nesting), tmux-/launchctl-/Docker-Spawn (Overhead), Strikt-Concurrency-Cap (zu restriktiv). Story-Gate ready-for-agent umfasst ab jetzt auch DB-/Drupal-Runtime-Stories. Customer-lens-reviewer-Pflicht explizit als N/A — Dev-Infrastruktur notiert. Greenfield-Wende: das in der alten Memory referenzierte .sandcastle/-Verzeichnis und ADR-0028-host-only-sandcastle-orchestrator.html existieren nicht — keine Migration nötig. adr adr/0030-worktree-based-parallel-pipeline.html
2026-05-14 ingest Wiki-Entity parallel-loops.html angelegt — Synthese-Page für die Worktree-basierte Hintergrund-Pipeline. Aggregiert ADR-0030, die beiden neuen Skills solcom-worktree (Detached-Mode) und solcom-ddev-bootstrap (Shared-Infrastruktur), den ddev.com-Blog (Ursprungs-Pattern) und das Claude-Code-built-in Agent(isolation: "worktree")-Feature. Body folgt der 4-Sektion-Wiki-Konvention (Mechanik-Familie, Aggregierte Quellen, Mode-Auswahl-Heuristik, Was diese Page nicht ist). INVENTORY-Row ergänzt. wiki wiki/parallel-loops.html
2026-05-14 ingest Skill solcom-ddev-bootstrap angelegt — Mini-Skill, der eine DDEV-Site im aktuellen Verzeichnis aus einem Primary-Snapshot provisioniert. Kapselt ddev snapshot restore latest-primary + ddev start + drush cr; idempotent (zweiter Aufruf erkennt laufende Site, no-op). Wird von beiden Modes der Worktree-Pipeline aufgerufen (In-Session via Sub-Agent-Pre-Step, Detached via solcom-worktree spawn). Voraussetzung: .ddev/config.yaml ohne name:-Key. Source-of-Truth: ADR-0030. skills .claude/skills/solcom-ddev-bootstrap/SKILL.md
2026-05-14 ingest Skill solcom-worktree angelegt — Detached-Mode-Mechanik für autonome Hintergrund-Loops, die Master-Session-Ende überleben. Drei Sub-Workflows: spawn <key> <prompt> (git worktree add peer zum Repo + solcom-ddev-bootstrap + nohup claude --print --dangerously-skip-permissions als Background-Prozess mit PID/Log-Tracking unter .worktree-logs/), list (Worktrees + PIDs + Lauf-Status + letzte Log-Zeile), cleanup <key> (Prozess killen + ddev delete -O + git worktree remove --force + Log archivieren). Branch-Konvention feature/<KEY>. Komplement zum Claude-Code-built-in Agent(isolation: "worktree", run_in_background: true) für sub-stündige Loops. Source-of-Truth: ADR-0030. skills .claude/skills/solcom-worktree/SKILL.md
2026-05-14 ingest Implementation Plan 2026-05-14-001-feat-project-offer-sync-bh4sf.html angelegt — 12 tracer-bullet Slices (100 % AFK) als Decomposition der PRD 2026-05-13-salesforce-publication-sync-prd.html. Slices in Dependency-Order: 0 (Pre-Build-Gate Live-Describe FCSB), 1 (Domain-Rename-Refactor atomarer PR mit 21 hook_update_N + Map-Tabellen-Rename + 38 Config-YAML-Renames), 2 (Lifecycle-Window Render-Time + Views-Filter + Access-Service), 3 (JSON-LD nach schema.org/JobPosting), 4 (Canvas-Page /projektportal + Cross-Sell-Block), 5 (Pre-Build-Gate Layer-B-Felder Skills/Remote), 6 (Skill-Badges + Skills-Filter), 7 (Remote-Anteil-Slider + Range-Filter), 8 (Geocoder-Setup + Suchradius via OSM-Nominatim), 9 (Merkliste anon LocalStorage), 10 (Matching-Rate V1 faked), 11 (Projekt-Alert E-Mail-Subscription mit DSGVO-Double-Opt-In). Architectural Decisions, Risks-Tabelle (7 Items, 3 HIGH) und Open Questions (6) inline. User-Wahl 100 % AFK gegen Skill-Default (4 HITL vorgeschlagen) — bewusste Risiko-Aufnahme bei atomarem Rename-Refactor + Figma-Match-Canvas-Page + Geocoder-Provider-Wahl + Mail-Templates. plans plans/2026-05-14-001-feat-project-offer-sync-bh4sf.html
2026-05-14 supersede PRD 2026-05-13-salesforce-publication-sync-prd.html komplett überschrieben (Selbst-Supersede mit Filename-Beibehaltung): Domain-Rename sf_publicationproject_offer (Bundle/Modul/Vocabulary), Konsolidierung Backend+Frontend in einer PRD (Vacancy-Split-Pattern verworfen, Jira P2503-108 enthält FE), Layer-A/B-Vereinigung (Layer B nicht mehr Post-MVP — Skill-Badges, Remote-Anteil, Suchradius, Merkliste, Matching-Rate, Projekt-Alert alle MVP-Pflicht bis 2026-07-08), Lifecycle-Window-Auswertung render-time statt Migrate-Run (kein 60min-Lag), JSON-LD nach schema.org/JobPosting + Listing-UI rein in V1, Field-Naming nach Vacancy-Konvention (21 Storage-Felder, field_job_number gedroppt weil produktiv nicht vorhanden, node.title statt field_job_title, Content-Felder prefix-frei), Vocabulary sf_industryindustry, Salesforce-Suite explizit als Rejected dokumentiert (ADR-0013-Bruch + ext-soap-Pflicht + 58-commits-Switching-Cost + Mapping-UI-Mehrwert minimal). Entstanden aus dem Grilling 2026-05-14 (14 Decisions), Live-Site solcom.de/de/projektportal als Domain-Sprach-Anker, advisor-Konsultation beim Rename-Scope, BH4SF-Mapping-Excel + Vacancy-Pattern als Triangulation. Cross-Links: ADR-0029 + ADR-0031 müssen amended werden, Context-0008 wird nachgezogen, Story F-290 bekommt Rename-Refactor als Anschluss-Sub-Task, 16 Jira-Sub-Task-Titel (P2503-128 bis -145) müssen umbenannt werden. prd prds/2026-05-13-salesforce-publication-sync-prd.html
2026-05-14 sync Committed-Config-Change: .ddev/config.yaml verliert die Zeile name: solcom. DDEV benennt sich ab sofort automatisch nach dem Verzeichnis — Primary solcom/ bleibt solcom.ddev.site, jeder zukünftige Worktree-Peer bekommt seinen eigenen Auto-Name. Voraussetzung für die Worktree-Pipeline-Wende (ADR-0030). Devs müssen nach Pull lokal ddev poweroff && ddev start ausführen. config .ddev/config.yaml
2026-05-13 sync Story F-290-salesforce-bullhorn-integration-rest-pull.html refined: Status IDEEREFINED. Titel „Salesforce / Bullhorn Integration (REST-Pull)"„Salesforce-Publication-Sync (BH4SF) — REST-Pull + Outbound-URL-Writeback". Scope-Klärung: Phase 1 = A+C (Publication-Pull + URL-Writeback), Phase 2 = B (User-Linking via field_sf_contact_id, eigene Story abhängig von F-400). Akzeptanzkriterien-Placeholder durch 13 konkrete AK aus PRD-Goals ersetzt. Abhängigkeiten (Composer, SF-Connected-App, Env-Vars, Repo-Konventionen, Hosting-Cron) ausgefüllt. Offene Fragen aktualisiert: 3 Original-Fragen teils beantwortet (Bullhorn-Objekte → via BH4SF auf SF, kein Direct-Bullhorn) bzw. nach Phase 2 verschoben (Registrierungs-Flow, Merkliste), 5 neue Pre-Implementation-Gates aus PRD/ADR (SOQL-Count, Live-Describe, Branch-Strategie, Sub-Tasks-Refresh, Phase-2-Abgrenzung). Cross-Links zu PRD 2026-05-13-…, ADR-0029, Context-0008, Personio-Präzedenz-PRD, F-330, F-400. story stories/F-290-salesforce-bullhorn-integration-rest-pull.html
2026-05-13 decide ADR-0029 solcom-sf-publication-hybrid-architecture als proposed angelegt — Architektur-Entscheidung für das Modul solcom_sf_publication (Story P2503-108 / F-290). Hybrid-Architektur: Migrate-API + migrate_plus für SF→Drupal-Inbound (Custom SalesforceSoqlFetcher für nextRecordsUrl-Body-Paging, Standard OAuth2-refresh_token-Plugin, Standard JSON-Parser, Credentials via $config-Override aus Env-Vars analog ADR-0011), MigrateEvents::POST_IMPORT-EventSubscriber für Per-Run-Hard-Delete-Sweep (1:1-Port aus Vacancy-Pattern, Empty-Feed-Schutz), Custom QueueWorker + hook_node_update mit Status-Transition-Guard für Outbound-PATCH von hohr__Job_Application_URL__c, eigener SalesforceClient-Service mit Token-Cache (Strict-Separation zur Migrate-Auth-Schiene). Plus: Industry-Lookup via Custom Process Plugin + Vocabulary sf_industry mit field_sf_value + Auto-Create-on-Miss; Rich-Text-Sanitize via Service + Plugin (DI, DOMDocument-Whitelist); Lifecycle-Mapping SC_PublicationStatus__c == "Online" via static_map. Folgt Repo-Standard ADR-0013 (Migrate für externe Quellen, Custom-Queue rejected) und ADR-0026 (Editor-Boundary für API-gespiegelte Inhalte). Customer-lens-reviewer-Pflicht explizit als N/A — Backend-only notiert (Lens-Set Figma/SDC/Theme nicht anwendbar). 12 Rejected-Alternatives dokumentiert. adr adr/0029-solcom-sf-publication-hybrid-architecture.html
2026-05-13 ingest Context-Snapshot 0008-fcsb-bh4sf-publication-mapping.html angelegt — Field-Mapping zwischen FCSB-Salesforce-Object TR1__Job__c (RecordType Publication, RecordTypeId 012Wx000000C7ngIAC) und dem geplanten Drupal-Bundle sf_publication. 22 inbound-relevante Felder, 1 outbound-Feld (hohr__Job_Application_URL__c), Industry-Picklist mit 25 DE-Labels (Agriculture→Landwirtschaft, …, Transport and logistics→Transport und Logistik), SOQL-Anker-Query, Drift-Warnung bezüglich _date_time__c-Field-Namen (Briefing-Verdacht im Excel-Live-Sample nicht reproduzierbar — Pre-Build-Describe trotzdem Pflicht), Picklist-Value-Drift bei SC_PublicationStatus__c (Sandbox-Wert "Online" authoritativ). Quelle: untracktes Excel IC_I220_BH4SF_Publication_Website (1).xlsx (.gitignore-Regel für docs/context/*.xlsx). Cross-Links zum PRD 2026-05-13-salesforce-publication-sync-prd, Story F-290 / P2503-108, IT-Landscape 0001 (Kante E11), Personio-Präzedenz-PRD. context context/0008-fcsb-bh4sf-publication-mapping.html
2026-05-13 ingest PRD 2026-05-13-salesforce-publication-sync-prd.html angelegt für Story P2503-108 / F-290 (Salesforce-Publication-Sync via BH4SF). Hybrid-Architektur: Migrate inbound (Custom SalesforceSoqlFetcher + Standard OAuth2-Refresh-Token + Standard JSON-Parser, nextRecordsUrl-Paging im JSON-Body, Per-Run-Sweep via MigrateEvents::POST_IMPORT-EventSubscriber analog VacancyHardDeleteSubscriber) + Custom QueueWorker outbound (hook_node_update mit Status-Transition-Guard, eigener SalesforceClient-Service mit Token-Cache, PATCH von hohr__Job_Application_URL__c). Bundle sf_publication, Vocabulary sf_industry mit 25 pre-seeded Terms (DE-Labels + field_sf_value), Custom Process Plugins für Industry-Lookup und Force.com-Rich-Text-Sanitize (DOMDocument-Whitelist). Lifecycle SF-gesteuert (publish_start <= now < publish_end AND SC_PublicationStatus__c = "Online"). Out of Scope V1: User-Linking (Phase 2), Minggo-Submit (F-330), Multi-Field-Outbound, Push/Platform-Events, Editorial-Workflow. Open Items: Steady-State Publication-Count, Live SF-Describe gegen FCSB-Sandbox (Field-Drift _date_time__c vs _date__c), Branch-Strategie. Folge-ADR 0029 dokumentiert die 8 Architektur-Entscheidungen. prd prds/2026-05-13-salesforce-publication-sync-prd.html
2026-05-13 ingest Skill solcom-tdd um tracer-bullets.md erweitert — sechs Drupal-Layer-Tracer (Service mit Constructor + throw LogicException, SDC mit CVA-Variant + ComponentKernelTestBase, Drush-Command mit Exit-0-Smoke, Workflow-Transition mit zwei States + Kernel-Test, Queue-Worker mit noop-Skip, Canvas-Code-Component mit defineComponent + Workbench-Mock). Jeder Tracer dokumentiert Skeleton-Code + Skeleton-Test + Verifikations-Command + Tracer-Checkliste. Skill umfasst jetzt 12 Files (SKILL.md + 5 mattpocock-adaptierte + 6 SOLCOM-Ergänzungen). skills .claude/skills/solcom-tdd/tracer-bullets.md
2026-05-13 ingest Skill solcom-tdd erweitert um vier SOLCOM-spezifische Helper-Files: fixtures.md (Drupal-Standard-Traits + Domänen-Helpers, SF-Mock-Responses, Editorial-Workflow-Setup; Mechanik-Anker drupal-testing), naming.md (Test-Naming gegen SOLCOM-Glossar in CONTEXT.md + docs/wiki/, Anti-Pattern-Liste), ci-integration.md (lokaler Watch-Loop, Pre-Commit-Reihenfolge, Azure-DevOps-Stages, Coverage-Strategie; Pipeline-Anker drupal-ci-cd), async-testing.md (Queue-Worker, Cron-Hooks, Batch-API, Lock-Mechanismus, TimeInterface-Mock-Disziplin; Plugin-Anker drupal-module-development). Skill umfasst jetzt 11 Files (SKILL.md + 5 mattpocock-adaptierte + 5 SOLCOM-Ergänzungen). skills .claude/skills/solcom-tdd/SKILL.md
2026-05-13 ingest Skill solcom-tdd angelegt — Adaption von mattpocock/skills/skills/engineering/tdd (SHA 7a989411) für den gesamten SOLCOM Drupal-Stack (PHP, Twig/SDC, Config, JS, Drush, Recipes, Canvas-Code-Components). Sechs Files: SKILL.md plus Helper deep-modules, interface-design, mocking, refactoring, tests (Multi-Layer-Beispiele) und die SOLCOM-Ergänzung pyramid (Test-Pyramide mit 10×-Speed-Differenz pro Stufe). Philosophie 1:1, alle Beispiele auf PHPUnit/Drupal übersetzt. Komplementiert drupal-testing (Mechanik) als Philosophie-Schicht darüber. mattpocock-tdd bleibt parallel für TS-Snippets (Canvas-JSX-Surface). skills .claude/skills/solcom-tdd/SKILL.md
2026-05-13 sync Skill-Library-Inventar in docs/agents/skills.html auf .claude/skills/ resynced — 4 neue SOLCOM-Skills (implement, solcom-review, solcom-docs-lint, solcom-docs-curator) und neue Sektion „Workflow & Doc-Authoring" mit 18 mattpocock-adaptierten Skills (html-doc-authoring als SOLCOM-Pflicht; Decomposition-Pipeline to-prd/to-plan/to-issues; Bau-Tools tdd/diagnose/improve-codebase-architecture/triage; Author-Helpers, Setup-Skills, Bulk-Nicht-aktiv-Sub-Section). agents agents/skills.html
2026-05-13 ingest Skill auto-review-fix angelegt — autonomer End-to-End-Loop nach /solcom-review: findings adressieren → tests → commit → merge-conflict-resolve → PR auto-complete → Jira-ADF-Kommentar → persistent comment-watcher. Designed für /goal-Driver. Pilot: feature/P2503-105, Commit 18d0ab5. skills .claude/skills/auto-review-fix/SKILL.md
2026-05-13 decide PR-Review P2503-105 — Publishing Workflows: 3 hard + 2 judgement Standards-Findings, 4 hard + 4 scope-creep Spec-Findings. Worst: publish-Transition erlaubt unpublished → published ohne Review (bricht Hard-Review-Gate). 10 empfohlene Korrekturen. reports reports/2026-05-13-feature-P2503-105-publishing-workflows-review.html
2026-05-13 ingest PRD: Publishing Workflows Konfiguration (P2503-105) — Hard-Review-Workflow für blog + page, Rolle content_manager, Scheduler aus in_review, Vacancy ausgeschlossen (ADR-0026). Alle Akzeptanzkriterien definiert, label ready-for-agent gesetzt. prds prds/2026-05-13-publishing-workflows-konfiguration-prd.html
2026-05-13 decide ADR-0026: node.vacancy aus dem Hard-Review-Editorial-Workflow ausgeschlossen — automatischer XML-Import (solcom_vacancy) setzt status: 1 direkt; ein Workflow-Einbau würde Imports in draft blockieren. Workflow gilt nur für blog + page. adr adr/0026-vacancy-ausschluss-editorial-workflow.html
2026-05-13 sync P2503-105 Publishing Workflows implementiert: in_review-State + 5 Transitionen in workflows.workflow.basic_editorial; neue Rolle content_manager (Freigabe, Scheduler, Trash); content_editor auf submit_for_review + delete own eingeschränkt; Scheduler bereits aktiv für blog/page. Config via drush cim importiert, kein Diff. config config/sync/workflows.workflow.basic_editorial.yml
2026-05-12 sync P2503-103: editoria11y aktiviert + konfiguriert — editoria11y.settings.yml, views.view.editoria11y_results/dismissals, Permission view editoria11y checker für Redakteur, ignore_elements auf Admin-Chrome gesetzt config config/sync/editoria11y.settings.yml
2026-05-12 ingest PRD: Accessibility Tools Konfiguration (editoria11y) — P2503-103 prds prds/2026-05-12-accessibility-tools-konfiguration-prd.html
2026-05-11 migrate docs/design/MAPPING.html auf Triage-Board-Layout (Template 18) migriert: vier Status-Spalten (matched 1 / partial 23 / gap 27 / obsolete 0) als Kanban, Frames als Karten mit Node-ID, SDC, Jira-Pill, Figma-Status und Notes. Counts pro Spalte sichtbar, Status auf einen Blick erkennbar. Frontmatter, Identifier-Konvention, Konventionen und Agent-Boundaries unverändert. design design/MAPPING.html
2026-05-11 sync Sechs Sub-Task-Detailseiten unter docs/stories/ angelegt (P2503-121 bis P2503-126): schlankes Template mit User-Story, Figma-Frame-Sektion (Node-ID + States) und Eltern-Story-Verweis auf F-30. Letzte Spalte der Sub-Task-Rows in index.html auf öffnen-Link umgestellt (vorher Figma →). design stories/
2026-05-11 sync Jira Sub-Tasks P2503-123, P2503-124, P2503-125, P2503-126 für die Form-Frames Forms/Inputfield (61544:28943), Forms/Textarea (61544:31294), Forms/Dropdown (61544:31529) und Forms/Upload field (61544:32513) aus Section Components (61544:32395) angelegt (Parent P2503-83). Vier neue MAPPING-Rows mit Status gap/ready-for-dev. User-Override „pro Formfield eine SubIssue" — Single-Frame-Default des Skills bewusst aufgehoben. design design/MAPPING.html
2026-05-11 sync Jira Sub-Task P2503-122 für Frame Navigation (Darkmode / Blue BG) angelegt (figma-node:61148:47024, Parent P2503-83). Neue MAPPING-Row für Outer-Components-Nav-Frame, Scope auf Darkmode (blue BG) beschränkt. design design/MAPPING.html
2026-05-11 sync Jira Sub-Task P2503-121 für Frame Icon Group / Accordeon angelegt (figma-node:1522:39115, Parent P2503-83). Erster Run des Skills figma-ready-for-dev-to-jira (Slice 3). design design/MAPPING.html
2026-05-11 sync Scanner-Run (Slice 2): Figma-Status-Spalte für alle 46 Frames initialisiert — 45× wip (Default), 1× ready-for-dev (Icon Group / Accordeon, Node 1522:39115). Scanner-Agent-Doku um MCP-Limitation + Idempotenz-Regel ergänzt. design design/MAPPING.html
2026-05-11 migrate MAPPING.html-Schema auf 8 Spalten erweitert: zwei neue leere <th>/<td>-Spalten Figma-Status und Jira Sub-Task (ADR-0025) design design/MAPPING.html
2026-05-11 decide ADR-0025 — MAPPING.html: Figma-Status als zweite Dimension (orthogonale Spalten statt Tupel-Status) adr adr/0025-mapping-figma-status-as-second-dimension.html
2026-05-11 ingest Plan: Figma ready-for-dev → Jira Sub-Tasks (neuer Skill figma-ready-for-dev-to-jira) plans plans/2026-05-11-002-feat-figma-ready-for-dev-to-jira.html
2026-05-11 ingest Plan: Karpathy-Wiki-Audit & docs/-Pflicht via Pre-Commit-Hook plans plans/2026-05-11-001-karpathy-wiki-audit-pflicht-hooks.html
2026-05-11 supersede 07_Epics_Konsolidiert entfernt — Jira + index.html sind Single Source of Truth docs docs/07_Epics_Konsolidiert 1.html (git rm)
2026-05-11 decide ADR-0024 — docs/ via separate Mittwald-Static-Files-App ausliefern adr adr/0024-docs-via-mittwald-static-files-app.html
2026-05-11 ingest Go-Live stories stories/P-167-go-live.html
2026-05-11 ingest Kundenschulung stories stories/P-130-kundenschulung.html
2026-05-11 ingest Erstellung Anwenderhandbuch stories stories/P-120-erstellung-anwenderhandbuch.html
2026-05-11 ingest Newsroom (Pressemitteilungen, Unternehmens- & Branchennachrichten) stories stories/F-440-newsroom.html
2026-05-11 ingest LEAD XPERIENCE — Lead-Management-Integration Karriere-Bereich stories stories/F-390-lead-xperience.html
2026-05-11 ingest Randstad XML / API stories stories/F-360-randstad-xml-api.html
2026-05-11 ingest Minggoformular (Initiativbewerbung / Lead) stories stories/F-330-minggoformular.html
2026-05-11 ingest ASP → XML-Feeds (Freelancermap, Freelance.de) stories stories/F-340-asp-xml-feeds-freelancermap-freelance.html
2026-05-11 ingest Calltracking (Matelso) stories stories/F-320-calltracking-matelso.html
2026-05-11 ingest Google Tag Manager stories stories/F-310-google-tag-manager.html
2026-05-11 ingest Salesforce / Bullhorn Integration (REST-Pull) stories stories/F-290-salesforce-bullhorn-integration-rest-pull.html
2026-05-11 ingest Personio XML-Feed stories stories/F-280-personio-xml-feed.html
2026-05-11 ingest Publishing Workflows Konfiguration stories stories/F-240-publishing-workflows-konfiguration.html
2026-05-11 ingest Advanced Search Konfiguration stories stories/F-230-advanced-search-konfiguration.html
2026-05-11 ingest Accessibility Tools Konfiguration stories stories/F-220-accessibility-tools-konfiguration.html
2026-05-11 ingest Data Privacy / Cookie-Consent Konfiguration stories stories/F-210-data-privacy-cookie-consent-konfiguration.html
2026-05-11 ingest Analytics Konfiguration stories stories/F-200-analytics-konfiguration.html
2026-05-11 ingest Anti-Spam Konfiguration stories stories/F-190-anti-spam-konfiguration.html
2026-05-11 ingest Contact Form Konfiguration stories stories/F-180-contact-form-konfiguration.html
2026-05-11 ingest Personen / Team Content Type stories stories/F-170-personen-team-content-type.html
2026-05-11 ingest Blog Konfiguration stories stories/F-150-blog-konfiguration.html
2026-05-11 ingest Social Meta Tags Konfiguration stories stories/F-140-social-meta-tags-konfiguration.html
2026-05-11 ingest Basic Page / Landing Page Konfiguration stories stories/F-130-basic-page-landing-page-konfiguration.html
2026-05-11 ingest Media Library Konfiguration stories stories/F-120-media-library-konfiguration.html
2026-05-11 ingest SEO Tools & GEO Konfiguration stories stories/F-110-seo-tools-geo-konfiguration.html
2026-05-11 ingest Bewerber-Flow stories stories/F-100-bewerber-flow.html
2026-05-11 ingest Karriere-Seite & Jobsuche stories stories/F-90-karriere-seite-jobsuche.html
2026-05-11 ingest Redaktionshandbuch & Einschulung stories stories/F-60-redaktionshandbuch-einschulung.html
2026-05-11 ingest Content Types & Felder stories stories/F-50-content-types-felder.html
2026-05-11 ingest Navigation & Seitenstruktur stories stories/F-40-navigation-seitenstruktur.html
2026-05-11 ingest Erweiterte Inhaltselemente stories stories/F-30-erweiterte-inhaltselemente.html
2026-05-11 ingest Drupal Theme & SOLCOM Corporate Design (Farben, Fonts, Grid) stories stories/F-20-drupal-theme-solcom-corporate-design-farben-fonts-grid.html
2026-05-11 ingest Aufbau CI / CD und Testautomatisierung stories stories/P-55-aufbau-ci-cd-und-testautomatisierung.html
2026-05-11 ingest Aufbau Hosting-Umgebungen auf Mittwald (Dev / Stage / Prod) stories stories/P-50-aufbau-hosting-umgebungen-auf-mittwald-dev-stage-prod.html
2026-05-11 ingest Aufbau lokale Entwicklungsumgebungen stories stories/P-45-aufbau-lokale-entwicklungsumgebungen.html
2026-05-11 ingest Planung und Durchführung Projekt Kick-off-Meeting stories stories/P-20-planung-und-durchfuehrung-projekt-kick-off-meeting.html
2026-05-11 ingest Projektinitialisierung und -planung stories stories/P-10-projektinitialisierung-und-planung.html
2026-05-11 decide PRD-Decomposition: to-plan als Default, to-issues als Opt-in adr adr/0023-prd-decomposition-to-plan-default.html
2026-05-11 ingest docs/-Strand erweitert um INDEX/LOG/wiki (Karpathy-Wiki-Pattern) meta INDEX.html
2026-05-09 decide HTML-First Documentation adr adr/0022-html-first-documentation.html
2026-05-09 decide AI Code Review via PR-Agent und adesso AI Hub adr adr/0021-ai-code-review-via-pr-agent.html
2026-05-06 supersede Mittwald Staging Live-State nach Bootstrap (löst 0005 ab) context context/0007-mittwald-staging-live.html
2026-05-06 ingest SOLCOM Mittwald Staging — Live-State nach Bootstrap context context/0007-mittwald-staging-live.html
2026-05-05 ingest SOLCOM Website-Terminologie — Projekt-intern vs. Live-Site context context/0006-website-terminology.html
2026-05-04 decide Auth-Failure-Protokoll für autonome Figma-MCP-Läufe adr adr/0020-figma-mcp-auth-failure-protocol.html
2026-05-04 decide Enterprise-Drupal-Deployment Mittwald via Azure DevOps adr adr/0019-enterprise-drupal-deployment-mittwald-azure.html
2026-05-04 decide Sitemap-Strang-zu-Sub-Site-Mapping adr adr/0018-sitemap-strang-zu-sub-site-mapping.html
2026-05-04 supersede Figma State (vollständig) — löst 0001-figma-state ab design design/0002-figma-state-2026-05-04.html
2026-05-04 sync SOLCOM Figma State 2026-05-04 (vollständig, Component-Library-Walk) design design/0002-figma-state-2026-05-04.html
2026-05-04 sync SOLCOM Figma State 2026-05-04 (initial) design design/0001-figma-state-2026-05-04.html
2026-05-04 ingest SOLCOM Mittwald Managed Hosting (mStudio) — Staging-Greenfield context context/0005-mittwald-hosting.html
2026-05-04 ingest SOLCOM Azure DevOps Projekt-Management context context/0004-azure-devops-project-management.html
2026-05-04 ingest SOLCOM Traffic-Baseline — ca. 40k Unique Visitors / Monat context context/0003-traffic-baseline.html
2026-05-03 ingest SOLCOM Website-Sitemap (Information Architecture) context context/0002-sitemap.html
2026-05-03 ingest SOLCOM IT-Landschaft (Drupal 2.0 zentrales System) context context/0001-it-landscape.html
2024-01-01 decide card-feature SDC — vierte Card-Familie als Pure-Slot Canvas-Wrapper adr adr/0017-card-feature-sdc-fourth-card-family-member.html
2024-01-01 decide Composite-Build-Decomposition + Autonomie-Klausel in /solcom-build-frontend adr adr/0016-composite-build-decomposition-in-solcom-build-frontend.html
2024-01-01 decide External-context snapshots in docs/context/ mit Ingestion- und Discovery-Agents adr adr/0015-external-context-docs-and-discovery-agents.html
2024-01-01 decide node.vacancy.full-Canvas-Content-Template-Overhaul adr adr/0014-vacancy-full-canvas-template-overhaul.html
2024-01-01 decide card-meta-list + meta-row — zwei neue SDCs für Field-gebundene Job-Meta-Listen adr adr/0013-card-meta-list-and-meta-row-topology.html
2024-01-01 decide Workflow-Skill /solcom-build-frontend für UI-Build-Disziplin adr adr/0012-solcom-build-frontend-workflow-skill.html
2024-01-01 decide mcp_server behalten und mcp_tools selektiv portieren adr adr/0011-replace-mcp-server-with-mcp-tools.html
2024-01-01 decide mcp_server-Familie als dev-only Modul-Set via config_split adr adr/0010-mcp-server-dev-only-via-config-split.html
2024-01-01 decide byte_theme:card — prop-driven Standard-Card mit Bubble-Frame-Outline adr adr/0009-byte-theme-card-prop-driven-reintroduction.html
2024-01-01 decide SOLCOM-Header: byte_theme:navbar bleibt, links-Slot wird Meta-Nav adr adr/0008-solcom-header-navbar-slot-refactor.html
2024-01-01 decide Hero billboard erweitern statt eigenständige hero-keyvisual SDC adr adr/0007-hero-billboard-keyvisual-slot-composition.html
2024-01-01 decide Agent Memory — geteilt im Repo, nicht in User-Pfad symlinken adr adr/0006-agent-memory-in-repo.html
2024-01-01 decide SOLCOM Bubble Card — SVG-Notch mit JS-getriebener Pille-Width-Anpassung adr adr/0005-bubble-card-notch-strategy.html
2024-01-01 decide SOLCOM Button-System — vier dedizierte SDCs + geteiltes Pillen-CSS adr adr/0004-solcom-button-system.html
2024-01-01 decide SOLCOM-Brandfarben als Hybrid-Layer im Theme verankern adr adr/0003-solcom-color-tokens-hybrid-mapping.html
2024-01-01 decide Canvas-Page-Region-Versions-Drift-Heilung adr adr/0002-canvas-page-region-version-repair.html
2026-05-17 ingest Wiki-Eintrag recipe-apply-risk angelegt — Doku, warum drush recipe:apply recipes/byte auf einer laufenden SOLCOM-Instanz nicht mehr ausgefuehrt werden darf (Config-Regression), plus Hypothese zur Canvas-Footer-Regression durch ddev drush cim -y auf veraltetem Branch-Stand. wiki wiki/recipe-apply-risk.html
2026-05-19 ingest Skill solcom-figma-to-sdc angelegt — Figma-spec-driven inner loop für Bau/Refactor einer einzelnen SDC-Komponente mit mid-build visueller Figma-Compare, SOLCOM-spezifischen Patterns (CVA, data-attr, Canvas-compat, Mobile-disable, Cursor-fix) und Accessibility-/Kernel-Test-Checklisten. agents .claude/skills/solcom-figma-to-sdc/SKILL.md
2026-05-19 ingest Story-Hub P2503-164 angelegt — Slider-Container & Slider-Item SDC-Erweiterungen: Infinite Carousel (mit Mobile-Disable < 768 px), Cursor-Grab beim Hovern, Bleed-Prop (none | sm). stories stories/P2503-164-slider-container-sdc.html
2026-05-19 ingest PRD P2503-164 angelegt — Slider-Container SDC-Erweiterungen: Problem Statement, drei Feature-Spezifikationen (Infinite, Cursor-Grab, Bleed), Props-Schema-Diff, technische Entscheidungen (Mobile-Disable-Pattern, data-grabbing, translateX-Korrektur), Kernel-Test-Übersicht. prds prds/2026-05-19-slider-container-sdc-prd.html
2024-01-01 decide Fork des Byte-Themes als „SOLCOM" mit Figma-Typografie adr adr/0001-byte-theme-fork-and-figma-typography.html
2026-05-25 ingest Story-Hub F-100 / P2503-90 refined — Bewerber-Flow: 9+2 Grilling-Achsen entschieden, 17 Personio-API-Live-Probes durchgeführt, Architektur auf Pfad C+ (Email-Inbox-Import + Webhook-ACK) fixiert, Pfad A direkter HTTP-POST als Future-Refactor-Option dokumentiert. Status REFINED, ADR und Implementation-Plan folgen als nächste Schritte. stories stories/F-100-bewerber-flow.html
2026-05-30 decide Voller 3-Achsen-Review (post-reconcile) mp/P2503-90 Pfad A — CLEAN: 0 HARD violations, kein Scope-Creep, spec-treu. Contract-Reconcile auf User-Decisions (Send-Token + files-live) + Live-Feature-Re-Test PASS verifiziert. Findings = vorab-bekannte Deferrals + File-Storage-Folge-Items. Supersedet den streamlined pfad-a-review. reports reports/2026-05-30-mp-P2503-90-reconcile-review.html
2026-06-17 ingest Dogfood-QA-Report P2503-226 Projektpartnerportal — alle 18 Akzeptanzkriterien als echter Freiberufler durchgespielt, 7 dabei gefundene Lücken geschlossen, voller Testlauf grün (79 Tests solcom_projektpartner/-_alert + 19 Tests Watchlist), 7 Video-Mitschnitte mit exakten Testanleitungen für die Abnahme. Zwei offene Punkte zur Abstimmung dokumentiert: Admin-Chrome für eingeloggte Endnutzer sichtbar (Härtung, seitenweite Rolle, eigenes Ticket) und Legal-Klärung zu D3. reports reports/2026-06-16-feature-p2503-226-projektpartnerportal-dogfood-qa.html
2026-07-04 decide ADR-0057: Legacy-Crawler-Feeds 1:1-Neos-Parity — 13 aktive Neos-Feeds (/asp/robots/*, /rss/*) zeichengenau in Drupal nachgebaut inkl. konservierter Altlasten (Tippfehler, HTML-4.0-Doctype, mode=FREELANCERCHECK); revidiert die „strukturtreu, bereinigt“-Linie aus P2503-113/226. RSM-Migration um GULPRobot/keinePortale/Zusatz/Start-Rohtext/aktiviert_am/tags erweitert; detail.asp(x)/detail-xing.asp(x) als 301-Redirects mit lfdNr-Lookup. Umsetzung via 28-Agent-Workflow wf_9f97c35d-52c (Fundament → 13 Ports → 13 adversariale Verifies → Integration). adr
2026-07-04 decide ADR-0057 erweitert: detail.asp(x)/detail-xing.asp(x) rendern statt des 301-Redirects (voriger Eintrag) eine eigenständige Parallelwelt-Detailseite — 1:1-Port von Neos Api/ProjectDetail.html mit vendored Original-Assets (CSS, ScalaSans, Hyphenator.js), lfdNr-Lookup ohne Status-Filter, 303 auf /de/404 bei ungültigen Parametern (Neos-Kontrakt). Site-Owner-Entscheidung vom 04.07.2026 („Müssen dort also eine Parallelwelt aufbauen“); der field_sf_id-Fallback des Redirects entfällt. adr adr/0057-legacy-crawler-feeds-neos-parity.html
2026-07-04 decide RSM-Bewerbungsmail: Plaintext-„Ersatzvertrag“ verworfen, Neos-1:1-Vertrag beschlossen — die Power App bleibt unverändert und parst weiter das Neos-Format. Umsetzung auf feature/p2503-199-neos-mail-parity: HTML-Tabellen-Mail nach Neos-Fluid-Template (Labels, Reihenfolge, Leerfeld-Auslassung, d.m.Y-Datum, Bewerbertyp „Gast“, Betreff-Doppel-Leerzeichen), Sammel-Eingangsbestätigung mit BCC bewerbung@solcom.de, Kernel-Golden-Master neu (12 Tests grün). Entscheidungen: skills+focus_areas zusammengeführt, „Divers“ wird ausgegeben, UTM-Betreff-Override als eigenes Ticket. Story-Hub-Spec entsprechend revidiert. stories stories/rsm-bewerbungs-webform.html