cli/cli · error
could not list skill files: %w
Error message
could not list skill files: %w
What it means
Error "could not list skill files: %w" thrown in cli/cli.
Source
Thrown at internal/skills/installer/installer.go:260
return fmt.Errorf("could not inject metadata: %w", injectErr)
}
content = []byte(injected)
}
return os.WriteFile(destPath, content, 0o644)
})
}
func installSkill(opts *Options, skill discovery.Skill, baseDir string) error {
// Use skill.Name (not InstallName) for a flat directory layout.
skillDir := filepath.Join(baseDir, skill.Name)
if err := os.MkdirAll(skillDir, 0o755); err != nil {
return fmt.Errorf("could not create directory %s: %w", skillDir, err)
}
files, err := discovery.DiscoverSkillFiles(opts.Client, opts.Host, opts.Owner, opts.Repo, skill.TreeSHA, skill.Path)
if err != nil {
return fmt.Errorf("could not list skill files: %w", err)
}
safeSkillDir, err := safepaths.ParseAbsolute(skillDir)
if err != nil {
return fmt.Errorf("could not resolve skill directory path: %w", err)
}
for _, file := range files {
fetchedContent, err := discovery.FetchBlob(opts.Client, opts.Host, opts.Owner, opts.Repo, file.SHA)
if err != nil {
return fmt.Errorf("could not fetch %s: %w", file.Path, err)
}
// Install path: the blob is written to disk verbatim, so the raw bytes
// must be preserved.
content := fetchedContent.Raw()
relPath := strings.TrimPrefix(file.Path, skill.Path+"/")View on GitHub (pinned to 0eeec0b92e)
Solutions
- Check that the skill directory exists and is readable, then retry.
When it happens
Trigger: Thrown at internal/skills/installer/installer.go:260 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of cli/cli@0eeec0b92e (2026-08-15).
Data as JSON: /api/errors/05a89a3a5b9cdc7a.
Report an issue: GitHub.