Repository navigation
Breaking change
The [validation] optional extra is removed. Anyone installing transmogrifier[validation] will now get a pip error. Core transmogrifier functionality (register detection, rule-based rewriting, LLM-based translation via the anthropic/openai/gemini backends, MCP server, CLI) is unchanged and does not depend on any native libraries.
Why
The [validation] extra depended on sentence-transformers, which transitively pulls torch and scikit-learn. On macOS those two wheels ship mutually-incompatible libomp.dylib install names, and the OpenMP runtime aborts the Python process when both load into memory together. pip install 'transmogrifier[validation]' was unsafe on any fresh macOS machine.
The validator itself was a single-purpose optional feature — a >0.95 cosine-similarity check on embedding pairs to catch semantic drift during Level 3 LLM translation. Nothing else in transmogrifier depended on it, and no downstream tool (advocate, constrain, kindex, pact) imported it. The cost-benefit didn't support keeping it as a primary feature.
Migration
If you were using transmogrifier[validation]:
- Drop the extra.
pip install transmogrifiergives you the core register-translation functionality. The Level 1 (system prompt injection) and Level 2 (rule-based rewriting) paths are unchanged. - If you need validation, you have two options until the Voyage-based replacement ships:
- Install
sentence-transformersmanually and carry the libomp risk yourself, then implement the two-line cosine-similarity check directly in your caller code. - Wait for
transmogrifier[validation-voyage], which will provide the same semantic-drift check via Voyage AI's embeddings API (Anthropic's officially recommended embeddings provider) with no native dependencies. SeeNOTES.mdin the repo for the implementation sketch.
- Install
What's unchanged
- Register detection (
transmog detect) - Rule-based rewriting (Level 1/2)
- LLM-based translation via anthropic/openai/gemini backends (Level 3)
- MCP server (
transmog-mcp) - CLI (
transmogrify) - Model profiles, calibration, task classifier, system prompts, kindex integration
- All existing tests pass
This is a pre-1.0 minor version bump (0.2.0 → 0.3.0) because removing a public optional extra is a breaking change for pinned dependents per semver convention.