Architecture Decision Record

node.vacancy.full-Canvas-Content-Template-Overhaul nach Figma „Projektdetails"

3-Section-Topologie (Hero 33–66 + Body + Apply-CTA) für node.vacancy.full, mit hart vorverdrahtetem 5er-Field-Mapping für die Meta-Rows. Meta-Card-Topologie definiert in ADR-0013.

Kontext

Das aktuelle Canvas-Content-Template canvas.content_template.node.vacancy.full.yml besteht aus genau drei Render-Bausteinen: einem Breadcrumb-Block, einer einzelnen section mit Heading (Job-Titel) im Header-Slot und Text (field_body) im Main-Slot, sowie einer cta-Section mit Apply-Button.

Optisch wie strukturell ist das deutlich entfernt vom SOLCOM-Figma-Frame „Projektdetails" (figma.com/design/CHHDfbpX8Ys2LBiGs5HVK0?node-id=1019-78888), das Job- und Projekt-Detail-Pages als reichere Komposition zeigt: Hero-Bereich mit Meta-Card links (5 Eckdaten als Icon+Label+Value-Liste in einem Bubble-Frame), Job-Titel + Apply-Button rechts, darunter Lead-Text und Body, dann Cross-Sell-Section, dann Sticky-Apply-Bar am Footer. Das ganze auf Dark-Blue-Background mit Lime-Light-Effekten als Brand-Identity.

Daten-Gaps zum Figma: Der Frame zeigt „Dauer: 6 Monate +" und „Starttermin: 01.05.2026" — beides ist im Vacancy-Bundle nicht modelliert. Die Meta-Card-Inhalte müssen auf andere Vacancy-Felder umgemappt werden. Salary ist 4-Feld-Aggregat (min + max + currency + type) und passt nicht in einen einzigen Field-Ref-Slot.

Die Meta-Card-Komponenten-Topologie ist in ADR-0013 separat festgelegt. Diese ADR fixiert die Page-Section-Topologie und das 5er-Field-Mapping.

Entscheidung

3-Section-Topologie + Breadcrumb für node.vacancy.full, mit hart vorverdrahtetem 5er-Field-Mapping für die Meta-Rows. Konkret:

5er-Field-Mapping für Meta-Rows (Reihenfolge im Slot-Tree von oben nach unten):

PositionIcon (Phosphor)LabelField-Ref auf entity:node:vacancy
1briefcase„Stellentyp"field_employment_type.entity.name
2map-pin„Einsatzort"field_office.entity.name
3clock„Arbeitszeit"field_schedule.entity.name
4graduation-cap„Erfahrungslevel"field_seniority.entity.name
5identification-card„Stellen-Nr."field_personio_id.value

Rejected alternatives

rejected Aktuelles 3-Render-Bausteine-Template unverändert lassen, nur Brand-CSS-Layer drüberbügeln

Wäre Codepfad-frei, aber matcht das Figma in keinem Punkt: keine Meta-Card, kein 2-Spalten-Hero, kein visueller Brand-Auftritt. Verworfen — der ganze Overhaul-Auftrag wäre obsolet.

rejected Vollständig neuer Vacancy-View-Mode detail mit eigenem Content-Template, parallel zum unveränderten vacancy.full

Verworfen, weil dann zwei Templates gepflegt werden müssten und kein klarer Trigger entscheidet, wann full vs. detail rendert.

rejected 2-Spalten-Hero mit columns: 50-50

Die Meta-Card im Figma ist 473px breit auf 1120px Container = ~42% — 33-66 matcht das Figma-Verhältnis besser, und 50-50 würde die Title-Spalte zu schmal machen.

rejected Meta-Card als Sidebar in eigener Section unter dem Hero

Visuell kein Hero-Effekt mehr — die Meta-Card und der Job-Titel zusammen sind das, was Bewerbende „in 3 Sekunden scannen". Verworfen.

rejected Salary-Anzeige in die Meta-Card aufnehmen

Salary ist ein 4-Feld-Aggregat — passt nicht in einen einzigen Field-Ref pro meta-row.value. Workaround wäre Twig-Token-Replacement oder ein eigener salary-display-SDC. Beides Out-of-Scope für MVP.

rejected Cross-Sell-Sektion + Sticky-Apply-Bar mitumsetzen

Cross-Sell braucht eine vacancies-related-View (existiert nicht), Sticky-Bar braucht eigene SDC. Beide vergrößern den Scope substanziell und brauchen je einen eigenen Lens-Lauf. Verworfen für MVP.

rejected Background-Lights als Theme-CSS-Layer in dieser Iteration mitliefern

Theme-Eingriff mit absolut positionierten Glow-SVGs. Eigener Visual-Aufwand. Verworfen für MVP, eigener Folge-Issue.

rejected Years-Experience statt Erfahrungslevel als Position 4 der Meta-Card

field_seniority wurde gewählt, weil es das übergeordnete Karriere-Stadium beschreibt (Junior/Senior/Lead), während field_years_experience granularer aber redundant zu Job-Titel-Konventionen ist.

Consequences