How ChatGPT decides to render dashboards, charts, and reports
This is a detailed reference of the internal tool and skill instructions that govern how ChatGPT (and the Codex tooling behind it) renders data artifacts — dashboards, reports, charts, and tables. The core workflow is a strict pipeline: validate a manifest and a bounded data snapshot with validate_artifact before ever calling render_artifact, because failed render attempts can leave visible broken placeholder cards in the UI. Snapshots are capped hard (50 datasets, 2,000 rows each, 3MB, 200k inline characters) and must follow a canonical shape, with table-style {columns, rows} objects explicitly rejected. Much of the document is a decision tree for which rendering surface wins — native MCP artifacts first, then hosted Sites deployment via export_artifact_package, with static HTML, images, or plain tables only as progressively degraded fallbacks.
A recurring theme is ‘Work Mode,’ a trusted rendering context in which the model is forbidden from calling render_artifact, render_chart, or render_table because that path can silently drop standalone widgets. The spec is unusually prescriptive about presentation semantics: chart titles must stay neutral and descriptive rather than editorializing a takeaway, a ‘by
The significance is less about any single rule and more about the visibility: this reads like extracted system-level guidance showing how much hidden logic sits between a user’s request and a rendered chart. It exposes the guardrails LLM vendors bake in to avoid broken UI states, misleading visualizations, and leaked internals — the closing lines explicitly bar emitting hidden reasoning, credentials, or secrets. For anyone building agentic or analytics tooling on top of these models, it’s a useful map of the constraints and failure modes the platform is quietly managing.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.