
Kiki
Pracovné signály a vykonávanie agentov
Aby sa návrh stal činnosťou riešiteľa.
Plugin pre Paperclip a kolektor zo Slacku, ktoré tímu pomáhajú prevádzkovať agentov AI.
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
Medzi pridelením a skutočným vykonaním: cesta na pozorovanie a obnovu.
Pracovné signály sa menia na profily a direktívy pre agentov a schválenie návrhu údržby je oddelené od pridelenia jeho vykonania. Keď aktivita prideleného tiketu ustane, znova sa oň požiada s tiketom a riešiteľom a opakované neodpovedanie vedie k limitu, cooldownu a ľudskému posúdeniu.
Menia pracovné signály na direktívy pre agentov a ako samostatné kroky prepájajú návrhy údržby, ľudské schválenie, pridelenie a obnovu zaseknutých behov. Plánovanie a vývoj tohto toku sú mojou prácou.
Prvý záznam v repozitári April 3, 2026 · spolupráca s pinxlab do May 26, 2026
Beží ako plugin vnútri tímového Paperclip; zber zo Slacku zabezpečuje server MCP.
Signály → direktívy
Profily a direktívy pre agentov vznikajú z histórie Slacku. Direktívy sú kontextom agenta a nezobrazujú sa ako príčina žiadneho návrhu.
Signály SlackDáta: história kanálovVyťaženie vzorcov · bez botov
Zber signálovZbiera sa dostupná história kanálov a správy botov a o pripojení či odchode sa odfiltrujú. Pôvodné správy sa na tejto stránke nezobrazujú.
Vyťaženie vzorcov · bez botov
Zber signálovDáta: zlúčenie profiluZlúčenie profilu firmyStav firmyVyťažené vzorce sa stanú záplatou profilu zlúčenou do profilu firmy. Ide o heuristické vzorce, nie o hodnotenie výkonu zamestnancov.
Zlúčenie profilu firmy
Stav firmyDáta: regeneráciaDirektívy pre agentovStav agentaDirektívy pre jednotlivých agentov sa zo zlúčeného profilu vygenerujú znova a uložia.
Direktívy pre agentov
Stav agentaSpustenie · rozhodnutie: vloženie direktívPridelený agentDirektívy sa dostanú do kontextu agenta pri jeho vytvorení. Neznamená to, že určitý návrh vzišiel z určitého signálu Slack.
Návrh → schválenie → pridelenie
Návrh najprv existuje ako nepridelený tiket v backlogu, reakcia človeka žiada o zmenu stavu a pridelenie a vykonanie patria externému systému.
Cieľový projektDáta: rozsah cieľaVolanie PO · prompt s vymedzeným rozsahom
Analýza údržbyÚloha údržby volá agenta PO s promptom vymedzeným na cieľový projekt. Obsah zdrojov sa nezobrazuje.
Volanie PO · prompt s vymedzeným rozsahom
Analýza údržbyDáta: tiket s návrhomNávrh · backlogSystém tiketovPrompt žiada o návrhy len s overenými cestami, vo forme nepridelených tiketov v backlogu, a zakazuje spúšťať migrácie DB. Ide o pokyn produktovému agentovi, nie o deterministický mechanizmus vynútenia.
Návrh · backlog
Systém tiketovDáta: zverejnenie návrhuMapovanie správa ↔ tiketZverejňovanie návrhovKaždý návrh sa zverejní v Slacku a mapovanie správy na tiket sa uloží. Už zverejnené návrhy sa znova nezverejňujú a uložené mapovanie drží posledných 50.
Mapovanie správa ↔ tiket
Zverejňovanie návrhovDáta: správa SlackČlovek · schvaľuje, odmietaČlovek vidí zverejnený návrh v Slacku.
Človek · schvaľuje, odmietaSpustenie · rozhodnutie: reakciaMapovanie správa ↔ tiket
Zverejňovanie návrhovReakcia na správu nájde tiket cez mapovanie. Automatické schvaľovanie neexistuje.
Mapovanie správa ↔ tiket
Zverejňovanie návrhovSpustenie · rozhodnutie: schválenie → todoTiket na vykonanie · todoSystém tiketovPri schválení sa odošle žiadosť o presun čakajúceho tiketu s návrhom do todo a aktualizuje sa mapovanie a upozornenie vo vlákne. Tento handler označí mapovanie ako schválené bez kontroly kódu odpovede, takže nejde o transakciu, ktorá sa pri zlyhaní uzavrie.
Mapovanie správa ↔ tiket
Zverejňovanie návrhovSpustenie · rozhodnutie: odmietnutie → cancelledNávrh · backlogSystém tiketovPri odmietnutí sa odošle žiadosť o presun toho istého tiketu do cancelled. Tiket existoval už pred schválením; schválenie ho nevytvára.
Tiket na vykonanie · todo
Systém tiketovSpustenie · rozhodnutie: prideleniePridelený agentPridelenie a vykonanie tiketu todo patrí externému vykonávaciemu systému. Presun tiketu do todo nezaručuje, že práca začala.
Uviaznutie → obnova → človek
O pridelený tiket, ktorého aktivita ustala, sa znova požiada s tiketom a riešiteľom; keď po sebe idúce neodpovede dosiahnu limit, prejde na človeka.
Pridelený agentPozorovanie · správa: záznamy behovNedávne behy · aktivita
Pozorovanie behovBehy prideleného agenta a nedávne signály sa zaznamenávajú ako pozorovania. Aktivita nie je dokladom dokončenia.
Nedávne behy · aktivita
Pozorovanie behovPozorovanie · správa: posledná aktivitaKontrola uviaznutia · heartbeatStage reaperReaper sleduje len tikety, ktoré nie sú done, cancelled ani blocked a majú riešiteľa, a počíta vek posledného signálu a fázy.
Kontrola uviaznutia · heartbeat
Stage reaperDáta: neodpoveď +1Neodpovede · na tiketStav neodpovedaniaPo sebe idúce neodpovede sa počítajú pre každú dvojicu agent–tiket a ukladajú do stavu.
Nedávne behy · aktivita
Pozorovanie behovPozorovanie · správa: nová aktivita → resetNeodpovede · na tiketStav neodpovedaniaNová aktivita počet vynuluje.
Kontrola uviaznutia · heartbeat
Stage reaperSpustenie · rozhodnutie: opakované volanieTiket + riešiteľObnovovacie volanieAk sa prekročil heartbeat a počet je pod limitom, vykoná sa obnovovacie volanie.
Tiket + riešiteľ
Obnovovacie volanieSpustenie · rozhodnutie: tiket + riešiteľTiket na vykonanie · todoSystém tiketovO pridelenie sa znova požiada s tiketom, prideleným agentom a vysvetľujúcim komentárom a odpoveď HTTP sa skontroluje. Cesta legacy to nahrádza jediným budiacim volaním.
Neodpovede · na tiket
Stav neodpovedaniaZlyhanie · limit: po 3Zastaviť volania · cooldownLimitKeď po sebe idúce neodpovede dosiahnu limit (predvolene 3), opakované volania ustanú. Limit platí len vtedy, keď stavové hooky počet čítajú a zapisujú, a neúspešné uloženie ho môže oslabiť.
Zastaviť volania · cooldown
LimitSpustenie · rozhodnutie: nové pridelenie · upozornenieVedúci · operátorPodľa možností pridelí prípad znova vedúcemu a in_progress vráti do todo len vtedy, keď je táto funkcia zapnutá. Inak zanechá komentár a upozornenie best-effort a po dosiahnutí limitu zaznamená cooldown.
Kontrola uviaznutia · heartbeat
Stage reaperPozorovanie · správa: len varovanieVedúci · operátorKeď fáza trvá príliš dlho, operátorom sa zanechá len varovný komentár. Stav sa automaticky nemení.
Každé spojenie s rovnakou váhou. Výber toku zvýrazní len jeho cestu s očíslovanými krokmi.
- Plná čiara · smer vstupu, výsledkov a záznamov
- Prerušovaná čiara · spustenie, rozhodnutie, požiadavka
- Dlhé bodky · pozorovanie a vykazovanie, oddelene od rozhodnutia
- Krátke čiarky · zlyhanie, zastavenie, limit
- Hrubá čierna čiara · zvolený tok; čísla udávajú poradie
- Rámček · hranica kódu alebo stavu, pomenovaná v hlavičke
- Vnútorný štítok · komponent tejto hranice
- Bodkovaný rámček · mimo tejto hranice
- Oranžový obrys · miesto, kde rozhoduje model
- Volanie agenta · obnovovacie volanie
- Stav · záznamy
- Kontrola uviaznutia · limit
- Zber · zverejňovanie
Nakreslené podľa neverejných záznamov implementácie a vývoja. Identifikátory tímu, tiketov a Slacku a pôvodné správy sa nezobrazujú; nasadenie, kontajnery a prihlasovacie údaje patria vlastníkovi mimo tohto pluginu.
- Jedno pozorovanie
- Správa z April 28, 2026: pri ručnej diagnóze pred zmenou sa pri jednom tikete, ktorý 67 hodín nebežal, znova požiadalo o pridelenie s tiketom a riešiteľom a nový beh sa do 5 sekúnd zaradil do frontu. Dokončenie, priemerný čas obnovy ani efekt po nasadení sa nemerali.
- Hranice spracovania schválení
- Na rozdiel od obnovovacieho volania spracovanie schválení označí mapovanie ako schválené bez kontroly kódu odpovede. Neopisuje sa ako atomická transakcia schválenia ani ako transakcia, ktorá sa pri zlyhaní uzavrie.
- Kedy limit platí
- Limit 3 volaní je implementácia, ktorá platí, keď sú prítomné stavové hooky. Nezaručuje práve jednu eskaláciu pri každom zlyhaní.