Erster Pass-Report im Branch (Commit 27e7b4b) wurde ohne die jüngsten 4 Commits (27e7b4b, c36bf5b, 58a64e5, f2fe027) gegen origin/develop geschrieben. Pass 2 deckt den vollständigen aktuellen HEAD ab und superseded Pass 1.
666d638.
Alle 8 Empfehlungen aus Empfohlene Korrekturen vor Merge umgesetzt: Brand-Hex-Hardcodes auf var(--brand-*) (inkl. neuer Token --brand-gradient-blue mit Figma-Bestätigung gegen Frame 985-50024), tree: null aus vacancy.full entfernt, Inline-Ternaries in card-bubble-profile.twig in {% set %}-Variablen aufgelöst, BEF-Include mit only versehen, result-counter auf status: stable gehoben, ADR-0036 für field_matching_score-Stub angelegt, Plan 0001 um page_listing-Removal-Rationale ergänzt, PR-Description via Azure DevOps REST-API um Tooling-Scope + Pfad-Korrektur aktualisiert.
Browser-Verify bei 1280×900 zeigt: Border resolved auf rgb(0,80,160), Select/Input-Text auf rgb(0,31,70); Gradient-Glow visuell intakt.
Offen bleiben die Judgement calls (CVA-Migration Variant-Switch, Component-Level examples-Block, watchlist-bar Variant-Split, OOP-Hooks-Migration) — bewusst nicht adressiert, weil keine Hard-Findings.
card-bubble-profile.twig:22 — Inline-Ternary {{ matching_score == 0 ? 'text-white/70' : 'text-white' }} in class-Attribut. Regel: byte_theme/AGENTS.md §"No Conditionals in Class Attributes". Resolved 666d638: in {% set matching_text_class = ... %} aufgelöst.card-bubble-profile.twig:39 — Inline-Ternary für CTA-Variant. Selbe Regel. Resolved 666d638: in {% set cta_wrapper_class = ... %} aufgelöst.bef-checkboxes.html.twig:60 — {% include '@better_exposed_filters/bef-nested-elements.html.twig' %} ohne only. Regel: AGENTS.md Rule 11 (Context-Isolation). Resolved 666d638: Include mit forwarded Variablen + only.result-counter.component.yml:4 — status: experimental in produktiv eingebauter Canvas-Komponente. Regel: drupal-twig-sdc-reviewer.md (siehe Konflikt mit Canvas-Sektion). Resolved 666d638: auf status: stable gehoben.card-bubble-profile.twig:12–16 — Variant-Switch über {% set %}/{% if %} statt html_cva().card-bubble-profile.component.yml — Fehlender Component-Level examples-Block (Canvas-Discoverability).watchlist-bar.twig — Top-/Bottom-Variant rendert zwei unterschiedliche HTML-Strukturen in einem Template; CVA-Multi-Variant oder Komponenten-Split wäre wartbarer.byte_theme.theme — Neue prozedurale Hooks (byte_theme_preprocess_bef_links, *_theme_suggestions_*_alter) statt OOP-Migration auf ThemeHooks.php. Zwei-Track-Pattern entsteht.*_theme_suggestions_input_alter / _select_alter — Fallback auf $element['#id'] kann zu breite Theme-Suggestions liefern; im Diff kein konkreter Defekt.field.storage.node.field_matching_score.yml + field.field.node.project_offer.field_matching_score.yml — Neues Content-Model-Field (Phase-2-Stub) ohne ADR. Regel: drupal-config-architecture-reviewer.md (ADR-Pflicht bei neuer Komponente). Resolved 666d638: ADR-0036 angelegt + LOG + index-Eintrag.views.view.project_offers_listing.yml — page_listing-Display gelöscht. Keine ADR/Plan-Referenz; irreversibel via config:import. Resolved 666d638: Plan 0001 S-01 um Config-Cleanup-Detail (Irreversibilität, Backout-Pfad, Trigger durch Customer-Lens-Verdict) ergänzt.views.view.project_offers_listing.yml:470 — exposed_block: true korrekt für Sidebar-Layout.bef-checkboxes.html.twig:50–51 — #BEDC00 (Brand-Lime) hardcoded statt var(--brand-lime). Resolved 666d638.byte_theme.theme:174 — '!text-[#001F46]' (Brand-Dark-Blue) hardcoded in PHP-generiertem Class-String. Resolved 666d638: auf '!text-[var(--brand-dark-blue)]'.input--textfield--edit-einsatzort.html.twig:16 — text-[#828282] hardcoded. Resolved 666d638: auf text-[var(--brand-gray)] (plus angrenzendes text-[#001F46] und placeholder-[#828282] in Zeile 23 ebenfalls auf Tokens).select--edit-branche.html.twig:16,29 — text-[#001F46] ×2 hardcoded. Resolved 666d638: beide auf text-[var(--brand-dark-blue)].card-bubble-profile.twig:13 — border-[#0050A0]. Nicht in der SOLCOM-Brand-Palette. Design-Klärung gegen Figma 985-50024 erforderlich. Resolved 666d638: Figma-MCP get_design_context hat border-2 border-[#0050a0] border-solid auf Frame 985-50024 / Node 1013:68967 bestätigt; Hex ist der bottom-Endpunkt des Brand-Gradient. Neuer semantischer Token --brand-gradient-blue: #0050a0 in theme.brand.css; Border nutzt border-[var(--brand-gradient-blue)].watchlist-bar.twig:16 — bg-[#011C53]/30 (Background Blue) hardcoded statt bg-[var(--brand-bg-blue)]/30. Resolved 666d638.MCP-Pre-Check via tool_api_validate_canvas_tree: skipped — Tool-Signatur erwartet vollständigen Node-Tree-JSON, nicht template_id. Fallback: reine YAML-Analyse.
experimental vs. Twig/SDC-Reviewer).result-counter.component.yml — status: experimental. Canvas-SKILL.md erlaubt experimental, Twig/SDC-Reviewer verlangt stable. Vor Produktion auf stable heben.watchlist-bar.component.yml — variant-Prop ohne examples (optional, nicht required); Inkonsistenz zu card-bubble-profile.canvas.content_template.node.vacancy.full.yml — tree: null am Dateiende hinzugefügt. Schema-fremdes Feld (kein anderes Template hat es). Wahrscheinlich Canvas-Dump-Artefakt oder stale Debug-Key. Entfernen. Resolved 666d638: entfernt + partieller config:import ausgeführt, Sync-Status sauber.blog/page/project_offer/vacancy.full: component_tree-Indizes konsistent dekrementiert, parent_uuid-Verweise zeigen auf UUIDs, keine dangling refs.project_offer.card / vacancy.card / vacancy.full: component_version auf neue card-bubble-profile-Version 1e20bac3a1184e6a aktualisiert.inputs-Format: Statische Strings für Enum-Props ("variant": "listing") korrekt.canvas.component.block.views_exposed_filter_block.project_offers_listing-block_listing.yml: Plugin-ID, Provider, Dependencies vollständig.canvas.folder.5e3c80cd-…: Referenz-Integrität intakt.result-counter: doppelter Snapshot mit identischen Inhalten (zwei Save-Sessions im selben Commit) — kein operativer Schaden.Quellen: PR-Description (3 Fix-Items), docs/plans/0001-projektpartnerportal-listing-figma-alignment.html. Keine Linked Work Items in Azure DevOps (count: 0), kein F-XXX/P2503-XX in Commits oder Branch-Name.
58a64e5 chore(agents): globale Agents migrieren — 13 neue Agent-Dateien, +1144 Zeilen. Nicht in PR-Title oder Plan.c36bf5b chore(agents): redundante Reviewer entfernen, reviewers.html aktualisieren — 5 Agent-Files + reviewers.html. Tooling-Cleanup, eigener PR wäre korrekt.27e7b4b feat(solcom-review): Canvas-Achse + zwei Reports persistieren — Skill-Erweiterung +100 Zeilen, weder PR-Title noch Plan-Scope.db5d289 docs(wiki): recipe-apply-risk — Wiki-Page ohne Plan-Bezug.views-view--vacancies-listing--block-listing.html.twig adressiert die Karriere/Personio-View, nicht den Projektpartnerportal-Plan. Korrekt als fix(vacancy) markiert, aber Plan-Verknüpfung fehlt.9003 korrigiert ... → internal:/karriere-bei-solcom/offene-stellenanzeigen. solcom_vacancy.install setzt jedoch internal:/karriere-bei-solcom (ohne Sub-Pfad). View-Route ist /karriere-bei-solcom → Code korrekt, PR-Description fehlerhaft. Resolved 666d638: PR-Description via Azure DevOps REST-API gepatcht (Pfad-Korrektur + Test-Plan-Aktualisierung).666d638: PR-Description um neue Sektion „Tooling / Doku (Begleit-Commits, kein Frontend-Scope)" erweitert — die 4 fraglichen Commits (58a64e5, c36bf5b, 27e7b4b, db5d289, a1d46ff) sind dort einzeln mit Rationale aufgeführt. PR-Title bleibt fix(vacancy), Scope-Creep ist im Body sichtbar./karriere-bei-solcom/offene-stellenanzeigen — teilweise Klassen-Override greift, aber Route-Existenz im Diff nicht belegt; Browser-Verify fehlt.project_offers_listing, nicht für die Vacancy-View.update_9003 idempotent gated auf entity:canvas_page/21.vacancy.full Zeile 68 korrigiert.drush updb idempotent — ja666d638: alle 13 Hard-Findings + Doku-Drift + Scope-Creep abgearbeitet. Judgement calls (6 Stück) bewusst offen gelassen.
card-bubble-profile.twig:13 border-[#0050A0] ist via Figma-MCP (get_design_context Frame 985-50024 / Node 1013:68967) als korrekte Border-Farbe bestätigt — der Hex ist der bottom-Endpunkt des Brand-Gradient. Neuer semantischer Token --brand-gradient-blue: #0050a0 in theme.brand.css angelegt; Card-Border bindet jetzt border-[var(--brand-gradient-blue)]. Browser-Verify resolved auf rgb(0, 80, 160).
Empfohlene Korrekturen vor Merge (Reihenfolge nach Risiko) 8 / 8 abgearbeitet:
var(--brand-*)-Tokens umstellen — insbesondere Klärung zu #0050A0. Done 666d638.tree: null in canvas.content_template.node.vacancy.full.yml entfernen. Done 666d638.card-bubble-profile.twig in CVA/Variable-Form auflösen. Done 666d638.{% include '@better_exposed_filters/...' %} mit only ergänzen. Done 666d638.result-counter Theme-Side auf status: stable heben (Konsistenz mit Twig/SDC-Reviewer-Erwartung). Done 666d638.field_matching_score nachreichen oder Field-Stub in einen eigenen PR aushebeln. Done 666d638: ADR-0036.58a64e5, c36bf5b, 27e7b4b, db5d289) in einen separaten PR ziehen oder PR-Title/Description um Tooling-Scope erweitern. Done 666d638: PR-Description um Sektion „Tooling / Doku" erweitert.666d638: Filter-Bar funktional (Standard-BEF-Widgets — Office, Department, Company, Employment Type, Seniority). Figma-styling der Vacancy-View ist nicht PR-Scope (fix(vacancy)), AK gilt damit als funktional erfüllt.