This commit is contained in:
Christian Kauer 2026-03-25 17:43:19 +01:00
parent edb0cf8a37
commit 0696c40ba5
3 changed files with 60 additions and 1 deletions

View File

@ -2,3 +2,29 @@
<!-- Neue Einträge oben einfügen. Bestehende Einträge nie editieren. -->
<!-- Vorlage: docs/templates/decisions-log-entry.md -->
---
## 2026-03-25 — task.md: Arbeitspakete und DoD getrennt
**Phase / Session:** Framework-Ebene (phasenübergreifend)
**Typ:** [x] Prozess
**Kontext**
Beim produktiven Einsatz in Phase 3 enthielt task.md nur eine flache DoD-Liste. Der Batch-Orchestrator konnte keine dispatchbaren Arbeitsgruppen erkennen und musste den User fragen, bevor Arbeitspakete nachträglich ergänzt wurden.
**Entscheidung**
1. Neues Template `docs/templates/task.md` eingeführt mit zwei getrennten Sektionen: "Arbeitspakete" (###-Gruppen für Parallelisierung) und "Ergebnisse (Definition of Done)" (nummerierte Prüfkriterien).
2. Arbeitspakete verweisen per `→ DoD: #N` auf DoD-Einträge. DoD-Einträge ohne Arbeitspaket werden als Querschnitt gekennzeichnet.
3. `rules/batch-orchestration.md` um "Task Structure Requirement" ergänzt: Fehlt die Arbeitspakete-Sektion, stoppt der Orchestrator und fragt den User.
**Verworfene Alternativen**
- DoD automatisch aus Arbeitspaketen ableiten — verworfen weil: Granularität divergiert (ein Arbeitspaket → mehrere DoD-Einträge), Querschnitts-Artefakte haben kein eigenes Paket, DoD kann qualitative Kriterien enthalten die über die reine Existenz hinausgehen.
**Konsequenzen**
- Bestehende task.md-Dateien (Phase 14) sollten bei Gelegenheit an das neue Template angeglichen werden.
- Der Orchestrator validiert jetzt die task.md-Struktur vor dem Dispatching.
- `(context: ...)` pro Arbeitspaket macht Subagent-Inputs explizit statt implizit.
**Offen / Revisierbar?**
[x] Revisierbar wenn: sich zeigt, dass die DoD-Verweise zu viel Overhead erzeugen

27
docs/templates/task.md vendored Normal file
View File

@ -0,0 +1,27 @@
# Phase N — [Phasenname]
## Ziel
[1-2 Sätze: Was soll am Ende dieser Phase erreicht sein?]
## Arbeitspakete
<!-- Jede ###-Gruppe = Parallelisierungsgruppe (Tasks laufen parallel). -->
<!-- Gruppen sind sequentiell: Gruppe N+1 startet erst nach Gruppe N. -->
<!-- (context: ...) gibt an, welche Dateien der Subagent als Input braucht. -->
### Gruppe 1 — [Name]
- [ ] output-file-a.md — [Beschreibung] (context: input1.md, input2.md) → DoD: #1, #2
- [ ] output-file-b.md — [Beschreibung] (context: input1.md) → DoD: #3
### Gruppe 2 — [Name]
- [ ] output-file-c.md — [Beschreibung] (context: output-file-a.md) → DoD: #4
## Ergebnisse (Definition of Done)
<!-- Nummerierte Liste — Arbeitspakete verweisen per #N auf diese Einträge. -->
<!-- DoD-Einträge ohne zugeordnetes Arbeitspaket kennzeichnen (Querschnitt). -->
1. [ ] output-file-a.md — [Prüfkriterium]
2. [ ] output-file-b.md — [Prüfkriterium]
3. [ ] output-file-c.md — [Prüfkriterium]
4. [ ] output-file-d.md — [Querschnitt, kein eigenes Arbeitspaket]
## Nicht in Scope
- [Was bewusst ausgeklammert wird]

View File

@ -14,11 +14,17 @@
- Subagents never write to task.md, status.md, decisions-log.md, or CLAUDE.md
- Each subagent returns a 2-3 sentence summary as its return value
## Task Structure Requirement
- Every task.md must contain an "Arbeitspakete" section with ###-grouped checkboxes, separate from the DoD section (see docs/templates/task.md)
- Work items reference DoD entries via `→ DoD: #N` — DoD entries without a matching work item are flagged as cross-cutting at checkpoints
- If a task.md only has a flat DoD list without an Arbeitspakete section: hard stop, ask the user to add work groups before dispatching
## Task Parsing
- The orchestrator parses the first section in task.md that contains ### sub-headings with - [ ] checkboxes (the work section)
- The orchestrator parses the "Arbeitspakete" section — ###-grouped checkboxes are the work section
- Flat checkbox lists without sub-headings are treated as Definition of Done and ignored for dispatching
- Tasks under the same ### heading form a parallelization group (can run concurrently)
- Tasks under different ### headings are sequential (Group N+1 starts after Group N completes and checkpoint passes)
- Work items may declare `(context: file1.md, file2.md)` — the orchestrator loads these as subagent input
## Context Loading
- Base context (always): project rules of active phase + status.md