# Evals: inventory

Run the cases in `cases.yaml` against the skill. The `should_trigger` prompts (including the Catalan and Spanish ones, and the non-obvious "stocking out of X while sitting on a year of Y" symptom) should all load and apply `inventory`. The `should_not_trigger` prompts must each route to the named real sibling instead — `procurement` for raising/negotiating the PO, `logistics-ops` for warehousing/picking/shipping, `forecasting` for the statistical demand model, `dashboard` for the KPI visualization. The `capability` case is the rigor check: feed the agent a SKU list with demand, cost, lead times (some volatile), ordering and holding cost, and grade the output against the `must_include` rubric — differentiated service levels from ABC×XYZ, the safety-stock formula matched to what varies, ROP and EOQ kept as separate columns, a review mode per class, a clean trigger list with no false positives, dead-stock flagged, and the actual buy routed to procurement. `scripts/verify.sh` is the structural gate: point it at the emitted policy-table and trigger-list CSVs to confirm the required columns, that ROP ≥ safety stock, that order quantities are positive, and that the trigger list contains no false triggers. It validates shape and structural invariants only — it does not judge whether the buffer sizes are commercially right; that is the capability rubric's job.
