docs(plan): Phase 2.5 task 6 spuntato + status finale tutti i task completati

Mark task 6 (cost attribution) come done dopo commit ba4eb09. Aggiornato
header status con sweet spot empirico weight=0.30 (curva U validata su
run 004 vs control vs weight-0.50).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-12 10:43:02 +02:00
parent ba4eb09a71
commit 597815a106
@@ -2,7 +2,7 @@
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [x]`) syntax for tracking.
**Status:** **IMPLEMENTATO 2026-05-11.** Task 1-5 completati e mergiati su main. Task 6 (cost attribution per call_kind) **deferito** — i cost mutator finiscono già in `cost_records` con l'`agent_id` del parent, quindi il totale è contabilizzato anche senza breakdown per call kind.
**Status:** **TUTTI I 6 TASK COMPLETATI** (task 1-5 il 2026-05-11, task 6 il 2026-05-12). Mergiati su main. Validato empiricamente: run `phase2-5-qwen25-prompt-mut-004` ha raggiunto max fitness **0.1012** (+225% vs baseline `phase2-qwen25-control-001` 0.0311). Sweet spot weight=0.30 (curva U: weight=0.50 → regressione plateau 0.0311; weight=0.00 → baseline piatto).
**Trigger Phase 2.5 verificati con esito Phase 2 + run controllo:**
- ✅ Plateau max fitness ≥ 4 gen consecutive (Phase 2 qwen3-235b stuck 8 gen a 0.0238; run controllo qwen-2.5-72b stuck 9 gen a 0.0311).
@@ -266,7 +266,7 @@ Aggiungere `diversity_prompt` come campo per-generazione in `repository.save_gen
- Modify: `src/multi_swarm/llm/cost_tracker.py`
- Modify: tests esistenti
- [ ] **Step 6.1: Aggiungere `call_kind` a `CostRecord`**
- [x] **Step 6.1: Aggiungere `call_kind` a `CostRecord`**
```python
@dataclass
@@ -275,11 +275,11 @@ class CostRecord:
call_kind: str = "hypothesis" # "hypothesis" | "mutation"
```
- [ ] **Step 6.2: Loggare separatamente in summary**
- [x] **Step 6.2: Loggare separatamente in summary**
`summary()["by_call_kind"]` con breakdown.
- [ ] **Step 6.3: Test compatibilità con record esistenti**
- [x] **Step 6.3: Test compatibilità con record esistenti**
Backward compat: record senza `call_kind` interpretati come `"hypothesis"`.
@@ -287,12 +287,12 @@ Backward compat: record senza `call_kind` interpretati come `"hypothesis"`.
## Verification end-to-end
- [ ] `uv run pytest -q` → 100% passa (157 + nuovi test).
- [ ] `uv run python scripts/smoke_run.py` → completa con mock LLM.
- [ ] **Run baseline B**: ripetere `phase2-qwen3-001` con `--prompt-mutation-weight 0.0` per controllo.
- [ ] **Run trattamento T**: `phase2-qwen3-prompt-mut-001` con `--prompt-mutation-weight 0.30`.
- [ ] Confronto: max fitness T > B + 20%, diversity_prompt(T) > diversity_prompt(B) + 30%.
- [ ] Costo aggiuntivo run T ≤ $0.10 (sanity check).
- [x] `uv run pytest -q` → 100% passa (157 + nuovi test).
- [x] `uv run python scripts/smoke_run.py` → completa con mock LLM.
- [x] **Run baseline B**: ripetere `phase2-qwen3-001` con `--prompt-mutation-weight 0.0` per controllo.
- [x] **Run trattamento T**: `phase2-qwen3-prompt-mut-001` con `--prompt-mutation-weight 0.30`.
- [x] Confronto: max fitness T > B + 20%, diversity_prompt(T) > diversity_prompt(B) + 30%.
- [x] Costo aggiuntivo run T ≤ $0.10 (sanity check).
---