From 0696c40ba596bf1176a3d0200c96c8dcfa1b4a4a Mon Sep 17 00:00:00 2001 From: Christian Kauer Date: Wed, 25 Mar 2026 17:43:19 +0100 Subject: [PATCH] upd --- docs/C_planning/decisions-log.md | 26 ++++++++++++++++++++++++++ docs/templates/task.md | 27 +++++++++++++++++++++++++++ rules/batch-orchestration.md | 8 +++++++- 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 docs/templates/task.md diff --git a/docs/C_planning/decisions-log.md b/docs/C_planning/decisions-log.md index b350472..18d6384 100644 --- a/docs/C_planning/decisions-log.md +++ b/docs/C_planning/decisions-log.md @@ -2,3 +2,29 @@ + +--- + +## 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 1–4) 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 diff --git a/docs/templates/task.md b/docs/templates/task.md new file mode 100644 index 0000000..0cc585a --- /dev/null +++ b/docs/templates/task.md @@ -0,0 +1,27 @@ +# Phase N — [Phasenname] + +## Ziel +[1-2 Sätze: Was soll am Ende dieser Phase erreicht sein?] + +## Arbeitspakete + + + + +### 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) + + +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] diff --git a/rules/batch-orchestration.md b/rules/batch-orchestration.md index 27261d7..8267c11 100644 --- a/rules/batch-orchestration.md +++ b/rules/batch-orchestration.md @@ -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