diff --git a/docs/Organisation-Konzept.md b/docs/Organisation-Konzept.md index c271e9a..f22cb3b 100644 --- a/docs/Organisation-Konzept.md +++ b/docs/Organisation-Konzept.md @@ -241,6 +241,40 @@ nicht jedes Mal fragen") und die Dublettenbremse aus #674 („diesen Befund gibt schon"). Eine Organisation, die sich nicht erinnert, was sie entschieden hat, bezahlt jede Entscheidung mehrfach. +### Stille Post vermeiden: weitergegeben wird ein Verweis, keine Nacherzählung + +Eine Meldung, die vier Ebenen durchläuft, wird viermal neu formuliert — von Modellen, +die kürzen, glätten und das für wichtig halten, was sie für wichtig halten. Am Ende +entscheidet die Spitze über eine Nacherzählung der Nacherzählung. + +Das ist kein Nebenrisiko. Es ist die Art, wie ein solcher Aufbau leise falsch wird: Alle +Beteiligten arbeiten korrekt, und die Entscheidung stützt sich trotzdem auf etwas, das +niemand so gesagt hat. + +> **Die Regel: Jede Weitergabe hängt an, sie ersetzt nicht.** Der Vorgang trägt den +> Verweis auf den Ursprung — RunId, Aufgabe, Fehlerablage, Dokument. Jede Ebene fügt ihre +> Einschätzung hinzu und lässt das Darunterliegende stehen. Wer entscheidet, kann bis zum +> Original zurückgehen, ohne jemanden zu fragen. + +Das ist dieselbe Festlegung wie beim Aufgabenrumpf, der nur ergänzt und nie überschrieben +wird (#677) — hier für den Weg statt für das Dokument. + +**Das Praktische daran ist die Trennung von Verweis und Inhalt.** Würde jede Ebene den +vollen Text anhängen, wächst der Vorgang mit jeder Stufe und kostet in jedem Folgelauf +mehr. Also: Der **Verweis** wandert mit, der **Inhalt** bleibt liegen und wird geholt, wer +ihn braucht. Eine Zusammenfassung darf danebenstehen — nie anstelle. + +Wo das konkret gilt (#697): + +| Weg | Was mitwandert | +|---|---| +| Eskalation (#689) | RunId, Aufgabe, Fehlerablage; jede Ebene ergänzt, keine ersetzt | +| Besprechung (#686) | Das Protokoll verweist auf die Beiträge, statt sie wegzukürzen | +| Delegation | Eine Aufgabe, die aus einer anderen entsteht, zeigt auf ihren Ursprung | +| Aufsicht (#680) | Der Vorschlag trägt den Beleg aus dem Audit | +| Stichprobe (#693) | Geprüft wird gegen das Gestempelte, nicht gegen den Bericht | +| Skriptfehler (#696) | Die Fehlerablage, nicht der abgetippte Fehlertext | + ### Damit es endet Ohne Regeln läuft so etwas heiß. Vier, die nicht verhandelbar sind: @@ -370,6 +404,46 @@ Das ist mehr als eine Hausordnung, es ändert die Rechteform: Agent es über die Befehlskette — derselbe Weg wie jede Eskalation (#689), nur mit „Fähigkeit fehlerhaft" statt „Fähigkeit fehlt". +### Die Fehlerablage: der Entwickler liest das Original + +Meldet der Anzeigen-Agent einen Skriptfehler über die Befehlskette, kommt beim Entwickler +an, was zwei Modelle davon übrig gelassen haben — „es hat nicht funktioniert" statt +`KeyError: 'campaign_id'` in Zeile 47. Damit ist die Kette nicht nur langsam, sondern +unbrauchbar. + +**Der Fehler wird deshalb nicht weitergereicht, sondern abgelegt.** Jedes Skript hat einen +festen Ort dafür: + +``` +scripts// +├── manifest.json Zweck, Eigentümer, Nutzerkreis, Ein-/Ausgaben, Netzziele +├── skript.py die freigegebene Fassung (hashgebunden, #657) +└── fehler/ + ├── 2026-09-22T07-14-03_run-a3de83bb.log + └── 2026-09-22T09-02-51_run-11de5c7a.log +``` + +Drei Festlegungen machen den Unterschied: + +1. **Der Läufer schreibt, nicht der Agent.** Exit-Code, stderr, Aufrufparameter, Dauer, + RunId und AgentId legt der Sandbox-Runner (#654) ab — automatisch, bei jedem + Fehlschlag. Damit ist nichts abgetippt, nichts gekürzt, nichts vergessen. Dieselbe + Zusicherung wie beim Audit-Log: *von der Engine gestempelt, nie vom Agenten behauptet.* +2. **Der Zugang folgt dem Skript, nicht der Abteilung.** Wer das Skript besitzt, liest + seine Fehler — unabhängig davon, in welcher Einheit sie entstanden sind. Ein + Entwickler kommt so an alle Fehlschläge aller Nutzer, ohne in deren Arbeitsbereiche + zu dürfen. Das ist ein Rechtebereich, der am Gegenstand hängt statt am Baum, und die + Ausnahme ist begründet: Der Eigentümer muss sehen, wie sein Werkzeug scheitert. +3. **Die Meldung trägt den Verweis.** Was durch die Befehlskette geht, ist „Skript + `amazon-kampagnenbericht`, drei Fehlschläge seit gestern, siehe Ablage" — plus die + Einschätzung des Agenten, was ihm dadurch fehlt. Die Leitung entscheidet über die + Dringlichkeit, nicht über den Fehlertext. + +**Ein Nebeneffekt, der mehr wert ist als die Meldung selbst:** Drei Fehlschläge desselben +Skripts an einem Tag sind ein Muster, das niemand melden muss — es steht in der Ablage +und lässt sich abfragen. Dasselbe Verhältnis wie bei #646 und #680: Erkennen ist Code, +Deuten ist Modell. + ### Der zweite Gewinn dieser Trennung Sie ist nicht nur sauberes Rechtemanagement. Sie ist die schärfste Grenze, die man gegen @@ -543,13 +617,14 @@ für sich schon nützt und keine die nächste blockiert. | **1** | Einheiten als Struktur: Baum, Zugehörigkeit, vererbte Rechte, Adressbuch nach Einheit | Der Schnitt, der alles Weitere trägt | | **2** | Ablage und Brett je Einheit | Buchhaltung und Einkauf treten sich nicht mehr auf die Füße | | **3** | Budget und Parallelität je Einheit | Eine ausufernde Abteilung legt nicht die Instanz lahm | -| **4** | Eskalation, Konflikt und Beschluss (#689) | Eine Frage, die niemand beantworten kann, versandet nicht mehr | -| **5** | Besprechung als Mittel, mit Protokoll | Leitungen können sich abstimmen, ohne *n²* Nachrichten | -| **6** | Entscheidungsinstanz an der Spitze (#690) | Der Betrieb läuft weiter, wenn der Mensch schläft | -| **7** | Freigabe durch die Leitung innerhalb von Grenzen | Der Mensch hört auf, Flaschenhals zu sein | -| **8** | Oberfläche: Organigramm statt Agentenliste, Lage je Abteilung | Bei fünfzig Agenten ist eine flache Liste keine Übersicht | -| **9** | Kontrollpflicht der Leitung, abgestufte personelle Mittel (#693) | Fehler findet die Leitung, nicht erst der Mensch | -| **10** | Organisationsvorlagen (#691) | Ein Haus lässt sich weitergeben statt nachbauen | +| **4** | Ursprungsverweis in jedem Vorgang (#697) | Entscheidungen stützen sich auf das Original, nicht auf die vierte Nacherzählung | +| **5** | Eskalation, Konflikt und Beschluss (#689) | Eine Frage, die niemand beantworten kann, versandet nicht mehr | +| **6** | Besprechung als Mittel, mit Protokoll | Leitungen können sich abstimmen, ohne *n²* Nachrichten | +| **7** | Entscheidungsinstanz an der Spitze (#690) | Der Betrieb läuft weiter, wenn der Mensch schläft | +| **8** | Freigabe durch die Leitung innerhalb von Grenzen | Der Mensch hört auf, Flaschenhals zu sein | +| **9** | Oberfläche: Organigramm statt Agentenliste, Lage je Abteilung | Bei fünfzig Agenten ist eine flache Liste keine Übersicht | +| **10** | Kontrollpflicht der Leitung, abgestufte personelle Mittel (#693) | Fehler findet die Leitung, nicht erst der Mensch | +| **11** | Organisationsvorlagen (#691) | Ein Haus lässt sich weitergeben statt nachbauen | Quer dazu, unabhängig von der Reihenfolge: der Werkzeugkasten (#692), der A/B-Vergleich von Modellen (#694) und die Schemaauskunft (#676) — letztere ist Vorbedingung für @@ -604,6 +679,8 @@ wächst, wird der Umzug teurer. | #694 | A/B-Vergleich von Modellen im laufenden Betrieb | | #676 | Schemaauskunft der Datenbank — Vorbedingung für den Negativbefund | | #695 | Skripte: Schreiben und Benutzen sind zwei Rechte, mit Lieferkette | +| #696 | Fehlerablage je Skript — der Läufer schreibt, der Eigentümer liest | +| #697 | Stille Post vermeiden: Weitergaben hängen an und tragen den Verweis | | #654, #196, #657 | Sandbox, Shell, Skriptprüfung — der eigentliche Werkzeugkasten | | #687 | Freigabe durch die Leitung innerhalb von Grenzen | | #688 | Organigramm in Oberfläche und WebUI |