setup · aladicf — Claude Code skill: what it does, how to install
Scans project files and asks UX questions to capture audience, brand personality, and UI defaults into .better-web-ui.md.
npx skills add aladicf/better-web-ui --skill setup -a claude-codeWhat setup does
The skill initializes design context before you start building interfaces with better-web-ui. It scans the repository first. The process inspects package.json, components.json, CSS variables, and styling setups like Tailwind or plain CSS. It also detects existing component libraries like shadcn/ui alongside current table or form packages.
When details remain unclear from the code, the skill asks direct questions regarding target users, brand voice, and aesthetic anti-references. For fresh projects without explicit preferences, it records sensible defaults. It defaults to TanStack Form, TanStack Table, and TanStack Virtual across ecosystems like React or Vue.
All verified decisions and design principles are written directly to .better-web-ui.md. Older files like .better-ui.md and .impeccable.md serve strictly as legacy migration sources rather than write targets.
What it helps with
- Audit codebase dependencies and design tokens before styling
- Define brand personality and visual anti-references through guided prompts
- Persist UI standards and framework choices in
.better-web-ui.md - Establish default form and table libraries for new frontend projects
Example prompts for the agent
- Run setup to gather design context for this project
- Inspect the repository and write our UI defaults to
.better-web-ui.md - Run setup and configure our UX goals before styling new views
How to install setup
1Skills CLI (Vercel)
npx skills add aladicf/better-web-ui --skill setup -a claude-code2Manually: put the files in place
~/.claude/skills/setup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/setup/
1Skills CLI (Vercel)
npx skills add aladicf/better-web-ui --skill setup -a codex2Manually: put the files in place
.agents/skills/setup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aladicf/better-web-ui --skill setup -a cursor2Manually: put the files in place
.cursor/skills/setup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aladicf/better-web-ui setup2Manually: put the files in place
.github/skills/setup/SKILL.md1Skills CLI (Vercel)
npx skills add aladicf/better-web-ui --skill setup -a gemini-cli2Platform CLI
gemini skills install https://github.com/aladicf/better-web-ui --path skills/setupManually: put the files in place
.devin/skills/setup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aladicf/better-web-ui --skill setup -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about setup
How do I install setup in Claude Code?
Run npx skills add aladicf/better-web-ui --skill setup -a claude-code in your terminal. You can also save the file directly to ~/.claude/skills/setup/SKILL.md.
Where does the setup skill store project context?
The skill writes output to .better-web-ui.md. Older files such as .better-ui.md and .impeccable.md are treated solely as legacy migration inputs.
Which default libraries does setup pick for new projects?
If the project is new and has no active libraries configured, it defaults to TanStack Form, TanStack Table, and TanStack Virtual.
Source text
SKILL.md · MIT
--- name: setup description: Gather and persist project design context such as audience, brand personality, UX goals, and implementation defaults for future better-web-ui work. Use when starting a project, defining UI direction, or establishing reusable design guidance before other better-web-ui skills. metadata: argument-hint: "[project]" --- Gather design context for this project, then persist it for all future sessions. `setup` writes to `.better-web-ui.md` as the canonical destination. Older files such as `.better-ui.md` and `.impeccable.md` are legacy migration inputs only, not the place new work should keep using. Consult [design principles](../frontend-design/reference/design-principles.md) when turning product values, tone, and repeated tradeoffs into durable design principles that later work can reuse without reopening the same debates. Consult [ux strategy](../frontend-design/reference/ux-strategy.md) when the project needs a clearer strategic frame for target outcomes, user focus, priorities, feasibility, or major risks. ## Step 1: Explore the Codebase Before asking questions, thoroughly scan the project to discover what you can: - **README and docs**: Project purpose, target audience, any stated goals - **Package.json / config files**: Tech stack, dependencies, existing design libraries - **shadcn project config**: `components.json`, shadcn schema usage, CLI-generated configuration, preset clues, Radix vs Base UI choice - **Styling system**: Tailwind, CSS modules, CSS-in-JS, vanilla CSS, utility systems, tokens - **Component libraries**: shadcn/ui, Nuxt UI, Angular Material, custom UI packages, in-house systems - **Form architecture**: TanStack Form, React Hook Form, Formik, vee-validate, Angular forms, custom validation/state wiring - **Table / data-grid architecture**: TanStack Table, AG Grid, framework-native tables, custom table state wiring - **Long-list / virtualization architecture**: TanStack Virtual, react-window, react-virtualized, framework-native virtualization, custom windowing logic - **Existing components**: Current design patterns, spacing, typography in use - **Brand assets**: Logos, favicons, color values already defined - **Design tokens / CSS variables**: Existing color palettes, font stacks, spacing scales - **Any style guides or brand documentation** Note what you've learned and what remains unclear. ## Step 2: Ask UX-Focused Questions ask the user directly to clarify what you cannot infer. Focus only on what you couldn't infer from the codebase: ### Users & Purpose - Who uses this? What's their context when using it? - Is this aimed at a specific age range, life stage, or audience segment whose habits or needs should shape the UX? - Is there a secondary audience or gatekeeper we also need to satisfy, such as parents, teachers, admins, or caregivers? - What job are they trying to get done? - What emotions should the interface evoke? (confidence, delight, calm, urgency, etc.) ### Brand & Personality - How would you describe the brand personality in 3 words? - Any reference sites or apps that capture the right feel? What specifically about them? - What should this explicitly NOT look like? Any anti-references? - Should the interface feel more serious, playful, elegant, utilitarian, editorial, or something else? - Should the language be formal, neutral, or conversational? ### Aesthetic Preferences - Any strong preferences for visual direction? (minimal, bold, elegant, playful, technical, organic, etc.) - Light mode, dark mode, or both? - Any colors that must be used or avoided? - Should corners feel mostly square, gently rounded, or soft and playful? - Should the palette lean warm, cool, or neutral? ### Accessibility & Inclusion - Specific accessibility requirements? (WCAG level, known user needs) - Considerations for reduced motion, color blindness, or other accommodations? Skip questions where the answer is already clear from the codebase exploration. ### Implementation Defaults - What framework / runtime should future UI work assume by default? - If this is a brand-new project, does the user want a specific styling system? - If this is a brand-new project, does the user want a specific component library or block system? - Does the project already use a form library or validation stack that later UI work should preserve? - Does the project already use a table or data-grid library that later UI work should preserve? - Does the project already use a virtualization or windowing library for long lists that later UI work should preserve? - If the project already uses `shadcn/ui`, is it mostly using the upstream primitives directly or local wrappers / compositions built on top of them? - If relevant, does the project already use `shadcn/ui Blocks` or `re-ui` as accelerators for common sections or flows? - If relevant, is the project primarily following a Radix-flavored or Base UI-flavored ecosystem for its headless primitives and composed components? - If the project uses shadcn, does it already have a `components.json` file or signs of `shadcn create` / `shadcn apply` customizations that should be treated as the current baseline? If the project already has a styling system, component library, form stack, or table/grid stack, treat that as the default unless the user explicitly wants to change it. If the project is new and the user does not specify implementation preferences, use the framework-default matrix from [`framework defaults`](../frontend-design/reference/framework-defaults.md) and record the result. When the form architecture is still open in a new React, Vue, Angular, Solid, or Svelte project, default to TanStack Form and record that too. When the table or data-grid architecture is still open in those ecosystems, default to TanStack Table and record that too. When the long-list or virtualization architecture is still open in those ecosystems, default to TanStack Virtual and record that too. ## Step 3: Write Design Context Synthesize your findings and the user's answers into a `## Design Context` section: ```markdown ## Design Context ### Users [Who they are, their context, the job to be done] ### Brand Personality [Voice, tone, 3-word personality, emotional goals] ### Aesthetic Direction [Visual tone, references, anti-references, theme] ### Implementation Defaults [Detected or chosen framework, styling system, component library defaults, form library / validation defaults, table/data-grid defaults, virtualization defaults, any block accelerators in use, any relevant Radix-vs-Base-UI ecosystem preference, any important `components.json` / `shadcn create` / `shadcn apply` customizations, and whether they came from the existing codebase, explicit user preference, or framework fallback defaults] ### Design Principles [3-5 principles derived from the conversation that should guide all design decisions] ``` Derive the principles from concrete levers, not vague aspirations. Prefer things like: - "Establish hierarchy with spacing and weight before adding color" - "Use warm neutrals and restrained accent color" - "Favor editorial typography and mostly square corners" - "Keep one obvious primary action per screen" The strongest principles explain both what to do and what to avoid. Treat them as default decisions with judgment, not as decorative slogans. Write this section to `.better-web-ui.md` in the project root. If that file already exists, update the Design Context section in place. If a legacy `.better-ui.md` or `.impeccable.md` file exists, migrate or mirror the Design Context section into `.better-web-ui.md` so better-web-ui has a single canonical project context file going forward. Legacy files are fallback inputs for migration only. New work should keep `.better-web-ui.md` as the canonical destination. Make sure the persisted context captures this precedence clearly: 1. detected existing project stack 2. explicit user preference for a new project 3. framework-based fallback defaults When the distinction matters for React-oriented component ecosystems, also record whether the project is effectively Radix-flavored, Base UI-flavored, or mixed so later design work does not guess. If shadcn-specific project configuration exists, record it as part of the baseline instead of letting later sessions assume the generic fallback defaults. Then ask the user whether they'd also like the Design Context appended to `AGENTS.md`. If yes, append or update the section there as well. Confirm completion and summarize the key design principles that will now guide all future work.
© aladicf · MIT · aladicf/better-web-ui
Similar skills
Everything for Design →setup by other authors comes first.