MCP Development
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
Check a component's design tokens in Base.tokens.json against the canonical naming convention (packages/tokens/CONTEXT.md "Token Naming Anatomy"), report violations as a markdown table, and apply…
$ npx skills add baloise/design-system --skill ds-token-lint -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install baloise/design-system ds-token-lint --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ds-token-lint .claude/skills/ds-token-lint && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ds-token-lint" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lint into .claude/skills/ds-token-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-token-lint", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lintType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add baloise/design-system --skill ds-token-lint -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install baloise/design-system ds-token-lint --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ds-token-lint .agents/skills/ds-token-lint && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ds-token-lint" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lint into .agents/skills/ds-token-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-token-lint", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add baloise/design-system --skill ds-token-lint -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install baloise/design-system ds-token-lint --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ds-token-lint .cursor/skills/ds-token-lint && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ds-token-lint" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lint into .cursor/skills/ds-token-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-token-lint", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/baloise/design-system.git --path .claude/skills/ds-token-lint--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add baloise/design-system --skill ds-token-lint -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install baloise/design-system ds-token-lint --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ds-token-lint .gemini/skills/ds-token-lint && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ds-token-lint" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lint into .gemini/skills/ds-token-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-token-lint", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install baloise/design-system ds-token-lintInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add baloise/design-system --skill ds-token-lint -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ds-token-lint .github/skills/ds-token-lint && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ds-token-lint" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lint into .github/skills/ds-token-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-token-lint", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add baloise/design-system --skill ds-token-lint -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install baloise/design-system ds-token-lint --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/baloise/design-system.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ds-token-lint .opencode/skills/ds-token-lint && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ds-token-lint" agent skill from https://github.com/baloise/design-system/tree/next/.claude/skills/ds-token-lint into .opencode/skills/ds-token-lint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ds-token-lint", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ds-token-lintCheck a component's design tokens in Base.tokens.json against the canonical naming convention (packages/tokens/CONTEXT.md "Token Naming Anatomy"), report violations as a markdown table, and apply…
Ds Token Lint is an agent skill from baloise/design-system. Check a component's design tokens in Base.tokens.json against the canonical naming convention (packages/tokens/CONTEXT.md "Token Naming Anatomy"), report violations as a markdown table, and apply approved renames to Base.tokens.json and the component's SCSS. Use when the user asks to lint/check/audit design tokens for a component.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `README.md`, `REFERENCE.md` and `implementation.js`).
It sits in Frontend & Design, covering Linting and formatting, Design tokens and CSS and styling. The repository describes itself as: The Baloise Design System consists of reusable components and a clearly defined visual style, that can be assembled together to build any number of applications. The licence is Apache-2.0.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 19063c5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodepnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ds Token Lint loads about 2.5k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 1,178 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from baloise/design-system at commit 19063c5, republished under its Apache-2.0 licence (© baloise). 1,178 words, ~2,473 tokens.
.claude/skills/ds-token-lint/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Checks a component's Component-layer design tokens (🧩 Component > <ComponentName> in Base.tokens.json) against packages/tokens/CONTEXT.md's "Token Naming Anatomy" — the canonical order:
--ds - component - variant - element - category - property - stateThis doc is the source of truth, not whatever a given component currently ships. An earlier version of this skill trusted "the real, empirically-verified convention" over the doc, on the finding that most shipped tokens don't follow it (category before variant, not after). That finding still stands as a description of today's state — but it's exactly the drift this skill exists to close, not a convention to defer to. See REFERENCE.md for that history and why the checklist below no longer treats shipped tokens as authoritative.
The convergence model is one component at a time. Every run targets a single component; there's no --all. Work through components one by one, review + apply + changeset each before moving to the next, so the codebase moves steadily toward a single naming convention instead of accumulating a second, half-migrated one. Don't skip around — finish (or consciously defer) one component before starting the next, so it's always clear which components are done.
Two phases: Check (report violations) and Apply (write approved renames).
Check a component's tokens:
node .claude/skills/ds-token-lint/index.js buttonOutput: markdown table of violations, printed to the terminal.
After the user approves the table, apply the fixes:
node .claude/skills/ds-token-lint/index.js button --applyOutput: summary of renamed tokens and updated files.
Scope is Component-layer tokens only — everything under 🧩 Component > <ComponentName> in packages/tokens/tokens/Base.tokens.json. Alias/Global token usage inside a component's SCSS is ds-lint-component's job, not this skill's.
font- prefix — a leaf key of Family, Weight, LineHeight, or Size whose value resolves through the Alias 🔤 Text typography category, but isn't grouped under a Font key, is flagged (e.g. --ds-button-family → --ds-button-font-family). This is real, present drift — some components already use Font (e.g. ds-accordion-summary-font-family), others don't (ds-button-family, ds-badge-text-family).Base/Hover/Active/Disabled/Focus/Selected), any sibling that's a close misspelling of one of those (edit distance ≤ 2) is flagged as a likely typo.component → variant → element → category → property → state). category is the closed set Color/Space (Font is deliberately excluded — see below). state is the closed set from Rule 2, with the same sibling-context disambiguation: a state word (Base in particular) only counts as state when its actual JSON siblings look like a state group; a lone Base, or one sibling to Info/Success/Danger/…, is treated as a variant instead — matching how its non-Base siblings are already classified. Everything that's neither category nor state is variant/element (the two aren't separately distinguishable — both are open vocabulary), and the segment closest to the value is treated as property. Flagged when the actual order doesn't match [...variant/element, ...category, property, ...state] (e.g. --ds-button-color-primary-base-text → --ds-button-primary-color-text-base). Skipped (not enough signal to safely reorder) when fewer than two non-category, non-state segments are present — in that case only the unambiguous part is still enforced: a state segment must be terminal.Bg (whole, e.g. Bg, or as part of a compound, e.g. ProgressBg) is flagged; the full word Background is required instead (e.g. --ds-toast-primary-color-bg-base → --ds-toast-primary-color-background-base, ProgressBg → ProgressBackground). bg → background is currently the only entry in this vocabulary — extend ABBREVIATIONS in implementation.js if another shorthand needs closing off the same way.Not checked:
tile, sidebar, outline, upload, progress, …) are legitimate, open vocabulary, not a fixed set. Rule 4 only classifies the closed-vocabulary category/state segments; everything else is left as-is, relative to itself.badge never have one). Rule 4 doesn't require a state segment to exist, only that one is terminal when it does.Font groupings — Rule 4 excludes Font from its category vocabulary on purpose, so it doesn't fight Rule 1 over the same leaf in one pass. Fix Rule 1's font- prefix drift first, then re-run the check — Rule 4 will see the now-grouped Font segment as an ordinary variant/element segment and check the rest of the path around it.A safety note on Rules 4 and 5 co-occurring: if a single token trips both a segment-order violation and an abbreviation violation, --apply refuses the whole batch with an error rather than risk silently dropping one of the two fixes (each violation's fix is applied against the pre-fix tree independently, so a second fix targeting an already-moved leaf would otherwise no-op). This hasn't happened yet against real data. If it does, this skill has no per-row apply — resolve it by hand-editing that one token's rename directly in Base.tokens.json (folding both fixes into a single move), then re-run the check to confirm it's clean before applying the rest of the batch normally.
node .claude/skills/ds-token-lint/index.js buttonPrints a markdown table:
| # | Current Token | Violation | Proposed Fix |
|---|---|---|---|
| 1 | `--ds-button-family` | Typography token missing "font-" prefix | `--ds-button-font-family` |
| 2 | `--ds-button-weight` | Typography token missing "font-" prefix | `--ds-button-font-weight` |Show this table to the user and ask for approval before running --apply — renaming a shipped token is a breaking change for consumers (packages/tokens/CONTEXT.md, "Naming is immutable"). Approval is whole-batch: either apply every row in the table, or none. If the user wants a subset, re-run after they've told you which rows to skip and adjust manually.
node .claude/skills/ds-token-lint/index.js button --applyThis:
Base.tokens.json, preserving $extensions.com.figma.variableId (renaming is not delete+add — see ADR-0011, Figma Variable identity is variableId, not name).var(--ds-old-name) reference across packages/core/src/**/*.scss and packages/styles/src/**/*.scss.pnpm tokens to recompile dist/css/base.tokens.css, dist/scss/_tokens.scss, dist/json/tokens.json.After applying, invoke the ds-changeset skill (bump: major, scope: tokens + the component name) — every rename here is a breaking change and must be recorded, per project convention.
OrangeVacations.tokens.json (and any future brand file) is out of scope for v1 — currently no component-layer tokens are overridden there. If a future brand file does override a path this skill renames, it will go out of sync silently; check for that manually until brand-file support is added.
node .claude/skills/ds-token-lint/index.js toastToast already nests variant → category → element → state (e.g. --ds-toast-primary-color-progress-bar-base), which happens to satisfy Rule 4 as-is (no separate property segment beyond the element itself) — prints "No naming violations found."
node .claude/skills/ds-token-lint/index.js buttonReports --ds-button-family, --ds-button-weight, --ds-button-line-height, and the --ds-button-size-* group as missing the font- prefix, plus every --ds-button-color-* token as segment-order violations (e.g. --ds-button-color-primary-base-text → --ds-button-primary-color-text-base).
packages/tokens/tokens/Base.tokens.json).See REFERENCE.md for the history behind this skill's stance (why it used to defer to shipped tokens, and why it now treats the doc as canonical instead) and implementation notes per rule, and packages/tokens/CONTEXT.md for the "Token Naming Anatomy" section this skill enforces.
© baloise, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in .claude/skills/ds-token-lint of baloise/design-system.
Open the folder on GitHubat commit 19063c5
Ds Token Lint next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ds Token Lint this skillbaloise/design-system | 114 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| MCP Developmentcoollabsio/coolify | 63k | 1 repos | ~949 | Automated safety check: Pass | MIT | |
| Transitions PolishJakubantalik/transitions.dev | 4.6k | 2 repos | ~3.2k | Automated safety check: Pass | Custom licence | |
| Web Style ExtractorLucent-Snow/style-extractor | 453 | — | ~3.8k | Automated safety check: Pass | None | |
| Liuguang Banlan UIsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Tailwind Design SystemSuFxGIT/scoutarr | 114 | 5 repos | ~5.6k | Automated safety check: Pass | None |
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
Jakubantalik/transitions.dev
Audits existing UI animations against the transitions.dev motion-token scale and suggests tokens for duration, distance, scale, blur and easing.
Lucent-Snow/style-extractor
Extracts evidence-backed style guides and motion appendices from websites, keeping reusable visual language and stripping product-specific content.
sickn33/agentic-awesome-skills
Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.
SuFxGIT/scoutarr
Build scalable design systems with Tailwind CSS v4, design tokens, component libraries, and responsive patterns.
Manavarya09/design-extract
Extract the full design language from any website URL. An agent skill from Manavarya09/design-extract.
baloise/design-system
Migrate a consuming app from the Baloise Design System (bal-) to the Helvetia Design System (ds-).
baloise/design-system
Create a changeset entry for pending changes using the repo's create-changeset.mjs CLI.
baloise/design-system
Create new web components in the Helvetia Design System. An agent skill from baloise/design-system.
baloise/design-system
Lint and fix Helvetia Design System components for style guide compliance.
baloise/design-system
Auto-generate all test files for DS components including visual, a11y, component, page object, and unit tests.
baloise/design-system
Post the /update-screenshots bot command as a PR comment to re-baseline visual regression snapshots for one or more components.
Categories
Check a component's design tokens in Base.tokens.json against the canonical naming convention (packages/tokens/CONTEXT.md "Token Naming Anatomy"), report violations as a markdown table, and apply…. Ds Token Lint is an agent skill from baloise/design-system.json and the component's SCSS.
Ds Token Lint fits situations like: the user asks to lint/check/audit design tokens for a component; tasks that involve Linting and formatting; tasks that involve Design tokens.
Run `npx skills add baloise/design-system --skill ds-token-lint -a claude-code`. Or copy the skill folder (.claude/skills/ds-token-lint in baloise/design-system) into .claude/skills/ds-token-lint in your project. Claude Code loads it when a task matches its description.
Run `npx skills add baloise/design-system --skill ds-token-lint -a codex`. Or copy the skill folder (.claude/skills/ds-token-lint in baloise/design-system) into .agents/skills/ds-token-lint in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add baloise/design-system --skill ds-token-lint -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ds-token-lint, .gemini/skills/ds-token-lint, .github/skills/ds-token-lint and .opencode/skills/ds-token-lint in your project.
Going by SKILL.md and its folder, Ds Token Lint needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and pnpm). Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ds Token Lint is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ds Token Lint: MCP Development (coollabsio/coolify, 63k stars), Transitions Polish (Jakubantalik/transitions.dev, 4.6k stars), Web Style Extractor (Lucent-Snow/style-extractor, 453 stars) and Liuguang Banlan UI (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
baloise (a GitHub organization) maintains it in baloise/design-system, which has 114 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.
Source: baloise/design-system on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.