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/microstrategy-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/microstrategy-to-sigma)<a href="https://agentmods.dev/skills/twells89/sigma-migration-skills/microstrategy-to-sigma"><img src="https://agentmods.dev/badge/skills/twells89/sigma-migration-skills/microstrategy-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/microstrategy-to-sigma"><img src="https://agentmods.dev/badge/skills/twells89/sigma-migration-skills/microstrategy-to-sigma.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00107 | $0.08585 |
| Opus 5 | $0.00053 | $0.04293 |
| Sonnet 5 | $0.00021 | $0.01717 |
| Haiku 4.5 | $0.00011 | $0.00859 |
Grade B, and why
microstrategy-to-sigma scanned grade B with 2 findings 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 12d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
both `~/.claude/settings.json` and `~/.sigma-migration/env`, so `get-token.sh` Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
> - **NEVER hand-author a DM/workbook JSON and `curl`-POST it, and never ship empty How it starts
The opening of the file, as written. The whole thing — 526 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MicroStrategy → Sigma migration
Windows / first run — run the environment doctor before anything else:
bash scripts/doctor.sh(macOS/Linux/Git Bash) orpowershell -ExecutionPolicy Bypass -File scripts\doctor.ps1(Windows). It checks Ruby/Python/Node/bash and flags the Python "Store stub" + CRLF with exact fixes. Details:refs/environment.md.
⛔ THE ONE PATH (do not ship an unverified/empty workbook)
Convert with
convert.py, POST its specs, then verify withverify_parity.py. Rules:
- NEVER hand-author a DM/workbook JSON and
curl-POST it, and never ship empty "placeholder" pages. Post only whatconvert.pyproduces. If MicroStrategy is unreachable (no session), STOP and tell the user to authenticate — don't build a shell.verify_parity.pymust be GREEN with REAL reports before you're done. It now refuses a vacuous pass — anexpected_parity.jsonwith 0 reports is "NOT parity-clean" (exit 1), never a silent green. An empty/placeholder workbook is never done.
Preflight the workbook spec before POST (mandatory)
Before POSTing any workbook spec, run both validators:
ruby scripts/lib/preflight_lint.rb <spec.json>catches grouping and control grammar failures.- From the companion
sigma-workbooksskill, run./scripts/validate-spec.sh <absolute-spec-path>to reject bare source-column self-references and list/segmented controls without a value-listsource.
The API accepts a filters-only list control, but the picker is empty: filters names what changes; source supplies the values a user can select. API acceptance is not a shipping criterion. Date-range controls are different and correctly use filters without a separate value-list source. Fix every violation first — never POST past it, and never conclude a feature is "unsupported" from an Invalid kind error (it means the inner fields are wrong). Verified shapes: sigma-workbooks controls.md / tables.md.
Converter architecture (read if you know the other migration skills)
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.
- fixtures/ae_winners.json 613 B
- fixtures/build_schema.py 7.1 KB runs code
- fixtures/BUILD_SPEC.md 3.7 KB
- fixtures/bundle-charts.json 131 KB
- fixtures/bundle.json 107 KB
- fixtures/datamodel_definition.json 81 KB
- fixtures/dossier_definition.json 8.1 KB
- fixtures/expected_parity.json 7.6 KB
- QUICKSTART.md 5.6 KB
- refs/ae-row-collapse.md 2.5 KB
- refs/app-recommendation-signals.md 3.1 KB
- refs/catalogs/aggregation.json 2.6 KB
- refs/catalogs/control.json 2.3 KB
- refs/catalogs/number-format.json 3.1 KB
- refs/catalogs/viz-kind.json 6.3 KB
- refs/catalogs/workbook-feature.json 6.3 KB
- refs/control-parity.md 9.9 KB
- refs/datamodels.md 3.2 KB
- refs/design-notes.md 5.2 KB
- refs/environment.md 5.7 KB
- refs/layout-visual-qa.md 19 KB
- refs/microstrategy-coverage.md 16 KB
- refs/modeling-strategy.md 6.7 KB
- refs/mstr-rest-api.md 6.1 KB
- refs/operating-contract.md 2.9 KB
- refs/path-b-rehost.md 14 KB
- refs/phase-e-enhance.md 12 KB
- refs/plugin-tier.md 4.9 KB
- refs/source-anchors.md 12 KB
- refs/visual-similarity.md 5.0 KB
- refs/viz-type-mapping.md 8.0 KB
- schemas/app-plan.schema.json 3.0 KB
- scripts/assert-phase6-ran.rb 254 KB runs code
- scripts/bootstrap.ps1 41 KB runs code
- scripts/bootstrap.sh 44 KB runs code
- scripts/build_datamodel.py 13 KB runs code
- scripts/build-parity-plan.rb 5.3 KB runs code
- scripts/cleanup-orphan-workbooks.rb 11 KB runs code
- scripts/convert.py 89 KB runs code
- scripts/doctor.ps1 24 KB runs code
- scripts/doctor.sh 34 KB runs code
- scripts/enhance-app-plan.rb 8.1 KB runs code
- scripts/enhance-apply.rb 48 KB runs code
- scripts/enhance-scan.rb 38 KB runs code
- scripts/enhance-select.rb 5.3 KB runs code
- scripts/escalate-gap.py 9.8 KB runs code
- scripts/export-dossier-pdf.py 2.0 KB runs code
- scripts/extract_datamodel.py 2.2 KB runs code
- scripts/extract-cube.py 9.4 KB runs code
- scripts/extract.py 3.8 KB runs code
- scripts/find-or-pick-dm.rb 29 KB runs code
- scripts/gap-scout.md 5.6 KB
- scripts/gen-coverage-matrix.py 5.7 KB runs code
- scripts/get_token.py 8.2 KB runs code
- scripts/get-token.sh 4.4 KB runs code
- scripts/intake.rb 21 KB runs code
- scripts/learned-rules.py 2.2 KB runs code
- scripts/lib/anchor_values.rb 5.6 KB runs code
- scripts/lib/blind_grade.rb 8.8 KB runs code
- scripts/lib/cli_encoding.rb 1.8 KB runs code
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.
- 12d ago First seen · 526 lines · 107 tokens per session scan B 65ff7307fec6
microstrategy-to-sigma is a skill published in the GitHub repository twells89/sigma-migration-skills (16 stars, last pushed yesterday), licensed MIT. It adds 107 tokens to every session and 8,585 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it B with 2 findings (reads agent configuration directories, 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…
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…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…