Although diagnosis occurs in very different fields, the basic problem is always the same; diagnosis is searching for causes of failures. Introducing the task-specific Diagnosis Domain separates the basic problem from its application occurrences and provides a platform for formulating diagnosis problem solving application-independently. An application attains the platform via the Domain Abstraction. The Diagnosis Kernel addresses the basic problem and directly generates the minimal candidates (causes) of Incorrect observations (failures) in the Diagnosis Domain. The adder-multiplier example demonstrates the presented approach.