#1956·shadcn-vue

[Bug]: shadcn-vue skill prescribes data-icon and add --dry-run/--diff, which the Vue registry and CLI do not implement

Author: doutatsuCreated Sep 10, 2026Updated Sep 10, 2026

Reproduction

  1. pnpm dlx skills add unovue/shadcn-vue in a project with a components.json (style: new-york, tailwind v4, base: reka).
  2. Ask the assistant to add an icon to a Button. Following skills/shadcn-vue/rules/icons.md it writes <SearchIcon data-icon="inline-start" />.
  3. Inspect the rendered button: the icon gets no data-icon treatment. grep -r "data-icon" apps/v4/registry apps/v4/styles finds the attribute only in the preset styles' PaginationNext/PaginationLast, not in any button/index.ts (registry/new-york-v4, registry/bases/reka, styles/reka-*). The Vue buttons size and space icons through gap-2 + [&_svg:not([class*='size-'])]:size-4 + has-[>svg]:px-*; the data-icon selectors exist only in shadcn/ui's React button.
  4. Ask the assistant to preview an update. Following SKILL.md ("Updating Components") it runs pnpm dlx shadcn-vue@latest add button --dry-run, which prints:
The --dry-run, --diff and --view options are not yet supported in shadcn-vue.
Follow https://github.com/unovue/shadcn-vue for updates.

Describe the bug

skills/shadcn-vue was ported from shadcn/ui's React skill (#1790) and keeps a few rules that the Vue registry and CLI do not implement, so an assistant that follows the skill writes code that silently does nothing:

  • rules/icons.md and the "Key Patterns" block in SKILL.md prescribe data-icon="inline-start|inline-end" on icons inside Button. No Vue button in the registry has the matching selectors.
  • SKILL.md ("Updating Components", "Workflow" step 5, cli.md) describes add --dry-run and add --diff <file> as the way to preview an upstream update, and view for browsing registry items. packages/cli/src/commands/add.ts guards all three with "not yet supported in shadcn-vue".
  • rules/styling.md "Never override colours with manual dark:" assumes the React token set. Minor, but same origin.

Expected: the skill's rules match what the Vue registry ships. Either drop the data-icon rule (and the pattern example) and note that Vue buttons size icons through the svg selector, or add the data-icon selectors to the Vue buttons; and either remove the --dry-run/--diff/view guidance or note that they are not yet available.

System Info

shadcn-vue 2.8.2 (latest), skills/shadcn-vue as of 2026-09-04
components.json: style new-york, tailwind v4, typescript false, iconLibrary lucide
macOS 25.6, Node 24.18.0, pnpm 11.21.0

Contributes

  • I am willing to submit a PR to fix this issue
  • I am willing to submit a PR with failing tests