Conversation
Phase 1: Remove Legacy Skills System
- Removed skills: HashMap<String, String> from Config
- Removed skill: Option<String> from AgentSpec
- Added default_target: Option<String> to Config
- Updated cli.rs to use current_target instead of current_skill
- Simplified target resolution in agent.rs and subagent.rs
Phase 2: Skill Packs Implementation
- Created src/skillpacks/ module with:
- parser.rs - SKILL.md parsing with YAML frontmatter
- index.rs - Discovery from .yo/skills/ and ~/.yo/skills/
- activation.rs - Active skill lifecycle management
- Created ActivateSkill tool in src/tools/activate_skill.rs
- Added /skillpacks and /skillpack REPL commands
- Integrated skill prompt injection and allowed-tools filtering in agent.rs
- Added transcript events for skill lifecycle
Phase 3: Model Routing
- Created src/model_routing.rs with:
- RouteCategory enum (Planning, Coding, Exploration, Testing, Documentation, Fast, Default)
- Category inference from agent name/description
- Hardcoded defaults with config override capability
- Integrated ModelRouter into subagent.rs for automatic target selection
- Added [model_routing.routes] section to example-yo.toml
Key Features:
- Subagents are automatically routed to appropriate models based on task type
- Skill packs provide reusable instructions with tool restrictions
- All 32 tests pass, clippy is clean, no warnings
There was a problem hiding this comment.
Pull request overview
This PR introduces a comprehensive skill pack system and model routing capabilities to the yo agentic coding assistant. The changes migrate from a simple "skills → targets" mapping to a more sophisticated system where skill packs are reusable instruction sets stored in SKILL.md files, and model routing automatically selects appropriate models for different task types.
Key Changes:
- Introduces skill pack system with YAML frontmatter-based SKILL.md files for reusable instructions and tool restrictions
- Implements model routing that automatically selects models based on subagent task categories (planning, coding, exploration, etc.)
- Migrates configuration from
skillsHashMap todefault_targetandmodel_routingconfiguration structure
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
src/skillpacks/parser.rs |
New SKILL.md parser with frontmatter validation and body extraction |
src/skillpacks/index.rs |
Skill pack discovery and indexing from project and user directories |
src/skillpacks/activation.rs |
Manages active skills lifecycle and tool restriction intersection |
src/skillpacks/mod.rs |
Module exports for skill pack functionality |
src/model_routing.rs |
New model routing system with category inference from agent names/descriptions |
src/tools/activate_skill.rs |
New ActivateSkill tool schema for LLM-driven skill activation |
src/tools/mod.rs |
Adds ActivateSkill to available tool schemas |
src/transcript.rs |
Adds logging methods for skill pack lifecycle events |
src/agent.rs |
Integrates skill activation ($mention syntax), tool filtering, and system prompt injection |
src/subagent.rs |
Integrates model router for automatic subagent target resolution |
src/cli.rs |
Adds /skillpack and /skillpacks commands, updates /target command behavior |
src/config.rs |
Migrates from skills HashMap to default_target and model_routing config |
src/main.rs |
Initializes skill index and model router on startup |
example-yo.toml |
Updates configuration examples for new structure |
README.md |
Adds comprehensive documentation for skill packs and model routing |
Cargo.toml |
Adds serde_yaml dependency for YAML frontmatter parsing |
Cargo.lock |
Updates lockfile with new dependencies |
.github/workflows/TestingCI.yml |
New CI workflow for testing on Linux and macOS |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.