pub fn read_plan_cache(repo_root: &Path, task_id: &str) -> Result<String>
Read a plan from the cache. Fails if missing or empty.