hermes-skills-portfolio
AGENTS.md1 starsChanged 3 months agoMITView on GitHub
Instructions for AI agents (Claude, GPT, Hermes, Cursor, etc.) working on this repository. A public portfolio of empowering skills for the Hermes agent platform. Each skill lives in skills/<name>/ with a SKILL.md (agent instructions) and README.md (human-facing docs). A four-page static site in docs/ (mirrored from site/) renders the portfolio on GitHub Pages — Catalog, Bundles, Changelog, Submit a skill — sharing one locked design system. Read design.md before touching any page. It is the single source of truth for…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository58 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- api-test-suiteSkill
- ascii-artSkill
- caddy-reverse-proxySkill
- changelog-generatorSkill
- color-palette-generatorSkill
- cron-taskSkill
- csv-toolkitSkill
- discord-bot-buildSkill
- docker-umbrellaSkill
- dotfiles-manageSkill
- email-sendSkill
- env-config-managerSkill
- excalidraw-diagramSkill
- file-organizerSkill
- forgejo-self-hostSkill
- frontend-design-toolkitSkill
- generate-dockerfileSkill
- gif-searchSkill
- git-backupSkill
- github-actions-ciSkill
- hallmark-readmeSkill
- http-api-testerSkill
- invoice-generatorSkill
- json-formatterSkill
- log-analyzerSkill
- markdown-linterSkill
- markdown-to-pdfSkill
- markdown-to-slidesSkill
- mcp-server-buildSkill
- media-id-mappingSkill
- movie-catalogue-siteSkill
- movie-night-calendarSkill
- ntfy-notifierSkill
- ocr-documentsSkill
- ollama-localSkill
- openapi-generatorSkill
- password-generatorSkill
- pdf-extractSkill
- portfolio-upkeepSkill
- qr-code-generatorSkill
- regex-testerSkill
- resume-builderSkill
- rss-monitorSkill
- searxng-self-hostSkill
- skill-publishSkill
- skill-registry-catalogSkill
- skills-portfolio-scaffoldSkill
- snippet-managerSkill
- sqlite-dashboardSkill
- streaming-provider-embedsSkill
- tailscale-deploySkill
- telegram-bot-buildSkill
- tmdb-metadataSkill
- uptime-kuma-self-hostSkill
- watchlist-syncSkill
- webhook-receiverSkill
- youtube-transcriptSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
21 rules. About 0 are common, 6 are distinctive, and 15 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 41
Every SKILL.md must have full frontmatter: name, description (starts with "Use when…", trigger conditions only — never a workflow summary), …
- Very specific: line 46
If a skill is adapted from an external repo, set source_attribution in skills-index.json.
- Very specific: line 56
No build step, no framework, no npm dependencies.
- Very specific: line 67
Create skills/<name>/SKILL.md with full frontmatter (see Conventions above) and the required body structure.
- Very specific: line 68
Create skills/<name>/README.md with human-facing docs.
- Very specific: line 69
Add an entry to skills-index.json with all required fields (see existing entries for schema).
- Very specific: line 70
Run python scripts/generate_skill_pages.py to render the new static per-skill page and refresh cached content — run it as its own command …
- Very specific: line 71
Run python scripts/sync_site.py to sync site/ to docs/ (every real file, not a hand-picked list).
- Very specific: line 72
Commit with a message like: Add <name> skill (<tier> tier, <category>).
- Very specific: line 76
Read design.md first — it locks genre, theme, macrostructure per page, and the shared nav/footer/tokens.
- Distinctive: line 77
Never introduce a different theme "for variety" — variety lives in macrostructure/component choice, not palette.
- Very specific: line 78
Never edit site/css/tokens.css or site/css/base.css per-page — they're shared.
- Very specific: line 80
Run python scripts/sync_site.py to sync site/ → docs/.
- Distinctive: line 85
Do not reference internal infrastructure, local paths, or private identities in any public file.
- Distinctive: line 86
Do not add npm dependencies, build tools, or frameworks to the static site.
- Distinctive: line 87
Do not change the LICENSE without explicit owner approval.
- Very specific: line 88
Do not remove the docs/ directory — it powers GitHub Pages.
- Distinctive: line 89
Do not push to main without passing CI.
- Very specific: line 90
Do not invent metrics, testimonials, or usage numbers anywhere — all usage counts start at 0 and stay real.
- Very specific: line 91
Do not merge or credit anything from pending-sources.json into skills-index.json without the maintainer's explicit per-entry approval.
- Distinctive: line 95
Before submitting a PR:
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Instructions for AI agents (Claude, GPT, Hermes, Cursor, etc.) working on this repository.
Project Overview
A public portfolio of empowering skills for the Hermes agent platform. Each skill lives in skills/<name>/ with a SKILL.md (agent instructions) and README.md (human-facing docs). A four-page static site in docs/ (mirrored from site/) renders the portfolio on GitHub Pages — Catalog, Bundles, Changelog, Submit a skill — sharing one locked design system.
Read design.md before touching any page. It is the single source of truth for the visual system (theme, tokens, nav/footer markup, per-page macrostructure) — see design.md § What pages MUST share. Read ARCHITECTURE.md for how the pieces fit together and data flows. Read CONTEXT.md for the project's locked scope decisions and vocabulary.
Repository Structure
skills/<name>/SKILL.md Agent instructions (YAML frontmatter + markdown body)
skills/<name>/README.md Human-facing documentation
skills-index.json Master index: all skills with tier, category, usage, full content
bundles.json Curated groupings of existing skills (Bundles page data)
pending-sources.json External-sourcing review queue (Submit page data)
CHANGELOG.md Generated from real git log + skills-index.json recency — do not hand-edit, regenerate
design.md Locked design system — read before any site change
ARCHITECTURE.md How the pieces fit together, data flow, generator scripts
site/ Source static site (HTML/CSS/JS, no framework, no build step)
index.html, bundles.html, changelog.html, submit.html
css/tokens.css, css/base.css — shared, do not edit per page
css/catalog.css, css/bundles.css, css/changelog.css, css/submit.css, css/skill-page.css
js/common.js — shared theme/cmd-k/toast/copy/reveal utilities, do not edit per page
js/catalog.js, js/bundles.js, js/changelog.js, js/submit.js, js/skill-page.js
skills/<name>/index.html — generated static per-skill pages (OG tags for link unfurling)
docs/ Deployed copy of site/ — what GitHub Pages actually serves
scripts/portfolio_tools.py Generator: builds skills-index.json entries + renders per-skill pages
scripts/generate_skill_pages.py CLI entrypoint — run after any skill or template change
tests/ pytest suite for the generator
.forgejo/workflows/ Forgejo CI
.github/workflows/ GitHub Actions CI
CONTEXT.md Project glossary and locked decisionsConventions
Skills
- Every
SKILL.mdmust have full frontmatter:name,description(starts with "Use when…", trigger conditions only — never a workflow summary),version,author,license,metadata.hermes.tags,metadata.hermes.related_skills(only reference names that exist underskills/). - Body structure:
# Title→## Overview→## When to Use→ topic body →## Common Pitfalls(numbered, specific to that skill) →## Verification Checklist(checkboxes). - Categories:
devops,frontend,backend,utility,meta,integrations. - Tiers:
core(broadly useful),featured(category-strong),utility(specific workflows). - Source types:
new(originally authored),generalized(adapted from internal patterns),adapted(from external repos with attribution). - If a skill is adapted from an external repo, set
source_attributioninskills-index.json. The site links to the original source. skills-index.jsoncaches each skill's renderedskillmd_content/readme_content— if you edit aSKILL.md/README.mdby hand, you must also refresh that skill's cached copy inskills-index.json(the generator does this automatically; a raw file edit alone will not update what the site shows).
External sourcing (pending-sources.json)
- A separate track from community-submitted issues: the maintainer proposing an existing skill found in another public repo.
- Every entry requires: real repo verified to exist, a permissive license noted precisely (don't call something "open source" if it's source-available/restricted), and a documented safety read (checked for prompt-injection phrasing, destructive commands, obfuscation, exfiltration) before it's added — even to the pending list.
review_recommendation: "recommended" | "needs_review"is the proposer's assessment, not an approval. Nothing in this file is live in the catalog or credited until the maintainer approves it individually — never flip an entry intoskills-index.jsonwithout that explicit approval.
Static Site
design.mdis the source of truth for the visual system.site/is the source of truth for implementation; after any change, sync todocs/(see Verification Checklist).- No build step, no framework, no npm dependencies. Plain HTML/CSS/JS.
- Light mode is the default, dark is a toggle (localStorage-persisted) — this is a deliberate Cobalt-theme decision recorded in
design.md, not the project's original convention. - OKLCH color tokens in
site/css/tokens.css. Reference tokens by name — never inline raw OKLCH/hex/rgb values, never an inlinefont-family. - Fonts: Space Grotesk (display) + Inter (body) + JetBrains Mono (code/labels), loaded via Google Fonts.
- The nav and footer markup must stay byte-identical across all four pages (only
aria-currentdiffers) — the canonical copy lives indesign.md.
CI
- Both Forgejo and GitHub Actions validate: every
SKILL.mdhas required frontmatter,skills-index.jsonis in sync with skill directories,site//docs/are byte-identical, no forbidden internal-infrastructure references leak into public files (see the workflow file for the exact pattern list — don't quote the patterns here, or you'll trip the check that scans this very file), and every skill has a rendered per-skill page.
How to Add a Skill
- Create
skills/<name>/SKILL.mdwith full frontmatter (see Conventions above) and the required body structure. - Create
skills/<name>/README.mdwith human-facing docs. - Add an entry to
skills-index.jsonwith all required fields (see existing entries for schema). - Run
python scripts/generate_skill_pages.pyto render the new static per-skill page and refresh cached content — run it as its own command (the sandbox can terminate a single process writing ~100 files acrosssite/anddocs/). - Run
python scripts/sync_site.pyto syncsite/todocs/(every real file, not a hand-picked list). - Commit with a message like:
Add <name> skill (<tier> tier, <category>).
How to Change the Site
- Read
design.mdfirst — it locks genre, theme, macrostructure per page, and the shared nav/footer/tokens. - Never introduce a different theme "for variety" — variety lives in macrostructure/component choice, not palette.
- Never edit
site/css/tokens.cssorsite/css/base.cssper-page — they're shared; add page-specific rules to that page's own CSS file. site/js/common.jsowns theme, cmd-k, toast, copy-to-clipboard, and reveal-on-scroll — call into it, don't reimplement.- Run
python scripts/sync_site.pyto syncsite/→docs/. - Regenerate
CHANGELOG.mdafter committing (seescripts/or the changelog-regeneration steps inARCHITECTURE.md) — don't hand-edit it.
What NOT to Do
- Do not reference internal infrastructure, local paths, or private identities in any public file.
- Do not add npm dependencies, build tools, or frameworks to the static site.
- Do not change the LICENSE without explicit owner approval.
- Do not remove the
docs/directory — it powers GitHub Pages. - Do not push to
mainwithout passing CI. - Do not invent metrics, testimonials, or usage numbers anywhere — all
usagecounts start at 0 and stay real. - Do not merge or credit anything from
pending-sources.jsonintoskills-index.jsonwithout the maintainer's explicit per-entry approval.
Verification Checklist
Before submitting a PR:
SKILL.mdhas full required frontmatter (see Conventions)skills-index.jsonis in sync withskills/directories (same count)site/anddocs/are byte-identical for every file you touched- Nav/footer markup unchanged except
aria-current, matchesdesign.md - No inline OKLCH/hex/rgb color or inline
font-familyin any CSS you touched - No references to private infrastructure or identities
python -m pytest tests/passes- Site renders correctly (open
docs/index.htmlin a browser, or run a local static server)
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.

