From ai-and-reasoning
Distills advanced Claude model reasoning into explicit, procedural prompts for smaller models like Haiku 4.5. Useful for cost-efficient delegation of tasks to cheaper models with high reliability.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-and-reasoning:down-skillingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Translate your reasoning capabilities into explicit, structured instructions
CHANGELOG.mdREADME.mdexamples/api-orchestration.mdexamples/code-review-triage.mdexamples/content-moderation.mdexamples/creative-rewriting.mdexamples/data-extraction.mdexamples/document-qa.mdexamples/email-summarization.mdexamples/meeting-notes.mdexamples/resume-screening.mdexamples/sql-generation.mdexamples/step-by-step-analysis.mdexamples/text-classification.mdgaps/ambiguity-resolution.mdgaps/code-generation.mdgaps/comparative-analysis.mdgaps/conditional-logic.mdgaps/context-utilization.mdgaps/counting-enumeration.mdTranslate 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.
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.
Opus 4.8 costs 5× Haiku 4.5 on both sides ($5/$25 vs $1/$5 per MTok; 2026-07 pricing). A task that costs $1.00 on Opus costs ~$0.20 on Haiku — but only if Haiku gets it right on the first try. One retry halves the savings; a few retries makes Haiku more expensive.
The math that matters:
What this means for prompt design:
Bottom line: Every example that prevents a Haiku misfire saves 5-25× its input cost in wasted output tokens. Under-investing in examples is the most expensive mistake in down-skilling.
This skill's gap catalog was originally derived from model-card priors.
A 2026-07-15 empirical calibration (300 measured Haiku 4.5 calls; data in
the agent-routing skill's references/calibration-2026-07-15.md) found
Haiku 4.5 substantially stronger than those priors on mechanically
checkable work: 240/240 on nested modular arithmetic (16-leaf expression
trees), 30-hop function chains, 25-operation state tracking, trap-laden
word math, and 5-simultaneous-constraint sentence generation (exact word
counts, required/forbidden tokens, a lipogram) — at effort: low, and in
one control with chain-of-thought suppressed entirely. On the same battery
Sonnet at low effort scored 17/20, missing exact-count constraints Haiku
satisfied.
Triage before investing in a full distillation:
Iteration warning (measured, same calibration): never ask Haiku to
blindly re-improve its own output in a loop. On correct answers,
re-application returned the identity (0 changes in 96 loop-pairs); on the
one output that did change, quality regressed on the second pass and
then froze on the degraded text for all remaining passes. If you iterate,
score every iteration with an out-of-band checker or judge, keep
argmax, and stop at the first regression.
When triggered, perform these steps:
Extract task context from the conversation: what is the user trying to accomplish? What domain knowledge applies? What quality criteria matter?
Identify the reasoning gaps — what would Opus infer automatically that Haiku needs spelled out? Common gaps:
Generate the distilled prompt following the structure in Prompt Architecture
Generate 4-7 diverse examples following the principles in Example Design — this is the highest-leverage step
Audit your example set before delivering. Two checks, both must pass:
If either check fails, regenerate the offending examples before delivering. Examples beat rules; misaligned examples beat aligned rules.
Deliver the complete Haiku-ready prompt as a copyable artifact or file, including system prompt and user prompt components as appropriate
Structure every distilled prompt with these components in this order. Haiku responds best to this specific sequencing:
<role>
[Single sentence: who Haiku is and what it does]
</role>
<task>
[2-3 sentences: the specific task, its purpose, and the deliverable]
</task>
<rules>
[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
</rules>
<process>
[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."]
</process>
<examples>
[4-7 diverse examples showing input → output pairs]
[This section should be the LARGEST part of the prompt]
[See Example Design section for distribution requirements]
</examples>
<context>
[Task-specific data, reference material, or domain knowledge]
[Use labels: [Context], [Policy], [Reference]]
</context>
Apply these when generating any Haiku-targeted prompt:
Examples are the single highest-leverage investment in a Haiku prompt. Rules tell Haiku what to do; examples show it what "done right" looks like. When rules and examples conflict, Haiku follows the examples. When rules are ambiguous, Haiku extrapolates from examples. This makes examples the primary steering mechanism — not a supplement to rules, but the dominant signal.
Given the economics (see Economics), you should invest heavily here. A prompt with 800 tokens of rules and 3,000 tokens of examples will outperform one with 2,000 tokens of rules and 500 tokens of examples almost every time.
Generate 4-7 diverse examples per distilled prompt. Fewer than 4 is under-investing. The marginal cost of each example is negligible compared to the reliability improvement. Use this distribution:
| # | Role | Purpose |
|---|---|---|
| 1 | Typical case | The most common, straightforward input. Establishes the baseline pattern. |
| 2 | Second typical variant | A different but common input — varies length, domain, or structure from #1. Prevents Haiku from over-fitting to a single pattern. |
| 3 | Edge case | Unusual but valid input: empty fields, very long text, special characters, boundary conditions, ambiguous phrasing. |
| 4 | Negative case (tagged BAD/GOOD pair) | For tasks where Haiku could output something plausible-but-wrong (rewriting, summarization, NL→command, anything that rewards confident specificity), include an example pair tagged "BAD output:" and "GOOD output:" that demonstrates the specific failure mode you want to prevent for this task — invented architecture details, invented CLI flags, invented numbers, etc. A generic "bad output" example is much less effective than one that names the failure category Haiku is most likely to fall into. |
| 5+ | Tricky/boundary cases | Inputs near decision boundaries where Haiku is most likely to fail. The cases you'd use for a test suite. |
Why the second typical case matters: With only one typical example, Haiku may latch onto incidental features of that example (its length, word choice, domain). A second typical case from a different angle shows Haiku which features are task-relevant and which are coincidental.
<example>
<input>
[Realistic input data — use real-world length and complexity]
</input>
<output>
[Exact format Haiku should produce — not a description, the actual output]
</output>
<reasoning>
[1-2 sentences: WHY this output is correct. Which rules applied.
What Haiku might have gotten wrong without this example.]
</reasoning>
</example>
The <reasoning> tag is not optional for complex tasks. It acts as
a chain-of-thought anchor, showing Haiku the reasoning pattern to follow.
For classification and extraction tasks, reasoning should reference the
specific rule numbers that drive the decision.
Some tasks (rewriting, summarization, voice/register editing, explanation-from-source) take inputs where the source content is itself abstract — marketing copy, vague descriptions, high-level summaries. These tasks are uniquely prone to a failure mode where Haiku invents concrete details that sound right for the domain but aren't in the source.
Symptom: an output that confidently mentions specifics — algorithm names, technology choices, percentile numbers, version comparisons — not present in the input.
Fix: include an example pair where the input is genuinely abstract and the output explicitly acknowledges what is unspecified, rather than filling the gap with plausible-sounding inferences. Pattern:
<example>
<input>
"We're excited to release our new search backend. We think it's a
massive upgrade over the old one."
</input>
<output>
New search backend released. The announcement does not specify the
underlying changes — whether they affect indexing, ranking, query
parsing, or operational characteristics is not stated. Migration
guidance will follow. The old search path remains available during
transition.
</output>
<reasoning>
The source provides only one factual claim ("released") and one
unverifiable claim ("upgrade"). The output stays at the source's
level of abstraction and explicitly names the categories of
information the source omits, rather than inventing plausible
specifics (algorithm changes, performance numbers, technology names).
</reasoning>
</example>
Pair this with the tagged BAD/GOOD negative example (row 4 in the distribution table above) that demonstrates the exact invention you want to prevent. On a voice-rewrite task, switching from un-anchored examples to this pattern dropped Haiku's architectural-hallucination rate from 95% to 0% (n=25 across two probes).
| Task processing... | Recommended example budget |
|---|---|
| Short inputs (<500 tokens) | 1,500-2,500 tokens of examples (4-5 examples) |
| Medium inputs (500-4K tokens) | 2,500-4,000 tokens of examples (4-6 examples) |
| Long inputs (4K-8K tokens) | 3,000-5,000 tokens of examples (5-7 examples) |
These budgets assume Haiku's 200K context window. The constraint is diminishing returns, not cost — after 7 examples the marginal benefit drops sharply unless the task has a very large classification space.
Present the distilled prompt in a code block or artifact with clear section markers. Include:
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)
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.
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 |
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 |
Before delivering, verify the distilled prompt against these criteria:
<reasoning> tags explain WHY each example output is correctnpx claudepluginhub oaustegard/claude-skills --plugin ai-and-reasoningPrompt design techniques for LLMs: structure, examples, reasoning patterns, and optimization. Invoke whenever task involves any interaction with AI instructions — crafting, debugging, improving, or evaluating prompts for skills, agents, output styles, or system configurations.
Crafts, optimizes, and reviews prompts for any LLM using structured XML tags, output shaping, and ambiguity handling. Useful when building agentic systems or improving prompt clarity.
Converts Opus-quality skills into deterministic Haiku-executable workflows via trace-driven distillation and cross-model validation.