Skip to main content

few-shot-quality-prompting

Master guide for crafting prompts that make AI models produce professional-quality code and UI consistently. Trigger whenever the user asks about prompt engineering, improving AI output quality, building system prompts, few-shot examples, making AI write better code, prompt optimization, or says "how to prompt", "better results", "improve output", "stop getting slop". Covers system prompt architecture, few-shot patterns, negative examples, chain-of-thought, output formatting, and evaluation-driven iteration.

Aller à l'installation

Informations de source

Dépôt
mahmoud20138/Tradecraft
Dernière activité de la source
23 avril 2026 à 08:40
Langue détectée de SKILL.md
anglais
Étoiles
15
Forks
4

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
few-shot-quality-prompting
description
Master guide for crafting prompts that make AI models produce professional-quality code and UI consistently. Trigger whenever the user asks about prompt engineering, improving AI output quality, building system prompts, few-shot examples, making AI write better code, prompt optimization, or says "how to prompt", "better results", "improve output", "stop getting slop". Covers system prompt architecture, few-shot patterns, negative examples, chain-of-thought, output formatting, and evaluation-driven iteration.
kind
reference
category
ai/prompting
status
active
tags
["few","prompting","quality","shot"]
related_skills
["writing-hookify-rules"]
# Few-Shot Quality Prompting Skill — Engineering AI Output Excellence ## Identity You are a prompt engineering specialist who knows that the difference between mediocre and exceptional AI output is 90% prompt design and 10% model capability. You design prompts as carefully as you design code — with structure, testing, and iteration. --- ## CORE INSIGHT > **The model is a mirror. It reflects the quality level you demonstrate in your prompt.** > > Show it amateur code → get amateur code. > Show it senior-engineer code → get senior-engineer code. > Show it nothing → get generic defaults. --- ## SYSTEM PROMPT ARCHITECTURE ### The 7-Layer System Prompt ``` ┌─────────────────────────────────────┐ │ LAYER 1: IDENTITY │ Who is the AI? (role, expertise level) ├─────────────────────────────────────┤ │ LAYER 2: CONTEXT │ What's the project? (stack, constraints) ├─────────────────────────────────────┤ │ LAYER 3: SKILLS │ Domain knowledge (loaded dynamically) ├─────────────────────────────────────┤ │ LAYER 4: GOLDEN EXAMPLES │ 2-3 examples of perfect output ├─────────────────────────────────────┤ │ LAYER 5: ANTI-PATTERNS │ Explicit "NEVER do this" list ├─────────────────────────────────────┤ │ LAYER 6: OUTPUT FORMAT │ Exact structure of response ├─────────────────────────────────────┤ │ LAYER 7: QUALITY GATES │ Self-check before responding └─────────────────────────────────────┘ ``` ### Layer-by-Layer Construction #### Layer 1: Identity ``` WEAK: "You are a helpful coding assistant." STRONG: "You are a senior frontend engineer at a design-focused studio with 10 years of experience shipping production React applications. You have strong opinions about clean architecture and refuse to write code you wouldn't approve in a code review." ``` The identity sets the quality floor. "Senior engineer at Stripe" produces better code than "helpful assistant" because the model activates different knowledge distributions. #### Layer 2: Context ``` WEAK: "Help me with my React app." STRONG: "Project: SaaS dashboard for analytics. Stack: React 18 + TypeScript + Tailwind + shadcn/ui Architecture: Feature-based modules, custom hooks for state Target: Production deployment, needs responsive + accessible Existing code style: [paste 20-line example from codebase]" ``` #### Layer 3: Skills (Dynamic) ``` Load the relevant skill markdown based on task type. Keep total skill injection under 5K tokens. If multiple skills needed, extract only the relevant sections. ``` #### Layer 4: Golden Examples (THE MOST IMPORTANT LAYER) ``` PATTERN: Show 2-3 complete input→output examples at the quality level you expect. Example for a React component task: ---BEGIN EXAMPLE--- USER: Create a stat card showing monthly revenue with trend indicator. ASSISTANT: ```tsx import { TrendingUp, TrendingDown } from 'lucide-react'; interface StatCardProps { label: string; value: string; trend: number; period?: string; } export default function StatCard({ label, value, trend, period = 'vs last month' }: StatCardProps) { const isPositive = trend >= 0; return ( <div className="group relative rounded-xl border border-zinc-200 bg-white p-6 transition-all duration-200 hover:shadow-md hover:border-zinc-300"> <p className="text-sm font-medium text-zinc-500 tracking-wide"> {label} </p> <p className="mt-2 text-3xl font-semibold text-zinc-900 tabular-nums"> {value} </p> <div className="mt-3 flex items-center gap-1.5"> {isPositive ? ( <TrendingUp className="h-4 w-4 text-emerald-500" /> ) : ( <TrendingDown className="h-4 w-4 text-red-500" /> )} <span className={`text-sm font-medium ${ isPositive ? 'text-emerald-600' : 'text-red-600' }`}> {isPositive ? '+' : ''}{trend}% </span> <span className="text-sm text-zinc-400">{period}</span> </div> </div> ); } ` ` ` ---END EXAMPLE--- WHY THIS WORKS: - Shows exact import style - Shows TypeScript interface pattern - Shows Tailwind class organization (responsive, spacing, color) - Shows hover state handling - Shows proper default props - Sets the quality bar: real data, polished transitions, proper types ``` #### Layer 5: Anti-Patterns ``` ## FORBIDDEN — Never Do These - Do NOT use `any` type in TypeScript - Do NOT use inline styles when Tailwind classes exist - Do NOT hardcode colors (use design tokens / Tailwind palette) - Do NOT use placeholder text like "Lorem ipsum" or "Item 1" - Do NOT omit hover/focus/active states on interactive elements - Do NOT skip error handling - Do NOT use console.log in production code - Do NOT create functions longer than 25 lines - Do NOT use generic variable names (data, item, thing, obj) - Do NOT import from relative paths deeper than 2 levels (../../..) ``` #### Layer 6: Output Format ``` OPTION A — Code Only: "Respond with ONLY the complete code file. No explanations, no markdown wrapping, no commentary before or after." OPTION B — Structured Response: "Respond in this exact format: ## Approach (2-3 sentences) ## Code ```language [complete file] ``` ## Key Decisions (bullet list, max 4 items)" OPTION C — JSON Structured: "Respond with ONLY a JSON object: { 'files': [{'path': '...', 'content': '...'}], 'commands': ['npm install ...'], 'notes': '...' }" ``` #### Layer 7: Quality Gates ``` ## Self-Check Before Responding Before outputting your response, verify: □ All imports are present and correct □ No TypeScript `any` types □ All interactive elements have hover + focus states □ Error states handled (loading, error, empty) □ Responsive on mobile (min 375px) □ Color contrast meets WCAG AA (4.5:1) □ Code runs as-is without modification □ No TODO or placeholder comments If any check fails, fix it before responding. ``` --- ## FEW-SHOT PATTERNS ### Pattern 1: Input-Output Pairs (Most Effective) ``` Show 2-3 complete examples of: Input: [user request] Output: [perfect response] The model pattern-matches against your examples. More examples = more consistent output. 2 examples is the sweet spot (enough to show pattern, not too much context). ``` ### Pattern 2: Good vs Bad Comparison ``` GOOD EXAMPLE: ```tsx <button className="inline-flex items-center gap-2 rounded-lg bg-indigo-600 px-4 py-2.5 text-sm font-medium text-white transition-colors hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed" disabled={isLoading} > {isLoading ? <Spinner className="h-4 w-4 animate-spin" /> : <Plus className="h-4 w-4" />} {isLoading ? 'Creating...' : 'Create Project'} </button> ` ` ` BAD EXAMPLE (Do NOT produce this): ```tsx <button style={{background: 'blue', color: 'white'}} onClick={handleClick}> Submit </button> ` ` ` The bad example explicitly shows what to avoid. Models learn from negative examples. ``` ### Pattern 3: Progressive Complexity ``` Example 1: Simple (establishes baseline quality) Example 2: Medium (shows how to handle edge cases) Example 3: Complex (shows the ceiling) Each example builds on the previous, showing how quality scales with complexity. ``` ### Pattern 4: Domain-Specific Templates ``` For each type of output (component, API endpoint, test file, etc.), provide a template that shows the expected structure: REACT COMPONENT TEMPLATE: 1. Imports (external, then internal, then types) 2. Interface/Types 3. Sub-components (if small enough to colocate) 4. Main component with default export 5. Hooks at top, handlers in middle, render at bottom This template acts as a structural few-shot — even without full examples. ``` --- ## PROMPT OPTIMIZATION TECHNIQUES ### Technique 1: Prompt Refinement Loop ``` Step 1: Write initial prompt Step 2: Generate 5 outputs Step 3: Score each (1-10) on: correctness, style, completeness Step 4: Identify failure patterns Step 5: Add specific rules/examples to fix failures Step 6: Repeat until average score > 8 TRACK: Prompt version | Avg score | Worst failure | Fix applied v1 | 5.2 | Missing types | Added TypeScript rule v2 | 6.8 | No hover states| Added CSS interaction example v3 | 8.1 | Inconsistent | Added 2nd few-shot example v4 | 8.7 | Edge cases | Added anti-pattern list ``` ### Technique 2: Temperature & Sampling Control ``` CODE GENERATION: temperature=0.0 to 0.3 (deterministic, correct) CREATIVE UI DESIGN: temperature=0.5 to 0.7 (some variation, still coherent) BRAINSTORMING: temperature=0.8 to 1.0 (diverse ideas) NAMING/COPY: temperature=0.4 to 0.6 For agents: Use temperature=0 for tool calls, 0.3 for code, 0.5 for explanations ``` ### Technique 3: Structured Output Enforcement ```python # Force JSON output with schema validation system = """Respond ONLY with valid JSON matching this schema. No markdown, no backticks, no explanation. Schema: { "component_name": "string", "imports": ["string"], "props": [{"name": "string", "type": "string", "required": "boolean"}], "code": "string" }""" # Parse response import json response_text = response.content[0].text # Strip any accidental markdown fencing clean = response_text.strip().removeprefix("```json").removesuffix("```").strip() data = json.loads(clean) ``` ### Technique 4: Chain-of-Thought for Complex Tasks ``` "Before writing code, think through: 1. What are the inputs and outputs? 2. What edge cases exist? 3. What's the simplest correct implementation? 4. What could go wrong? Write your thinking in a <planning> block, then provide the code." This produces measurably better code for complex tasks (20%+ improvement on benchmarks). ``` ### Technique 5: Role-Specific Personas ``` DIFFERENT ROLES ACTIVATE DIFFERENT KNOWLEDGE: "You are a security engineer" → Finds injection vulnerabilities, checks auth "You are a performance engineer" → Spots N+1 queries, unnecessary re-renders "You are a UX designer who codes" → Better component APIs, accessibility, states "You are a senior at [specific company]" → Mimics that company's coding patterns USE: Rotate personas for different review passes on the same code. ``` --- ## EVALUATION FRAMEWORK ### Scoring Rubric for Code Output ``` CORRECTNESS (0-3): 0: Doesn't run 1: Runs but has bugs 2: Works for happy path 3: Handles edge cases correctly COMPLETENESS (0-3): 0: Missing major features 1: Core feature works, missing states (loading/error/empty) 2: All states handled, missing polish 3: Complete with all states, transitions, responsive STYLE (0-2): 0: Inconsistent, messy 1: Consistent but generic 2: Clean, idiomatic, follows design system UI QUALITY (0-2): 0: Unstyled or broken layout 1: Functional but generic 2: Polished, professional, memorable TOTAL: /10 — Target ≥ 8 for production use ``` ### A/B Testing Prompts ```python def evaluate_prompt(prompt_version: str, test_cases: list[str], n_trials: int = 5) -> dict: """Run test cases against a prompt and score results.""" scores = [] for test in test_cases: for _ in range(n_trials): output = call_llm(system=prompt_version, user=test) score = score_output(output) # Your scoring function scores.append(score) return { "mean": sum(scores) / len(scores), "min": min(scores), "max": max(scores), "std": (sum((s - sum(scores)/len(scores))**2 for s in scores) / len(scores)) ** 0.5, "pass_rate": sum(1 for s in scores if s >= 8) / len(scores) } ``` --- ## COMPLETE SYSTEM PROMPT TEMPLATE ``` You are a [ROLE] with expertise in [DOMAINS]. ## Project Context - Stack: [TECHNOLOGIES] - Architecture: [PATTERNS] - Style: [CONVENTIONS] ## Active Skills [DYNAMICALLY LOADED SKILL CONTENT] ## Golden Examples ### Example 1 USER: [simple request] RESPONSE: [complete, high-quality output] ### Example 2 USER: [complex request] RESPONSE: [complete, high-quality output showing how to handle complexity] ## Anti-Patterns — NEVER Do These - [specific bad pattern 1] - [specific bad pattern 2] - [specific bad pattern 3] ## Output Format [exact structure expected] ## Quality Checklist (Verify Before Responding) □ [check 1] □ [check 2] □ [check 3] □ [check 4] If any check fails, fix it before outputting your response. ``` --- ## KEY METRICS TO TRACK ``` 1. FIRST-TRY SUCCESS RATE: % of outputs that need zero fixes Target: > 70% for well-prompted agents 2. AVERAGE ITERATIONS TO SUCCESS: How many generate→fix cycles Target: < 3 for most tasks 3. QUALITY SCORE: Average score on your rubric Target: > 8/10 consistently 4. CONTEXT EFFICIENCY: Useful output tokens / total tokens consumed Target: > 30% (rest is reasoning and tool calls) 5. COST PER TASK: Total API cost for a completed task Track this to optimize prompt length and model selection ```
Voir sur GitHub