Files
claude_settings/CLAUDE.md

25 KiB

Global Claude Code Instructions

🚹 PFLICHT-CHECKLISTE BEI TASK-ABSCHLUSS 🚹

DIESE CHECKLISTE IST NICHT OPTIONAL. SIE MUSS BEI JEDER ABGESCHLOSSENEN AUFGABE DURCHGEFÜHRT WERDEN.

BEVOR du dem User sagst, dass du fertig bist, gehe diese Liste durch:

Bei JEDER Dokumentationsarbeit (README, Config-Docs, etc.):

  • Verifikation durchgefĂŒhrt?

    • Vergleichstabelle: Quelle ↔ Dokumentation erstellt
    • ALLE Abschnitte geprĂŒft (nicht nur die offensichtlichen)
    • Finale Checkliste mit Zeilennummern erstellt
    • BestĂ€tigung: "X/X Abschnitte vollstĂ€ndig dokumentiert"
  • Infrastructure-Repo aktualisiert?

    • Wenn Kunde erkannt (~/Nextcloud/[kunde]/):
      • infrastructure/hosts/[host].md aktualisiert?
      • infrastructure/dependencies.md aktualisiert?
    • Änderungen committet und gepusht?

Bei JEDEM Task-Abschluss:

  • Alle Änderungen committet und gepusht?

    • Aktuelles Repo
    • Infrastructure-Repo (falls relevant)
  • Settings-Sync geprĂŒft?

    cd ~/dotfiles/claude_settings && git fetch origin && git status
    

⚠ WICHTIG

Du darfst NICHT:

  • Sagen "Erledigt" ohne diese Checkliste durchzugehen
  • Den User fragen ob er die Checkliste will - sie ist PFLICHT
  • Schritte ĂŒberspringen weil sie "offensichtlich nicht nötig" sind
  • Warten bis der User dich an fehlende Schritte erinnert

Der User verlÀsst sich darauf, dass du diese Anweisungen IMMER befolgst.


⚠ MANDATORY: Settings-Synchronisierung

Repository: git@gitea.egonetix.de:root/claude_settings.git (Port 222) Lokaler Pfad: ~/dotfiles/claude_settings

Bei jedem Session-Start prĂŒfen

cd ~/dotfiles/claude_settings && git fetch origin && git status

Falls Änderungen vorhanden:

git pull origin main

Nach Änderungen an Settings pushen

Wenn du Änderungen an folgenden Dateien vornimmst, MUSST du diese committen und pushen:

  • settings.json - Globale Einstellungen
  • CLAUDE.md - Diese Instruktionen
  • agents/*.md - Benutzerdefinierte Agenten
  • rules/*.md - Modulare Regeln
  • statusline-command.sh - Statuszeilen-Script
cd ~/dotfiles/claude_settings
git add -A
git commit -m "Beschreibung der Änderung"
git push origin main

Copilot Instructions Skill

Maintain living documentation for every coding project via copilot-instructions.md in the project root.


Mandatory Workflow

Step 1: Determine Project Type

Check for existing project indicators:

  • Git repository (.git/ directory)
  • copilot-instructions.md file
  • PROJECT_OVERVIEW.md file

If ANY exist → Ongoing Project: Follow full documentation workflow.

If NONE exist → Ask the user:

"This looks like a new workspace. Should I treat this as a one-time task, or set it up as an ongoing project with documentation and git?"

If user wants an ongoing project:

  1. Initialize git repo if missing (git init)
  2. Create copilot-instructions.md with initial structure
  3. Optionally create PROJECT_OVERVIEW.md for complex systems

Step 2: For Ongoing Projects

  1. Read existing copilot-instructions.md and PROJECT_OVERVIEW.md to understand the system
  2. Scan the codebase/system to gather context and minimize follow-up questions
  3. Update documentation if the current work affects architecture, patterns, entities, or conventions
  4. Commit all changes to git immediately after completion

Document Structure

copilot-instructions.md (Development Guidelines)

Procedural knowledge for working on the project — patterns, conventions, pitfalls, workflows.

# Project Name - Copilot Instructions

## ⚠ MANDATORY RULES - NON-NEGOTIABLE
[Project-specific rules, commit conventions, critical warnings]

## Architecture Overview
[High-level system description, key integrations, tech stack]

## File Structure
[Directory tree with annotations]

## [Domain-Specific Sections]
[Devices, APIs, services, databases - whatever is relevant]
- Working code examples with explanations
- Configuration snippets that actually work
- Debug commands

## Patterns & Conventions
[Reusable patterns, naming conventions, code examples]

## Development Workflow
[How to test, deploy, access systems]

## Pitfalls to Avoid
[Gotchas, inverted logic, non-obvious behaviors, troubleshooting]

PROJECT_OVERVIEW.md (System Reference)

Factual inventory of what exists — devices, integrations, entities, IPs. Use for complex systems with many components.

# Project Overview

## System Information
[Version, host, IP, access details]

## Network Architecture
[Diagram or list of hosts/devices]

## Installed Components
[Add-ons, plugins, integrations with purpose]

## Entity/Device Inventory
[Tables of devices, entity IDs, purposes]

## Quick Reference
[Common commands, URLs, access methods]

When to create PROJECT_OVERVIEW.md:

  • Systems with many devices/entities (IoT, home automation)
  • Infrastructure projects with multiple hosts
  • Projects where entity/device inventory changes frequently

Content Guidelines

Include:

  • Working code/config snippets (tested and verified)
  • Actual entity names, IPs, paths (not placeholders)
  • Debug commands and troubleshooting tables
  • Lessons learned from debugging sessions
  • Non-obvious behavior ("contact sensor: on=OPEN, off=CLOSED")
  • Git commit references for significant changes

Exclude:

  • Secrets, tokens, passwords (reference secrets.yaml or .env instead)
  • Obvious boilerplate explanations
  • Duplicate information

Language: Match the user's language. Mixed language is acceptable when technical terms are clearer in English.


Git Commit Convention

After every change:

cd /path/to/project
git add -A
git commit -m "Descriptive message in user's language"
git push origin main  # or appropriate branch

Commit messages should describe what changed, not just "updated docs".


Referencing Git Commits

For significant development work, reference the relevant commit(s) in the documentation:

## Tasmota SML Integration

**Implemented:** 2025-01-21 | Commits: `a3f2b1c`, `e7d4a9f`

[Documentation of the feature...]

When to add commit references:

  • New features or integrations
  • Major refactors
  • Complex bug fixes that required multiple attempts
  • Configuration changes that took significant debugging

Format options:

  • Single commit: Commit: a3f2b1c
  • Multiple commits: Commits: a3f2b1c, e7d4a9f, b2c3d4e
  • Commit range: Commits: a3f2b1c..e7d4a9f

Get the short hash after committing:

git log -1 --format="%h"  # Most recent commit
git log -3 --format="%h %s"  # Last 3 with messages

When to Update copilot-instructions.md

Update when:

  • Adding new integrations, devices, or services
  • Discovering non-obvious behavior or gotchas
  • Establishing new patterns or conventions
  • Fixing bugs that reveal important system behavior
  • Changing architecture or file structure

Don't update for:

  • Minor code changes that don't affect understanding
  • Temporary debugging that will be removed

New Project Onboarding

When a user requests to set up a new ongoing project:

  1. Connect and explore the system to understand what exists
  2. Scan broadly — gather device lists, integrations, file structures, configurations
  3. Create documentation based on findings:
    • copilot-instructions.md for development guidelines and patterns
    • PROJECT_OVERVIEW.md for system inventory (if complex)
  4. Initialize git if not present
  5. Commit initial documentation

This upfront investment minimizes questions in future sessions and enables faster, more informed development.


Infrastruktur-Dokumentationssystem

Ziel und Vision

Die detaillierte Infrastruktur-Dokumentation dient einem grĂ¶ĂŸeren Ziel:

Phase 1: Dokumentation (aktuell)

  • VollstĂ€ndige Erfassung aller Hosts, Dienste, AbhĂ€ngigkeiten
  • Maschinenlesbare Struktur (Markdown mit konsistenten Tabellen)
  • AbhĂ€ngigkeitsgraphen in Mermaid

Phase 2: Zabbix-Integration

  • AbhĂ€ngigkeiten aus dependencies.md → Zabbix Host Dependencies
  • Wiederkehrende Probleme → Zabbix Trigger + Actions
  • Host-Dokumentation → Zabbix Host Inventory
  • Impact-Analysen → Zabbix Service Monitoring

Phase 3: Self-Healing durch KI

  • KI analysiert Zabbix-Alerts + Dokumentation
  • Automatische Diagnose basierend auf dokumentierten AbhĂ€ngigkeiten
  • Automatische Remediation fĂŒr bekannte Probleme
  • Lernschleife: Neue Probleme → Dokumentation → Zabbix → KI

Konsequenzen fĂŒr die Dokumentation:

  • VollstĂ€ndigkeit ist kritisch - fehlende AbhĂ€ngigkeiten = blinde Flecken fĂŒr KI
  • Konsistente Struktur - ermöglicht maschinelles Parsing
  • Wiederkehrende Probleme dokumentieren - werden zu automatisierbaren Fixes
  • Impact bei Ausfall - definiert PrioritĂ€ten fĂŒr automatische Reaktionen

Organisation pro Kunde

Gitea-Struktur:

├── Vinos/                       ← Organisation fĂŒr Kunde "vinos"
│   ├── infrastructure.git       ← Landkarte fĂŒr vinos
│   ├── zabbix.git               ← System-Repo
│   └── [weitere].git            ← Dienst-/System-Repos
│
└── Egonetix/                    ← Organisation fĂŒr Kunde "egonetix"
    ├── infrastructure.git       ← Landkarte fĂŒr egonetix
    └── [weitere].git

Lokale Struktur:

~/Nextcloud/
├── vinos/                       ← Kunde vinos
│   ├── infrastructure/          ← Landkarte (dependencies.md, hosts/)
│   ├── zabbix/                  ← System-Repo
│   └── [weitere]/               ← Dienst-/System-Repos
│
└── egonetix/                    ← Kunde egonetix
    ├── infrastructure/
    └── [weitere]/

Repo-Typen

Repo-Typ Gitea-Ort Inhalt
Infrastructure [Kunde]/infrastructure.git Landkarte, AbhĂ€ngigkeiten, Host-Übersichten
System-Repo [Kunde]/[system].git README, Konfig-Dateien, Troubleshooting
Dienst-Repo [Kunde]/[dienst].git docker-compose.yml, Code, Workflows

Automatische Erkennung (Hook-gesteuert)

Der Session-Start Hook erkennt Kunden-Verzeichnisse unter ~/Nextcloud/[kunde]/.

Wenn du <REPO_SETUP_REQUIRED> in der Hook-Ausgabe siehst:

  1. Frage den User:

    "Ich habe erkannt, dass fĂŒr dieses Repo noch Setup erforderlich ist. Soll ich das automatisch durchfĂŒhren?"

  2. Bei Zustimmung - fĂŒhre alle fehlenden Schritte aus:

    # Git initialisieren (falls nicht vorhanden)
    git init
    git branch -M main
    
    # Template aus infrastructure/_templates/ kopieren
    
  3. Repo auf Gitea erstellen (API):

    curl -X POST -H "Authorization: token $GITEA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"name":"repo-name","description":"..."}' \
      https://gitea.egonetix.de/api/v1/orgs/[Kunde]/repos
    
  4. Remote hinzufĂŒgen und pushen:

    git remote add origin ssh://git@gitea.egonetix.de:222/[Kunde]/[repo-name].git
    git push -u origin main
    

Gitea Remote-Konfiguration

URL-Format:

ssh://git@gitea.egonetix.de:222/[Kunde]/[repo-name].git

Beispiele:

Kunde Repo Remote URL
Vinos infrastructure ssh://git@gitea.egonetix.de:222/Vinos/infrastructure.git
Vinos zabbix ssh://git@gitea.egonetix.de:222/Vinos/zabbix.git
Egonetix infrastructure ssh://git@gitea.egonetix.de:222/Egonetix/infrastructure.git

Gitea Tooling

Token-Speicherort (NICHT im Git-Sync!):

~/.config/gitea/token

VerfĂŒgbare Tools:

Tool Befehl Anwendung
tea CLI ~/bin/tea VollstÀndige Gitea-Interaktion
curl + API curl -H "Authorization: token $(cat ~/.config/gitea/token)" Einfache API-Aufrufe

tea CLI Beispiele:

# Repos auflisten
~/bin/tea repos list

# Neues persönliches Repo erstellen
~/bin/tea repos create --name mein-repo --description "Beschreibung"

# Neues Repo in Organisation erstellen
~/bin/tea repos create --owner Vinos --name repo-name

# Issues auflisten
~/bin/tea issues list

# PR erstellen
~/bin/tea pr create --title "Feature X" --description "..."

curl API Beispiele:

# Persönliches Repo erstellen
curl -X POST -H "Authorization: token $(cat ~/.config/gitea/token)" \
  -H "Content-Type: application/json" \
  -d '{"name":"repo-name","description":"...","private":false}' \
  https://gitea.egonetix.de/api/v1/user/repos

# Repo in Organisation erstellen
curl -X POST -H "Authorization: token $(cat ~/.config/gitea/token)" \
  -H "Content-Type: application/json" \
  -d '{"name":"repo-name","description":"..."}' \
  https://gitea.egonetix.de/api/v1/orgs/[Org]/repos

Wichtig: Der Token wird LOKAL gespeichert und NICHT nach ~/dotfiles/claude_settings synchronisiert.

Workflow: Neues System-/Dienst-Repo anlegen

cd ~/Nextcloud/[kunde]
git init [repo-name]
cd [repo-name]
# Template aus ../infrastructure/_templates/ kopieren
# Repo auf Gitea erstellen
# git remote add origin ...
# git push -u origin main

Dokumentations-Verifikation (PFLICHT)

Bei jeder Dokumentationsarbeit MUSS eine zweistufige Verifikation durchgefĂŒhrt werden:

  • Neue Dokumentation erstellen
  • Bestehende Dokumentation umstrukturieren
  • Inhalte aus anderen Quellen ĂŒbernehmen
  • Dokumentation aufteilen oder zusammenfĂŒhren

Schritt 1: Erstvergleich

Nach Abschluss der Dokumentationsarbeit, erstelle eine Vergleichstabelle:

| Abschnitt (Original) | Neue Datei | Status |
|---------------------|------------|--------|
| [Abschnitt 1] | [datei.md:zeilen] | ✅/❌ |
| [Abschnitt 2] | [datei.md:zeilen] | ✅/❌ |
...
  • Liste JEDEN Abschnitt der Quelldokumentation auf
  • PrĂŒfe ob er in der neuen Struktur vorhanden ist
  • Markiere fehlende Abschnitte mit ❌

Schritt 2: Fehlende Inhalte ergÀnzen

  • ErgĂ€nze alle mit ❌ markierten Abschnitte
  • Committe die Änderungen

Schritt 3: Erneute Verifikation (PFLICHT)

Nach dem ErgĂ€nzen MUSS eine erneute, vollstĂ€ndige PrĂŒfung erfolgen:

  1. Lies alle neuen Dateien nochmals
  2. Erstelle eine finale Checkliste mit Zeilennummern:
| # | Abschnitt | Datei:Zeilen | Status |
|---|-----------|--------------|--------|
| 1 | [Name] | README.md:15-18 | ✅ |
| 2 | [Name] | hosts.md:5-8 | ✅ |
...
  1. BestÀtige: "X/X Abschnitte vollstÀndig dokumentiert. Keine Inhalte wurden vergessen."

Dieser Prozess ist nicht optional. Dokumentationsverlust durch unvollstÀndige Arbeit ist inakzeptabel.

Wiki-Prinzip: Verlinkte Dokumentation (PFLICHT)

JEDE ErwÀhnung eines Hosts, Dienstes oder Systems in der Dokumentation MUSS als Markdown-Link auf dessen Dokumentation verweisen.

Dies gilt fĂŒr ALLE Dokumentation - nicht nur Netzwerk, sondern auch Host-Dateien, Dependencies, Hardware, README, etc.

Regeln

  1. Host-Referenzen → Link auf hosts/[hostname].md

    • Aus hosts/-Dateien: relativer Pfad [srvdocker02](srvdocker02.md)
    • Aus Root-Dateien: [srvdocker02](hosts/srvdocker02.md)
    • Aus Unterverzeichnissen: [srvdocker02](../hosts/srvdocker02.md)
  2. Hardware-Referenzen → Link auf hardware/[gerĂ€t].md

    • [HPE Switch](hardware/hpe-switch.md) oder relativ [HPE Switch](../hardware/hpe-switch.md)
  3. Dienst-/System-Referenzen → Link auf zugehörige Doku

    • Externe Repos: [Zabbix](https://gitea.egonetix.de/Egonetix/zabbix)
    • Interne Doku: [Keycloak SSO](keycloak-sso.md)
  4. Mermaid-Diagramme: Hier sind keine Markdown-Links möglich. Stattdessen MUSS nach jedem Diagramm eine Referenz-Tabelle stehen mit Links zu den referenzierten Hosts/Diensten.

  5. Tabellen: Host-/Dienstnamen in Tabellenzellen als Link formatieren.

Ausnahmen

  • Derselbe Host innerhalb seiner eigenen Dokumentation (kein Self-Link)
  • Hosts in der "Entdeckte aber nicht gescannte Hosts"-Liste (keine Doku vorhanden)
  • Inline-Code-Blöcke (Befehle, Konfigurationen)

Beispiel

Falsch:

srvdocker02 benötigt srvdc01 fĂŒr DNS.
PBS auf Hetzner Storage Box (1TB)

Richtig:

[srvdocker02](srvdocker02.md) benötigt [srvdc01](srvdc01.md) fĂŒr DNS.
PBS auf Hetzner Storage Box (1TB) - siehe [srvhost04 Storage](srvhost04.md#hardware--storage)

Rolling Documentation: Opportunistisches Host-Scanning

Prinzip: Wenn du wĂ€hrend deiner Arbeit Zugriff auf einen Host bekommst, fĂŒhre einen VOLLSTÄNDIGEN Scan durch - nicht nur fĂŒr die aktuelle Aufgabe.

Auslöser

  • SSH-Zugriff auf einen Host
  • Web-UI Zugriff (pfsense, NPM, etc.)
  • API-Zugriff

Workflow bei Host-Zugriff

  1. PrĂŒfe: Existiert infrastructure/hosts/[hostname].md?
  2. Falls nein oder unvollstĂ€ndig: VollstĂ€ndigen Scan durchfĂŒhren
  3. Dann erst: UrsprĂŒngliche Aufgabe erledigen

Scan-Checkliste nach Host-Typ

Netzwerk-GerÀte (pfsense, Router):

  • Interfaces (Name, IP, Netz)
  • ALLE Firewall-Regeln (nicht nur relevante!)
  • ALLE Aliases
  • NAT-Regeln (Port-Forwards, Outbound)
  • DHCP/DNS-Konfiguration
  • System-Version
  • ABHÄNGIGKEITEN: Welche Hosts/Dienste hĂ€ngen von diesem GerĂ€t ab?

Linux-Server:

  • OS/Version
  • Interfaces und IPs
  • Laufende Dienste
  • Docker-Container
  • Offene Ports
  • Wichtige Configs
  • ABHÄNGIGKEITEN: Welche anderen Hosts braucht dieser Server? Wer braucht ihn?

Windows-Server:

  • OS/Version
  • Interfaces und IPs
  • Dienste und geplante Tasks
  • Installierte Rollen
  • ABHÄNGIGKEITEN: Verbindungen zu anderen Systemen

PFLICHT: AbhÀngigkeiten dokumentieren

Bei JEDEM Host-Scan mĂŒssen die AbhĂ€ngigkeiten erfasst werden:

Frage Dokumentieren in
Welche Hosts/Dienste braucht dieser Host? hosts/[host].md → Abschnitt "AbhĂ€ngigkeiten"
Welche Hosts/Dienste hĂ€ngen von diesem Host ab? hosts/[host].md → Abschnitt "AbhĂ€ngig von diesem Host"
Gibt es AbhĂ€ngigkeitsketten? dependencies.md → Mermaid-Diagramm

Ziel: Anhand der Dokumentation muss erkennbar sein:

  • Was passiert wenn Host X ausfĂ€llt?
  • Welche Dienste sind von Änderungen an Host X betroffen?
  • Welche Hosts mĂŒssen vor Host X gestartet werden?

Beispiel AbhÀngigkeits-Dokumentation:

## AbhÀngigkeiten

Dieser Host benötigt:
- **srv-docker02** (10.10.10.81) - n8n Backend
- **srv-nu-dc01** (10.10.10.111) - DNS-Auflösung

## AbhÀngig von diesem Host

Folgende Dienste/Hosts sind von diesem Host abhÀngig:
- **flow.wvits.de** - Webhook-Zugang fÀllt aus wenn dieser Host down ist
- **n8n.vinos.de** - Interner Zugang ĂŒber diesen NPM

## Impact bei Ausfall

| Ausfall-Szenario | Betroffene Dienste |
|------------------|-------------------|
| Komplett-Ausfall | flow.wvits.de, n8n.vinos.de, ... |
| Nur Port 443 | HTTPS-Zugriff auf alle proxied Dienste |

dependencies.md aktualisieren:

Nach jedem Host-Scan prĂŒfen ob infrastructure/dependencies.md aktualisiert werden muss:

  • Neue AbhĂ€ngigkeitskette entdeckt? → Mermaid-Diagramm ergĂ€nzen
  • Impact-Analyse hinzufĂŒgen
  • Repo-Links aktualisieren

Beispiel

Aufgabe: Firewall-Regel fĂŒr srv-revproxy01 prĂŒfen

Falsch Richtig
Nur die eine Regel prĂŒfen Erst: Existiert hosts/gw-nu-dmz02.md?
Session beenden Nein → VollstĂ€ndigen Scan aller Regeln, Aliases, Interfaces
Host-Datei erstellen
Dann: UrsprĂŒngliche Aufgabe

Rekursive Host-Entdeckung (WICHTIG!)

Wenn du bei einem Scan Referenzen zu anderen Hosts siehst, gehe AUTOMATISCH weiter:

Entdeckungsquellen:

  • Firewall-Regeln (Ziel-IPs, Aliases)
  • NAT-Regeln (Forward-Ziele)
  • DNS-EintrĂ€ge
  • Docker-Compose (externe Hosts)
  • Konfigurationsdateien
  • Log-EintrĂ€ge
  • Netzwerk-Verbindungen

Workflow:

Host A scannen
  ↓
Entdecke Referenz zu Host B (z.B. in Firewall-Regel)
  ↓
Kann ich Host B erreichen?
  ├─ JA → Host B scannen (rekursiv)
  └─ NEIN → Host B in Entdeckungsliste aufnehmen

Entdeckungsliste fĂŒhren:

Wenn ein Host nicht gescannt werden kann (kein Zugriff, keine Credentials, etc.):

## Entdeckte aber nicht gescannte Hosts

| Host | IP | Entdeckt in | Grund fĂŒr fehlenden Scan |
|------|----|-------------|-------------------------|
| srv-xyz01 | 10.10.10.99 | gw-nu-dmz02 Firewall-Regel | Kein SSH-Zugriff |
| db-server | 10.10.20.5 | docker-compose.yml | Credentials unbekannt |

Der User muss dich NICHT auf jeden Host einzeln hinweisen!

Du sollst selbststÀndig:

  1. Referenzen zu anderen Hosts erkennen
  2. Versuchen diese zu scannen
  3. Falls nicht möglich: Dokumentieren was du entdeckt hast
  4. Beim nÀchsten Mal nachfragen ob Zugriff jetzt möglich ist

Effizienz

Nutze parallele Agenten fĂŒr umfangreiche Scans und rekursive Entdeckung.

Parallele Agenten-Nutzung (PFLICHT)

Claude MUSS eigenstÀndig entscheiden, wie viele Agenten parallel gestartet werden, um Aufgaben schneller zu erledigen.

  • Bis zu 10 oder mehr parallele Agenten sind erlaubt
  • Claude entscheidet selbst, wie viele Agenten sinnvoll sind
  • UnabhĂ€ngige Teilaufgaben MÜSSEN parallel bearbeitet werden
  • Dies gilt fĂŒr: Host-Scans, Dokumentations-Updates, Verifikation, Recherche

Beispiele:

  • 10 Host-Dateien aktualisieren → 10 Agenten parallel
  • 5 unabhĂ€ngige Recherche-Aufgaben → 5 Agenten parallel
  • Scan + Dokumentation + Commit → sequentiell (abhĂ€ngig)

Ausnahmen

  • Zeitkritische NotfĂ€lle (erst fixen, dann dokumentieren)
  • Explizite User-Anweisung nur aktuelle Aufgabe zu erledigen
  • User sagt explizit "nicht weiter scannen"

Skills-Referenz

Skill Zweck
/troubleshoot-host Strukturierter Troubleshooting-Workflow
/session-end Session beenden, Commits erstellen
/new-project Neues Projekt anlegen
/delegate-remote Tasks an Remote-Server delegieren (CRA)

Claude Remote Agent (CRA) - Verteilte Task-AusfĂŒhrung

Repository: ~/Nextcloud/egonetix/claude-remote-agent CLI-Tool: cra Zweck: Delegiert Aufgaben an Remote-Server, die Claude Code CLI autonom ausfĂŒhren - auch wenn der Laptop offline ist.

Architektur

Laptop (Coordinator)  ──SSH + JSON-RPC 2.0──>  Server (claude-agent)
  • Coordinator: Verwaltet Server, erstellt Tasks, sammelt Ergebnisse
  • Agent: EmpfĂ€ngt Tasks, fĂŒhrt Claude Code CLI autonom aus, speichert Ergebnisse lokal
  • Persistenz: SQLite auf beiden Seiten, Tasks ĂŒberleben VerbindungsabbrĂŒche

Wann CRA vorschlagen

Du SOLLST dem User CRA aktiv vorschlagen, wenn:

Szenario Beispiel
Lang laufende Tasks Codebase-Analyse, Refactorings, Log-Analyse
Server-Wartung Updates, Cleanup, Security-Audits
Multi-Server-Operationen Gleiche Aufgabe auf mehreren Servern parallel
Offline-Delegation User will Laptop zuklappen, Tasks sollen weiterlaufen
UnabhÀngige Teilaufgaben Aufgabe lÀsst sich in parallele Sub-Tasks aufteilen

"Diese Aufgabe eignet sich gut fĂŒr CRA - soll ich sie an einen Remote-Server delegieren?"

Kommando-Referenz

# Server verwalten
cra servers add <name> <host> [--user USER] [--port PORT] [--key PATH] [--tag TAG]
cra servers list [--all]
cra servers remove <name> [--yes]
cra servers status [name]

# Tasks
cra submit <server> "<prompt>" [--priority N] [--model MODEL] [--max-turns N]
cra status <server> [task_id]
cra cancel <server> <task_id>

# Ergebnisse
cra collect [server] [--task ID] [--since ISO-DATETIME] [--output FILE]

# Config synchronisieren
cra sync-config [server] [--no-claude-md] [--no-settings]

MCP-Server Integration

Wenn der CRA MCP-Server konfiguriert ist, stehen CRA-Funktionen als native Tools zur VerfĂŒgung (cra_submit, cra_status, cra_collect, cra_servers_list, cra_server_status, cra_sync_config). PrĂŒfe ob MCP-Tools verfĂŒgbar sind, bevor du auf CLI-Befehle zurĂŒckfĂ€llst.

Wichtige Hinweise

  • Autonome AusfĂŒhrung: Server brauchen ~/.claude/settings.json mit Tool-Permissions
  • Config-Sync: Nach CLAUDE.md/settings.json Änderungen → cra sync-config
  • Retry: Fehlgeschlagene Tasks werden automatisch wiederholt (max 3x)