--- user-invocable: false name: ml description: Machine learning and LLM engineering judgment, distilled from a stronger model - invoke when DECIDING whether/how to use ML or an LLM for a task (prompt vs RAG vs fine-tune vs classical); working with training/eval data or labels; building or reviewing evals for models and LLM features; designing RAG, structured output, or agent pipelines; or diagnosing why a model/LLM feature underperforms. Method-selection ladder, data and leakage discipline, eval-as-spec rules, LLM-era craft, and a trap catalog. --- # ML — approach, data, evals, LLM craft, traps Rule content lives in the five files below; this SKILL.md only routes (`doctrine/04-maintenance.md` governs edits to this bundle too). ## Route by moment | You are about to… | Read (in this folder) | |---|---| | Decide whether ML/an LLM is warranted, and which method rung to use | `approach.md` | | Touch a dataset, labels, or splits; suspect a score is too good | `data.md` | | Define success, build/judge an eval, or assess someone's metric claim | `evals.md` | | Build with LLMs: prompts, RAG, structured output, agents, model choice | `llm.md` | | Diagnose an underperforming model or LLM feature | `data.md` §1 first (read real failures), then `llm.md` §3 if RAG, `traps.md` to name the pattern | | Review an ML project's health; name why a claim or pipeline smells wrong | `traps.md` | A new ML feature usually runs `approach.md` (interrogate + pick the rung) → `evals.md` §1 (eval BEFORE build) → `data.md` → then `llm.md` if the rung is LLM-shaped → skim `traps.md` §C before finalizing any launch or monitoring plan. ## Scope and neighbors Modeling and evaluation judgment. The serving infrastructure around a model is ordinary backend (`backend` bundle: APIs, queues, operate.md); experiment execution discipline is `methods` (investigate/verify); whether to delegate → `doctrine`. ## The stance **The eval is the spec; anything unmeasured is folklore.** Look at the data with your own eyes (`data.md` §1), climb the method ladder from the cheapest rung (`approach.md` §3), and treat every surprising score as leakage until disproven (`data.md` §2). The failure mode of this field is not bad models — it is unearned confidence in numbers.