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-33description: 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<!-- Generated from harness/github-copilot/plugins/open-horizons-platform/skills/microsoft-skill-creator/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Microsoft skill creator910Create 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.1112## When to invoke1314- "Create a GitHub Copilot skill for Azure Container Apps."15- "Build a skill that teaches agents our .NET SDK workflow."16- "Generate a Microsoft Learn backed skill for Semantic Kernel."17- "Make a skill for a Microsoft REST API with examples."18- "Create a Bicep or VS Code extension skill."1920## Prerequisites and context2122- Prefer the Microsoft Learn MCP Server at `https://learn.microsoft.com/api/mcp` when available.23- If MCP tools are unavailable, use the `mslearn` CLI through `npx @microsoft/learn-cli` or a global `mslearn` install.24- Generate only portable skill package paths: `SKILL.md`, `references/`, `sample_codes/`, and `assets/`.25- Keep frontmatter minimal: `name` and `description` are required, and discovery depends primarily on the `description`.2627## Learn research tools2829| Need | MCP tool | CLI fallback |30| --- | --- | --- |31| Search official docs | `microsoft_docs_search(query: "...")` | `mslearn search "..."` |32| Fetch a full documentation page | `microsoft_docs_fetch(url: "...")` | `mslearn fetch "..."` |33| Find implementation examples | `microsoft_code_sample_search(query: "...", language: "...")` | `mslearn code-search "..." --language ...` |3435```bash36npx @microsoft/learn-cli search "semantic kernel overview"37npm install -g @microsoft/learn-cli38mslearn search "semantic kernel overview"39```4041Generated skills should carry the same CLI fallback table so agents can continue work without the MCP server.4243## Procedure44451. Investigate the technology in three passes.46 - 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")`.47 - Core content: `microsoft_docs_fetch(url="...")` for the best pages and `microsoft_code_sample_search(query="{technology}", language="{lang}")` for working code.48 - Depth: `microsoft_docs_search(query="{technology} best practices")` and `microsoft_docs_search(query="{technology} troubleshooting errors")`.492. 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.503. Clarify with the user before generating: key areas found, primary agent tasks, and preferred programming language for samples.514. Choose the template from `references/skill-templates.md`.525. Generate the skill package and validate that local content is sufficient for common tasks, search queries return useful results, and code samples run.5354## Template selection5556| Technology type | Template | Research focus |57| --- | --- | --- |58| Client library, NuGet package, npm package | SDK/Library | Installation, client construction, auth, core methods, error handling. |59| Azure resource | Azure Service | Capabilities, provisioning concepts, SDK and REST operations, pricing limits quotas. |60| App development framework | Framework/Platform | Architecture concepts, project structure, configuration options, tutorial walkthrough. |61| REST API or protocol | API/Protocol | Endpoints, auth, request/response shapes, pagination, throttling, idempotency. |6263## Local versus dynamic content6465| Content type | Store locally | Keep dynamic |66| --- | --- | --- |67| Core concepts | Full 3-5 concepts | Deeper conceptual docs by Learn query. |68| Hello world code | Full runnable sample | Variants by language or hosting model. |69| Common patterns | 3-5 stable patterns | Exhaustive patterns that change by version. |70| Top API methods | Signature plus example | Full API reference via `microsoft_docs_fetch`. |71| Best practices | Top 5 bullets | Additional situational practices by search. |72| Troubleshooting | Common symptoms only | Error catalogs and version-specific fixes. |73| Full API reference | Link or query | Complete docs fetched on demand. |7475Store 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.7677## Investigation query patterns7879| Target | Queries |80| --- | --- |81| SDKs/Libraries | `"{name} overview"`, `"{name} getting started quickstart"`, `"{name} API reference"`, `"{name} samples examples"`, `"{name} best practices performance"` |82| Azure Services | `"{service} overview features"`, `"{service} quickstart {language}"`, `"{service} REST API reference"`, `"{service} SDK {language}"`, `"{service} pricing limits quotas"` |83| Frameworks/Platforms | `"{framework} architecture concepts"`, `"{framework} project structure"`, `"{framework} tutorial walkthrough"`, `"{framework} configuration options"` |8485## Package shape8687```text88{skill-name}/89├── SKILL.md90├── references/91│ └── skill-templates.md92└── sample_codes/93 ├── getting-started/94 └── common-patterns/95```9697For 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")`.9899## Progressive disclosure and bundled resources100101- `references/skill-templates.md`: read when selecting the generated skill shape for SDK/Library, Azure Service, Framework/Platform, or API/Protocol work.102103## Compatibility terminology104105Preserve 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`.106107## Open Horizons integration108109- Scope new skills to the Developer IDP or Agent IDP objective and current Horizon stage.110- Preserve Open Horizons naming, routing, portability, package, and evidence boundaries.111- Route cross-domain sequencing through `open-horizons-orchestration` (`skill`).112113## Output template114115```markdown116## Microsoft skill package - <technology>117118**Status:** generated | needs clarification | blocked119**Skill name:** `<skill-name>`120**Template:** SDK/Library | Azure Service | Framework/Platform | API/Protocol121122### Research used123| Source | Query or URL | Purpose |124| --- | --- | --- |125| Microsoft Learn | `<query or URL>` | `<why it mattered>` |126127### Local content included128- Core concepts: `<3-5 concepts>`129- Samples: `<sample paths>`130- Common patterns: `<patterns>`131132### Dynamic lookup guidance133| Topic | Lookup |134| --- | --- |135| `<deeper topic>` | `microsoft_docs_search(query="...")` or `mslearn search "..."` |136137### Validation138- Skill frontmatter: pass | fail139- Search queries tested: pass | fail140- Code samples checked: pass | fail141```142143## Quality gate144145- [ ] `name` is kebab-case and matches the generated skill directory.146- [ ] `description` states what the skill does and when to use it with Microsoft technology triggers.147- [ ] The generated skill includes the Learn MCP to `mslearn` CLI fallback table.148- [ ] Stable essentials are local, while exhaustive or version-specific content is dynamic.149- [ ] `references/skill-templates.md` was used when choosing the template.150- [ ] Any referenced `sample_codes/`, `references/`, or `assets/` paths exist.151- [ ] Code samples are working or explicitly marked as needing validation.152153## References154155- [Microsoft Learn MCP Server](https://learn.microsoft.com/api/mcp)156- [Semantic Kernel overview](https://learn.microsoft.com/semantic-kernel/overview/)157- [Semantic Kernel agent memory](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory)