@the-bearded-bear/claude-craft 7.10.1 → 7.10.2-next.c1458ec

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/Dev/i18n/de/Team/commands/audit.md +64 -1
  2. package/Dev/i18n/de/Team/commands/delivery.md +120 -8
  3. package/Dev/i18n/de/Team/commands/security.md +53 -1
  4. package/Dev/i18n/de/Team/commands/sprint.md +50 -3
  5. package/Dev/i18n/en/Team/commands/audit.md +65 -2
  6. package/Dev/i18n/en/Team/commands/delivery.md +121 -9
  7. package/Dev/i18n/en/Team/commands/security.md +53 -1
  8. package/Dev/i18n/en/Team/commands/sprint.md +50 -3
  9. package/Dev/i18n/es/Team/commands/audit.md +64 -1
  10. package/Dev/i18n/es/Team/commands/delivery.md +95 -6
  11. package/Dev/i18n/es/Team/commands/security.md +53 -1
  12. package/Dev/i18n/es/Team/commands/sprint.md +50 -3
  13. package/Dev/i18n/fr/Team/commands/audit.md +63 -1
  14. package/Dev/i18n/fr/Team/commands/delivery.md +119 -7
  15. package/Dev/i18n/fr/Team/commands/security.md +53 -1
  16. package/Dev/i18n/fr/Team/commands/sprint.md +42 -3
  17. package/Dev/i18n/pt/Team/commands/audit.md +65 -2
  18. package/Dev/i18n/pt/Team/commands/delivery.md +123 -11
  19. package/Dev/i18n/pt/Team/commands/security.md +53 -1
  20. package/Dev/i18n/pt/Team/commands/sprint.md +50 -3
  21. package/Tools/AgentTeams/lib/cost-dashboard.sh +52 -0
  22. package/Tools/AgentTeams/lib/cost-estimator.sh +225 -6
  23. package/Tools/AgentTeams/lib/ralph-teams-adapter.sh +51 -3
  24. package/Tools/AgentTeams/tests/compatibility-check.bats +289 -0
  25. package/Tools/AgentTeams/tests/cost-dashboard.bats +265 -0
  26. package/Tools/AgentTeams/tests/cost-estimator.bats +539 -0
  27. package/Tools/AgentTeams/tests/ralph-teams-adapter.bats +425 -0
  28. package/Tools/AgentTeams/tests/result-aggregator.bats +407 -0
  29. package/package.json +1 -1
@@ -14,6 +14,7 @@ $ARGUMENTS
14
14
  - `--techs=auto`: Technologien automatisch erkennen (Standard). Oder kommagetrennt angeben: `--techs=symfony,react`
15
15
  - `--max-workers=4`: Maximale parallele Auditor-Worker (Standard: 4, max: 4)
16
16
  - `--output-dir=<path>`: Benutzerdefiniertes Ausgabeverzeichnis für Audit-Ergebnisse
17
+ - `--max-cost=<dollars>`: Maximales Budget in Dollar. Wenn die geschaetzten Parallelkosten diesen Schwellenwert ueberschreiten, wird die Ausfuehrung mit einer OVER BUDGET Meldung blockiert
17
18
  - `--dry-run`: Team-Zusammensetzung und geschätzte Kosten anzeigen, ohne auszuführen
18
19
  - `--skip-aggregation`: Ergebnisse pro Stack ohne Zusammenführung ausgeben
19
20
  - `--sequential`: Audits sequenziell statt parallel ausführen (kein Agent-Teams-Overhead). Nützlich für Einzeltechnologie-Projekte oder wenn Agent Teams nicht verfügbar ist.
@@ -27,6 +28,28 @@ $ARGUMENTS
27
28
  - `Tools/AgentTeams/lib/result-aggregator.sh` verfügbar
28
29
  - `Tools/AgentTeams/lib/cost-estimator.sh` verfügbar
29
30
 
31
+ ## Garde-Fou Fast Mode (Confirmation Bloquante)
32
+
33
+ **OBLIGATOIRE** : Vor dem Start des Teams MUSS der Audit-Leader:
34
+
35
+ 1. Erkennen, ob der Fast Mode aktiv ist (Lightning-Bolt-Indikator im Terminal)
36
+ 2. Wenn Fast Mode aktiv:
37
+ - Vergleichs-Dashboard Standard vs. Fast via `cost-estimator.sh --fast-mode` anzeigen
38
+ - **Blockierende Warnung** mit verglichenen Kosten anzeigen:
39
+ ```
40
+ ⚠️ FAST MODE ERKANNT — Opus-Kosten 6x hoeher!
41
+
42
+ | Modus | Input ($/M) | Output ($/M) | Geschaetzte Kosten dieses Audits |
43
+ |-----------|-------------|--------------|----------------------------------|
44
+ | Standard | $5.00 | $25.00 | ~$X.XX |
45
+ | Fast | $30.00 | $150.00 | ~$Y.YY |
46
+
47
+ Moechten Sie im Fast Mode fortfahren? (ja/nein)
48
+ Empfehlung: Tippen Sie /fast, um vor dem Fortfahren zu deaktivieren.
49
+ ```
50
+ - **Warten auf explizite Bestaetigung** des Benutzers vor dem Fortfahren
51
+ - Wenn der Benutzer ablehnt, abbrechen mit Nachricht, die `/fast` zum Deaktivieren vorschlaegt
52
+
30
53
  ## Wann verwenden (vs. sequenzielles Audit)
31
54
 
32
55
  | Bedingung | Team-Audit verwenden | `--sequential`-Flag verwenden |
@@ -92,6 +115,11 @@ Tools/AgentTeams/lib/cost-estimator.sh \
92
115
 
93
116
  Geschätzte Kosten dem Benutzer anzeigen. Im `--dry-run`-Modus hier stoppen.
94
117
 
118
+ **Budgetgarantie**: Wenn `--max-cost` angegeben ist, pruefen dass `PAR_COST <= max_cost`. Wenn die geschaetzten Kosten das Budget ueberschreiten:
119
+ - `OVER BUDGET: geschaetzte Kosten $X.XX > Budget $Y.YY` anzeigen
120
+ - Ausfuehrung abbrechen (Worker NICHT starten)
121
+ - Vorschlagen, die Anzahl der Stacks zu reduzieren oder `--sequential` zu verwenden
122
+
95
123
  ### Schritt 4: Team starten (Fan-Out)
96
124
 
97
125
  ```
@@ -115,6 +143,33 @@ Audit-Leader (opus) — koordiniert über TaskCreate/SendMessage
115
143
  3. Worker beanspruchen Aufgaben via `TaskUpdate` (Status: in_progress)
116
144
  4. Worker schreiben Ergebnisse nur in ihr isoliertes Verzeichnis
117
145
 
146
+ **Lean Context pro Worker (A4)**: Jeder Worker erhaelt nur die technologische Referenz seines Stacks. Laden Sie NICHT den Kontext aller Technologien.
147
+ - Symfony Worker → nur `@.claude/references/symfony/CLAUDE.md`
148
+ - React Worker → nur `@.claude/references/react/`
149
+ - Python Worker → nur `@.claude/references/python/`
150
+ - etc.
151
+
152
+ **Strukturiertes Spawn-Template (TaskCreate)**: Der Leader MUSS in jedem `TaskCreate` einfuegen:
153
+
154
+ ```
155
+ Subject: "Audit <TechName> stack"
156
+ Description:
157
+ Projekt: <projektname>
158
+ Technologie: <tech-name>
159
+ Docker-Service: <docker-service-name>
160
+ Root-Verzeichnis: <tech-root-directory>
161
+ Referenz: @.claude/references/<tech>/CLAUDE.md
162
+ Checks: [architecture, code-quality, testing, security]
163
+ Ausgabeformat: result.json in <output-dir>/<tech>/
164
+ Output-Schema:
165
+ { "tech": "<tech>", "score": <0-100>,
166
+ "architecture": { "score": <0-25>, "findings": [...] },
167
+ "code_quality": { "score": <0-25>, "findings": [...] },
168
+ "testing": { "score": <0-25>, "findings": [...] },
169
+ "security": { "score": <0-25>, "findings": [...] } }
170
+ activeForm: "Audit <TechName>"
171
+ ```
172
+
118
173
  **Worker-Anweisungen** (pro Stack):
119
174
 
120
175
  Jeder Worker führt die 4 Audit-Kategorien sequenziell innerhalb seines Stacks aus:
@@ -164,9 +219,17 @@ Jeder Worker schreibt `result.json` in sein isoliertes Ausgabeverzeichnis:
164
219
  }
165
220
  ```
166
221
 
222
+ **Completion-Nachrichten-Verbositaet (B4)**: Worker MUESSEN ihre Completion-Nachrichten auf < 50 Token begrenzen. Details in `result.json` schreiben, nicht in die Nachricht. Format: `DONE: <tech> <score>/100 | <findings_count> findings`
223
+
167
224
  ### Schritt 5: Synchronisationsbarriere
168
225
 
169
- Leader wartet, bis alle Worker-Aufgaben den Status `completed` erreicht haben (Abfrage via `TaskList`). Wenn ein Worker sein Timeout (5 Minuten pro Stack) überschreitet, markiert der Leader ihn als fehlgeschlagen und fährt mit Teilergebnissen fort.
226
+ Leader wartet, bis alle Worker-Aufgaben den Status `completed` erreicht haben via `TaskList`-Polling.
227
+
228
+ **Polling-Kadenz (B5)**: `TaskList` alle 30 Sekunden. Nach 3 aufeinanderfolgenden Polls ohne Statusaenderung, auf 60 Sekunden reduzieren. Verwenden Sie `TeammateIdle`/`TaskCompleted` Hooks (v2.1.33+) fuer reaktivere Benachrichtigung, falls verfuegbar.
229
+
230
+ Wenn ein Worker sein Timeout (5 Minuten pro Stack) ueberschreitet, markiert der Leader ihn als fehlgeschlagen und faehrt mit Teilergebnissen fort.
231
+
232
+ **Leader-Kontextwiederherstellung (A6)**: Um den Context-Compaction-Bug (#23620) abzumildern, MUSS der Leader `TaskList` alle 5 Worker-Completions neu lesen, um sein Bewusstsein fuer den Team-Status aufzufrischen. Wenn eine laengere Ruhephase (>3 Min ohne Update) erkannt wird, ein vollstaendiges Re-Read von `TaskList` erzwingen.
170
233
 
171
234
  ### Schritt 6: Ergebnis-Aggregation
172
235
 
@@ -21,6 +21,7 @@ $ARGUMENTS
21
21
  - `--dry-run`: Team-Zusammensetzung, Kostenschätzung und Story-Zuweisungen anzeigen, ohne auszuführen
22
22
  - `--quality-threshold=6`: Minimaler INVEST-Score für Phase 1 (Standard: 6/6)
23
23
  - `--max-rewrites=2`: Maximale Überarbeitungsschleifen pro Artefakt in Phase 1 (Standard: 2)
24
+ - `--max-cost=<dollars>`: Maximales Budget in Dollar. Wenn die geschaetzten Parallelkosten diesen Schwellenwert ueberschreiten, wird die Ausfuehrung mit einer OVER BUDGET Meldung blockiert
24
25
 
25
26
  ## Voraussetzungen
26
27
 
@@ -32,6 +33,28 @@ $ARGUMENTS
32
33
  - `Tools/AgentTeams/lib/cost-estimator.sh` verfügbar
33
34
  - `Tools/AgentTeams/lib/result-aggregator.sh` verfügbar
34
35
 
36
+ ## Garde-Fou Fast Mode (Blockierende Bestaetigung)
37
+
38
+ **OBLIGATORISCH**: Vor dem Start des Teams MUSS der Delivery Lead:
39
+
40
+ 1. Erkennen, ob der Fast Mode aktiv ist (Lightning-Bolt-Indikator im Terminal)
41
+ 2. Wenn Fast Mode aktiv:
42
+ - Vergleichs-Dashboard Standard vs. Fast via `cost-estimator.sh --fast-mode` anzeigen
43
+ - **Blockierende Warnung** mit verglichenen Kosten anzeigen:
44
+ ```
45
+ ⚠️ FAST MODE ERKANNT — Opus-Kosten 6x hoeher!
46
+
47
+ | Modus | Input ($/M) | Output ($/M) | Geschaetzte Kosten dieser Lieferung |
48
+ |-----------|-------------|--------------|-------------------------------------|
49
+ | Standard | $5.00 | $25.00 | ~$X.XX |
50
+ | Fast | $30.00 | $150.00 | ~$Y.YY |
51
+
52
+ Moechten Sie im Fast Mode fortfahren? (ja/nein)
53
+ Empfehlung: Tippen Sie /fast, um vor dem Fortfahren zu deaktivieren.
54
+ ```
55
+ - **Warten auf explizite Bestaetigung** des Benutzers vor dem Fortfahren
56
+ - Wenn der Benutzer ablehnt, abbrechen mit Nachricht, die `/fast` zum Deaktivieren vorschlaegt
57
+
35
58
  ## Wann verwenden (vs. sequenziell oder andere Teams)
36
59
 
37
60
  | Bedingung | Team-Delivery verwenden | Alternative |
@@ -57,7 +80,7 @@ $ARGUMENTS
57
80
  Delivery-Lead (opus) — Orchestrierung, Validierung, gemeinsamer Kontext
58
81
  |
59
82
  +-- Writer (sonnet) : Erstellt EPICs, US (INVEST+3C+Gherkin), Aufgaben
60
- +-- Reviewer (sonnet) : Validiert Qualität (INVEST 6/6, AC-Abdeckung, Testbarkeit, Slicing)
83
+ +-- Reviewer (haiku) : Validiert Qualität (INVEST 6/6, AC-Abdeckung, Testbarkeit, Slicing)
61
84
  +-- Architect (sonnet) : Validiert technische Machbarkeit + Dateidomänen-Zuordnung
62
85
  ```
63
86
 
@@ -68,16 +91,34 @@ Der Delivery-Lead validiert die Eingabe:
68
91
  1. PRD oder Tech Spec vom angegebenen Pfad lesen
69
92
  2. PRD-Gate validieren (>=80%) -- bei Score unter Schwellenwert mit klarer Meldung abbrechen
70
93
  3. Features, Anforderungen und Abnahmekriterien-Umfang extrahieren
71
- 4. Team via `TeamCreate` erstellen
94
+ 4. Kosten schaetzen via `cost-estimator.sh --task-type delivery --techs <worker_count>`
95
+ 5. **Budgetgarantie**: Wenn `--max-cost` angegeben ist, pruefen dass geschaetzte Kosten <= max_cost. Bei Ueberschreitung: `OVER BUDGET` anzeigen, abbrechen
96
+ 6. Team via `TeamCreate` erstellen
72
97
 
73
98
  #### Schritt 1.2: Team starten (Phase 1)
74
99
 
75
100
  Der Lead startet 3 Phase-1-Worker via `Task`-Tool:
76
101
 
77
102
  1. **Writer** (sonnet): Angewiesen, EPICs und User Stories im INVEST+3C+Gherkin-Format zu erstellen
78
- 2. **Reviewer** (sonnet): Angewiesen, Qualität gemäß der untenstehenden Prüftabelle zu validieren
103
+ 2. **Reviewer** (haiku): Angewiesen, Qualität gemäß der untenstehenden Prüftabelle zu validieren — haiku reicht fuer diese Klassifikationsaufgabe (12x billiger als sonnet im Output)
79
104
  3. **Architect** (sonnet): Angewiesen, technische Machbarkeit zu validieren und Dateidomänen-Zuordnungen zu erstellen
80
105
 
106
+ **Lean Context pro Phase-1-Worker**: Jeder Worker erhaelt nur das PRD/Tech Spec und die technologische Referenz des Projekts. Laden Sie NICHT die Referenzen aller Technologien.
107
+
108
+ **Strukturiertes Spawn-Template Phase 1 (TaskCreate)**: Der Lead MUSS in jede Aufgabe einfuegen:
109
+ ```
110
+ Subject: "Write <artefact-type>: <titel>"
111
+ Description:
112
+ Projekt: <projektname>
113
+ Technologie: <projekt-tech>
114
+ PRD/Spec: <Inhalt oder Referenz>
115
+ Erwartetes Artefakt: <EPIC|US|Task>
116
+ Format: INVEST+3C+Gherkin fuer US
117
+ Erfolgskriterien: INVEST 6/6, nominale ACs >= 1, alternative >= 2, Fehler >= 2
118
+ Referenz: @.claude/references/<tech>/CLAUDE.md
119
+ activeForm: "Writing <artefact-type>"
120
+ ```
121
+
81
122
  #### Schritt 1.3: Artefakt-Pipeline
82
123
 
83
124
  Die Pipeline ist sequenziell pro Artefakt, aber **Pipeline-artig** über Artefakte hinweg (mehrere Artefakte gleichzeitig in verschiedenen Phasen):
@@ -109,6 +150,8 @@ Der Lead koordiniert via `SendMessage`:
109
150
  | Story Points | 1-8 | INVEST-Kriterium "Small" |
110
151
  | Expliziter Nutzen | Ja | INVEST-Kriterium "Valuable" |
111
152
 
153
+ **Gemeinsame Dateien-Erkennung (B2)**: Der Architect MUSS explizit gemeinsame Verzeichnisse (`**/Shared/**`, `**/Common/**`, `**/Utils/**`, `**/Helpers/**`) erkennen. Stories, die Dateien in diesen Verzeichnissen beruehren, erhalten automatisch einen `overlaps_with`-Marker und werden in derselben Welle sequenziert.
154
+
112
155
  #### Architect-Dateidomänen-Zuordnung
113
156
 
114
157
  Der Architect erstellt eine Dateidomänen-Zuordnung für jede User Story:
@@ -192,13 +235,62 @@ QUALITY METRICS
192
235
 
193
236
  ### Phasenübergang
194
237
 
195
- Bei `--phase=all` führt der Lead einen Teamübergang durch:
238
+ Bei `--phase=all` führt der Lead einen sicheren Teamübergang durch:
239
+
240
+ #### Schritt T.1: Handoff-Vertrag schreiben
241
+
242
+ Der Lead schreibt eine `phase-handoff.yaml`-Datei im Sitzungsverzeichnis, bevor Phase 1 beendet wird:
243
+
244
+ ```yaml
245
+ # .bmad/phase-handoff.yaml — Interphasen-Vertrag
246
+ handoff_version: "1.0"
247
+ timestamp: "2026-02-13T10:30:00Z"
248
+ sprint: "<sprint-name>"
249
+ phase1_status: "completed"
250
+
251
+ stories_accepted:
252
+ - id: US-001
253
+ invest_score: 6
254
+ file_domains: [src/Domain/User/, src/App/User/, tests/Unit/User/]
255
+ - id: US-002
256
+ invest_score: 6
257
+ file_domains: [src/Domain/Order/, src/App/Order/, tests/Unit/Order/]
258
+
259
+ stories_needs_review:
260
+ - id: US-004
261
+ reason: "INVEST 4/6 nach 2 Überarbeitungen"
262
+
263
+ parallelization_waves:
264
+ - wave: 1
265
+ stories: [US-001, US-002]
266
+ reason: "0 Dateidomänen-Überlappung"
267
+ - wave: 2
268
+ stories: [US-003]
269
+ reason: "hängt von Dateien aus US-001 ab"
270
+
271
+ phase1_metrics:
272
+ artifacts_created: 4
273
+ rewrites_total: 3
274
+ avg_invest_score: 5.5
275
+ duration_minutes: 20
276
+ ```
277
+
278
+ #### Schritt T.2: Phase 1 herunterfahren und Phase 2 starten
196
279
 
197
280
  1. `shutdown_request` an Writer, Reviewer, Architect senden
198
281
  2. Warten, bis alle Worker heruntergefahren sind (~30s)
199
- 3. Lead behält vollständigen Kontext aus Phase 1 (Stories, Domänenzuordnung, Wellen)
282
+ 3. Lead behält vollständigen Kontext aus Phase 1 via `phase-handoff.yaml`
283
+ 3.5. **Kontextwiederherstellung (A6)**: `phase-handoff.yaml` neu lesen, um den Status vor Start von Phase 2 aufzufrischen. Wenn der Kontext kompaktiert wurde (Bug #23620), garantiert dieser Re-Read vollstaendiges Bewusstsein fuer Phase-1-Artefakte.
200
284
  4. Mit Phase-2-Start fortfahren
201
285
 
286
+ #### Wiederherstellung nach Absturz
287
+
288
+ Wenn der Lead zwischen den beiden Phasen neu startet:
289
+ 1. Existenz von `.bmad/phase-handoff.yaml` prüfen
290
+ 2. Wenn vorhanden mit `phase1_status: completed`, direkt in Phase 2 fortfahren
291
+ 3. `parallelization_waves` und `file_domains` aus dem Handoff für die Zuweisung verwenden
292
+ 4. Wenn nicht vorhanden oder `phase1_status != completed`, Phase 1 neu starten
293
+
202
294
  ### Phase 2: Implementierung (Geschwindigkeit + Delegation)
203
295
 
204
296
  #### Phase-2-Team-Zusammensetzung
@@ -230,11 +322,25 @@ Der Lead startet Entwickler-Worker (bis zu `--max-workers`) und weist Stories na
230
322
  2. Wenn Wave 1 abgeschlossen ist, werden Wave-2-Stories zugewiesen
231
323
  3. Von abgeschlossenen Stories freigewordene Worker übernehmen die nächste verfügbare Story
232
324
 
325
+ **Lean Context pro Phase-2-Worker**: Jeder Worker erhaelt nur die zugewiesene Story und die technologische Referenz des Projekts. Laden Sie NICHT andere Stories oder das vollstaendige PRD.
326
+
233
327
  Der Lead erstellt einen `TaskCreate` pro Story:
234
328
 
235
- - **Betreff**: `Implement US-XXX: <story title>`
236
- - **Beschreibung**: Vollständiger Story-Inhalt, Abnahmekriterien, Tech-Spec-Referenzen, TDD-Anforderungen, Dateidomänen-Umfang
237
- - **activeForm**: `Implementing US-XXX`
329
+ **Strukturiertes Spawn-Template Phase 2 (TaskCreate)**:
330
+ ```
331
+ Subject: "Implement US-XXX: <story title>"
332
+ Description:
333
+ Projekt: <projektname>
334
+ Technologie: <projekt-tech>
335
+ Story: <vollstaendiger Story-Inhalt>
336
+ Abnahmekriterien: <vollstaendige ACs mit Gherkin>
337
+ Dateidomaene: <Verzeichnisse aus phase-handoff.yaml>
338
+ Ausserhalb Grenzen: <Verzeichnisse von ANDEREN in Bearbeitung befindlichen Stories>
339
+ TDD-Befehle: <tech-spezifische Docker-Befehle>
340
+ Erfolgskriterien: Alle AC-Tests bestanden, Lint sauber, Abdeckung nicht reduziert
341
+ Referenz: @.claude/references/<tech>/CLAUDE.md
342
+ activeForm: "Implementing US-XXX"
343
+ ```
238
344
 
239
345
  #### Schritt 2.2: Worker-Ausführung (pro Story)
240
346
 
@@ -300,6 +406,12 @@ Der Lead klassifiziert Fehler gemäß der Ralph-Recovery-Engine:
300
406
  | 2 | Eingeschränkt | Mit Warnung fortfahren | Docs, optionale Gates, Abdeckungsrückgang |
301
407
  | 3 | Blockiert | An Menschen eskalieren | Sicherheit, Architektur, Auth |
302
408
 
409
+ **Polling-Kadenz (B5)**: Der Lead pollt `TaskList` alle 30 Sekunden. Nach 3 aufeinanderfolgenden Polls ohne Aenderung, auf 60 Sekunden reduzieren. Verwenden Sie `TeammateIdle`/`TaskCompleted` Hooks (v2.1.33+), falls verfuegbar.
410
+
411
+ **Nachrichten-Verbositaet (B4)**: Worker MUESSEN ihre Completion-Nachrichten auf < 50 Token begrenzen. Format: `DONE: US-XXX tests pass, +X files`. Details in die Aufgabenzusammenfassung schreiben.
412
+
413
+ **Lead-Kontextwiederherstellung (A6)**: Um den Context-Compaction-Bug (#23620) abzumildern, MUSS der Lead `TaskList` alle 5 Worker-Completions neu lesen. Zu Beginn von Phase 2 systematisch `phase-handoff.yaml` neu lesen, um vollstaendiges Bewusstsein fuer Phase-1-Artefakte zu garantieren.
414
+
303
415
  **Worker-Blockade-Erkennung**: Wenn ein Worker seine Aufgabe seit 10 Minuten nicht aktualisiert hat, sendet der Lead eine Statusprüfungsnachricht. Wenn innerhalb von 2 Minuten keine Antwort erfolgt, markiert der Lead die Story als blockiert und weist sie einem anderen Worker zu oder reiht sie für menschliche Überprüfung ein.
304
416
 
305
417
  **Dateidomänen-Konflikt zur Laufzeit erkannt**: Wenn ein Worker einen Dateikonflikt mit dem Bereich eines anderen Workers meldet, stoppt der Lead den konfligierenden Worker, wartet auf den Abschluss des ersten und weist dann sequenziell zu.
@@ -17,6 +17,7 @@ $ARGUMENTS
17
17
  - `--output-dir=<path>`: Benutzerdefiniertes Ausgabeverzeichnis für Sicherheitsergebnisse
18
18
  - `--dry-run`: Team-Zusammensetzung und Scan-Plan anzeigen, ohne auszuführen
19
19
  - `--sarif`: Ergebnisse im SARIF-Format ausgeben (für CI/CD-Integration)
20
+ - `--max-cost=<dollars>`: Maximales Budget in Dollar. Wenn die geschaetzten Parallelkosten diesen Schwellenwert ueberschreiten, wird die Ausfuehrung mit einer OVER BUDGET Meldung blockiert
20
21
 
21
22
  ## Voraussetzungen
22
23
 
@@ -27,6 +28,28 @@ $ARGUMENTS
27
28
  - `Tools/AgentTeams/lib/result-aggregator.sh` verfügbar
28
29
  - `Tools/AgentTeams/lib/cost-estimator.sh` verfügbar
29
30
 
31
+ ## Garde-Fou Fast Mode (Blockierende Bestaetigung)
32
+
33
+ **OBLIGATORISCH**: Vor dem Start des Teams MUSS der Security Lead:
34
+
35
+ 1. Erkennen, ob der Fast Mode aktiv ist (Lightning-Bolt-Indikator im Terminal)
36
+ 2. Wenn Fast Mode aktiv:
37
+ - Vergleichs-Dashboard Standard vs. Fast via `cost-estimator.sh --fast-mode` anzeigen
38
+ - **Blockierende Warnung** mit verglichenen Kosten anzeigen:
39
+ ```
40
+ ⚠️ FAST MODE ERKANNT — Opus-Kosten 6x hoeher!
41
+
42
+ | Modus | Input ($/M) | Output ($/M) | Geschaetzte Kosten dieser Review |
43
+ |-----------|-------------|--------------|----------------------------------|
44
+ | Standard | $5.00 | $25.00 | ~$X.XX |
45
+ | Fast | $30.00 | $150.00 | ~$Y.YY |
46
+
47
+ Moechten Sie im Fast Mode fortfahren? (ja/nein)
48
+ Empfehlung: Tippen Sie /fast, um vor dem Fortfahren zu deaktivieren.
49
+ ```
50
+ - **Warten auf explizite Bestaetigung** des Benutzers vor dem Fortfahren
51
+ - Wenn der Benutzer ablehnt, abbrechen mit Nachricht, die `/fast` zum Deaktivieren vorschlaegt
52
+
30
53
  ## Team-Zusammensetzung
31
54
 
32
55
  | Rolle | Modell | Agent | Verantwortlichkeit |
@@ -65,6 +88,15 @@ Tools/AgentTeams/lib/compatibility-check.sh \
65
88
 
66
89
  ### Schritt 3: Team starten (Fan-Out)
67
90
 
91
+ **Kostenschaetzung**: Der Security Lead schaetzt die Kosten via `cost-estimator.sh --task-type security --techs <worker_count>`.
92
+
93
+ **Budgetgarantie**: Wenn `--max-cost` angegeben ist, pruefen dass geschaetzte Kosten <= max_cost. Bei Ueberschreitung: `OVER BUDGET` anzeigen, abbrechen.
94
+
95
+ **Lean Context pro Worker**: Jeder Reviewer erhaelt nur den fuer seine Dimension notwendigen Kontext:
96
+ - Code Reviewer → `@.claude/references/<tech>/CLAUDE.md` + Liste der Quelldateien
97
+ - Dependency-Auditor → Liste der Lockfiles (composer.lock, package-lock.json, etc.)
98
+ - Infra-Reviewer → Dockerfiles, docker-compose.yml, CI/CD-Configs
99
+
68
100
  ```
69
101
  Sicherheits-Lead (opus) — orchestriert über TaskCreate/SendMessage
70
102
  |
@@ -81,6 +113,18 @@ Sicherheits-Lead (opus) — orchestriert über TaskCreate/SendMessage
81
113
 
82
114
  Der Lead erstellt 3 Aufgaben via `TaskCreate`:
83
115
 
116
+ **Strukturiertes Spawn-Template (TaskCreate)**: Der Lead MUSS in jede Aufgabe einfuegen:
117
+ ```
118
+ Subject: "Security Review <dimension>"
119
+ Description:
120
+ Projekt: <projektname>
121
+ Dimension: <code|deps|infra>
122
+ Scope: <zu analysierende Dateien/Verzeichnisse>
123
+ Tools: <zu verwendende Docker-Befehle>
124
+ Ausgabeformat: Findings im Format { severity, category, file, description }
125
+ activeForm: "Security Review <dimension>"
126
+ ```
127
+
84
128
  #### Aufgabe A: Quellcode-Sicherheitsreview
85
129
 
86
130
  **Umfang**: Analyse von Schwachstellen im Anwendungsquellcode
@@ -187,7 +231,15 @@ docker compose config --quiet # Compose-Syntax validieren
187
231
 
188
232
  ### Schritt 4: Synchronisationsbarriere
189
233
 
190
- Sicherheits-Lead wartet, bis alle 3 Reviewer-Aufgaben abgeschlossen sind. Timeout: 8 Minuten pro Reviewer. Wenn ein Reviewer das Timeout überschreitet, fährt der Lead mit den verfügbaren Ergebnissen fort und vermerkt die Lücke.
234
+ Sicherheits-Lead wartet, bis alle 3 Reviewer-Aufgaben abgeschlossen sind.
235
+
236
+ **Polling-Kadenz (B5)**: `TaskList` alle 30 Sekunden. Nach 3 aufeinanderfolgenden Polls ohne Aenderung, auf 60 Sekunden reduzieren. Verwenden Sie `TeammateIdle`/`TaskCompleted` Hooks (v2.1.33+), falls verfuegbar.
237
+
238
+ **Nachrichten-Verbositaet (B4)**: Reviewer MUESSEN ihre Completion-Nachrichten auf < 50 Token begrenzen. Format: `DONE: <dimension> <findings_count> findings (<critical>C/<high>H/<medium>M)`. Details in die Ergebnisdatei schreiben.
239
+
240
+ **Lead-Kontextwiederherstellung (A6)**: Um den Context-Compaction-Bug (#23620) abzumildern, MUSS der Lead `TaskList` nach jeder Reviewer-Completion neu lesen, um sein Bewusstsein fuer den Team-Status aufzufrischen.
241
+
242
+ Timeout: 8 Minuten pro Reviewer. Wenn ein Reviewer das Timeout überschreitet, fährt der Lead mit den verfügbaren Ergebnissen fort und vermerkt die Lücke.
191
243
 
192
244
  ### Schritt 5: Korrelation und Priorisierung
193
245
 
@@ -18,6 +18,7 @@ $ARGUMENTS
18
18
  - `--max-stories=10`: Maximale Anzahl zu bearbeitender Stories (Standard: 10)
19
19
  - `--timeout=12`: Maximale Laufzeit in Stunden (Standard: 12)
20
20
  - `--dry-run`: Team-Zusammensetzung und Story-Zuweisungen anzeigen, ohne auszuführen
21
+ - `--max-cost=<dollars>`: Maximales Budget in Dollar. Wenn die geschaetzten Parallelkosten diesen Schwellenwert ueberschreiten, wird die Ausfuehrung mit einer OVER BUDGET Meldung blockiert
21
22
  - `--ralph-mode`: Ralph-Recovery-Engine aktivieren (Fehlerklassifizierung, Auto-Retry, Eskalationsdienst) zusammen mit Agent-Teams-Parallelisierung.
22
23
 
23
24
  ## Voraussetzungen
@@ -31,6 +32,28 @@ $ARGUMENTS
31
32
  - `Tools/AgentTeams/lib/compatibility-check.sh` verfügbar
32
33
  - `Tools/AgentTeams/lib/cost-estimator.sh` verfügbar
33
34
 
35
+ ## Garde-Fou Fast Mode (Blockierende Bestaetigung)
36
+
37
+ **OBLIGATORISCH**: Vor dem Start des Teams MUSS der Sprint-Conductor:
38
+
39
+ 1. Erkennen, ob der Fast Mode aktiv ist (Lightning-Bolt-Indikator im Terminal)
40
+ 2. Wenn Fast Mode aktiv:
41
+ - Vergleichs-Dashboard Standard vs. Fast via `cost-estimator.sh --fast-mode` anzeigen
42
+ - **Blockierende Warnung** mit verglichenen Kosten anzeigen:
43
+ ```
44
+ ⚠️ FAST MODE ERKANNT — Opus-Kosten 6x hoeher!
45
+
46
+ | Modus | Input ($/M) | Output ($/M) | Geschaetzte Kosten dieses Sprints |
47
+ |-----------|-------------|--------------|-----------------------------------|
48
+ | Standard | $5.00 | $25.00 | ~$X.XX |
49
+ | Fast | $30.00 | $150.00 | ~$Y.YY |
50
+
51
+ Moechten Sie im Fast Mode fortfahren? (ja/nein)
52
+ Empfehlung: Tippen Sie /fast, um vor dem Fortfahren zu deaktivieren.
53
+ ```
54
+ - **Warten auf explizite Bestaetigung** des Benutzers vor dem Fortfahren
55
+ - Wenn der Benutzer ablehnt, abbrechen mit Nachricht, die `/fast` zum Deaktivieren vorschlaegt
56
+
34
57
  ## Wann verwenden (vs. sequenzieller Sprint)
35
58
 
36
59
  | Bedingung | Team-Sprint verwenden (parallel) | `--sequential` oder Einzelstory verwenden |
@@ -53,9 +76,13 @@ Der Sprint-Dirigent lädt den Sprint-Status:
53
76
  2. Stories mit Status `ready-for-dev` filtern
54
77
  3. Story-Unabhängigkeit analysieren (auf Dateidomänen-Überlappung prüfen)
55
78
  4. Stories in parallelisierbare Gruppen aufteilen
79
+ 5. Kosten schaetzen via `cost-estimator.sh --task-type sprint --techs <worker_count>`
80
+ 6. **Budgetgarantie**: Wenn `--max-cost` angegeben ist, pruefen dass geschaetzte Kosten <= max_cost. Bei Ueberschreitung: `OVER BUDGET` anzeigen, abbrechen, vorschlagen die Anzahl der Stories zu reduzieren oder `--sequential` zu verwenden
56
81
 
57
82
  **Unabhängigkeitsprüfung**: Zwei Stories sind unabhängig, wenn ihre Abnahmekriterien und ihr Implementierungsumfang nicht auf dieselben Quelldateien verweisen. Der Dirigent überprüft die Beschreibung und Tech-Spec-Referenzen jeder Story, um dies festzustellen.
58
83
 
84
+ **Gemeinsame Dateien-Erkennung (B2)**: Bei der Unabhaengigkeitsanalyse explizit gemeinsame Verzeichnisse (`**/Shared/**`, `**/Common/**`, `**/Utils/**`, `**/Helpers/**`) erkennen. Stories, die Dateien in diesen Verzeichnissen beruehren, erhalten automatisch einen `overlaps_with`-Marker und werden im gleichen Worker sequenziert.
85
+
59
86
  ### Schritt 2: Story-Zuweisung
60
87
 
61
88
  ```
@@ -74,11 +101,25 @@ Sprint-Dirigent (opus) — koordiniert über TaskCreate/SendMessage
74
101
  +------------------------------------------+
75
102
  ```
76
103
 
104
+ **Lean Context pro Worker**: Jeder Worker erhaelt nur die technologische Referenz des Projekts (nicht alle Technologien). Der Conductor uebergibt nur `@.claude/references/<projekt-tech>/CLAUDE.md` im Kontext.
105
+
77
106
  Der Dirigent erstellt einen `TaskCreate` pro Story:
78
107
 
79
- - **Betreff**: `Implement US-XXX: <story title>`
80
- - **Beschreibung**: Vollständiger Story-Inhalt, Abnahmekriterien, Tech-Spec-Referenzen, TDD-Anforderungen
81
- - **activeForm**: `Implementing US-XXX`
108
+ **Strukturiertes Spawn-Template (TaskCreate)**:
109
+ ```
110
+ Subject: "Implement US-XXX: <story title>"
111
+ Description:
112
+ Projekt: <projektname>
113
+ Technologie: <projekt-tech>
114
+ Story: <vollstaendiger Story-Inhalt>
115
+ Abnahmekriterien: <vollstaendige ACs mit Gherkin>
116
+ Dateidomaene: <erwartete Quellverzeichnisse>
117
+ Ausserhalb Grenzen: <NICHT zu aendernde Verzeichnisse>
118
+ TDD-Befehle: <tech-spezifische Docker-Befehle>
119
+ Erfolgskriterien: Alle AC-Tests bestanden, Lint sauber, Abdeckung nicht reduziert
120
+ Referenz: @.claude/references/<tech>/CLAUDE.md
121
+ activeForm: "Implementing US-XXX"
122
+ ```
82
123
 
83
124
  ### Schritt 3: Worker-Ausführung (pro Story)
84
125
 
@@ -144,6 +185,12 @@ Der Dirigent klassifiziert Fehler gemäß der Ralph-Recovery-Engine:
144
185
  | 2 | Eingeschränkt | Mit Warnung fortfahren | Docs, optionale Gates, Abdeckungsrückgang |
145
186
  | 3 | Blockiert | An Menschen eskalieren | Sicherheit, Architektur, Auth |
146
187
 
188
+ **Polling-Kadenz (B5)**: Der Conductor pollt `TaskList` alle 30 Sekunden. Nach 3 aufeinanderfolgenden Polls ohne Aenderung, auf 60 Sekunden reduzieren. Verwenden Sie `TeammateIdle`/`TaskCompleted` Hooks (v2.1.33+), falls verfuegbar.
189
+
190
+ **Nachrichten-Verbositaet (B4)**: Worker MUESSEN ihre Completion-Nachrichten auf < 50 Token begrenzen. Format: `DONE: US-XXX tests pass, +X files`. Details in die Aufgabenzusammenfassung schreiben, nicht in die Nachricht.
191
+
192
+ **Conductor-Kontextwiederherstellung (A6)**: Um den Context-Compaction-Bug (#23620) abzumildern, MUSS der Conductor `TaskList` alle 5 Worker-Completions neu lesen, um sein Bewusstsein fuer den Team-Status aufzufrischen.
193
+
147
194
  **Worker-Blockade-Erkennung**: Wenn ein Worker seine Aufgabe seit 10 Minuten nicht aktualisiert hat, sendet der Dirigent eine Statusprüfungsnachricht. Wenn innerhalb von 2 Minuten keine Antwort erfolgt, markiert der Dirigent die Story als blockiert und weist sie einem anderen Worker zu oder reiht sie für menschliche Überprüfung ein.
148
195
 
149
196
  ### Schritt 6: Sprint-Abschluss
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Full Audit Team - Parallel multi-technology audit using Agent Teams
3
- argument-hint: [--techs=auto|tech1,tech2] [--max-workers=4]
3
+ argument-hint: "[--techs=auto|tech1,tech2] [--max-workers=4]"
4
4
  ---
5
5
 
6
6
  # Full Audit Team - Parallel Multi-Technology Audit
@@ -14,6 +14,7 @@ $ARGUMENTS
14
14
  - `--techs=auto`: Auto-detect technologies (default). Or specify comma-separated: `--techs=symfony,react`
15
15
  - `--max-workers=4`: Maximum parallel auditor workers (default: 4, max: 4)
16
16
  - `--output-dir=<path>`: Custom output directory for audit results
17
+ - `--max-cost=<dollars>`: Maximum budget in dollars. If the estimated parallel cost exceeds this threshold, execution is blocked with an OVER BUDGET message
17
18
  - `--dry-run`: Show team composition and estimated cost without executing
18
19
  - `--skip-aggregation`: Output per-stack results without merging
19
20
  - `--sequential`: Run audits sequentially instead of in parallel (no Agent Teams overhead). Useful for single-technology projects or when Agent Teams is not available.
@@ -27,6 +28,28 @@ $ARGUMENTS
27
28
  - `Tools/AgentTeams/lib/result-aggregator.sh` available
28
29
  - `Tools/AgentTeams/lib/cost-estimator.sh` available
29
30
 
31
+ ## Fast Mode Guard (Blocking Confirmation)
32
+
33
+ **MANDATORY**: Before launching the team, the leader MUST:
34
+
35
+ 1. Detect if Fast Mode is active (lightning bolt indicator in terminal)
36
+ 2. If Fast Mode is active:
37
+ - Display the comparative dashboard standard vs fast via `cost-estimator.sh --fast-mode`
38
+ - **Display a blocking warning** with cost comparison:
39
+ ```
40
+ ⚠️ FAST MODE DETECTED — Opus costs 6x higher!
41
+
42
+ | Mode | Input ($/M) | Output ($/M) | Estimated cost this audit |
43
+ |----------|-------------|--------------|--------------------------|
44
+ | Standard | $5.00 | $25.00 | ~$X.XX |
45
+ | Fast | $30.00 | $150.00 | ~$Y.YY |
46
+
47
+ Do you want to continue in Fast Mode? (yes/no)
48
+ Recommendation: type /fast to disable before continuing.
49
+ ```
50
+ - **Wait for explicit user confirmation** before proceeding
51
+ - If the user refuses, abort with a message suggesting `/fast` to disable
52
+
30
53
  ## When to Use (vs. Sequential Audit)
31
54
 
32
55
  | Condition | Use Team Audit | Use `--sequential` flag |
@@ -92,6 +115,11 @@ Tools/AgentTeams/lib/cost-estimator.sh \
92
115
 
93
116
  Display estimated cost to user. In `--dry-run` mode, stop here.
94
117
 
118
+ **Budget guard**: If `--max-cost` is specified, check that `PAR_COST <= max_cost`. If the estimated cost exceeds the budget:
119
+ - Display `OVER BUDGET: estimated cost $X.XX > budget $Y.YY`
120
+ - Abort execution (do NOT launch workers)
121
+ - Suggest reducing the number of stacks or using `--sequential`
122
+
95
123
  ### Step 4: Team Spawn (Fan-Out)
96
124
 
97
125
  ```
@@ -115,6 +143,33 @@ Audit Leader (opus) — coordinates via TaskCreate/SendMessage
115
143
  3. Workers claim tasks via `TaskUpdate` (status: in_progress)
116
144
  4. Workers write results to their isolated directory only
117
145
 
146
+ **Lean context per worker (A4)**: Each worker only receives its stack's technology reference. Do NOT load context for all technologies.
147
+ - Symfony worker → `@.claude/references/symfony/CLAUDE.md` only
148
+ - React worker → `@.claude/references/react/` only
149
+ - Python worker → `@.claude/references/python/` only
150
+ - etc.
151
+
152
+ **Structured spawn template (TaskCreate)**: The leader MUST include in each `TaskCreate`:
153
+
154
+ ```
155
+ Subject: "Audit <TechName> stack"
156
+ Description:
157
+ Project: <project-name>
158
+ Technology: <tech-name>
159
+ Docker service: <docker-service-name>
160
+ Root directory: <tech-root-directory>
161
+ Reference: @.claude/references/<tech>/CLAUDE.md
162
+ Checks: [architecture, code-quality, testing, security]
163
+ Output format: result.json in <output-dir>/<tech>/
164
+ Output schema:
165
+ { "tech": "<tech>", "score": <0-100>,
166
+ "architecture": { "score": <0-25>, "findings": [...] },
167
+ "code_quality": { "score": <0-25>, "findings": [...] },
168
+ "testing": { "score": <0-25>, "findings": [...] },
169
+ "security": { "score": <0-25>, "findings": [...] } }
170
+ activeForm: "Auditing <TechName>"
171
+ ```
172
+
118
173
  **Worker instructions** (per stack):
119
174
 
120
175
  Each worker executes the 4 audit categories sequentially within its stack:
@@ -164,9 +219,17 @@ Each worker writes `result.json` to its isolated output directory:
164
219
  }
165
220
  ```
166
221
 
222
+ **Completion message verbosity (B4)**: Workers MUST limit their completion messages to < 50 tokens. Write details to the `result.json` file, not in the message. Format: `DONE: <tech> <score>/100 | <findings_count> findings`
223
+
167
224
  ### Step 5: Sync Barrier
168
225
 
169
- Leader waits for all worker tasks to reach `completed` status via `TaskList` polling. If a worker exceeds its timeout (5 minutes per stack), leader marks it as failed and proceeds with partial results.
226
+ Leader waits for all worker tasks to reach `completed` status via `TaskList` polling.
227
+
228
+ **Polling cadence (B5)**: `TaskList` every 30 seconds. After 3 consecutive polls without status change, reduce to 60 seconds. Use `TeammateIdle`/`TaskCompleted` hooks (v2.1.33+) for more reactive notification if available.
229
+
230
+ If a worker exceeds its timeout (5 minutes per stack), leader marks it as failed and proceeds with partial results.
231
+
232
+ **Leader context recovery (A6)**: To mitigate context compaction bug (#23620), the leader MUST re-read `TaskList` every 5 worker completions to refresh its awareness of team state. If prolonged inactivity (>3 min without update) is detected, force a full re-read of `TaskList`.
170
233
 
171
234
  ### Step 6: Result Aggregation
172
235