One cat per row, one per column, one per colored region. No two cats may touch β not even diagonally.
The hint engine first looks for a forced move: a row, column, or region with only one cell left. If none exists, it tests each empty cell by assuming a cat sits there and following the consequences. If that assumption empties out some region, row, or column, the cell is impossible β and the chain that proves it is what you see drawn on the board.