Communitygithub.com

GigleAI/cavil-loop

Asynchrone Coding-Agenten, gesteuert durch GitHub-Labels – Ihre KI arbeitet parallel, während Sie schlafen.

Was ist cavil-loop?

Dieses Skill ermöglicht es, GitHub Issues und Pull-Request-Kommentare direkt als Eingabe und Ausgabe für einen lokalen KI-Assistenten zu verwenden. Ein systemd-Timer, Shell-Skripte und zwei GitHub-Labels erlauben es Ihnen, über die GitHub-Weboberfläche (oder die iOS Gh-App) mit der KI zu kommunizieren, ohne manuell eingreifen zu müssen. Der Skill ist agent-agnostisch und unterstützt mehrere Worker-CLIs wie Claude Code, OpenCode, Codex und Cursor, die über eine dünne Treiberschicht eingebunden werden. Die Installation erfolgt über ein Setup-Skript, das den Host-Projektordner konfiguriert und die notwendigen Systemd-Units erstellt. Statusabfragen, Bereinigung nach abgeschlossenen PRs und Deaktivierung einzelner Projekte sind ebenfalls möglich, wobei Skripte, Konfiguration und Zustandsdaten außerhalb des Host-Projekts bleiben.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor✓OpenCode
npx skills add GigleAI/cavil-loop

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

coding-agent-work-loop

Englisch · 中文

Verwandeln Sie GitHub-Issues/PR-Kommentare in Eingabe und Ausgabe Ihrer lokalen KI. Ein systemd-Timer + ein paar Shell-Skripte + zwei GitHub-Labels ermöglichen es Ihnen, direkt über die GitHub-Weboberfläche (oder die iOS Gh-App) mit der KI zu kommunizieren.

Dieses Skill ist agent-agnostisch. Der Worker-CLI wird durch WORKER_AGENT=<name> in coding-agent.config ausgewählt; die Daemon-/Dispatch-Skripte durchlaufen eine dünne Treiberschicht, die verschiedene Agent-CLIs einbindet. Integrierte Treiber: claude (Standard, Claude Code), opencode (sst/opencode), codex (OpenAI Codex CLI), cursor (Cursor Agent CLI). Eigene Treiber über scripts/drivers/<name>.sh hinzufügen – siehe docs/drivers.md.

Wann aufrufen

Der Benutzer ruft dieses Skill aus der Host-Agent-Laufzeitumgebung über /coding-agent-work-loop <command> oder eine natürlichsprachliche Anfrage auf. Übliche Formen:

  • "Installiere diesen Daemon auf Projekt X" → führt den setup-Ablauf aus
  • "Wie ist der Status des Coding-Agenten?" → führt den status-Ablauf aus
  • "Deaktiviere den Coding-Agenten auf Projekt X" → führt den disable-Ablauf aus

Was Sie (der Agent) tun sollten, wenn aufgerufen

setup (auf einem Host-Projekt bereitstellen)

Der Benutzer gibt Ihnen einen Host-Projektpfad (z.B. ~/github/myproject). Schritte:

  1. Überprüfen, ob der Pfad existiert und ein Git-Repository ist (hat .git)
  2. Abhängigkeiten prüfen: git, gh (muss über gh auth login angemeldet sein), tmux, jq, flock, systemctl, sowie den durch WORKER_AGENT ausgewählten Worker-CLI (Standard claude; andere integrierte: opencode, codex, cursor). Jede muss über command -v auflösbar sein.
  3. Ausführen:
    bash "${CLAUDE_PLUGIN_ROOT:-$HOME/.agents/skills/coding-agent-work-loop}/setup.sh" <host-project-path>
    
    $CLAUDE_PLUGIN_ROOT ist die Skill-Root-Umgebungsvariable, die Claude Code injiziert; falls nicht vorhanden, auf das kanonische ~/.agents/skills/coding-agent-work-loop zurückfallen.
  4. setup.sh gibt nach Abschluss eine Anleitung für die nächsten Schritte aus – geben Sie diese wörtlich an den Benutzer weiter.

status

Der Benutzer möchte den Zustand. Schritte:

  1. systemctl --user list-timers 'coding-agent-poll@*' --no-pager – Timer-Status
  2. systemctl --user list-units 'coding-agent-poll@*.service' --no-pager – letzte Ausführung
  3. Für jede registrierte ~/.config/coding-agent-work-loop/*.conf:
    • tail -20 $STATE_DIR/poll.log (STATE_DIR aus der Konfiguration lesen)
    • gh issue list --repo $REPO --label pending/agent + gh pr list --repo $REPO --label pending/agent
  4. Für den Benutzer zusammenfassen

cleanup (nachdem ein PR angenommen/abgelehnt wurde)

Der Benutzer hat einen PR gemerged oder möchte die Arbeit an einem Issue abbrechen. Schritte:

  1. Bestätigen, dass das Issue abgeschlossen ist (PR gemerged oder geschlossen)
  2. Ausführen:
    bash "$CLAUDE_PLUGIN_ROOT/scripts/cleanup-issue.sh" <issue-number>
    
    Optionale Flags: --force (auch bereinigen, wenn der Worker beschäftigt ist), --keep-worktree (nur die Sitzung töten), --delete-branch (auch den lokalen Branch entfernen)

Was cleanup-issue.sh tut:

  • Beschäftigungsprüfung (standardmäßig Verweigerung, es sei denn --force)
  • Führt den projektspezifischen CLEANUP_HOOK aus (konfiguriert in coding-agent.config, z.B. Tailscale-Ports abbauen, Dev-Server stoppen)
  • Beendet die tmux-Sitzung des Workers
  • Entfernt das Worktree (Standard)
  • Optional: Entfernt den lokalen Branch

disable

Der Benutzer möchte ein Projekt stoppen. Schritte:

  1. Instanznamen bestätigen (systemctl --user list-timers 'coding-agent-poll@*')
  2. systemctl --user disable --now coding-agent-poll@<key>.timer
  3. Optional: Die Instanz-Symlinks ~/.config/systemd/user/coding-agent-poll@<key>.{service,timer} entfernen (die Vorlage selbst unberührt lassen)
  4. Optional: ~/.config/coding-agent-work-loop/<key>.conf entfernen
  5. Rückmeldung geben

Was landet NICHT im Host-Projekt

Nach setup erhält das Worktree des Host-Projekts nur zwei Dinge:

  1. Eine .gitignore-Zeile (ausgenommen coding-agent.config)
  2. Eine coding-agent.config (gitignoriert, Konfiguration)

Skripte, systemd-Units, Status, Logs liegen alle außerhalb des Host-Projekts (Skill-Verzeichnis + ~/.config/ + ~/.local/state/).

Vollständige Architektur

Siehe das zugehörige README.md.

Dateiliste

  • setup.sh – Einrichtung eines Host-Projekts
  • scripts/ – Daemon- + Dispatch-Skripte (werden nie in das Host-Projekt kopiert)
  • prompts/ – Initiale Worker-Prompt-Vorlagen (überschreibbar über das .agents/skills/coding-agent-work-loop/prompts/ des Host-Projekts)
  • systemd/ – [email protected]/.timer-Vorlage-Units; das Setup kopiert sie nach ~/.config/systemd/user/
  • coding-agent.config.example – Konfigurationsvorlage

Verwandte Skills