**Workbook:** [`phases/00b-observatory/`](../blob/main/phases/00b-observatory/README.md) **Built in:** [agent-observatory](https://github.com/UnityInFlow/agent-observatory) + [benchmarks](https://github.com/UnityInFlow/agent-observatory-benchmarks) Gate passed. Instrument still produced five void experiments — the gap between those two statements is the real lesson of this phase. ## Labs - [x] 0B.1 — Benchmark before dashboard - [x] 0B.2 — 5 plain-agent repetitions - [x] 0B.3 — Collector with debug exporter only - [x] 0B.4 — Tempo + Grafana, read one trace - [x] 0B.5 — B0 variance experiment ## Exit gate - [x] Deterministic benchmark works - [x] Hidden tests catch an intentionally bad implementation - [x] 5 baseline runs exist - [x] One trace visible in Grafana - [x] Run records normalized independently of vendor OTel shape ## Still open upstream - `agent-observatory` #41 — OTel privacy + cardinality at the collector boundary - `agent-observatory` #11 — bank privacy checklist - `BehaviorDto` counters non-nullable, so a telemetry gap is indistinguishable from a genuine zero
Workbook:
phases/00b-observatory/Built in: agent-observatory + benchmarks
Gate passed. Instrument still produced five void experiments — the gap between those two statements is the real lesson of this phase.
Labs
Exit gate
Still open upstream
agent-observatoryReviewing a contract before it leaves the machine is now the default #41 — OTel privacy + cardinality at the collector boundaryagent-observatoryPhase 9 — Memory #11 — bank privacy checklistBehaviorDtocounters non-nullable, so a telemetry gap is indistinguishable from a genuine zero