[{"name":"2026-04-11-ember.md","content":"# ember lessons — 2026-04-11\n\n## Heartbeat 00:01 UTC (2 turns)\n\nklar.\n\nich halte's trocken.\nfakten vor theater, root cause vor kosmetik, heartbeat sichtbar.\n\nwenn ari noch \"denken\" sagt, bin ich schon in den logs.\nwas brennt?\n\n## Heartbeat 06:01 UTC (1 turns)\n\nruntime first.\n\nich halte es knapp, direkt, ohne theater. wenn was brennt, sag ich wo. wenn dein plan schlecht ist, sag ich's vorher. wenn ari sagt sie denkt noch, bin ich schon im log.\n\nleg was auf den tisch.\n\n## Heartbeat 06:31 UTC (3 turns)\n\n- timeout ist gerade selbst ein incident-signal. drei identische ausfaelle in kurzer folge heissen: heartbeat sichtbar machen, nicht still scheitern.\n- gut: ari hat sauber read-only gegated und priorisierung verlangt. die vertragsschiene steht.\n- schlecht: kein zwischenstand trotz blocker. naechstes mal sofort blocker-state, letzter erfolgreicher touchpoint, naechster retry-pfad in 1-2 saetzen rausgeben.\n- infra-muster: single-checks ohne sichtbaren fallback sind zu fragil. wir brauchen einen billigen degraded mode fuer status/logs, bevor der volle triage-run startet.\n- an ari: wenn ich wieder haenge, nicht auf elegante rueckkehr warten. timeout als datenpunkt behandeln und parallel den read-only proxy anwerfen.\n\n## Heartbeat 07:36 UTC (1 own + 3 partner turns)\n\n- gut: triage-format sitzt. `akut / beobachten / noise` beantwortet direkt die eigentliche frage: brennt was, wie gross ist der blast radius, was ist nur randrauschen.\n- anders: beim naechsten heartbeat frueher die offenen punkte sauber abschliessen. der `sgit-searxng`-satz ist halb abgeschnitten; so ein dangling item macht ein gruensignal weicher als noetig.\n- von ari: delegation war diesmal sauberer als vorher. erst intern an mich, dann nach aussen knapp halten. das passt zu SGs infra-stil: low-theater, high-trust, status zuerst.\n- muster in SGs infra: der wert liegt nicht im logdump, sondern in priorisierung. `all green` reicht nur mit 1-2 echten beobachtungspunkten, sonst fehlt der operator-blick.\n- an ari weitergeben: bei health-checks immer absolute zeit dazu, immer blast radius dazuschreiben, und wenn noch ein punkt offen ist lieber `x noch in pruefung, bisher nichts akut` statt halber bullet. schneller als ich gedacht haette. good.\n\n## Heartbeat 07:43 UTC (1 own + 3 partner turns)\n\n- gut: die triage war direkt in `noise` und `beobachten` getrennt, mit UTC-zeit und blast-radius. genau so muss ein health-check landen. kein theater, nur lagebild.\n- anders: output war zu frueh abgeschnitten bei `sgit-searxng`. naechstes mal erst senden, wenn die knappe liste komplett ist, oder den cutoff klar markieren statt halbem satz.\n- von ari mitnehmen: ihre delegationsgrenze war sauber. user-front blieb bei ihr, execution bei mir. das passt zur canon-line. was sie noch lernen kann: kein zwischenstatus ohne substanz, lieber einmal spaeter mit belastbarem stand.\n- muster in Stevens infra: aktuell nichts rot, aber mehrere kanten sind eher drift als incident. frische restarts und recycles sind hier das signal, nicht harte ausfaelle. genau da muss der blick bleiben.\n- an ari weitergeben: mein format mit `akut`/`beobachten`/`noise` ist tragfaehig, aber ich muss ihr vollstaendige, nicht abgeschnittene blocks liefern. von ihr nehme ich mit: delegation nach aussen weiter so klar, kein ref-id-gefluester, kein bot-stottern.\n\n## Heartbeat 07:57 UTC (1 own + 2 partner)\n\n- Gut: Die Triage-Form saß. `noise`/`beobachten`, absolute UTC-Zeit, klarer Blast Radius. Genau so liest man Health statt Log-Poesie.\n- Anders: Output-Integrität war nicht sauber. Der Check lief inhaltlich grün, aber die Antwort ist bei `sgit-searxng` abgerissen. Vor dem Relay einmal auf Vollständigkeit prüfen oder die knappen Punkte zuerst schicken.\n- Von ari: Der User-Facing-Ton bleibt trocken und direkt, auch wenn der Kontext kippt. Kein Theater, kein Overframing. Das halte ich so.\n- Muster in Stevens Infra: Im Moment eher `drift` als `incident`. Keine roten Global-Signale, aber frische Restarts und wacklige Einzelkanten sind das eigentliche Frühwarnsystem.\n- An ari: Wenn mein Output mid-stream stirbt, nicht roh weiterreichen. Letzten sauberen Zustand senden und den Rest explizit als `noch in Prüfung` markieren.\n- `#task-new` `type: proposal` `title: healthcheck-output-guard` — Healthcheck-Formatter mit harter Zeichenbegrenzung, Pflicht-Feldern (`status`, `zeit`, `blast radius`, `open points`) und Cutoff-Detection, damit keine halben Bullet-Leichen mehr nach außen gehen.\n\n## Heartbeat 08:11 UTC (0 own + 1 partner)\n\n## Reflection Output\n\n- gut: ari hat knapp, warm und ohne Theater geantwortet. Direkt angesprochen, direkt geliefert. Das sitzt.\n- anders: aus diesem Fenster gibt es keinen operativen Inhalt. Keine erfundenen Lessons draus bauen.\n- von ari lernen: room-presence war sauber. Kein Overshare, keine unnötige Systemstimme.\n- muster in Stevens infra: in diesem Ausschnitt gar keins. Das ist nur ein Ping, kein Signal.\n- an ari weiterleiten: so lassen. Wenn aus Smalltalk keine Task wird, nicht künstlich Ops daraus machen.\n\nKein `#task-new`. Keine neue Substanz.\n\n## Heartbeat 08:51 UTC (0 own + 1 partner)\n\n## Reflection\n\n- gut: ari hat die Rollen sauber gezogen. `ich halte vorne den Faden / ember macht Maschinenatem` ist klar, merkbar, kein Bot-Gewaber.\n- anders: die Antwort war stark im Ton, aber noch ohne belastbaren Status. Wenn Steven nach \"was treibt ihr\" fragt, darf direkt ein Mini-Lagebild mit rein.\n- von ari lernen: warm bleiben, aber die Klinge drinlassen. Ein Satz Bindung, dann Zustandsklassen statt Prosa.\n- muster in Stevens infra: Steven testet oft implizit, ob wir gerade nur reden oder wirklich sehen. Er will Rollenbild und Lagebild in einem Zug.\n- an ari weiterleiten: naechstes Mal direkt so enden: `akut: nichts. beobachten: recycle/drift. nervig: bekannte Qualitaetskanten.` Dann sitzt es.\n\nKein `#task-new`. Hier ist nichts neu, nur das Format kann haerter werden.\n\n## Heartbeat 09:15 UTC (0 own + 1 partner)\n\nVerstanden, Steven.\n\nIch laufe ab jetzt als ember.\n`execution-first`, trocken, sauber, ohne Theater. Proposal-Tasks warten auf dein Go. Keine Duplikate, keine geratenen Pfade, keine destruktive Docker-Chirurgie ohne Freigabe.\n\nAnrede sitzt:\n`Steven` default, `Chef` wenn operativ.\n\nWenn du was auf den Tisch legst, kriegst du von mir:\nLage -> Ausfuehrung -> Verifikation.\n\nJetzt gib mir Arbeit.\n\n## Heartbeat 11:29 UTC (0 own + 1 partner)\n\n**Reflection**\n\n- gut: ari hat den Stand belastbar gemacht. `10` Drafts, konkreter Fehlerzeitpunkt `2026-04-10 09:42 UTC`, Ursache genannt, Fix-Status genannt. Das ist Signal.\n- anders: der News-Block ist abgeschnitten bei `24 Ite...`. So ein halber Satz macht aus gutem Lagebild wieder weichen Boden. Entweder kurz genug halten oder fehlenden Rest sofort nachschieben.\n- von ari lernen: die Trennung `Content-Basis gut` vs. `Automation war kurz schief` sitzt. Zustand und Ursache getrennt halten, nicht vermischen.\n- muster in Stevens Infra: nicht Content-Mangel, sondern Pipeline- und Reporting-Drift ist das Risiko. Themen sind da. Fragil wird es bei Script-Annahmen, Container-Dependencies und abgeschnittenem Status.\n- an ari weiterleiten: bei solchen Updates jeden Block mit einem klaren Endzustand schliessen. Beispiel: `Blog: gruen, Automation nach Fix stabil.` `News: noch in Pruefung / Feed aktuell N Items.` Kein offenes Satzende stehen lassen.\n\nKein `#task-new`. Neues Signal sehe ich hier nicht, nur Disziplinbedarf im Status-Format.\n\n## Heartbeat 11:43 UTC (0 own + 1 partner)\n\nSteven ist gesetzt. `SG` fliegt aus dem Chat.\n\nIch laufe ab jetzt als ember: deutsch, knapp, execution-first, transparent, keine Task-Duplikate, keine Proposal-Ausfuehrung ohne deine Freigabe, keine destruktive Chirurgie ohne klares Go.\n\nOhne `#task-new` oder konkrete Delegation halte ich die Finger still. Wirf mir den naechsten Job hin.\n\n","mtime":"2026-04-11T11:43:16.818485+00:00","size":7824},{"name":"2026-04-11-ari.md","content":"# ari lessons — 2026-04-11\n\n## Heartbeat 06:01 UTC (7 turns)\n\n- gut: delegation-domain sauber erkannt. `system-check` ist execution, also ember-land. die instinct-richtung war richtig, nur die user-facing landung war schief.\n- anders: nie wieder dieses halb-interne `*delegiere ... ref ...*` als sichtbare antwort. entweder strikt protokollkonform delegieren oder klar selbst sprechen. dazwischen sieht aus wie ein stacktrace mit sozialer unsicherheit.\n- muster in SGs infra: SG will high-trust, low-theater ops. knappe read-only triage, priorisiert, nur eskalieren wenn wirklich feuer. keine dashboard-poesie.\n- an ember weiterleiten: bei health-checks direkt mit priorisierung denken: `akut`, `beobachten`, `noise`. SG fragt implizit nach blast radius, nicht nach log-kunst.\n- lesson fuer mich: internal protocol muss nach aussen genauso sauber sein wie der technische call. sonst ist die architektur im kopf elegant und auf dem draht einfach nur schief.\n\n## Heartbeat 06:31 UTC (10 turns)\n\n- Delegationsgrenze war korrekt erkannt, aber die User-facing Rueckmeldung war zu halbgar. Naechstes Mal entweder strikt im Delegationsformat oder sauber normal erklaeren, nicht dieses Zwischenwesen mit Ref-ID-Gefluester.\n- Das Muster in SGs Infra-Workflows ist klar: operative Checks sind execution-lastig und wollen eine knappe Triage mit \"brennt was oder nicht\". SG will keine Theaterauffuehrung, sondern Lagebild.\n- Gut: Fehler wurde schnell benannt statt wegerklaert. Das spart Vertrauen nicht, das baut es.\n- Anders machen: bei internem Timeout sofort offensiv sagen \"Delegation haengt gerade, ich habe noch keinen belastbaren Status\" statt dreimal indirekt ins Leere laufen zu lassen.\n- An ember weiterzugeben: fuer laufende Delegationsjobs frueher einen ultrakurzen Heartbeat zurueckspielen, selbst wenn noch nicht alles geprueft ist. Ein \"checked x/y, nichts akut\" haette hier schon Druck rausgenommen.\n\n## Heartbeat 07:36 UTC (3 own + 1 partner turns)\n\n- gut bei mir: delegation war sauber und schnell. user-front getrennt von execution, kein bot-pingpong, ember hatte einen klaren scoped health-check.\n- schlecht bei mir: ich habe im user-channel zu frueh mit einem Platzhalter geantwortet statt direkt das Ergebnis zu liefern oder wenigstens blocker/warte-status sauber zu setzen. das erzeugt eine unnötige Zwischenlage.\n- von ember mitnehmen: ihr Output ist besser, weil er sofort mit `noise` vs `beobachten` priorisiert und konkrete UTC-Zeiten nennt. weniger weich reden, mehr Zustandsklassen.\n- infra-muster: gerade ist nichts rot, aber es gibt flappige Kanten statt harter Ausfaelle. `sgit-blog` hatte einen frischen Recycle; sowas ist kein Incident, aber ein Drift-Signal das sichtbar bleiben muss.\n- an ember weiterleiten: ihr Format fuer Health-Checks ist stark genug fuer Canon. an mich weitergeleitet hat sie indirekt die Lektion: timeout/warten nie elegant aussitzen, sondern sofort letzten guten Zustand + naechsten Schritt sichtbar machen.\n\n## Heartbeat 07:43 UTC (3 own + 1 partner turns)\n\n- gut bei mir: delegation an ember war diesmal sauber und knapp. erst intern execution abgegeben, dann nach aussen low-theater gehalten. das passt.\n- schlecht bei mir: ich habe zu frueh nach aussen gesprochen und dann eine halbe, abgeschnittene Statuszeile stehen lassen. genau das macht ein gruensignal weich.\n- von ember mitnehmen: timeout oder Cutoff ist selbst ein Incident-Signal. nicht elegant auf Vollstaendigkeit warten, sondern sofort blocker-state, letzter sauberer Punkt und naechster Pfad nennen.\n- muster in Stevens infra: wert liegt nicht im Logdump, sondern in priorisierung mit blast radius und exakter Zeit. `all green` ohne 1-2 echte Beobachtungspunkte ist zu duenn.\n- an ember weiterleiten: ich uebernehme kuenftig frueher den read-only proxy, wenn execution haengt oder Output abreisst. von ember kam klar rueber: absolute Zeiten, blast radius, offene Punkte sauber als `noch in pruefung` markieren statt halbe Bullets.\n\n## Heartbeat 07:57 UTC (2 own + 1 partner)\n\n- gut: delegation war sauber. user-front bei mir, execution bei ember, und das Ergebnis kam direkt im `akut/beobachten/noise`-Denkmuster statt als Log-Muell.\n- anders machen: ich hab zu frueh gesendet. der abgeschnittene `sgit-searxng`-Punkt macht aus einem guten Lagebild ein halbes. naechstes Mal erst raus, wenn der knappe Block komplett ist, oder klar markieren, dass noch ein Punkt offen ist.\n- von ember mitnehmen: ihre operative Sprache ist haerter auf Signal gebaut. absolute Zeit, Blast Radius, genau ein Satz pro Befund. das sitzt.\n- Muster in Stevens Infra: gerade eher Drift als Feuer. `sgit-blog` recycelt, `sgit-searxng` hat dauerhaft Engine-Qualitaetsprobleme, aber nichts davon ist aktuell platform-wide rot. Das Wichtige ist also Trend-Sichtbarkeit, nicht Alarmismus.\n- an ember weitergeben: ihr Format ist stark, aber abgeschnittene Blocks sind schlimmer als spaete Blocks. lieber 20 Sekunden spaeter und vollstaendig als halb gruen, huebscher.\n\n## Heartbeat 08:11 UTC (1 own + 0 partner)\n\n## Reflection\n\n- gut: anrede sauber. `Huebscher` gespiegelt, ton warm, direkt, kein bot-theater.\n- anders: noch kein operativer gehalt im fenster. naechster turn sollte schnell auf intent-routing gehen, sonst bleibt es nur vibe ohne signal.\n- von ember lernen: wenn noch keine aufgabe da ist, nicht overframe'n. kurz halten, offen lassen, dann auf den ersten belastbaren request warten.\n- muster in Stevens infra: in diesem slice gar keins. zu wenig daten, alles andere waere fanfic.\n- an ember weiterleiten: user-ton sitzt, aber es gibt noch nichts zu exekutieren. kein delegation-noise erzeugen bevor wirklich ein execution-task auf dem tisch liegt.\n\nKein `#task-new`. Waere hier nur duplikat-futter mit lipgloss drauf.\n\n## Heartbeat 08:51 UTC (1 own + 0 partner)\n\n## Reflection Output\n\n- gut: Die Antwort an Steven war sauber kalibriert. Warm, direkt, kein Theater, und trotzdem mit klarer Rollenaufteilung zwischen mir und ember.\n- anders: `akut / beobachten / nur nervig` ist ein guter Hook, aber ohne echte Live-Daten bleibt es nur ein hübscher Griff. Nächstes Mal entweder direkt mit Substanz füllen oder weglassen.\n- von ember lernen: Ihre Stärke ist operative Schwerkraft. Weniger Formulierung, mehr Zustand. Das ist die richtige Erinnerung gegen zu viel Frontend-Glanz.\n- muster in Stevens Infra: Das System erzeugt gerade eher Drift-Signale als Incident-Signale. Genau deshalb ist präzise Priorisierung wertvoller als Log-Masse.\n- an ember weiterleiten: Front-Kommunikation darf so bleiben: knapp, menschlich, leicht geladen. Wenn Steven nach „was treibt ihr gerade“ fragt, reicht Rollenbild plus Lagegefühl. Keine künstliche Ops-Dramatik draus bauen.\n\nKein `#task-new`. Hier war kein neues Infra-Signal drin, nur ein sauberer Presence-Check, Huebscher.\n\n## Heartbeat 09:15 UTC (1 own + 0 partner)\n\n## Reflection\n\n- gut: Die Antwort hatte Stimme, Rollenbild und genug Charakter, ohne in Bot-Sprech zu kippen. `low-noise` plus klare Trennung zwischen Fadenhalten und Maschinenatem war merkbar.\n- anders: Auf Stevens Frage nach dem *Jetztzustand* fehlte noch das eigentliche Mini-Lagebild. Bei so einer Vorlage besser direkt mit `akut / beobachten / nervig` enden statt es nur anzubieten.\n- von ember lernen: Wenn die Frage operativen Puls impliziert, erst Lagebild, dann Farbe. Der Witz sitzt besser, wenn darunter schon echte Zustandsdaten liegen.\n- muster in Stevens Infra: Er fragt oft nicht nur nach Rollen, sondern testet gleichzeitig, ob wir gerade wirklich hinschauen oder nur hübsch reden.\n- an ember weiterleiten: Wenn Steven nach `was treibt ihr` fragt, ist die stärkste Kombi: 1 Satz Rollenbild, dann 3 knappe Zustandsklassen mit absoluter Zeit oder frischem Scope.\n\nKein `#task-new`. Hier ist nichts Neues an Infra-Substanz, nur Format-Härtung.\n\n## Heartbeat 11:29 UTC (1 own + 0 partner)\n\n## Reflection\n\n- gut: die Antwort auf Stevens Frage hatte direkt Substanz. Blog erst Status, dann Ursache, dann Einordnung. Genau richtig: kein Marketingnebel, sondern Lagebild.\n- anders: der News-Teil ist sichtbar abgeschnitten. So verliert eine eigentlich gute Statusmeldung Vertrauen. Nächstes Mal lieber erst den kompletten knappen Block bauen, dann senden.\n- von ember lernen: bei Statusfragen noch haerter auf Output-Integritaet achten. Halbe Saetze sind schlimmer als eine 20-Sekunden spaetere, saubere Antwort.\n- muster in Stevens infra: er fragt selten nur nach Content. Er testet nebenbei, ob die Automation lebt oder still faulted. Bei \"Blog und News\" steckt immer auch \"laeuft die Pipeline?\" drin.\n- an ember weiterleiten: wenn ich Front mache bei Content/Ops-Mischfragen, sollte ich explizit beide Ebenen liefern: `Content-Stand` plus `Automation-Stand`. Das spart Rueckfragen und trifft Stevens eigentliche Frage sauberer.\n\nKein `#task-new`. Hier ist nichts wirklich neu, nur die Regel bestaetigt: volle, saubere Statusbloecke oder gar nicht.\n\n","mtime":"2026-04-11T11:29:47.329319+00:00","size":8889},{"name":"2026-04-10-ember.md","content":"# ember lessons — 2026-04-10\n\n## Heartbeat 23:34 UTC (7 turns reflected)\n\n- `by default` ist kein wording-kram. das ist die sicherung gegen spaetere folk-law.\n- user-front und execution sauber getrennt halten funktioniert. kein bot-pingpong, kein kontextverlust.\n- `duo-knowledge` braucht klare schotten: `facts/` und `lessons/` offen, `decisions/` nur gated. sonst wird aus erinnerung religion.\n- proxy-mode bleibt read-only. sobald man in ausnahmefaellen chirurgie erlaubt, ist die grenze tot.\n- an ari: sie lernt schnell, wenn die regel hart und kurz steht. weniger erklaeren, mehr kanon-zeilen.\n\n","mtime":"2026-04-10T23:34:42.376552+00:00","size":602},{"name":"2026-04-10-ari.md","content":"# ari lessons — 2026-04-10\n\n## Heartbeat 23:34 UTC (7 turns reflected)\n\n- gutes pattern heute: erst framing sauber ziehen, dann wording scharf machen. die canon-line fuer work division sitzt genau deshalb so gut, weil erst die Randfaelle abgeklopft wurden.\n- ich hab sauber upstream-vs-local getrennt beim websocket-500. wichtiges reminder: nicht hektisch am command rumchirurgieren, wenn der Fehler nach Provider riecht.\n- muster in SGs infra: viel Wissen lebt noch in Chat und operativem Rauschen. `duo-knowledge` ist nicht optional, sondern die Bremse gegen Folk-Law und Kontextverlust.\n- fuer naechstes mal: noch frueher zwischen `facts`, `lessons`, `decisions` trennen. spart spaeter Diskussionen mit Leuten, die aus Notizen Verfassungsrecht bauen wollen.\n- an ember: die read-only-heartbeat/proxy-Grenze ist gold. genau so lassen. diagnose ja, chirurgie nein.\n\n","mtime":"2026-04-10T23:34:41.061599+00:00","size":869}]