From 461ef4c43589c6ca68176c180fd04f2755c9f036 Mon Sep 17 00:00:00 2001 From: Michelle Tilley Date: Thu, 23 Apr 2026 13:43:01 -0700 Subject: feat: Add skill discovery, loading, and invocation (#3444) Adds a skills system that lets users define reusable LLM instructions as `SKILL.md` files with YAML frontmatter. --- crates/atuin-ai/src/fsm/events.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'crates/atuin-ai/src/fsm/events.rs') diff --git a/crates/atuin-ai/src/fsm/events.rs b/crates/atuin-ai/src/fsm/events.rs index 6fecda08..e591db41 100644 --- a/crates/atuin-ai/src/fsm/events.rs +++ b/crates/atuin-ai/src/fsm/events.rs @@ -92,6 +92,23 @@ pub(crate) enum Event { /// The driver resolves known commands (like /help) and passes the /// rendered content; the FSM just pushes an OOB event. SlashCommand { command: String, content: String }, + + // ─── Skills ──────────────────────────────────────────────── + /// User invoked a skill via /skill-name. FSM emits a LoadSkill + /// effect; the driver loads the content asynchronously and sends + /// SkillLoaded when ready. + RequestSkillLoad { + name: String, + arguments: Option, + }, + /// A skill's content has been loaded and interpolated. + /// Pushes skill content as OOB context and starts a turn so the + /// LLM sees the skill and acts on it. + SkillLoaded { + name: String, + arguments: Option, + content: String, + }, } /// Result of the permission resolver check. -- cgit v1.3.1