Skills Repo Publishing
Trigger: Use when publishing a collection of agent skills as a GitHub tap repo for other Hermes/agent users.
Repo Layout
owner/skills-repo
├── skills/
│ ├── my-skill/
│ │ ├── SKILL.md # Required — skill definition
│ │ ├── references/ # Additional docs
│ │ ├── templates/ # Output templates
│ │ └── scripts/ # Helper scripts
│ └── another-skill/
│ └── SKILL.md
├── README.md # Consumption instructions
├── .gitignore # No Hermes internal state
SKILL.md Format (Required)
---
name: my-skill
description: Trigger-based description under 60 chars ending with period.
tags: [git, version-control]
---
Consuming the Tap
Hermes Tap Method
hermes skills tap add owner/skills-repo
# Edit ~/.hermes/.hub/taps.json:
# {"taps": [{"repo": "owner/skills-repo", "path": "skills/"}]}
hermes skills install owner/skills-repo/<skill-name>
Hermes External Dir Method
# config.yaml
skills:
external_dirs:
- ~/skills-repo/skills
Other Agents (Codex, Claude Code, Cline)
git clone https://github.com/owner/skills-repo.git
# Point agent's skills directory at ./skills-repo/skills/
Category Metadata (Optional)
skills.sh.json at repo root:
{
"$schema": "https://skills.sh/schemas/skills.sh.schema.json",
"groupings": [
{"title": "Git & Version Control", "skills": ["git-branching", "git-rebase"]}
]
}
.gitignore Template
.bundled_manifest
.curator_state
.usage.json
.usage.json.lock
IDEA.md
.DS_Store
Thumbs.db
__pycache__/
.venv/
.idea/
.vscode/
Pitfalls
- Flat skills/ required: Tap scans one level deep —
skills/cat/name/SKILL.mdwon't be found - Category in frontmatter: Put category in YAML, not in the directory path
- GitHub token: For private taps, users need
GITHUB_TOKENin.env
Verification
ls skills/ | wc -l # Skill count
head -5 skills/*/SKILL.md | grep "^name:" | wc -l # Valid frontmatter
hermes skills tap add owner/skills-repo # Test discovery