Review code, refactors, helpers, services, repositories, APIs, modules, design patterns, and architecture decisions through the cost of abstraction. Use when asked whether code should be modularized, abstracted, extracted, simplified, inlined, generalized, refactored, or when reviewing overengineering, clean code, reusable code, contracts, layers, or architecture.
Review slow code, algorithms, data structures, database-heavy flows, loops, allocations, collections, serialization, and hot paths through hardware-aware performance thinking. Use when asked why something is slow, whether Big-O is enough, how to optimize, how to choose array vs map/tree/list, or how to reason about memory access, cache locality, allocations, async overhead, and real runtime behavior.
Ground AI-generated code, refactors, architectural suggestions, and implementation plans in real project constraints. Use when working with LLMs on coding tasks, asking an assistant to implement features, reviewing AI-generated code, preventing hallucinated architecture, translating vague requirements into code, or forcing the assistant to reason across requirement, API, runtime, data, and failure layers.
Teach programming concepts by moving across three abstraction levels: high-level code or product behavior, runtime/intermediate representation, and low-level data/hardware effects. Use when asked to deeply understand code, frameworks, React, .NET, SQL, Vite, APIs, memory, performance, compiler/runtime behavior, or when the user says “anlamamı sağla”, “deep reasoning yap”, “neden böyle”, or “mantığını anlat”.