# anti-patterns > ______________________________________________________________________ - Author: Na'aman Hirschfeld - Repository: kreuzberg-dev/ai-rulez - Version: 20260102103410 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/kreuzberg-dev/ai-rulez - Web: https://mule.run/skillshub/@@kreuzberg-dev/ai-rulez~anti-patterns:20260102103410 --- ______________________________________________________________________ ## priority: medium # Universal Anti-Patterns **Cross-language patterns to NEVER use:** - Any type (Python, TypeScript, Rust unknown) without exhaustive matching - Class-based tests (Python) – use function-based with pytest fixtures - Unwrap/panic in production code (Rust) – use Result\ - Mocking internal services – use real objects/fixtures - Manual dependency management – use lock files (Cargo.lock, pnpm-lock.yaml, etc.) - Blocking I/O in async code (Python/TypeScript) – fully async paths - Bare exception handlers – catch specific types only - Magic numbers – extract to named constants - Inheritance for code reuse – prefer composition - Global state – dependency injection instead - f-strings in logging – structured key=value logging - Duplication across bindings – core logic ALWAYS in Rust