This commit is contained in:
2026-05-10 12:08:05 +02:00
parent c0bcdb8282
commit 563e8b4862

View File

@@ -1,318 +0,0 @@
const fs = require("fs");
const B = String.fromCharCode(96);
const T = B + B + B;
const lines = [
"# Agent-Richtlinien f\u00fcr dieses Projekt",
"",
"## Systemumgebung",
"",
"- **Betriebssystem: Windows** \u2013 Alle Befehle und Pfade m\u00fcssen Windows-kompatibel sein (z. B. Pfadtrennzeichen " +
B +
"\\" +
B +
", PowerShell-Syntax).",
"",
"---",
"",
"## Projekt\u00fcbersicht",
"",
"- **Statische Landingpage** f\u00fcr **Haus Schleusingen**",
"- Reines HTML, CSS und JavaScript (kein Framework, kein Build-Step)",
"- Ausgeliefert \u00fcber einen **Nginx-Docker-Container** (nginx:alpine)",
"- Git-Repository: " +
B +
"https://git.home.kies-media.de/greggy/landingpage-haus-schleusingen.git" +
B,
"",
"### Dateistruktur",
"",
"| Pfad | Beschreibung |",
"|-------------------------------|----------------------------------------------|",
"| " +
B +
"haus-schleusingen.html" +
B +
" | Einstiegsseite (einzige HTML-Datei) |",
"| " +
B +
"css/haus-schleusingen.css" +
B +
" | Hauptstylesheet |",
"| " +
B +
"js/haus-schleusingen.js" +
B +
" | Haupt-JavaScript |",
"| " +
B +
"js/masonry.pkgd.min.js" +
B +
" | Masonry-Layout-Bibliothek (nicht bearbeiten) |",
"| " +
B +
"fonts/fonts.css" +
B +
" | Schriftart-Einbindungen |",
"| " +
B +
"bilder/" +
B +
" | Bildressourcen |",
"| " +
B +
"nginx.conf" +
B +
" | Nginx-Konfiguration |",
"| " +
B +
"Dockerfile" +
B +
" | Docker-Image-Definition (nginx:alpine) |",
"",
"---",
"",
"## Code-Qualit\u00e4t & Linting",
"",
"### Wichtig: Linting nach jeder Code\u00e4nderung durchf\u00fchren",
"",
"**F\u00fchre nach jeder Code\u00e4nderung " +
B +
"npm run lint" +
B +
" aus**, um die Codequalit\u00e4t zu garantieren.",
"",
"Das Projekt verwendet folgende Tools:",
"",
"| Werkzeug | Zweck | Konfigurationsdatei | Befehl |",
"| --------------- | -------------------- | ------------------- | ------------------- |",
"| **HTMLHint** | HTML-Linting | " +
B +
".htmlhintrc" +
B +
" | " +
B +
"npm run lint:html" +
B +
" |",
"| **Stylelint** | CSS-Linting | " +
B +
".stylelintrc.json" +
B +
" | " +
B +
"npm run lint:css" +
B +
" |",
"| **ESLint** | JavaScript-Linting | " +
B +
"eslint.config.js" +
B +
" | " +
B +
"npm run lint:js" +
B +
" |",
"| **Prettier** | Code-Formatierung | " +
B +
".prettierrc" +
B +
" | " +
B +
"npm run format" +
B +
" |",
"| **Husky** | Git Hooks | " +
B +
".husky/pre-commit" +
B +
" | \u2013 |",
"| **lint-staged** | Gesteuerte Dateien | " +
B +
"package.json" +
B +
" | \u2013 |",
"",
"Alle Linter auf einmal ausf\u00fchren:",
"",
T + "powershell",
"npm run lint",
T,
"",
"### ESLint-Regeln (besonders beachten)",
"",
"- " + B + "no-unused-vars" + B + " \u2192 **Warnung** (ungenutzte Variablen vermeiden)",
"- " + B + "no-undef" + B + " \u2192 **Warnung** (nur definierte Variablen verwenden)",
"- " + B + "prettier/prettier" + B + " \u2192 **Fehler** (Prettier-Formatierung ist Pflicht)",
"- Globale Variablen: " + B + "browser" + B + " und " + B + "jquery" + B + " sind verf\u00fcgbar",
"- " + B + "*.min.js" + B + "-Dateien werden ignoriert (nicht linten/bearbeiten)",
"",
"### HTMLHint-Regeln",
"",
"- Tag-Paarung Pflicht (" + B + "tag-pair" + B + ")",
"- Tags & Attribute in Kleinschreibung (" +
B +
"tagname-lowercase" +
B +
", " +
B +
"attr-lowercase" +
B +
")",
"- Doctype an erster Stelle (" + B + "doctype-first" + B + ")",
"- Eindeutige IDs (" + B + "id-unique" + B + ")",
"- " + B + "alt" + B + "-Attribut bei Bildern Pflicht (" + B + "alt-require" + B + ")",
"- " + B + "<title>" + B + " erforderlich (" + B + "title-require" + B + ")",
"",
"---",
"",
"## Entwicklung",
"",
"- Kein Build-Step erforderlich \u2013 statische Dateien",
"- Lokaler Entwicklungsserver: " + B + "npx serve ." + B + " oder VS Code Live Server",
"- Node.js \u2265 18, npm \u2265 9",
"",
"## Deployment",
"",
T + "powershell",
"# Image bauen",
"docker build -t landingpage-haus-schleusingen .",
"",
"# Container starten",
"docker run -d -p 8080:80 -v ${pwd}:/usr/share/nginx/html:ro landingpage-haus-schleusingen",
T,
"",
"Website erreichbar unter: **<http://localhost:8080>**",
"",
"---",
"",
"## Wichtige Erkenntnisse",
"",
"- jQuery wird als globale Bibliothek vorausgesetzt (in ESLint-Konfig definiert)",
"- Masonry (" +
B +
"masonry.pkgd.min.js" +
B +
") wird f\u00fcr Layout-Zwecke eingesetzt \u2013 **nicht bearbeiten**",
"- Husky Pre-Commit-Hook f\u00fchrt automatisch lint-staged aus (kein manueller Schritt n\u00f6tig beim Committen)",
"- Prettier-Formatierung ist verpflichtend \u2013 Code wird bei Commits automatisch formatiert",
"- Projekt ist " + B + "commonjs" + B + "-Typ (kein ESM in " + B + "package.json" + B + ")",
"",
"---",
"",
"## Agent-Erkenntnisse (Systemumgebung & Tools)",
"",
"### Terminal & Encoding (Windows)",
"",
"- **PowerShell-Encoding-Probleme**: Terminal-Ausgabe \u00fcber " +
B +
"run_terminal_command" +
B +
" zeigt UTF-8-Zeichen (z. B. deutsche Umlaute) oft falsch an. Die Datei selbst ist korrekt. Immer mit " +
B +
"read_file" +
B +
" statt Terminal-Ausgabe pr\u00fcfen.",
"- **Backtick-Konflikt**: PowerShell nutzt Backtick (" +
B +
B +
") als Escape-Zeichen. Markdown-Backticks in Here-Strings (@\u0022...\u0022@) f\u00fchren zu Fehlern. F\u00fcr Dateien mit Backticks stattdessen **Node.js-Skripte** verwenden.",
"- **Zuverl\u00e4ssige Dateierstellung**: Bei Inhalten mit Sonderzeichen (Umlaute, Backticks, Emojis) Node.js-Skripte (" +
B +
"fs.writeFileSync" +
B +
") statt PowerShell-Befehle nutzen. Beispiel:",
" " + T + "javascript",
" const fs = require(" + B + "fs" + B + ");",
" const B = String.fromCharCode(96); // Backtick vermeiden",
" const lines = [" + B + "Zeile 1" + B + ", " + B + "Zeile 2" + B + "];",
" fs.writeFileSync(" +
B +
"datei.md" +
B +
", lines.join(" +
B +
"\\n" +
B +
"), " +
B +
"utf8" +
B +
");",
" " + T,
"",
"### Datei-Tools",
"",
"- **" +
B +
"read_file" +
B +
"-Anzeigegrenze**: Lange Dateien werden in der Vorschau scheinbar abgeschnitten \u2013 die Datei selbst ist vollst\u00e4ndig. Mit " +
B +
"run_terminal_command" +
B +
" und " +
B +
"Get-Content -Tail N" +
B +
" das Dateiende pr\u00fcfen.",
"- **" +
B +
"create_new_file" +
B +
"-Quoting**: Inhalt darf nicht mit Anf\u00fchrungszeichen beginnen, da diese sonst als Teil des Inhalts \u00fcbernommen werden. Immer die erstellte Datei verifizieren.",
"- **" +
B +
"single_find_and_replace" +
B +
"**: Exakte String\u00fcbereinstimmung erforderlich. Zeilenumbr\u00fcche und Leerzeichen m\u00fcssen exakt passen. Vor dem Ersetzen den Dateiinhalt mit " +
B +
"read_file" +
B +
" oder " +
B +
"read_file_range" +
B +
" pr\u00fcfen.",
"- **" +
B +
"edit_existing_file" +
B +
"-Encoding**: Kann UTF-8-Zeichen (Umlaute, Sonderzeichen) besch\u00e4digen. F\u00fcr Dateien mit Nicht-ASCII-Zeichen stattdessen Node.js-Skripte verwenden.",
"",
"### Workflow-Empfehlungen",
"",
"1. **Dateien lesen**: Immer " +
B +
"read_file" +
B +
" oder " +
B +
"read_file_range" +
B +
" nutzen (nicht Terminal).",
"2. **Dateien schreiben/\u00e4ndern**: " +
B +
"edit_existing_file" +
B +
" oder " +
B +
"single_find_and_replace" +
B +
" bevorzugen \u2013 aber Vorsicht bei Nicht-ASCII-Zeichen.",
"3. **Komplexe Dateierstellung**: Node.js-Skript \u00fcber " +
B +
"create_new_file" +
B +
" + " +
B +
"run_terminal_command" +
B +
" ausf\u00fchren, danach Hilfsskript l\u00f6schen.",
"4. **Terminal-Ausgabe**: Nur f\u00fcr Dateigr\u00f6\u00dfen, Git-Befehle und npm-Skripte nutzen \u2013 nicht zur Inhaltspr\u00fcfung von Textdateien.",
"",
];
fs.writeFileSync("AGENTS.md", lines.join("\n"), "utf8");
console.log("Done");