feat(skills): categorize tap skills from skills.sh.json grouping sidecar
A GitHub tap can ship a repo-root skills.sh.json (the published skills.sh
schema) declaring category groupings. The Skills Hub now reads it at index
time and uses each grouping title as the skill's category label, instead of
the tag-derived guess. Generic: any tap that ships the file gets real
categorization — NVIDIA's groupings (Inference AI, Decision Optimization,
GPU Development, etc.) flow through automatically.
- GitHubSource: _get_skillsh_groupings() fetches+caches the sidecar per repo;
_parse_skillsh_groupings() flattens it to {skill_name: title};
_list_skills_in_repo() stamps meta.extra['category']; _meta_to_dict now
serializes extra so the category survives the index cache round-trip.
- extract-skills.py: prefers extra['category'] over the tag heuristic and
exempts sidecar categories from the small-category to Other collapse.
- Docs + 12 tests.
This commit is contained in:
@@ -477,6 +477,25 @@ hermes skills install openai/skills/k8s
|
||||
hermes skills tap add myorg/skills-repo
|
||||
```
|
||||
|
||||
**Category groupings (`skills.sh.json`).** A GitHub tap may ship a
|
||||
`skills.sh.json` file at its repo root following the
|
||||
[skills.sh schema](https://skills.sh/schemas/skills.sh.schema.json). Its
|
||||
`groupings` (each with a `title` and a list of skill names) are read at index
|
||||
time and become the category labels shown in the
|
||||
[Skills Hub](https://hermes-agent.nousresearch.com/docs) page — instead of a
|
||||
tag-derived guess. This is generic: any tap that ships the file gets real
|
||||
categorization, no Hermes-side changes required.
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "https://skills.sh/schemas/skills.sh.schema.json",
|
||||
"groupings": [
|
||||
{ "title": "Inference AI", "skills": ["dynamo-recipe-runner", "dynamo-router-sla"] },
|
||||
{ "title": "Decision Optimization", "skills": ["cuopt-developer", "cuopt-install"] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### 5. ClawHub (`clawhub`)
|
||||
|
||||
A third-party skills marketplace integrated as a community source.
|
||||
|
||||
Reference in New Issue
Block a user