-
Notifications
You must be signed in to change notification settings - Fork 2.3k
feat: implement SKILLS.md - claude compatibility. #5760
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements SKILLS.md support for Claude compatibility as a platform extension, enabling Goose to discover and load skill definitions from .claude/skills or .goose/skills directories.
- Adds a new
skillsplatform extension that follows the same pattern as existing extensions (todo, chatrecall) - Implements SKILL.md file parsing with YAML frontmatter for metadata
- Provides a
loadSkilltool for on-demand skill loading with supporting file discovery
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
crates/goose/src/agents/skills_extension.rs |
New file implementing the skills extension with skill discovery, YAML frontmatter parsing, and MCP client trait implementation |
crates/goose/src/agents/extension.rs |
Registers the skills extension in the platform extensions map with default enabled |
crates/goose/src/agents/mod.rs |
Adds module declaration for skills_extension with crate visibility |
crates/goose/src/config/extensions.rs |
Minor whitespace formatting change |
codefromthecrypt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't tried this, but the code looks clean and easy to iterate forward. I think if we end up with fancy skills (e.g. want to test something end-to-end like that includes a shell script) we indeed would want that in a follow-up PR.
I made some comments which are non-blocking
|
@vaibhavgeek you have to add it to ~/.goose/skills or ~/.claude/skills in a dir (any name) but the file MUST be SKILL.md, ECHO.md won't work as it looks for SKILL.md (this is claudes spec so really just following it - or trying to!). |
|
thanks for feedback all - some more cleaning up to do. Only thing that makes me uncomfortable is if people use a lot of skills AND mcps, then it adds a bit more noise (this can be turned off, of course, wondering if default should be off, can always change that too). |
* main: (48 commits) [fix] generic check for gemini compat (#5842) Add scheduler to diagnostics (#5849) Cors and token (#5850) fix sessions coming back with empty messages (#5841) markdown export from URL (#5830) Next camp refactor live (#5706) Add out of context compaction test via error proxy (#5805) fix: Add backward compatibility for conversationCompacted message type (#5819) Add /agent/stop endpoint, make max active agents configurable (#5826) Handle 404s (#5791) Persist provider name and model config in the session (#5419) Comment out the flaky mcp callers (#5827) Slash commands (#5718) fix: remove setx calls to not permanently edit the windows shell PATH (#5821) fix: Parse maas models for gcp vertex provider (#5816) fix: support Gemini 3's thought signatures (#5806) chore: Add Adrian Cole to Maintainers (#5815) [MCP-UI] Proxy and Better Message Handling (#5487) Release 1.15.0 Document New Window menu in macOS dock (#5811) ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
* main: urgent: github broke runners for macos (#5853)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Signed-off-by: Sai Karthik <[email protected]>
Signed-off-by: Blair Allan <[email protected]>

This is implemented as a almost trivial platform extension (similar to todo, chatrecall) which can be opted in or out of, and follows the spec to keep the overhead very tiny, and load the skill (itself) as a single simple tool call.
Testing notes:
add a skill to ~/.goose/config/skills/SKILL.md with:
and then ask it about skills, or to do something that could use your skill.
#5761 for discussion on this feature.