@@ -934,37 +934,47 @@ def load_org_skills(
934934 logger .warning ("Failed to access org skills repository" )
935935 return all_skills
936936
937- # Load skills from the local repository
938- skills_dir = repo_path / "skills"
939- if not skills_dir .exists ():
940- logger .warning (
941- f"Skills directory not found in org repository: { skills_dir } "
942- )
943- return all_skills
944-
945- # Find SKILL.md directories (AgentSkills format) and regular .md files
946- skill_md_files = find_skill_md_directories (skills_dir )
947- skill_md_dirs = {skill_md .parent for skill_md in skill_md_files }
948- regular_md_files = find_regular_md_files (skills_dir , skill_md_dirs )
949-
950- all_skill_files = list (skill_md_files ) + list (regular_md_files )
951- logger .info (
952- f"Found { len (all_skill_files )} skill files in org skills repository"
953- )
937+ # Load skills from skills/ (preferred) and microagents/ (legacy)
938+ for dir_name in ("skills" , "microagents" ):
939+ search_dir = repo_path / dir_name
940+ if not search_dir .exists ():
941+ continue
954942
955- for skill_file in all_skill_files :
956- try :
957- skill = Skill .load (
958- path = skill_file ,
959- skill_base_dir = repo_path ,
960- )
961- if skill is None :
943+ skill_md_files = find_skill_md_directories (search_dir )
944+ skill_md_dirs = {skill_md .parent for skill_md in skill_md_files }
945+ regular_md_files = find_regular_md_files (search_dir , skill_md_dirs )
946+
947+ all_skill_files = list (skill_md_files ) + list (regular_md_files )
948+ logger .info (f"Found { len (all_skill_files )} skill files in org { dir_name } /" )
949+
950+ existing_names = {s .name for s in all_skills }
951+ for skill_file in all_skill_files :
952+ try :
953+ skill = Skill .load (
954+ path = skill_file ,
955+ skill_base_dir = repo_path ,
956+ )
957+ if skill is None :
958+ continue
959+ if skill .name in existing_names :
960+ logger .debug (
961+ f"Skipping duplicate org skill '{ skill .name } ' "
962+ f"from { dir_name } /"
963+ )
964+ continue
965+ all_skills .append (skill )
966+ existing_names .add (skill .name )
967+ logger .debug (f"Loaded org skill: { skill .name } " )
968+ except Exception as e :
969+ logger .warning (
970+ f"Failed to load skill from { skill_file .name } : { str (e )} "
971+ )
962972 continue
963- all_skills . append ( skill )
964- logger . debug ( f"Loaded org skill: { skill . name } " )
965- except Exception as e :
966- logger . warning ( f"Failed to load skill from { skill_file . name } : { str ( e ) } " )
967- continue
973+
974+ if not all_skills :
975+ logger . warning (
976+ "No skills/ or microagents/ directory found in org repository"
977+ )
968978
969979 except Exception as e :
970980 logger .warning (f"Failed to load org skills from { repo_url } : { str (e )} " )
0 commit comments