EA Workbook Delivery Contract — universal Tableau output rule via Desktop hop

Decision

All EA-delivered Tableau workbooks (revamps, new builds, exports, transforms, palette swaps, connection rotations) MUST land at /root/aj-ea/outputs/data/<name>.twbx self-contained (extract bundled via download_workbook(include_extract=True)), XML+ZIP validated, md5-stamped. Operator handoff = AJ does ONLY 2 actions: download from files.arjtech.in + open in Tableau Desktop → Server → Publish Workbook. Canonical home: tableau-twbx skill § “EA Workbook Delivery Contract — UNIVERSAL standing rule” with Build Flows A (transform), B (new build via Tier-3 + export), C (bundle-only). Orchestrator (tableau skill) carries the high-level rules + cross-tier scope; sub-skill carries detailed mechanics — single canonical home, zero scattered docs.

Rationale

Tableau Cloud REST API has no path to attach a saved-credential by UUID at publish time (Tableau platform limit, no upstream fix planned). Every Runwal workbook on subodhrunwalgroup uses Snowflake keypair auth → direct MCP publish AND Web UI upload BOTH fail with 403132 — failed to establish connection to your datasource. Desktop publish is the ONLY autonomous-up-to-2-clicks path because Desktop attaches the operator’s locally-bound credential at publish time. Embedding the contract at the orchestrator level (not just sub-skill or SOP) ensures EVERY Tableau task — Tier 1 / Tier 2 / Tier 3 / hybrid — funnels into the same delivery shape. Skill folder placement guarantees auto-load on every Tableau-keyword session; no SOP to forget.

Alternatives Rejected

REJECTED — narrow SOP scoped to ‘brand republish’ only: too narrow, AJ’s directive was universal coverage. REJECTED — EA memory entry only: not auto-loaded, and dev/CIOS agents wouldn’t see it. REJECTED — wait for cli-anything-tableau-twbx workbook deliver CLI (dev-queue): blocks all current work; the CLI is a future-state collapse of the deterministic 8 steps, but the skill-codified contract is the durable knowledge layer. CHOSEN — orchestrator pointer + sub-skill canonical mechanics: single source of truth, auto-loaded on every Tableau task, applies cross-tier, zero scattered redundant docs.

Outcome

Pending