Sync Skills Spec
Keep src/agentpool/skills/ aligned with the official Agent Skills Spec.
Steps
Clone the reference repo into a temporary directory:
tmp=$(mktemp -d) git clone --depth 1 https://github.com/agentskills/agentskills "$tmp/agentskills"Read the spec and reference implementation:
$tmp/agentskills/spec/— the formal specification documents$tmp/agentskills/implementations/— reference implementations (especially Python)- Focus on the
SkillPropertiesmodel, frontmatter fields, validation rules, and prompt generation
Compare with our implementation:
src/agentpool/skills/skill.py— ourSkillPydantic model, validators,parse_frontmatter(),to_prompt()src/agentpool/skills/registry.py— discovery and registration (our extension, not part of the spec)src/agentpool/skills/manager.py— pool-wide management (our extension)- Check for missing fields, changed validation rules, new spec requirements
Apply updates to our code:
- Add any new frontmatter fields to the
Skillmodel - Update validators to match spec changes (name format, length limits, allowed fields)
- Update
to_prompt()if the recommended XML format changed - Do NOT replace our registry/manager — those are agentpool-specific extensions
- Add any new frontmatter fields to the
Update the synced commit hash in
src/agentpool/skills/skill.py:- Get the current HEAD of the cloned repo:
git -C "$tmp/agentskills" rev-parse HEAD - Update the
SPEC_SYNCED_COMMITconstant to the new hash - This tracks which version of the spec we last synced against
- Get the current HEAD of the cloned repo:
Clean up:
rm -rf "$tmp"
Key differences from upstream
Our implementation extends the spec with:
- Async discovery via fsspec/UPath (supports GitHub, S3, etc.)
- Registry pattern (
SkillsRegistryextendingBaseRegistry) - Pool-wide management (
SkillsManagerwith async context manager) - YAML parsing via
yamling(notstrictyaml)
These are intentional and should be preserved.
Source: phil65/agentpool — distributed by TomeVault.