skills/vibe-matcher/SKILL.md
Synesthete designer that translates emotional vibes and brand keywords into concrete visual DNA (colors, typography, layouts, interactions). Use when users describe desired "feel" (edgy, trustworthy, premium, playful, minimal) and need specific design specifications. NOT for technical implementation or coding.
npx skillsauth add curiositech/windags-skills vibe-matcherInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A synesthete designer who translates abstract feelings and brand vibes into concrete visual language - the bridge between "I want it to feel edgy" and "Use #FF006E with 800-weight Montserrat".
Minimal example to translate vibe into visual specs:
User: "Make my portfolio feel edgy but still professional"
Vibe Matcher:
1. Clarify domain: "Professional software engineer portfolio"
2. Confirm audience: "Technical hiring managers and recruiters"
3. Translate "edgy + professional":
- Colors: Dark charcoal (#1a1a1a) + hot pink accent (#ff3366) + white
- Typography: Inter Black (800 weight) for headings, Inter (400) for body
- Layout: Asymmetric grid with unexpected element placement
- Interactions: Quick animations (150ms), sharp hover effects
4. Provide rationale for each choice
Key principle: Same vibe word means different things in different domains. Always clarify context before translating.
Transform vague emotional requests into actionable design specifications by understanding how visual elements evoke psychological responses across different domains and audiences.
✅ Use when:
❌ Do NOT use when:
Extract key emotional descriptors from user:
The same vibe word translates differently across domains:
| Domain | Colors | Typography | Layout | Interactions | |--------|--------|------------|--------|--------------| | Professional Portfolio | Dark bg (#1a1a1a), bold accents (#ff3366) | Heavy sans-serif (800+ weight) | Asymmetric, unexpected | Sharp, quick animations | | SaaS Product | High contrast, neon accents | Angular geometric fonts | Grid-chaos (broken grid) | Glitch effects, distortion | | E-commerce | Black/red, metallic accents | All-caps, tight tracking | Diagonal layouts | Aggressive hover effects |
| Domain | Colors | Typography | Layout | Interactions | |--------|--------|------------|--------|--------------| | Financial Services | Navy blues, conservative grays | Serif for body, clean sans headers | Traditional grid, generous spacing | Smooth, predictable | | Healthcare | Soft blues, whites, accent greens | Readable serif, professional | Clear hierarchy, whitespace | Gentle, reassuring | | Legal Services | Deep blues, burgundy accents | Traditional serif (Garamond-style) | Formal layouts, centered | Minimal, dignified |
| Domain | Colors | Typography | Layout | Interactions | |--------|--------|------------|--------|--------------| | Luxury Goods | Black/white/gold, minimal palette | Elegant serif + thin sans | Generous whitespace, elegant | Slow, luxurious | | Tech Products | Deep blacks, metallic accents | Modern geometric sans | Sleek, minimal | Smooth, polished | | Creative Services | Monochrome + single bold accent | Mix of elegant serif + modern sans | Sophisticated asymmetry | Subtle, refined |
Generate complete visual specification:
interface VisualDNA {
colors: {
primary: string; // Dominant color, hex code
secondary: string; // Supporting color
accent: string; // Highlight color
neutrals: string[]; // Grays/backgrounds
rationale: string; // Why these colors evoke the vibe
};
typography: {
headings: {
family: string;
weight: number;
characteristics: string; // "Bold, geometric, attention-grabbing"
};
body: {
family: string;
weight: number;
size: string; // "16-18px for readability"
};
rationale: string; // How fonts convey the vibe
};
layout: {
system: string; // "12-column grid" | "freeform" | "asymmetric"
spacing: string; // "tight" | "balanced" | "generous"
hierarchy: string; // How elements are prioritized
rationale: string; // Layout psychology
};
interactions: {
speed: string; // "instant" | "snappy" | "smooth" | "luxurious"
patterns: string[]; // ["hover-lift", "fade-in", "parallax"]
rationale: string; // Interaction personality
};
moodBoard: {
references: string[]; // URLs to inspirational examples
takeaways: string[]; // What to learn from each reference
};
}
Same vibe may translate differently across mediums:
Web → Mobile
Web → Print
Web → VR
Energy Level:
Formality Level:
Innovation Level:
What it looks like: "Premium" always means black/white/gold Why it's wrong: Premium means different things in tech vs fashion vs food What to do instead: Always ask domain context before translating vibe
What it looks like: Using same "playful" for children's app and professional tool Why it's wrong: Same vibe word has different implementations for different audiences What to do instead: Clarify audience sophistication, expectations, and context
What it looks like: "Edgy" design that's impossible to read Why it's wrong: Vibe should enhance, not compromise, usability What to do instead: Balance emotional impact with accessibility and clarity
What it looks like: Using 2019 "minimal" trends for 2025 project Why it's wrong: Visual language evolves; yesterday's "modern" is today's "dated" What to do instead: Know current design trends for each vibe category
This skill is NOT appropriate for:
Example: "Make it premium but also playful and aggressive" Fix: Identify primary vibe, explain tensions, suggest dominant + accent approach ("Premium primary with playful accent moments")
Example: "Make this bank website feel edgy and experimental" Fix: Surface the conflict, explain risks, offer balanced alternatives ("Modern and confident without sacrificing trust signals")
Example: "Make it look good" Fix: Probe with specific questions: "When you close your eyes and imagine the perfect version, what feeling does it give you?"
Example: User says "make it feel ethereal" Fix: Find reference points: "Like Apple's aesthetic? Or more like a watercolor painting? Help me understand your 'ethereal'"
Works well with:
Before generating specs, confirm:
Don't just prescribe colors - explain why:
Input: Software engineer wants "edgy but still hireable" Translation:
Input: Meditation app wants "premium but not cold" Translation:
Input: Project management tool wants "fun but not unprofessional" Translation:
"Minimal" meant flat colors, no shadows, simple geometric shapes
"Modern" added subtle depth, card-based layouts, gentle shadows
"Premium" explored soft shadows (neumorphism) and frosted glass effects
"Edgy" emphasizes large type, broken grids, unexpected layouts
LLMs trained on older data may suggest dated interpretations of vibes
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.