
Kiki
Arbeitssignale und Agentenausführung
Damit ein Vorschlag zur Ausführung durch den Zuständigen wird.
Ein Paperclip-Plugin und ein Slack-Collector, die einem Team helfen, seine KI-Agenten zu betreiben.
Kiki vocabulary
- assignment
- wake
- guardrail
- stage reaper
- zombie sweeper
- circuit breaker
- escalation
- observe
- signals
- profile
- directive
- proposal
- approval
Assignment: assigneeAgentId · PATCH /api/issues/:id · queueIssueAssignmentWakeup · issue.updated · CTO TRIAGE · AUTO-PROMOTE TO TODO · AUTO-REBALANCE · in_progress · REASSIGN WITHOUT WAKE · repatchAssignment · kiki-retry-issue · status: todoWake: queueIssueAssignmentWakeup · REASSIGN WITHOUT WAKE · ctx.agents.invoke · POST /api/agents/:id/wakeup · invokeOnce · INVOKE DEDUP · windowMs · HANDOFF-ACK · AT-LEAST-ONCE · HANDOFF_ACK_MAX_RETRIES · ORPHAN WAKE · lastRunAt · maxConsecutiveWakes · WAKE-STORM GUARD · heartbeat_runsGuardrail: issue.updated · in_progress · ORPHAN WAKE · SPEC COMPLETE · PO SPEC GATE · PO DELEGATION GATE · REVIEW SCORECARD · 30/30 · REWORK · PO ACCEPTANCE SCORECARD · findScorecardInComments · ANTI-DECEPTION RATCHET · WORKFLOW GUARDRAILStage Reaper: PATCH /api/issues/:id · lastRunAt · stage-reaper · repatchAssignment · heartbeatSeconds · maxConsecutiveWakes · COOLDOWN · lastSignalTime · stageEntryTime · LEVEL-TRIGGERED · WAKE-STORM GUARD · pipeline-reaper · stage-without-PATCH · kiki-retry-issue · LEAD REROUTEZombie Sweeper: zombie-sweeper · ZOMBIE_RUNNING_MAX_MIN · ZOMBIE_QUEUED_MAX_MIN · execution_run_id · RUN OWNERSHIP CONFLICT · heartbeat_runs · claude_local · execution_locked_at · SELF-HEALCircuit Breaker: CLOSED · HALF_OPEN · auth_fail · rate_limit · RETRY STORM · CB_FAILURE_THRESHOLD · KEY ROTATOR · HTTP 429 · process_lost · agent.run.failedEscalation: process_lost · agent.run.failed · ESCALATION COMMENT · LEAD REROUTE · QA FALLBACK · agent.status_changed · failed-run-escalator · PIPELINE NOTIFIER · pipeline-health-snapshot · SILENT STALLObserve: observe_channel · slack_read_channels · slack_read_thread · slack_read_reactions · slack_user_activity · .last_observed.json · DELTA TRACKING · oldest · SOCKET MODE · kiki-observe · NO RAW TEXTSignals: NO RAW TEXT · UserSignal · message_count · avg_response_time_minutes · active_hours · thread_participation_rate · topic_keywords · evidence_count · LLMExtractedSignal · FeedbackSignalProfile: FeedbackSignal · UserProfile · CommunicationStyle · DecisionPattern · WorkRhythm · focusBlocks · confidence · ContextMode · DELEGATION CHAINS · refresh-profilesDirective: AgentDirective · profileToDirectives · reportFormat · taskConstraints · directiveToSkillMarkdown · agent.created · PATCH /api/skills/{skillId} · grounding_policy · systemPrompt · NO USER PIIMaintenance Proposal: MaintenanceProposal · [MAINT] · daily-maintenance · run-maintenance · kiki-maintain · MAX 10 PROPOSALS · [SCHEMA APPROVAL REQUIRED] · P1/P2/P3 · DO NOT FABRICATE · BOUND TARGETHuman Approval: SOCKET MODE · [SCHEMA APPROVAL REQUIRED] · maint_approve · maint_deny · BLOCK KIT · reaction_added · white_check_mark · ProposalMapping · block_actions · approved · cancelled · status: todo
Zwischen Zuweisung und tatsächlicher Ausführung ein Pfad zum Beobachten und Wiederherstellen.
Arbeitssignale werden zu Profilen und Agentenvorgaben, und die Freigabe eines Wartungsvorschlags bleibt von der Zuweisung seiner Ausführung getrennt. Stoppt die Aktivität eines zugewiesenen Issues, wird mit Issue und Zuständigem erneut angefragt, und wiederholte Nichtantworten führen zu einem Limit, einem Cooldown und der Entscheidung eines Menschen.
Sie machen aus Arbeitssignalen Agentenvorgaben und verbinden Wartungsvorschläge, menschliche Freigabe, Zuweisung und die Wiederherstellung hängender Läufe als getrennte Schritte. Ich habe diesen Ablauf geplant und entwickelt.
Erste Aufzeichnung im Repository April 3, 2026 · Einsatz bei pinxlab bis May 26, 2026
Läuft als Plugin im Paperclip des Teams; ein MCP-Server übernimmt die Slack-Erfassung.
Signale → Vorgaben
Profile und Agentenvorgaben werden aus dem Slack-Verlauf erstellt. Vorgaben sind Kontext für Agenten und werden nicht als Ursache eines Vorschlags gezeichnet.
Slack-SignaleDaten: KanalverlaufMusterextraktion · ohne Bots
SignalerfassungDer zugängliche Kanalverlauf wird gesammelt, Bot-, Beitritts- und Austrittsnachrichten werden herausgefiltert. Originalnachrichten werden auf dieser Seite nicht gezeigt.
Musterextraktion · ohne Bots
SignalerfassungDaten: ProfilzusammenführungZusammenführung der UnternehmensprofileUnternehmenszustandExtrahierte Muster werden zu einem Profil-Patch, der in das Unternehmensprofil eingeht. Es sind heuristische Muster, keine Leistungsbewertungen von Mitarbeitenden.
Zusammenführung der Unternehmensprofile
UnternehmenszustandDaten: neu erzeugenVorgaben pro AgentAgentenzustandVorgaben pro Agent werden aus dem zusammengeführten Profil neu erzeugt und gespeichert.
Vorgaben pro Agent
AgentenzustandAusführen · Urteil: Vorgaben einspeisenZugewiesener AgentVorgaben gelangen in den Kontext eines Agenten, wenn er erstellt wird. Das heißt nicht, dass ein bestimmter Vorschlag aus einem bestimmten Slack-Signal stammt.
Vorschlag → Freigabe → Zuweisung
Ein Vorschlag existiert zuerst als nicht zugewiesenes Backlog-Issue, die Reaktion eines Menschen fordert eine Statusänderung an, und Zuweisung und Ausführung liegen beim externen System.
ZielprojektDaten: ZielumfangPO-Aufruf · eingegrenzter Prompt
WartungsanalyseDer Wartungsjob ruft den PO-Agenten mit einem auf das Zielprojekt eingegrenzten Prompt auf. Quellinhalte werden nicht gezeigt.
PO-Aufruf · eingegrenzter Prompt
WartungsanalyseDaten: Vorschlags-IssueVorschlag · BacklogIssue-TrackerDer Prompt verlangt Vorschläge nur mit verifizierten Pfaden, als nicht zugewiesene Backlog-Issues, und verbietet das Ausführen von DB-Migrationen. Er ist eine Anweisung an einen Produktagenten, kein deterministischer Durchsetzungsmechanismus.
Vorschlag · Backlog
Issue-TrackerDaten: Vorschlag postenZuordnung Nachricht ↔ IssuePosten von VorschlägenJeder Vorschlag wird in Slack gepostet und die Zuordnung von Nachricht zu Issue gespeichert. Bereits gepostete Vorschläge werden nicht erneut gepostet, und die gespeicherte Zuordnung behält die letzten 50.
Zuordnung Nachricht ↔ Issue
Posten von VorschlägenDaten: Slack-NachrichtMensch · freigeben, ablehnenEin Mensch sieht den geposteten Vorschlag in Slack.
Mensch · freigeben, ablehnenAusführen · Urteil: ReaktionZuordnung Nachricht ↔ Issue
Posten von VorschlägenEine Reaktion auf die Nachricht findet das Issue über die Zuordnung. Eine automatische Freigabe gibt es nicht.
Zuordnung Nachricht ↔ Issue
Posten von VorschlägenAusführen · Urteil: freigeben → todoAusführungs-Issue · todoIssue-TrackerBei Freigabe wird eine Anfrage gesendet, das wartende Vorschlags-Issue auf todo zu setzen, und Zuordnung und Thread-Hinweis werden aktualisiert. Dieser Handler markiert die Zuordnung als freigegeben, ohne den Antwortcode zu prüfen, daher ist es keine Fail-closed-Transaktion.
Zuordnung Nachricht ↔ Issue
Posten von VorschlägenAusführen · Urteil: ablehnen → cancelledVorschlag · BacklogIssue-TrackerBei Ablehnung wird eine Anfrage gesendet, dasselbe Issue auf cancelled zu setzen. Das Issue existierte schon vor der Freigabe; die Freigabe legt es nicht an.
Ausführungs-Issue · todo
Issue-TrackerAusführen · Urteil: ZuweisungZugewiesener AgentZuweisung und Ausführung eines todo-Issues liegen beim externen Ausführungssystem. Ein Issue auf todo zu setzen garantiert nicht, dass die Arbeit begonnen hat.
Stillstand → Wiederherstellung → Mensch
Für ein zugewiesenes Issue ohne Aktivität wird erneut mit Issue und Zuständigem angefragt; erreichen aufeinanderfolgende Nichtantworten das Limit, geht es an einen Menschen.
Zugewiesener AgentBeobachtung · Bericht: LaufprotokolleJüngste Läufe · Aktivität
LaufbeobachtungDie Läufe und jüngsten Signale des zugewiesenen Agenten werden als Beobachtungen aufgezeichnet. Aktivität ist kein Beleg für Abschluss.
Jüngste Läufe · Aktivität
LaufbeobachtungBeobachtung · Bericht: letzte AktivitätStillstandsprüfung · HeartbeatStage reaperDer Reaper betrachtet nur Issues, die nicht done, cancelled oder blocked sind und einen Zuständigen haben, und berechnet das Alter des letzten Signals und der Stage.
Stillstandsprüfung · Heartbeat
Stage reaperDaten: keine Antwort +1Nichtantworten · pro IssueZustand der NichtantwortenAufeinanderfolgende Nichtantworten werden pro Agent und Issue gezählt und im Zustand gespeichert.
Jüngste Läufe · Aktivität
LaufbeobachtungBeobachtung · Bericht: neue Aktivität → ResetNichtantworten · pro IssueZustand der NichtantwortenNeue Aktivität setzt den Zähler zurück.
Stillstandsprüfung · Heartbeat
Stage reaperAusführen · Urteil: erneuter AufrufIssue + ZuständigerWiederherstellungsaufrufIst der Heartbeat überschritten und der Zähler unter dem Limit, erfolgt ein Wiederherstellungsaufruf.
Issue + Zuständiger
WiederherstellungsaufrufAusführen · Urteil: Issue + ZuständigerAusführungs-Issue · todoIssue-TrackerDie Zuweisung wird mit dem Issue, dem zugewiesenen Agenten und einem erläuternden Kommentar erneut angefordert, und die HTTP-Antwort wird geprüft. Ein Legacy-Pfad greift auf einen einzelnen Weckaufruf zurück.
Nichtantworten · pro Issue
Zustand der NichtantwortenFehlschlag · Limit: nach 3Erneute Aufrufe stoppen · CooldownObergrenzeErreichen aufeinanderfolgende Nichtantworten das Limit (standardmäßig 3), enden die erneuten Aufrufe. Das Limit hält nur, wenn State-Hooks den Zähler lesen und schreiben, und ein fehlgeschlagenes Speichern kann es schwächen.
Erneute Aufrufe stoppen · Cooldown
ObergrenzeAusführen · Urteil: neu zuweisen · benachrichtigenLead · OperatorWeist nach Möglichkeit einem Lead neu zu und setzt in_progress nur dann auf todo zurück, wenn diese Funktion aktiviert ist. Andernfalls bleiben ein Kommentar und eine Best-Effort-Benachrichtigung, und nach dem Limit wird ein Cooldown aufgezeichnet.
Stillstandsprüfung · Heartbeat
Stage reaperBeobachtung · Bericht: nur WarnungLead · OperatorDauert eine Stage zu lange, bleibt für Operatoren nur ein Warnkommentar. Der Status wird nicht automatisch geändert.
Alle Verbindungen in gleicher Stärke. Wird ein Ablauf gewählt, ist nur sein Pfad hervorgehoben, mit nummerierten Schritten.
- Durchgezogen · Richtung von Eingaben, Ergebnissen und Aufzeichnungen
- Gestrichelt · Ausführen, Urteil, Anfrage
- Lang gepunktet · Beobachtung und Berichte, getrennt vom Urteil
- Kurz gestrichelt · Fehlschlag, Stopp, Limit
- Dicke schwarze Linie · der gewählte Ablauf; Nummern geben die Reihenfolge an
- Kasten · Code- oder Zustandsgrenze, benannt in der Kopfzeile
- Innerer Chip · eine Komponente dieser Grenze
- Gepunkteter Kasten · außerhalb dieser Grenze
- Orange Umrandung · wo ein Modell entscheidet
- Agentenaufruf · Wiederherstellungsaufruf
- Zustand · Aufzeichnungen
- Stillstandsprüfung · Obergrenze
- Erfassung · Posten
Gezeichnet nach nicht öffentlichen Implementierungs- und Entwicklungsaufzeichnungen. Team-, Issue- und Slack-Kennungen sowie Originalnachrichten werden nicht gezeigt; Deployment, Container und Zugangsdaten liegen bei einem Verantwortlichen außerhalb dieses Plugins.
- Eine Beobachtung
- Bericht vom April 28, 2026: In einer manuellen Diagnose vor der Änderung wurde für ein Issue, das 67 Stunden nicht gelaufen war, die Zuweisung mit Issue und Zuständigem erneut angefordert, und innerhalb von 5 Sekunden stand ein neuer Lauf in der Warteschlange. Abschluss, mittlere Wiederherstellungszeit und Wirkung nach dem Rollout wurden nicht gemessen.
- Grenzen der Freigabeverarbeitung
- Anders als der Wiederherstellungsaufruf markiert die Freigabeverarbeitung die Zuordnung als freigegeben, ohne den Antwortcode zu prüfen. Sie wird nicht als atomare oder Fail-closed-Freigabetransaktion beschrieben.
- Wann das Limit hält
- Das Limit von 3 Aufrufen ist eine Implementierung, die hält, wenn State-Hooks vorhanden sind. Sie garantiert nicht genau eine Eskalation bei jedem Fehlschlag.