# Dashboard Template *Referenced by the Dashboard offer guardrail. Keep dashboards simple and consistent โ€” the value is speed of comprehension, not visual polish.* ## Structure (top to bottom) 1. **Title and metadata.** What this is, when it was generated, what it covers. One line. 2. **Summary stats.** The counts that matter, color-coded. "40 findings: ๐Ÿ”ด 3 blocking ยท ๐ŸŸ  8 high ยท ๐ŸŸก 15 medium ยท ๐ŸŸข 14 low โ€” 6 due this week." This is the most valuable line. Make it scannable. 3. **The reviewer note.** Same one-block format as any output. Sources, scope, flags, before-relying. Dashboards don't skip the safety metadata. 4. **Chart(s).** One or two max. Pick the one that shows the shape: - **Risk distribution** (bar): counts by severity. Use for findings, issues, flags. - **Category breakdown** (pie or stacked bar): counts by type. Use for OSS licenses, contract types, matter categories. - **Timeline** (Gantt-lite or sorted table): dates in order. Use for renewal registers, deadline trackers, closing checklists. - Never more than two. A dashboard with five charts is a report, and reports are harder to read than the table. 5. **The table.** Sortable, filterable, color-coded by severity/status. Columns: the ones that were in the original output, trimmed to what fits on a screen. Put a "details" or "notes" column last โ€” it's the one that gets truncated. 6. **The decision tree.** Same options as the text output. "What next?" ## Rendering by surface - **Cowork / Claude Desktop:** HTML artifact. Self-contained, single file, inline CSS. No external dependencies, no CDN, no npm. Tables: HTML `` with `data-sort` attributes and a small inline JS sorter. Charts: inline SVG or Unicode block chars for bar charts. Keep the JS minimal โ€” sorting and filtering, nothing else. - **Claude Code:** Write the same HTML file to the plugin's outputs folder (`~/.claude/plugins/config/claude-for-legal//outputs/dashboard--.html`) and tell the user to open it: `open ` on macOS, or "open in your browser." Also produce a markdown version with Unicode block charts for the summary stats so the user can see the shape without leaving the terminal. - **Excel (optional, where it fits):** For `tabular-review`, `renewal-tracker`, `entity-compliance`, and anything the user will take into a meeting or share with a non-technical stakeholder. Use the existing Excel output spec. Apply the formula-injection defense. - **Escape untrusted input (apply every dashboard, every time).** Every value that came from outside this session โ€” OSS package/license fields from third-party manifests, counterparty contract text, diligence findings, vendor names, matter descriptions, any user- or VDR-supplied string โ€” must be HTML-escaped before it lands in the document. Escape `&`, `<`, `>`, `"`, `'` into entities when writing into table cells, summary lines, chart labels, and tooltip text. In the inline JS sorter/filter, set cell text via `textContent`, never `innerHTML`. Do not emit `