diff --git a/skills/frontend/policyengine-ui-kit-consumer-skill/references/migration-from-design-system.md b/skills/frontend/policyengine-ui-kit-consumer-skill/references/migration-from-design-system.md
new file mode 100644
index 0000000..888df7e
--- /dev/null
+++ b/skills/frontend/policyengine-ui-kit-consumer-skill/references/migration-from-design-system.md
@@ -0,0 +1,216 @@
+# Migrating from @policyengine/design-system to @policyengine/ui-kit/legacy
+
+Guide for migrating repositories that use the deprecated `@policyengine/design-system` package to the modern `@policyengine/ui-kit/legacy` compatibility layer.
+
+## Context
+
+`@policyengine/design-system` was a standalone NPM package containing design tokens and components. It has been deprecated in favor of `@policyengine/ui-kit`, which is the canonical design system per `PolicyEngine/CLAUDE.md`.
+
+For repositories not yet ready to adopt Tailwind v4 and the full ui-kit setup, ui-kit 0.8.0+ provides a `/legacy` subpath that mirrors the old design-system API exactly.
+
+## When to Use `/legacy` vs Full ui-kit
+
+| Use `/legacy` if... | Use full ui-kit if... |
+|---------------------|----------------------|
+| Using Mantine, Ant Design, or other non-Tailwind UI framework | Building with Tailwind v4 |
+| Need minimal changes (pure import-path swap) | Starting a new project or doing a major refactor |
+| Build config uses Webpack, Rollup, or other bundlers | Using Next.js or Vite with PostCSS |
+| Not ready to adopt Tailwind v4 yet | Want access to shadcn/ui components and utilities |
+
+## Migration Steps
+
+### 1. Update package.json
+
+Replace the design-system dependency:
+
+```diff
+{
+ "dependencies": {
+- "@policyengine/design-system": "^X.Y.Z",
++ "@policyengine/ui-kit": "^0.8.0"
+ }
+}
+```
+
+Run:
+```bash
+bun install
+```
+
+### 2. Update JavaScript/TypeScript imports
+
+Find and replace all imports. The `/legacy` subpath provides the exact same API:
+
+```diff
+- import { colors } from "@policyengine/design-system";
++ import { colors } from "@policyengine/ui-kit/legacy";
+
+- import * as tokens from "@policyengine/design-system";
++ import * as tokens from "@policyengine/ui-kit/legacy";
+```
+
+For large codebases, use a bulk find-replace:
+
+```bash
+# Preview changes
+grep -r "@policyengine/design-system" src/
+
+# Replace in all files (macOS/BSD sed)
+find src/ -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \) \
+ -exec sed -i '' 's/@policyengine\/design-system/@policyengine\/ui-kit\/legacy/g' {} +
+
+# Replace in all files (GNU sed / Linux)
+find src/ -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" \) \
+ -exec sed -i 's/@policyengine\/design-system/@policyengine\/ui-kit\/legacy/g' {} +
+```
+
+### 3. Update CSS imports (if applicable)
+
+If importing CSS tokens directly:
+
+```diff
+- @import "@policyengine/design-system/tokens.css";
++ @import "@policyengine/ui-kit/legacy/tokens.css";
+```
+
+### 4. Update CDN links (if applicable)
+
+If using CDN for browser-only projects:
+
+```diff
+-
++
+```
+
+### 5. Verify and test
+
+After migration:
+
+```bash
+# Clean build
+rm -rf node_modules/.cache dist build .next
+bun install
+
+# Run build
+bun run build
+
+# Run tests
+bun test
+```
+
+Check that:
+- All imports resolve correctly
+- Design tokens (colors, spacing, typography) render as before
+- No runtime errors related to missing exports
+- Build output size is similar (ui-kit legacy bundle is comparable to old design-system)
+
+## What `/legacy` Exports
+
+The `/legacy` subpath provides:
+
+- `colors` object (all brand colors, semantic colors, chart colors)
+- `spacing` tokens
+- `typography` tokens (font family, sizes, weights)
+- `breakpoints`
+- `style` object (any Mantine theme extensions from the old package)
+
+It does NOT include:
+- Tailwind utility classes
+- shadcn/ui components
+- `@theme` blocks
+- PostCSS dependencies
+
+If you need those, migrate to the full ui-kit setup (see `policyengine-ui-kit-consumer-skill`).
+
+## Comparison
+
+| Aspect | Old (`design-system`) | New (`ui-kit/legacy`) |
+|--------|----------------------|----------------------|
+| Package name | `@policyengine/design-system` | `@policyengine/ui-kit` |
+| Import path | `@policyengine/design-system` | `@policyengine/ui-kit/legacy` |
+| API surface | Colors, spacing, typography | **Identical** |
+| Bundle size | ~15KB | ~15KB (same) |
+| Maintenance | Deprecated (no updates) | Maintained (synced with ui-kit tokens) |
+| Tailwind required | No | No (legacy is standalone) |
+| TypeScript types | Yes | Yes (identical) |
+
+## Migration Checklist
+
+- [ ] Update `package.json` dependencies
+- [ ] Run `bun install`
+- [ ] Replace all `@policyengine/design-system` imports with `@policyengine/ui-kit/legacy`
+- [ ] Update any CSS imports or CDN links
+- [ ] Clear build caches
+- [ ] Run build successfully
+- [ ] Run tests successfully
+- [ ] Visual regression check (if applicable)
+- [ ] Commit with message: "Migrate from @policyengine/design-system to @policyengine/ui-kit/legacy"
+
+## Future Path: Full ui-kit Migration
+
+Once ready to adopt Tailwind v4, migrate from `/legacy` to the full ui-kit:
+
+1. Replace Mantine/Ant Design with Tailwind utilities
+2. Set up PostCSS with `@tailwindcss/postcss`
+3. Create `globals.css` with `@import "tailwindcss"` and `@import "@policyengine/ui-kit/theme.css"`
+4. Replace `/legacy` imports with Tailwind classes or shadcn/ui components
+5. Remove `/legacy` subpath from all imports
+
+See `policyengine-ui-kit-consumer-skill` for the full setup guide.
+
+## Troubleshooting
+
+### Import errors after migration
+
+**Error:** `Module not found: Can't resolve '@policyengine/ui-kit/legacy'`
+
+**Fix:** Ensure you're using ui-kit 0.8.0 or later:
+```bash
+bun add @policyengine/ui-kit@latest
+```
+
+### TypeScript types not found
+
+**Error:** `Could not find a declaration file for module '@policyengine/ui-kit/legacy'`
+
+**Fix:** The `/legacy` subpath has types. Check:
+1. `node_modules/@policyengine/ui-kit/legacy/index.d.ts` exists
+2. Your TypeScript `moduleResolution` is set to `"bundler"` or `"node16"` (not `"node"`)
+
+### Colors render differently
+
+**Cause:** Unlikely, but if tokens differ, the ui-kit version may have updated values.
+
+**Fix:** Check the changelog. The `/legacy` API matches the last design-system version, but token values themselves may evolve. If you need frozen values, pin the ui-kit version:
+```json
+{
+ "dependencies": {
+ "@policyengine/ui-kit": "0.8.0"
+ }
+}
+```
+
+### Build size increased significantly
+
+**Cause:** Accidentally importing the full ui-kit instead of `/legacy`.
+
+**Fix:** Verify all imports end with `/legacy`:
+```bash
+grep -r "from ['\"]@policyengine/ui-kit['\"]" src/
+```
+
+Should return no results. All imports should be:
+```typescript
+import { colors } from "@policyengine/ui-kit/legacy";
+```
+
+Not:
+```typescript
+import { colors } from "@policyengine/ui-kit"; // WRONG - imports full Tailwind setup
+```
+
+## Related Documentation
+
+- `policyengine-ui-kit-consumer-skill` — Full ui-kit setup with Tailwind v4
+- `policyengine-design-skill` — Token reference and usage guidelines
+- `migration-from-broken-setup.md` — Fixing incorrect Tailwind + ui-kit setups