Skills¶
Bub treats skills as discoverable SKILL.md documents with validated frontmatter.
Minimal Contract¶
Each skill directory must contain a SKILL.md file:
Validation rules from src/bub/skills.py:
SKILL.mdmust start with YAML frontmatter (--- ... ---)- frontmatter must include non-empty
nameanddescription - directory name must exactly match frontmatter
name namemust match regex^[a-z0-9]+(?:-[a-z0-9]+)*$- if provided,
metadatamust be a map ofstring -> string
Frontmatter Fields¶
Currently enforced fields:
- required:
name,description - optional with type check:
metadata
Other extra keys are allowed but not validated by core.
Discovery And Override¶
Skills are discovered from three roots in this precedence order:
- project:
.agents/skills - user:
~/.agents/skills - builtin:
src/bub_skills
If names collide, earlier roots in this list win.
Runtime Access¶
Builtin command mode can inspect discovered skills:
If no valid skills are discovered, ,skills.list returns (no skills).
Authoring Guidance¶
- keep
SKILL.mdconcise and action-oriented - keep metadata small and deterministic
- use lowercase kebab-case names for compatibility
Optional Script Convention¶
For scripts/*.py, a practical standalone convention is PEP 723 with uv: