"""Create recovery_planner
Generated by Phi-Octopus Eden
2025-11-08 08:43:13.775627
"""

```python
from typing import List, Dict


class RecoveryPlanner:
    """
    A class for creating a recovery plan that handles limited error scenarios.
    
    Attributes:
        actions (List[str]): List of actions to be taken in case of errors.
        conditions (Dict[str, str]): Dictionary mapping error conditions to the corresponding action.
    """
    
    def __init__(self):
        self.actions = []
        self.conditions = {}
        
    def add_error_condition(self, condition: str, action: str) -> None:
        """
        Add an error condition and its associated recovery action.

        Args:
            condition (str): The error condition to be handled.
            action (str): The action to take in response to the error condition.
            
        Raises:
            ValueError: If the condition or action is not a string.
        """
        if not isinstance(condition, str) or not isinstance(action, str):
            raise ValueError("Both condition and action must be strings.")
        
        self.conditions[condition] = action
        self.actions.append(action)
    
    def plan_recovery(self, error: str) -> bool:
        """
        Plan the recovery strategy for a specific error.

        Args:
            error (str): The error that occurred.
            
        Returns:
            bool: True if a recovery action was planned, False otherwise.
        
        Raises:
            ValueError: If the error is not recognized.
        """
        if error not in self.conditions:
            raise ValueError(f"Unrecognized error: {error}")
        
        print(f"Planning recovery for condition: {error} with action: {self.conditions[error]}")
        return True


# Example usage
if __name__ == "__main__":
    planner = RecoveryPlanner()
    planner.add_error_condition("disk_full", "shut_down_and_backup")
    planner.add_error_condition("out_of_memory", "clear_cache")
    
    # Simulate errors and recovery planning
    planner.plan_recovery("disk_full")  # Expected output: Planning recovery for condition: disk_full with action: shut_down_and_backup
    planner.plan_recovery("out_of_memory")  # Expected output: Planning recovery for condition: out_of_memory with action: clear_cache
```