BLOB DESK

CONTROL ROOM

Report · MD — —

CLICKABLE MARKDOWN · COPY READY

Phase 1K — Control Room V3

PHASE1K-CONTROL-ROOM-V3-FINAL-REPORT.md

Opens as plain Markdown. Use Copy report or select all in the box below.

# PHASE 1K — Control Room V3 Scientific Progress Dashboard Final Report

| Field | Value |
|-------|-------|
| Date | 2026-09-26 |
| Project | `/opt/blob-desk-review/code/` |
| Phase | `phase1k-control-room-v3` |
| Control Room | `http://76.13.253.14:8097` |
| Clickable report (copy) | `http://76.13.253.14:8097/report` |
| Raw Markdown | `http://76.13.253.14:8097/report/phase1k.md` |
| On-disk Markdown | `/opt/blob-desk-review/code/PHASE1K-CONTROL-ROOM-V3-FINAL-REPORT.md` |
| Version | `blob-desk-control-room-v3` |
| Observed commit | none (Blob Desk filesystem-local; not a Git repository) |
| Mode | `EVIDENCE_ONLY` |

---

## 1. Executive summary

Control Room V3 reorders the dashboard so the operator can see **scientific progress within ~5 seconds**, without scrolling a growing coin list.

| Item | Result |
|------|--------|
| Headline count meaning | **PRIMARY_PROSPECTIVE** (not excluded) — live **43** at validation |
| VERIFIED card | PRIMARY_PROSPECTIVE with `verification_status=VERIFIED` — **43** |
| OUTCOME COMPLETE | T0 + T24H SUCCESS — **0** |
| INFORMATION VALUE | `INSUFFICIENT_DATA` |
| Pipeline progress | Authoritative SUCCESS/complete counts; **T+6H = NOT YET MEASURABLE** |
| Next milestone | Accumulate outcome-complete events (T0 + T24H SUCCESS) |
| Current blocker | Almost no events have complete T0+T24H outcomes |
| Latest Finds | Moved below operational picture; expandable; not ranked |
| JEV | GATED; role experiments REGISTERED / NOT_READY — below population |
| Science changed | **No** |
| Gates / experiments mutated | **No** |
| Tests | **382 passed** |
| Accumulation | **ACTIVE** |

---

## 2. Current live population interpretation

| Displayed label | Authoritative definition | Live value (validation) |
|-----------------|--------------------------|-------------------------|
| PRIMARY EVENTS | `verified_events` where `cohort_type='PRIMARY_PROSPECTIVE'` and not excluded | **43** |
| VERIFIED | Same population with `verification_status='VERIFIED'` | **43** |
| OUTCOME COMPLETE | `outcome_row_for_event(...).complete` (T0 SUCCESS ∧ T24H SUCCESS) | **0** |
| INFORMATION VALUE | Latest `information_value_snapshots.gate_status` | `INSUFFICIENT_DATA` |
| MATURE (scientific health) | Per-event `classify_maturity` == `OUTCOME_COMPLETE` | **0** |

The earlier ~41 UI figure was the growing **PRIMARY_PROSPECTIVE** list (same population as PRIMARY). It was **not** a different scientific cohort. V3 labels this explicitly as PRIMARY EVENTS / PRIMARY_PROSPECTIVE so the number is never ambiguous.

Maturity distribution (distinct from horizon SUCCESS): mostly `OUTCOME_PARTIAL` / `T0_COMPLETE` — maturity is **not** age alone (existing `classify_maturity`).

Horizon observation reality at validation:

| Horizon | SUCCESS | PENDING | MISSED | SOURCE_FAIL |
|---------|---------|---------|--------|-------------|
| T0 | 0 | 0 | 43 | 0 |
| T1H | 0 | (pending+missed mix) | … | … |
| T24H | 0 | 43 | 0 | 0 |
| T48H | 0 | 43 | 0 | 0 |

**MISSED / SOURCE_FAIL / PENDING are not displayed as zero outcomes.**

---

## 3. Old V2 information hierarchy

1. System status + 4 cards  
2. **Latest Finds (dominant)**  
3. EXP-SKEPTIC-V1 readiness  
4. JEV role evaluation  
5. Collapsible evidence / progress / system / activity  

Problem: the event list became the story; scientific progress was hard to see.

---

## 4. New V3 information hierarchy

1. SYSTEM STATUS (ACTIVE/STALE/STOPPED/UNKNOWN + mode + DATA AS OF)  
2. Four headline cards (PRIMARY / VERIFIED / OUTCOME COMPLETE / INFORMATION VALUE)  
3. PROGRESS THROUGH THE PIPELINE  
4. EXP-SKEPTIC-V1 + Why not ready  
5. NEXT MILESTONE / CURRENT BLOCKER  
6. WHAT SHOULD I WATCH?  
7. JEV ROLE EVALUATION (gated; compact)  
8. LATEST FINDS (secondary, expandable)  
9. Collapsible: Information Arrival, Evidence & Campaign, Scientific Health, Experiments, System Health, Recent Activity, Technical Details  

---

## 5. Data sources for every headline metric

| Metric | Source |
|--------|--------|
| PRIMARY | `promotion` / primary count = PRIMARY_PROSPECTIVE not excluded |
| VERIFIED | SELECT count PRIMARY_PROSPECTIVE + VERIFIED |
| OUTCOME COMPLETE | `outcome_row_for_event.complete` over all primary (not finds[:50]) |
| INFORMATION VALUE | `information_value_snapshots.gate_status` via existing promotion readonly |
| Pipeline T0/T1H/T24H/T48H | Outcome cell == SUCCESS counts |
| T+6H | **NOT YET MEASURABLE** — absent from `HORIZON_OFFSETS_SEC` |
| EXPERIMENT EVALUABLE | Floor = outcome-complete count (necessary for EXP-SKEPTIC-V1); population readiness separate |
| Readiness / why not ready | Existing readiness snapshot + `phase1h.readiness_progress` |
| JEV experiments | Phase 1J-B panel + `experiment_definitions` / evaluations count |
| Heartbeat | `research_loop_state` (ACTIVE / STALE / STOPPED / UNKNOWN) |

No scientific thresholds invented. No browser-side science.

---

## 6. Pipeline progress implementation

Server module: `phase1/control_room/v3_progress.py` → `compute_horizon_progress` / `build_v3_scientific_progress`.

Rendered as vertical (mobile) / horizontal wrap (desktop) stages with real counts.

---

## 7. Readiness / blocker presentation

EXP-SKEPTIC-V1 shows **NOT READY** or **READY FOR HUMAN REVIEW** only — never READY TO EXECUTE.

Why-not-ready items are humanized labels from the authoritative reason list, with technical identifiers retained in disclosure where available.

---

## 8. Next-milestone logic

Deterministic priority (no coin ranking):

1. If outcome_complete == 0 → milestone = accumulate outcome-complete events; blocker = outcome-completeness reason  
2. Else if IV starts with INSUFFICIENT → IV becoming measurable  
3. Else first remaining readiness blocker → READY FOR HUMAN REVIEW  
4. If already READY FOR HUMAN REVIEW → human authorisation (still not READY_TO_EXECUTE)

---

## 9. JEV role evaluation presentation

Below population/progress/readiness:

- JEV = GATED  
- Final Synthesis / Research Director: REGISTERED / NOT_READY  
- Autopsy: NOT_READY  
- Concise blocker from Phase 1J-B panel  

No buy/sell/confidence/signal UI.

---

## 10. Latest-finds redesign

- Title: LATEST FINDS  
- Position: below operational picture  
- Rows: expandable `<details>` with name, symbol, short mint, age; expanded: status, maturity, evidence state, outcome  
- Link to event detail  
- Sorted by T0 DESC only — **not ranked**

---

## 11. Event detail redesign

Existing detail page retained; added `experiment_eligibility` block (outcome_complete / primary_prospective / note that population readiness is separate). Technical IDs remain in detail, not the main list.

---

## 12. Mobile UX

- No horizontal scroll intent  
- First viewport: status, 4 cards, pipeline, readiness, next milestone  
- Finds compact + expand on tap  
- Disclosures collapsed by default  
- Touch-friendly summary targets  

---

## 13. Desktop UX

- Two-column layout: pipeline left; readiness/milestone/watch right  
- Finds in two columns  
- Horizon breakdown four-up  
- Same facts as mobile  

---

## 14. Refresh behaviour

- Poll interval unchanged: **12s** (`POLL_INTERVAL_SEC`)  
- `/api/dashboard` JSON refresh  
- Counters / finds / readiness / heartbeat update from server  
- No client-side fake counters  

---

## 15. Security validation

- Read-only DB access preserved  
- GET/HEAD dashboard APIs only  
- No new write / execute / trade routes  
- Secrets not exposed  
- Only Control Room process restarted (accumulation left running)  

---

## 16. Scientific-integrity validation

| Check | Result |
|-------|--------|
| G1 / H1 / EXP-SKEPTIC-V1 unchanged | ✓ |
| No new thresholds / scores / coin ranking | ✓ |
| NULL/MISSED/SOURCE_FAIL ≠ 0 | ✓ |
| T+6H not invented | ✓ NOT YET MEASURABLE |
| JEV/Skeptic/Policy/Paper/Live GATED | ✓ |
| No experiment execution | ✓ |

---

## 17. Tests

| Suite | Result |
|-------|--------|
| `tests/test_phase1k_control_room_v3.py` | 12 passed |
| Full `tests/` | **382 passed** |

Coverage: primary/verified/outcome-complete/IV, pipeline (incl. T+6H), readiness blockers, next milestone, JEV status, heartbeat states, NULL vs zero, no ranking, no buy/sell, readonly routes, HTML hierarchy, poll interval.

---

## 18. Live validation

| Check | Observed |
|-------|----------|
| Control Room HTTP | 200 |
| Version | `blob-desk-control-room-v3` |
| running_label | ACTIVE |
| PRIMARY / VERIFIED / COMPLETE / IV | 43 / 43 / 0 / INSUFFICIENT_DATA |
| Pipeline | PRIMARY 43 → … → T+6H NOT YET MEASURABLE → … → OUTCOME COMPLETE 0 |
| Milestone / blocker | outcome-complete accumulation / outcome completeness too low |
| Synthetic primary | 0 |
| Paper fills | 0 |
| Gates | all GATED |
| Finds list | present, secondary |

---

## 19. Accumulation continuity

| Item | Status |
|------|--------|
| tmux `blob-desk-accum` | running |
| Loop heartbeat | fresh / ACTIVE |
| Paid APIs / trading | none |
| CR restart only | yes |

---

## 20. Project isolation audit

| Check | Result |
|-------|--------|
| Blob Desk only | PASS |
| ASKU / Football Picks / FootyFrog / OpenClaw | not modified |
| ASKU_JEV_* ignored | PASS (no CR references) |
| Unrelated services | untouched |

---

## 21. Screenshots / UI evidence

Representative live API evidence (validation time):

- Version v3, ACTIVE, PRIMARY=43  
- Pipeline stages with T+6H = NOT YET MEASURABLE  
- Milestone + humanized blockers rendered from `/api/dashboard`  
- HTML contains PROGRESS THROUGH THE PIPELINE, NEXT MILESTONE, WHAT SHOULD I WATCH?, LATEST FINDS  

(Operator UI at `http://76.13.253.14:8097`.)

---

## 22. Exact current live state

| Field | Value |
|-------|-------|
| SYSTEM_MODE | EVIDENCE_ONLY |
| Heartbeat | ACTIVE |
| PRIMARY_N | 43 |
| VERIFIED (primary) | 43 |
| OUTCOME_COMPLETE | 0 |
| INFORMATION_VALUE | INSUFFICIENT_DATA |
| EXP-SKEPTIC-V1 | NOT READY |
| JEV / Skeptic / Policy / Paper / Live | GATED |
| EXP-JEV-* evaluations | 0 |

---

## 23. Limitations

- T+6H cannot be shown as a real count — not in frozen science.  
- T0 cells are currently largely MISSED — pipeline SUCCESS counts are honestly 0.  
- EXPERIMENT EVALUABLE uses outcome-complete as a necessary floor; population READY_FOR_HUMAN_REVIEW remains a separate gate.  
- Finds page still caps list rendering at 50 newest (PRIMARY may exceed that as N grows; headline counts remain full-population).  
- Social linkage and other readiness blockers remain real; milestone prioritises outcome-complete when that count is 0.

---

## 24. Exact next milestone

**Accumulate outcome-complete events (T0 SUCCESS + T24H SUCCESS).**

Current blocker: almost no events have complete T0+T24H outcomes.

What to watch: events reaching T+24H/T+48H, outcome completion rising from 0, Information Value leaving INSUFFICIENT_DATA, EXP-SKEPTIC-V1 readiness, T0 observation quality (MISSED ≠ zero).

---

## Package map

```
phase1/control_room/
  v3_progress.py          authoritative progress / milestone / watch
  services.py             V3 payload + corrected VERIFIED/COMPLETE counts + heartbeat UNKNOWN
  templates/dashboard.html  V3 hierarchy
  static/control-room.js    V3 renderers
  static/control-room.css   mobile/desktop V3 layout
  __init__.py               CONTROL_ROOM_VERSION = v3
```

---

## Clickable Markdown copy page (follow-up)

Operator can open the Phase 1K report as Markdown and copy it in one tap:

| Link | Purpose |
|------|---------|
| `http://76.13.253.14:8097/report` | HTML page with full MD + **Copy report** button |
| `http://76.13.253.14:8097/report/phase1k.md` | Raw `.md` (inline download/open) |
| Dashboard header/footer | `Report · MD` / `Phase report (copy)` |

Implementation (read-only; no science change): `phase1/control_room/reports.py`, `/report` routes in `app.py`, `templates/report.html`.

---

## Final state checklist

| Requirement | Met |
|-------------|-----|
| Operator sees progress without scrolling finds | ✓ |
| Headline numbers unambiguous | ✓ |
| Pipeline from real science | ✓ |
| T+6H NOT YET MEASURABLE | ✓ |
| Readiness authoritative | ✓ |
| No READY_TO_EXECUTE | ✓ |
| JEV does not dominate | ✓ |
| No buy/sell/ranking | ✓ |
| Science unchanged | ✓ |
| Accumulation ACTIVE | ✓ |
| Clickable MD opens to copy | ✓ |
| Tests green | ✓ |