@the-bearded-bear/claude-craft 7.10.2 → 7.11.0-next.535f614
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.
- package/Dev/i18n/de/Team/commands/audit.md +64 -1
- package/Dev/i18n/de/Team/commands/delivery.md +120 -8
- package/Dev/i18n/de/Team/commands/security.md +53 -1
- package/Dev/i18n/de/Team/commands/sprint.md +50 -3
- package/Dev/i18n/en/Team/commands/audit.md +65 -2
- package/Dev/i18n/en/Team/commands/delivery.md +121 -9
- package/Dev/i18n/en/Team/commands/security.md +53 -1
- package/Dev/i18n/en/Team/commands/sprint.md +50 -3
- package/Dev/i18n/es/Team/commands/audit.md +64 -1
- package/Dev/i18n/es/Team/commands/delivery.md +95 -6
- package/Dev/i18n/es/Team/commands/security.md +53 -1
- package/Dev/i18n/es/Team/commands/sprint.md +50 -3
- package/Dev/i18n/fr/Team/commands/audit.md +63 -1
- package/Dev/i18n/fr/Team/commands/delivery.md +119 -7
- package/Dev/i18n/fr/Team/commands/security.md +53 -1
- package/Dev/i18n/fr/Team/commands/sprint.md +42 -3
- package/Dev/i18n/pt/Team/commands/audit.md +65 -2
- package/Dev/i18n/pt/Team/commands/delivery.md +123 -11
- package/Dev/i18n/pt/Team/commands/security.md +53 -1
- package/Dev/i18n/pt/Team/commands/sprint.md +50 -3
- package/Tools/AgentTeams/lib/cost-dashboard.sh +52 -0
- package/Tools/AgentTeams/lib/cost-estimator.sh +225 -6
- package/Tools/AgentTeams/lib/ralph-teams-adapter.sh +51 -3
- package/Tools/AgentTeams/tests/compatibility-check.bats +289 -0
- package/Tools/AgentTeams/tests/cost-dashboard.bats +265 -0
- package/Tools/AgentTeams/tests/cost-estimator.bats +539 -0
- package/Tools/AgentTeams/tests/ralph-teams-adapter.bats +425 -0
- package/Tools/AgentTeams/tests/result-aggregator.bats +407 -0
- 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
|
|
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 (
|
|
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.
|
|
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** (
|
|
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
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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.
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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.
|
|
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
|
|