defaultSkillRoots function
The default skill roots for a host.
Project: .fah/skills + .agents/skills (first-party), then the
third-party Agent Skills locations .claude/skills, .github/skills,
.codex/skills, plus Claude's .claude/commands (flat command files).
User (when a home directory exists): the same set under ~, plus
~/.copilot/skills and ~/.claude/commands. Web/sandbox hosts pass
their sandbox cwd and no home (the sandbox FS carries project skills).
Implementation
({List<SkillRoot> projectRoots, List<SkillRoot> userRoots}) defaultSkillRoots({
required String cwd,
String? homeDir,
}) {
return (
projectRoots: [
SkillRoot('$cwd/.fah/skills', SkillSource.fah),
SkillRoot('$cwd/.agents/skills', SkillSource.agents),
SkillRoot('$cwd/.claude/skills', SkillSource.claude),
SkillRoot('$cwd/.github/skills', SkillSource.copilot),
SkillRoot('$cwd/.codex/skills', SkillSource.codex),
SkillRoot('$cwd/.claude/commands', SkillSource.claude, commandDir: true),
],
userRoots: homeDir == null
? const <SkillRoot>[]
: [
SkillRoot('$homeDir/.fah/skills', SkillSource.fah),
SkillRoot('$homeDir/.agents/skills', SkillSource.agents),
SkillRoot('$homeDir/.claude/skills', SkillSource.claude),
SkillRoot('$homeDir/.copilot/skills', SkillSource.copilot),
SkillRoot('$homeDir/.codex/skills', SkillSource.codex),
SkillRoot(
'$homeDir/.claude/commands',
SkillSource.claude,
commandDir: true,
),
],
);
}