Struct Skill
pub struct Skill {
pub name: String,
pub description: String,
pub description_localizations: BTreeMap<String, String>,
pub version: String,
pub author: Option<String>,
pub tags: Vec<String>,
pub tools: Vec<SkillTool>,
pub prompts: Vec<String>,
pub slash_options: Vec<SkillSlashOption>,
pub always: bool,
pub location: Option<PathBuf>,
}Expand description
A skill is a user-defined or community-built capability.
Skills live in ~/.zeroclaw/workspace/skills/<name>/SKILL.md
and can include tool definitions, prompts, and automation scripts.
Fields§
§name: String§description: String§description_localizations: BTreeMap<String, String>Per-locale translations of description, keyed by Discord locale code
(e.g. fr, es-ES, ja). Consumed by slash-capable channels to
localize the command description; empty for unlocalized skills. Declared
in SKILL.toml under [skill] as description_localizations.
version: String§tools: Vec<SkillTool>§prompts: Vec<String>§slash_options: Vec<SkillSlashOption>Typed slash-command options a slash-tagged skill exposes (e.g. on
Discord). Empty for skills that take no structured input — slash channels
then fall back to a single free-text option. See SkillSlashOption.
always: boolWhen true, this skill’s full instructions stay inlined in the system
prompt even in zeroclaw_config::schema::SkillsPromptInjectionMode::Compact
mode, instead of being loaded on demand via read_skill(name). Intended
for policy/critical skills that must always be visible to the model.
location: Option<PathBuf>Trait Implementations§
Source§impl Attributable for Skill
impl Attributable for Skill
fn role(&self) -> Role
fn alias(&self) -> &str
Source§fn tool_provenance(&self) -> ToolProvenance
fn tool_provenance(&self) -> ToolProvenance
Source§impl<'de> Deserialize<'de> for Skill
impl<'de> Deserialize<'de> for Skill
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Skill
impl RefUnwindSafe for Skill
impl Send for Skill
impl Sync for Skill
impl Unpin for Skill
impl UnsafeUnpin for Skill
impl UnwindSafe for Skill
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more