authoring-skills
Skill3 starsChanged 18 days agoMITView on GitHub
Writes skills that pass skill_lint.py. Use when a squad or the builder needs a new or revised skill.
9 other projects use a version of this.
Adopted by
Most recently taken up by
- LucasDevKid9/collab-chartertheir own version, first seen Nov 1, 2026
- mohmaedeslam00116/waypowertheir own version, first seen Oct 15, 2026
- syntropic137/software-leverage-pointstheir own version, first seen Oct 14, 2026
- flutter/devtoolstheir own version, first seen Oct 9, 2026
- louisbrillet/cor-skillstheir own version, first seen Sep 18, 2026
- vercel/next.jstheir own version, first seen May 14, 2026
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- vercel/next.js★ 143ksame name
- flutter/devtools★ 1.7ksame name
- andrueandersoncs/claude-skill-authoring-skill★ 11same name
- louisbrillet/cor-skills★ 4same name
- LucasDevKid9/collab-charter★ 1same name
- forsonny/DG-Anvil★ 0same name
- larsch/skills★ 0same name
- mohmaedeslam00116/waypower★ 0same name
- syntropic137/software-leverage-points★ 0same name
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 repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- assigning-modelsSkill
- changing-botsSkill
- contributing-upstreamSkill
- designing-squadsSkill
- finding-capabilitiesSkill
- hermes-platformSkill
- installing-squadsSkill
- managing-projectsSkill
- tracking-updatesSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Check every hand-off between stages: for each value one skill reads from another stage's output (a store file, a key, a status), the …
- Very specific: line 32
Create every skill that squad.yaml names before squadctl plan: plan warns on a named skill with no SKILL.md, and the bot runs without it.
- Very specific: line 34
Run scripts/hpy skill_lint.py <skill-dir>, then the repository's test suite: lint checks the shape of a skill, the contract tests check …
- Very specific: line 77
Every deterministic step calls a script that answers --help and does the job end to end.
“Common” is measured: kept by at least 6 in 10 of the 8 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 skills
When to Use
- A procedure repeats in cards and should stop being re-derived each time.
- A squad or the builder lacks a skill for a bounded job.
Procedure
- Load the bundled skill
hermes-agent-skill-authoringand readskills/hermes-platform/references/skills-format-and-sources.md. - Layout:
SKILL.mdholds the procedure; detail lives one level down inreferences/*.md, each linked from the step that needs it; deterministic work lives inscripts/with parameters and--help. - Rules:
scripts/hpy skill_lint.py --rules(name, description, line budgets, body sections When to Use, Procedure, Pitfalls, Verification, English only). - Ship exactly 3 scenarios in
evals/evals.json: the happy path, a failure, and a refusal or escalation. - Cite every platform fact with its docs or source path. Run
hermes skills inspect <id>before naming any skill identifier. - Check every hand-off between stages: for each value one skill reads from another stage's output (a store file, a key, a status), the producing skill must have an explicit step that writes it. A consumer with no producer step fails silently at runtime. Prove each hand-off with one run: execute the producer, then the consumer, on a fixture, and assert the consumer sees the value; reading both SKILL.md files does not catch a missing writer.
- Create every skill that
squad.yamlnames beforesquadctl plan: plan warns on a named skill with no SKILL.md, and the bot runs without it. - Run
scripts/hpy skill_lint.py <skill-dir>, then the repository's test suite: lint checks the shape of a skill, the contract tests check what a bot-facing doc may say (cited sentences, internal ids, line budgets).
Pitfalls
- Model ids in any file of the skill: they belong only in
scripts/data/model-roles.yamlandlocal/installed.yaml. - A prose script, which the model rewrites per machine: ship a real script.
- A line that changes nothing the bot does: harmless warnings, upstream issue
numbers, bug-tracker remarks. Not written in skills, SOULs, notes or
memory (lint rule
no-issue-notes). - A doc that reaches bot context (anything a squad copies into a profile,
skills.keepincluded) carries the rule in words, never a citation to a decision log or an internal id: the contract test rejects citations in bot-loaded files, and an id means nothing to a bot that never sees the log. - A new required input on a checker or script (a file, a key, a flag): add it to the shared helper that builds the test fixture, not to each test. Per-test copies diverge and the tests you did not edit fail on the next run.
- Replacing a paragraph in a reference doc: note the sentences before and after it first, then grep the file for their distinctive tokens. A replace anchored on the paragraph's last line swallows the sentence that followed it, and the assertion on that sentence fails while the doc reads clean.
- A test that only asserts a helper's return value: assert the outcome the user sees (a rejected link, a written file, a blocked submission). The helper can pass while the feature is broken.
- Wrapping a test run in the coreutils
timeoutbinary: macOS does not ship it, the command never starts, and silence reads as a pass. Run pytest directly. - Writing a skill file you have not read whole: read it in one call first. A paged read is refused by the write guard, and a partial read overwrites the lines you did not see.
- Scoping a skill wider than the probes: cover the surface that was executed and label the rest unverified. Confident syntax nobody ran is what the user calls invented.
- Telling the user a fact is documented before that sentence exists: write it, then name the file. A claim that a file holds text it does not reads as invented work.
Verification
scripts/hpy skill_lint.py <skill-dir>exits 0, and the repository's contract tests pass on every file the skill ships.- Every deterministic step calls a script that answers
--helpand does the job end to end.
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.

