Microsoft skill creator
Create a Microsoft-technology skill by researching official Learn content, separating stable local knowledge from dynamic lookup guidance, and generating a portable skill package with clear triggers, references, and examples.
When to invoke
- "Create a GitHub Copilot skill for Azure Container Apps."
- "Build a skill that teaches agents our .NET SDK workflow."
- "Generate a Microsoft Learn backed skill for Semantic Kernel."
- "Make a skill for a Microsoft REST API with examples."
- "Create a Bicep or VS Code extension skill."
Prerequisites and context
- Prefer the Microsoft Learn MCP Server at
https://learn.microsoft.com/api/mcp when available.
- If MCP tools are unavailable, use the
mslearn CLI through npx @microsoft/learn-cli or a global mslearn install.
- Generate only portable skill package paths:
SKILL.md, references/, sample_codes/, and assets/.
- Keep frontmatter minimal:
name and description are required, and discovery depends primarily on the description.
Learn research tools
| Need |
MCP tool |
CLI fallback |
| Search official docs |
microsoft_docs_search(query: "...") |
mslearn search "..." |
| Fetch a full documentation page |
microsoft_docs_fetch(url: "...") |
mslearn fetch "..." |
| Find implementation examples |
microsoft_code_sample_search(query: "...", language: "...") |
mslearn code-search "..." --language ... |
npx @microsoft/learn-cli search "semantic kernel overview"
npm install -g @microsoft/learn-cli
mslearn search "semantic kernel overview"
Generated skills should carry the same CLI fallback table so agents can continue work without the MCP server.
Procedure
- Investigate the technology in three passes.
- Scope discovery:
microsoft_docs_search(query="{technology} overview what is"), microsoft_docs_search(query="{technology} concepts architecture"), and microsoft_docs_search(query="{technology} getting started tutorial").
- Core content:
microsoft_docs_fetch(url="...") for the best pages and microsoft_code_sample_search(query="{technology}", language="{lang}") for working code.
- Depth:
microsoft_docs_search(query="{technology} best practices") and microsoft_docs_search(query="{technology} troubleshooting errors").
- Verify the investigation checklist: explain the technology in one paragraph, identify 3-5 key concepts, collect basic working code, name the common API patterns, and keep useful deeper-search queries.
- Clarify with the user before generating: key areas found, primary agent tasks, and preferred programming language for samples.
- Choose the template from
references/skill-templates.md.
- Generate the skill package and validate that local content is sufficient for common tasks, search queries return useful results, and code samples run.
Template selection
| Technology type |
Template |
Research focus |
| Client library, NuGet package, npm package |
SDK/Library |
Installation, client construction, auth, core methods, error handling. |
| Azure resource |
Azure Service |
Capabilities, provisioning concepts, SDK and REST operations, pricing limits quotas. |
| App development framework |
Framework/Platform |
Architecture concepts, project structure, configuration options, tutorial walkthrough. |
| REST API or protocol |
API/Protocol |
Endpoints, auth, request/response shapes, pagination, throttling, idempotency. |
Local versus dynamic content
| Content type |
Store locally |
Keep dynamic |
| Core concepts |
Full 3-5 concepts |
Deeper conceptual docs by Learn query. |
| Hello world code |
Full runnable sample |
Variants by language or hosting model. |
| Common patterns |
3-5 stable patterns |
Exhaustive patterns that change by version. |
| Top API methods |
Signature plus example |
Full API reference via microsoft_docs_fetch. |
| Best practices |
Top 5 bullets |
Additional situational practices by search. |
| Troubleshooting |
Common symptoms only |
Error catalogs and version-specific fixes. |
| Full API reference |
Link or query |
Complete docs fetched on demand. |
Store content locally when it is foundational, frequently accessed, stable, or hard to find. Keep content dynamic when it is exhaustive, version-specific, situational, or well indexed.
Investigation query patterns
| Target |
Queries |
| SDKs/Libraries |
"{name} overview", "{name} getting started quickstart", "{name} API reference", "{name} samples examples", "{name} best practices performance" |
| Azure Services |
"{service} overview features", "{service} quickstart {language}", "{service} REST API reference", "{service} SDK {language}", "{service} pricing limits quotas" |
| Frameworks/Platforms |
"{framework} architecture concepts", "{framework} project structure", "{framework} tutorial walkthrough", "{framework} configuration options" |
Package shape
{skill-name}/
├── SKILL.md
├── references/
│ └── skill-templates.md
└── sample_codes/
├── getting-started/
└── common-patterns/
For a Semantic Kernel skill, use semantic-kernel/, sample_codes/getting-started/hello-kernel.cs, sample_codes/common-patterns/chat-completion.cs, and sample_codes/common-patterns/function-calling.cs. Useful seed lookups include 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/"), and microsoft_docs_fetch(url="https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory").
Progressive disclosure and bundled resources
references/skill-templates.md: read when selecting the generated skill shape for SDK/Library, Azure Service, Framework/Platform, or API/Protocol work.
Compatibility terminology
Preserve these discovery and template terms when generating Microsoft skills: M365, NuGet/npm, classes/methods, end-to-end, general-purpose, getting-started/hello-kernel.cs, microsoft_docs_search(query="semantic kernel planner"), npm install -g @microsoft/learn-cli, npx @microsoft/learn-cli <command>, and PowerShell.
Open Horizons integration
- Scope new skills to the Developer IDP or Agent IDP objective and current Horizon stage.
- Preserve Open Horizons naming, routing, portability, package, and evidence boundaries.
- Route cross-domain sequencing through
open-horizons-orchestration (skill).
Output template
## Microsoft skill package - <technology>
**Status:** generated | needs clarification | blocked
**Skill name:** `<skill-name>`
**Template:** SDK/Library | Azure Service | Framework/Platform | API/Protocol
### Research used
| Source | Query or URL | Purpose |
| --- | --- | --- |
| Microsoft Learn | `<query or URL>` | `<why it mattered>` |
### Local content included
- Core concepts: `<3-5 concepts>`
- Samples: `<sample paths>`
- Common patterns: `<patterns>`
### Dynamic lookup guidance
| Topic | Lookup |
| --- | --- |
| `<deeper topic>` | `microsoft_docs_search(query="...")` or `mslearn search "..."` |
### Validation
- Skill frontmatter: pass | fail
- Search queries tested: pass | fail
- Code samples checked: pass | fail
Quality gate
References
1---2name: microsoft-skill-creator-43description: Create hybrid GitHub Copilot skills for Microsoft technologies using Microsoft Learn MCP tools or the mslearn CLI. Use this skill when the user asks to create a skill for Azure, .NET, Microsoft 365, VS Code, Bicep, Semantic Kernel, a Microsoft SDK, an Azure service, a framework, or a Microsoft REST API.4---56# Microsoft skill creator78Create a Microsoft-technology skill by researching official Learn content, separating stable local knowledge from dynamic lookup guidance, and generating a portable skill package with clear triggers, references, and examples.910## When to invoke1112- "Create a GitHub Copilot skill for Azure Container Apps."13- "Build a skill that teaches agents our .NET SDK workflow."14- "Generate a Microsoft Learn backed skill for Semantic Kernel."15- "Make a skill for a Microsoft REST API with examples."16- "Create a Bicep or VS Code extension skill."1718## Prerequisites and context1920- Prefer the Microsoft Learn MCP Server at `https://learn.microsoft.com/api/mcp` when available.21- If MCP tools are unavailable, use the `mslearn` CLI through `npx @microsoft/learn-cli` or a global `mslearn` install.22- Generate only portable skill package paths: `SKILL.md`, `references/`, `sample_codes/`, and `assets/`.23- Keep frontmatter minimal: `name` and `description` are required, and discovery depends primarily on the `description`.2425## Learn research tools2627| Need | MCP tool | CLI fallback |28| --- | --- | --- |29| Search official docs | `microsoft_docs_search(query: "...")` | `mslearn search "..."` |30| Fetch a full documentation page | `microsoft_docs_fetch(url: "...")` | `mslearn fetch "..."` |31| Find implementation examples | `microsoft_code_sample_search(query: "...", language: "...")` | `mslearn code-search "..." --language ...` |3233```bash34npx @microsoft/learn-cli search "semantic kernel overview"35npm install -g @microsoft/learn-cli36mslearn search "semantic kernel overview"37```3839Generated skills should carry the same CLI fallback table so agents can continue work without the MCP server.4041## Procedure42431. Investigate the technology in three passes.44 - Scope discovery: `microsoft_docs_search(query="{technology} overview what is")`, `microsoft_docs_search(query="{technology} concepts architecture")`, and `microsoft_docs_search(query="{technology} getting started tutorial")`.45 - Core content: `microsoft_docs_fetch(url="...")` for the best pages and `microsoft_code_sample_search(query="{technology}", language="{lang}")` for working code.46 - Depth: `microsoft_docs_search(query="{technology} best practices")` and `microsoft_docs_search(query="{technology} troubleshooting errors")`.472. Verify the investigation checklist: explain the technology in one paragraph, identify 3-5 key concepts, collect basic working code, name the common API patterns, and keep useful deeper-search queries.483. Clarify with the user before generating: key areas found, primary agent tasks, and preferred programming language for samples.494. Choose the template from `references/skill-templates.md`.505. Generate the skill package and validate that local content is sufficient for common tasks, search queries return useful results, and code samples run.5152## Template selection5354| Technology type | Template | Research focus |55| --- | --- | --- |56| Client library, NuGet package, npm package | SDK/Library | Installation, client construction, auth, core methods, error handling. |57| Azure resource | Azure Service | Capabilities, provisioning concepts, SDK and REST operations, pricing limits quotas. |58| App development framework | Framework/Platform | Architecture concepts, project structure, configuration options, tutorial walkthrough. |59| REST API or protocol | API/Protocol | Endpoints, auth, request/response shapes, pagination, throttling, idempotency. |6061## Local versus dynamic content6263| Content type | Store locally | Keep dynamic |64| --- | --- | --- |65| Core concepts | Full 3-5 concepts | Deeper conceptual docs by Learn query. |66| Hello world code | Full runnable sample | Variants by language or hosting model. |67| Common patterns | 3-5 stable patterns | Exhaustive patterns that change by version. |68| Top API methods | Signature plus example | Full API reference via `microsoft_docs_fetch`. |69| Best practices | Top 5 bullets | Additional situational practices by search. |70| Troubleshooting | Common symptoms only | Error catalogs and version-specific fixes. |71| Full API reference | Link or query | Complete docs fetched on demand. |7273Store content locally when it is foundational, frequently accessed, stable, or hard to find. Keep content dynamic when it is exhaustive, version-specific, situational, or well indexed.7475## Investigation query patterns7677| Target | Queries |78| --- | --- |79| SDKs/Libraries | `"{name} overview"`, `"{name} getting started quickstart"`, `"{name} API reference"`, `"{name} samples examples"`, `"{name} best practices performance"` |80| Azure Services | `"{service} overview features"`, `"{service} quickstart {language}"`, `"{service} REST API reference"`, `"{service} SDK {language}"`, `"{service} pricing limits quotas"` |81| Frameworks/Platforms | `"{framework} architecture concepts"`, `"{framework} project structure"`, `"{framework} tutorial walkthrough"`, `"{framework} configuration options"` |8283## Package shape8485```text86{skill-name}/87├── SKILL.md88├── references/89│ └── skill-templates.md90└── sample_codes/91 ├── getting-started/92 └── common-patterns/93```9495For a Semantic Kernel skill, use `semantic-kernel/`, `sample_codes/getting-started/hello-kernel.cs`, `sample_codes/common-patterns/chat-completion.cs`, and `sample_codes/common-patterns/function-calling.cs`. Useful seed lookups include `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/")`, and `microsoft_docs_fetch(url="https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory")`.9697## Progressive disclosure and bundled resources9899- `references/skill-templates.md`: read when selecting the generated skill shape for SDK/Library, Azure Service, Framework/Platform, or API/Protocol work.100101## Compatibility terminology102103Preserve these discovery and template terms when generating Microsoft skills: `M365`, `NuGet/npm`, `classes/methods`, `end-to-end`, `general-purpose`, `getting-started/hello-kernel.cs`, `microsoft_docs_search(query="semantic kernel planner")`, `npm install -g @microsoft/learn-cli`, `npx @microsoft/learn-cli <command>`, and `PowerShell`.104105## Open Horizons integration106107- Scope new skills to the Developer IDP or Agent IDP objective and current Horizon stage.108- Preserve Open Horizons naming, routing, portability, package, and evidence boundaries.109- Route cross-domain sequencing through `open-horizons-orchestration` (`skill`).110111## Output template112113```markdown114## Microsoft skill package - <technology>115116**Status:** generated | needs clarification | blocked117**Skill name:** `<skill-name>`118**Template:** SDK/Library | Azure Service | Framework/Platform | API/Protocol119120### Research used121| Source | Query or URL | Purpose |122| --- | --- | --- |123| Microsoft Learn | `<query or URL>` | `<why it mattered>` |124125### Local content included126- Core concepts: `<3-5 concepts>`127- Samples: `<sample paths>`128- Common patterns: `<patterns>`129130### Dynamic lookup guidance131| Topic | Lookup |132| --- | --- |133| `<deeper topic>` | `microsoft_docs_search(query="...")` or `mslearn search "..."` |134135### Validation136- Skill frontmatter: pass | fail137- Search queries tested: pass | fail138- Code samples checked: pass | fail139```140141## Quality gate142143- [ ] `name` is kebab-case and matches the generated skill directory.144- [ ] `description` states what the skill does and when to use it with Microsoft technology triggers.145- [ ] The generated skill includes the Learn MCP to `mslearn` CLI fallback table.146- [ ] Stable essentials are local, while exhaustive or version-specific content is dynamic.147- [ ] `references/skill-templates.md` was used when choosing the template.148- [ ] Any referenced `sample_codes/`, `references/`, or `assets/` paths exist.149- [ ] Code samples are working or explicitly marked as needing validation.150151## References152153- [Microsoft Learn MCP Server](https://learn.microsoft.com/api/mcp)154- [Semantic Kernel overview](https://learn.microsoft.com/semantic-kernel/overview/)155- [Semantic Kernel agent memory](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory)