From 0251c65b9648008ee6f4113ad3aaf009067b3dcf Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Mon, 1 Jun 2026 14:29:37 +0200 Subject: [PATCH] feat(wiki): surface D-237 specialization fields in the system infobox generate_infobox() now renders economic_specialization (Specialization) and cultural_specialization (Cultural Register) as read-only infobox rows when authored (NULL = omitted, falls to heuristic). dominant_faction already showed via Governance. Makes the authored generator-input values visible on the wiki face so the #1016 content pass output renders. Verified: Ran shows 'breadbasket'/'agrarian'; unauthored systems omit the rows. Co-Authored-By: Claude Opus 4.8 (1M context) --- tooling/db/wiki_sync.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tooling/db/wiki_sync.py b/tooling/db/wiki_sync.py index dfe069ac6..12a03c6b2 100755 --- a/tooling/db/wiki_sync.py +++ b/tooling/db/wiki_sync.py @@ -451,6 +451,16 @@ def generate_infobox(conn, sid: str) -> str: lines.append(f"| **Population** | {pop} |") lines.append(f"| **Economy** | {tier} · {base} |") + # Specialization (D-237 authored layer) — surface the generator-input enums + # on the wiki face. NULL = unauthored (heuristic fallback / corridor default). + if e: + es = e["economic_specialization"] if "economic_specialization" in e.keys() else None + cs = e["cultural_specialization"] if "cultural_specialization" in e.keys() else None + if es: + lines.append(f"| **Specialization** | {es} |") + if cs: + lines.append(f"| **Cultural Register** | {cs} |") + # Governance if f and (f["governance_type"] or f["dominant_faction"]): gov = f["governance_type"] or "~"