pub fn load_all(roots: &[PathBuf]) -> (Vec<Plugin>, Vec<LoadedSkill>)
Walk the given roots and discover all plugins and skills. Deduplicates on (plugin_name, skill_name); first occurrence wins.