-
Notifications
You must be signed in to change notification settings - Fork 11
Add Skills System #20
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
base: main
Are you sure you want to change the base?
Conversation
Skills are installed to ~/.claude/skills/<name>/SKILL.md, following Anthropic's official skill format (https://docs.anthropic.com/en/docs/claude-code/skills). Each skill's SKILL.md has YAML frontmatter with required 'name' and 'description' fields. The description tells Claude when to apply the skill. System prompt changes: - Add <skills> section listing installed skills as 'name: description' - Include manual installation instructions (curl + unzip) - Instruct Shelley how to dynamically discover new skills Code changes: - Add SkillPreambles field to CodebaseInfo - Add loadSkillPreambles() to scan ~/.claude/skills/ directory - Add parseSkillPreamble() to extract name+description from YAML frontmatter Example SKILL.md: --- name: code-reviewer description: Reviews PRs for code quality. Use when reviewing pull requests. --- Full instructions here... Co-authored-by: Shelley <shelley@exe.dev>
Include ShelleyPort and ShelleyBaseURL in the system prompt data so Shelley can generate links to conversations. For exe.dev: - Port 9999 uses https://<hostname>.shelley.exe.xyz - Other ports use https://<hostname>.exe.xyz:<port> For non-exe.dev: http://localhost:<port> The system prompt now includes a <shelley_web_ui> section with the base URL and instructions for linking to conversations. Co-authored-by: Shelley <shelley@exe.dev>
|
Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: exe.dev user.
|
…ills Use Shelley's own config directory for skills instead of Claude Code's directory structure. This keeps all Shelley configuration in one place. Co-authored-by: Shelley <shelley@exe.dev>
Include the LLM model being used in the system prompt so the agent knows what model it's running on. Co-authored-by: Shelley <shelley@exe.dev>
Move system prompt creation from Hydrate() to AcceptUserMessage(), after ensureLoop() sets the modelID. This ensures the model name is available when generating the system prompt. Co-authored-by: Shelley <shelley@exe.dev>
The system prompt is created after ensureLoop() because the model ID isn't known until then. However, the loop captures cm.system at creation time, which is empty. This adds SetSystem() to the loop and calls it after creating the system prompt so it actually reaches the LLM. Co-authored-by: Shelley <shelley@exe.dev>
|
Thank you for your pull request and welcome to our community. We could not parse the GitHub identity of the following contributors: exe.dev user, Josh Mandel.
|
This PR adds a skills system to Shelley, following Anthropic's skill format.
Overview
Skills extend Shelley with additional capabilities that are automatically discovered and injected into the system prompt at conversation start.
How it works
~/.config/shelley/skills/<name>/SKILL.mdwith YAML frontmatter (nameanddescriptionfields), plus any additional files the skill needs (scripts, templates, UI assets, etc.)SKILL.mdcontent tells Shelley when and how to use the skillSystem Prompt Changes
New
<skills>section added:.zipfiles~/.config/shelley/skills/for full skill detailsInstallation
Skills can be distributed as zip files containing
SKILL.mdplus supporting files (scripts, libraries, UI components, etc.). Install via:Changes
server/system_prompt.go: AddloadSkillPreambles()andparseSkillPreamble()server/system_prompt.txt: Add<skills>section to templateserver/skill_test.go: Tests for YAML frontmatter parsing