skill-creator

Meta-skill for creating new DLM diagnostic skills. Use this skill when you need to author a new troubleshooting guide (SKILL.md + reference files) that follows…

npx skills add https://github.com/microsoft/purview-dlm-mcp --skill skill-creator

Skill Creator

Create new diagnostic skills for the DLM Diagnostics MCP server. Each skill is a self-contained directory with a SKILL.md and supporting reference files.

Prerequisites

  • Familiarity with the existing skill structure (see .github/skills/dlm-diagnostics/ as the canonical example).
  • Knowledge of the PowerShell cmdlet allowlist in src/powershell/allowlist.ts.
  • Understanding of the project's read-only safety model.

Safety Rules

  1. Only reference read-only cmdlets — allowed verb prefixes: Get-*, Test-*, Export-*.
  2. Never include mutating commands in diagnostic stepsSet-*, New-*, Remove-*, Enable-*, Start-*, Invoke-* must only appear in the "Recommended Actions" output section, clearly marked as manual-review-only.
  3. All cmdlets used in the skill must exist in src/powershell/allowlist.ts — if a new Get-* cmdlet is needed, add it to the allowlist as a separate change.
  4. No credentials or secrets — never embed tokens, passwords, or connection strings in skill files.

SKILL.md Template

Every skill must have a SKILL.md at its root with the following structure:

---
name: <skill-name>
description: "<One-paragraph description of when to invoke this skill. Include symptom keywords for matching.>"
---

# <Skill Title>

<Brief overview of what this skill investigates.>

## Prerequisites

<Required PowerShell sessions or environment setup.>

## Safety Rules

<Read-only enforcement rules specific to this skill.>

## Decision Tree

| Symptom | Reference |
|---------|-----------|
| <symptom description> | [<filename>.md](references/<filename>.md) |

## Workflow

1. **Identify the symptom** — match user description to the decision tree.
2. **Load the reference file** — read it fully before starting.
3. **Execute diagnostic commands** — step by step using `run_powershell`.
4. **Interpret results** — follow the reference guide's evaluation criteria.
5. **Cross-reference** — load linked references when directed.
6. **Report findings** — summarize using the Output Format below.
7. **Review execution log** — use `get_execution_log` for the audit trail.

## Output Format

<Standard investigation summary template.>

Reference File Structure

Each reference file in references/ should follow this pattern:

# <Issue Title>

## Overview
<Brief description of the issue and when it occurs.>

## Diagnostic Steps

### Step N: <Step Name>
**Command:**
\`\`\`powershell
<Get-* / Test-* / Export-* command>
\`\`\`
**Evaluate:**
- <What to look for in the output>
- <Condition that indicates a problem>

## Root-Cause Table

| Finding | Root Cause | Remediation |
|---------|-----------|-------------|
| <diagnostic finding> | <why it happens> | <fix command or action — marked as manual> |

## Cross-References
- [related-file.md](related-file.md) — <when to follow this link>

Creation Workflow

Follow these steps to create a new skill:

  1. Name the skill — use kebab-case (e.g., edr-diagnostics, compliance-search-triage).
  2. Write the SKILL.md — follow the template above. Start with the YAML frontmatter name and description.
  3. Build the decision tree — list every symptom the skill can diagnose, each mapping to a reference file.
  4. Create reference files — one .md per symptom in a references/ subdirectory. Each must include diagnostic steps with exact PowerShell commands, evaluation criteria, a root-cause table, and cross-references.
  5. Validate cmdlets — every cmdlet used in diagnostic steps must be in src/powershell/allowlist.ts. If a new read-only cmdlet is needed, add it to the allowlist.
  6. Test the flow — mentally walk through at least one symptom end-to-end: decision tree → reference file → commands → evaluation → root cause → remediation.
  7. Write the output format — ensure it matches the standard investigation summary template.
  8. Mirror the skill — copy the complete skill directory to both locations:
    • .github/skills/<skill-name>/
    • .claude/skills/<skill-name>/
  9. Update documentation — if the skill introduces new cmdlets, update CLAUDE.md and .github/copilot-instructions.md.
  10. Commit — commit both skill copies and any allowlist changes together.

Validation Checklist

Before finalizing a new skill, verify:

  • SKILL.md has valid YAML frontmatter with name and description
  • Description includes symptom keywords for AI matching
  • Decision tree covers all intended symptoms
  • Every decision tree entry links to an existing reference file
  • All reference files exist in references/ subdirectory
  • All diagnostic commands use only Get-*, Test-*, or Export-* cmdlets
  • All cmdlets are present in src/powershell/allowlist.ts
  • Mutating commands appear only in remediation sections with manual-review warnings
  • Reference files include root-cause tables
  • Skill is mirrored in both .github/skills/ and .claude/skills/
  • Relative references/ links resolve correctly from both locations

Canonical Example

See .github/skills/dlm-diagnostics/ (or .claude/skills/dlm-diagnostics/) for the reference implementation. It demonstrates all conventions: YAML frontmatter, decision tree, 12 reference files, safety rules, workflow, and output format.

More skills from microsoft

oss-growth
microsoft
OSS growth hacker persona
agent-framework-azure-ai-py
microsoft
Build Azure AI Foundry agents using the Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Use when creating persistent agents with AzureAIAgentsProvider, using hosted tools (code interpreter, file search, web search), integrating MCP servers, managing conversation threads, or implementing streaming responses. Covers function tools, structured outputs, and multi-tool agents.
development
airunway-aks-setup
microsoft
Set up AI Runway on AKS — from bare cluster to running model. Covers cluster verification, controller install, GPU assessment, provider setup, and first deployment. WHEN: "setup AI Runway", "onboard AKS cluster", "install AI Runway", "airunway setup", "deploy model to AKS", "GPU inference on AKS", "KAITO setup on AKS", "run LLM on AKS", "vLLM on AKS", "set up model serving on AKS", "AI Runway controller".
devops
appinsights-instrumentation
microsoft
Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. WHEN: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices.
devops
applicationinsights-web-ts
microsoft
Instrument browser/web apps with the Application Insights JavaScript SDK (@microsoft/applicationinsights-web). Use for Real User Monitoring (RUM) — page views, clicks, AJAX/fetch dependencies, exceptions, custom events, and browser-side GenAI agent traces correlated to backend OpenTelemetry traces. Covers SDK Loader Script and npm setup, framework extensions (React, React Native, Angular), Click Analytics, telemetry initializers, and OTel GenAI semantic conventions for agent/tool/model spans emitted from the browser.
devops
azure-ai-anomalydetector-java
microsoft
Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.
development
azure-ai-language-conversations-py
microsoft
Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python. Use for ML workspaces, jobs, models, datasets, compute, and pipelines. Triggers: "azure-ai-ml", "MLClient", "workspace", "model registry", "training jobs", "datasets".
development