---
name: velin-migration-tailwind
description: Orchestrate migrate tailwind dry-run; Mapped vs Residual; no auto-targets (e.g. bg-background).
---
# Migration Tailwind

## Purpose
Orchestrate `velinstyle migrate tailwind` dry-run and interpret Mapped vs Residual. Default dry-run only. Does not invent residual targets; does not raise SAFE_REWRITE; Mapped write only via separate human-confirmed CLI path outside this skill permission.

## Domain
L · category `migration`

## Capabilities
- `migrate.tailwind`
- `migrate.plan`

## Permission
`plan-only`

## Allowed actions
- READ
- ANALYZE
- PLAN
- DRY_RUN
- RECOMMEND

## Forbidden actions
- WRITE
- APPLY
- ROLLBACK
- ACCEPT
- DEFER
- NOTE
- ACKNOWLEDGE
- CATALOG
- MANIFEST
- CLASSIFY
- invent-target

## Stop conditions
- SR-09
- SR-11
- SR-18
- SR-19

## Agent role / risk
Migrator · risk `med`

## Permission
`plan-only` — Dry-Run/interpret only. No WRITE/APPLY under this skill.

## Workflow
1. Ensure scan/plan done (BP-L01).
2. `velinstyle migrate tailwind <project> --dry-run` (BP-L02).
3. Separate **Mapped** (known safe catalog path) vs **Residual**.
4. Residuals: never invent targets from name/similarity/color/context (BP-T03, SR-09).
5. Do not claim ≥80% coverage against honesty rules (SR-19 / BP-L04).

## Critical example
- `bg-background` (or any similar-looking utility) must **NOT** be auto-mapped to a VelinStyle token because the name "sounds like" a background token.
- Missing explicit mapping → **STOP / REVIEW / PLAN** (not Apply).

## Layer separation
Migration ≠ Classification ≠ Acceptance ≠ Mapping ≠ Catalog ≠ Manifest ≠ Apply. Dry-Run ≠ Apply.

## Best practices
- BP-L01–L04, BP-T03, BP-M04

## Anti-patterns
- Residual auto-map; Dry-Run treated as Apply; raising SAFE_REWRITE.

## Inputs / Outputs
- Inputs: prompt, docs, project-path
- Outputs: report, diff
