Describe the bug
gh skill install fails with no skills found for a repo that has no skills/ directory and keeps its SKILL.md files in nested subdirectories like <category>/<skill>/SKILL.md.
android/skills is a public example.
Its skills live under category folders such as performance/r8-analyzer/SKILL.md, and there's no skills/ directory anywhere.
I first filed this on the skills repo (android/skills#48) and hoped #13459 would fix it, but it doesn't, so I'm opening it here.
#13459 fixed discovery when the skills/ directory itself is nested (e.g. terraform/code-generation/skills/foo/SKILL.md). But that's a nested skills/ directory. It doesn't help when there's no skills/ directory and the nested thing is the SKILL.md file itself, so a repo like android/skills still can't be installed by name.
The only thing that works is passing the full path, which skips discovery:
gh skill install android/skills performance/r8-analyzer/SKILL.md
I think this layout should be supported. The Agent Skills spec that gh skill install --help links to only defines a single skill directory (a folder with a SKILL.md whose name matches the folder name).
It doesn't require a skills/ directory or say anything about repo layout, so the skills/*/SKILL.md requirement is gh's own convention.
Affected version
gh version 2.96.0 (2026-07-02)
https://github.com/cli/cli/releases/tag/v2.96.0
Steps to reproduce the behavior
gh skill install android/skills
Expected vs actual behavior
Expected behavior
The skills under <category>/<skill>/SKILL.md are discovered and can be installed by name, without needing a skills/ directory.
Actual behavior
$ gh skill install android/skills
no skills found in android/skills
Expected skills in skills/*/SKILL.md, skills/{scope}/*/SKILL.md,
{prefix}/skills/*/SKILL.md, {prefix}/skills/{scope}/*/SKILL.md,
*/SKILL.md, or plugins/*/skills/*/SKILL.md
This repository may be a curated list rather than a skills publisher
Logs
Resolving version ⣾* Request at 2026-07-14 20:36:35.558884 +0900 JST m=+0.066243834
* Request to https://api.github.com/repos/android/skills/releases/latest
* Request at 2026-07-14 20:36:35.561133 +0900 JST m=+0.068493792
* Request to https://api.github.com/repos/android/skills
Resolving version ⢿* Request took 427.430208ms
Resolving version ⡿* Request at 2026-07-14 20:36:36.037785 +0900 JST m=+0.545173001
* Request to https://api.github.com/repos/android/skills/git/ref/tags/v1.0.5
* Request took 527.072042ms
Resolving version ⣷* Request took 367.084041ms
Using ref v1.0.5 (aaf42b97)
Discovering skills ⣾* Request at 2026-07-14 20:36:36.445168 +0900 JST m=+0.952578667
* Request to https://api.github.com/repos/android/skills/git/trees/aaf42b970f9e6ee49e38aabd5cd0d00612e04a5a?recursive=true
Discovering skills ⢿* Request took 371.285834ms
no skills found in android/skills
Expected skills in skills/*/SKILL.md, skills/{scope}/*/SKILL.md,
{prefix}/skills/*/SKILL.md, {prefix}/skills/{scope}/*/SKILL.md,
*/SKILL.md, or plugins/*/skills/*/SKILL.md
This repository may be a curated list rather than a skills publisher
Additional context
Related issues:
Describe the bug
gh skill installfails withno skills foundfor a repo that has noskills/directory and keeps itsSKILL.mdfiles in nested subdirectories like<category>/<skill>/SKILL.md.android/skills is a public example.
Its skills live under category folders such as
performance/r8-analyzer/SKILL.md, and there's noskills/directory anywhere.I first filed this on the skills repo (android/skills#48) and hoped #13459 would fix it, but it doesn't, so I'm opening it here.
#13459 fixed discovery when the
skills/directory itself is nested (e.g.terraform/code-generation/skills/foo/SKILL.md). But that's a nestedskills/directory. It doesn't help when there's noskills/directory and the nested thing is theSKILL.mdfile itself, so a repo like android/skills still can't be installed by name.The only thing that works is passing the full path, which skips discovery:
I think this layout should be supported. The Agent Skills spec that
gh skill install --helplinks to only defines a single skill directory (a folder with aSKILL.mdwhosenamematches the folder name).It doesn't require a
skills/directory or say anything about repo layout, so theskills/*/SKILL.mdrequirement is gh's own convention.Affected version
Steps to reproduce the behavior
Expected vs actual behavior
Expected behavior
The skills under
<category>/<skill>/SKILL.mdare discovered and can be installed by name, without needing askills/directory.Actual behavior
Logs
Additional context
Related issues:
gh skill previewrejects exact skill paths accepted bygh skill install#13495gh skill preview/installfail to discover a root-levelSKILL.mdskill repository #13552