What problem does it solve? Routing, gating, and classification decisions in software usually require a chat model to generate text that is then parsed back into an if statement, which is slow and fragile. This Skill runs runtime-defined semantic decisions locally: you supply unstructured state, a criterion question, and 2-16 typed options, and the semif-score CLI reads option probabilities directly from answer-slot logits in a single forward pass, with no text generation, no JSON repair, and no external API. ## Core Features & Use Cases - Generation-free local decisions: One JSONL row per decision (state + question + typed options) is scored in one forward pass, returning probabilities that sum to 1 plus full provenance (model revision, per-file sha256, prompt hash). - Self-repairing environment: A read-only doctor (check_env.sh) diagnoses the setup, an idempotent setup script installs the pinned MLX or Torch runtime, and a wrapper runner selects cached verified Qwen3.5 presets, validates every row, and commits results atomically. - Use Case: On an Apple Silicon Mac, triage incoming customer messages by writing a JSONL file where each row asks which queue should handle the request, then run the wrapper offline to get per-row winning options and probabilities, auto-accepting rows above a calibrated threshold and routing the rest to a human. ## Quick Start Ask the AI to run the bundled examples file through the SemIf runner offline on this Mac and report the winning option and probability for every row.