Agent Team Standards
A manifest records which skills and versions a project expects. The shipped script compares a live skills tree with that manifest. It does not install, upgrade, or remove anything.
Procedure
What ships
skills/optional/agent-team-standards/scripts/ats.py (standard library only).
The script scans HERMES_SKILLS_ROOT, which defaults to ~/AppData/Local/hermes/skills on Windows. That root must contain category folders, each holding skill folders with a SKILL.md:
<HERMES_SKILLS_ROOT>/<category>/<skill>/SKILL.md
Commands
python skills/optional/agent-team-standards/scripts/ats.py lock --project-dir=. --output=agent-teams.lock.json
python skills/optional/agent-team-standards/scripts/ats.py validate --manifest=agent-teams.lock.json
python skills/optional/agent-team-standards/scripts/ats.py diff --manifest=agent-teams.lock.json
python skills/optional/agent-team-standards/scripts/ats.py apply --manifest=agent-teams.lock.json
What each command actually does
| Command | Behavior |
|---|---|
lock | Scans the skills root and writes name, category, version, path, and installed for each skill. |
validate | Checks manifest shape, required fields, and duplicate names. |
diff | Lists matching, mismatched, extra, and missing skills. |
apply | Reports missing and out-of-date skills. It is a dry run and changes nothing. |
The config_fragments key is emitted empty. Do not expect it to carry models or AGENTS.md content.
Manifest example
{
"schema_version": "1.0",
"project": "my-project",
"generated_at": "2026-08-13T00:00:00Z",
"skills": [
{
"name": "agent-memory-vault",
"category": "optional",
"version": "1.0.0",
"installed": true,
"path": "optional/agent-memory-vault"
}
],
"config_fragments": {}
}
Installation is separate
To make a machine match the manifest, use your package manager or install script, then run diff again. A green apply means "no drift reported", not "installed".
Anti-patterns
- Pinning versions without recording where each skill came from.
- Editing the manifest by hand instead of regenerating it with
lock. - Treating
applyas an installer. - Locking every project to one global standard.
Verification Checklist
- [ ]
lockwrites a manifest whose skill count matches the scanned root. - [ ]
validateexits 0 on the generated manifest and nonzero on a broken one. - [ ]
diffnames every intentionally missing skill. - [ ]
applyoutput is understood as a report, not a change.