diff --git a/docs/superpowers/plans/2026-05-11-mutate-prompt-llm-phase-2-5.md b/docs/superpowers/plans/2026-05-11-mutate-prompt-llm-phase-2-5.md index 18ba189..fcbbdd1 100644 --- a/docs/superpowers/plans/2026-05-11-mutate-prompt-llm-phase-2-5.md +++ b/docs/superpowers/plans/2026-05-11-mutate-prompt-llm-phase-2-5.md @@ -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). ---