pub mod loader;
mod registry;
use std::path::PathBuf;
use serde::Deserialize;
pub use loader::{load_skills, parse_skill_file, SkillLoadError};
pub use registry::SkillRegistry;
#[derive(Debug, Clone, Deserialize)]
pub struct SkillFrontmatter {
pub name: String,
pub description: String,
#[serde(default = "default_version")]
pub version: String,
#[serde(default)]
pub triggers: Vec<String>,
#[serde(default)]
pub tools_required: Vec<String>,
#[serde(default = "default_enabled")]
pub enabled: bool,
}
fn default_version() -> String {
"1.0.0".to_string()
}
fn default_enabled() -> bool {
true
}
#[derive(Debug, Clone)]
pub struct Skill {
pub frontmatter: SkillFrontmatter,
pub content: String,
pub source_path: PathBuf,
}