WWT design system doctor
Report what this environment can enforce, then say plainly what the person may and may not claim about a deck built here.
Why this runs first
The difference between a good and a bad result from the WWT design system has turned out to be mostly environmental. Everything that enforces the rules is a Python script driving headless Chromium. Two people can read the same specification and produce very different decks, because one of them can execute it and the other cannot, and nothing told either of them which one they were.
A 91-slide deck went to a client with 12% photography, 2% mesh usage, 8% median content coverage, "Lorem ipsum" on one slide and no live text anywhere in the file, and it was described as built on the design system. Most of those defects have rules against them. None of the rules ran.
What to do
Run the doctor. Never call python3 directly: on a Mac without Apple's developer tools it
opens an install dialog, and on Windows it is often a Store shortcut.
sh "${CLAUDE_PLUGIN_ROOT}/setup/run.sh" doctor.py
On Windows: powershell -NoProfile -ExecutionPolicy Bypass -File "${CLAUDE_PLUGIN_ROOT}/setup/run.ps1" doctor.py.
If it prints SETUP NEEDED, this machine has never been set up. Assume the person is not
technical and may have no Python at all; that is fine, setup brings its own. Explain in plain
words: a one-time step of a few minutes, no admin password, downloads a private copy of Python
and its tools (about 330 MB of disk space, more only if they have neither Chrome nor Edge) into a
.wwtdigital-deck-design folder in their home folder, and changes nothing else. Ask, then run
setup/setup.sh (Windows: setup/setup.ps1) the same way. It ends by running the doctor. If it
prints "Setup stopped", relay that message as written; it says what to do.
Report the verdict to the user in plain language, then act on it. First, if the doctor
prints BLOCKED, the Aptos fonts are missing. They are Microsoft's and the plugin does not ship
them, so no deck can be built until they are installed. Relay the fix the doctor prints
(python3 scripts/brand_assets.py shows the detail) and stop there. Do not substitute another font.
ENFORCED. Everything runs. Proceed normally and follow THE CONTRACT in the design
system skill. The deck will be gated by wwt_validate.py before it ships and by
verify_pptx.py if a PowerPoint is produced.
PARTIAL. The static lint runs; the rendering validator does not. Continue, but tell the user explicitly which rules are live and which are not, and repeat it when handing the deck over. Offer to run the setup, because getting to ENFORCED is usually a few minutes of waiting rather than a project. Never describe a PARTIAL deck as validated.
DOCUMENTATION ONLY. Say so before building anything. The person has a stylesheet and a reference document, which is genuinely useful, but nothing is being checked and the output must not be described as validated. Ask whether they want to run the setup or proceed knowingly.
Figma
Report Figma as optional, because it is. The twenty recipes ship with their real measured geometry, so composing a deck needs no Figma connection at all. Only two jobs need it: reproducing a specific frame somebody points at, and adding or correcting a recipe.
Getting this emphasis wrong is actively harmful. Someone told they are missing a prerequisite starts guessing at geometry to compensate, and guessing at geometry has produced three of this system's worst defects. Someone told they are on the normal path composes from the recipes and gets a correct deck.
The doctor cannot detect an MCP server from inside a script. Check the session's own tool list
for get_design_context and report what you find:
Present. Say that frame reproduction is available as well as recipe composition.
Absent. Say that recipe composition is available, which is most work, and that frame
reproduction is not. Do not ask for a Figma link; a link nobody can open is worse than no
link. Mention the one-time sign-in only if they want frame reproduction: the plugin declares
Figma's remote server at https://mcp.figma.com/mcp, and connecting is /mcp, select
figma, Authenticate, Allow Access.
Either way: nothing is invented. Geometry comes from the node, with its id cited, or from
assets/recipes.html, with the recipe number cited. Never cite a node id for geometry that
came from a recipe.
Do not
Do not proceed silently past a PARTIAL or DOCUMENTATION verdict. The failure this exists to prevent was not somebody ignoring a rule, it was somebody believing sixty rules were being enforced when none of them were.