package server import ( "os" "path/filepath" ) // absSkillPath joins a skill's relative file path (stored as // "/.md") onto the configured skills root, yielding the // absolute on-disk location of the markdown file. func absSkillPath(skillsDir, relPath string) string { return filepath.Join(skillsDir, filepath.Clean("/"+relPath)) } // removeAppSkillDir deletes the per-app skill directory after an app is // removed. Missing directory and non-empty errors are ignored; this is // best-effort cleanup. func removeAppSkillDir(skillsDir, appSlug string) { if appSlug == "" { return } _ = os.RemoveAll(filepath.Join(skillsDir, appSlug)) }