diff --git a/server/skillhub-domain/src/main/java/com/iflytek/skillhub/domain/skill/validation/SkillPackagePolicy.java b/server/skillhub-domain/src/main/java/com/iflytek/skillhub/domain/skill/validation/SkillPackagePolicy.java index eab8d2e2..6ace64ad 100644 --- a/server/skillhub-domain/src/main/java/com/iflytek/skillhub/domain/skill/validation/SkillPackagePolicy.java +++ b/server/skillhub-domain/src/main/java/com/iflytek/skillhub/domain/skill/validation/SkillPackagePolicy.java @@ -64,6 +64,15 @@ public final class SkillPackagePolicy { throw new IllegalArgumentException("Package entry path must be normalized: " + rawPath); } + // Normalize SKILL.md basename case-insensitively + int lastSlash = canonical.lastIndexOf('/'); + String fileName = lastSlash >= 0 ? canonical.substring(lastSlash + 1) : canonical; + if (fileName.equalsIgnoreCase(SKILL_MD_PATH)) { + canonical = lastSlash >= 0 + ? canonical.substring(0, lastSlash + 1) + SKILL_MD_PATH + : SKILL_MD_PATH; + } + return canonical; }