What problem does it solve? It prevents costly mistakes when working with the newsletter crawler's LLM layer: invalid reasoning efforts that trigger HTTP 400 errors, stale API keys causing 401s, runaway classification costs, and pipeline starvation from prompts that return oversized outputs. ## Core Features & Use Cases - Provider and model configuration: Covers the OpenRouter vs direct DeepSeek transport split, model slug translation, reasoning effort levels (xhigh/high/medium, never max), and the two-tier Pro/Flash stage strategy. - Structured output discipline: Documents the json_schema strict plus zod validation pattern, defensive JSON parsing with retry and Pro escalation, and the small-output rule for high-volume stages. - Cost and reliability patterns: Explains per-facet classification cost traps, batch relevance judging with tolerant id merging, per-section roundup curation, local cost computation for the direct API, and the .env key override plus runtime live-binding gotchas. - Use Case: When a crawl suddenly returns 401 errors or a new LLM stage ignores its models.json entry, consult this Skill to find the live-binding key fix or the missing STAGE_KEYS registration. ## Quick Start Ask the AI to review your change to src/llm.js using the calling-the-llm-layer skill before modifying any prompt, schema, reasoning effort, or model.