Eine Meldung, die vier Ebenen durchlaeuft, wird viermal neu formuliert. Das faellt nicht auf, weil es keinen Fehler gibt, den man finden koennte - alle arbeiten korrekt, und die Spitze entscheidet ueber eine Nacherzaehlung der Nacherzaehlung. Die Regel: Jede Weitergabe haengt an, sie ersetzt nicht. Der Verweis auf den Ursprung wandert mit, der Inhalt bleibt liegen und wird geholt, wer ihn braucht. Eine Zusammenfassung darf danebenstehen, nie anstelle. Dieselbe Festlegung wie beim Aufgabenrumpf (#677), hier fuer den Weg. Beim Skriptfehler heisst das: Der Sandbox-Runner legt Exit-Code, stderr, Aufrufparameter, Dauer und RunId unter scripts/<id>/fehler/ ab - nicht der Agent. Der Zugang folgt dem Skript statt der Abteilung, damit der Entwickler alle Fehlschlaege seines Werkzeugs sieht, ohne in fremde Arbeitsbereiche zu duerfen. Durch die Befehlskette geht nur noch der Verweis. Nebenbei zwei doc_anchors nachgezogen, die durch fruehere Umnummerierung ins Leere zeigten (#687, #688). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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/<skript-id>/
|
||||
├── 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 |
|
||||
|
||||
Reference in New Issue
Block a user