From 8f591d60f7945146445c65e3b2f389445be9b90d Mon Sep 17 00:00:00 2001 From: Joah Gerstenberg Date: Tue, 16 Dec 2025 11:18:04 -0600 Subject: [PATCH 1/3] Add .agents/skills and ~/.config/agent/skills to skills discovery paths --- crates/goose/src/agents/extension.rs | 2 +- crates/goose/src/agents/skills_extension.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/goose/src/agents/extension.rs b/crates/goose/src/agents/extension.rs index 6e1b42d9cd56..a453e840b009 100644 --- a/crates/goose/src/agents/extension.rs +++ b/crates/goose/src/agents/extension.rs @@ -82,7 +82,7 @@ pub static PLATFORM_EXTENSIONS: Lazy skills_extension::EXTENSION_NAME, PlatformExtensionDef { name: skills_extension::EXTENSION_NAME, - description: "Load and use skills from .claude/skills or .goose/skills directories", + description: "Load and use skills from .agents/skills, .goose/skills, or .claude/skills directories", default_enabled: true, client_factory: |ctx| Box::new(skills_extension::SkillsClient::new(ctx).unwrap()), }, diff --git a/crates/goose/src/agents/skills_extension.rs b/crates/goose/src/agents/skills_extension.rs index c4dcf41ac465..788af48b87d3 100644 --- a/crates/goose/src/agents/skills_extension.rs +++ b/crates/goose/src/agents/skills_extension.rs @@ -82,14 +82,18 @@ impl SkillsClient { let mut dirs = Vec::new(); if let Some(home) = dirs::home_dir() { + // Global skills directories (lowest priority first) dirs.push(home.join(".claude/skills")); + dirs.push(home.join(".config/agent/skills")); } dirs.push(Paths::config_dir().join("skills")); if let Ok(working_dir) = std::env::current_dir() { + // Project skills directories (highest priority last) dirs.push(working_dir.join(".claude/skills")); dirs.push(working_dir.join(".goose/skills")); + dirs.push(working_dir.join(".agents/skills")); } dirs From 6820c9e162a79e6d5172a637c27091a906cde437 Mon Sep 17 00:00:00 2001 From: Joah Gerstenberg Date: Tue, 16 Dec 2025 13:57:05 -0600 Subject: [PATCH 2/3] Simplify skills extension description Signed-off-by: Joah Gerstenberg --- crates/goose/src/agents/extension.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/goose/src/agents/extension.rs b/crates/goose/src/agents/extension.rs index a453e840b009..3287a40b06e2 100644 --- a/crates/goose/src/agents/extension.rs +++ b/crates/goose/src/agents/extension.rs @@ -82,7 +82,7 @@ pub static PLATFORM_EXTENSIONS: Lazy skills_extension::EXTENSION_NAME, PlatformExtensionDef { name: skills_extension::EXTENSION_NAME, - description: "Load and use skills from .agents/skills, .goose/skills, or .claude/skills directories", + description: "Load and use skills from relevant directories", default_enabled: true, client_factory: |ctx| Box::new(skills_extension::SkillsClient::new(ctx).unwrap()), }, From 5b1781fbc4851a35b6cf6609d5e17e36603ac0f5 Mon Sep 17 00:00:00 2001 From: Joah Gerstenberg Date: Tue, 16 Dec 2025 13:57:42 -0600 Subject: [PATCH 3/3] Clean up comments in get_default_skill_directories Removed comments indicating priority of skill directories. Signed-off-by: Joah Gerstenberg --- crates/goose/src/agents/skills_extension.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/crates/goose/src/agents/skills_extension.rs b/crates/goose/src/agents/skills_extension.rs index 788af48b87d3..cd90fe6b2687 100644 --- a/crates/goose/src/agents/skills_extension.rs +++ b/crates/goose/src/agents/skills_extension.rs @@ -82,7 +82,6 @@ impl SkillsClient { let mut dirs = Vec::new(); if let Some(home) = dirs::home_dir() { - // Global skills directories (lowest priority first) dirs.push(home.join(".claude/skills")); dirs.push(home.join(".config/agent/skills")); } @@ -90,7 +89,6 @@ impl SkillsClient { dirs.push(Paths::config_dir().join("skills")); if let Ok(working_dir) = std::env::current_dir() { - // Project skills directories (highest priority last) dirs.push(working_dir.join(".claude/skills")); dirs.push(working_dir.join(".goose/skills")); dirs.push(working_dir.join(".agents/skills"));