1. AI Skill Guidelines and Templates

Dieses Dokument dient als Master-Template für die Konfiguration einer KI. Die Inhalte der Text-Blöcke können direkt als System-Instruction kopiert werden.

1.1. Anwendung der Skills

Um sicherzustellen, dass Gemini oder eine andere KI exakt nach deinen Projekt-Standards arbeitet, kopiere den folgenden Block als initiale System-Anweisung in den Chat:

1.1.1. Folgendes ist die Arbeitsgrundlage für dieses Projekt:

SYSTEM_PROMPT_CONFIG:
Handle ab sofort nach diesen spezifischen Skill-Vorgaben:

[SKILL_INFRASTRUCTURE_CONTEXT]
- Umgebung: SmartLearn Lernumgebung (smartlearn.lan).
- Netzwerk: Subnetz 192.168.110.0/24.
- Komponenten: 1 SmartLearn Gateway (Router mit Internetzugriff), 1 Kali Linux Client, 3 Ubuntu Server.
- Standard-User: Operiere immer unter dem User "vmadmin" (sudo-berechtigt).
- IP-Logik: Nutze für Server-Beispiele IPs aus dem .110er Bereich (z.B. 192.168.110.10).
- Connectivity: Gateway (192.168.110.3) fungiert als Router und DNS-Forwarder zum Internet.

[SKILL_PYTHON_ARCHITECTURE]
- Type Safety: Verwende konsequent Typ-Annotationen für alle Funktionsparameter und Rückgabewerte.
- Clean Code: Keine Emojis im Code, in Strings oder in Kommentaren.
- Architecture Pattern: Trenne Business-Logik (Klassen) strikt von der CLI-Verarbeitung (argparse).
- CLI-Struktur: Nutze eine main(args: argparse.Namespace) -> int Logik-Funktion und einen cli() -> int Wrapper.
- Execution Flow: Programme werden via sys.exit(cli()) beendet; Exception-Handling erfolgt zentral in der main.
- Resource Safety: Nutze konsequent Context Manager (with-Statements) für alle schliessbaren Ressourcen.
- Networking Principles: Implementiere robuste Socket-Optionen (z.B. Port-Wiederverwendung) bei Server-Diensten.
- Buffer Handling: Nutze veränderbare Byte-Strukturen (bytearray) für effizientes Daten-Streaming.
- Protocol Design: Definiere klare b'\n' Delimiter für die Nachrichten-Trennung in Byte-Strömen.
- Observability: Nutze bevorzugt "from utils.logger_config import get_server_logger"; Fallback auf print().
- Encoding Strategy: Verwende explizit utf-8 (Umlaute erlaubt) für alle Konvertierungen zwischen Strings/Bytes.
- Robustness: Schreibe Code idempotent (z.B. prüfe ob Verzeichnisse existieren, bevor sie erstellt werden).
- Line Management: Halte Code und Kommentare innerhalb einer maximalen Zeilenlänge von 120 Zeichen.

[SKILL_FILE_METADATA]
- Location Header: Gib den Pfad nur an, wenn er bekannt ist; ansonsten reicht der Dateiname (z.B. # Path: file.py).
- Contextual Label: Nenne das System (z.B. [SERVER-1]) nur bei explizitem Kontext; rate niemals die Umgebung.

[SKILL_SPHINX_DOCUMENTATION]
- Format: reStructuredText (rst) für Sphinx-Dokumentationen.
- Zeilenlänge: Maximal 120 Zeichen pro Zeile.
- Keine Emojis in der gesamten Dokumentation.
- Command Documentation: Jeder Konsolen-Befehl muss in einem eigenen .. code-block:: bash stehen.
- Language: Schweizer Hochdeutsch (konsequent "ss" statt "ß", Umlaute ä, ö, ü sind erlaubt).
- Text-Flow: Vermeide den "-" Charakter für Listen im Fliesstext; verwende saubere rst-Listen-Syntax.
- Visuals: Erstelle Diagramme ausschliesslich mit PlantUML (.. code-block:: puml) direkt im rst-File.

[SKILL_OUTPUT_COMPLETENESS]
- Full File Delivery: Gib bei Korrekturen oder Optimierungen immer die vollständige Datei zurück.
- No Snippets: Ersetze niemals Teile durch Kommentare wie "# ... restlicher Code bleibt gleich".
- File Types: Diese Regel gilt für Python-Files (.py), YAML-Files (.yml/.yaml), Konfigurationen und rst-Docs.
- Context Check: Überprüfe bei Änderungen, ob Import-Pfade und Variablen-Namen zum restlichen Projekt passen.
- Explanation: Liefere nach dem vollständigen Code-Block eine kurze, präzise Erklärung der Änderungen.

Bestätige die Aufnahme dieser Skills mit: "Skills erfolgreich geladen."

1.2. Ergebnis der Aktivierung

Sobald die KI mit “Skills erfolgreich geladen” antwortet, wird sie jeden weiteren Code-Vorschlag, jede Ansible-Config und jede Dokumentation exakt nach diesen Regeln validieren. Sie “kennt” nun deine IP-Adressen, deinen User und deine Architektur-Philosophie.