Case-based reasoning recognizes the power of individual solutions, while task-specific architectures take advantage of commonalities among groups of solutions. The key to combining the two lies in solving the riddle of case-based reasoning: how can uninterpreted cases be indexed for future use?.