--- name: down-skilling description: >- Distill Opus-level reasoning into optimized instructions for Haiku 4.5 (and Sonnet). Generates explicit, procedural prompts with n-shot examples that maximize smaller model performance on a given task. Use when user says "down-skill", "distill for Haiku", "optimize for Haiku", "make this work on Haiku", "generate Haiku instructions", or needs to delegate a task to a smaller model with high reliability. metadata: author: Oskar Austegard and Opus version: 1.0.0 --- # Down-Skilling: Opus → Haiku Distillation Translate your reasoning capabilities into explicit, structured instructions that Haiku 4.5 can execute reliably. You are a compiler: your input is context, intent, and domain knowledge; your output is a Haiku-ready prompt with decision procedures and diverse examples. ## Core Principle Opus infers from WHY. Haiku executes from WHAT and HOW. Your job: convert implicit reasoning, contextual judgment, and domain expertise into explicit procedures, concrete decision trees, and demonstrative examples. Every inference you would make silently, Haiku needs stated explicitly. ## Activation When triggered, perform these steps: 1. **Extract task context** from the conversation: what is the user trying to accomplish? What domain knowledge applies? What quality criteria matter? 2. **Identify the reasoning gaps** — what would Opus infer automatically that Haiku needs spelled out? Common gaps: - Ambiguity resolution (Opus picks the sensible interpretation; Haiku needs a decision rule) - Quality judgment (Opus knows "good enough"; Haiku needs explicit criteria) - Edge case handling (Opus reasons through novel situations; Haiku needs enumerated cases) - Output calibration (Opus matches tone/length intuitively; Haiku needs explicit constraints) 3. **Generate the distilled prompt** following the structure in [Prompt Architecture](#prompt-architecture) 4. **Generate 3-5 diverse examples** following the principles in [Example Design](#example-design) 5. **Deliver** the complete Haiku-ready prompt as a copyable artifact or file, including system prompt and user prompt components as appropriate ## Prompt Architecture Structure every distilled prompt with these components in this order. Haiku responds best to this specific sequencing: ``` [Single sentence: who Haiku is and what it does] [2-3 sentences: the specific task, its purpose, and the deliverable] [Numbered list of explicit constraints. Be precise about:] - Output format (JSON schema, markdown structure, etc.) - Length bounds (word/token counts, not vague "brief"/"detailed") - Required elements (must-include fields or sections) - Prohibited behaviors (specific failure modes to avoid) - Decision rules for ambiguous cases [Numbered steps. Maximum 7 steps. Each step is one action.] [Include validation checkpoints: "Before proceeding, verify X"] [Include decision points: "If X, do Y. If Z, do W."] [3-5 diverse examples showing input → output pairs] [See Example Design section] [Task-specific data, reference material, or domain knowledge] [Use labels: [Context], [Policy], [Reference]] ``` ## Haiku Optimization Rules Apply these when generating any Haiku-targeted prompt: ### Structure & Syntax - Use XML tags to delimit every section — Haiku respects labeled boundaries - Keep sentences under 25 words where possible - One instruction per sentence; split compound instructions - Use numbered steps, not prose paragraphs, for procedures - Specify token/word budgets explicitly: "respond in 80-120 words" ### Reasoning Support - Replace open-ended judgment with decision rubrics: BAD: "Assess whether the code is production-ready" GOOD: "Check: (a) no TODO comments, (b) all functions have error handling, (c) no hardcoded secrets. Score pass/fail per item." - Bound reasoning depth: "Think in 3-5 steps, then give your answer" - Provide a fallback for uncertainty: "If you cannot determine X, respond with: 'UNCERTAIN: [brief reason]'" ### Context Management - Front-load critical instructions (Haiku attends strongly to position) - Keep total prompt under 2,000 tokens when possible (excluding examples) - Pass only the 1-3 most relevant context snippets, not full documents - Use explicit delimiters between context and instructions ### Output Control - Require structured output (JSON, labeled sections) for extractable results - Provide an output template Haiku can fill in - Specify what comes first in the response: "Begin your response with..." - For classification tasks, enumerate all valid categories ### Failure Prevention - Anticipate Haiku's common failure modes and add guardrails: - **Hallucination**: "Use ONLY information from the provided context. If the answer is not in the context, say 'Not found in sources.'" - **Verbosity**: "Maximum 150 words. Do not add preamble or caveats." - **Format drift**: Include the output schema in both rules and examples - **Instruction skipping**: Number all constraints; reference them in the process steps: "Apply rules 2-4 from " ## Example Design Examples are the highest-leverage element for Haiku performance. Follow these principles: ### Diversity Requirements Each example set must cover: - **Typical case**: The most common input pattern - **Edge case**: Unusual but valid input (empty fields, very long text, special characters, boundary conditions) - **Negative case**: Input that should be rejected or handled differently (if applicable to the task) ### Example Format ```xml [Realistic input data] [Exact format Haiku should produce — not a description, the actual output] [Optional: 1-2 sentences explaining WHY this output is correct. Helps Haiku generalize the pattern.] ``` ### Example Quality Criteria - Examples must be realistic, not toy data - Output format must be identical across all examples - Include the hardest case you expect Haiku to handle - Vary input characteristics: length, complexity, domain - Never include an example that contradicts your rules ## Delivery Format Present the distilled prompt in a code block or artifact with clear section markers. Include: 1. **System prompt** (if applicable): role + persistent rules 2. **User prompt template**: with {{placeholders}} for variable content 3. **Examples**: embedded in the prompt or as a separate few-shot section 4. **Usage notes**: any caveats about when this prompt may fail and what to watch for When generating for API use, include the model parameter and recommended settings: ``` model: claude-haiku-4-5-20251001 max_tokens: [appropriate for task] temperature: 0 (for deterministic tasks) or 0.3 (for creative tasks) ``` ## Agentic Resource Selection The skill includes two directories of granular reference files. Do NOT read them all. Scan the index below, then read only the files relevant to the current task. ### gaps/ Each file documents one reasoning pattern where Haiku diverges from Opus, with a tested mitigation strategy. Read 2-4 per task. | File | Use when the task involves... | |------|------| | `ambiguity-resolution.md` | Input that has multiple valid interpretations; vague user requests | | `code-generation.md` | Generating code, scripts, or queries; style matching to existing code | | `comparative-analysis.md` | Comparing options, pros/cons, tradeoff analysis | | `conditional-logic.md` | Decision trees, branching rules, nested if/then logic | | `context-utilization.md` | Long context windows, documents >2K tokens, position-sensitive info | | `counting-enumeration.md` | "Generate exactly N items", counting occurrences, list lengths | | `creative-generation.md` | Writing, tone adaptation, persona consistency, style matching | | `implicit-constraints.md` | Tasks where tone, audience, or format norms are assumed not stated | | `instruction-density.md` | Tasks requiring 8+ simultaneous constraints; complex rule sets | | `multi-hop-reasoning.md` | 3+ step inference chains; cause-effect-consequence analysis | | `multi-turn-consistency.md` | Chatbot behavior, stateful conversations, persona maintenance | | `negation-handling.md` | Constraints phrased as "don't", "never", "avoid"; prohibitions | | `nuanced-classification.md` | Borderline cases, multi-label classification, overlapping categories | | `output-calibration.md` | Length control, format precision, verbosity management (ALWAYS read) | | `parallel-consistency.md` | Generating multiple similar items; lists where format must be uniform | | `partial-information.md` | Missing fields, incomplete input, optional data, error states | | `schema-adherence.md` | Structured output (JSON, tables) that must survive edge-case inputs | | `self-correction.md` | Tasks needing verification; quality checks before output | | `summarization-fidelity.md` | Summarizing documents without distortion, position bias, or fabrication | | `tool-use-planning.md` | Multi-tool workflows, API orchestration, dependency ordering | ### examples/ Complete before/after distillations. Each shows an Opus-level task → Haiku-optimized prompt with annotated examples. Read 1-2 closest to the current task domain. | File | Use when distilling... | |------|------| | `api-orchestration.md` | Multi-step tool/API workflows with dependencies and branching | | `code-review-triage.md` | Analysis tasks with severity classification and structured JSON output | | `content-moderation.md` | Safety-critical classification with "when uncertain" defaults | | `creative-rewriting.md` | Tone adaptation, audience-aware rewriting, style transfer | | `data-extraction.md` | Schema-bound extraction from unstructured text to JSON | | `document-qa.md` | RAG / retrieval-grounded QA with citation and "not found" handling | | `email-summarization.md` | Information extraction from conversations/threads into sections | | `meeting-notes.md` | Transcript processing into decisions, actions, and next steps | | `resume-screening.md` | Multi-criteria evaluation with parallel scoring structure | | `sql-generation.md` | Natural language to code with schema constraints and error handling | | `step-by-step-analysis.md` | Multi-step analytical reasoning with explicit decision rubrics | | `text-classification.md` | Multi-label classification with confidence and ambiguity handling | ## Self-Check Before delivering, verify the distilled prompt against these criteria: - [ ] Every Opus inference is made explicit - [ ] All constraints are numbered and cross-referenced - [ ] 3+ diverse examples with consistent output format - [ ] Total prompt fits within 4,000 tokens (excluding dynamic context) - [ ] No instruction assumes Haiku will "figure it out" - [ ] Decision points have explicit branches, not open-ended judgment - [ ] Output format is demonstrated, not just described