What problem does it solve? Dispatching a local model to the wrong hardware tier (e.g., an MLX model on a Windows CUDA host) causes crashes, OOM errors, and driver resets. This Skill enforces fail-closed pre-dispatch validation so incompatible model-hardware combinations raise explicit errors instead of failing silently. ## Core Features & Use Cases - Fail-Closed Affinity Gate: Returns PREFER, ALLOW, or NEVER verdicts for any model/tier pair and raises a HardwareAffinityError on NEVER with no silent fallback. - Live Model Inventory Verification: Queries LM Studio /v1/models and Ollama /api/tags (plus ollama ps for GPU residency) at dispatch time instead of relying on hardcoded model IDs. - Canonical Routing Rules: Encodes Mac (MLX-only) and Windows (GGUF-only) tier policies sourced from Perpetua-Tools, with readiness canary thresholds for LM Studio endpoints. - Use Case: Before spawning an agent that loads a local model, run check_affinity(model_id, tier) to confirm the model is allowed on that host, or use resolve_model() to pick the correct default model per task type. ## Quick Start Ask the agent to check whether a given model ID is allowed on the Mac or Windows tier before dispatching it to LM Studio or Ollama.