Grossaufgaben und Sonderbudget (#717, Stufe 2+3)

Eine Aufgabe, deren eigene Schaetzung (gemessen, Geschwister oder Autor)
ueber der Haelfte der Tageskostengrenze liegt, bekommt zuerst einen
Planungslauf: teilen (Teile unter der Elternaufgabe) oder Sonderbudget
beantragen. Danach wartet sie auf ihre Teile bzw. die Freigabe und laeuft
einmal zum Zusammenfuehren.

Sonderbudget ueber Escalation.request_budget, ausnahmslos freigabepflichtig
(auch gegen Werkzeugkonfiguration und Dauerfreigabe). Laeufe im Baum ziehen
den Topf statt der Tagesgrenzen, tragen BudgetPot in Verbrauch und Beleg und
sind in der Kostenanalyse (nach Budget) und auf der Aufgabenkarte gesondert
sichtbar. Aufgebraucht zaehlen sie wieder gegen den Tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-25 15:47:41 +02:00
co-authored by Claude Opus 5.5
parent 183e922278
commit 67649559f5
30 changed files with 1123 additions and 55 deletions
+35
View File
@@ -1099,6 +1099,41 @@ ihren eigenen Aufwand schlecht. Wo es Verlauf gibt, schätzt der Code aus dem Ve
Sonst schätzt der Agent, und die Zahl ist als Schätzung gekennzeichnet. Nach dem ersten
Teillauf ersetzt der gemessene Wert die Schätzung.
*Gebaut am 2026-09-25 (#717).* So umgesetzt, mit den Entscheidungen, die das Konzept offen
ließ:
- **Füllarbeit** ist eine einmalige Aufgabe mit `fill_by` statt Termin (Werkzeug, WebUI,
Datei). Sie kommt nach der regulären und der nachgeholten Arbeit (#716), mit der
nächsten Frist zuerst. Sie startet nur, wenn keine andere Arbeit desselben Agenten
wartet, ab `fillWork.fromHour` (Vorgabe 18 Uhr) und nur, wenn ihre eigene Schätzung in
den Spielraum aus #716 passt. Ohne Budgetgrenze gibt es nichts zu füllen, dann läuft
sie sofort.
- **Frist:** `fillWork.warnHoursBeforeDeadline` (Vorgabe 24) vor der Frist bekommt ein
Mensch einmal eine Aufgabe unter der Füllarbeit: Budget erhöhen oder Frist verschieben.
In diesem Fenster wartet sie auch nicht mehr auf den Abend. *Entscheidung:* Ist die
Frist erreicht, läuft sie als reguläre Arbeit. Die Frist war die Zusage, und der Mensch
wurde vorher gefragt.
- **Schätzung** (`TaskCostEstimator`): eigene gemessene Läufe, dann die Läufe der
Geschwister unter derselben Elternaufgabe, dann `estimate_usd` des Autors, zuletzt das
Mittel des Agenten. Die letzten beiden sind überall als Schätzung gekennzeichnet.
- **Großaufgabe:** Groß ist eine Aufgabe erst mit einer Schätzung *dieser* Aufgabe
(gemessen, Geschwister oder Autor) über `fillWork.largeTaskShare` (Vorgabe 50 %) der
Tageskostengrenze. Das Mittel des Agenten reicht dafür nicht, sonst hielte ein Agent
mit teuren Läufen jede Aufgabe zur Planung an. Ihr erster Lauf ist ein Planungslauf mit
Anweisung vom System, danach wartet sie. Hat der Agent sie geteilt, wartet sie auf die
Teile und läuft danach einmal, um sie zusammenzuführen. Andernfalls wartet sie auf das
Sonderbudget, mit einer Notiz an der Aufgabe.
- **Sonderbudget** über die implizite Eskalations-Aktion `request_budget`, nur für eigene
Aufgaben. Sie steht in der Liste der ausnahmslos freigabepflichtigen Aktionen, also
lässt weder Werkzeugkonfiguration noch Dauerfreigabe sie ohne Menschen durch. Läufe im
Baum ziehen den Topf und nicht die Tagesgrenzen von Agent und Instanz. Sie tragen die
Markierung `BudgetPot` in Verbrauch und Beleg: Die Verbrauchsanzeige zeigt weiter alles,
die Budgetprüfung zählt sie nicht, die Kostenanalyse gruppiert „nach Budget“, und die
Aufgabenkarte zeigt „verbraucht X von Y“. *Entscheidung:* Ist der Topf aufgebraucht,
zählen die Läufe des Baums wieder gegen den Tag, wie jede andere Arbeit, und das steht
einmal im Log. Anhalten wäre die andere Möglichkeit gewesen. Sie hätte halb fertige
Arbeit liegen lassen, die der Mensch schon für wert befunden hatte.
### Was die Auswertung dafür braucht
- **Die Einheit als Dimension** in Filtern und Zeitverlauf der Verbrauchsansicht (#660) —