hermes-agent-skill-authoring
Skill1 starsChanged 46 days agoMITView on GitHub
Author in-repo SKILL.md: frontmatter, validator, structure, and writing-quality principles.
15 other projects use a version of this, 12 of them edited.
Adopted by
Most recently taken up by
- delorenj/skillsedited, first seen Nov 7, 2026
- iberi22/skillsedited, first seen Oct 15, 2026
- AtlasOmnia/hermes-custom-packedited, first seen Oct 13, 2026
- nobodyohm-web/Thotedited, first seen Oct 13, 2026
- barzzly/BarzzLyp_Agent_Skillsedited, first seen Oct 8, 2026
- abduznik/abduznik-skillsedited, first seen Sep 7, 2026
Other versions15 projects use a version of this.
Word for word · 3
- john-data-chen/hermes-agent-backup★ 2100% same
- iizcm/hermes-agent-skill-authoring-skill★ 0100% same
- lucas-albers-lz4/hermes-agent-skills★ 0100% same
Edited · 12
- aivrar/portable-hermes-agent★ 23920% same
- AtlasOmnia/donna-starter★ 13692% same
- AtlasOmnia/hermes-custom-pack★ 7592% same
- delorenj/skills★ 1795% same
- Samin12/skills★ 819% same
- abduznik/abduznik-skills★ 267% same
- 2867203296/hermes-agent★ 091% same
- barzzly/BarzzLyp_Agent_Skills★ 020% same
- iberi22/skills★ 019% same
- ishanbhosale08/Daedalus★ 098% same
2 more not listed
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository125 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skill-authoringSkill
- apple-notesSkill
- apple-remindersSkill
- findmySkill
- imessageSkill
- agy-customizationsSkill
- antigravity-guideSkill
- awesome-skills-masterSkill
- claude-codeSkill
- codexSkill
- computer-useSkill
- context-modeSkill
- dogfoodSkill
- hermes-agentSkill
- opencodeSkill
- rag-local-lancedbSkill
- skills-sh-registrySkill
- watermarks-removerSkill
- yuanbaoSkill
- libretranslate-markdown-i18nSkill
- mt-markup-preserving-translationSkill
- architecture-diagramSkill
- ascii-artSkill
- ascii-videoSkill
- baoyu-infographicSkill
- claude-designSkill
- comfyuiSkill
- design-mdSkill
- excalidrawSkill
- humanizerSkill
- manim-videoSkill
- p5jsSkill
- popular-web-designsSkill
- portfolio-github-pagesSkill
- pretextSkill
- sketchSkill
- songwriting-and-ai-musicSkill
- touchdesigner-mcpSkill
- jupyter-live-kernelSkill
- suap-iff-apiSkill
- desktop-themingSkill
- hermes-desktop-pluginsSkill
- docker-single-port-multi-instanceSkill
- hybrid-desktop-server-opsSkill
- himalayaSkill
- codebase-inspectionSkill
- git-conventional-commitsSkill
- github-authSkill
- github-code-reviewSkill
- github-issue-pr-attribsSkill
- github-issuesSkill
- github-profile-readmeSkill
- github-pr-workflowSkill
- github-repo-managementSkill
- github-starred-kbSkill
- hermes-installed-catalogSkill
- readme-templateSkill
- cv-latex-multilingualSkill
- latex-cv-maintenanceSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 7 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 68
Use these quality checks when writing or editing any skill:
- Distinctive: line 70
Optimize for process predictability: Ask: what behavior should change when this skill loads?
- Very specific: line 72
Use an information hierarchy: Put always-needed steps in SKILL.md.
- Distinctive: line 74
Co-locate rules with the concept they govern: Avoid scattering one idea across the file.
- Distinctive: line 75
Use strong leading words: Prefer compact concepts the model already knows — e.g.
- Distinctive: line 76
Prune duplication and no-ops: Keep each meaning in one source of truth.
- Distinctive: line 77
Watch for premature completion: If agents tend to rush a step, first sharpen that step's completion criterion.
- Distinctive: line 89
Every in-repo skill follows roughly:
- Very specific: line 116
Not every section is mandatory, but Overview + When to Use + actionable body + pitfalls are the minimum for the skill to feel like a peer.
- Very specific: line 134
Read 2-3 peer SKILL.md files to match tone and structure.
- Very specific: line 170
Forgetting the author/license/metadata block: Not validator-enforced, but every peer has it.
- Very specific: line 172
Writing a skill that duplicates a peer: Before creating, ls skills/<category>/ and open 2-3 peers.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Authoring Hermes-Agent Skills (in-repo)
Overview
There are two places a SKILL.md can live:
- User-local:
~/.hermes/skills/<maybe-category>/<name>/SKILL.md— personal, not shared. Created viaskill_manage(action='create'). - In-repo (this skill is about this case):
/home/bb/hermes-agent/skills/<category>/<name>/SKILL.md— committed, shipped with the package. Usewrite_file+git add.skill_manage(action='create')does NOT target this tree.
When to Use
- User asks you to add a skill "in this branch / repo / commit"
- You're committing a reusable workflow that should ship with hermes-agent
- You're editing an existing skill under
/home/bb/hermes-agent/skills/(usepatchfor small edits,write_filefor rewrites;skill_managestill works for patch on in-repo skills, but not forcreate)
Required Frontmatter
Source of truth: tools/skill_manager_tool.py::_validate_frontmatter. Hard requirements:
- Starts with
---as the first bytes (no leading blank line). - Closes with
\n---\nbefore the body. - Parses as a YAML mapping.
namefield present.descriptionfield present, ≤ 1024 chars (MAX_DESCRIPTION_LENGTH).- Non-empty body after the closing
---.
Peer-matched shape used by every skill under skills/software-development/:
---
name: my-skill-name # lowercase, hyphens, ≤64 chars (MAX_NAME_LENGTH)
description: Use when <trigger>. <one-line behavior>.
version: 1.1.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [short, descriptive, tags]
related_skills: [other-skill, another-skill]
---version / author / license / metadata are NOT enforced by the validator, but every peer has them — omit and your skill sticks out.
Size Limits
- Description: ≤ 1024 chars (enforced).
- Full SKILL.md: ≤ 100,000 chars (enforced as
MAX_SKILL_CONTENT_CHARS, ~36k tokens). - Peer skills in
software-development/sit at 8-14k chars. Aim for that range. If you're pushing past 20k, split intoreferences/*.mdand reference them from SKILL.md.
Writing Quality Principles
A skill exists to make the agent's process more predictable. Predictability does not mean identical output every run; it means the agent reliably follows the same useful discipline.
Use these quality checks when writing or editing any skill:
- Optimize for process predictability. Ask: what behavior should change when this skill loads? If a line does not change behavior, cut it.
- Choose the right context load. A model-invoked Hermes skill pays for its description every turn. Keep descriptions focused on trigger classes and the skill's distinctive behavior. Put details in the body or linked references.
- Use an information hierarchy. Put always-needed steps in
SKILL.md; put branch-specific or bulky reference material inreferences/,templates/, orscripts/and point to it only when needed. - End steps with completion criteria. Each ordered step should say how the agent knows it is done. Good criteria are checkable and, when it matters, exhaustive: "every modified file accounted for" beats "summarize changes."
- Co-locate rules with the concept they govern. Avoid scattering one idea across the file. Keep definition, caveats, examples, and verification near each other.
- Use strong leading words. Prefer compact concepts the model already knows — e.g. "tight loop," "tracer bullet," "root cause," "regression test" — over long repeated explanations. A good leading word saves tokens and anchors behavior.
- Prune duplication and no-ops. Keep each meaning in one source of truth. Sentence by sentence, ask whether the sentence changes agent behavior versus the default. If not, delete it rather than polishing it.
- Watch for premature completion. If agents tend to rush a step, first sharpen that step's completion criterion. Split the sequence only when later steps distract from doing the current step well.
Common quality failures:
- Premature completion — the skill lets the agent move on before the work is genuinely done.
- Duplication — the same rule appears in multiple places and drifts.
- Sediment — stale lines remain because adding felt safer than deleting.
- Sprawl — too much always-visible material; push branch-specific reference behind pointers.
- No-op prose — generic advice the agent would already follow without the skill.
Peer-Matched Structure
Every in-repo skill follows roughly:
# <Title>
## Overview
One or two paragraphs: what and why.
## When to Use
- Bulleted triggers
- "Don't use for:" counter-triggers
## <Topic sections specific to the skill>
- Quick-reference tables are common
- Code blocks with exact commands
- Hermes-specific recipes (tests via scripts/run_tests.sh, ui-tui paths, etc.)
## Common Pitfalls
Numbered list of mistakes and their fixes.
## Verification Checklist
- [ ] Checkbox list of post-action verifications
## One-Shot Recipes (optional)
Named scenarios → concrete command sequences.Not every section is mandatory, but Overview + When to Use + actionable body + pitfalls are the minimum for the skill to feel like a peer.
Directory Placement
skills/<category>/<skill-name>/SKILL.mdCategories currently in repo (confirm with ls skills/): autonomous-ai-agents, creative, data-science, devops, dogfood, email, gaming, github, leisure, mcp, media, mlops/*, note-taking, productivity, red-teaming, research, smart-home, social-media, software-development.
Pick the closest existing category. Don't invent new top-level categories casually.
Workflow
- Survey peers in the target category:
Read 2-3 peer SKILL.md files to match tone and structure.ls skills/<category>/ - Check validator constraints in
tools/skill_manager_tool.pyif unsure. - Draft with
write_filetoskills/<category>/<name>/SKILL.md. - Validate locally:
import yaml, re, pathlib content = pathlib.Path("skills/<category>/<name>/SKILL.md").read_text() assert content.startswith("---") m = re.search(r'\n---\s*\n', content[3:]) fm = yaml.safe_load(content[3:m.start()+3]) assert "name" in fm and "description" in fm assert len(fm["description"]) <= 1024 assert len(content) <= 100_000 - Git add + commit on the active branch.
- Note: the CURRENT session's skill loader is cached —
skill_view/skills_listwill not see the new skill until a new session. This is expected, not a bug.
Cross-Referencing Other Skills
metadata.hermes.related_skills unions both trees (skills/ in-repo and ~/.hermes/skills/) at load time. You CAN reference a user-local skill from an in-repo skill, but it won't resolve for other users who clone the repo fresh. Prefer referencing only in-repo skills from in-repo skills. If a frequently-referenced skill lives only in ~/.hermes/skills/, consider promoting it to the repo.
Editing Existing In-Repo Skills
- Small fix (typo, added pitfall, tightened trigger):
skill_manage(action='patch', name=..., old_string=..., new_string=...)works fine on in-repo skills. - Major rewrite:
write_filethe whole SKILL.md.skill_manage(action='edit')also works but requires supplying the full new content. - Adding supporting files:
write_filetoskills/<category>/<name>/references/<file>.md,templates/<file>, orscripts/<file>.skill_manage(action='write_file')also works and enforces the references/templates/scripts/assets subdir allowlist. - Always commit the edit — in-repo skills are source, not runtime state.
Common Pitfalls
- Using
skill_manage(action='create')for an in-repo skill. It writes to~/.hermes/skills/, not the repo tree. Usewrite_filefor in-repo creation. - Leading whitespace before
---. The validator checkscontent.startswith("---"); any leading blank line or BOM fails validation. - Description too generic. Peer descriptions start with "Use when ..." and describe the trigger class, not the one task. "Use when debugging X" > "Debug X".
- Forgetting the author/license/metadata block. Not validator-enforced, but every peer has it; omitting makes the skill look half-finished.
- Writing a skill that duplicates a peer. Before creating,
ls skills/<category>/and open 2-3 peers. Prefer extending an existing skill to creating a narrow sibling. - Expecting the current session to see the new skill. It won't. The skill loader is initialized at session start. Verify in a fresh session or via
skill_viewusing the exact path. - Letting skills accumulate sediment. A skill should get shorter or sharper over time. When adding a rule, remove the old wording it replaces; don't layer advice forever.
- Writing no-op prose. "Be careful," "be thorough," and "use best practices" rarely change model behavior. Replace with a checkable completion criterion or a stronger leading word.
- Linking to skills that don't exist in-repo.
related_skills: [some-user-local-skill]works for you but breaks for other clones. Prefer only in-repo links.
Verification Checklist
- File is at
skills/<category>/<name>/SKILL.md(not in~/.hermes/skills/) - Frontmatter starts at byte 0 with
---, closes with\n---\n name,description,version,author,license,metadata.hermes.{tags, related_skills}all present- Name ≤ 64 chars, lowercase + hyphens
- Description ≤ 1024 chars and starts with "Use when ..."
- Total file ≤ 100,000 chars (aim for 8-15k)
- Structure:
# Title→## Overview→## When to Use→ body →## Common Pitfalls→## Verification Checklist - Each ordered step has a checkable completion criterion
- Description is trigger-focused and avoids duplicated body content
- Bulky or branch-specific reference is progressively disclosed in linked files
- No-op prose and duplicated rules removed
related_skillsreferences resolve in-repo (or are explicitly OK to be user-local)git add skills/<category>/<name>/ && git commitcompleted on the intended branch
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

