mcp
This commit is contained in:
7
.continue/mcpServers/new-mcp-server.yaml
Normal file
7
.continue/mcpServers/new-mcp-server.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: New MCP server
|
||||
version: 0.0.1
|
||||
schema: v1
|
||||
mcpServers:
|
||||
- name: playwright
|
||||
command: npx
|
||||
args: ["@playwright/mcp"]
|
||||
129
AGENTS.md
Normal file
129
AGENTS.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# Agent-Richtlinien für dieses Projekt
|
||||
|
||||
## Systemumgebung
|
||||
|
||||
- **Betriebssystem: Windows** – Alle Befehle und Pfade müssen Windows-kompatibel sein (z. B. Pfadtrennzeichen `\`, PowerShell-Syntax).
|
||||
|
||||
---
|
||||
|
||||
## Projektübersicht
|
||||
|
||||
- **Statische Landingpage** für **Haus Schleusingen**
|
||||
- Reines HTML, CSS und JavaScript (kein Framework, kein Build-Step)
|
||||
- Ausgeliefert über einen **Nginx-Docker-Container** (nginx:alpine)
|
||||
- Git-Repository: `https://git.home.kies-media.de/greggy/landingpage-haus-schleusingen.git`
|
||||
|
||||
### Dateistruktur
|
||||
|
||||
| Pfad | Beschreibung |
|
||||
| --------------------------- | -------------------------------------------- |
|
||||
| `haus-schleusingen.html` | Einstiegsseite (einzige HTML-Datei) |
|
||||
| `css/haus-schleusingen.css` | Hauptstylesheet |
|
||||
| `js/haus-schleusingen.js` | Haupt-JavaScript |
|
||||
| `js/masonry.pkgd.min.js` | Masonry-Layout-Bibliothek (nicht bearbeiten) |
|
||||
| `fonts/fonts.css` | Schriftart-Einbindungen |
|
||||
| `bilder/` | Bildressourcen |
|
||||
| `nginx.conf` | Nginx-Konfiguration |
|
||||
| `Dockerfile` | Docker-Image-Definition (nginx:alpine) |
|
||||
|
||||
---
|
||||
|
||||
## Code-Qualität & Linting
|
||||
|
||||
### Wichtig: Linting nach jeder Codeänderung durchführen
|
||||
|
||||
**Führe nach jeder Codeänderung `npm run lint` aus**, um die Codequalität zu garantieren.
|
||||
|
||||
Das Projekt verwendet folgende Tools:
|
||||
|
||||
| Werkzeug | Zweck | Konfigurationsdatei | Befehl |
|
||||
| --------------- | ------------------ | ------------------- | ------------------- |
|
||||
| **HTMLHint** | HTML-Linting | `.htmlhintrc` | `npm run lint:html` |
|
||||
| **Stylelint** | CSS-Linting | `.stylelintrc.json` | `npm run lint:css` |
|
||||
| **ESLint** | JavaScript-Linting | `eslint.config.js` | `npm run lint:js` |
|
||||
| **Prettier** | Code-Formatierung | `.prettierrc` | `npm run format` |
|
||||
| **Husky** | Git Hooks | `.husky/pre-commit` | – |
|
||||
| **lint-staged** | Gesteuerte Dateien | `package.json` | – |
|
||||
|
||||
Alle Linter auf einmal ausführen:
|
||||
|
||||
```powershell
|
||||
npm run lint
|
||||
```
|
||||
|
||||
### ESLint-Regeln (besonders beachten)
|
||||
|
||||
- `no-unused-vars` → **Warnung** (ungenutzte Variablen vermeiden)
|
||||
- `no-undef` → **Warnung** (nur definierte Variablen verwenden)
|
||||
- `prettier/prettier` → **Fehler** (Prettier-Formatierung ist Pflicht)
|
||||
- Globale Variablen: `browser` und `jquery` sind verfügbar
|
||||
- `*.min.js`-Dateien werden ignoriert (nicht linten/bearbeiten)
|
||||
|
||||
### HTMLHint-Regeln
|
||||
|
||||
- Tag-Paarung Pflicht (`tag-pair`)
|
||||
- Tags & Attribute in Kleinschreibung (`tagname-lowercase`, `attr-lowercase`)
|
||||
- Doctype an erster Stelle (`doctype-first`)
|
||||
- Eindeutige IDs (`id-unique`)
|
||||
- `alt`-Attribut bei Bildern Pflicht (`alt-require`)
|
||||
- `<title>` erforderlich (`title-require`)
|
||||
|
||||
---
|
||||
|
||||
## Entwicklung
|
||||
|
||||
- Kein Build-Step erforderlich – statische Dateien
|
||||
- Lokaler Entwicklungsserver: `npx serve .` oder VS Code Live Server
|
||||
- Node.js ≥ 18, npm ≥ 9
|
||||
|
||||
## Deployment
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Website erreichbar unter: **<http://localhost:8080>**
|
||||
|
||||
---
|
||||
|
||||
## Wichtige Erkenntnisse
|
||||
|
||||
- jQuery wird als globale Bibliothek vorausgesetzt (in ESLint-Konfig definiert)
|
||||
- Masonry (`masonry.pkgd.min.js`) wird für Layout-Zwecke eingesetzt – **nicht bearbeiten**
|
||||
- Husky Pre-Commit-Hook führt automatisch lint-staged aus (kein manueller Schritt nötig beim Committen)
|
||||
- Prettier-Formatierung ist verpflichtend – Code wird bei Commits automatisch formatiert
|
||||
- Projekt ist `commonjs`-Typ (kein ESM in `package.json`)
|
||||
|
||||
---
|
||||
|
||||
## Agent-Erkenntnisse (Systemumgebung & Tools)
|
||||
|
||||
### Terminal & Encoding (Windows)
|
||||
|
||||
- **PowerShell-Encoding-Probleme**: Terminal-Ausgabe über `run_terminal_command` zeigt UTF-8-Zeichen (z. B. deutsche Umlaute) oft falsch an. Die Datei selbst ist korrekt. Immer mit `read_file` statt Terminal-Ausgabe prüfen.
|
||||
- **Backtick-Konflikt**: PowerShell nutzt Backtick (``) als Escape-Zeichen. Markdown-Backticks in Here-Strings (@"..."@) führen zu Fehlern. Für Dateien mit Backticks stattdessen **Node.js-Skripte** verwenden.
|
||||
- **Zuverlässige Dateierstellung**: Bei Inhalten mit Sonderzeichen (Umlaute, Backticks, Emojis) Node.js-Skripte (`fs.writeFileSync`) statt PowerShell-Befehle nutzen. Beispiel:
|
||||
```javascript
|
||||
const fs = require(`fs`);
|
||||
const B = String.fromCharCode(96); // Backtick vermeiden
|
||||
const lines = [`Zeile 1`, `Zeile 2`];
|
||||
fs.writeFileSync(`datei.md`, lines.join(`\n`), `utf8`);
|
||||
```
|
||||
|
||||
### Datei-Tools
|
||||
|
||||
- **`read_file`-Anzeigegrenze**: Lange Dateien werden in der Vorschau scheinbar abgeschnitten – die Datei selbst ist vollständig. Mit `run_terminal_command` und `Get-Content -Tail N` das Dateiende prüfen.
|
||||
- **`create_new_file`-Quoting**: Inhalt darf nicht mit Anführungszeichen beginnen, da diese sonst als Teil des Inhalts übernommen werden. Immer die erstellte Datei verifizieren.
|
||||
- **`single_find_and_replace`**: Exakte Stringübereinstimmung erforderlich. Zeilenumbrüche und Leerzeichen müssen exakt passen. Vor dem Ersetzen den Dateiinhalt mit `read_file` oder `read_file_range` prüfen.
|
||||
- **`edit_existing_file`-Encoding**: Kann UTF-8-Zeichen (Umlaute, Sonderzeichen) beschädigen. Für Dateien mit Nicht-ASCII-Zeichen stattdessen Node.js-Skripte verwenden.
|
||||
|
||||
### Workflow-Empfehlungen
|
||||
|
||||
1. **Dateien lesen**: Immer `read_file` oder `read_file_range` nutzen (nicht Terminal).
|
||||
2. **Dateien schreiben/ändern**: `edit_existing_file` oder `single_find_and_replace` bevorzugen – aber Vorsicht bei Nicht-ASCII-Zeichen.
|
||||
3. **Komplexe Dateierstellung**: Node.js-Skript über `create_new_file` + `run_terminal_command` ausführen, danach Hilfsskript löschen.
|
||||
4. **Terminal-Ausgabe**: Nur für Dateigrößen, Git-Befehle und npm-Skripte nutzen – nicht zur Inhaltsprüfung von Textdateien.
|
||||
318
fix-agents.js
Normal file
318
fix-agents.js
Normal file
@@ -0,0 +1,318 @@
|
||||
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");
|
||||
Reference in New Issue
Block a user