CLM Taxonomy Dashboard — Production UI

Updated 2026-08-15 from Open Brain sync — records the “Why use Data Governance Apps” executive video delivered 2026-08-03 (84-second MP4, 1280×720, H.264/AAC, in OneDrive _ClaudeWorkspace/11 CLM Taxonomy Dashboard/ with storyboard, approach/WBS and gen_video.py regeneration script): regulatory drivers (BCBS 239, DORA, GDPR, EU AI Act) → seven core DG capabilities → Governance Chain → benefits. Decisions: original motion graphics for copyright compliance; Piper neural TTS US voice as approved fallback (British voices unreachable in the build sandbox; re-voicing needs only the tts() function changed) [S-2026-08-03-dg-apps-exec-video]. Attachment of the video to this project is inferred from its folder location [inference]; the Open Brain capture claimed a dedicated project page and two 2025 vendor source pages that do not exist in the vault — flagged in the 2026-08-15 sync report, not backfilled. Updated 2026-07-31 based on S-2026-07-31-weekly-briefing — v4 self-regenerating single-file dashboard built and tested (28 Jul), superseding the v3 sibling-JSON-fetch architecture for locked-down client estates; adds the outstanding Edge browser smoke test as the blocker gating first client publish.

Status: active Started: 2026-07-26 Last touched: 2026-07-31

Why this project exists

To productionise the CLM Taxonomy Dashboard v2 (single self-contained HTML on the 440-term “Second Perspective” glossary) for client deployment per the governed-refresh design note dated 2026-07-26 — so client staff can refresh the published Teams tab from the governed workbook with no Python and no local tooling, while keeping the hard validation gate and an audit trail S-2026-07-26-clm-governed-refresh. This is the interim stopgap before the full production portal described in Taxonomy Knowledge Tool is built.

Current state

  • v4 self-regenerating single-file dashboard built and tested 2026-07-28, superseding v3 for locked-down client estates: the v3 sibling-glossary_data.json fetch failed in the locked-down client environment, so v4 falls back to v2 single-self-contained-HTML packaging (all data embedded, SheetJS 0.18.5 inlined/vendored, no CDN) while keeping the v3 UI. Refresh without Python uses a TiddlyWiki-quine pattern — the steward clicks “Refresh from workbook (XLSX)”, an in-browser converter + validation hard gate (mirrors validate_glossary.py) parses the governed workbook, then “Save refreshed dashboard” swaps the marker-delimited JSON into a pristine boot-time snapshot and downloads a complete regenerated copy for the steward to replace on SharePoint; SharePoint versioning is the rollback. Test result: 38/38 passed under jsdom (boot, valid refresh, save/reopen provenance, byte-stable regeneration across generations, invalid-workbook rejection with live data untouched, cancel paths) [S-2026-07-31-weekly-briefing].
  • A Ringer verified-swarm of five tasks (clm-dashboard-prod-ui, run clm-dashboard-prod-ui-20260727T200325Z-p46269, orchestrated 2026-07-27 by Claude / Fable 5) produced the v3 dashboard, the TypeScript validator + Office Script, the governed-flow documentation, the installation guide and this wiki record. Four of the five tasks PASS their executed checks; one (flow-audit) produced its deliverables but its check initially failed on an over-rigid regex; the corrected check was re-executed post-run against the unmodified artifact and passed — 5/5 verified S-2026-07-26-clm-governed-refresh.
  • Data externalised — the dashboard now fetches a sibling glossary_data.json at load, so a Power Automate flow republishes by rewriting only the JSON; the HTML (and the Teams tab) never changes. The v3 build (build_dashboard_v3.py) keeps the unchanged validate_glossary.py as a mandatory hard gate, stamps meta.built and meta.count, and rejects a template that still carries __DATA__ S-2026-07-26-clm-governed-refresh.
  • Validator ported to TypeScriptvalidateGlossary.ts reproduces every rule and message string of validate_glossary.py (MISSING_FIELD, BAD_ID_FORMAT, EMPTY_DEFINITION, DUPLICATE_ID, ORPHAN_REGTAG, COUNT_MISMATCH); officescript_refresh.ts is the single-file Office Script returning { ok, errors, doc } the flow branches on. Parity verified byte-for-byte across 7 fixtures (1 clean + 6 mutations) S-2026-07-26-clm-governed-refresh.
  • Governed flow documented — manual trigger, “Run script from SharePoint library”, Parse JSON, fail → notify + audit + terminate, approval with requester ≠ approver enforced in-flow, standard SharePoint connector write of glossary_data.json, audit row to a SharePoint list (versioning on, delete off). Three admin toggles and the premium-licensing trap documented for the tenant admin S-2026-07-26-clm-governed-refresh.
  • UI changes applied — demo workflow overlay removed; persona switcher (Business Data Owner / Business User / Credit Risk) removed; Taxonomy Roadmap section removed; provenance banner now rendered from JSON meta; “Awaiting approval” card gains a Download CSV button; Approve-this-term / Request-change now generate mailto: emails with the term details S-2026-07-26-clm-governed-refresh.
  • Installation and operation guide produced (md + docx) covering local install, SharePoint/Teams deployment, governed operation, all six validation failure tokens and the admin-toggles appendix S-2026-07-26-clm-governed-refresh.

Decisions made

  • 2026-07-26Externalise the data (fetch sibling glossary_data.json at load) rather than rebuild the whole HTML in the flow, to keep flow complexity low and the Teams tab stable S-2026-07-26-clm-governed-refresh.
  • 2026-07-26Fallback: if the SharePoint tenant blocks sibling-file fetch, the flow rebuilds the HTML from dashboard_template_v3.html and overwrites in place S-2026-07-26-clm-governed-refresh.
  • 2026-07-26Email / mailto: as the offline approval channel, not server-side write-back — appropriate for the interim serverless, standard-connector architecture; the production portal will enforce approvals server-side S-2026-07-26-clm-governed-refresh.
  • 2026-07-26Manual trigger, not on-modify — an automatic refresh on every save is not governed S-2026-07-26-clm-governed-refresh.
  • 2026-07-26Run script from a SharePoint library, not personal OneDrive — the mechanism must not die with a leaver S-2026-07-26-clm-governed-refresh.
  • 2026-07-26Standard connectors only (SharePoint “Update file”) — no SQL/Dataverse/custom/HTTP, which would flip the flow to premium and require Power Automate Premium for every executing user S-2026-07-26-clm-governed-refresh.
  • 2026-07-27Workflow data is now source-driven, not a demo overlay — v3 renders status, owner and ver from the JSON only; the v2 deterministic demo overlay is gone S-2026-07-26-clm-governed-refresh.
  • 2026-07-28v4 packaging reverts to a single self-contained HTML (embedded data + inlined SheetJS, no sibling fetch, no CDN) after the v3 sibling-JSON fetch failed in the locked-down client estate; the Power Automate governed-refresh flow is repositioned as the upgrade path, not the interim path, and the steward-driven self-regenerating “quine” refresh becomes the interim mechanism [S-2026-07-31-weekly-briefing].
  • 2026-07-28Inline SheetJS over CDN (fully offline) chosen for the locked-down estate [S-2026-07-31-weekly-briefing].

Open questions / blockers

  • 2026-07-28 — v4 Edge browser smoke test outstanding before first client publish. v4 browser fidelity was verified only in jsdom (no Chromium in the build sandbox); a real Edge smoke test of boot, refresh, save-and-reopen and byte-stable regeneration is the single verification gating rollout. Clear it or explicitly hold the publish [S-2026-07-31-weekly-briefing].
  • Published-dashboard demo-overlay decision still live. Whether to keep the workflow-status/owner overlay off for the published Teams tab or make its illustrative-content caveat unmissable — “decide before the first client refresh” — remains an open call for a credit-risk audience, since a governed/audited refresh wrapper around partly illustrative content is a mixed message [S-2026-07-31-weekly-briefing].
  • SharePoint sibling-fetch behaviour must be tested in the client tenant — headers and auth vary by site configuration; untested outside a live tenant. Fallback is template rebuild S-2026-07-26-clm-governed-refresh.
  • Three admin toggles need confirming with the tenant admin — Office Scripts availability / sharing / run-from-Power-Automate; org-wide sharing links; Excel Online connector DLP state S-2026-07-26-clm-governed-refresh.
  • Resolved 2026-07-27: the flow-audit check failure was a defect in the check regex (standard\s+connector required adjacency; the document says “standard SharePoint connector”). The corrected check passed against the unmodified artifact — no editorial fix was needed.
  • The Power Automate flow itself is untested — no live tenant was available; flow documentation marks tenant-dependent specifics “VERIFY-IN-TENANT”.
  • When the production portal (Taxonomy Knowledge Tool) lands, this interim dashboard and its Power Automate refresh are retired in favour of the Node/TS API + server-side approval workflow.

Connected wiki pages

History

  • 2026-08-15 — Monthly Open Brain sync: recorded the 3-Aug “Why use Data Governance Apps” executive video (S-2026-08-03-dg-apps-exec-video, Source page + raw capture backfilled). No prior content changed.
  • 2026-07-28v4 self-regenerating single-file dashboard built and tested (38/38 jsdom checks) after the v3 sibling-JSON fetch failed in the locked-down client estate; reverts to embedded-data + inlined-SheetJS packaging with a TiddlyWiki-quine steward refresh, repositions the Power Automate flow as the upgrade path, and leaves the Edge browser smoke test outstanding before first client publish [S-2026-07-31-weekly-briefing].
  • 2026-07-27 — Five-task Ringer swarm (clm-dashboard-prod-ui) produced the v3 dashboard (externalised JSON fetch, mailto approvals, CSV download, overlay/personas/roadmap removed), TypeScript validator + Office Script (byte-identical parity with Python), governed-flow documentation, installation guide (md + docx) and this wiki record. Four tasks PASS their executed checks; flow-audit initially FAILed on an over-rigid check regex; the corrected check was re-executed post-run and PASSed against the unmodified artifact — 5/5 verified.
  • 2026-07-26 — Governed-refresh design note drafted, setting the externalised-JSON / manual-trigger / four-eyes / audit-trail architecture and the open tenant questions S-2026-07-26-clm-governed-refresh.
  • 2026-07-26 — Dashboard v2 rebuilt on the 440-term dataset with verified data layer and governed refresh pipeline; prior to this productionisation effort S-2026-07-26-clm-dashboard-v2-rebuild.

Sources / notes

  • [S-2026-07-26-clm-governed-refresh] — CLM Dashboard Governed Refresh Design (own-writing, design note).
  • [S-2026-07-26-clm-dashboard-v2-rebuild] — CLM Taxonomy Dashboard v2 rebuild, session record (own-writing).
  • [S-2026-07-31-weekly-briefing] — Weekly Briefing 31 Jul 2026 (own-writing): routed the v4 self-regenerating single-file build, the v4 packaging decisions and the outstanding Edge smoke test into this page.
  • [S-2026-08-03-dg-apps-exec-video] — “Why use Data Governance Apps” executive video delivery record (own-writing; backfilled 2026-08-15 from Open Brain).
  • Run manifest: ~/.ringer/runs/clm-dashboard-prod-ui-20260727T200325Z-p46269.json.
  • Deliverables: ~/.ringer/artifacts/deliverables/clm-dashboard-prod-ui-20260727T200325Z-p46269/.
  • Approach record: _ClaudeWorkspace/11 CLM Taxonomy Dashboard/CLM_Dashboard_Production_UI_Approach_and_Work_Breakdown.md.