Skip to content

[Feat] Add support for SKILL.md#423

Merged
DearVa merged 3 commits into
mainfrom
skills
Jun 11, 2026
Merged

[Feat] Add support for SKILL.md#423
DearVa merged 3 commits into
mainfrom
skills

Conversation

@DearVa

@DearVa DearVa commented Jun 11, 2026

Copy link
Copy Markdown
Member

Description

This PR adds support for SKILL.md. Everywhere now scans ~/.everywhere/skills and other well-known skills including ~/.agents/skills, ~/.claude/skills, ~/.codex/skills, ~/.copilot/skills, ~/.cursor/skills and ~/.gemini/skills. Future extension is supported.

This PR also introduces a friendly management page for browsing, searching, enabling and disabling loaded skills.

Loaded skills are injected into the system prompt with variable {SkillsPrompt}. Template is:

<skills>
Here is a list of skills that contain domain specific knowledge on a variety of topics.
Each skill comes with a description of the topic and a file path that contains the detailed instructions.
When a user asks you to perform a task that falls within the domain of a skill, use the 'read_file' tool to acquire the full instructions from the file URI.
<skill>
<name>[skill-name]</name>
<description>[skill-description]</description>
<file>[path-to-skill.md]</file>
</skill>
...
</skills>

Each injected prompt only costs ~200 tokens. Additional information will be loaded on demand until the read_file tool is called by the LLM. So this mechanism both saving tokens and brings lots of abilities with a rich ecosystem.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactoring (no functional changes, no api changes)
  • Documentation update
  • CI/CD or Build changes

Checklist

  • My code follows the code style of this project
  • I have performed a self-review of my own code
  • I have added XML documentation to any related classes

Fixed Issues

Fixes #362

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 introduces a new “Skills” feature: it discovers SKILL.md files from ~/.everywhere/skills plus several well-known agent skill folders, injects enabled skills into the system prompt, and adds a UI management page for browsing/filtering/enabling skills.

Changes:

  • Add skill discovery/parsing, enablement persistence, and prompt rendering via a new SkillManager/SkillSource pipeline.
  • Add a new top-level “Skills” navigation page (UI + view model) with filtering, preview, and folder opening.
  • Standardize monospace font usage across several markdown/code UI surfaces via a shared MonospaceFontFamily resource.

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/Everywhere.Core.Tests/SkillSourceTests.cs Adds watcher/debounce behavior tests for skill directory/file changes.
tests/Everywhere.Core.Tests/SkillParserTests.cs Adds parser tests covering frontmatter, fallbacks, and metadata flattening.
src/Everywhere.Core/Views/Pages/WebSearchEnginePage.axaml.cs Adjusts navigation ordering to make room for the new Skills page.
src/Everywhere.Core/Views/Pages/SkillPage.axaml.cs Adds the new Skills top-level navigation page entry.
src/Everywhere.Core/Views/Pages/SkillPage.axaml Implements the Skills management UI (list, filters, enable toggle, markdown preview).
src/Everywhere.Core/Views/Controls/TextDifferenceSummaryView.axaml Switches to shared monospace font resource.
src/Everywhere.Core/Views/Controls/TextDifferenceEditor.axaml Switches to shared monospace font resource.
src/Everywhere.Core/Views/Chat/TerminalView.axaml Switches to shared monospace font resource and removes local font resource.
src/Everywhere.Core/ViewModels/SkillPageViewModel.cs Adds the Skills page view model: filtering, selection, refresh, copy/open actions.
src/Everywhere.Core/ValueConverters/CommonConverters.cs Adds a converter for markdown preview binding (ObservableStringBuilder).
src/Everywhere.Core/Skills/SkillSourceRoot.cs Defines known skill roots (Everywhere, Agents, Claude, Codex, Copilot, Cursor, Gemini).
src/Everywhere.Core/Skills/SkillSourceGroup.cs Introduces source grouping model for UI/prompt composition.
src/Everywhere.Core/Skills/SkillSource.cs Adds filesystem watching + debounced change aggregation for skill roots.
src/Everywhere.Core/Skills/SkillParser.cs Implements SKILL.md parsing for frontmatter + simple metadata extraction.
src/Everywhere.Core/Skills/SkillManager.cs Discovers skills, persists enablement overrides, builds the <skills> prompt block.
src/Everywhere.Core/Skills/SkillDescriptor.cs Defines runtime skill model (metadata, validation, enablement change hook, diagnostics).
src/Everywhere.Core/Skills/ISkillPromptProvider.cs Adds prompt provider interface for injecting skills into prompts.
src/Everywhere.Core/Skills/ISkillManager.cs Adds manager interface for listing groups and triggering refresh.
src/Everywhere.Core/I18N/Strings.zh-hans.resx Adds Skills-page localization strings (zh-hans).
src/Everywhere.Core/I18N/Strings.resx Adds Skills-page localization strings (en).
src/Everywhere.Core/Extensions/ServiceExtensions.cs Registers skills services + adds Skills page to navigation.
src/Everywhere.Core/Configuration/PersistentState.cs Persists skill enablement overrides.
src/Everywhere.Core/Chat/ChatService.cs Injects SkillsPrompt variable into system prompt rendering.
src/Everywhere.Core/Assets/Styles.axaml Switches markdown code font to shared monospace resource.
src/Everywhere.Core/Assets/Resources.axaml Adds shared MonospaceFontFamily resource.
src/Everywhere.Core/AI/Prompts.cs Adds {SkillsPrompt} placeholder to the default system prompt.
src/Everywhere.Abstractions/I18N/Strings.zh-hans.resx Adds Common_Copied localization (zh-hans) used by copy-to-clipboard UX.
src/Everywhere.Abstractions/I18N/Strings.resx Adds Common_Copied localization (en) used by copy-to-clipboard UX.
src/Everywhere.Abstractions/Common/DynamicNotification.cs Removes an unused using directive.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +111 to +115
partial void OnSelectedSkillWrapperChanged(SkillDescriptorWrapper? oldValue, SkillDescriptorWrapper? newValue)
{
Console.WriteLine($"OnSelectedSkillWrapperChanged(oldValue: {oldValue?.Skill.FilePath}, newValue: {newValue?.Skill.FilePath}");
}

Comment thread src/Everywhere.Core/Views/Pages/SkillPage.axaml Outdated
Comment on lines +259 to +264
<DataTemplate DataType="skills:SkillDiagnostic">
<shadui:Toast
Title="{Binding ContentKey^}"
HorizontalAlignment="Stretch" CanDismiss="False"
CanDismissByClicking="False" Notification="Warning"/>
</DataTemplate>
Comment thread src/Everywhere.Core/I18N/Strings.resx
Comment thread src/Everywhere.Core/Skills/SkillManager.cs Outdated
@DearVa DearVa requested a review from AuroraZiling June 11, 2026 15:36
@DearVa DearVa merged commit 1883c68 into main Jun 11, 2026
1 check passed
@DearVa DearVa deleted the skills branch June 11, 2026 16:15
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 11, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 希望增加导入skill的功能

2 participants