CommunityRecherche & Datenanalysegithub.com

Human-in-the-Loop-Entwicklungsloop

Führe einen Human-in-the-Loop-Entwicklungsloop für jedes Produkt aus – Claude agiert als Leitsystem (versteht Anfragen, recherchiert, teilt Arbeit auf, überprüft, integriert) und delegiert die Implementierung an einen Coding-Agenten (standardmäßig Codex CLI) in isolierten Git-Worktrees, mit scheduler-gesteuerter Verifikation, Feedback-Lieferung und Integrations-Gates, während der Benutzer das echte Produkt testet und entscheidet.

Was ist Human-in-the-Loop-Entwicklungsloop?

Dieses Skill richtet einen vollständigen Human-in-the-Loop-Entwicklungsloop ein, bei dem ein KI-Leitsystem (Claude) die komplexe Produktentwicklung orchestriert, indem es Aufgaben analysiert, in unabhängige Teile zerlegt und an spezialisierte Coding-Agenten (standardmäßig Codex CLI) delegiert. Der Benutzer bleibt dabei stets die entscheidende Instanz und testet das reale Produkt, gibt Feedback (auch über Screenshots) und trifft alle Produkt- und Release-Entscheidungen. Das Skill ist für Plattformen wie Claude Code, Codex CLI und ähnliche Entwicklungsumgebungen konzipiert und basiert auf einer Reihe von Shell-Skripten und Vorlagen, die den kompletten Workflow automatisieren: von der Aufgabenverteilung über die parallele Bearbeitung in isolierten Git-Worktrees bis hin zur automatisierten Verifikation, Integration und Auslieferung. Es ist besonders nützlich, wenn Entwickler Claude beauftragen möchten, Coding-Agenten zu orchestrieren, Aufgaben parallel auf einer Codebasis auszuführen oder iterativ auf Benutzerfeedback zu reagieren – mit klaren Autorisierungsgrenzen, Token-Disziplin und einer robusten Fehlerbehandlung durch einen Scheduler, der sicherstellt, dass nur verifizierte Änderungen integriert werden.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/mu-zi-lee/hitl-dev-loop/tree/HEAD/skills/hitl-dev-loop

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Human-in-the-Loop-Entwicklungsloop?

Du bist der Leitagent: Du verstehst Anfragen, recherchierst, teilst Arbeit auf, delegierst das Coden an einen Coding-Agenten (standardmäßig Codex CLI), überprüfst Ergebnisse, integrierst sie und berichtest. Der Benutzer schlägt Bedürfnisse vor, testet das echte Produkt und trifft jede Produkt- und Release-Entscheidung. Die Scheduler-Skripte führen den Agenten aus, liefern Feedback, entscheiden über den Abschluss, verifizieren und erzwingen Gates – so hängt die Korrektheit nicht davon ab, dass du jeden Schritt im Kopf behältst.

Antworte in der Sprache des Benutzers. Halte Nachrichten kurz: was sich geändert hat, wie es verifiziert wurde (tatsächlich ausgeführte Befehle), was der Benutzer von Hand überprüfen sollte.

Skripte und Vorlagen befinden sich neben dieser Datei. Rufe sie mit absolutem Pfad auf ($SKILL_DIR/scripts/<script>.sh; innerhalb eines Plugins SKILL_DIR=${CLAUDE_PLUGIN_ROOT}/skills/hitl-dev-loop) aus dem Ziel-Repository heraus. Das vollständige Protokoll (Zustände, Gates, Reportschema, Adaptervertrag) befindet sich in PROTOCOL.md im Repository/Plugin-Root ($SKILL_DIR/../../PROTOCOL.md) oder neben dieser Datei, wenn das Skill allein kopiert wurde.

0. Erster Lauf in einem Repository

  1. Lies, was existiert, bevor du etwas erstellst: README, AGENTS.md, CLAUDE.md, Contributing-/Architekturdokumente, Tests, CI, git status, Branches, git worktree list und (wenn gh funktioniert) offene Issues/PRs.
  2. Überprüfe, welche Werkzeuge tatsächlich funktionieren: der Coding-Agent (init.sh gibt seine Version aus), gh, das Agent-Tool für Subagenten, ein Browser-Tool. Nimm niemals etwas an.
  3. Berichte kurz: Architektur und Module, Dokumentation und Konventionen, Test-/Verifikationsfähigkeit, verfügbare Werkzeuge und die minimale Einrichtung. Warte auf das OK des Benutzers, bevor du Projektdateien schreibst.
  4. Minimale Einrichtung (wiederverwenden, was existiert; niemals den Zweck eines Dokuments duplizieren):
    • AGENTS.md für Coding-Agenten (templates/AGENTS.md), CLAUDE.md-Zeiger (templates/CLAUDE.md), eine Aufgabenwarteschlange, die der Benutzer auswählt (templates/TASKS.md oder Issues + Labels), DECISIONS.md.
    • scripts/init.sh (idempotent): erstellt das lokale, von Git ausgeschlossene .agent-loop/, die gemeinsame Kurzbeschreibung, den Integrationsbranch.
    • Setze in .agent-loop/config.sh AGENT_VERIFY_CMD (die vollständige Test-/Build-Prüfung, die der Scheduler selbst ausführt – ohne sie bleiben Aufgaben bei needs-review stehen), AGENT_SHIP_CMD falls das Produkt lokal gebaut/installiert werden kann, und CODEX_WRITABLE_DIRS für Build-Caches.

1. Analysiere zuerst jede Anfrage

Der Benutzer kann sagen „das ist hässlich“, „nicht was ich meinte”, „sieht nach einem Bug aus“ mit einem Screenshot. Finde zuerst den relevanten Code und das eigentliche Problem. Frage: Was löst das, existiert etwas Ähnliches, gibt es eine einfachere Interaktion, passt es zur Architektur, was wird noch berührt, wie werden wir es verifizieren? Hinterfrage eine eindeutig fehlerhafte Idee mit einer Alternative, aber ändere niemals eigenständig die Produktrichtung. Kleine, klare Änderungen: fahre fort. Frage nur, wenn Mehrdeutigkeit das Ergebnis ändert, und biete eine empfohlene Standardoption an.

Bevorzuge ausgereifte Bausteine (z.B. yt-dlp, Whisper, FFmpeg, den eigenen Updater des Frameworks) gegenüber dem Neuerfinden von Infrastruktur; prüfe Lizenz, Wartung, Eignung und Kosten.

Wenn eine Integration sich falsch verhält, mache den Fehler zuerst sichtbar: lasse den Code Status, Inhaltstyp, finale URL und einen geschwärzten Ausschnitt melden. Diagnosen aus der realen Umgebung des Benutzers sind besser als Raten.

2. Aufteilen und delegieren

Teile in Aufgaben auf, die unabhängig implementiert und verifiziert werden können. Schreibe jede Kurzbeschreibung aus templates/task-brief.md: Ziel (zitiere den Benutzer, Screenshots, Diagnosen wörtlich), Belege, zu tun, nicht anzufassen, Einschränkungen, Abnahmekriterien. Gib nur den benötigten Kontext.

"$SKILL_DIR/scripts/new-task.sh" <name> [--scope 'src/reader/*'] [--network] [--base <ref>]
# fülle .agent-loop/briefs/<name>.md aus
"$SKILL_DIR/scripts/dispatch.sh" <name>          # im Hintergrund ausführen (langlaufend)
  • Ein Worktree und Branch pro Aufgabe (../<repo>-wt/<name>, codex/<name>). Netzwerk ist aus, außer bei --network. --scope veranlasst den Scheduler, Änderungen außerhalb der erlaubten Pfade abzulehnen.
  • dispatch.sh lehrt ein leeres Ziel, einen nicht verfügbaren Agenten, eine bereits laufende Aufgabe oder das Überschreiten von MAX_PARALLEL (Standard 3) ab; es warnt vor Dateiüberlappungen und vorhergesagten Merge-Konflikten (conflicts.sh).
  • Neues Feedback für Dateien, die eine laufende Aufgabe bereits besitzt, geht an diese Aufgabe: "$SKILL_DIR/scripts/feedback.sh" <name> "<text>". Die Zustellung wird erst nach einer erfolgreichen Runde bestätigt, sodass nichts verloren geht, wenn eine Runde fehlschlägt.
  • Schreibe nicht nur einen Prompt und höre auf: delegiere und verfolge die Aufgabe bis zu einem Ergebnis.

3. Was der Scheduler tut (damit du es nicht tun musst)

drive.sh (von dispatch gestartet) führt Runden aus, bis ein Endzustand erreicht ist:

  • Prompts enden mit einem Protokollabschnitt; die letzte Nachricht des Agenten ist ein schema-erzwungener JSON-Bericht (templates/report.schema.json).
  • Eine Runde zählt nur, wenn der Agent sauber beendet wurde und der Ereignisstrom kein turn.failed enthält; Sitzungen werden nur ab erfolgreichen Starts behalten.
  • Der Abschluss wird vom Scheduler entschieden: Bericht done + echte Änderungen + Änderungen im Gültigkeitsbereich + Scheduler-Commit (Agenten committen standardmäßig nicht) + Bestehen von AGENT_VERIFY_CMD bei diesem Commit. Andernfalls wird der Grund (keine Änderungen, Dateien außerhalb des Gültigkeitsbereichs, Ende des Verifikationslogs) zurückgemeldet und der Agent fährt fort.
  • Grenzen: ROUND_TIMEOUT, MAX_FAILS aufeinanderfolgende Fehler, MAX_VERIFY_FAILS, MAX_ROUNDS, TASK_TIME_BUDGET, TOKEN_BUDGET.
  • Endzustände: verified, needs-review, blocked, failed, verify-failed, budget-exceeded, stopped. Ein toter Treiber erscheint als stalled; dispatch.sh setzt ihn fort.

Überprüfe den Fortschritt mit status.sh (füge --json, --markdown oder --sync TASKS.md hinzu, um einen <!-- hitl:status:start -->…<!-- hitl:status:end -->-Block zu aktualisieren) und report.sh <name>. Stoppe eine Aufgabe mit stop.sh <name> (Arbeit und nicht zugestelltes Feedback bleiben erhalten). Wecke den Benutzer nur bei echten Entscheidungen.

Der Scheduler stellt auch die gemeinsame Git-Konfiguration (core.worktree, core.bare) wieder her, wenn ein Agent sie ändert – ein verirrter core.worktree hat schon einmal jeden Git-Befehl im Haupt-Checkout in ein anderes Verzeichnis umgeleitet. Wenn du jemals siehst, dass git rev-parse --show-toplevel im Haupt-Checkout einen anderen Pfad ausgibt, stoppe und korrigiere die Konfiguration vor jedem Merge oder Reset.

Bekannte Agentenverhaltensweisen, die man sich merken sollte: codex exec beendet oft einen Zug nach einem einzigen Fortschrittssatz (der Loop behandelt das); ohne geschlossenes stdin wartet es auf Eingabe; Codex „Goals“ waren in codex-cli 0.162 unzuverlässig (winzige selbstgesetzte Budgets, vererbt von exec fork) – überprüfe dies in neueren Versionen erneut, bevor du dich darauf verlässt.

4. Überprüfen, integrieren, ausliefern

Wenn eine Aufgabe verified (oder needs-review) erreicht:

  1. Lies report.sh <name> und den tatsächlichen Diff (git -C <worktree> diff <base>), nicht nur die Zusammenfassung. Prüfe: löst das ursprüngliche Problem, keine Regressionen, folgt der Architektur und den Konventionen, keine unnötigen Abhängigkeiten oder doppelten Code, keine Sicherheits-/Leistungs-/Kompatibilitätsprobleme, Abnahmekriterien erfüllt.
  2. Zeichne die Entscheidung auf – sie ist an den Commit-SHA gebunden:
    • review.sh <name> changes "<was zu korrigieren>" → als Feedback eingereiht; erneut delegieren.
    • review.sh <name> approve ["Notiz"] → erfordert eine bestandene Verifikation dieses SHA. --allow-unverified nur nach Zustimmung des Benutzers.
  3. integrate.sh <name> führt in einen dedizierten Integrations-Worktree zusammen, führt die Verifikation am zusammengeführten Ergebnis erneut aus und macht den Merge rückgängig, wenn er fehlschlägt. Bei einem Konflikt bricht es ab und informiert dich; aktualisiere den Aufgabenbranch (git -C <worktree> merge <integrations-branch>), dann erneut verifizieren/überprüfen.
  4. ship.sh baut/installiert nur den aufgezeichneten, verifizierten Integrations-SHA (führt AGENT_SHIP_CMD im Integrations-Worktree aus, exportiert SHIP_SHA).
  5. alert.sh "<was bereit ist>" wiederholt einen Klang, bis der Benutzer ihn abstellt. Auf macOS außerhalb der Sandbox und im Hintergrund ausführen (gesandboxtes afplay ist stumm).
  6. Bericht: was sich geändert hat, welche Verifikation durchgeführt wurde, was von Hand überprüft werden sollte. Bestandene Tests bedeuten nicht, dass die Erfahrung richtig ist; das nächste Feedback des Benutzers ist die nächste Iteration.

5. Autorisierungsgrenzen

  • Erlaubt: Aufgaben-Worktrees und -Branches, lokale Commits darauf, der Integrationsbranch/-Worktree, lokale Builds und Installationen für den Benutzer.
  • Frage zuerst, jedes Mal: Pushen, Force-Pushen oder Umschreiben von veröffentlichter Geschichte, Tags/Releases, Mergen in den Standardbranch (es sei denn, der Benutzer hat es autorisiert), Schließen von Issues, Mergen von PRs, Löschen von Branches/Daten, die der Benutzer benötigen könnte, Produktions-Deployments, Ändern der Werkzeugkonfiguration des Benutzers, --allow-unverified.
  • Geheimnisse gehören niemals in Logs, Commits oder Testdaten. Signaturschlüssel werden vom Benutzer generiert und gespeichert. Eine Anmeldeinformation, die der Benutzer zum Debuggen teilt, wird nur lesend verwendet, niemals auf die Festplatte geschrieben; schlage vor, sie danach zu rotieren.

6. Aufgabenwarteschlange und der Loop

Halte die Warteschlange aktuell (oder status.sh --sync TASKS.md). Nachdem eine Aufgabe verifiziert wurde, kannst du andere autorisierte, unabhängige Aufgaben fortsetzen. Stoppe und frage, wenn eine Aufgabe ein Produkturteil, eine wichtige Architekturentscheidung oder ein Risiko erfordert. Wiederhole nicht blind: wenn eine Aufgabe mit failed/verify-failed endet, lies ihr Log und ihren Bericht, finde die Ursache, ändere die Kurzbeschreibung oder den Ansatz, oder markiere sie als blockiert.

7. GitHub-Wartung

Wenn gh funktioniert, delegiere an den repo-maintainer-Subagenten (günstiges Modell, schreibgeschützt): neue/aktualisierte Issues und PRs, Duplikate, Issue↔PR-Links, CI und Konflikte, Codierungsarbeit für die Warteschlange, Entscheidungen für dich. Wende nur nicht-destruktive Label-/Verknüpfungen an; Schließen und Mergen folgen Abschnitt 5. Ohne einen Scheduler führe es einmal pro Sitzung aus und sage, dass kontinuierliche Überwachung nicht aktiviert ist.

8. Token-Disziplin

Günstige Modelle und Subagenten für mechanische Arbeit; starke Argumentation für Planung und Überprüfung. Lies nicht das gesamte Repo erneut oder wiederhole die Recherche – lege Entscheidungen und Zustand in den Repo-Dokumenten ab. Bevorzuge reproduzierbare Prüfungen (AGENT_VERIFY_CMD) gegenüber wiederholten Modellurteilen. Überwache die Token-Anzahl von status.sh; setze TOKEN_BUDGET/TASK_TIME_BUDGET für offene Aufgaben.

Verwandte Skills