Tells you the specific reason your Wi-Fi just dropped — evidence-grounded, confidence-scored attribution like "your school's 802.1X session expired at 09:14:23 — here are the three telemetry signals that prove it."


1flowchart LR
2 L["📡 Laptop telemetry"] --> S["📋 wifi-diag-schema"]
3 S --> CLS["🔢 LightGBM 10-class classifier"]
4 S --> ANO["📈 PyOD IForest anomaly detector"]
5 CLS --> V["📊 Verdict + EvidenceItems"]
6 ANO --> V
7 V --> N["💬 Anthropic Haiku 4.5 narrator"]
8 N --> UI["🖥️ Gradio Live tab + Agent CLI"]
9 style CLS fill:#3498db,stroke:#1b4f72,stroke-width:3px,color:#fff
10 style ANO fill:#3498db,stroke:#1b4f72,stroke-width:3px,color:#fff
11 style V fill:#2ecc71,stroke:#196f3d,stroke-width:2px,color:#fffai-internet-diagnostic-space — Hugging Face Space (Phase 3)ai-internet-diagnostic-model (this repo) — model artefacts + synthetic-data generator (Phase 1–2)ai-internet-diagnostic-agent — cross-platform local telemetry agent (Phase 4)wifi-diag-schema — Pydantic wire-format schema, published to PyPI (Phase 1)1uv sync --all-extras --dev
2make synth # regenerate data/train.parquet (100k) + data/eval.parquet (20k); <30s
3make test # run unit testsmake synth regenerates train + eval Parquet byte-identically from fixed master seeds (D-08):MASTER_TRAIN_SEED = 20260501 → data/train.parquet (10,000 samples × 10 classes)MASTER_EVAL_SEED = 20260502 → data/eval.parquet (2,000 samples × 10 classes)SeedSequence.spawn() (RESEARCH Pattern 4) guarantee determinism.DATASHEET.md for the Gebru-format dataset card. Per CONTEXT.md D-09, the Limitations section leads with the synthetic-vs-real gap; the Reality Anchor placeholder is reserved for Phase 4 dogfood data.