-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Add microsoft-skill-creator skill #692
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
Open
TianqiZhang
wants to merge
2
commits into
github:main
Choose a base branch
from
TianqiZhang:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+551
−0
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,217 @@ | ||
| --- | ||
| name: microsoft-skill-creator | ||
| description: Create agent skills for Microsoft technologies using Learn MCP tools. Use when users want to create a skill that teaches agents about any Microsoft technology, library, framework, or service (Azure, .NET, M365, VS Code, Bicep, etc.). Investigates topics deeply, then generates a hybrid skill storing essential knowledge locally while enabling dynamic deeper investigation. | ||
| context: fork | ||
| compatibility: Requires Microsoft Learn MCP Server (https://learn.microsoft.com/api/mcp) | ||
| --- | ||
|
|
||
| # Microsoft Skill Creator | ||
|
|
||
| Create hybrid skills for Microsoft technologies that store essential knowledge locally while enabling dynamic Learn MCP lookups for deeper details. | ||
|
|
||
| ## About Skills | ||
|
|
||
| Skills are modular packages that extend agent capabilities with specialized knowledge and workflows. A skill transforms a general-purpose agent into a specialized one for a specific domain. | ||
|
|
||
| ### Skill Structure | ||
|
|
||
| ``` | ||
| skill-name/ | ||
| ├── SKILL.md (required) # Frontmatter (name, description) + instructions | ||
| ├── references/ # Documentation loaded into context as needed | ||
| ├── sample_codes/ # Working code examples | ||
| └── assets/ # Files used in output (templates, etc.) | ||
| ``` | ||
|
|
||
| ### Key Principles | ||
|
|
||
| - **Frontmatter is critical**: `name` and `description` determine when the skill triggers—be clear and comprehensive | ||
| - **Concise is key**: Only include what agents don't already know; context window is shared | ||
| - **No duplication**: Information lives in SKILL.md OR reference files, not both | ||
|
|
||
| ## Learn MCP Tools | ||
|
|
||
| | Tool | Purpose | When to Use | | ||
| |------|---------|-------------| | ||
| | `microsoft_docs_search` | Search official docs | First pass discovery, finding topics | | ||
| | `microsoft_docs_fetch` | Get full page content | Deep dive into important pages | | ||
| | `microsoft_code_sample_search` | Find code examples | Get implementation patterns | | ||
|
|
||
| ## Creation Process | ||
|
|
||
| ### Step 1: Investigate the Topic | ||
|
|
||
| Build deep understanding using Learn MCP tools in three phases: | ||
|
|
||
| **Phase 1 - Scope Discovery:** | ||
| ``` | ||
| microsoft_docs_search(query="{technology} overview what is") | ||
| microsoft_docs_search(query="{technology} concepts architecture") | ||
| microsoft_docs_search(query="{technology} getting started tutorial") | ||
| ``` | ||
|
|
||
| **Phase 2 - Core Content:** | ||
| ``` | ||
| microsoft_docs_fetch(url="...") # Fetch pages from Phase 1 | ||
| microsoft_code_sample_search(query="{technology}", language="{lang}") | ||
| ``` | ||
|
|
||
| **Phase 3 - Depth:** | ||
| ``` | ||
| microsoft_docs_search(query="{technology} best practices") | ||
| microsoft_docs_search(query="{technology} troubleshooting errors") | ||
| ``` | ||
|
|
||
| #### Investigation Checklist | ||
|
|
||
| After investigating, verify: | ||
| - [ ] Can explain what the technology does in one paragraph | ||
| - [ ] Identified 3-5 key concepts | ||
| - [ ] Have working code for basic usage | ||
| - [ ] Know the most common API patterns | ||
| - [ ] Have search queries for deeper topics | ||
|
|
||
| ### Step 2: Clarify with User | ||
|
|
||
| Present findings and ask: | ||
| 1. "I found these key areas: [list]. Which are most important?" | ||
| 2. "What tasks will agents primarily perform with this skill?" | ||
| 3. "Which programming language should code samples prioritize?" | ||
|
|
||
| ### Step 3: Generate the Skill | ||
|
|
||
| Use the appropriate template from [skill-templates.md](references/skill-templates.md): | ||
|
|
||
| | Technology Type | Template | | ||
| |-----------------|----------| | ||
| | Client library, NuGet/npm package | SDK/Library | | ||
| | Azure resource | Azure Service | | ||
| | App development framework | Framework/Platform | | ||
| | REST API, protocol | API/Protocol | | ||
|
|
||
| #### Generated Skill Structure | ||
|
|
||
| ``` | ||
| {skill-name}/ | ||
| ├── SKILL.md # Core knowledge + Learn MCP guidance | ||
| ├── references/ # Detailed local documentation (if needed) | ||
| └── sample_codes/ # Working code examples | ||
| ├── getting-started/ | ||
| └── common-patterns/ | ||
| ``` | ||
|
|
||
| ### Step 4: Balance Local vs Dynamic Content | ||
|
|
||
| **Store locally when:** | ||
| - Foundational (needed for any task) | ||
| - Frequently accessed | ||
| - Stable (won't change) | ||
| - Hard to find via search | ||
|
|
||
| **Keep dynamic when:** | ||
| - Exhaustive reference (too large) | ||
| - Version-specific | ||
| - Situational (specific tasks only) | ||
| - Well-indexed (easy to search) | ||
|
|
||
| #### Content Guidelines | ||
|
|
||
| | Content Type | Local | Dynamic | | ||
| |--------------|-------|---------| | ||
| | Core concepts (3-5) | ✅ Full | | | ||
| | Hello world code | ✅ Full | | | ||
| | Common patterns (3-5) | ✅ Full | | | ||
| | Top API methods | Signature + example | Full docs via fetch | | ||
| | Best practices | Top 5 bullets | Search for more | | ||
| | Troubleshooting | | Search queries | | ||
| | Full API reference | | Doc links | | ||
|
|
||
| ### Step 5: Validate | ||
|
|
||
| 1. Review: Is local content sufficient for common tasks? | ||
| 2. Test: Do suggested search queries return useful results? | ||
| 3. Verify: Do code samples run without errors? | ||
|
|
||
| ## Common Investigation Patterns | ||
|
|
||
| ### For SDKs/Libraries | ||
| ``` | ||
| "{name} overview" → purpose, architecture | ||
| "{name} getting started quickstart" → setup steps | ||
| "{name} API reference" → core classes/methods | ||
| "{name} samples examples" → code patterns | ||
| "{name} best practices performance" → optimization | ||
| ``` | ||
|
|
||
| ### For Azure Services | ||
| ``` | ||
| "{service} overview features" → capabilities | ||
| "{service} quickstart {language}" → setup code | ||
| "{service} REST API reference" → endpoints | ||
| "{service} SDK {language}" → client library | ||
| "{service} pricing limits quotas" → constraints | ||
| ``` | ||
|
|
||
| ### For Frameworks/Platforms | ||
| ``` | ||
| "{framework} architecture concepts" → mental model | ||
| "{framework} project structure" → conventions | ||
| "{framework} tutorial walkthrough" → end-to-end flow | ||
| "{framework} configuration options" → customization | ||
| ``` | ||
|
|
||
| ## Example: Creating a "Semantic Kernel" Skill | ||
|
|
||
| ### Investigation | ||
|
|
||
| ``` | ||
| microsoft_docs_search(query="semantic kernel overview") | ||
| microsoft_docs_search(query="semantic kernel plugins functions") | ||
| microsoft_code_sample_search(query="semantic kernel", language="csharp") | ||
| microsoft_docs_fetch(url="https://learn.microsoft.com/semantic-kernel/overview/") | ||
| ``` | ||
|
|
||
| ### Generated Skill | ||
|
|
||
| ``` | ||
| semantic-kernel/ | ||
| ├── SKILL.md | ||
| └── sample_codes/ | ||
| ├── getting-started/ | ||
| │ └── hello-kernel.cs | ||
| └── common-patterns/ | ||
| ├── chat-completion.cs | ||
| └── function-calling.cs | ||
| ``` | ||
|
|
||
| ### Generated SKILL.md | ||
|
|
||
| ```markdown | ||
| --- | ||
| name: semantic-kernel | ||
| description: Build AI agents with Microsoft Semantic Kernel. Use for LLM-powered apps with plugins, planners, and memory in .NET or Python. | ||
| --- | ||
|
|
||
| # Semantic Kernel | ||
|
|
||
| Orchestration SDK for integrating LLMs into applications with plugins, planners, and memory. | ||
|
|
||
| ## Key Concepts | ||
|
|
||
| - **Kernel**: Central orchestrator managing AI services and plugins | ||
| - **Plugins**: Collections of functions the AI can call | ||
| - **Planner**: Sequences plugin functions to achieve goals | ||
| - **Memory**: Vector store integration for RAG patterns | ||
|
|
||
| ## Quick Start | ||
|
|
||
| See [getting-started/hello-kernel.cs](sample_codes/getting-started/hello-kernel.cs) | ||
|
|
||
| ## Learn More | ||
|
|
||
| | Topic | How to Find | | ||
| |-------|-------------| | ||
| | Plugin development | `microsoft_docs_search(query="semantic kernel plugins custom functions")` | | ||
| | Planners | `microsoft_docs_search(query="semantic kernel planner")` | | ||
| | Memory | `microsoft_docs_fetch(url="https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory")` | | ||
| ``` | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
context: forkisn’t a documented skill frontmatter field in this repo’s skill template/validator guidance, and it doesn’t appear to be consumed by the build/validation scripts. Consider removing it or renaming it to a supported field (or documenting/implementing its purpose) to avoid confusing future contributors.