بنقرة واحدة
tailwind-vocabulary
// Canonical terminology for Tailwind CSS concepts used throughout the codebase. Reference this skill to ensure consistent naming in code, docs, and conversation.
// Canonical terminology for Tailwind CSS concepts used throughout the codebase. Reference this skill to ensure consistent naming in code, docs, and conversation.
Always start a fresh browser session after any file change, walk through the full user flow, and monitor for errors before proceeding with further work.
Set up and run different development service arrangements for testing specific features. Use when starting dev servers, testing Storybook addon (SB8 or SB10), testing Tailwind v3 vs v4, testing Astro, or when asked which services to run. Covers compound tasks, port assignments, and which services need each other.
Defines the interaction behavior of global mode buttons (Select, Insert) and component row buttons (Place, Replace). Use when modifying button states, colors, labels, tab visibility, or page interaction behavior. Must review and update these tables before making changes.
Canonical naming for all Convey UI parts, features, and concepts. Reference when discussing, documenting, or writing code for any part of the app. Ensures consistent terminology across humans and AI agents.
Build panel UI components that live-preview Tailwind className changes in the user's app via WebSocket. Use when creating any control (dropdown, scrubber, color picker, toggle, etc.) that lets users hover/scrub values before committing. Covers the preview/revert/stage lifecycle, the onHover/onLeave prop contract, and the focus-trap pattern that prevents preview leaks.
Debug and fix failing Playwright E2E tests. Use when tests fail, when asked to fix failing tests, or when investigating test failures. Analyzes test output, screenshots, error context, and uses Playwright MCP to identify root causes.
| name | tailwind-vocabulary |
| description | Canonical terminology for Tailwind CSS concepts used throughout the codebase. Reference this skill to ensure consistent naming in code, docs, and conversation. |
Canonical terms used in code, types, comments, and specs. All contributors (human and AI) must use these names consistently.
| Term | Type | Example | Description |
|---|---|---|---|
| classToken | string | "py-4" | A complete Tailwind utility class string |
| prefix | string | "py-" | The utility prefix including trailing dash |
| value | string | "4" | The token after the prefix |
| scale | string[] | ["py-0","py-1",…] | All valid classTokens for a given prefix |
| themeKey | string | null | "spacing" | The Tailwind config namespace the prefix reads from |
| category | string | "spacing" | Semantic UI grouping (spacing, sizing, typography…) |
| valueType | "scalar" | "color" | "enum" | "scalar" | Determines which panel control renders |
| Term | Description |
|---|---|
| patch | A single proposed change: one classToken swap on one element |
| staged | User has selected a new value; change is local to the panel, previewed in the overlay |
| committed | User clicked "Commit to Agent"; change is in the server queue waiting for the AI agent |
| implementing | Agent has picked up the change and is applying it to source code |
| implemented | Agent confirmed the change is written to source |
| elementKey | Stable identifier for a target element: ${componentName}::${childPath} |
All WebSocket messages between panel, overlay, and server use the PATCH_* prefix:
| Message | Direction | Purpose |
|---|---|---|
PATCH_PREVIEW | panel → overlay | Live-preview a class swap in the DOM |
PATCH_REVERT | panel → overlay | Revert any active preview |
PATCH_STAGE | panel → overlay | Stage a change (overlay fills in context, sends PATCH_STAGED to server) |
PATCH_STAGED | overlay → server | Patch with full context, added to server queue as staged |
PATCH_COMMIT | panel → server | Move staged patches to committed status |
PATCH_UPDATE | server → panel | Broadcast current counts by status |
classToken (not "class name" or "CSS class") when referring to a Tailwind utility string.prefix (not "property name" or "utility name") for the part before the value.patch (not "change" or "edit") for a single proposed modification.staged, committed, implementing, implemented) precisely — don't substitute synonyms.