loadSkillsFromDir function
Future<List<SkillDefinition> >
loadSkillsFromDir(
- String dirPath, {
- SkillSource source = SkillSource.user,
Load skills from a directory. Recursively finds SKILL.md files and parses their frontmatter.
Implementation
Future<List<SkillDefinition>> loadSkillsFromDir(
String dirPath, {
SkillSource source = SkillSource.user,
}) async {
final dir = Directory(dirPath);
if (!await dir.exists()) return const [];
final skills = <SkillDefinition>[];
await for (final entity in dir.list(recursive: true)) {
if (entity is! File) continue;
final filename = entity.path.split('/').last;
if (filename != 'SKILL.md') continue;
try {
final content = await entity.readAsString();
final skill = _parseSkillFile(content, entity.path, source);
if (skill != null) skills.add(skill);
} catch (_) {
// Skip unreadable files
}
}
return skills;
}