MCPcopy Create free account
hub / github.com/GongShichen/LuminaCode / loadDirectory

Method loadDirectory

skills/loader.go:71–111  ·  view source on GitHub ↗
(root string, source SkillSource)

Source from the content-addressed store, hash-verified

69 return l.Config.CWD
70}
71
72func (l *SkillLoader) UserSkillsDir() string {
73 return expandSkillHome(l.Config.UserSkillsDir)
74}
75
76func (l *SkillLoader) BundledSkillsDir() string {
77 if l.Config.BundledSkillsDir != "" {
78 return l.Config.BundledSkillsDir
79 }
80 return apppaths.ProjectBundledSkillsDir(l.Config.CWD)
81}
82
83func (l *SkillLoader) loadDirectory(root string, source SkillSource) []SkillSpec {
84 info, err := os.Stat(root)
85 if err != nil || !info.IsDir() {
86 return nil
87 }
88 entries, err := os.ReadDir(root)
89 if err != nil {
90 return nil
91 }
92 sort.Slice(entries, func(i, j int) bool { return strings.ToLower(entries[i].Name()) < strings.ToLower(entries[j].Name()) })
93 var skills []SkillSpec
94 for _, entry := range entries {
95 if !entry.IsDir() {
96 continue
97 }
98 dir := filepath.Join(root, entry.Name())
99 skillFile := filepath.Join(dir, SkillFilename)
100 if _, err := os.Stat(skillFile); err != nil {
101 continue
102 }
103 resolved, err := filepath.EvalSymlinks(skillFile)
104 if err != nil {
105 resolved, err = filepath.Abs(skillFile)
106 if err != nil {
107 resolved = skillFile
108 }
109 }
110 if _, seen := l.seenPaths[resolved]; seen {
111 continue
112 }
113 fm, _, err := ParseSkillMD(skillFile)
114 if err != nil {

Callers 1

LoadFrontmatterOnlyMethod · 0.95

Calls 2

ParseSkillMDFunction · 0.85
NameMethod · 0.65

Tested by

no test coverage detected