Skip to content

Add resource-catalog-based workbook templating and authoring CLI - #4

Open
jarhun88 wants to merge 2 commits into
mainfrom
twb-templates
Open

Add resource-catalog-based workbook templating and authoring CLI#4
jarhun88 wants to merge 2 commits into
mainfrom
twb-templates

Conversation

@jarhun88

Copy link
Copy Markdown

Summary

  • Adds plugins/tableau/resources/ — a generated catalog (catalog.json) of Tableau bookmark chart templates, worked examples, and reference docs, each classified executable (renderable) or reference (inspiration only)
  • Adds plugins/tableau/scripts/tableau_resources.py — a CLI (list/inspect/instantiate/inject/validate) that discovers, inspects, and safely transforms .twb workbooks against the catalog via text-splice XML edits, self-verified with an expat/ElementTree reparse-and-compare on every edit
  • Adds plugins/tableau/scripts/generate_resource_catalog.py to build the catalog deterministically from the bundled resources
  • Replaces the workbook-authoring skill with a catalog/CLI-driven flow, and adds a tableau-pulse-insights skill scoped to the pulse-insights template family
  • Adds a full unittest suite (216 tests) covering datatype-family rejection, delta-vs-absolute validation, fail-closed paths, and byte-for-byte preservation

Note for reviewers

This branch (twb-templates) diverged from main before main's XSD schemas, tableau-analytics/tableau-content-viewer skills, and render_embed.py work landed, so this PR has merge conflicts in .agents/plugins/marketplace.json, .gitignore, and root README.md that need manual resolution before merge. It does not touch main's schemas/render_embed/reload-plugin work directly, but the two branches represent different designs for workbook authoring (main: download → edit TWB XML by hand → upload/publish; this branch: pick a catalog template → CLI-transform → publish) that should be reconciled rather than both landing independently.

Test plan

  • Resolve conflicts in .agents/plugins/marketplace.json, .gitignore, README.md
  • Decide whether tableau-analytics/tableau-content-viewer (read-only skills on main) should be retained alongside this branch's authoring-focused skills
  • Verify validate-workbook-package's referenced tools (scaffold-data-app, upsert-data-app-files, create-and-publish-workbook) actually exist on the hosted Tableau MCP server's mcp-apps/authoring tool group
  • python3 -m unittest discover — 216 tests pass (lxml/pytest unavailable in review environment, but suite uses plain unittest, not pytest-specific features)

joeconstantino and others added 2 commits August 19, 2026 10:24
Resolves conflicts by keeping both workbook-authoring approaches as
separate skills: tableau-workbook-templating (catalog/CLI-driven, from
this branch) and tableau-workbook-authoring (hand-edit-XML, from main),
with tableau-workbook-authoring preferred as the fallback when the
catalog doesn't cover a request. Updates all cross-references (pulse
insights, validate-workbook-package, content-viewer, analytics, shared
rendering doc, both READMEs) and renames the CLI test file's skill
references accordingly.

Also fixes plugins/tableau/.mcp.json, which auto-merged to a broken
state combining main's http:// (not https://) URL regression with an
unrelated uncommitted tableau-test-dataplane3 scratch entry that was
sitting in the working tree — restored to the documented
https://mcp.tableau.com/tableau-mcp with no extra entries.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants