{"ok":true,"request_id":"3aaffac7-b243-4e0f-aeeb-2ffca6786f67","service":"twincity-ui","status":"ok","generated_at":"2026-06-16T17:24:20.480Z","mode":"demo-first","headline":"Control tower status summary that keeps ingest mode, export contract, and operator proof visible before deep-dive debugging.","readiness_contract":"control-tower-runtime-brief-v1","live_sources":{"ws":false,"sse":false,"http":false,"poll_ms":5000},"diagnostics":{"ingest_mode":"demo","live_source_count":0,"next_action":"Configure NEXT_PUBLIC_EVENT_WS_URL, NEXT_PUBLIC_EVENT_STREAM_URL, or NEXT_PUBLIC_EVENT_API_URL."},"report_contract":{"schema":"twincity-report-v1","version":1,"required_sections":["time_range","summary","sla","top_types","top_zones","open_incidents","operator_notes"],"export_formats":["json","csv","reviewer-bundle","clipboard-summary"],"operator_rules":["Always separate ACK SLA from resolve SLA.","Every summary must trace back to normalized EventItem data and timeline events.","Do not claim live integration unless a transport endpoint is configured and healthy."]},"evidence_counts":{"routes":15,"docs":5,"tests":5,"assets":2},"review_flow":["Open /api/health to confirm ingest mode and review links.","Read /api/meta to see trust boundary, stages, and evidence counts.","Use /api/reports/summary to verify a deterministic SLA snapshot before UI review.","Use /api/reports/dispatch-board to isolate attention and dispatch lanes before opening exports.","Use /api/reports/assignment-history to verify current owner and handoff chain before shift changes.","Use /api/reports/handoff to verify the next-shift digest before copying or exporting reviewer artifacts.","Use /api/reports/response-playbook to review escalation drills, checkpoint timing, and reviewer-safe action gates.","Use /api/reports/export to validate server-generated JSON or CSV handoff payloads.","Use /api/reports/reviewer-bundle when a reviewer needs a digest-backed export bundle.","Use /events or / to exercise triage and timeline handling.","Open /reports for SLA proof and exported summary paths."],"two_minute_review":["Open /api/health to confirm whether the control tower is demo-first or live-wired.","Read /api/meta for trust boundary, stage ownership, and review artifacts.","Use /api/reports/summary to validate spotlight incidents and SLA posture via API.","Use /api/reports/dispatch-board to confirm unresolved queue posture and latest action lanes.","Use /api/reports/assignment-history to confirm queue owner and operator handoff lineage.","Use /api/reports/handoff to confirm the top next-shift priorities and overdue queue risk.","Use /api/reports/response-playbook to confirm who escalates next and when the next checkpoint should happen.","Use /api/reports/export to validate server-side handoff payloads before sharing a report.","Use /api/reports/reviewer-bundle/verify to confirm bundle integrity before external handoff.","Open /reports to validate SLA proof and export posture.","Use /events to inspect one alert through triage, dispatch, and timeline state."],"watchouts":["Demo mode can hide auth, backpressure, and noisy provider payloads.","Reports currently summarize browser-local state, not a central incident store.","3D validation routes are for geometry checks, not production rendering."],"proof_assets":[{"label":"Proof Route Map","href":"/api/proof-route-map","kind":"route","note":"front-door route chooser for reviewer proof order"},{"label":"Health API","href":"/api/health","kind":"route","note":"ingest mode, readiness, review links"},{"label":"Service Meta","href":"/api/meta","kind":"route","note":"control tower posture and trust boundary"},{"label":"Runtime Scorecard","href":"/api/runtime-scorecard","kind":"route","note":"ingest posture, export auth, and SLA snapshot in one compact contract"},{"label":"Report Summary API","href":"/api/reports/summary","kind":"route","note":"deterministic SLA and spotlight summary contract"},{"label":"Dispatch Board API","href":"/api/reports/dispatch-board","kind":"route","note":"attention / dispatch / resolved queue snapshot for reviewers"},{"label":"Assignment History API","href":"/api/reports/assignment-history","kind":"route","note":"operator ownership and handoff chain for reviewer-safe shift transfer"},{"label":"Shift Handoff API","href":"/api/reports/handoff","kind":"route","note":"deterministic shift handoff digest with overdue queue risk"},{"label":"Response Playbook API","href":"/api/reports/response-playbook","kind":"route","note":"response drills, escalation gates, and next checkpoints for active incidents"},{"label":"Report Export API","href":"/api/reports/export","kind":"route","note":"server-generated JSON and CSV report snapshots"},{"label":"Reviewer Bundle API","href":"/api/reports/reviewer-bundle","kind":"route","note":"digest-backed reviewer handoff bundle for export-safe review"},{"label":"Portfolio Review Guide","href":"docs/PORTFOLIO_REVIEW_GUIDE.md","kind":"doc","note":"2-minute reviewer path and role-fit evidence map"},{"label":"Runtime Route Tests","href":"tests/runtimeRoutes.test.ts","kind":"test","note":"route contract verification"},{"label":"Ops Console Screenshot","href":"public/screenshots/ops_console.png","kind":"asset","note":"reviewable operator UI proof"}],"route_count":17,"links":{"health":"/api/health","runtime_brief":"/api/runtime-brief","runtime_scorecard":"/api/runtime-scorecard","meta":"/api/meta","report_schema":"/api/schema/report","report_summary":"/api/reports/summary","dispatch_board":"/api/reports/dispatch-board","assignment_history":"/api/reports/assignment-history","report_handoff":"/api/reports/handoff","response_playbook":"/api/reports/response-playbook","report_export":"/api/reports/export","reviewer_bundle":"/api/reports/reviewer-bundle","reviewer_bundle_verify":"/api/reports/reviewer-bundle/verify","reports":"/reports"}}