vtcode-skills
June 17, 2026 · View on GitHub
Skill types, discovery, loading, and validation for VT Code.
Overview
Provides the core skill system including skill manifests, validation, bundling, template rendering, native plugin support, and versioning. Integration-point modules remain in vtcode-core.
Key Modules
| Module | Purpose |
|---|---|
types.rs | Core types: Skill, SkillManifest, SkillContext, SkillScope |
manifest.rs | SKILL.md parsing, SkillYaml, template generation |
authoring.rs | Skill authoring, frontmatter parsing, validation |
bundle.rs | Skill bundling, import/export, index management |
templates.rs | Template engine, traditional/CLI-tool templates |
container.rs | Skill container management, versioning |
container_validation.rs | Container skills compatibility validation |
context_manager.rs | Memory-efficient skill loading with LRU eviction |
validation.rs | Skill validation rules and reports |
enhanced_validator.rs | Comprehensive skill validator |
native_plugin.rs | Native plugin loading via libloading |
system.rs | System skills embedding and installation |
versioning.rs | Skill version resolution and lockfiles |
injection.rs | Skill injection into prompts |
prompt_integration.rs | Skills prompt rendering modes |
Skill Lifecycle
- Discovery — Skills are discovered from filesystem locations and embedded system skills
- Loading — Skills are loaded with LRU eviction for memory efficiency
- Validation — Skills are validated against manifest rules and compatibility checks
- Injection — Skills are injected into prompts for agent context
- Execution — Skills are executed by the skill executor in vtcode-core
Architecture Notes
- Partial extraction from vtcode-core; vtcode-core's
skills/mod.rsre-exports everything from this crate templates/directory contains traditional and CLI-tool template filessrc/skills/assets/samples/contains embedded system skill samplesSkillManifestusesserde-saphyrfor YAML frontmatter parsing
Dependencies
vtcode-commons— filesystem, SHA256, pathsvtcode-config— skill configuration,PromptFormat
Coding Conventions
- Use
anyhow::Resultfor fallible operations - Use
serdefor serialization/deserialization - Use
tracingfor logging - Template paths are relative to
templates/directory
See Also
- Skills Documentation — user-facing skill guides
- Contributing — how to create custom skills