Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add pproenca/dot-skills --skill base-ui-migratorgit clone --depth 1 https://github.com/pproenca/dot-skillsWrote 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/pproenca/dot-skills/base-ui-migrator)<a href="https://agentmods.dev/skills/pproenca/dot-skills/base-ui-migrator"><img src="https://agentmods.dev/badge/skills/pproenca/dot-skills/base-ui-migrator.svg" alt="Measured on agentmods" 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.00183 | $0.01891 |
| Opus 5 | $0.00092 | $0.00945 |
| Sonnet 5 | $0.00037 | $0.00378 |
| Haiku 4.5 | $0.00018 | $0.00189 |
Grade A, and why
base-ui-migrator 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 5d 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.
| `curl` | Fetch llms.txt + component docs | preinstalled | How it starts
The opening of the file, as written. The whole thing — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Base UI Migrator
Automated workflow that converts bespoke React UI primitives and other component libraries to Base UI (@base-ui/react).
Base UI is the unstyled successor to Radix UI, maintained by the Material UI team and Radix authors. It exposes the same composition model (Root + parts) but with a single canonical API, modern data attributes for state styling, and built-in transitions. This skill knows the full catalog (37 components, snapshotted) and how to map common bespoke patterns to it.
When to Apply
Use this skill when:
- The user explicitly asks to migrate to Base UI, or to a specific Base UI component.
- You spot a React file with bespoke overlays — manual modals, dropdown menus built from
useState+ click-outside hooks, floating UI compositions — that have a Base UI equivalent. - The codebase uses Radix UI, Headless UI, Reach UI, or react-aria components — these are 1:1 mappable to Base UI.
- The user wants to consolidate a fragmented set of UI primitives behind one library.
- The user wants to scan a directory for migration opportunities.
Do NOT trigger when:
- The user is starting a fresh project and asks for a UI library recommendation (suggest they install Base UI directly, no migration needed).
- The user is migrating away from Base UI (out of scope).
Workflow Overview
┌─────────────────────────────────────────────────────────────┐
│ 0. Stale check — is assets/data/llms.txt > 7 days old? │
│ └─ if yes → scripts/refresh-catalog.sh │
├─────────────────────────────────────────────────────────────┤
│ 1. Scan target — scripts/scan-candidates.sh <path> │
│ Output: JSON {file, line, pattern, suggested_component} │
├─────────────────────────────────────────────────────────────┤
│ 2. Triage — present candidates to the user, confirm scope │
│ (write-risk gate: never migrate silently) │
├─────────────────────────────────────────────────────────────┤
│ 3. Install @base-ui/react if missing │
│ └─ Use the project's package manager (autodetected) │
├─────────────────────────────────────────────────────────────┤
│ 4. Per candidate: │
│ a. Look up references/catalog.md → get component name │
│ b. Read references/migration-patterns.md (top tier) OR │
│ fetch-component-doc.sh <component> (cached on disk) │
│ c. Edit source — replace bespoke with Base UI parts │
│ d. Preserve existing styling (Tailwind / CSS Modules) │
├─────────────────────────────────────────────────────────────┤
│ 5. Verify — scripts/verify-migration.sh │
│ Runs typecheck + build + flags leftover bespoke patterns │
├─────────────────────────────────────────────────────────────┤
│ 6. Cleanup — uninstall replaced libraries (optional) │
└─────────────────────────────────────────────────────────────┘
What ships with it
51 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.
- assets/data/components/.gitkeep 0 B
- assets/data/components/accordion.md 38 KB
- assets/data/components/alert-dialog.md 75 KB
- assets/data/components/autocomplete.md 278 KB
- assets/data/components/avatar.md 11 KB
- assets/data/components/button.md 10 KB
- assets/data/components/checkbox-group.md 27 KB
- assets/data/components/checkbox.md 21 KB
- assets/data/components/collapsible.md 16 KB
- assets/data/components/combobox.md 323 KB
- assets/data/components/context-menu.md 135 KB
- assets/data/components/dialog.md 136 KB
- assets/data/components/drawer.md 173 KB
- assets/data/components/field.md 35 KB
- assets/data/components/fieldset.md 8.5 KB
- assets/data/components/form.md 26 KB
- assets/data/components/input.md 7.6 KB
- assets/data/components/menu.md 259 KB
- assets/data/components/menubar.md 29 KB
- assets/data/components/meter.md 15 KB
- assets/data/components/navigation-menu.md 154 KB
- assets/data/components/number-field.md 58 KB
- assets/data/components/otp-field.md 56 KB
- assets/data/components/popover.md 154 KB
- assets/data/components/preview-card.md 118 KB
- assets/data/components/progress.md 19 KB
- assets/data/components/radio.md 25 KB
- assets/data/components/scroll-area.md 43 KB
- assets/data/components/select.md 156 KB
- assets/data/components/separator.md 7.1 KB
- assets/data/components/slider.md 61 KB
- assets/data/components/switch.md 20 KB
- assets/data/components/tabs.md 38 KB
- assets/data/components/toast.md 157 KB
- assets/data/components/toggle-group.md 27 KB
- assets/data/components/toggle.md 12 KB
- assets/data/components/toolbar.md 39 KB
- assets/data/components/tooltip.md 136 KB
- assets/data/llms.txt 11 KB
- config.json 1.0 KB
- gotchas.md 5.1 KB
- metadata.json 1.1 KB
- references/catalog.md 12 KB
- references/migration-patterns-primitives.md 12 KB
- references/migration-patterns.md 25 KB
- references/styling-notes.md 7.3 KB
- references/workflow.md 8.8 KB
- scripts/fetch-component-doc.sh 2.1 KB runs code
- scripts/refresh-catalog.sh 3.6 KB runs code
- scripts/scan-candidates.sh 8.7 KB runs code
- scripts/verify-migration.sh 5.5 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.
- 5d ago First seen · 129 lines · 183 tokens per session scan A 5acfdd2a474c
base-ui-migrator is a skill published in the GitHub repository pproenca/dot-skills (203 stars, last pushed 23d ago), licensed MIT. It adds 183 tokens to every session and 1,891 once invoked, about $0.0009 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-09-03.
Other skills, from other repositories
chakra-ui-builder
Build responsive, accessible UI components and layouts using Chakra UI v3, install or configure Chakra UI in new and existing projects, and design scalable themes using tokens, semantic tokens, recipes, and slot recipes. Use this skill whenever a user asks to build, create, or generate any UI component, page, form…
frontend-ui-dark-ts
Build dark-themed React applications using Tailwind CSS with custom theming, glassmorphism effects, and Framer Motion animations. Use when creating dashboards, admin panels, or data-rich interfaces with a refined dark aesthetic.
cobejs
Use when adding a lightweight interactive globe with cobe (canvas setup, markers, interaction, performance, integration with React/Next.js).
stitch::react-components
Converts Stitch designs into modular Vite and React components, or syncs/updates existing React components to align with the latest Stitch designs, using system-level networking and AST-based validation.
seed-design
An integration guide for SEED Design, covering shared component specifications and foundations plus React and Lynx implementation guidance.
vercel-composition-patterns
React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.