Skip to content

Commit 0281ac1

Browse files
musicofhelclaude
andcommitted
Add v5 observability validation handoff doc
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f248c75 commit 0281ac1

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Handoff: v5 Observability Validation (2026-03-30)
2+
3+
## What was done
4+
5+
Closed the observability gap between instrumented span attributes (~130) and dashboard visibility (~20 previously queried).
6+
7+
### Phase 1-2: New Dashboards + Fix
8+
9+
- **TB Outcomes** (`config/dashboards/tb-outcomes.json`) — 6 panels: outcomes over time, retries per TB, cascade activity, ambiguity scores, timeout rate, phase duration breakdown
10+
- **LLMOps Insights** (`config/dashboards/llmops-insights.json`) — 6 panels: DSPy vs CLI latency, finding overlap, GEPA history, training data volume, Langfuse status, finding counts
11+
- **tb5_persona fix** in `config/dashboards/agent-performance.json` — added to COALESCE (TB-5 delegates to TB-1 for persona, but future-proofed)
12+
- All 8 dashboards imported to OO with zero drift
13+
14+
### Phase 3: Stress Test (30s cooldown)
15+
16+
**30/30 PASS (100%)** — 5 iterations, 6 TBs each, 30s cooldown between TBs.
17+
18+
Bugs fixed in stress test:
19+
1. `br_create` cwd was `~/dev-loop` but pipeline looks in `~/OOTestProject1` — issues created in wrong beads DB. Fixed to `cwd=OOTESTPROJECT1`.
20+
2. Pytest pre-flight timeout 120s→300s (708 tests take ~141s).
21+
3. Added `--cooldown N` flag for configurable spacing.
22+
23+
Key results:
24+
- Zero timeouts (confirms v4 hypothesis: failures were concurrency-induced)
25+
- TB-2 escalated 4/5 times (retry exhaustion is expected but tuning opportunity)
26+
- TB-4 iter 1 outlier (637s) — cold cache, all subsequent runs 17-28s
27+
28+
### Phase 5: Dashboard-Mirror
29+
30+
Full `dm-collect-all` ran (10m 42s): 8 dashboards captured with Playwright screenshots at 30d/7d/1h. Chain diffs written for all 8. Output in `~/dashboard-mirror/output/`.
31+
32+
**Caveat:** Screenshots captured before stress test completed → most panels show "No Data". A fresh `dm-collect-all` after data generation would show populated panels.
33+
34+
### Phase 6: Training Data
35+
36+
182 total examples (152 code_review, 24 persona_select, 6 retry_prompt). All 3 DSPy programs optimized.
37+
38+
## Files changed
39+
40+
| File | Change |
41+
|------|--------|
42+
| `config/dashboards/tb-outcomes.json` | NEW — 6-panel TB outcomes dashboard |
43+
| `config/dashboards/llmops-insights.json` | NEW — 6-panel LLMOps insights dashboard |
44+
| `config/dashboards/agent-performance.json` | Added tb5_persona to COALESCE |
45+
| `scripts/stress-test.py` | --cooldown flag, br_create cwd fix, pytest timeout bump |
46+
| `docs/validation-report-2026-03-30-v5.md` | Full validation report |
47+
48+
## What to do next
49+
50+
1. **Run TB-7** to populate LLMOps Insights dashboard panels (DSPy comparison data)
51+
2. **Re-run `dm-collect-all`** after generating data to get populated dashboard screenshots
52+
3. **Tune TB-2**: Consider increasing `max_retries` or improving the retry prompt — 4/5 escalation rate suggests the single retry isn't enough for the bug-fix persona
53+
4. **persona_select training**: At 0.56 metric score with only 19 examples, this program needs more data
54+
5. **Consider automated dm-collect-all**: Periodic captures would detect dashboard drift over time
55+
56+
## Commit
57+
58+
`f248c75` on `main`, pushed to origin.

0 commit comments

Comments
 (0)