Deploy / validate-dispatch (push) Successful in 43s
Deploy / scheduled-rebuild-dev (push) Skipped
Deploy / scheduled-rebuild-master (push) Skipped
Deploy / rollback-dev (push) Skipped
Deploy / rollback-master (push) Skipped
Deploy / changes (push) Successful in 13s
Deploy / secret-scan (push) Successful in 9s
Deploy / app-quality (push) Successful in 11m21s
Deploy / security-deps (push) Successful in 14s
Deploy / context (push) Failing after 1s
Deploy / app-image (push) Skipped
Deploy / deploy-dev (push) Skipped
Deploy / deploy-master (push) Skipped
686 lines
18 KiB
Markdown
686 lines
18 KiB
Markdown
# Codex-Masterprompt: Neue Website der Gemeinde Goldebek
|
||
|
||
Du arbeitest als Senior Full-Stack-Engineer, UX-Designer und Accessibility-Engineer. Deine Aufgabe ist, auf Basis dieses Repositories eine neue offizielle Website für die **Gemeinde Goldebek, Schleswig-Holstein** zu erstellen.
|
||
|
||
Die Website ersetzt inhaltlich die bisherige Jimdo-Seite. Sie soll **nicht** deren Gestaltung kopieren, sondern Inhalte und Funktionen sauber migrieren, aktualisieren und in eine moderne, langfristig pflegbare Struktur überführen.
|
||
|
||
## 0. Arbeitsweise
|
||
|
||
1. Untersuche zuerst das vorhandene Repository:
|
||
- Framework, Package Manager, Lockfile, Buildsystem, bestehende Komponenten, CI/CD und Deployment.
|
||
- Wenn bereits ein funktionierender Stack vorhanden ist, bleibe darin und passe dich ihm an.
|
||
- Wenn das Repository leer bzw. nur ein Grundgerüst ist, verwende eine aktuelle stabile Version von **Next.js mit App Router, TypeScript und Tailwind CSS**.
|
||
2. Entferne keine funktionierenden CI/CD-Pipelines oder Deployment-Konfigurationen.
|
||
3. Arbeite end-to-end: Informationsarchitektur, Datenmodell, Komponenten, Seiten, responsive Darstellung, Accessibility, SEO, Tests und Dokumentation.
|
||
4. Erfinde **keine** Telefonnummern, Namen, Termine, Gebühren, Satzungen, Öffnungszeiten, Rechtstexte oder Projektstände.
|
||
5. Alle dynamischen Daten müssen eine Quelle und `lastVerified` besitzen.
|
||
6. Wenn sich Quellen widersprechen, verwende die in `goldebek_data_2026-09-18.json` dokumentierte Entscheidung. Offene Punkte bleiben offen und werden nicht stillschweigend „gelöst“.
|
||
7. Übernimm keine privaten Gastgeberadressen aus alten Veranstaltungskalendern.
|
||
8. Übernimm keine fremden Fotos ohne geklärte Nutzungsrechte.
|
||
9. Verwende keine Tracker, externen Marketing-Skripte oder unnötige Third-Party-Einbindungen.
|
||
10. Liefere am Ende eine vollständig bau- und testbare Anwendung.
|
||
|
||
## 1. Verbindliche Datenbasis
|
||
|
||
Im Projekt liegt die Datei:
|
||
|
||
`goldebek_data_2026-09-18.json`
|
||
|
||
Behandle diese Datei als primären Content-Seed. Zusätzlich liegt eine ausführliche Recherche in:
|
||
|
||
`goldebek_recherche_2026-09-18.md`
|
||
|
||
Für Fakten mit `status: "needs-verification"` darfst du im öffentlichen Produktions-UI **keine ungeprüfte Behauptung** erzeugen. Solche Inhalte entweder:
|
||
- ausblenden,
|
||
- nur als redaktionellen TODO in einer Entwickler-/Preview-Ansicht markieren,
|
||
- oder auf die offizielle externe Quelle verlinken.
|
||
|
||
## 2. Zielbild
|
||
|
||
Die Website soll sich anfühlen wie ein **hochwertiges, modernes norddeutsches Gemeindeportal**:
|
||
|
||
- vertrauenswürdig
|
||
- unaufgeregt
|
||
- lokal
|
||
- freundlich
|
||
- offiziell
|
||
- sehr gut auf Mobilgeräten
|
||
- schnell
|
||
- barrierearm/barrierefrei
|
||
- redaktionell leicht pflegbar
|
||
|
||
Nicht erwünscht:
|
||
- generische „KI“-Optik
|
||
- übertriebene Gradients
|
||
- Glasmorphismus
|
||
- große animierte 3D-Effekte
|
||
- touristische Stockfoto-Ästhetik
|
||
- unnötige Carousels
|
||
- aggressive Animationen
|
||
- Marketing-Sprech
|
||
|
||
## 3. Visuelles System
|
||
|
||
Orientiere die Akzentfarben am Gemeindewappen:
|
||
|
||
- tiefes Blau
|
||
- natürliches Grün
|
||
- warmes Gold
|
||
- Weiß / Off-White / sehr helle neutrale Flächen
|
||
|
||
Wichtig:
|
||
- Das Wappen selbst niemals stilisieren, umfärben, nachzeichnen oder als dekoratives Pattern verfremden.
|
||
- Verwende nur eine von der Gemeinde freigegebene offizielle Wappengrafik.
|
||
- Falls aktuell keine freigegebene Datei im Repo liegt, nutze einen klar markierten Asset-Platzhalter im Code und dokumentiere ihn in `CONTENT_CHECKLIST.md`.
|
||
|
||
Visuelle Idee:
|
||
- ruhige horizontale oder leicht wellige Linien können dezent den Goldebeker Mühlenstrom zitieren
|
||
- moderne serifenlose Typografie
|
||
- klare Raster
|
||
- großzügiger Weißraum
|
||
- robuste Card-Komponenten
|
||
- dezente Schatten
|
||
- deutlich sichtbare Fokuszustände
|
||
- keine Informationen ausschließlich über Farbe vermitteln
|
||
|
||
Nutze möglichst Systemfonts oder lokal eingebundene freigegebene Fonts. Keine externen Google-Font-Aufrufe.
|
||
|
||
## 4. Informationsarchitektur
|
||
|
||
Erstelle folgende Hauptnavigation:
|
||
|
||
### Startseite
|
||
### Aktuelles
|
||
### Termine
|
||
### Gemeinde
|
||
- Über Goldebek
|
||
- Zahlen & Fakten
|
||
- Geschichte
|
||
- Wappen
|
||
- Dorfchronik
|
||
|
||
### Leben & Gemeinschaft
|
||
- Dörpshuus
|
||
- Spielplatz
|
||
- Vereine
|
||
- Freiwillige Feuerwehr
|
||
- Kulturausschuss
|
||
- Senioren
|
||
- Alltagshilfe Osterdörfer
|
||
|
||
### Politik & Verwaltung
|
||
- Bürgermeister & Gemeindevertretung
|
||
- Sitzungen & Protokolle
|
||
- Satzungen & Steuern
|
||
- Bauleitplanung
|
||
- Projekte & Entwicklung
|
||
|
||
### Service
|
||
- Ansprechpartner
|
||
- Mobilität
|
||
- Fahrbücherei
|
||
- Abfall & Abwasser
|
||
- Bildung / Kita / Schule
|
||
- Wichtige Links
|
||
|
||
### Kontakt
|
||
|
||
Footer:
|
||
- Impressum
|
||
- Datenschutz
|
||
- Erklärung zur Barrierefreiheit
|
||
- Amt Mittleres Nordfriesland
|
||
- Quellen-/Stand-Hinweis, wo sinnvoll
|
||
|
||
## 5. Startseite
|
||
|
||
### Hero
|
||
|
||
Eyebrow:
|
||
`Gemeinde Goldebek · Nordfriesland`
|
||
|
||
H1:
|
||
`Moin in Goldebek`
|
||
|
||
Einleitung:
|
||
`Goldebek liegt im nordöstlichen Nordfriesland zwischen Bredstedt und Wanderup. Landwirtschaft, Ehrenamt, Vereine und gemeinschaftliche Projekte prägen das Dorf.`
|
||
|
||
CTA:
|
||
- `Aktuelle Termine`
|
||
- `Goldebek entdecken`
|
||
|
||
### Faktenleiste
|
||
|
||
- 381 Einwohner – Stand 31.03.2026
|
||
- 10,18 km²
|
||
- Kreis Nordfriesland
|
||
- PLZ 25862
|
||
|
||
### Danach
|
||
|
||
1. **Aktuelles** – maximal drei aktuelle Meldungen
|
||
2. **Nächste Termine** – die nächsten 3–5 bestätigten Termine
|
||
3. **Schnellzugriffe**
|
||
- Dörpshuus
|
||
- Gemeindevertretung
|
||
- Alltagshilfe
|
||
- Fahrbücherei
|
||
4. **Goldebek entdecken**
|
||
- Geschichte
|
||
- Mühlenstrom
|
||
- Dorfchronik
|
||
- Wappen
|
||
5. **Gemeinschaft**
|
||
- Vereine
|
||
- Feuerwehr
|
||
- Kulturausschuss
|
||
6. **Projekte & Entwicklung**
|
||
- Spielplatz
|
||
- Wärmeplanung
|
||
- Bauleitplanung
|
||
7. **Kontakt / Amt**
|
||
|
||
## 6. Inhalte, die bereits als verifiziert gelten
|
||
|
||
### Basisdaten
|
||
|
||
- Name: Goldebek
|
||
- Bundesland: Schleswig-Holstein
|
||
- Kreis: Nordfriesland
|
||
- Amt: Mittleres Nordfriesland
|
||
- AGS: 01054037
|
||
- PLZ: 25862
|
||
- Fläche: 10,18 km²
|
||
- Einwohner: 381 zum 31.03.2026
|
||
- Dichte: 37 Einwohner/km²
|
||
|
||
Siedlungsteile:
|
||
- Goldebek
|
||
- Heinsbek
|
||
- Kolonie
|
||
- Süderhuus
|
||
- Goldebekfeld
|
||
|
||
### Geschichte
|
||
|
||
- erste urkundliche Erwähnung: 1321
|
||
- Gemeinde seit 1934 selbstständig
|
||
- Mühle 1948 abgebrochen
|
||
- Namenswechsel Goldebeck → Goldebek mit Wirkung 01.11.1961
|
||
- Dörpshuus 2000 errichtet
|
||
- Dorfchronik Band 1: 1992
|
||
- Dorfchronik Band 2: April 2022
|
||
- Spielplatz am Langbarg: eröffnet 02.08.2026
|
||
|
||
### Bürgermeister
|
||
|
||
Peter Jessen
|
||
Am Mühlenstrom 14
|
||
25862 Goldebek
|
||
Telefon 04673/962229
|
||
Fax 04673/962688
|
||
|
||
### Gemeindevertretung
|
||
|
||
- Peter Jessen
|
||
- Hauke Jensen
|
||
- Volker Hansen
|
||
- Timo Jensen
|
||
- Catarina Tudsen
|
||
- Stefan Christiansen
|
||
- Rainer Bakker
|
||
- Finn Christiansen
|
||
- Nils Hörner
|
||
|
||
Achtung: Bei „Nils Hörner“ besteht eine Schreibweisen-Differenz zu einzelnen Sitzungsunterlagen. Im öffentlichen Seed die Amt-Schreibweise verwenden, aber in `CONTENT_CHECKLIST.md` als zu bestätigenden Punkt führen.
|
||
|
||
### Hebesätze / Hundesteuer
|
||
|
||
- Grundsteuer A: 595 v.H.
|
||
- Grundsteuer B: 517 v.H.
|
||
- Gewerbesteuer: 400 v.H.
|
||
- 1. Hund: 90 €/Jahr
|
||
- 2. Hund: 110 €/Jahr
|
||
- jeder weitere Hund: 110 €/Jahr
|
||
|
||
Mit Stand-Datum und Quelle darstellen.
|
||
|
||
### Dörpshuus
|
||
|
||
Adresse:
|
||
`Am Brodersberg 16, 25862 Goldebek`
|
||
|
||
Service-Telefon:
|
||
`0173 3826343`
|
||
|
||
Errichtet:
|
||
`2000`
|
||
|
||
Gebühren, zuletzt aus Ratsunterlagen 02.12.2025 bestätigt:
|
||
- Einwohner: 150 €
|
||
- Feuerwehr-Kameradschaftsraum: 60 €
|
||
- Auswärtige: 300 €
|
||
- Endreinigung: 70 €
|
||
- Fehlbenutzung Notausgang: 50 €
|
||
|
||
Kapazität laut Flyer April 2025:
|
||
- 80 Dörpshuus
|
||
- 20 Kameradschaftsraum
|
||
- maximal 100 insgesamt
|
||
|
||
Kaution NICHT veröffentlichen, solange der aktuelle Wert nicht bestätigt wurde.
|
||
|
||
### Spielplatz
|
||
|
||
- Name: Spielplatz am Langbarg
|
||
- eröffnet: 02.08.2026
|
||
- Projektvolumen: rund 145.000 €
|
||
- VR Bank Nord Stiftung: 10.000 € Spende
|
||
- Bürgerwindpark Veer Dörper: 500 € Spende
|
||
- Zweck: Treffpunkt für Kinder, Familien und Dorf
|
||
|
||
### Alltagshilfe Osterdörfer
|
||
|
||
Seit 01.01.2026 für:
|
||
- Goldebek
|
||
- Goldelund
|
||
- Joldelund
|
||
- Högel
|
||
- Kolkerheide
|
||
|
||
Beispiele:
|
||
- Einkäufe
|
||
- Fahrten zu Arztterminen
|
||
- kurze Kinderbetreuung
|
||
- kleine Alltagshilfen
|
||
|
||
Kein Ersatz für professionelle Pflege-, Handwerks-, Garten- oder Taxileistungen.
|
||
|
||
Kosten:
|
||
- 5 € je angefangener Stunde
|
||
- 0,50 €/km
|
||
|
||
Kontakt Goldebek:
|
||
Peter Jessen, 0151/70089673
|
||
|
||
### Mobilität
|
||
|
||
Aktuell verwendete ÖPNV-Linie:
|
||
`130`
|
||
|
||
Halte laut Betreiberseite:
|
||
- Goldebek Kreuzung
|
||
- Goldebek Dorfstraße
|
||
- Süderhuuser Straße 5
|
||
- Süderhuus
|
||
|
||
Keine Fahrzeiten in den Code kopieren. Link zur aktuellen Betreiberseite.
|
||
|
||
### Fahrbücherei
|
||
|
||
Haltestelle:
|
||
`Dorfstraße 12`
|
||
|
||
Zeit:
|
||
`15:55–16:20`
|
||
|
||
Noch kommende Termine ab Recherche-Stand 18.09.2026:
|
||
- 09.10.2026
|
||
- 06.11.2026
|
||
- 04.12.2026
|
||
|
||
## 7. Events
|
||
|
||
Baue ein sauberes Event-System.
|
||
|
||
Erforderliche Eigenschaften:
|
||
|
||
```ts
|
||
type Event = {
|
||
id: string
|
||
slug: string
|
||
title: string
|
||
summary?: string
|
||
startDate: string
|
||
startTime?: string
|
||
endDate?: string
|
||
endTime?: string
|
||
timezone: "Europe/Berlin"
|
||
location?: string
|
||
organizer?: string
|
||
sourceUrl?: string
|
||
sourceName?: string
|
||
lastVerified: string
|
||
status: "verified" | "dynamic" | "needs-verification" | "archived"
|
||
privacyApproved?: boolean
|
||
}
|
||
```
|
||
|
||
Funktionen:
|
||
- kommende Termine
|
||
- Terminarchiv
|
||
- Detailseite
|
||
- ICS-Download pro Termin
|
||
- optional ein Gesamt-ICS-Feed
|
||
- schema.org/Event JSON-LD
|
||
- Datumsausgabe deutsch
|
||
- Zeitzone Europe/Berlin
|
||
- Wochentag immer aus dem Datum berechnen
|
||
- Vergangenes automatisch ins Archiv einordnen
|
||
- keine privaten Adressen ausgeben, wenn `privacyApproved !== true`
|
||
|
||
Seed die bestätigten Events aus `goldebek_data_2026-09-18.json`.
|
||
|
||
## 8. News
|
||
|
||
News-Datenmodell:
|
||
|
||
```ts
|
||
type NewsItem = {
|
||
id: string
|
||
slug: string
|
||
title: string
|
||
teaser: string
|
||
body: string
|
||
publishedAt: string
|
||
updatedAt?: string
|
||
image?: {
|
||
src: string
|
||
alt: string
|
||
copyright?: string
|
||
}
|
||
sourceUrl?: string
|
||
sourceName?: string
|
||
lastVerified: string
|
||
status: "published" | "draft" | "archived"
|
||
}
|
||
```
|
||
|
||
Lege als erste aktuelle Meldung den neuen Spielplatz an. Textlich nüchtern und lokal, nicht werblich überziehen.
|
||
|
||
## 9. Content-System
|
||
|
||
Ziel: keine Inhalte hart in React-Komponenten verstreuen.
|
||
|
||
Bevorzugt:
|
||
- `/content`
|
||
- `/data`
|
||
- JSON/YAML/MDX
|
||
- Schema-Validierung mit Zod
|
||
|
||
Beispielstruktur:
|
||
|
||
```text
|
||
content/
|
||
news/
|
||
pages/
|
||
events/
|
||
data/
|
||
municipality.json
|
||
council.json
|
||
services.json
|
||
clubs.json
|
||
sources.json
|
||
lib/
|
||
content/
|
||
dates/
|
||
validation/
|
||
```
|
||
|
||
Baue einen Validierungsschritt, z. B.:
|
||
|
||
`pnpm data:validate`
|
||
|
||
Prüfungen:
|
||
- doppelte Slugs
|
||
- ungültige ISO-Daten
|
||
- Event-Datum/Wochentag-Konsistenz
|
||
- fehlendes `lastVerified` bei dynamischen Daten
|
||
- fehlende Quelle bei politischen/administrativen Fakten
|
||
- abgelaufene `validUntil`-Einträge
|
||
- `needs-verification` darf nicht versehentlich als verifiziert angezeigt werden
|
||
- private Adressen nur mit Freigabeflag
|
||
|
||
## 10. Quellenkonzept
|
||
|
||
Pflege Quellen zentral in `data/sources.json`.
|
||
|
||
Jeder volatile oder verwaltungsbezogene Inhalt kann auf eine `sourceId` referenzieren.
|
||
|
||
Im öffentlichen UI:
|
||
- nicht jede Seite muss mit Quellen überladen sein
|
||
- bei Steuern, Fahrplänen, Verwaltung, Projekten und aktuellen Daten einen dezenten `Stand: …`-Hinweis und „Amtliche Quelle“ anbieten
|
||
- externe Links klar kennzeichnen
|
||
|
||
## 11. Bilder und Rechte
|
||
|
||
Die Recherche hat auf der Amt-Seite hochwertige Ortsbilder gefunden, die dort mit Fotografen-Copyright gekennzeichnet sind. Diese Bilder sind **nur Referenz**, nicht automatisch nutzbare Website-Assets.
|
||
|
||
Daher:
|
||
- keine Bilder von der Amt-Seite herunterladen oder kopieren
|
||
- keine Bild-URLs hotlinken
|
||
- im Projekt saubere Platzhalter/Asset-Slots vorsehen
|
||
- benötigte Motive in `CONTENT_CHECKLIST.md` aufführen:
|
||
- Luft-/Ortsansicht
|
||
- Dörpshuus
|
||
- Spielplatz
|
||
- Ortseingang/Wappenstein
|
||
- Landschaft/Mühlenstrom
|
||
- Vereinsleben
|
||
- Feuerwehr
|
||
- Streuobstwiese/Feste
|
||
|
||
Jedes Bildmodell soll `alt` und optional `copyright` enthalten.
|
||
|
||
## 12. Karte
|
||
|
||
Keine Google-Maps- oder externe OSM-Iframe-Einbindung standardmäßig laden.
|
||
|
||
Bevorzugt:
|
||
- kleine statische Lagekarte als eigenes Asset, wenn vorhanden, oder
|
||
- gut gestaltete Standortkarte mit Link `In OpenStreetMap öffnen`
|
||
|
||
So bleibt die Startseite ohne Third-Party-Requests datenschutzfreundlich.
|
||
|
||
## 13. Politik und Verwaltung
|
||
|
||
Die Website ist eine kommunale Informationsseite, keine politische Kampagnenseite.
|
||
|
||
Darstellung:
|
||
- neutral
|
||
- sachlich
|
||
- keine Rankings oder wertenden Beschreibungen
|
||
- keine parteipolitische Gestaltung
|
||
- Ratsmitglieder gleichartig darstellen
|
||
|
||
Sitzungen und Protokolle:
|
||
- eine übersichtliche Einstiegsseite
|
||
- möglichst auf die amtliche bzw. aktuelle Dokumentquelle verlinken
|
||
- keine veralteten Protokollkopien als „aktuell“ ausgeben
|
||
|
||
Satzungen:
|
||
- nur Titel und Link zur aktuellen Amt-Version
|
||
- keine alte PDF-Kopie im Repo pflegen, wenn das Amt die maßgebliche Fassung bereitstellt
|
||
|
||
Bauleitplanung:
|
||
- auf die aktuelle Seite des Amtes verlinken
|
||
- keine Statusaussage aus alten Ratsprotokollen ableiten
|
||
|
||
## 14. Barrierefreiheit
|
||
|
||
Ziel mindestens WCAG 2.2 AA und gute Praxis für kommunale Websites.
|
||
|
||
Pflicht:
|
||
- semantisches HTML
|
||
- Skip-Link
|
||
- vollständig tastaturbedienbar
|
||
- sichtbare Fokuszustände
|
||
- ausreichende Kontraste
|
||
- Form-Labels
|
||
- sinnvolle Überschriftenhierarchie
|
||
- `aria-*` nur dort, wo semantisches HTML nicht reicht
|
||
- `prefers-reduced-motion`
|
||
- Alt-Texte
|
||
- keine Auto-Play-Medien
|
||
- keine Informationen ausschließlich über Farbe
|
||
- Touch Targets ausreichend groß
|
||
- 200-%-Zoom ohne Funktionsverlust
|
||
- verständliche Linktexte
|
||
|
||
Erstelle eine Seite `Barrierefreiheit`, aber **erfinde keine rechtsverbindliche Erklärung**. Nutze einen klar markierten, nicht als final ausgegebenen Redaktionsplatzhalter.
|
||
|
||
## 15. Datenschutz
|
||
|
||
Standard:
|
||
- kein Google Analytics
|
||
- kein Meta Pixel
|
||
- keine Marketing-Cookies
|
||
- keine automatisch geladenen externen Karten/Videos
|
||
- keine Drittanbieter-Schriftarten
|
||
- kein Cookie-Banner nur „vorsichtshalber“
|
||
|
||
Falls später Analyse benötigt wird:
|
||
- Architektur für datenschutzfreundliche, ggf. selbst gehostete Lösung offen halten
|
||
- erst nach rechtlicher Freigabe aktivieren
|
||
|
||
Kontaktformular nur bauen, wenn ein sinnvoller Backend-/Mailweg und Spam-Schutz vorhanden sind. Sonst lieber gut gestaltete `mailto:`-/`tel:`-Kontakte.
|
||
|
||
## 16. SEO und strukturierte Daten
|
||
|
||
Implementieren:
|
||
- individuelle Titles/Descriptions
|
||
- Canonicals
|
||
- OpenGraph
|
||
- Sitemap
|
||
- robots.txt
|
||
- sprechende deutsche Slugs
|
||
- locale `de_DE`
|
||
- JSON-LD für Gemeinde/Organisation
|
||
- JSON-LD für Events
|
||
- Breadcrumbs
|
||
|
||
Keine Keyword-Spam-Texte.
|
||
|
||
## 17. Performance
|
||
|
||
Ziele:
|
||
- Lighthouse möglichst >95 in Performance/Accessibility/Best Practices/SEO
|
||
- sehr wenig Client-JavaScript
|
||
- Server Components / statische Seiten bevorzugen
|
||
- Bilder optimieren
|
||
- keine Layout Shifts
|
||
- keine unnötigen Animation-Libraries
|
||
- keine schweren Icon-Pakete, wenn wenige SVGs reichen
|
||
|
||
## 18. Suchfunktion
|
||
|
||
Wenn mit vertretbarem Aufwand möglich:
|
||
- kleine clientseitige Suche über Seiten, News, Termine und Vereine
|
||
- kein externer Suchdienst
|
||
- Suchindex beim Build generieren
|
||
|
||
Wenn es die Komplexität unnötig erhöht, sauber weglassen und dokumentieren.
|
||
|
||
## 19. Rechtliche Seiten
|
||
|
||
Erstelle Routen und Layout für:
|
||
- Impressum
|
||
- Datenschutz
|
||
- Barrierefreiheit
|
||
|
||
Aber:
|
||
- keine juristischen Inhalte erfinden
|
||
- im Entwicklungsstand klare Platzhalter
|
||
- in Produktionskonfiguration keine erfundenen Texte als final ausgeben
|
||
|
||
## 20. Migration alter URLs
|
||
|
||
Lege eine Redirect-Matrix an, soweit alte Pfade bekannt sind, z. B.:
|
||
|
||
```text
|
||
/die-gemeinde/ueber-uns/ -> /gemeinde/ueber-goldebek
|
||
/die-gemeinde/doerpshuus/ -> /leben/doerpshuus
|
||
/die-gemeinde/dorfchronik/ -> /gemeinde/dorfchronik
|
||
/die-gemeinde/kulturausschuss/ -> /leben/kulturausschuss
|
||
/termine/ -> /termine
|
||
/gemeindevertretung/ -> /politik/gemeindevertretung
|
||
/vereine/ -> /leben/vereine
|
||
```
|
||
|
||
Wenn das Hosting Redirects anders konfiguriert, passe die technische Umsetzung an den Stack an.
|
||
|
||
## 21. Tests und Qualitätschecks
|
||
|
||
Mindestens:
|
||
- TypeScript typecheck
|
||
- ESLint
|
||
- Produktions-Build
|
||
- Unit-Tests für Eventsortierung und Archivierung
|
||
- Unit-Test für Europe/Berlin-Datumslogik
|
||
- Unit-Test der Content-Schema-Validierung
|
||
- Link-Prüfung für interne Links
|
||
- Accessibility-Smoke-Test mit axe oder gleichwertig, wenn Stack geeignet
|
||
- keine Console-Errors
|
||
|
||
## 22. Dokumentation
|
||
|
||
Erstelle:
|
||
|
||
### `README.md`
|
||
- Setup
|
||
- lokale Entwicklung
|
||
- Build
|
||
- Deployment
|
||
- Content-Struktur
|
||
- neue News anlegen
|
||
- neuen Termin anlegen
|
||
- Ratsmitglieder aktualisieren
|
||
- Quelle/lastVerified pflegen
|
||
- Bild mit Copyright pflegen
|
||
- jährliche Updates
|
||
|
||
### `CONTENT_CHECKLIST.md`
|
||
|
||
Mindestens diese offenen Punkte:
|
||
- [ ] Heimatmuseum-Telefon bestätigen
|
||
- [ ] Schreibweise Nils Hörner/Höner bestätigen
|
||
- [ ] aktuelle Dörpshuus-Kaution bestätigen
|
||
- [ ] vollständige aktuelle Dörpshuus-Nutzungsbedingungen prüfen
|
||
- [ ] freigegebene Wappen-Datei bereitstellen
|
||
- [ ] Bildrechte / Originalbilder bereitstellen
|
||
- [ ] aktueller Abfall-Link
|
||
- [ ] aktueller Abwasser-Link
|
||
- [ ] B-Plan-5-/Baugrundstücksstatus bestätigen
|
||
- [ ] Windparkdaten nur bei gewünschter Veröffentlichung aktualisieren
|
||
- [ ] Rechtstexte bereitstellen/freigeben
|
||
- [ ] Fahrbücherei-Fahrplan für Folgejahr aktualisieren
|
||
- [ ] Veranstaltungskalender für Folgejahr aktualisieren
|
||
|
||
## 23. Wichtige Datenkonflikte – niemals falsch übernehmen
|
||
|
||
1. **Einwohner:** 381 zum 31.03.2026 verwenden. Alte Zahl 350 verwerfen.
|
||
2. **Bus:** aktuelle Betreiberseite = Linie 130. Alte Angabe R125 nicht verwenden.
|
||
3. **Spielplatz:** seit 02.08.2026 eröffnet. Alte OEK-Aussage „kein Spielplatz“ ist überholt.
|
||
4. **Heimatmuseum:** Telefonnummer widersprüchlich. Nicht veröffentlichen.
|
||
5. **Nils Hörner/Höner:** Amt-Schreibweise verwenden und als Prüfpunkt dokumentieren.
|
||
6. **Dörpshuus-Kaution:** nicht veröffentlichen, bis bestätigt.
|
||
7. **Windpark:** keine statische Anlagenzahl wegen Repowering.
|
||
8. **Private Adventsadressen:** nicht ungeprüft migrieren.
|
||
|
||
## 24. Definition of Done
|
||
|
||
Die Aufgabe ist fertig, wenn:
|
||
|
||
- die neue Informationsarchitektur umgesetzt ist
|
||
- Startseite und alle Hauptbereiche existieren
|
||
- alle bestätigten Seed-Daten strukturiert vorliegen
|
||
- Events automatisch kommende/vergangene Termine unterscheiden
|
||
- Quellen- und Prüfstatus technisch abgebildet sind
|
||
- mobile und Desktopdarstellung hochwertig sind
|
||
- Wappen-/Bildrechte nicht verletzt werden
|
||
- keine ungeprüften Fakten erfunden wurden
|
||
- `typecheck`, `lint`, Tests und Produktions-Build erfolgreich laufen
|
||
- README und CONTENT_CHECKLIST vollständig sind
|
||
|
||
Arbeite jetzt das Repository vollständig durch und implementiere diese Website. Triff sinnvolle technische Detailentscheidungen selbstständig, ohne die inhaltlichen Sicherheitsregeln zu umgehen.
|