"""Page 2: Knowledge Health — "What do we know and how good is it?" Renders: claims by domain, Herfindahl index, evidence freshness, orphan ratio, link density, confidence distribution, extraction yield. Data sources: /api/vital-signs, /api/herfindahl, /api/extraction-yield-by-domain, /api/domains, claim-index (cached). """ import json from datetime import datetime from shared_ui import render_page def render_health_page(vital_signs: dict, domain_breakdown: dict, now: datetime) -> str: """Render the Knowledge Health page.""" # --- Vital signs data --- vs_orphan = vital_signs.get("orphan_ratio", {}) orphan_ratio_val = vs_orphan.get("ratio") orphan_color = {"healthy": "green", "warning": "yellow", "critical": "red"}.get(vs_orphan.get("status", ""), "") orphan_display = f"{orphan_ratio_val:.1%}" if orphan_ratio_val is not None else "—" vs_linkage = vital_signs.get("linkage_density") or {} linkage_display = f'{vs_linkage.get("avg_outgoing_links", "—")}' cross_domain_ratio = vs_linkage.get("cross_domain_ratio") cross_domain_color = "green" if cross_domain_ratio and cross_domain_ratio >= 0.15 else ( "yellow" if cross_domain_ratio and cross_domain_ratio >= 0.05 else "red" ) if cross_domain_ratio is not None else "" vs_fresh = vital_signs.get("evidence_freshness") or {} fresh_display = f'{vs_fresh.get("median_age_days", "—")}' if vs_fresh.get("median_age_days") else "—" fresh_pct = vs_fresh.get("fresh_30d_pct", 0) vs_conf = vital_signs.get("confidence_distribution", {}) # Domain activity stagnant = vital_signs.get("domain_activity", {}).get("stagnant", []) active_domains = vital_signs.get("domain_activity", {}).get("active", []) claim_status = vital_signs.get("claim_index_status", "unavailable") # Domain breakdown table domain_rows = "" for domain, stats in sorted(domain_breakdown.items(), key=lambda x: x[1].get("knowledge_prs", 0), reverse=True): if stats.get("knowledge_prs", 0) > 0: top_contribs = ", ".join(f'{c["handle"]} ({c["claims"]})' for c in stats.get("contributors", [])[:3]) domain_rows += f""" {domain} {stats["knowledge_prs"]} {stats["total_prs"]} {top_contribs} """ body = f"""
Orphan Ratio
{orphan_display}
{vs_orphan.get("count", "?")} / {vs_orphan.get("total", "?")} claims · target <15%
Avg Links/Claim
{linkage_display}
cross-domain: {f"{cross_domain_ratio:.1%}" if cross_domain_ratio is not None else "—"} · target 15-30%
Evidence Freshness
{fresh_display}d median
{vs_fresh.get("fresh_30d_count", "?")} claims <30d old · {fresh_pct:.0f}% fresh
Confidence Spread
{" / ".join(f"{vs_conf.get(k, 0)}" for k in ["proven", "likely", "experimental", "speculative"])}
proven / likely / experimental / speculative
Claim Index
{claim_status}
{vs_orphan.get("total", "?")} claims indexed
Domain Concentration
Loading...
Extraction Yield by Domain
Loading...

Claims by Domain

Confidence Distribution

Contributions by Domain
{domain_rows if domain_rows else ""}
DomainKnowledge PRsTotal PRsTop Contributors
No domain data
{"" if not stagnant else f'''
Stagnation Alerts

Domains with no PR activity in 7 days: {", ".join(stagnant)}

'''} """ scripts = f"""""" return render_page( title="Knowledge Health", subtitle="What do we know and how good is it?", active_path="/health", body_html=body, scripts=scripts, timestamp=now.strftime("%Y-%m-%d %H:%M UTC"), )