plugins/skill-creation/skills/taste-encoding/SKILL.md
Interviews the user to extract their design taste, technology preferences, and opinionated defaults for a domain — then encodes those preferences into skill reference files, decision rules, conventions, and anti-patterns. Use when the user wants to encode their preferences into a skill, capture their taste for a domain, add opinionated defaults, make a skill reflect their style, or says things like "encode my taste", "add my preferences to this skill", "make this skill opinionated", or "interview me about my preferences for X".
npx skillsauth add lucasilverentand/skills taste-encodingInstall 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.
Extracts a user's design taste through structured interviews and encodes it into skill artifacts — reference files, decision rules, conventions, comparison tables, and anti-patterns. Taste is the difference between a generic skill ("here are 5 database options") and an opinionated one ("use D1 for small projects, Neon when you need RLS or compliance — here's exactly why").
authoring) to scaffold the skill first, then come back here for taste encoding.references/encoding-patterns.md, report gapsRead the target skill's SKILL.md and any existing reference files. Identify:
List the taste gaps — these become the interview topics.
Use AskUserQuestion for every question. Never type questions as plain text.
Follow references/interview-guide.md for the full interview protocol. The essentials:
Open with context, not cold questions. Before asking about preferences, state what you already know from the skill and the user's agent instructions / memory. "I see you use Drizzle with Neon for complex projects and D1 for simple ones. Let me ask about the decisions within that — ID strategy, naming conventions, etc." This avoids re-asking settled questions and shows the user you've done your homework.
Ask about decisions, not preferences directly. "When you have a new table, how do you decide between a jsonb column and a dedicated table?" is better than "Do you prefer JSONB or normalized tables?" The decision framing reveals the reasoning, which is what gets encoded.
Listen for the "because." Every strong opinion has a story — a past incident, a scaling problem, a debugging nightmare. When the user states a preference, ask what happened that made them feel strongly. The story becomes the rationale in the encoded taste.
Batch questions by theme. Group related decisions together (all naming conventions, then all tenancy decisions, then all migration decisions). Don't jump between unrelated topics.
Weigh pros and cons actively. Don't just record preferences — challenge them constructively. Surface trade-offs the user might not have considered, present the other side fairly, and flag where a preference has real costs. The goal is informed taste, not a transcription of habits. See references/encoding-patterns.md "Weighing trade-offs with the user" for specifics.
Know when to stop. If the user says "I don't have a strong opinion" or "whatever's standard" — that's a valid answer. Record it as "use industry default" and move on. Not every decision needs taste.
Group interview answers into categories:
|Category|What goes here|Becomes|
|---|---|---|
|Principles|Core beliefs that guide many decisions ("monolith-first", "lean on existing stack")|A references/philosophy.md or references/principles.md file|
|Defaults|Concrete choices for specific decisions ("prefixed ULIDs for IDs", "snake_case for tables")|Conventions section in SKILL.md, or domain-specific reference files|
|Decision rules|Conditional choices ("D1 when small, Neon when multi-tenant")|Decision tables or if/then rules in SKILL.md or references|
|Anti-patterns|Things to avoid with reasoning ("never sequential integers — they leak count")|Anti-pattern sections in references|
|No opinion|Decisions where the user defers to convention|Skip — don't encode absence of taste|
Transform organized findings into skill artifacts using the patterns in references/encoding-patterns.md. The key patterns:
The "because" pattern. Every opinionated rule gets a rationale. Not "use ULIDs" but "use ULIDs — because they're time-sortable, prefix-distinguishable in logs, and don't leak count like sequential integers."
Comparison tables for either/or decisions. When a choice depends on context (D1 vs Neon, REST vs GraphQL), encode a comparison table with clear factors, then a decision rule underneath: "Start with X when [conditions]. Graduate to Y when [conditions]."
Anti-patterns with stories. "Anti-pattern: mocking the database in tests. Prior incident: mocked tests passed but prod migration failed because the mock didn't enforce the same constraints."
Philosophy files for cross-cutting principles. When 3+ decisions share the same underlying principle, extract it to a references/philosophy.md or references/principles.md with 3-5 principles, each with rationale and anti-pattern example.
For each artifact:
Multi-skill encoding: When encoding taste across multiple skills at once, offer to fan out step 4 to parallel agents — one Encoder agent per target skill, each receiving only that skill's organized findings. This avoids serializing work on independent files. For a single skill, stay single-agent.
After encoding:
../authoring/tools/token-estimate.ts) on the SKILL.md to verify it's still under 5000 tokens — taste encoding can bloat the main file if you inline too muchPresent a summary to the user: what was encoded, where it lives, and any decisions that were left generic (with reasoning).
When a skill already has some taste but not enough:
|File|Covers|
|---|---|
|references/interview-guide.md|Question strategies by domain type, signal recognition, batching, depth calibration|
|references/encoding-patterns.md|The six encoding patterns with examples from real skills|
development
Cross-platform Apple Human Interface Guidelines: color, typography, layout, materials, motion, accessibility, SF Symbols, branding, plus shared UI elements (activity views, rating indicators, web views, …) and meta sections (components, patterns, technologies). Use when the design topic is platform-agnostic. User says: "iOS color tokens", "SF Symbols", "Apple typography", "dark mode guidance".
development
Guides a full system design from idea to spec — sequences requirements gathering, architecture decomposition, data modeling, API design, and document writing into a coherent workflow with clear handoffs. Use when the user asks to "design a system", "build X from scratch", "architect something end-to-end", "plan a new service", or has a broad design ask that spans multiple concerns. Also use when the user says things like "I need to build X" without specifying which aspect to start with. This is the entry point for any design task that isn't clearly scoped to a single skill (data model only, API only, etc.).
development
Synthesizes build-ready design systems and DESIGN.md files from chat briefs, screenshots, moodboards, videos, URLs, live pages, or local image folders while preserving the target product identity. Use when the user asks to "make a design system from these screenshots", "turn this moodboard into DESIGN.md", "extract the design language from this video", "define the UX vibe and rules from these references", or create cohesive UI rules from visual inspiration.
development
Reviews and critiques an existing or proposed system design — flags single points of failure, missing non-functional requirements, scaling bottlenecks, security gaps, operational blind spots, unjustified tech choices, and places where the design will fall over under load or failure. Produces a structured review with severity-tagged findings, not just vibes. Use when the user asks for a second opinion on an architecture, requests a design review, wants feedback on a proposed system, pastes a design doc, or says things like "review this design", "what's wrong with X", "poke holes in this", or "is this a good architecture".