Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/twells89/sigma-migration-skillsnpx agentmods add skills/twells89/sigma-migration-skills/tableau-to-sigmaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/twells89/sigma-migration-skills/tableau-to-sigma)<a href="https://agentmods.dev/skills/twells89/sigma-migration-skills/tableau-to-sigma"><img src="https://agentmods.dev/badge/skills/twells89/sigma-migration-skills/tableau-to-sigma/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/twells89/sigma-migration-skills/tableau-to-sigma"><img src="https://agentmods.dev/badge/skills/twells89/sigma-migration-skills/tableau-to-sigma.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.05489 |
| Opus 5 | $0.00039 | $0.02745 |
| Sonnet 5 | $0.00015 | $0.01098 |
| Haiku 4.5 | $0.00008 | $0.00549 |
Grade A, and why
tableau-to-sigma scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
> **⛔ NEVER hand-roll a signin `curl` — for Sigma OR Tableau.** The scripts How it starts
The opening of the file, as written. The whole thing — 306 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Tableau → Sigma Conversion
⛔ STEP 0 — MANDATORY environment bootstrap (before any other step)
On the first run on a machine, run the ONE bootstrap command — idempotent, non-interactive, no admin, never echoes credentials:
- macOS / Linux / Git Bash:
bash scripts/bootstrap.sh --workdir <WORK>- Windows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts\bootstrap.ps1 -WorkDir <WORK>It resolves a supported runtime profile from
runtime-capabilities.json, installs only that profile's missing dependencies (user-scoped, never admin), persists credentials with the matching setup script, ends in a doctor run (doctor.json), and writes the bootstrap sentinel (bootstrap.json). Both orchestrators REFUSE to start without sentinel + doctor-green. NEVER hand-install a runtime or edit PATH yourself — if bootstrap reports no admin-free route, surface its message to the user and stop. Dry run:--check/-Check. Details:refs/environment.md.
⛔ STEP 1 — THE ONE PATH (a single entry point; do not improvise one)
After the bootstrap, always run the orchestrator — it chains every phase in one process and self-gates:
# Use the entrypoint selected in doctor.json: ruby scripts/migrate-tableau.rb --workbook "<name>" --connection <id> # or, when selectedProfile=python: python3 scripts/migrate-tableau.py --workbook "<name>" --connection <id> …
- Pass the Tableau
/#/views/…share URL straight to--workbook(quote it). The orchestrator resolves the workbook LUID from the URL'scontentUrlslug in process. Display names diverge from slugs, so never hand-rollname:eq:filters or page the workbook list — that field-cost a 500-workbook scan. Give it the URL.- Flag cheatsheet — use the EXACT flags for the selected entrypoint:
migrate-tableau.rb --out DIR(the workdir flag is--out, not--workdir);migrate-tableau.py --out DIRuses the same workdir flag;validate-spec.rb <spec.json> --type dm|workbook(spec is a positional arg, no--spec);put-layout.rb --workbook ID(not--workbook-id), readingSIGMA_API_TOKENfrom the env.- Do NOT hand-drive the per-phase scripts or hand-author DM/workbook JSON UNLESS an orchestrator STOP explicitly routes you there (e.g. "CONVERTER STOP", the exit-4 handoff). The script map is not a menu — à-la-carte scripts are the #1 way runs go inconsistent.
- "Done" is not something you decide — it is a file on disk. The migration is complete only when the selected runtime's completion gate (
verify-complete.rborverify-complete.py) exits 0 / prints ✅ DONE. A clean PASS 1 (exit 12) is NOT done — it means "run--finalize". Never report success or write a completion summary before. Completion also requires complete accounting: every formula informula-audit.jsonand every object insource-object-census.jsonhas one terminal disposition inMIGRATION_REPORT.md/migration-result.json.- This is a PRODUCTION migration, not a demo. The bar is EXACT parity against the same warehouse, always. At a wall: follow the printed STOP/handoff, or surface the blocker plainly and stop — NEVER a third "lighter/simplified" path; only the user may descope. Verbatim rule:
refs/operating-contract.md§Never negotiate fidelity down.- An orchestrator STOP is an instruction to YOU (the agent), not a handoff to a human — keep going. A routing exit authorizes you to do the next step yourself and re-enter the gated spine; the only finish line is
verify-complete.rbexit 0. Verbatim rule:refs/gates.md.- At the exit-4 handoff, PATCH the auto-built
<WORK>/wb-spec.json— do NOT rewrite it (a from-scratch rewrite drifts controlIds and fails control-lint wholesale — the #1 way this handoff spirals; prefer--master-colfor master-level calcs). Full handoff discipline:refs/gates.md§Exit-4.- Credentials: the orchestrator stops at step 0 telling you to run the selected runtime's
scripts/setup.rborscripts/setup.pyonce — do that rather than working around auth (refs/environment.md§Credentials).
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .gitignore 1.7 KB
- converter/PROVENANCE.json 51 KB
- converter/tableau.mjs 343 KB runs code
- learned/starter-rules.yaml 6.2 KB
- MIGRATION_REQUEST.md 3.2 KB
- PYTHON_RUNTIME.md 3.3 KB
- QUICKSTART.md 34 KB
- refs/app-recommendation-signals.md 3.1 KB
- refs/blending.md 4.5 KB
- refs/blind-grader-brief.md 6.7 KB
- refs/chart-patterns.md 22 KB
- refs/column-gotchas.md 14 KB
- refs/composition-recipe.md 10 KB
- refs/control-parity.md 9.9 KB
- refs/coverage-manifest.json 24 KB
- refs/coverage-matrix.md 15 KB
- refs/data-model-spec.md 12 KB
- refs/element-kinds.md 28 KB
- refs/environment.md 14 KB
- refs/extract-landing.md 5.7 KB
- refs/fidelity-recipes.md 30 KB
- refs/fidelity-rubric.md 4.7 KB
- refs/functions.json 59 KB
- refs/gates.md 10 KB
- refs/ground-truth-oracle.md 10 KB
- refs/layout-grid.md 14 KB
- refs/layout-visual-qa.md 19 KB
- refs/migration-report-format.md 5.9 KB
- refs/model-fit.md 5.4 KB
- refs/modeling-strategy.md 6.7 KB
- refs/multi-datasource.md 10 KB
- refs/object-model.md 8.3 KB
- refs/open-items.md 4.4 KB
- refs/operating-contract.md 10 KB
- refs/orchestration.md 19 KB
- refs/performance.md 23 KB
- refs/phase-0-scope.md 11 KB
- refs/phase-1_5-dm-reuse.md 3.9 KB
- refs/phase-1-discover.md 31 KB
- refs/phase-2-columns-filters.md 12 KB
- refs/phase-3-datamodel.md 20 KB
- refs/phase-4-post-dm.md 835 B
- refs/phase-5-workbook.md 23 KB
- refs/phase-5g-rcf.md 5.5 KB
- refs/phase-6-parity.md 31 KB
- refs/phase-e-enhance.md 12 KB
- refs/postpublish-interactivity.md 5.7 KB
- refs/script-map.md 47 KB
- refs/security-rls.md 5.7 KB
- refs/source-anchors.md 12 KB
- refs/story-points.md 3.6 KB
- refs/tableau-rest.md 15 KB
- refs/troubleshooting.md 8.3 KB
- refs/twb-zone-mapping.md 8.6 KB
- refs/visual-similarity.md 5.0 KB
- refs/window-functions.md 12 KB
- refs/workbook-code-release-gaps.md 2.9 KB
- refs/workbook-layout.md 2.1 KB
- refs/workbook-reader-classification.json 4.1 KB
- runtime-capabilities.json 800 B
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago Changed · +18 lines · +3 tokens per session 3f84cf4c1840
- 12d ago First seen · 288 lines · 74 tokens per session scan A bf6fa52b0a6c
tableau-to-sigma is a skill published in the GitHub repository twells89/sigma-migration-skills (16 stars, last pushed yesterday), licensed MIT. It adds 77 tokens to every session and 5,489 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…