# Gemma Tableau

Edit and create Tableau dashboards from Claude Code by editing the underlying workbook XML directly — classic Tableau has no dashboards-as-code, so this plugin's whole job is doing that XML surgery safely and validating it structurally.

## What it does

One skill, `tableau-dashboards`, covers the full lifecycle:

- Triaging a ticket into a pure workbook edit, a dbt-first grain change, or a wrong-numbers debugging problem
- Reading and mapping `.twb`/`.twbx` workbook XML without a full XML library
- Editing calculated fields, parameters, worksheets, and dashboard layouts via anchor-based string edits with count/overlap/well-formedness validation
- Translating Tableau KPI logic into equivalent dbt models, with a two-layer (dev-vs-dev, prod-vs-Tableau) validation rule
- Debugging wrong or missing numbers in Tableau, which is almost always a dbt-side problem rather than a workbook problem

## When it triggers

Automatically, whenever the task involves editing Tableau dashboards, creating worksheets/dashboards/parameters/calculated fields, working with `.twb`/`.twbx` workbook XML, translating a Tableau KPI into dbt, or debugging wrong/missing numbers that show up in Tableau.

## Source

Distilled from five real Claude Code sessions from a client engagement where Tableau dashboards were edited, created, or debugged in production. The patterns, gotchas, and worked example in the skill are drawn directly from those sessions, generalized and stripped of client-specific data.

## A note on verification

Classic Tableau has no programmatic way to confirm a dashboard looks right — no rendering API, no visual diff. Every workflow in this skill ends with the edited workbook handed back for a human to open in Tableau Desktop and check visually. Treat structural validation (XML well-formedness, zip integrity, zone-overlap and replacement-count assertions) as necessary but not sufficient; the human check is the only step that confirms the actual result.
