Teach your AI Milda - the skill

The Milda skill is an Agent Skill that teaches an AI assistant the language: how to read, write and fix .milda files, and how to think in tokens, context groups, archetypes and platform-neutral parts instead of writing CSS in Milda's syntax. It checks everything it writes with the real reader and fixes what the reader reports.

The skill or the MCP server?
The skill is for writing a design system: it teaches the language. The MCP server is for using one that is already published: it hands an agent that system's exact components and tokens. An assistant can have both.

#Install

#Claude Code

Add the repository as a plugin marketplace, then install the plugin from it:

text
/plugin marketplace add mildastudio/milda-skills
/plugin install milda@milda

A marketplace you add yourself does not update on its own by default. After a new language version, run claude plugin update milda@milda, or turn on auto-update for the marketplace.

#Any agent that reads Agent Skills

Claude Code, Codex, Cursor and the other agents that read the format:

bash
npx skills add mildastudio/milda-skills

#Claude on the web and desktop

Download the repository's skills/milda folder as a ZIP and upload it under Customize › Skills › Create skill › Upload a skill. Or add the whole repository as a plugin marketplace under Customize › Plugins.

#By hand

Copy skills/milda from the repository into your agent's skills directory. For Claude Code that is ~/.claude/skills/milda, or .claude/skills/milda inside a project.

#What it teaches

The assistant loads the skill whenever Milda, a .milda file or a design system written in Milda comes up, and reads further into it only as far as the task needs.

  • SKILL.md - the ten rules behind the language in brief (Thinking in Milda tells them at length), the write-check-fix loop, and how CSS ideas map onto Milda words.
  • reference/syntax.md - every statement, each with an example the reader accepts.
  • reference/vocabulary.md - every word the reader accepts: token types, part kinds, facets, states, layout words and literal functions. Generated from the language package.
  • reference/archetypes.md - every archetype with its contract, anatomy and behaviours. Generated from the prelude.
  • examples/acme.milda - a complete design system that checks clean, to copy patterns from.

#It checks its own work

The skill does not let the assistant call a file valid on its own judgement. After every edit it runs milda-check, the command-line reader that ships with the language server, over the whole system:

bash
npx -y -p @mildastudio/milda-lsp milda-check --strict acme/

It gets back the same diagnostics an editor shows, one per line, and fixes them until the reader reports none. A typical first draft written from CSS habits:

text
acme/button.milda:11:11 error [part.required] a Button requires the part "label" (text)
acme/button.milda:11:11 error [facet.danglingToken] facet references missing token "tok.space.md"
acme/button.milda:16:16 warning [facet-unknown] unknown facet "background" skipped
acme/button.milda:18:11 warning [state-unknown] unknown state "hover" - did you mean 'hovered'? ...
1 file: 2 errors, 2 warnings

Each of these is a mistake the skill's rules exist to prevent, and each names its own fix, so the assistant corrects itself from the language rather than from guesses. A warning is not noise: unknown facet "background" skipped means that line did nothing.

#It moves with the language

The skill targets language surface 0.10 with prelude 0.0.2. It lives beside the language in the Milda repository and is held to the reader on every change: each example in it is parsed, the generated references are compared with a fresh render of the language package, and every version it states has to be the reader's. A language change that would make the skill wrong fails the build until the skill is updated, and the public repository follows within the hour.

#Try it

Once it is installed, ask for a system the way you would describe it to a designer:

text
Write a Milda design system for Acme: a violet accent, light and dark modes,
and a Button and a TextField. Check it with milda-check before you show me.

Paste the result into the Playground to see it rendered live, with no account.

Source and feedback
The skill is open source under the MIT licence at mildastudio/milda-skills. Issues and pull requests are welcome there.