CommunityCodierung & Entwicklunggithub.com

Human-in-the-Loop (Mensch im Kreislauf)

Einmalige Browser-Oberfläche für Feedback des Eigentümers an den Agenten: Dokumente abschnittsweise genehmigen und bearbeiten, offene Fragen mit vorgegebenen Optionen beantworten, Materialien blind für Referenzlabeln, Vorschläge auf einer Skala bewerten. Die Seite wird per Skript aus einer spec.json erstellt, der Eigentümer klickt auf „JSON für Agenten kopieren“, der Agent wendet die Antworten an.

Was ist Human-in-the-Loop (Mensch im Kreislauf)?

Diese Fähigkeit (Skill) bietet eine Schicht von Einmal-Interfaces zwischen dem Auftraggeber („Eigentümer“) und einem KI-Agenten. Der Agent beschreibt, was überprüft und entschieden werden muss, ein Skript baut eine autarke HTML-Seite, der Eigentümer beantwortet alles im Browser und gibt die Ergebnisse als JSON zurück. Die Seite wird nicht von Hand geschrieben, sondern ausschließlich aus einer `spec.json` und dem Build-Skript `scripts/build.py` generiert. **Wofür es nützlich ist:** Wenn der Eigentümer mehr als ein oder zwei Items prüfen, bearbeiten, auswählen oder labeln muss – z. B. ein Dokument zur Genehmigung (Spez, PRD, Angebot, Plan) abschnittsweise mit Status und direkten Texteingriffen, gleichzeitige Auswahl aus mehreren Optionen zu verschiedenen Fragen, blindes Referenzlabeln (dabei werden die Antworten des Models separat gehalten und erst nachträglich per `score.py` verglichen) oder Bewertung von Vorschlägen auf einer Skala. **Unterstützte Plattformen:** Ursprünglich für Claude Code, Cursor, Codex u. ä. konzipiert – es handelt sich um ein reines Python-/HTML-Set, das über die Kommandozeile bzw. einen Agentenaufruf gestartet wird. **Wie es funktioniert:** Der Agent erstellt eine `spec.json`, baut daraus eine HTML-Seite, teilt dem Eigentümer mit einer Zeile mit, was offen ist. Der Eigentümer bearbeitet die Seite und kopiert das JSON. Der Agent wendet die Antworten anhand des `task`-Felds an und berichtet über Änderungen. Bei Blindlabeln wird das Ergebnis per `score.py` mit den versteckten Antworten abgeglichen. Tests können mit `selftest.py` automatisiert durchgeführt werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vasilievyakov/human-in-the-loop/tree/HEAD/skills/human-in-the-loop

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Human in the Loop (Mensch im Kreislauf)

Schicht von Einmal-Interfaces zwischen Eigentümer und Agent. Der Agent beschreibt, was der Eigentümer prüfen und entscheiden muss, ein Skript baut eine autarke HTML-Seite, der Eigentümer antwortet im Browser in beliebiger Reihenfolge und gibt ein JSON zurück. Die Seite wird nicht von Hand geschrieben: nur spec.json und scripts/build.py.

$SKILL bezeichnet den Ordner dieser Datei.

Wann einsetzen

  • Dokument zur Genehmigung: Spezifikation, PRD, Angebot, Plan. Status pro Abschnitt, direkte Textbearbeitung, Antworten auf offene Fragen.
  • Auswahl aus Optionen zu mehreren Fragen gleichzeitig, jede Frage hat Optionen des Agenten und eine eigene Antwort.
  • Blindlabel für Referenz: Der Eigentümer antwortet, die Antworten des Modells liegen in einer separaten Datei und werden nicht auf die Seite übernommen; später berechnet score.py die Übereinstimmung.
  • Bewertung von Vorschlägen auf einer Skala.

Bei ein oder zwei Fragen direkt im Chat fragen.

Ablauf

  1. Spec. Erstelle spec.json (Format: references/spec-format.md). Für ein Markdown-Dokument gibt es eine Vorlage: python3 $SKILL/scripts/from_markdown.py doc.md --options options.json -o spec.json (Abschnitte ## und ### werden zu bearbeitbaren Blöcken, der Abschnitt „Offene Fragen“ wird zu Fragen mit Optionen aus options.json). Für Blindlabel lege die versteckten Antworten in eine separate sidecar.json; in der spec.json dürfen sie nicht vorkommen.
  2. Seite. python3 $SKILL/scripts/build.py spec.json -o page.html erstellt und öffnet die Seite. Lege spec und Seite neben dem Projekt ab (z. B. in private/), nicht im Scratchpad, damit der Eigentümer zurückkehren kann. Teile dem Eigentümer in einer Zeile mit, was geöffnet ist und was von ihm erwartet wird.
  3. Eigentümer antwortet und fügt im Chat das JSON ein (Schaltfläche „JSON für Agenten kopieren“). Im JSON steht nur das, was er bearbeitet hat: status, comment, markdown_old/markdown_new, answers, notes, plus decision und general_comment.
  4. Agent wendet an die Antworten anhand des task-Felds aus dem JSON und berichtet, was geändert wurde und was noch offen ist. Ein leerer decision bei vorhandenen Entscheidungs-Buttons bedeutet, dass keine Entscheidung getroffen wurde: Nachfragen, das Dokument nicht als genehmigt betrachten. Für Labeln: JSON speichern und ausführen: python3 $SKILL/scripts/score.py labels.json sidecar.json --spec spec.json. Abweichungen dem Eigentümer als Liste zeigen, Label-Fehler nicht selbst korrigieren.

Wenn sich die spec ändert, wird die Seite neu gebaut; alte Antworten im Browser werden nicht auf die neue Version angewendet.

Test

python3 $SKILL/tests/selftest.py [ordner] baut beide Beispiele aus examples/, durchläuft sie im headless Chromium und prüft die Ausgaben. Nach jeder Änderung an Vorlage oder Skripten ausführen.

Verwandte Skills