twbc¶
twbc is an AI-facing authoring layer for Tableau
workbooks. An agent supplies semantic JSON intent, such as datasources,
fields, calculations, worksheets, dashboard layout, controls, actions, and
formatting. The compiler emits deterministic Tableau workbook XML and packaged
.twbx output for Tableau Desktop 2026.1.
The important boundary is that agents should not need to know Tableau's XML shape. They should describe reusable dashboard semantics. The compiler owns the Tableau-specific column instances, worksheet panes, dashboard zones, packaged assets, and semantic validation needed to make those workbooks load reliably.
Acceptance Model¶
Superstore is the benchmark corpus, not the product. A feature only counts as accepted when all of these are true:
| Requirement | What it means |
|---|---|
| Generic JSON semantics | The JSON surface makes sense for arbitrary dashboards, not just one Superstore sheet. |
| Fixture/test coverage | The feature has positive fixtures, negative validation where relevant, and focused tests or properties. |
| Desktop proof for semantic XML risk | If Tableau Desktop can reject, repair, or silently misrender the XML even after XSD validation, the feature needs focused Desktop evidence. |
| Regression usefulness | Superstore coverage proves the capability is realistic, while fixture names and coverage manifests keep it reusable. |
Start Here¶
| Page | Use it for |
|---|---|
| Configuration JSON | Learn the config shape from copyable examples, organized by feature area. |
| Datasources | Define files, fields, relationships, metadata, filters, and parameters. |
| Worksheets | Build shelves, marks, encodings, filters, titles, captions, and Measure Values views. |
| Dashboards | Compose worksheets, controls, legends, text, images, layout, and sizing. |
| Feature Parity | Current Tableau capability coverage, JSON/compiler surface, status, evidence, and next work. |
| JSON Schema | Where to find the v1 schema and when it is useful to inspect it directly. |
The docs follow the same broad pattern as Starlette's component docs: start with a working example, split features into small pages, and keep reference detail close to the feature it explains.
Local docs loop¶
For a production-style build: